windowsce.net下can卡的驱动程序设计

windowsce.net下can卡的驱动程序设计

ID:24183060

大小:52.00 KB

页数:3页

时间:2018-11-13

windowsce.net下can卡的驱动程序设计_第1页
windowsce.net下can卡的驱动程序设计_第2页
windowsce.net下can卡的驱动程序设计_第3页
资源描述:

《windowsce.net下can卡的驱动程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、WindowsCE.Net下CAN卡的驱动程序设计

2、第1摘要:主要讨论在soNormal>关键词:apIoSpace函数映射I/O地址,提供直接访问设备的虚拟if(!HalTranslateBusAddress(Isa,0,phyAddr,0,phyAddr))goto_ExitInit;hCan->lpCanHappedBaseAddr=(LPBYTE)MmMapIoSpace(phyAddr,CANCARDADDRLEN,FALSE);if(!hCan->lpCanHappedBaseAddr)goto_ExitInit;如果分配内存或映射逻辑地址失败,

3、则退出初始化程序,CAN卡初始化失败。第四步,初始化读写属性、共享模式、读超时时间和第二个CAN口的基地址。第五步,创建CAN卡事件和数据接收事件:hCan->lpCanHsgEvent=CreateEvent(NULL,FALSE,FALSE,NULL);第六步,初始化中断,如果CAN卡有复位请求就退出初始化程序。设置好中断后启动数据接收线程,设置线程优先级继续线程处理;最后配置CAN卡参数,进入正常运行状态。2.3CAN卡信息发送CAN卡的信息发送分为两个步骤。在对CAN卡基本信息进行检查后,首先设置发送缓冲的ID号。CAN标准模式的ID号为11位,偏移地址1

4、0中存放的是ID号的高8位,偏移地址11的高3位存放的是ID号的低3位,剩下5位分别是RTR位(远程传送请求位)和数据长度。通过CANessage(LPCAN_HessageBuflpMsg){BOOLbSuc=FALSE;ASSERT(hCanlpMsglpMsg->dp;GENERIC_sg->dp;7)<<5);if(lpMsg->bRTR)byV

5、=0x10;byV+=static_cast<BYTE>(lpMsg->dp;0X40)/*传输缓冲区满,退出*/{break;}if(byV0X8){/*传输结束,正确

6、返回退出*/bSuc=TRUE;break;}}::LeaveCriticalSection(hCan->lpCanHessage(LPCAN_HessageBuflpMsg){……if(CANR(hCan,2)1){/*判断接收缓冲区是否已满*/for(UINTi=0;i<10;++i)recvBuf[i]=CANR(hCan,20+i);/*将数据暂存到临时缓冲区*/CANsg->dp;0x10?TRUE:/*返回RTR状态*/LpMsg->dp;0XF;/*返回数据长度*/……}else{++hCan->lpCanHessageBuf

7、bufMsg;p;hufMsg)){/*正确接收数据后*/CAN_RecvBufPush(hCan,bufMsg);}/*将数据压入缓冲*/BYTEbyV=CANR(hCan,3);/*将3号寄存器读出然后立即写入*/CAN3346N,操作系统为WinCE.ENT。本文设计开发的驱动已经在北京怀柔的变电站项目中得到成功的应用,CAN卡通信稳定,系统在WINCE.下运行可靠,保证了项目的顺利实施。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。