CN102291334A - 一种汽车车身can-lin网关的设计 - Google Patents
一种汽车车身can-lin网关的设计 Download PDFInfo
- Publication number
- CN102291334A CN102291334A CN2010102038433A CN201010203843A CN102291334A CN 102291334 A CN102291334 A CN 102291334A CN 2010102038433 A CN2010102038433 A CN 2010102038433A CN 201010203843 A CN201010203843 A CN 201010203843A CN 102291334 A CN102291334 A CN 102291334A
- Authority
- CN
- China
- Prior art keywords
- task
- lin
- message
- gateway
- design
- 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.)
- Pending
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
一种汽车车身CAN-LIN网关的设计,本发明属于汽车通信***中的车载总线网关技术,其方式是基于实时操作***uC/OS-II,运用虚拟CAN节点的设计思想,实现了混合网络一致、透明的数据通讯,完成了对CAN-LIN网关的软硬件设计。针对网关节点在垂直网络中的特殊地位,其协议转换导致的延时容易造成消息丢弃的现象,本发明构造了消息缓冲队列结构,降低了***消息丢包率。同时,成功将多关键度任务调度算法引入本***,使得***在过载时,仍能保证高关键任务优先调度的情况下让尽可能多的次关键或非关键任务得到执行。本发明积极地效果是将实时操作***引入汽车网关中,适用于汽车车身控制***等对安全关键度要求较高的实时环境。
Description
技术领域
本发明属于汽车通信网络***技术领域,特别涉及CAN总线与LIN总线的网关设计。
背景技术
汽车通信***是现代汽车的重要标志。如今,为了减少汽车车身线束,现场总线技术已经广泛应用于车身电子控制***。目前汽车上普遍采用的车载总线有:局部互联协议LIN、控制区域网CAN。CAN-LIN网关是将两个使用不同协议的网络段连接在一起,它的作用就是对两个网段中的使用不同传输协议的数据进行互相的转换。在CAN\LIN网关中,所需要实现的就是将CAN总线上,属于该网关下属LIN局域网设备的消息中的数据,按照LIN协议的形式打包,按CAN消息ID查转换表得到的目的地址发给相应LIN设备;如果LIN设备有消息发向CAN总线上的高速设备,则需经由网关提取数据,打包,之后按LIN消息ID查转换表得到的目的地址发给相应CAN设备。在国内对于汽车网关安全性及容错性的研究属于初步阶段,本发明将实时操作***引入汽车网络具有创新意义。
发明内容
本发明目的是设计实现一种基于操作***的CAN-LIN网关。针对汽车车身控制的强实时要求,根据实时操作***uC/OS-II的中断延时可预知性,提出了基于实时操作***的CAN/LIN网关的设计,详细地给出了该网关硬件、软件的实现方法。针对网关节点在垂直网络中的特殊地位,其协议转换导致的延时容易造成消息丢弃的现象,本发明构造了消息缓冲队列结构,降低了***消息丢包率。同时,成功将多关键度任务调度算法引入本***,使得***在过载时,仍能保证高关键任务优先调度的情况下让尽可能多的次关键或非关键任务得到执行。
本发明在硬件设计上不仅需要考虑选择带有CAN、LIN收发器,CAN控制器和MCU的芯片,还需考虑到uC/OS-II对硬件平台的要求,所以选择MC9S12D64。硬件结构如图1。
本发明的软件构架有三部分组成,总线驱动层,操作***层和应用层。驱动层由基本的API构成,在实现芯片功能的基础上,进一步讨论了两类网络速率不匹配问题的解决机制-接收缓冲机制。并采用了基于时间的先进先出原则进行排队,有效地降低了速度差异引起的丢包率,同时,也保证了消息报文处理时先来先服务的时序性。
操作***层采用当前流行的实时操作***uC/OS-II。在将uC/OS-II移植到MC9S12单片机的过程中,除了要做必要的底层修改之外,本发明解决了瞬时过载情况下的任务调度问题,尤其是解决了不能在保证高关键任务优先调度的情况下让尽可能多的次关键或非关键任务得到执行的问题。为解决这一问题引入了任务关键度这一概念,并定量地描述了任务错过时限的关键度。将任务集划分为三种状态:正常状态、紧急状态、失效状态。从而明确地提出任务调度器设计目标:让多级关键度任务尽可能地处在正常状态,偶尔处于紧急状态,但绝对不能处于失效状态。
应用层主要负责收发CAN/LIN消息,然后进行消息的协处理。前者首先检查消息ID是否为该节点应收消息,然后检验消息内容的正确性,最后将消息内容(消息标识和数据)送入协议缓冲中。后者查消息转换表,判断该消息是否需要协议转换(部分消息是发送给网关节点的,不需要进行消息转发),如果不需要转换,直接调用消息处理函数;否则,调用消息转换函数。
本发明的积极意义是将实时操作***引入汽车网关中,适用于汽车车身控制***等对安全关键度要求较高的实时环境。该***将CAN、LIN网络有机结合起来,完成了一个完整透明控制网络的构建,降低了***消息丢包率,并且保证高关键任务优先调度的情况下让尽可能多的次关键或非关键任务得到执行。
附图说明
图1CAN/LIN网关硬件结构框图
图2CAN/LIN网关消息转换***结构图
具体实施方案
本发明在硬件上选用MC9S12D64芯片。由于CAN/LIN网关具有CAN节点和LIN主节点的双重身份,它的传输是基于两个基本假设的:
1.任何CAN节点都可以发送一串预先准备好的信息流,在发送相邻的两条信息之间不需要释放总线。在发送前一个消息帧后进行仲裁,只有失败时才会释放总线。
2.任何CAN节点的内部消息都先进行整理,如果有多条信息等待发送,那么具有最高优先级的信息将先被发送出去。以上功能在只有一个发送缓冲时是不可实现的。
要满足两个基本假设中的第1条,就必须至少有3个发送缓冲。而对于第2条,要求所选用的CAN控制器具有对优先级进行整理和区分的功能。对于本***,选择的MC9S12D64内部集成的CAN控制器,具有3个发送缓冲结构,并具有对优先级进行整理和区分的功能,满足了基于两个基本假设提出的要求。
本发明在软件设计的驱动层API函数如图2。
1.Sys_Init()
CAN发送控制器MONCAN08的配置,包括通信波特率、采样率、发冲区数量的配置,消息ID接收滤波器、标识符屏蔽寄存器的初始化LIN总线的初始化,与CAN总线相似。
2.CAN_Send()
由于MONCAN08具有三个发送缓冲,首先要查询发送缓冲当前状态,可用缓冲,按发送优先级顺序,选择一个并将数据(消息ID、消息数消息长度)装入缓冲区,之后置发送标志位,启动发送。
3.CAN_Receive()
请求CAN消息接收信号量(该信号量在CAN接收中断中释放),如果缓冲区中有待收消息,接收任务将调用该函数,将消息收入协议缓冲(protocal Buffer)中;如果未有新到消息,随接收任务挂起。
4.LIN_MsgConvert()
消息转换函数,将CAN消息转化为LIN消息。首先查询消息转换表,收到的CAN消息是否应执行转换,若需要转换,则将消息数据抽取,查询转换表,将消息ID转换为LIN消息ID,之后消息打包,发送到LIN总线上;如不需转换,交由网关处理。
5.CAN_MsgConvert()
消息转换函数,将LIN消息转化为CAN消息。与LIN_MsgConvert()类CAN_ProtocalBufLoad()将消息数据送入协议缓冲中。等待***处理(发送/接收)。
6.CAN_ISR_Error()
故障检测函数。用于检测总线物理层以及数据链路层的故障状态,并进应处理。
7.CAN_ISR_Receive()
CAN消息接收中断。释放消息接收信号量,用于唤醒接收处理任务。
本发明为了解决CAN总线与LIN总线速率不匹配的问题,并以及***RAM资源的折中考虑,设置4个CAN消息缓冲。
Struct{
Unsigned char can_rcvidbuf[4];
Unsigned char can_rcvdatabuf[8];
Unsigned char ept;
Unsigned char old;
}can_rcvbuf[4];
其中:
can_rcvidbuf[4]:用于接收CAN消息标识。
can_rcvdatabuf[8]:用于接收CAN消息数据。
ept:标记量,标记所在接受缓冲是否为空。若空(ept=0),可用于存放新到达的消息;否则(ept=1),等待消息处理。
old:标记量,记录消息的年龄。与ept标记量配合使用。
如果消息未被处理(ept=1),在每个接受中断中进行增1运算(255时不再增1)。作用为消息处理提供选择依据(率先处理年龄最大的消息);如果消息被取走(ept=0),不作动作,直到所在消息缓冲再次被存入新到达消息。
本发明利用MC9S12自带的CAN模块实现数据链路层错误检测。数据链路层检测是通过MCU中集成的CAN控制器MSCAN_S12进行的。错误检测种类:
1.溢出:接收缓冲区消息溢出时触发。
2.接收错误:接收错误计数器达到96时报警。
3.发送错误:发送错误计数器达到96时报警。
4.接收被动错误:接收错误计数器达到127时,MSCAN08进入接收被动状态。
5.发送被动错误:发送错误计数器达到127时,MSCAN08进入发送被动状态。
6.总线关闭:发送错误计数器达到255时,总线关闭其中任意一种故障发生,都会触发CAN数据链路层错误中断(中断号19)。在中断服务程序中,将错误类型记录下来,在数据链路层故障处理任务(Task_CAN_ErrDealD)中进行相应处理。
本发明操作***层在保留uC/OS-II的功能代码同时,按照车内网络的强实时性要求,采用基于多级关键度的调度机制,改写了任务调度函数。以下是各任务的具体描述:
1.CAN消息接收任务TASK_CAN_Rcv()
[4,5]消息接收任务由接收中断唤醒,如果超过时限,意味着网关节点丢包。但是如果连续接收,N+1个消息,会造成缓冲队列溢出,根据上文采用的动态优先级策略,此任务在连续N+1次触发时,任意N次在时限内完成,即可。(本***中,N=4)
2.CAN消息转换任务TASK_CAN_MsgConvert()
[1,4]由于LIN总线的可靠性较低,应用中通常连发3条同样的消息帧,因此,此任务关键度看似为[1,3],但这一因素并不影响到任务的关键度。错过时限并不意味着不成功。对于转发CAN消息来说,没有定义其时限。所以,还是定为[1,4],原因:该任务应在4个消息到来之间至少执行一次。收到4个CAN消息,仍没有执行一次LIN消息转换,那么消息队列即将溢出。
3.LIN消息接收任务TASK_LIN_Rcv()
[1,1]由于LIN总线协议并没有提供出错重发机制,因此,LIN消息的接受任务的关键度一定要置为[1,1]。
4.LIN消息转换任务TASK_LIN_MsgConvert()
[1,3]原因同任务2LIN连发三条。如果收到3个LIN消息,仍没有执行一次CAN消息转换,那么该LIN消息失效。
5.CAN物理层故障处理任务(Task_CAN_ErrDeal)
[1,1]故障一旦出现,说明CAN总线通信已经不可靠,应马上响应,做出相应处理.
6.CAN数据链路层故障处理任务(Task_CAN_ErrDealD)
[1,2]故障一旦出现,说明CAN总线通信已经不可靠,应及时响应,做出相应处理。
应用层主要负责收发CAN/LIN消息,然后进行消息的协处理。前者首先检查消息ID是否为该节点应收消息,然后检验消息内容的正确性,最后将消息内容(消息标识和数据)送入协议缓冲中。后者查消息转换表,判断该消息是否需要协议转换(部分消息是发送给网关节点的,不需要进行消息转发),如果不需要转换,直接调用消息处理函数;否则,调用消息转换函数。还要保证任务之间的通信。
Claims (6)
1.一种汽车车身CAN-LIN网关的设计,其特征是:采用uCOS-II操作***,构造了消息缓冲队列结构,引入多关键度任务调度算法,完成对网关的软硬件设计。
2.根据权利要求1所述的***,其特征是:本发明在硬件设计上选择带有CAN控制器的MC9S12D64芯片。
3.根据权利要求1所述的***,其特征是:本发明的软件构架有三部分组成,总线驱动层,操作***层和应用层。
4.根据权利要求1所述的***,其特征是:驱动层API有Sys_Init()、CAN_Send()、CAN_Receive()、LIN_MsgConvert()、CAN_MsgConvert()、CAN_ISR_Error()、CAN_ISR_Receive()。
5.根据权利要求1所述的***,其特征是:本发明为了解决CAN总线与LIN总线速率不匹配的问题,并以及***RAM资源的折中考虑,设置4个CAN消息缓冲。
6.采用基于多级关键度的调度机制,改写了任务调度函数。各任务的描述为:CAN消息接收任务TASK_CAN_Rcv()、CAN消息转换任务TASK_CAN_MsgConvert()、LIN消息接收任务TASK_LIN_Rcv()、LIN消息转换任务TASK_LIN_MsgConvert()、CAN物理层故障处理任务(Task_CAN_ErrDeal)、CAN数据链路层故障处理任务(Task_CAN_ErrDealD)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102038433A CN102291334A (zh) | 2010-06-21 | 2010-06-21 | 一种汽车车身can-lin网关的设计 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102038433A CN102291334A (zh) | 2010-06-21 | 2010-06-21 | 一种汽车车身can-lin网关的设计 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102291334A true CN102291334A (zh) | 2011-12-21 |
Family
ID=45337452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102038433A Pending CN102291334A (zh) | 2010-06-21 | 2010-06-21 | 一种汽车车身can-lin网关的设计 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102291334A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102724183A (zh) * | 2012-05-28 | 2012-10-10 | 浙江工业大学 | 一种车载gps设备协议转换软网关 |
CN104125152A (zh) * | 2013-04-23 | 2014-10-29 | 浙江大学 | 一种基于车载网关提高车载网络可靠性的方法 |
CN104301177A (zh) * | 2014-10-08 | 2015-01-21 | 清华大学 | Can报文异常检测方法及*** |
CN105911898A (zh) * | 2015-08-31 | 2016-08-31 | 北京长城华冠汽车科技股份有限公司 | 整车控制器、汽车和控制器局域网数据传输方法 |
CN106878131A (zh) * | 2017-03-24 | 2017-06-20 | 浙江中控技术股份有限公司 | 一种profibus耦合器及profibus的数据传输方法 |
CN108319217A (zh) * | 2018-03-19 | 2018-07-24 | 延锋伟世通汽车电子有限公司 | 基于stm32***的can、lin控制电路 |
CN110290041A (zh) * | 2019-06-24 | 2019-09-27 | 陕西天行健车联网信息技术有限公司 | 多功能can服务***及其方法 |
WO2019201294A1 (zh) * | 2018-04-20 | 2019-10-24 | 比亚迪股份有限公司 | 车辆及其基于开放平台的车辆安全控制方法、*** |
CN112787901A (zh) * | 2016-05-27 | 2021-05-11 | 松下电器(美国)知识产权公司 | 网络集线器、转发方法及车载网络*** |
CN113438153A (zh) * | 2021-06-25 | 2021-09-24 | 北京理工大学 | 一种车载网关、智能汽车及控制方法 |
CN114095903A (zh) * | 2021-11-11 | 2022-02-25 | 盐城市华悦汽车部件有限公司 | 一种汽车电器网络的构建方法 |
CN115079621A (zh) * | 2022-08-16 | 2022-09-20 | 中科芯集成电路有限公司 | 一种应用于汽车传感器的lin转can总线控制装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026527A (zh) * | 2007-01-26 | 2007-08-29 | 武汉理工大学 | 一种汽车电子信息集成控制***中的can/can智能网桥 |
CN101609412A (zh) * | 2009-07-15 | 2009-12-23 | 方舟信息技术(苏州)有限公司 | 车载信息娱乐***模拟装置 |
-
2010
- 2010-06-21 CN CN2010102038433A patent/CN102291334A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026527A (zh) * | 2007-01-26 | 2007-08-29 | 武汉理工大学 | 一种汽车电子信息集成控制***中的can/can智能网桥 |
CN101609412A (zh) * | 2009-07-15 | 2009-12-23 | 方舟信息技术(苏州)有限公司 | 车载信息娱乐***模拟装置 |
Non-Patent Citations (2)
Title |
---|
方勇等: "基于USB主机技术的车载数据采集***的研制", 《武汉理工大学学报》, vol. 29, no. 3, 31 March 2007 (2007-03-31), pages 1 - 5 * |
王超: "uC/OS-II面向汽车车身CAN/LIN网关的研究与实现", 《中国优秀硕士学位论文全文数据库》, no. 2, 28 February 2009 (2009-02-28), pages 1 - 55 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102724183B (zh) * | 2012-05-28 | 2015-01-28 | 浙江工业大学 | 一种车载gps设备协议转换软网关 |
CN102724183A (zh) * | 2012-05-28 | 2012-10-10 | 浙江工业大学 | 一种车载gps设备协议转换软网关 |
CN104125152B (zh) * | 2013-04-23 | 2018-04-10 | 浙江大学 | 一种基于车载网关提高车载网络可靠性的方法 |
CN104125152A (zh) * | 2013-04-23 | 2014-10-29 | 浙江大学 | 一种基于车载网关提高车载网络可靠性的方法 |
CN104301177A (zh) * | 2014-10-08 | 2015-01-21 | 清华大学 | Can报文异常检测方法及*** |
CN104301177B (zh) * | 2014-10-08 | 2018-08-03 | 清华大学 | Can报文异常检测方法及*** |
CN105911898A (zh) * | 2015-08-31 | 2016-08-31 | 北京长城华冠汽车科技股份有限公司 | 整车控制器、汽车和控制器局域网数据传输方法 |
CN112787901A (zh) * | 2016-05-27 | 2021-05-11 | 松下电器(美国)知识产权公司 | 网络集线器、转发方法及车载网络*** |
CN106878131A (zh) * | 2017-03-24 | 2017-06-20 | 浙江中控技术股份有限公司 | 一种profibus耦合器及profibus的数据传输方法 |
CN108319217A (zh) * | 2018-03-19 | 2018-07-24 | 延锋伟世通汽车电子有限公司 | 基于stm32***的can、lin控制电路 |
WO2019201294A1 (zh) * | 2018-04-20 | 2019-10-24 | 比亚迪股份有限公司 | 车辆及其基于开放平台的车辆安全控制方法、*** |
US11916884B2 (en) | 2018-04-20 | 2024-02-27 | Byd Company Limited | Vehicle and vehicle security control method and system based on open platform |
CN110290041A (zh) * | 2019-06-24 | 2019-09-27 | 陕西天行健车联网信息技术有限公司 | 多功能can服务***及其方法 |
CN110290041B (zh) * | 2019-06-24 | 2023-06-23 | 陕西天行健车联网信息技术有限公司 | 多功能can服务***及其方法 |
CN113438153A (zh) * | 2021-06-25 | 2021-09-24 | 北京理工大学 | 一种车载网关、智能汽车及控制方法 |
CN113438153B (zh) * | 2021-06-25 | 2022-05-10 | 北京理工大学 | 一种车载网关、智能汽车及控制方法 |
CN114095903A (zh) * | 2021-11-11 | 2022-02-25 | 盐城市华悦汽车部件有限公司 | 一种汽车电器网络的构建方法 |
CN115079621A (zh) * | 2022-08-16 | 2022-09-20 | 中科芯集成电路有限公司 | 一种应用于汽车传感器的lin转can总线控制装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102291334A (zh) | 一种汽车车身can-lin网关的设计 | |
KR102320043B1 (ko) | 차량용 제어 장치의 진단 방법 및 장치 | |
US20200145254A1 (en) | Method for transmitting data via a serial communication bus, bus interface, and computer program | |
WO2020019543A1 (zh) | 电动汽车的域架构车载网络***、域协同处理方法及域控制装置 | |
CA1288525C (en) | Multi-cpu interlock | |
US9565270B2 (en) | LPC2468-based MVB-WTB gateway and working method thereof | |
CN106534368B (zh) | 一种汽车can总线网关的报文收发方法及*** | |
CN106773928B (zh) | 一种基于fpga的千兆tte端***控制器 | |
US20070140294A1 (en) | Communication message conversion apparatus and communication message conversion method | |
CN103731331B (zh) | 机载数据发送方法、接收方法、数据传输装置以及*** | |
EP3407566A1 (en) | Automobile electrical system and isolation system for automobile electrical system | |
CN102932224A (zh) | 基于can网络的数据通讯***及基于该***的数据通讯方法 | |
CN106452563A (zh) | 基于通信卫星的无人机数据链通用接入*** | |
CN113364856B (zh) | 一种基于共享内存及异构处理器的车载以太网*** | |
CN103684999B (zh) | 一种基于mpc860的mvb-wtb网关 | |
CN101026527A (zh) | 一种汽车电子信息集成控制***中的can/can智能网桥 | |
US10193830B2 (en) | Onboard communication network of a vehicle and subscriber of such a communication network | |
CN112437024A (zh) | 一种基于时间敏感网络的无人车辆通信*** | |
CN201813394U (zh) | 基于FlexRay总线的车载网关设备 | |
Kenjić et al. | Connectivity challenges in automotive solutions | |
CN108614797A (zh) | 一种多类型高低速串行总线集成接口 | |
CN114374583A (zh) | 一种汽车网关控制器及其控制方法 | |
EP2660726A1 (en) | Method and device for emulating a bus system | |
CN109606290A (zh) | 电动汽车的双拓扑网络化控制***及其调度方法 | |
CN106603431A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111221 |