Can总线网关控制器及can总线之间数据传输方法

文档序号:3948998阅读:500来源:国知局
专利名称:Can总线网关控制器及can总线之间数据传输方法
CAN总线网关控制器及CAN总线之间数据传输方法技术领域
本发明涉及一种通讯控制技术,特别涉及CAN总线数据交换控制领域。背景技术
控制器局域网CAN (Controller Area Network)是德国Bosch公司为
解决现代汽车中众多的控制与测试仪器之间的数据交换而应用开发的一种 通讯协议。按照ISO标准,CAN的拓扑结构为总线式,因此也称为CAN总 线,CAN总线是一种多主总线,通讯介质可以是双绞线、同轴电缆或光导 纤维,通讯速率可达lMb/s, CAN总线结构独特,性能可靠,被认为是最有 前途的现场控制总线之一,在汽车工业方面更是得到了广泛的应用。与传 统的零部件之间点对点式通讯的汽车相比,应用CAN总线的汽车主要有以 下几个优点大幅减少车内导线数量,节约了成本,同时也减轻了车身重 量;通讯可靠性更高,纠错能力强,抗干扰性能好;故障诊断方便。
目前很多汽车上都采用两条CAN总线的方式,分别称为动力系统高速 C認和车身系统低速CAN,动力系统高速C認主要连接对象是发动机控制器、 电机控制器、电池管理系统、安全气囊、ABS等与汽车行驶密切相关、数 据交换量较大、实时性要求非常高的控制系统。而车身低速CAN主要连接 对象是汽车门窗、中控台、仪表、照明、娱乐系统等实时性要求不太高的 车身电器控制系统。
由于两条CAN总线的协议包括速率都可能不一样,相互之间通讯并进 行数据交换时就需要转换协议,这就出现了汽车网关的概念。汽车网关主 要能在0SI参考模型的物理层、数据链路层和应用层上对双方不同的协议 进行翻译和解释。 一般的方法是在总线的某个CAN节点上增加一路CAN收 发器,在该CAN节点的控制程序里加入两个CAN网络间的协议转换子程序, 实现两条CAN总线的通讯。这样虽然实现了总线间通讯功能,但功能简单, 转发过程中如果接收数据的总线正被其他节点占用就可能导致数据丢失, 且无法实时监控CAN总线上各个节点的通讯状态、无法存储各个CAN节点 的通讯记录。

