基于CAN总线的数据采集记录装置设计
当所谓的中断过程既在中断服务子程序(ISR)的入口处,程序的走向由读取到的ISR的值来确定。如果收到一个新的帧,则首先清除接收中断标志,接着读取帧数据,等待接收缓冲区空;如果没有收到新的帧,则判断帧是否发送完毕,若一帧已发送完则清除发送中断标志并读取状态寄存器,并进一步判断发送队列是否还有未发送的数据帧,如果有则继续发送。如果全部数据发送完,则从中断子程序返回。主程序流程图如图1所示。
3.4 CAN控制器软件设计
设计中使用的处理器LPC2294内部集成了4个独立的CAN模块,并且为所有的CAN控制器提供了全局的可以接受标识符查询的功能。设计中只使用到CAN控制器1和CAN控制器2两个控制器,CAN模块的存储器在处理器中的地址映射如下:
AF RAM(2KB):E0038000~E00387FF;
AF RAM寄存器:E003C000~E003C017;
中央CAN寄存器:E0040000~E004000B;
CAN控制器1寄存器:E0044000~E004405F;
CAN控制器2寄存器:E0048000~E004805F;
CAN的驱动程序主要包括四个部分:CAN的初始化、CAN的数据接收、CAN的数据发送和异常处理。
另外,由于CAN通信中没有物理地址,只是采用软件ID辨识的方式来对总线上的信息进行过滤的,并且ID还决定当有多个节点需要同时传送数据时的优先级,故对ID设置要格外注意。
3.5 CAN与以太网网关协议转换
由于以太网和CAN是两个不同的通信系统,当连接在CAN总线上的设备向以太网发送数据时,数据必须通过CAN接口电路发送到主系统上,通过协议转换程序,提取要传送的数据,然后对数据添加TCP和IP协议所需要的帧信息。
在本设计中用到的μc/os-Ⅱ操作系统下,应用层功能是以5个主要的任务来实现的,按优先级从高到低依次为:CAN总线接收数据包;CAN总线发送数据包;TCP/UDP协议数据包接收;TCP/UDP协议数据包发送;主系统协议转换。
4.系统测试
接通电源,程序正常启动后,数据记录仪开始工作。连通后的ip地址为192.168.
1.102,物理地址为00-26-18-20-d9-f0,通过ping命令测试,证明数据包收发成功,设备联通正常。
程序运行后,依次完成获取数据容量、读取时间、设定时间、清空记录仪、获取坏块、初始化记录仪,接着数据记录仪开始工作,程序运行结果如图2所示。
5.结束语
测试证明:系统完成了CAN和以太网互联的功能,具有较高的可靠性和易用性。记录仪具备了在以太网高速数据传输下记录、储存、分析总线数据的能力,使设备在调试阶段、实际运行工作阶段以及日常维护阶段具备了完善的电子数据诊断和故障定位能力
评论