一种硬切换的双冗余can控制器的制作方法

文档序号:6310642阅读:200来源:国知局
专利名称:一种硬切换的双冗余can 控制器的制作方法
技术领域
本发明属于CAN总线通讯领域,具体涉及ー种纯硬件切換的双冗余控制器。
背景技术
目前使用的双冗余CAN总线系统大多通过软件进行切換,切换效率低,切換条件単一,不能满足网络对不同可靠性的要求;并且采用双控制器双总线的冗余模式,模式单一,节点仅能工作在冗余模式下;用户需要对两个总线控制器进行配置,系统复杂,增加软件负担。相关的专利成果有双几余CAN总线通彳目系统及其通彳目方法,双几余CAN总线控制器及其报文处理方法,CAN总线双冗余热切换系统,CAN总线双冗余热切换系统和热切换方法。目前的双冗余CAN控制器的切換方法及冗余模式不能满足对高切换效率,多种可 靠性,系统灵活性及小型化系统的要求。

发明内容
本发明针对实际系统需求,以及现有成果的不足,提出一种纯硬件切換,使用灵活,操作简单的双冗余CAN控制器。具体如下本发明的技术解决方案是ー种硬切換的双冗余CAN控制器,能够实现的功能有冗余模式和非冗余模式两种工作模式;四种不同的切換条件级别及切換命令;非当前通道对用户透明;两个CAN通道的切換功能;CAN控制器的所有功能。为实现以上功能,双几余CAN控制器包括四个t旲块总线接ロ t旲块,切换控制丰旲块,两个CAN总线控制器模块。总线接ロ模块提供wishbone总线接ロ,非当前通道的数据处理。wishbone总线接ロ主要用于外部总线与片内总线的数据交换,并给出应答。非当前通道的数据处理方法是写操作吋,对两个通道都进行写;读操作吋,如果读寄存器,读当前通道的寄存器,如果读接收FIFO,根据切换控制模块给出的标志信息,读出先存入接收FIFO的数据。切换控制模块包括三个寄存器,切换控制逻辑,信息计数器的控制逻辑。三个寄存器为切换模式寄存器,切換状态寄存器,节点的接收FIFO信息计数器。切换模式寄存器用来设置节点的工作模式和每个通道的切换级别;工作模式包括冗余模式和非冗余模式;根据系统对可靠性的要求,可设置四个切换级别,切换级别越高,可靠性越高,错误容忍度越低。切换状态寄存器为只读寄存器,其值表明该节点是发送节点或接收节点,哪个通道在发送或接收,以及发送接收过程中是否发生过切换的状态信息,读该寄存器,可清除发送接收过程中的切换标志。节点的接收FIFO信息计数器用来存放两个控制器的接收FIFO中可用信息之和。在冗余模式下,切换控制逻辑在切換条件满足时,产生切換中断,给出切换状态,当前通道重发两次后,发生切換。若重发成功,切換后的当前通道不再重发当前帧;若重发不成功,切換后的当前通道,重发当前帧;在切换级别最低的情况下,控制器连续两次发送不足五帧数据就发生切換,会产生切換阻塞,阻塞后不会发生切換,直到总线关闭并恢复后,在切换条件满足的情况下才会再次发生切换。在非冗余模式下,切换条件满足也不发生切换,此时相当于单通道的CAN总线控制器。信息计数器的控制逻辑,根据每个通道接收或者释放的数据,对其进行计数值的改变,并对存入哪个通道的接收FIFO给出标记。CAN通道主要完成CAN通讯协议的功能,两种工作模式,基本模式和扩展模式。由12个模块组成,包括寄存器模块,位时序逻辑模块,状态控制模块,发送模块,接收模块,CRC序列产生模块,位填充模块,错误管理模块,中断管理模块,接收FIFO模块,同步模块,验收滤波模块。寄存器模块是一组寄存器,用于存储配置信息以及CAN总线的通信数据。通过配置相关寄存器,可以实现对总线控制器工作模式,定时信息,发送数据等的配置;读取相关寄存器可以获得总线控制器当前的工作状态,中断情况及错误等信息。位时序逻辑模块实现CAN控制器位定时和同步功能。状态控制模块确定数据在发送或者接收过程中处于数据帧或者远程帧的哪个场。发送模块完成发送数据帧,远程帧,错误帧或过载帧,以及发送协议规定的特定位的电平值。接收逻辑完成的功能是将接收到的帧进行拆帧,验收滤波,然后将数据存入接收缓冲器。CRC序列产生模块根据发送或接收的数据产生CRC校验序列。位填充模块根据CAN协议的编码规则,发送时,加入填充位;接收时,去除填充位的功 能。错误管理模块完成错误检测和错误界定的功能,包括检测五种不同的错误类型,并改变错误计数器的值,给出总线的状态。中断管理模块对不同工作模式下的不同中断进行处理,并给出中断信号及中断清除。接收FIFO模块共有64个字节,用来存放接收到的数据,根据读写控制信号,正确存入读出数据。同步模块对接收到的电平值进行同步处理。验收滤波模块完成验收滤波的功能,能够实现标准帧,扩展帧的单滤波功能和双滤波功能。本发明的有益效果是(I)本发明中的切换为纯硬件切换,切换效率高,纳秒级完成切换(2)本发明中每个CAN通道有4个切换级别可设置,可以满足对不同可靠性的要求。(3)本发明可工作在冗余模式和非冗余模式下,应用范围广,可以满足对系统的不同要求(4)本发明非当前通道对用户透明,减少软件负担,操作简单方便。


