碧波液压网 欢迎你,游客。 登录 注册

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

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论