CN101282301B - 双冗余can总线控制器及其报文处理方法 - Google Patents
双冗余can总线控制器及其报文处理方法 Download PDFInfo
- Publication number
- CN101282301B CN101282301B CN2008101063534A CN200810106353A CN101282301B CN 101282301 B CN101282301 B CN 101282301B CN 2008101063534 A CN2008101063534 A CN 2008101063534A CN 200810106353 A CN200810106353 A CN 200810106353A CN 101282301 B CN101282301 B CN 101282301B
- Authority
- CN
- China
- Prior art keywords
- bus
- module
- control unit
- modules
- buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Small-Scale Networks (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供了一种双冗余CAN总线控制器,设置于双线CAN总线上,其特征在于:两个CAN总线收发模块、两个初始化模块分别与CAN总线控制器模块A和CAN总线控制器模块B相对应;两个CAN总线控制器模块通过驱动器切换控制单元分别与两条CAN总线相连;初始化模块与总线控制器初始化寄存器相连,对所对应的CAN总线控制器模块进行初始化;协议处理模块与FIFO缓存器相连;FIFO缓存器通过逻辑接口与节点处理器连接;中断处理单元根据CAN总线控制器模块的控制命令对CAN总线收发模块发出相应的中断控制信号;CAN总线收发模块一路与协议处理模块直接相连,另一路通过总线接收缓存器与协议处理模块相连。该双冗余CAN总线控制器采用单片设计,可以达到了减少系统体积和功耗,提高系统可靠性的目的。
Description
技术领域
本发明涉及一种在分布式控制网络中对总线可靠度要求比较高的总线控制器,特别是一种具有双冗余结构设计的CAN总线控制器。同时,还涉及基于该双冗余CAN总线控制器所设计的对报文的处理方法,属于通信技术领域。
背景技术
总线作为分布式伺服控制系统的“经脉”,担负各子系统之间的数据交换和指令传输,是分布式控制系统的重要组成部分,它的性能好坏直接决定了整个分布式控制系统的性能。CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。CAN总线是德国Bosch公司从80年代初为解决现代汽车中的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议。它是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,检错能力非常强。由于其采用了许多新技术及独特的设计,它不仅在汽车控制系统、医疗仪器和船舶运输等方面有广泛应用,同样也在伺服控制领域同样有出色的表现。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。
虽然CAN总线已经具有了较高的可靠性,但它的可靠性是建立在单一的CAN总线回路中的,一旦该路总线上的任何部位出现瞬时或永久性的故障,都会造成一段时间内分布式控制网络的通信故障。目前已经有很多机构对基于CAN的双冗余多总线网络作了研究,并提出了很多相应的容错策略。但这些冗余的CAN结构,均采用分立器件搭建而成,这种设计的结果是一个以功能集成电路为基础,器件分布式的应用电子系统结构,设计结果能否满足设计要求不仅取决于电路芯片的技术参数,而且与整个系统PCB板图的电磁兼容特性有关,同时还必须考虑分布式系统对电路固件特性的影响,这就给设计带来了极大的难度,和不确定性。
发明内容
本发明的发明目的在于解决现有技术中由分立器件构成CAN总线通信系统中存在的不足,提供一种可以达到单片设计目的的双冗余CAN总线控制器,以达到了减少系统体积和功耗,提高系统可靠性的目的。
本发明的发明目的还在于提供一种适合于上述双冗余CAN总线控制器的报文处理方法。
本发明的发明目的是通过下述技术方案予以实现的:
双冗余CAN总线控制器,设置于双总线结构CAN总线上,其特征在于:包括两个CAN总线控制器模块、两个CAN总线收发模块、两个初始化模块、一个协议处理模块、一个总线接收缓存器、一个中断处理单元、一个驱动器切换控制单元、一个总线控制器初始化寄存器、一个FIFO缓存器、逻辑接口和节点处理器;
所述两个CAN总线控制器模块分别为CAN总线控制器模块A和CAN总线控制器模块B;所述两个CAN总线收发模块、两个初始化模块分别与CAN总线控制器模块A和CAN总线控制器模块B相对应;所述两个CAN总线控制器模块通过所述驱动器切换控制单元分别与两条CAN总线相连;所述初始化模块与所述总线控制器初始化寄存器相连,对所对应的CAN总线控制器模块进行初始化;所述协议处理模块与FIFO缓存器相连;所述FIFO缓存器通过逻辑接口与所述节点处理器连接;所述中断处理单元根据CAN总线控制器模块的控制命令对CAN总线收发模块发出相应的中断控制信号;所述CAN总线收发模块一路与协议处理模块直接相连,另一路通过总线接收缓存器与协议处理模块相连。
所述CAN总线收发模块包括:总线接收模块、总线发送模块、CAN发送缓存器;
所述总线接收模块、总线发送模块与所对应的CAN总线控制器模块相连;总线发送模块通过对应的CAN发送缓存器与所述协处理器相连;所述总线接收模块则通过所述总线接收缓存器与协议处理器相连;所述中断处理单元发出的中断控制信号发送至所述总线接收模块或总线发送模块。
所述驱动器切换控制单元中包括两个总线驱动器,分别对应所述两个CAN控制器模块。
所述驱动器切换控制单元中的两个总线驱动器在所述协议处理模块的控制下可切换所对应的CAN控制器模块。
双冗余CAN总线控制器的报文接收方法,其特征在于:
a1)从两个CAN控制器模块接收到的报文,放入总线接收缓存器;
a2)当总线接收缓存器中存有报文,协议处理模块根据报文帧类型做出相应的处理;
a3i)对于监控帧和无编号帧,协议处理模块解析后,生成应答报文送入CAN发送缓冲器;
a3ii)对于信息帧,协议处理模块经过处理存入FIFO缓存器中,等待节点处理器读取,同时由逻辑接口给出中断;
a4)节点处理器收到逻辑接口给出中断,读取FIFO缓存器中存储的报文。
双冗余CAN总线控制器的报文发送方法,其特征在于:
b1)节点处理器检查逻辑接口的状态寄存器发送状态位;
b2)若该发送状态位不为满则将报文送入FIFO缓存器中,等待协议处理模块处理;
b3)协议处理模块对报文打包加入控制字段后,将报文根据发送状态表,交给对应的CAN发送缓存器等待发送;
b4)总线发送模块从对应的CAN发送缓存器中读取打包后的报文,并由CAN控制器模块发送。
本发明的有益效果是:
1、本发明所提供的双冗余CAN总线控制器位采用单片设计,可以达到了减少系统体积和功耗,提高系统可靠性的目的;
2、本发明所提供的双冗余CAN总线控制器结构简单,为开发者提供了简单易行的解决方案,提高开发效率。
附图说明
图1为双冗余CAN总线控制器的总体结构图;
图2为单机双冗余CAN总线结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步描述。
虽然CAN总线已经具有了较高的可靠性,但它的可靠性是建立在单一的CAN总线回路中的,一旦该路总线上的任何部位出现瞬时或永久性的故障,都会造成一段时间内分布式控制网络的通信故障。因此,对于一些对可靠性和实时性要求比较高的通信系统中,一般的CAN总线结果不足以满足其实际需要。
基于以上原因,本发明采用了单机双冗余CAN总线的结构设计。如图2所示,所谓单机双冗余CAN总线结构,即CAN总线由两条总线组成,在总线上的每个CAN节点包括一个节点处理器、两个总线控制器和两个总线驱动器,节点处理器通过不同的端口和中断同时控制两路总线。这种结构设计虽然牺牲了一定的器件成本和能耗,但是由于采用了两条总线的备份结构,使得系统的可靠性和实时性有了较大提升。
图1为本发明所设计的双冗余CAN总线控制器的总体结构图。双冗余CAN总线控制器包括:两个独立的CAN总线控制器模块、两个CAN总线收发模块、两个初始化模块、一个协议处理模块、一个总线接收缓存器、一个中断处理单元、一个驱动器切换控制单元、一个总线控制器初始化寄存器、一个FIFO缓存器(First In First Out,先进先出数据缓存器)、逻辑接口和节点处理器(图中未示)。
两个独立的CAN总线控制器模块分别为CAN总线控制器模块A和CAN总线控制器模块B。两个CAN总线收发模块、两个初始化模块分别与CAN总线控制器模块A和CAN总线控制器模块B相对应。两个CAN总线控制器模块通过驱动器切换控制单元与两条CAN总线相连。初始化模块与总线控制器初始化寄存器相连,对所对应的CAN总线控制器模块进行初始化。协议处理模块与FIFO缓存器相连。该FIFO缓存器通过逻辑接口与节点处理器连接。中断处理单元根据CAN总线控制器模块的控制命令对CAN总线收发模块发出相应的中断控制信号。
该CAN总线收发模块包括:总线接收模块、总线发送模块、CAN发送缓存器。该总线接收模块、总线发送模块与相应的CAN总线控制器模块相连。总线发送模块通过与其相应的CAN发送缓存器与协处理器相连。总线接收模块则通过所述总线接收缓存器与协处理器相连。前述中断处理单元发出的中断控制信号发送至总线接收模块或总线发送模块。
总线发送模块,采用中断发送的方式,当发送完成中断有效且接收中断非有效时,启动发送状态机,查询CAN发送缓存器是否为空,若CAN发送缓存器不为空则启动一次发送;总线发送模块将新的报文写入对应的CAN发送缓存器并置位命令寄存器的发送请求TR标志,此时对应的CAN总线控制器将启动发送。
总线接收模块,采用中断接收的方式,当接收中断有效时,把接收FIFO缓存器中的报文存储到指定存储空间中,并写命令寄存器,释放接收FIFO缓存器。当完成上述操作后,CAN总线控制器的接收中断跳到高电平。如果这段时间有接收FIFO缓存器里有更多有效报文,立刻将中断输出再次设为低电平。因此输出仅在很短的时间里保持高电平。接收中断再次拉低,总线接收模块继续接收下一帧报文。
协议处理模块用以执行通信链路层的通信协议,通过调用控制器底层驱动模块,完成总线的接收、发送、容错处理、流量控制、错误重传等功能,保证总线接收和发送的高效可靠。
初始化模块主要任务是在CAN控制器模块在上电或复位后设置其通信模式,包括设置标准帧/扩展帧模式选择、总线波特率、位定时时间、验收滤波器、中断控制方式等。
驱动器切换控制单元中包括两个总线驱动器,分别对应两个CAN控制器模块。值得一提的是,本发明为防止一条总线和与另一条总线相对应的总线驱动器同时发生故障,而造成整个节点无法正常通信的情况,专门设计协议处理模块可对驱动器切换控制单元进行切换控制,即驱动器切换控制单元中的两个总线驱动器可在协议处理模块的控制下切换所对应的CAN控制器模块,保证了该节点仍然可以进行通信,进一步增强了该双冗余CAN总线控制器的可靠性。
本案发明人对于由上述双冗余CAN总线控制器所组成的通信系统,定义了三种类型的帧:信息帧、监控帧、无编号帧。信息帧用来实现数据信息传输。监控帧用来实现对数据链路监控。无编号帧用来设置链路响应方式、链路初始化、链路测试、复位等一系列链路控制任务。
基于上述双冗余CAN总线控制器的报文接收方法,包括下述步骤:
a1)从两个CAN控制器模块接收到的报文,放入总线接收缓存器;
a2)当总线接收缓存器中存有报文,协议处理模块根据报文帧类型做出相应的处理;
a3i)对于监控帧和无编号帧,协议处理模块解析后,生成应答报文送入CAN发送缓冲器;
a3ii)对于信息帧,协议处理模块经过处理存入FIFO缓存器中,等待节点处理器读取,同时由逻辑接口给出中断;
a4)节点处理器收到逻辑接口给出中断,读取FIFO缓存器中存储的报文。
基于上述双冗余CAN总线控制器的报文发送方法,包括下述步骤:
b1)节点处理器检查逻辑接口的状态寄存器发送状态位;
b2)若该发送状态位不为满则将报文送入FIFO缓存器中,等待协议处理模块处理;
b3)协议处理模块对报文打包加入控制字段后,将报文根据发送状态表,交给对应的CAN发送缓存器等待发送;
b4)总线发送模块从对应的CAN发送缓存器中读取打包后的报文,并由CAN控制器模块发送。
Claims (1)
1.双冗余CAN总线控制器的报文发送方法,基于双冗余CAN总线控制器实现,所述双冗余CAN总线控制器,设置于双总线结构CAN总线上,包括两个CAN总线控制器模块、两个CAN总线收发模块、两个初始化模块、一个协议处理模块、一个总线接收缓存器、一个中断处理单元、一个驱动器切换控制单元、一个总线控制器初始化寄存器、一个FIFO缓存器、逻辑接口和节点处理器;所述两个CAN总线控制器模块分别为CAN总线控制器模块A和CAN总线控制器模块B;所述两个CAN总线收发模块、两个初始化模块分别与CAN总线控制器模块A和CAN总线控制器模块B相对应;所述两个CAN总线控制器模块通过所述驱动器切换控制单元分别与两条CAN总线相连;所述初始化模块与所述总线控制器初始化寄存器相连,对所对应的CAN总线控制器模块进行初始化;所述协议处理模块与FIFO缓存器相连;所述FIFO缓存器通过逻辑接口与所述节点处理器连接;所述中断处理单元根据CAN总线控制器模块的控制命令对CAN总线收发模块发出相应的中断控制信号;所述CAN总线收发模块一路与协议处理模块直接相连,另一路通过总线接收缓存器与协议处理模块相连;
所述CAN总线收发模块包括:总线接收模块、总线发送模块、CAN发送缓存器;所述总线接收模块、总线发送模块与所对应的CAN总线控制器模块相连;总线发送模块通过对应的CAN发送缓存器与所述协议处理模块相连;所述总线接收模块则通过所述总线接收缓存器与协议处理模块相连;所述中断处理单元发出的中断控制信号发送至所述总线接收模块或总线发送模块;其特征在于:
b1)节点处理器检查逻辑接口的状态寄存器发送状态位;
b2)若该发送状态位不为满则将报文送入FIFO缓存器中,等待协议处理模块处理;
b3)协议处理模块对报文打包加入控制字段后,将报文根据发送状态表,交给对应的CAN发送缓存器等待发送;
b4)总线发送模块从对应的CAN发送缓存器中读取打包后的报文,并由CAN总线控制器模块发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101063534A CN101282301B (zh) | 2008-05-12 | 2008-05-12 | 双冗余can总线控制器及其报文处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101063534A CN101282301B (zh) | 2008-05-12 | 2008-05-12 | 双冗余can总线控制器及其报文处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101282301A CN101282301A (zh) | 2008-10-08 |
CN101282301B true CN101282301B (zh) | 2011-01-12 |
Family
ID=40014584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101063534A Expired - Fee Related CN101282301B (zh) | 2008-05-12 | 2008-05-12 | 双冗余can总线控制器及其报文处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101282301B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582799B (zh) * | 2009-06-22 | 2013-03-06 | 浙江大学 | 基于can冗余的总线切换方法 |
CN101807986A (zh) * | 2010-04-20 | 2010-08-18 | 杭州和利时自动化有限公司 | 一种冗余串行总线的实现方法及装置 |
CN102055633B (zh) * | 2010-09-29 | 2013-01-23 | 航天东方红卫星有限公司 | 一种星载双can总线节点故障自恢复系统 |
CN102664779B (zh) * | 2012-03-31 | 2015-07-08 | 航天东方红卫星有限公司 | 一种can总线数据传送方法 |
CN103198044B (zh) * | 2013-03-12 | 2015-09-09 | 首都师范大学 | 一种pci双冗余can总线卡 |
CN108989167A (zh) * | 2017-05-31 | 2018-12-11 | 江苏兴云新能源有限公司 | 控制器局域网系统 |
CN110852931B (zh) * | 2019-11-18 | 2023-08-22 | 天津津航计算技术研究所 | 一种适用于vpx架构的高性能cpu刀片装置 |
CN110901568B (zh) * | 2019-12-04 | 2021-11-12 | 东风汽车集团有限公司 | 具有冗余备份功能的新型车载网络 |
CN112291128B (zh) * | 2020-10-29 | 2022-10-21 | 黑芝麻智能科技(上海)有限公司 | 基于总线的通信系统、片上系统和用于其的方法 |
CN113050475A (zh) * | 2021-02-24 | 2021-06-29 | 北京航空航天大学 | 一种基于VPX的CAN和1553b双冗余架构设计方法 |
CN114726676A (zh) * | 2022-04-25 | 2022-07-08 | 宁波天擎航天科技有限公司 | 一种can总线双通路备份中冗余消息处理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2423616Y (zh) * | 2000-05-18 | 2001-03-14 | 中国船舶重工集团公司第七研究院第七一一研究所 | 船用双现场总线信号预处理装置的主机板 |
CN1303162A (zh) * | 2001-02-15 | 2001-07-11 | 北京哈德威四方保护与控制设备有限公司 | 变电站自动化系统测控单元通信管理装置 |
-
2008
- 2008-05-12 CN CN2008101063534A patent/CN101282301B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2423616Y (zh) * | 2000-05-18 | 2001-03-14 | 中国船舶重工集团公司第七研究院第七一一研究所 | 船用双现场总线信号预处理装置的主机板 |
CN1303162A (zh) * | 2001-02-15 | 2001-07-11 | 北京哈德威四方保护与控制设备有限公司 | 变电站自动化系统测控单元通信管理装置 |
Non-Patent Citations (3)
Title |
---|
JP特开2007-251722A 2007.09.27 |
杨亮,贾庆轩,孙汉旭.冗余CAN总线系统设计.冗余CAN总线系统设计第20卷 第5期.2007,第20卷(第5期),4-5. |
杨亮,贾庆轩,孙汉旭.冗余CAN总线系统设计.冗余CAN总线系统设计第20卷 第5期.2007,第20卷(第5期),4-5. * |
Also Published As
Publication number | Publication date |
---|---|
CN101282301A (zh) | 2008-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101282301B (zh) | 双冗余can总线控制器及其报文处理方法 | |
US4607365A (en) | Fault-tolerant communications controller system | |
CN102023953B (zh) | 具有多路i2c总线的系统的控制方法 | |
CN101908974B (zh) | Can总线双冗余热切换系统及热切换方法 | |
US8127059B1 (en) | Apparatus for interconnecting hosts with storage devices | |
CN101710314B (zh) | 高速外围部件互连交换控制器及其实现方法 | |
CN101296065B (zh) | 一种提高冗余主站可靠性的方法及系统 | |
CN1909559B (zh) | 基于快速外围组件互连的接口板及其切换主控板的方法 | |
WO2007148462A1 (ja) | 制御装置 | |
CN100367258C (zh) | 主从系统中直接内存存取控制器及总线结构 | |
CN101895423A (zh) | 以太网中的数据传输方法和系统 | |
CN109995681B (zh) | 一种单芯片实现双主控主备切换的装置及方法 | |
US20220382706A1 (en) | Peripheral component interconnect express interface device and operating method thereof | |
CN103530215B (zh) | 一种内部集成电路主机的自检方法、装置及主机 | |
CN102763087B (zh) | Cpu间互联容错的实现方法及系统 | |
CN110069437B (zh) | 基于响应帧有效性的rs-485总线极性自适应方法 | |
US5964845A (en) | Processing system having improved bi-directional serial clock communication circuitry | |
KR102554978B1 (ko) | 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템 | |
CN101630156B (zh) | 可编程音乐喷泉控制系统 | |
KR20080016438A (ko) | 데이터 처리 장치, 모드 관리 장치 및 모드 관리 방법 | |
US4783733A (en) | Fault tolerant communications controller system | |
CN101281510B (zh) | 一种双i2c总线设置方法和双i2c总线系统 | |
CN101170780B (zh) | 双模终端中防止两个无线模块之间电流倒灌的方法 | |
CN112988645B (zh) | 一种架构在mipi dsi总线的一对多传输方法 | |
CN201349219Y (zh) | 异步通信控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110112 Termination date: 20110512 |