关于CAN总线的一些问题
发布网友
发布时间:2022-05-06 18:26
我来回答
共2个回答
热心网友
时间:2022-07-01 18:08
1.标准格式数据帧包括:
1位帧起始位,11位ID位+1IRQ位,8个控制位,8字节的数据位,2字节的CRC校验位,7个终止位(记得不一定全面)
同时有码流控制功能,即位填充功能。当出现4个相同电平的位时,会在中间插入1个不同的位。
码流填充区域包括从起始位一直到数据位结束。
具体细节可以参见《现场总线CAN原理与应用》一书,北京航空航天大学出版社。
2.11位标识符与屏蔽寄存器和代码寄存器组成了CAN总线的滤波模式。
3.初始化总线定时寄存器,控制寄存器,输出寄存器,中断寄存器。
4.屏蔽寄存器全部为0xFF,使滤波位“无关”
5. 高8位为9,即为0000_1001,CODE0= 0000_1001 MASK0 = 1111_0110 (二进制表示)
6. 这个我以前算过,《现场总线CAN原理与应用》一书中有详细介绍,现在书没有在手边,印象里是
BTR0 = 0x43;
BTR1 = 0x1c;
热心网友
时间:2022-07-01 18:09
式(PeliCAN)的选择是通过设置“时钟分频寄存器CDR”的第7位来确定的。这两种模式的“主要的”区别是BasicCAN仅支持11位的ID,PeliCAN通过选择标准帧和扩展帧分别具有13位的ID和29位的ID。
2、两者晶振可以互不相干,一个非常实用的建议是请将SJA1000的晶振采用16M,方便利用现有的资料和波特率计算工具来计算波特率,避免用其他频率自己来算,对于初学,算波特率是一个稍微复杂的事情。
3、采样率如果没有猜错的话说的还是波特率计算当中的事情。用了16M就省了。做通了再慢慢去理解都OK。
4、第一个问题中已经有答案
补充问题回复:
关于复位模式:复位模式是软件的(SJA1000的复位引脚控制的是硬件复位),通过置位模式寄存器的第0位(MOD.0)进入复位模式 ,清0则进入正常工作模式。(只要通过改变该位就可以实现两种模式的切换)
在复位模式时候该节点的CAN总线是关闭的,部分控制器参数需要在这个模式下才能进行初始化,而在正常模式时候就不能被修改。
当总线出错关闭时候也会自动进入复位模式,这时候需要清除错误,并恢复到正常工作模式。