PeliCAN模式下的CAN收发程序实现

1星 需积分: 50 28 下载量 103 浏览量 更新于2024-09-25 收藏 13KB TXT 举报
"CAN收发源程序,使用PeliCAN模式和扩展帧EFF模式,适用于51系列微控制器。程序中包含中断处理函数,用于CAN接收和发送,并且提供了示例数据帧结构。" 在微控制器领域,Controller Area Network (CAN) 是一种广泛使用的通信协议,尤其在汽车电子系统中应用广泛。此程序涉及到的关键知识点有: 1. **PeliCAN模式**:PeliCAN是CAN协议的一种增强模式,提供了更高级别的功能,如更多的错误检测机制、更高的数据传输速率以及更大的报文标识符(ID)空间。在PeliCAN模式下,CAN控制器可以支持29位的扩展ID,相比于标准的11位ID,这允许更多的节点在同一网络上通信,且能区分更多的不同服务或信号。 2. **扩展帧EFF模式**:在CAN通信中,帧类型分为标准帧(11位ID)和扩展帧(29位ID)。扩展帧(Efficient Frame Format, EFF)允许使用29位的ID,提供更多标识符的可能性,适合于需要大量不同标识符的应用场景。 3. **中断处理**:程序中的`INT0_Counter`和`SJA_INTR`函数是中断服务子程序,分别对应INT0中断和CAN总线中断。中断是微控制器中处理外部事件的重要机制,这里的中断处理确保了数据传输的实时性和高效性。 4. **中断服务寄存器**:`IR`(Interrupt Register)是中断标志寄存器,用来存储当前发生的中断状态。在`SJA_INTR`函数中,通过读取`IR`并进行位操作来判断中断源,从而决定执行相应的处理。 5. **数据帧结构**:程序中提到了示例数据帧的结构,包括7个数据字节(例如`0x11, 0x22, 0x33, 0x00, 0x01, 0x02, 0x03`)和一个控制字节(例如`0x00`),这表示CAN报文的数据部分。CAN报文通常由仲裁字段、控制字段、数据字段和CRC校验字段组成。 6. **TXD_flag变量**:在`INT0_Counter`函数中,`TXD_flag`被设置为1,表明数据已准备好发送,这通常用于触发发送过程。 7. **51系列微控制器**:51系列是经典的8位微控制器,广泛应用于嵌入式系统。程序中使用的中断处理和寄存器操作都是针对51内核的特点。 8. **中断优先级**:`interrupt2`表明`SJA_INTR`函数具有二级中断优先级,中断优先级是微控制器中管理多个中断源的重要特性。 这个程序是为51系列微控制器设计的CAN通信模块,实现了PeliCAN模式下的数据收发,利用中断机制确保通信的可靠性和实时性,并给出了具体的帧结构示例。