CAN总线帧格式解析

这段时间用stm32折腾can总线,总结一下。
以下图片为MSO4030B示波器的can总线解析截图:

 (原文件名:标准数据帧(id0).png) 

 (原文件名:标准数据帧
 (原文件名:标准数据帧(长度2id0向4).png) 
 (原文件名:标准数据帧(长度2id0向4)事件表.png) 
 (原文件名:标准数据帧(长度8id0向4).png) 

 (文件名:标准远程帧(id0x12).png) 

 (文件名:标准远程帧(id0x12)事件表.png) 
 (文件名:扩展数据帧(id0x44).png) 
 (文件名:扩展数据帧(id0x44)事件表.png) 

 (文件名:扩展远程帧(id0x12).png) 
 (文件名:扩展远程帧(id0x12)事件表.png) 
理论格式:

 (文件名:数据帧格式.jpg) 

 (文件名:远程帧格式.jpg) 

RS232数据解析
-----------------------------------------------------------------------

16进制电平对照反相视图


 (原文件名:16进制电平对照反相视图.png)

 


16进制电平对照视图


从上图可以看出:
-12v表示逻辑1。
 (原文件名:16进制电平对照视图.png) 


16进制整体视图


 (原文件名:16进制整体视图.png) 


rs232电平(tx)


 (原文件名:rs232电平(tx).png) 


波特率测量


按照波特率9600来计算,1bit的时间宽度应该是:1000000/9600=104.1us,和图中相符。
 (原文件名:波特率测量.png) 


局部放大ascii视图


 (原文件名:局部放大ascii视图.png) 


事件表模式观看


 (原文件名:事件表模式观看.png) 


整体ascii模式视图


 (原文件名:整体ascii模式视图.png) 



总结一下:
can总线:
高电平表示逻辑0,低电平表示逻辑1。
can总线的起始场是一个bit的逻辑0(高电平),帧结束由7个bit的逻辑1(低电平)组成。
根据can总线的定义:在发生的时候,每连续五个bit的逻辑0,就会跟着补充一个bit的逻辑1;每连续五个bit的逻辑1,就会跟着补充一个bit的逻辑0。
因此根据上面的波形解析数据的时候,每出现000001这种数据串,那么1就是发送的时候根据can协议填充进去的,所以解码的时候1要去掉,即00000。
再举个例子:11111001表示的数据应该是:1111101。

RS232:(假定数据位8bit,停止位1bit,无奇偶校验)
-12v表示逻辑1,+12v表示逻辑0.
根据波形解析的时候,高电平表示逻辑0,低电平表示逻辑1。
RS232发送数据是以ascii码的形式发送出去的。例如发送字符‘s’,实际上发送的就是0x73.
每发送一个字符:
首先是一个bit的起始位(逻辑0),然后将ascii值的最低位发送出去,接着是次高位。。。。总之是低位在前,高位在后。
例如0x73,发送的时候就是:0b11001110。
接着就是1个bit的停止位(逻辑1)。
1个bit的逻辑的时间宽度就是:1/波特率(单位是秒)。 

====

http://hi.baidu.com/%D1%A6%B3%AC%BD%DCmcu/blog/item/305288ead7a838dbb3fb95d4.html


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CAN(Controller Area Network,控制器局域网)总线协议是一种广泛应用于工业自动化、汽车电子等领域的串行通讯协议。其格式如下: <img src="https://img-blog.csdnimg.cn/20200925125252655.png" width="400"> CAN总线协议的分为标准扩展两种,其标准包含11位标识符,扩展包含29位标识符。在CAN总线上,所有节点都可以同时发送和接收数据,因此需要在包含发送方和接收方的信息。 格式的具体解释如下: 1. 起始符(SOF):一个固定的位模式,表示的起始。 2. 报文控制(CTRL):包含几个控制位,如IDE、RTR等。其IDE表示标识符的类型,0表示标准,1表示扩展;RTR表示远程请求,0表示数据,1表示远程请求。 3. 标识符(ID):11位或29位的标识符,用于区分不同的CAN消息。 4. 控制域(CTL):包含几个控制位,如DLC、EDL等。其DLC表示数据长度,即数据域的字节数;EDL表示数据长度是否扩展,0表示标准数据,1表示扩展数据。 5. 数据域(DATA):0~8字节的数据。 6. CRC:用于校验数据是否正确。 7. 确认位(ACK):由接收方发送的确认信息,表示数据是否正确接收。 8. 结束符(EOF):一个固定的位模式,表示的结束。 以上就是CAN总线协议的格式。在实际应用,节点之间通过CAN总线进行数据交换,通过解析的各个字段,可以判断消息的发送方、接收方、数据内容等信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值