OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2653|回复: 2

STM32中CAN中的一些疑问

[复制链接]

28

主题

176

帖子

0

精华

高级会员

Rank: 4

积分
738
金钱
738
注册时间
2014-7-1
在线时间
180 小时
发表于 2016-11-9 17:46:21 | 显示全部楼层 |阅读模式
50金钱
CAN的“位时间”是个什么东东?看了很长时间数据手册只是隐隐约约感觉它是和发送数据时的时间同步有关,但是没有彻底搞明白CAN协议发送数据的细节,有没有大神详细讲解一下?感激不尽!

最佳答案

查看完整内容[请看2#楼]

我来总结一下吧,位同步就是为了保证发送端和接收端数据传输时同步,就比如以同步方式(比如SPI)传送数据时,发送方和接收方是以共用时钟线的方式发送,以异步方式(比如RS485)传送数据时,发送方把每一个字节都用起始位和结束位标记起来发至接收方以达到同步,如果不同步肯定会导致数据接收出错。CAN总线中的同步方式比较特殊,没有时钟线不能算是同步传输,但是也不是每个字节都用起始位和结束位标记起来发送,也不像是异步传 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

176

帖子

0

精华

高级会员

Rank: 4

积分
738
金钱
738
注册时间
2014-7-1
在线时间
180 小时
 楼主| 发表于 2016-11-9 17:46:22 | 显示全部楼层
我来总结一下吧,位同步就是为了保证发送端和接收端数据传输时同步,就比如以同步方式(比如SPI)传送数据时,发送方和接收方是以共用时钟线的方式发送,以异步方式(比如RS485)传送数据时,发送方把每一个字节都用起始位和结束位标记起来发至接收方以达到同步,如果不同步肯定会导致数据接收出错。CAN总线中的同步方式比较特殊,没有时钟线不能算是同步传输,但是也不是每个字节都用起始位和结束位标记起来发送,也不像是异步传输,那就理解成一种特殊的异步传输吧(因为同步传输有一个明显的表示就是双方共用一条时钟线)
CAN总线传输数据时是以帧的方式,每帧数据可以是0到8个字节,每帧数据都有起始位和结束位,这一点很像同步传输,唯一区别就是没有时钟线,那是怎么保证发送方和接收方同步呢?设计者想出了一个办法,就是硬同步和重同步(比较特别)。
主要原理:
CAN总线的位同步只有在节点检测到“隐性位”(逻辑1)到“显性位”(逻辑0)的跳变时才会产生,当跳变沿不位于位周期的同步段之内时将会产生相位误差。该相位误差就是跳变沿与同步段结束位置之间的距离。如果跳变沿发生在同步段之后采样点之前为正的相位误差;如果跳变沿位于同步段之前采样点之后为负的相位误差。相位误差源于节点的振荡器漂移,网络节点之间的传播延迟以及噪声干扰等。
硬同步:
硬同步只在总线空闲时通过一个下降沿(帧起始)来完成,此时不管有没有相位误差,所有节点的位时间重新开始。强迫引起硬同步的跳变沿位于重新开始的位时间的同步段之内。
重同步:
也就是在硬同步之后,在具体的传送数据之间重新同步,因为若只有硬同步,CAN传送的数据又比较多,中间肯定会因为各种原因出现相位误差,导致无法及时采集到正确的数据。重同步的具体方法如下:
在消息帧的随后位中,每当有从“隐性位”到“显性位”的跳变,并且该跳变落在了同步段之外,就会引起一次重同步。重同步机制可以根据跳变沿增长或者缩短位时间以调整采样点的位置,保证正确采样。
若重同步过程中出现正的相位误差,接收器会认为这是一个慢速发送器发送的滞后边沿。此时节点为了匹配发送器的时间,会增长自己的相位缓冲段1。增长的时间为相位差的绝对值,但是上限是重同步跳转宽度SJW(此值由程序设定)。
若重同步过程中出现负的相位误差,接收器把它解释为一个快速发送器发送的下一个位周期的提前边沿。同样节点为了匹配发送器的时间,会缩短自己的相位缓冲段2,下一个位时间立即开始。缩短的时间也为相位差的绝对值,上限是重同步跳转宽度SJW。
相位缓冲段只在当前位周期内被增长或者缩短,接下来的位周期,只要没有重同步,各段将恢复为位时间的编程预设值。
当相位差的绝对值小于或者等于重同步跳转宽度SJW时,重同步和硬同步的效果是相同的,能实现相位差的补偿;但是如果相位差的绝对值比重同步跳转宽度大,由于补偿的最大值是重同步跳转宽度,致使重同步不能完全补偿相位差。
最后可以看看另一个分析得更透彻的文章http://blog.csdn.net/minyuanxiani/article/details/17925765
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-11-9 22:15:57 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-27 06:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表