基于C8051F040的CAN总线智能节点设计
迈肯思科技
发布时间:2019-11-29
 

引言

“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中控制寄存器和每个消息的路径图

基于C8051F040的CAN智能节点设计

超级通云控

超级通微信云控

云控系统

云控

熊猫微信云控

微信云控系统

微信云控

微信云控系统

全国服务电话:
13066931819
Copyright©2019 深圳市迈肯思科技有限公司
粤ICP备16030717号