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

基于独立双CAN控制器的中继器设计与实现

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  1 引言

  CAN(Controller Area Network,控制器局域网)总线是一种有效支持分布式控制或实时控制的串行通信网络,是现场总线的一种。CAN总线具有通信速率高、开放性好、纠错能力强和系统成本低等优点,现已在机械工业、机器人、医疗器械等各种领域中得到了广泛的应用。

  然而由于受到CAN收发器的限制,在一个CAN总线网络中最多只能有110个CAN节点,最大只能达到10 km的通信距离,所以当所需CAN总线网络规模超出以上限制时就必须进行CAN总线网络的扩展。目前一般的扩展方式是加入CAN总线中继器。CAN中继器的主要任务是在两个CAN网段之间实现数据的转发,他具有过滤通信量,扩大通信距离,增加节点的最大数目,允许各个网段使用不同的通信速率,提高可靠性,改善网络性能等优点,是CAN组网的关键设备之一。在稍大型的CAN总线网络中经常会用到中继器。

  通常CAN中继器都是基于两片独立的CAN控制器实现的。这样的CAN中继器虽然可以扩大通信距离、增加节点的最大数目,但是由于他的数据存储转发要通过CPU的内部缓存中转,使得CPU与CAN控制器之间的数据交互过多,从而造成通信系统的时延增加,实时性能变差,CPU的负担变重。同时当网络负担较重时,还会因为CPU的内部缓存容量有限,造成帧丢失现象,使系统可靠性变差。然而,实时性和可靠性对通信系统而言是非常重要的。

  针对上述中继器在实时性和可靠性上的缺点,我们采用独立双CAN控制器作为两路CAN接口的控制器来设计CAN中继器。利用独立双CAN控制器的内置FIFO和网关的特性,使两个CAN节点共享双CAN模块的资源,允许在两个单独的CAN节点之间直接通过FIFO进行数据交换,而不使用CPU内部缓存中转,这样减少了CPU与控制器之间的数据交互,优化了CAN总线的传输,大幅度减少了CPU的负荷,改善了整个系统的实时性和可靠性。

  2 独立双CAN控制器简介

  独立双CAN控制器包括两个全CAN功能节点。但他并不是这两个CAN节点简单的组合,而是这两者既可以独立使用,又可以通过双CAN控制器的网关功能,设计出可以大幅度减轻CPU负担的中继器的设备。除此之外,双CAN控制器还具有节电功能、更多的中断功能和增强的滤波功能等,他与微控制器的信息交换通道也有串行和并行两种选择。

  图1给出了独立双CAN控制器的结构框图。他由CAN节点A/B、报文对象缓冲器、双CAN控制模块、端口控制、总线接口、中断控制等模块构成。

  

  端口控制模块实现CAN节点A/B收发数据;总线接口模块用于接收来自CPU的片选、时钟、地址、读写信号等信息,实现与CPU的信息交互;中断控制模块负责整理中断源信息,向CPU发出中断信号;双CAN控制模块是一个全局控制接口,他包括初始化逻辑、全局控制和状态逻辑以及中断请求接收器;报文缓冲单元包含报文缓冲区、FIFO缓冲区管理、网关控制逻辑以及一个基于中断请求发生单元的报文。CAN节点A/B分别又包括位流处理器、位定时控制单元、错误处理逻辑、中断请求产生单元和节点控制逻辑。其中CAN节点A/B、报文对象缓冲器、双CAN控制模块等模块构成了独立双CAN控制器的核心。图2给出了这几个核心模块的详细结构。

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

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

标签:
点赞   收藏

相关文章

发表评论

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

用户名: 验证码:

最新评论