发明内容
本发明的主要目的是针对现有技术中存在的不足之处,提供一种CAN
总线网关控制器和相应的数据传输方法,首先,可有效防止两个不同协议
不同速率的"N网络间通讯过程中的数据丢失,次之,可实时监控、自动 存储各个CAN节点的通讯状态。
为实现上述目的,本发明提出一种CAN总线网关控制器,包括第一 CAN 收发器、第二CAN收发器、微控制器、数据存储模块,所述第一CAN收发 器、第二CAN收发器、数据存储模块分别与所述微控制器连接。
所述第一 CAN收发器或第二 CAN收发器包括第一光耦隔离模块、第二 光耦隔离模块、CAN收发模块,所述第一光耦隔离模块、第二光耦隔离模 块分别连接所述CAN收发模块的发送端、接收端。所述第一CAN收发器或 第二 CAN收发器还包括共模滤波器,与所述CAN收发模块的CAN接口连接。
同时,本发明提出了一种CAN总线之间数据传输方法,包括如下步骤 41)由CAN总线网关控制器接收从第一CAN总线发来的数据;42)判断该 数据是否需要转发;43)对需要转发的数据进行解析,并重新打包成第二 CAN总线上的协议格式;44)当第二 C認总线处于空闲状态,向其发送该 数据包。
上述的CAN总线之间数据传输方法,所述步骤42)的具体过程包括 在CAN总线网关控制器里设置表格,表格内容为所有需要在第一 C認总线 转发至第二 CAN总线的数据报文ID信息;每次CAN总线网关控制器从第一 CAN总线上收到一个报文时査找该表格;当查找到有相符的ID信息时表示 该数据需要转发至第二CAN总线。在所述步骤44)中,如果第二C認总线 正被其他节点占用,则将该数据包存入数据缓冲区,之后周期性扫描数据 缓冲区判断是否有需要发送的数据包,将数据包取出并发送。
上述的CAN总线之间数据传输方法,还包括如下步骤在数据缓冲区 里査询该数据包的时间与其存入缓冲区的时间,判断到二者差值小于预设 值T0时,将该数据包取出并发送;否则将其从缓冲区删除。
上述的CAN总线之间数据传输方法,还包括实时监控和网络诊断过程 每个节点周期性发送一个特定数据报文ID信息,CAN总线网关控制器以Tp 为一个周期对接收到的该特定数据报文ID信息进行计数,Tp时间到达后读取上述所有计数值,每一个读取到的计数值N表示Tp时间内收到的相应 数据包的个数,当N二O时表明相应节点发生了网络中断;Nl为网络诊断的 阈值,当0〈N〈N1,判定为发生了数据包丢失情况;当N^N1时判定为通讯 正常。其中,在CAN总线网关控制器里设置有表格,所述每个节点周期性 发送的特定数据报文ID信息存储于该表格内,每次从总线上收到一个报文 时査找该表格,当查找到有相符的ID信息时相应的计数值加1。
上述的CAN总线之间数据传输方法,在所述实时监控和网络诊断过程 中,CAN总线网关控制器以Td为周期发送各个CAN节点网络诊断的结果, 向其他节点通报整个CAN总线和其他节点的CAN通讯状况。在所述实时监 控和网络诊断过程中,当判定某个节点的通讯状态为数据包丢失或网络中 断时,自动将此信息存储于数据存储模块中,同时记录下故障发生的次数。
本发明的CAN总线网关控制器,通过微处理器的转发控制、设置数据 缓冲,可有效防止因两个CAN总线间协议和速率不一致导致数据包丢失的 情况,提高数据传输的可靠性。
应用本发明的CAN总线网关控制器,可周期性地发出各个节点的通讯 状态诊断结果,使得CAN总线上的每一个节点都可以知道其他节点的网络 状态,实时监控简单,有利于网络通讯方面的开发。同时可通过上位机连 接至CAN总线以实时査看各个节点的通讯状态。可自动存储各个CAN节点 的CAN通讯情况至存储器,通过读取存储器里的数据可准确知道各个CAN 节点的通讯情况,包括数据包丢失、网络中断的发生情况和次数等等,便 于故障检测和数据分析。
本发明的CAN总线网关控制器,只须两路完全一样的CAN收发器,硬 件构成简单,不存在兼容问题,更加可靠。
应用本发明的CAN总线网关控制器,将其两个CAN 口分别模拟高、低 速CAN总线上的所有其他节点,本发明的网关控制器还可作为一套检测其 网关功能的工装,可用于批量生产过程中抽检样品功能时使用,可快速简 便地实现产品的合格检测。

图l是本发明连接示意图2、图3是本发明实施例的电路图4是本发明实施例的数据传输控制主流程图。 图5、图6是本发明实施例的数据传输中的网络诊断流程图。具体实施方式

