sja1000 CAN驱动学习、调试记录(基于PeliCan Mode)
创始人
2024-04-21 14:03:40

一、基础知识

        网上讲sja1000 CAN总线控制器的资料很多,这里放一个引路贴:(151条消息) CAN总线控制器SJA1000_FA@TE的博客-CSDN博客_sja1000

        BasicCAN Mode:仅支持11位的ID。

        PeliCan Mode:在扩展模式下,允许使用 11 位 ID 的标准帧和 29 位 ID 的扩展帧(是标准帧还是扩展帧由 TX 帧信息的最高位 IDE 位确定)。

二、硬件介绍

硬件框图、寄存器地址分配

 

 

2.1 TRANSMIT BUFFER (TXB)

        传输缓冲区是CPU和比特流处理器(BSP)之间的一个接口,它能够存储一个完整的消息,以便通过CAN网络进行传输。该缓冲区有13个字节长,由CPU写入,并由BSP读出。

        传输缓冲区的长度为13个字节,并且位于CAN地址从16到28的范围内。注意,使用从96到108的CAN地址空间可以直接访问传输缓冲区RAM。此RAM区域被保留给传输缓冲区。以下三个字节可用于一般用途(CAN地址109、110和111)。

 

2.2  RECEIVE BUFFER (RXB, RXFIFO)

        接收缓冲区是接收过滤器和CPU之间的接口,用于存储从CAN总线线接收和接受的消息。RXB表现为一个在RXFIFO上的CPU可访问的13字节长度的窗口,RXFIFO总长度有64个字节。在这个FIFO的帮助下,CPU能够在接收到其他消息时处理先接收到的消息。

        PCA82C200的双接收缓冲器概念被来自PeliCAN控制器的接收FIFO所取代。这除了数据溢出概率外,对应用软件没有任何影响。现在两条以上的消息可能被接收到(最多64字节),直到发生数据溢出。

        接收缓冲区的全局布局与上一节中描述的传输缓冲区非常相似。接收缓冲区是RXFIFO的可访问部分,并且位于CAN地址16和28之间的范围内。每个消息都被细分为一个描述符和一个数据字段。

 

 2.3 INTERRUPT REGISTER (IR)

        中断寄存器的描述表明了CAN控制器会在哪些情况下触发中断。

三、关于离线复位

        总线断开之后,会产生错误警报中断。进到中断服务函数之后会恢复位总线;当错误警报产生到达一定数量后,会进入总线错误中断。此时会在中断服务函数中 终止发送。

 

相关内容

热门资讯

猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...