产品线频道   >
机器人| PLC| 低压变频器| DCS| 人机界面| 现场总线| 运动控制| 高压变频器| 电机| PAC| 现场仪表| PC-BASED| 机械传动| 传感器

基于NI LabVIEW和J1939协议的CAN总线通讯平台开发(2)


更多

OSI 模型:CAN2.0 规范定义了七层OSI 参考模型的物理层和数据链路层,是底层标准,如图2所示, CAN 总线产品的兼容性、互换性和可集成性差。J1939 是面向OSI 参考模型应用层的高层协议,在应用层定义了针对车辆应用的信号(参数)和报文(参数组)。通过参数描述信号,并给每个参数分配了一个编号SPN(Suspect Parameter Number),参数定义了PDU 数据场中字节的物理意义,例如SPN190 代表发动机转速。一个PGN 中可能有几个SPN,PGN61444 包含了SPN190 发动机转速和SPN513 发动机扭矩等参数。多帧报文:CAN2.0B 规范定义只能使用单帧报文传输,J1939 协议除单帧报文传输外,还使用对话式、广播式多帧报文传输,并按多帧数据传输协议进行打包封装发送和接收合成重组处理,其中对话式多帧报文发送接收节点需要握手协议,广播式多帧报文面向全局地址发送。

开放式系统互联参考模型(OSI)

图2 开放式系统互联参考模型(OSI)

模块接口

PXI-8464/2 双通道CAN2.0B 通讯接口模块,内含SJA1000T CAN 控制器和TJA1041T 高速CAN收发器及TJA1054AT 低速CAN 收发器。J1939 数据链路层通过PDU 格式实现报文的打包封装,通过CAN 控制器发送CAN 数据帧必须具有的同步、顺序控制、错误控制和流控制,自动产生CRC 校验位和ACK 应答位插入数据帧中。J1939 物理层协议规定了每个网段最多30 个ECU,CAN 总线通讯速率250 kBits/s,总线电平显性、隐性,差分电压3.5V/1.5V,差分传输双绞线线缆颜色CAN-H 黄色、CAN-L 绿色,CAN 收发器完成MCU 至CAN 总线之间收发电平的匹配转换。

软件设计

基于J1939 协议的CAN 总线报文收发多任务处理流程,如图3 所示,采用生产者/消费者循环数据结构。生产者循环使用“元素入队列”函数向报文簇队列中添加数据,消费者循环使用“元素出队列”函数从报文簇队列中移出数据。循环间采用队列的方式进行通信,避免多任务处理竞争状态,当生产数据比消费处理数据的速度快时,队列的缓冲作用保证报文数据不丢失。

基于LabVIEW 和J1939 协议的CAN 总线通讯报文收发多任务处理

图3 基于LabVIEW 和J1939 协议的CAN 总线通讯报文收发多任务处理

建立接收报文ID 解析过滤的识别方法。确定报文标识符ID 的枚举型状态变量识别报文,根据状态变量条件结构过滤报文。PDU1、PDU2 格式单帧报文全部入队列,数据场大于8 字节的对话式、广播式多帧报文按J1939协议多帧数据合成重组后入队列,其它无数据场的报文帧舍去,处理完的接收报文簇分解后出队列计算、存贮和显示。广播帧报文接收合成,首先进行TP.CM-BAM 命令帧解析,提取EECU 发送报文的PGN 和帧数,其次对接收的TP.DT-BAM 数据帧组报文删除帧序号,通过替换数组子集对接收报文合成重组,还原PGN 标识的数据长度大于8 字节的广播帧报文。建立发送报文ID 解析封装的识别方法。报文解析首先确定帧类型状态变量,其次根据状态变量的条件判断,进行报文格式的封装定义。数据场小于或等于8 字节的PDU1、PDU2 单帧发送报文直接入队列,数据场大于8 字节的对话式、广播式多帧报文按J1939 协议多帧数据处理打包封装簇合成后入队列,处理完的J1939 发送报文簇分解后出队列并写入CAN 口。广播帧报文发送封装,ID 解析将发送报文的PGN 封装在广播报文命令帧标识符ID-TP.CM 中,报文数组解析进行字节数和帧数计算,创建帧序号加报文子集的8 字节多帧数组,与数据帧标识符ID-TP.DT 打包封装簇合成TP.DT-BAM,TP.CM-BAM 与TP.DT-BAM 组成广播帧格式报文。

【文章来自米尔自动化网http://www.mirautomation.com/pages/2013-04/s36716.shtml
本文标签: NI   LabVIEW   CAN总线  
 三菱电机

热门内容:
工业机器人 S7-200 S7-300 PLC编程入门 自动化产品 DCS控制系统 变频电机 工控机 可编程自动化控制器 温度传感器 HMI