- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1、CAN-bus帧转换模式
CAN数据包模式编程说明
CAN-bus帧转换模式
设备CAN-bus端口支持流传输模式和CAN数据包两种转换模式
CAN数据包采用特定的数据报文的形式,实现CAN-bus与以太网或串口之间的数据传输,此模式采用20字节定长数据报文传输数据,封装了所有的CAN-bus 2.0A/B报文信息,并且采用帧对帧转换传输模式,符合CAN-bus工作特性,实时性极好。
流传输模式从以太网或串口接收到的任意格式的原始数据,将自动以8个字节为单位,自动打包成CAN-bus 2.0B数据帧发送到CAN-bus,CAN ID由设备配置参数决定,如果不足8个字节,则按照实际数据长度填充CAN-bus帧。
从CAN-bus接收到的数据,只传输1-8字节的CAN-bus数据区数据到以太网或串口,不传输CAN ID等其他数据。此模式用于传输RS232/RS485通讯协议。
用户可以通过Telnet或RS232管理口,将CAN-bus端口设置为CAN包传输模式。管理口参数为:9600bps,8数据位,1停止位,无校验,无流控。可以使用超级终端直接打开并登录到设备进行管理。
通讯接口
CAN-bus转以太网通讯方式
上位机软件通过Socket规范与设备直接建立TCP/IP连接,在成功建立TCP/IP连接后,上位机与设备就可以进行双向数据通讯。
设备支持TCP/IP Server、Client两种工作模式,默认工作在Server模式,设备监听TCP/IP 6020-6023端口,等待连接。
使用Socket TCP/IP方式时,建议开启KeepAlive功能,并设置断线检测为10秒,这样就可以快速检测出线路的物理中断。
CAN-bus转串口通讯方式
CAN-bus转串口设备(或模式)直接使用设备的硬件串口实现CAN-bus与串口之间的数据交换。
在CAN-bus端口使用CAN包传输模式时,采用20字节定长数据报文传输数据,数据传输采用存储转发方式工作,设备收到一帧或几帧串口数据后,在达到指定超时而没有新数据到来时,将数据转发到CAN-bus。
用户可以一次发送一帧或几帧数据到串口,然后等待一个超时时间,设备就会将存储的数据转发到CAN-bus。此超时时间可以根据需要进行设置。
设备最多可存储50帧1000个字节的串口至CAN-bus报文数据。
虚拟串口通讯方式
在使用CAN-bus转TCP/IP产品(或模式)时,可以使用VSPM虚拟串口软件,将设备CAN-bus端口对应的TCP/IP端口映射成本机的虚拟COM口,使用传统串口调试工具,就可以进行CAN-bus总线通讯调试。
也可以使用传统的串口编程方式进行应用开发,可以避免编写复杂的网络通讯代码。
其通讯方式与CAN-bus转串口通讯方式相同。
通讯报文
通过TCP/IP或串口发送数据到CAN-bus
发送报文:[00] [08] [0001020304050607] [01] [00]
报文说明:
[00]:CAN端口索引,报文的第1个发送字节,发送时忽略。
[01 00 00 00]:发送的CAN ID,低位字节在前首先发送,此处为01。
[08]:此CAN数据包中的CAN数据区长度(最大8个字节),此处为8个字节。
[01 02 03 04 05 06 07 08]:8个字节的CAN数据区数据,如果上面的数据长度不足8个字节,可以用任意数据填充剩余字节,确保整帧报文为20字节。
[01]:1为扩展帧(CAN2.0B)01000000080001020304050607010000000000][000100000008A0A1A2A3A4A5A6A7010000000000]
通过TCP/IP或串口接收CAN-bus数据
收到报文:[01] [08] [0001020304050607] [01] [00]
报文说明:
[01]:从B口收到的数据,0-3对应A-D四个CAN-bus端口,为报文接收到的第1个字节,如果是单口CAN-bus转以太网设备,或CAN-bus转串口设备,一直为00。此处为01,说明从B口收到数据。
[01 00 00 00]:接收到的CAN ID(低位字节在前,高位在后)。此处为01。
[08]:此CAN数据包中的CAN数据区长度(最大8个字节),此处为8个字节。
[01 02 03 04 05 06 07 08]:8个字节的CAN数据区数据。
[01]:1为扩展帧(CAN2.0B)
CAN ID详解
CAN ID为4个字节的无符号长整型数据(32位),遵循无符号长整型数据类型内存布局,即低位字节在前,高位字节在后。CAN2.0A使用id的低11位,CAN2.
文档评论(0)