- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CAN数据包传输模式
与上位机通讯方式
设备的CAN端口支持流传输模式和CAN数据包两种传输模式:
流传输模式兼容RS232/RS485工作方式。
CAN数据包传输模式支持包括CAN ID在内的所有CAN2.0A/B特性,数据结构及功能类似于传统的CAN接口卡。
设备默认设置为流传输模式,用户可以通过网络或RS232管理口,将CAN端口设置为CAN数据包模式。管理口参数为:9600bps,8数据位,1停止位,无校验,无流控。可以使用超级终端直接打开并登录到设备进行管理。
Socket TCP/IP通讯方式
上位机软件通过Socket规范与设备直接建立TCP/IP连接,在成功建立TCP/IP连接后,上位机与设备就可以进行双向数据通讯。
CAN-bus设备支持TCP/IP Server、Client两种工作模式,默认工作在Server模式,设备监听TCP/IP 6020端口,等待连接。
虚拟串口或硬件串口通讯方式
TNode-N、ICAN设备支持虚拟串口技术,可以将CAN端口对应TCP/IP连接映射为虚拟COM口。而TNode-232、485这些CAN转UART设备可以直接使用设备的硬件串口。
上位机软件只需要按照常规的串口编程方式,使用特定的数据结构就可以与设备进行通讯,无需编写复杂的网络代码。
通讯数据结构
CAN数据包模式所使用的NETWORK_CANFRAME通讯报文结构:
typedef struct __attribute__ ((packed)) _NETWORK_CANFRAME
{
u_char candevindex; // [1个字节长度],CAN端口,0-3对应A-D
// 四个CAN端口,接收有效,发送时忽略。
u_long id; // [4个字节长度],CAN包ID
u_char len; // [1个字节长度],数据长度,1-8字节
u_char byte[8]; // [8个字节长度],CAN包数据
u_char ext; // [1个字节长度],1-为扩展消息格式,
// 0-标准消息格式
u_char rtr; // [1个字节长度],远程传输位
u_long param1; // [4个字节长度],备用参数
} NETWORK_CANFRAME;
上述为GCC定义,单字节对齐,sizeof(NETWORK_CANFRAME)为20个字节。
TNetwork_CANFrame=packed record
candevindex:byte; // CAN端口,0-3对应A-D四CAN端口
// 上位机接收有效,发送忽略。
id:LongWord; // CAN包ID
len:byte; // 数据长度,1-8字节
candata:array[1..8] of Byte; // CAN包数据
ext:byte; // 1-为扩展消息格式,0-标准消息格式
rtr:byte; // 远程传输位
param1:LongWord; // 备用参数
end;
上述结构为Delphi定义,单字节对齐,sizeof为20个字节。
使用上述结构体或直接构建使用20字节原始报文都可以与设备进行通讯。CAN总线参数(如速率等)可以通过设备本身的参数配置功能,透明的进行设置,无须编写任何代码。
发送CAN报文详解
// 发送缓冲
NETWORK_CANFRAME sendbuf;
//CAN2.0A使用sendbuf.id的低11位,CAN2.0B使用低29位。
//将CAN ID设置为1,CAN ID更详细说明请参考后面的文档。
sendbuf.id=0x01;
sendbuf.byte[0]=0; // 8个CAN数据,第1个字节
…
sendbuf.byte[7]=7; // 8个CAN数据,最后1个字节
sendbuf.ext=1;// ext=1使用CAN 2.0B格式,ext=0使用CAN 2.0A格式。
sendbuf.rtr=0;// rtr=1为远程传输帧。
sendbuf.param1=0;//4字节备用参数,此参数仅用于未来扩展或二次开发。
sendbuf.candevindex=0; // CAN端口索引发送时忽略,所以设置为0。
对应生成的20字节原始发送报文,发送顺序为左-右,蓝字为第一个发送字节:
0008 0001020304050607 01 00报文说明:
您可能关注的文档
最近下载
- 光伏电站组件安装前测试记录及电源并网前单位工程调试报告(记录).doc VIP
- QCR 749.1-2020 铁路桥梁钢结构及构件保护涂装与涂料 第1部分:钢梁.docx VIP
- MTBE生产技术知识问答.pdf VIP
- (2025春新版本)部编版一年级语文下册《 端午粽》PPT课件.pptx VIP
- 第20课 第一次工业革命 课件(共25张PPT).pptx VIP
- 颖川陈氏经秀族谱目录.doc VIP
- 2025年河北省国富农业投资集团有限公司人员招聘笔试备考试题及答案解析.docx VIP
- 新人教版五年级数学上册《★掷一掷》部级优课陈萍老师—省级公开课课件.ppt VIP
- 古野GPS操作说明书中文_GP170.PDF VIP
- TT310系列超声波测厚仪.PDF VIP
原创力文档


文档评论(0)