CAN总线技术2--CAN网络控制芯片SJA1000
图1
1.CAN控制器的模块:
接口管理逻辑IML
发送缓冲器TXB
接收缓冲器RXB、RXFIFO
验收滤波器ACF:验收滤波器把它其中的数据和接收的识别码的内容作比较,以决定是否接收信息。
位流处理器BSP
位时序逻辑BTL
错误管理逻辑EML
2.Peli CAN地址列表
CAN控制器的内部寄存器对CPU来说,是以外部寄存器形式存在而作为片内内存使用。因为CAN控制器可以工作于不同模式(工作/复位),所以必须区分不同的内部地址定义。
表1
3.SJA1000重要寄存器
模式寄存器MOD
命令寄存器CMR
CRM.2,释放接收缓冲器:读取接收缓冲器的内容(注:这个工作谁做)后,cpu可以通过置该位为1来释放RXFIFO中的这个存储空间。这样就会导致接收缓冲器内的另一报文立即有效。如果没有其他有效报文,接收中断位被复位(注:看来是接收缓冲状态寄存器引起的中断)。
状态寄存器SR
SR..3,发送完毕状态:一旦发送请求位或自接收请求位被置1(注:发送是自主的,接收是被动的),发送成功状态位就会被置0(不成功)。发送成功状态位会保持为0,直到发送成功。
SR.2,发送缓冲状态:cpu试图写内容到发送缓冲时,必须保证发送缓冲器状态位是1
SR.1,当要接收的信息成功通过验收滤波器的时候,CAN控制器需要在RXFIFO中有足够的空间来存储信息描述符和没一个接收的数据字节。没有足够空间,信息就会丢失,信息变为无效时向CPU提示数据溢出。数据溢出位被置位就不会再有数据溢出中断产生。
CMR.3,清除数据溢出。
中断寄存器IR
IR.1,发送中断:发送缓冲器状态从“0-1”(释放)跳变(注:软件完成)且中断寄存器的TIE位被置位时,此位被置1(注:硬件完成)。
IR0,接收中断:接收FIFO不空且中断寄存器的RIE位被置位时此位被置1。
中断使能寄存器IER
仲裁丢失捕捉寄存器ALC