新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > CAN总线接口扩展设计与驱动开发

CAN总线接口扩展设计与驱动开发

作者:时间:2012-10-23来源:网络收藏

2.3 初始化
控制器MCP2515正常运行之前,需要完成初始化。初始化工作是在函数Init_MCP2515内完成的。首先设置通信的波特率,随后屏蔽中断,设置屏蔽和接收寄存器,接着是清除接收和发送缓冲区,最后打开中断。
2.4 CAN收发实现
根据CAN通信协议的特性,CAN的收发程序中均包含标识符(ID)和数据。下面介绍了接收程序,在MCP2515中包含了两个接收缓冲器RxB0和RxB1,且每个接收缓冲器配有多个验收过滤寄存器。文中在中断方式下,通过设置验收过滤寄存器对符合条件的报文数据进行接收,函数流程如图4所示。

本文引用地址:http://www.eepw.com.cn/article/153801.htm

e.JPG


2.5 流函数编写
MCP2515的流程序编译后生成DLL,然后建立CANBus.def文件将其中的函数导出。这一文件中包含CAN_Init()、CAN_IOCon trol()以及CAN_PowerUp()等一组标准函数,这些函数是用于完成标准的文件I/O函数和电源管理等。最终要将此文件添加到本程序的工程中。
因此在对设备进行读写操作时,首先要先通过CreatFile()函数凋用CAN_Open()打开设备,在此过程中CAN_Open()函数用到了初始化函数CAN_Init()返回的句柄,而CAN_Read()和CAN_Write()函数需要CreatFile()成功执行后返回的句柄。在应用程序中可通过ReadFile()和Write File()函数来调用CAN_Read()和CAN_Write()来对设备进行读写操作。
2.6 注册表
具体的流接口程序和注册表是分不开的,在WINCE内核中添加注册表文件CANBus.reg,内容为
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\CANBus]
“Prefix”=“CAN“
“Dll”=“CANBus.dll”
“Order”=dword:1
“Index”=dword:1

3 结束语
讨论了ARM11处理器S3C6410的CAN接口的方法,利用该处理器内部集成的SPI接口出了详细的硬件电路,并了基于WINCE系统的CAN接口流驱动程序。试验验证CAN网络通信完全正常,证明了该方案的可实施性。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