基于CAN总线的数据通信采集系统
扫描二维码
随时随地手机看文章
CAN(Controller Area Network)即控制器局域网,主要用于各种设备检测及控制的一种现场总线。20 世纪80 年代初,德国BOSCH 公司为解决现代汽车中众多的控制与测试仪器之间的数据交换, 开发了一种串行数据通信协议,即CAN 总线。
1.1 系统硬件设计:
由于TI 公司的TMS320F2812 型DSP 在军事上已有应用, 且根据各种性能的比较, 本系统采用TMS320F2812 型DSP 作为导航计算机,进行下位机的数据发送,其中eCAN 模块是TMS320F2812 DSP 片上的增强型CAN 控制器, 其性能较之已有的DSP 内嵌CAN 控制器有较大的提高, 数据传输更加灵活方便,数据量更大,可靠性更高,功能更加完备。
上位机采用工控机, 其中由ADLINK 的PCI/cPCI-7841CAN 总线接口卡进行数据接收。该卡可同时操作两个独立的CAN 网络,可编程传输速率可高达1 Mb/s,通过直接内存映射能够快速访问CAN 控制器,PCI 总线即插即用, 其总线控制器为SJA1000,电气接口为82C250。
信息采集系统的信息通信利用CAN 总线完成, 其CAN总线接口电路如图2 所示, 其中独特之处是在收发器PCA82C250 的输出引脚CANH 和CANL 之间并联一个终端电阻R 为120 Ω,解决了远近端阻抗不匹配的影响。
如图1 所示,由TMS320F2812 DSP 的eCAN 模块发送陀螺组合数据及温度值等, 上位机的PCI/cPCI-7841 型CAN 总线接口卡进行数据接收,从而完成整个信息采集及监测过程。[!--empirenews.page--]
1.2 系统软件设计:
系统软件主要完成基于CAN 总线的数据通信, 并在接收数据之后按要求对采集的导航数据进行处理,转换成实际所需数据类型,对陀螺组合的状态进行监测。
本系统CAN 总线通信报文格式采用CAN2.0B 扩展模式,通信数据格式主要是对CAN 总线协议中的(仲裁场ArbitrationField)和(数据场Data Field)进行定义,要求数据传输速率为500 Kb/s。协议帧格式如图3 所示。
系统的接收软件设计流程图如图4 所示。
在使用CAN 接口卡之前首先要对卡进行波特率、传输报文格式等参数的初始化。
1) 初始化CAN 总线的传输报文格式为提供29 位地址的CAN2.0B 扩展模式;2) 初始化CAN 总线的波特率为500 Kb/s。
利用PCI/cPCI -7841CAN 接口卡的CanOpen-Driver () 函数打开CAN 端口, 用CanConfigPort () 函数进行初始化,用CanSendMsg()函数发送数据包,用Can-RcvMsg()函数接收数据包,用CanCloseDriver () 函数关闭端口[3]。创建接收线程,接收数据之后按要求对数据进行处理。应用MFC 制作通信界面。注意,线程函数只能是静态成员函数,或者是在类外面声明的一个函数。[!--empirenews.page--]
初始化程序如下:
系统软件界面如图5 所示。
2 实验结果:
经过实验验证,该信息采集系统采集的数据经过通信后不变,确保了信息采集的可靠、准确。
3 结束语: