基于PCI总线的CAN卡的设计与实现

时间:2009-10-23来源:网络

CAN卡的电路框图如图1所示。

2 软件设计

软件设计包括驱动程序的设计和COM组件程序设计。

由于PCI设备的中断、I/O端口、映射内存等资源都是动态分配的,必须编写驱动程序管理硬件,才能供用户编程使用。为了通用性和兼容性,CAN卡驱动程序的开发采用支持Windows XP、Windows2000和Windows98的WDM驱动程序。开发工具采用Visual C++6.0和Win2000 DDK。由于CAN卡上没有微控制器,因此对CAN总线端口的所有操作都是由驱动程序来完成的。这不仅可以由计算机来实现复杂的功能,例如,错误检测、断点续传等,同时节省了硬件,而且有利于CAN卡的升级――只要更换驱动程序即可。驱动程序的功能主要是配置SJA1000的CAN接口、收发CAN总线上的数据、对CAN总线进行实时监测、接收用户程序的收发命令。收发数据和CAN总线错误均采用中断处理,驱动程序可以快速响应,通过事件(Event)内核对象直接通知给用户程序。由于WDM驱动程序运行在系统的内核态,编写非常复杂,限于篇幅,仅给出软件的框图(见图2)。

为了方便用户的使用,还应编写相应的API函数或ActiveX控件等其它应用层的程序提供给用户。由于ActiveX控件基于先进的COM技术,具有良好的封装性、使用灵活性等特点,可使用户编程简单、方便,因此在CAN卡的设计中编写了ActiveX控件。ActiveX控件负责与驱动程序的通信,通过控件的事件把CAN卡接收的数据通知给用户程序,利用控件的属性设置CAN通信控制器,按照设置的方法发送用户程序的数据。

根据以上的设计,开发了名为Can1000的CAN卡。经使用证明,该卡设计简单明了、性能较高、成本低廉、驱动程序和ActiveX控件使用方便,达到了设计和用户的要求。

1 2 3

关键词: PCI CAN 总线 卡的设计

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版