下面通过具体的实施例并结合附图对本发明作进一步详细的描述。
如图1所示,本例的CAN总线网关控制器包括微控制器、第一MN收 发器、第二CAN收发器、数据存储模块等。
电路部分原理图如图2和图3所示,其中第一CAN收发器、第二CAN 收发器的电路结构相同,包括一CAN收发模块、二个光耦隔离模块、 一共 模滤波器。外部电源,比如汽车上的12V直流电源通过电源调压器U1转成 5V,再通过调压器U2和U4转为3. 3V和1. 8V给微控制器、光耦、存储器 等供电。U6为微控制器,U16为数据存储模块,采用SPI接口的EEPR0M 存储器。U8、 U12为CAN收发模块,U7、 UIO、 Ull、 U14为光耦隔离模块, 网关控制器在正常运行期间,所有动态数据都在微控制器内转换处理,光 耦隔离模块和CAN收发模块是数据的一个流通路径,根据策略,当微控制 器判定有需存储的信息时才将数据存入EEPR0M存储器中。
U3和U5为电源隔离模块,将Ul转换得到的5V分别隔离成两路独立 的5V电源给两路CAN收发器供电,每一路CAN收发器使用两个光耦隔离模 块,每个光耦隔离模块的供电与其信号输出端使用同一个电源系统。这样 就实现了 CAN与CAN之间、CAN与微处理器之间的电气隔离。C認1H-0UT、 CAN1L-OUT与外部第一CAN总线连接,CAN2H-0UT、 CAN2L-OUT与外部第二 C認总线连接;在CAN收发模块与C認总线之间加了共模滤波器,有效降
低共模干扰,使得通讯更加可靠。
把本例的CAN总线网关控制器的两个CAN接口分别连接至第一、第二 CAN总线并作为其中的一个总线节点,如图1。这样使得CAN总线网关控制 器可以接收到第二 CAN总线和第一 CAN总线的所有数据报文。由于两路CAN 收发模块的电路构成及管理控制策略完全一样,下面描述从第一 CAN到第 二CAN转发数据的策略-
请参考图4所示,为本例的网关控制器的数据传输控制流程图,本例 的CAN总线网关控制器,应用于汽车中,设第一CAN总线为低速总线,设 第二CAN总线为高速总线。根据整车设计要求,在网关控制器里设置一个 表格,表格内容为所有需要从第一 CAN总线转发至第二 CAN总线的数据报
文ID信息;第一、第二CAN总线上任何一个模块发出CAN信息时,网关控 制器都会接收到并提取其ID信息,然后到上述ID列表里查询,如果找到 就表示需要转发,没找到就不需要转发。设置一个数据缓沖区,每次网关 控制器从第一 CAN总线上收到一个报文时査找上述表格,当査找到有相符 的ID信息时表示需要转发至第二CAN总线,这时将收到的该报文进行解析, 并重新打包成第二 CAN总线上的协议格式准备发送,此时如果第二 CAN总 线处于空闲状态,则立即发送该数据包,如果第二 CAN总线正被其他节点 占用,则将该数据包存入上述数据缓冲区,之后通过周期性的扫描数据缓 冲区判断是否有需要发送的数据包,如果有需要发送的数据包且在缓冲区 里査询到当次在缓冲区里读取到该数据包时的时间与其存入缓冲区的时间 差值小于预设值TO,则将该数据包取出并发送。否则将其从缓冲区删除。
从第二 CAN总线到第一 CAN总线的转发过程类同。
请参考图5、图6所示,在本例的数据传输中,实时监控和进行网络 诊断在网关控制器里设置另外一个表格,表格内容为CAN总线上每个节 点周期性发送的一个数据报文ID信息,这个周期性的报文采用广播式的报 文,即每个节点都往CAN总线上发送,不规定具体的接收方,总线上任意 节点都可接收。对接收到的数据包的个数以Tp为一个周期进行计数,每次 从总线上收到一个报文时査找上述表格,当查找到有相符的ID信息时相应 的计数值加l, Tp时间到达后读取上述所有计数值,则每一个读取到的计 数值N表示Tp时间内收到的相应数据包的个数,当N^时表明相应节点发 生了网络中断,0〈N〈N1,判定为发生了数据包丢失情况,当N》N1时判定 为通讯正常。分析处理完毕将上述所有计数值清零并进行下一个Tp时间间 隔内的计数与网络诊断处理。
网关控制器用 一个CAN数据包以Td为周期发送各个CAN节点网络诊断 的结果,此结果也是采用广播式报文,往CAN总线上发送,不规定接收方, 总线上的任何节点都可读取到该报文信息,在总线上接入的上位机也可接 收到该报文信息。这样使得其他节点可以知道整个汽车CAN总线和其他节 点的CAN通讯状况。
当判定某一个节点的通讯状态为数据包丢失或网络中断时就自动将此 信息存储于存储器里,同时记录下故障发生的次数。
数据转发过程中预设值TO值的大小与相应数据包的速率即发送周期
有关,设数据包的发送周期为TT,则T0《=TT。
网络诊断过程中Tp值的大小与所有待诊断报文发送周期的最大值有 关,从实时、精确方面考虑,这里MAX-TT《=Tp《=l0*MAX-TT, MAX-TT表示 所有待诊断报文中发送周期的最大值。Nl是一个网络诊断的阈值,Nl的大 小与TT和Tp有关,Tp/TT表示理想情况下Tp时间内应收到的报文数,本例取60%* (Tp/TT)《N1《90%* (Tp/TT)。
Td为网络诊断结果报文的发送周期,这里选取MAX-TT《=Td《=Tp。
从CAN总线特性以及各节点实时性方面考虑,本例可在协议里规定其 所有节点数据发送周期TT都为1秒,则TO也可选择1秒,这样保证每次 转发的是最新收到的数据,则MAX-TT=TT=1秒,Tp可选择5秒,所以 Tp/TT=5,则可选择M,为网络诊断的阈值,即肌=4。也就是说可在制 定CAN协议时规定所有可标识该节点的报文的发送周期一致,都为1秒, 每5秒进行一次网络诊断,根据5秒内收到的报文数来判断各个节点的CAN 通讯状况,如果收到的报文数大于等于4,则认为该节点通讯正常,如果 小于4但大于0,则认为其CAN通讯有丢包情况,如果为O则认为其发生 了 CAN网络中断。这里Td也可选择1秒。
网关控制器作为其批量生产时的功能检测工装的实施方法用此工装 的两路CAN 口分别模拟高速和第一 CAN总线与网关控制器连接。比如第二 C認总线上实际有A, B, C, D四个节点,现在用网关控制器的一个CAN 口 模拟这四个节点向总线上发送报文,并分别按通讯正常、丢包和网络中断 三种状态发送报文,通过监视网关控制器的故障报文信息情况可判断网关 控制器的网络诊断功能是否正常。
具体原理为该工装使用与网关控制器一样的硬件,因此有两路CAN 收发通道,比如用CAN2通道模拟整个第二 CAN总线上所有节点的CAN通讯 状态周期性的发送报文,用CAN1通道模拟整个第一 CAN总线上所有节点的 CAN通讯状态周期性的发送报文,因此工装的两路CAN 口实际上就相当于 汽车上的高低速总线,将待检测的网关控制器连接至该工装即模拟了其在 汽车上实际的工作环境,工装依次模拟汽车上某个节点通讯正常、丢包和 通讯中断这三种情况发送报文,则待检测的网关控制器应能正确诊断其状 态并通过故障报文形式发送至CAN总线,此时工装通过该故障报文的信息
决定其指示灯的点亮与熄灭,如果指示灯的闪烁状态与预先设定的策略一 致,则认为待检测产品合格,如果不一致则认为其不合格。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说 明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术 领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若 干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求
1.一种CAN总线网关控制器,其特征是包括第一CAN收发器、第二CAN收发器、微控制器、数据存储模块,所述第一CAN收发器、第二CAN收发器、数据存储模块分别与所述微控制器连接。
2. 如权利要求1所述的CAN总线网关控制器,其特征是所述第一 CAN 收发器或第二 CAN收发器包括第一光耦隔离模块、第二光耦隔离模块、 CAN收发模块,所述第一光耦隔离模块、第二光耦隔离模块分别连接所 述MN收发模块的发送端、接收端。
3. 如权利要求2所述的CAN总线网关控制器,其特征是所述第一 CAN 收发器或第二 CAN收发器还包括共模滤波器,与所述CAN收发模块的 CAN接口连接。
4. 一种CAN总线之间数据传输方法,包括如下步骤41)由C認总线网关 控制器接收从第一 CAN总线发来的数据;42)判断该数据是否需要转发; 43)对需要转发的数据进行解析,并重新打包成第二 CAN总线上的协议 格式;44)当第二CyVN总线处于空闲状态,向其发送该数据包。
5. 如权利要求4所述的(^N总线之间数据传输方法,其特征是,所述步骤 42)的具体过程包括在CAN总线网关控制器里设置表格,表格内容为 所有需要在第一 CAN总线转发至第二 CAN总线的数据报文ID信息;每 次CAN总线网关控制器从第一 CAN总线上收到一个报文时查找该表格; 当查找到有相符的ID信息时表示该数据需要转发至第二 CAN总线。
6. 如权利要求5所述的CAN总线之间数据传输方法,其特征是在所述步 骤44)中,如果第二CAN总线正被其他节点占用,则将该数据包存入 数据缓冲区,之后周期性扫描数据缓冲区判断是否有需要发送的数据 包,将数据包取出并发送。
7. 如权利要求6所述的CAN总线之间数据传输方法,其特征是还包括如 下步骤在数据缓冲区里査询该数据包的时间与其存入缓冲区的时间,判断到二者差值小于预设值TO时,将该数据包取出并发送;否则将其从缓冲区删除。
8. 如权利要求4所述的CAN总线之间数据传输方法,其特征是还包括实 时监控和网络诊断过程每个节点周期性发送一个特定数据报文ID信息,CAN总线网关控制器以Tp为一个周期对接收到的该特定数据报文 ID信息进行计数,Tp时间到达后读取上述所有计数值,每一个读取到 的计数值N表示Tp时间内收到的相应数据包的个数,当N=0时表明相 应节点发生了网络中断;Nl为网络诊断的阈值,当0〈N〈N1时判定为发 生了数据包丢失情况;当N》N1时判定为通讯正常。
9. 如权利要求8所述的CAN总线之间数据传输方法,其特征是在CAN 总线网关控制器里设置有表格,所述每个节点周期性发送的特定数据报 文ID信息存储于该表格内,每次从总线上收到一个报文时查找该表格, 当查找到有相符的ID信息时相应的计数值加1。
10. 如权利要求8所述的CAN总线之间数据传输方法,其特征是在所述实 时监控和网络诊断过程中,CAN总线网关控制器以Td为周期发送各个 CAN节点网络诊断的结果,向其他节点通报整个CAN总线和其他节点的 CAN通讯状况。
11. 如权利要求8所述的CAN总线之间数据传输方法,其特征是在所述实 时监控和网络诊断过程中,当判定某个节点的通讯状态为数据包丢失或 网络中断时,自动将此信息存储于数据存储模块中,同时记录下故障 发生的次数。
全文摘要
本发明公开了一种CAN总线网关控制器及CAN总线之间数据传输方法,该网关控制器包括第一CAN收发器、第二CAN收发器、微控制器、数据存储模块,第一CAN收发器、第二CAN收发器、数据存储模块分别与微控制器连接。本发明的方法通过转发控制、设置数据缓冲,可有效防止因两个CAN总线间协议和速率不一致导致数据包丢失的情况,提高数据传输的可靠性;同时,可周期性地发出各个节点的通讯状态诊断结果,使得CAN总线上的每个节点都可以知道其他节点的网络状态,实时监控简单,有利于网络通讯方面的开发,便于故障检测和数据分析。本发明的CAN总线网关控制器,只须两路完全一样的CAN收发器,硬件构成简单,不存在兼容问题,更加可靠。
文档编号B60R16/02GK101360036SQ20071007536
公开日2009年2月4日 申请日期2007年7月31日 优先权日2007年7月31日
发明者宋敬育, 聃 苏, 绪 袁 申请人:比亚迪股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1