基于C8051F040的CAN总线智能节点设计
“X型火控系统”根据实际需要采用了CAN总线方式来实现其内部单体间的通信。CAN总线是一种用于各种设备检测及控制的现场总线,它是一种多主总线,在高速网络和低成本的节点系统中应用都很广泛。
CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。其特点如下:
*可以多主方式工作。
*CAN节点只需对报文的标识符滤波即可实现点对点、一点对多点及全局广播方式发送和接收数据。
*CAN总线通信格式采用短帧格式。
*采用非破坏性总线仲裁技术。
*直接通信距离最大可达10km (速率5kb/s以下),最高通信速率可达1Mb/s (此时距离最长为40m),节点数可达110个,通信介质可以是双绞线、同轴电缆或光导纤维。
*CAN总线采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。
C8051F040及其内部CAN控制器
C8051F040内部集成有CAN控制器,主要由CAN内核、消息RAM、消息处理单元和控制寄存器组成,图1为C8051F040集成CAN的结构图。
图1中,CAN内核由CAN控制器和负责消息收发的内部寄存器组成,消息RAM用于存储消息目标和每个目标的仲裁掩码,并且每一个消息目标都有它自己的识别掩码,所有的数据传输和接收滤波都是由CAN控制器完成的。消息处理单元用于根据寄存器中的信息来控制CAN内核中移位寄存器和消息RAM之间的数据传递,同时它还可用来管理中断的产生。
图1 C8051F040集成CAN的结构图
CAN内部寄存器中存储了所有CAN的控制和配置信息,其中包括控制寄存器、状态寄存器、设置波特率的位定时寄存器 、测试寄存器、错误计数器和消息接口寄存器。通常CAN内核不能直接访问消息RAM,而必须通过接口寄存器IF1或IF2来访问。
另外,CIP-51的SFR并不能直接访问CAN内部寄存器的所有单元,其配置CAN、消息目标、读取CAN状态以及获取接收数据、传递发送数据都由SFR中的6个特殊寄存器来完成。其中CAN0CN、CAN0TST和CAN0STA3个寄存器可直接获取或修改CAN 控制器中对应的寄存器,而CAN0DATH、CAN0DATL、CAN0ADR 3个寄存器主要用来访问修改其它不能直接访问CAN内部寄存器,其中CAN0ADR用来指出要访问寄存器的地址,CAN0DATH、CAN0DATL这时就相当于要访问的16位寄存器的高、低字节的映射寄存器,而对它们的读写则相当于对所指向寄存器的读写。图2给出了CIP-51如何访问CAN中控制寄存器和每个消息的路径图。
图2 CIP-51访问CAN中控制寄存器和每个消息的路径图
相关文章
- 2024-09-15基于高精度通用运算放大器的简易心电图仪设计
- 2023-02-09光电位置敏感器件的非线性误差分析及其在医学中的应用
- 2023-03-04光学系统双胶合透镜的替代设计法
- 2024-04-10基于格型陷波滤波器的科里奥利质量流量计信号处理方法
- 2023-02-22基于聚焦离子束注入的微纳加工技术研究
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。