图I是本发明CAN控制器结构框图。图2是CAN控制器中的CAN模块结构框图。
具体实施例方式下面结合附图对本发明做详细描述。控制器结构如图I所示。I为总线接口模块,2为通道切换控制模块,3为第一 CAN总线控制器模块,4为第二 CAN总线控制器模块,5为wishbone总线的地址数据信号线,6为wishbone总线的接口控制信号线,7为控制器内部的地址数据信号线,8为内部的控制信号线,9为第一 CAN总线控制器模块与外部收发器的接口信号线,10为第二 CAN总线控制器模块与外部收发器的接口信号线。控制器通过wishbone总线的地址数据信号线5, wishbone总线的接口控制信号线6与外部wishbone主设备进行通讯;总线接ロ模块1,通道切换控制模块2,第一 CAN总线控制器模块3,第二 CAN总线控制器模块4通过控制器内部的地址数据信号线7,内部的控制信号线8完成地址数据及内部控制信号的传递;通道切换控制模块2通过接收到的控制及数据信号确定两个通道的状态,是否进行切換,以及信息计数器的控制,并将这些信号传递给总线接ロ模块1,第一 CAN总线控制器模块3,第二 CAN总线控制器模块4 ;第一 CAN总线控制器模块3,第二 CAN总线控制器模块4通过接收到的通道及切换状态信息、控制信息、数据信息等确定各自的工作情况;第一 CAN总线控制器模块与外部收发器的接ロ信号线9,第二 CAN总线控制器模块与外部收发器的接ロ信号线10分别与外部收发器连接。第一 CAN总线控制器模块3和第二 CAN总线控制器模块4的结构如图2所示,11为寄存器模块,12为验收滤波模块,13为64字节的接收FIFO,14为状态控制模块,15为CRC序列产生模块,16为接收模块,17为位填充模块,18为错误管理模块,19为发送模块,20为位时序逻辑模块,21为中断管理模块,22为同步模块,23为CAN总线控制器模块与接ロ逻辑模块之间的地址数据信号线,24为CAN总线控制器模块与接ロ逻辑模块之间的控制信号线,25为两个CAN模块之间的信号线,26为CAN总线控制器模块的接收信号线,27为CAN 总线控制器模块的发送信号线。对于发送,位时序逻辑模块20根据寄存器模块11的设置确定数据通讯波特率,并确定发送点的位置,传递给发送模块19 ;发送模块19根据寄存器模块11和信号线24给出的模式,状态,切换及控制等信息,确定是否发送数据,并将寄存器模块11给出的需要发送的数据组帧,然后由位填充模块17确定加入填充位的位置,发送模块19加入填充位,经过信号线27将数据发送出去;发送完成后,将中断信号传给中断管理模块21 ;如果发送过程中,发生错误,将错误类型传给错误管理模块18,并且发送模块19开始发送错误帧;错误管理模块18根据错误类型改变错误计数器的值,确定总线状态,并将状态信息传给状态控制模块14,计数值通过信号线25传送出去。对于接收,位时序逻辑模块20根据寄存器模块11的设置确定数据通讯波特率,并确定采样点的位置;同步模块22将信号线26的数据进行同步后,传给位时序逻辑模块20 ;位时序逻辑模块20根据采样模式及采样点将采样值传给接收模块16 ;接收模块16根据状态控制模块14给出的状态,及位填充模块17给出去的需要去除填充位的位置,去除填充位,并拆帧;将ID信息传给验收滤波模块12,验收滤波模块12根据寄存器模块11设置的验收滤波的模式及滤波器的值,确定是否将接收的数据存入64字节的接收FIFO 13,并将比较结果传给接收模块16 ;接收模块16根据比较结果将有效信息写入64字节的接收FIFO13 ;接收模块16在接收中将去除填充位的数据给CRC序列产生模块15 ;CRC序列产生模块15将计算结果传给接收模块16 ;接收模块16接收完毕,将中断信息给中断管理模块21 ;接收中出现错误,将错误类型传给错误管理模块18,错误管理模块18对错误进行处理,同吋,发送模块19发送错误帧。最后,寄存器模块11将状态,中断信息传给接ロ ;64字节的接收FIFO 13将数据传给接ロ。根据上述方案,用Verilog HDL语言对控制器的逻辑设计进行描述,并完成逻辑综合与布局布线;同吋,设计ー款CPCI验证板,将控制器设计映射到可编程逻辑器件中实现,并对控制器的功能进行测试。测试结果表明本发明具有很好的可实施性,且性能满足预期。
权利要求
1.一种硬切换的双冗余CAN控制器,其特征在于包括总线接口模块,切换控制模块,第一 CAN总线控制器模块、第二 CAN总线控制器模块; 总线接口模块用于外部总线与片内总线的数据交换,并给出应答;通道切换控制模块从两个CAN总线控制器模块接收控制及数据信号确定第一 CAN总线控制器模块、第二 CAN总线控制器模块的状态,判断是否进行切换,并将所述控制及数据信号传递给总线接口模块,第一 CAN总线控制器模块,第二 CAN总线控制器模块。
2.根据权利要求I所述的控制器,其特征在于总线接口模块在非当前CAN通道的数据处理方法是写操作时,对两个通道都进行写;读操作时,如果读寄存器,读当前通道的寄存器,如果读接收FIFO,根据切换控制模块给出的标志信息,读出先存入接收FIFO的数据。
3.根据权利要求I或2所述的控制器,其特征在于切换控制模块包括三个寄存器切换模式寄存器,切换状态寄存器,节点的接收FIFO信息计数器;切换模式寄存器设置节点的工作模式和每个通道的切换级别;切换状态寄存器为只读寄存器,其值表明该节点是发送节点或接收节点,哪个通道在发送或接收,以及发送接收过程中是否发生过切换的状态信息,读该寄存器,可清除发送接收过程中的切换标志;节点的接收FIFO信息计数器用来存放两个CAN总线控制器模块的接收FIFO中可用信息之和;根据每个通道接收或者释放的数据,对其进行计数值的改变,并对存入哪个通道的接收FIFO给出标记。
4.根据权利要求3所述的控制器,其特征在于在冗余模式下,当切换控制逻辑在切换条件满足时,产生切换中断,切换控制模块给出切换状态,当前CAN通道重发两次后,发生切换;若重发成功,切换后的当前CAN通道不再重发当前帧;若重发不成功,切换后的当前CAN通道,重发当前帧;在切换级别最低的情况下,控制器连续两次发送不足五帧数据时发生切换,产生切换阻塞,阻塞后不会发生切换,直到总线关闭并恢复后,在切换条件满足的情况下再次发生切换;在非冗余模式下,切换条件满足也不发生切换,此时相当于单通道的CAN总线控制器。
5.根据权利要求3所述的控制器,其特征在于所述工作模式包括冗余模式和非冗余模式。
6.根据权利要求I或2所述的控制器,其特征在于所述总线接口模块为Wishbone总线接口。
7.根据权利要求I或2所述的控制器,其特征在于,所述第一CAN总线控制器模块、第二 CAN总线控制器模块均包括寄存器模块,位时序逻辑模块,状态控制模块,发送模块,接收模块,CRC序列产生模块,位填充模块,错误管理模块,中断管理模块,接收FIFO模块,同步模块,验收滤波模块; 对于发送,位时序逻辑模块根据寄存器模块的设置确定数据通讯波特率,并确定发送点的位置,传递给发送模块;发送模块寄存器模块给出的需要发送的数据组帧,由位填充模块确定加入填充位的位置加入填充位,数据发送出去,发送完成后,将中断信号传给中断管理模块;如果发送过程中发生错误,将错误类型传给错误管理模块,并且发送模块开始发送错误帧;错误管理模块根据错误类型改变错误计数器的值,确定总线状态,并将状态信息传给状态控制模块; 对于接收,位时序逻辑模块根据寄存器模块的设置确定数据通讯波特率,并确定采样点的位置;同步模块将接收到的数据进行同步后,传给位时序逻辑模块;位时序逻辑模块根据采样模式及采样点将采样值传给接收模块;接收模块根据状态控制模块给出的状态,及位填充模块给出去的需要去除填充位的位置,去除填充位,并拆帧;将ID信息传给验收滤波模块,验收滤波模块根据寄存器模块设置的验收滤波的模式及滤波器的值,确定是否将接收的数据存入64字节的接收FIFO,并将比较结果传给接收模块;接收模块根据比较结果将有效信息写入64字节的接收FIFO ;接收模块在接收中将去除填充位的数据给CRC序列产生模块;CRC序列产生模块将计算结果传给接收模块;接收模块接收完毕,将中断信息 给中断管理模块;接收中出现错误,将错误类型传给错误管理模块,错误管理模块对错误进行处理,同时,发送模块发送错误帧;最后,寄存器模块将状态、中断信息传给接口 ;64字节的接收FIFO将数据传给接口。
全文摘要
一种硬切换的双冗余CAN控制器,其特征在于包括总线接口模块,切换控制模块,第一CAN总线控制器模块、第二CAN总线控制器模块;总线接口模块用于外部总线与片内总线的数据交换,并给出应答;通道切换控制模块从两个CAN总线控制器模块接收控制及数据信号确定第一CAN总线控制器模块、第二CAN总线控制器模块的状态,判断是否进行切换,并将所述控制及数据信号传递给总线接口模块,第一CAN总线控制器模块,第二CAN总线控制器模块。本发明中的切换为纯硬件切换,切换效率高,纳秒级完成切换;可以满足对不同可靠性的要求;应用范围广;减少软件负担,操作简单方便。
文档编号G05B19/04GK102759891SQ201210186270
公开日2012年10月31日 申请日期2012年6月7日 优先权日2012年6月7日
发明者刘泽响, 吕树云, 王瑞晓, 翟雯艳 申请人:中国航天科技集团公司第九研究院第七七一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1