基于autosar的com层通信时限监测方法

文档序号:7693620阅读:548来源:国知局
专利名称:基于autosar的com层通信时限监测方法
技术领域
本发明涉及智能汽车领域,具体涉及一种基于AUT0SAR的通信实体单元时限机制的实现方法。
背景技术
AUT0SAR(汽车开放系统架构)是一个开放和标准化的汽车电子软件架构,它是由全球汽车制造商、部件供应商及其他电子、半导体和软件系统公司联合建立。AUT0SAR协议栈用于汽车电子的ECU内部和ECU之间的网络通讯,它是一个类似于OSI七层模型的协议栈,信息由上面的RTE (Rim Time Environment)层传入到协议栈,在栈中被打包成帧,然后传入到底层硬件上。如图1所示,Com层通信实体单元主要为以下几种(I)Signal (原子消息),用于Com层和上层交互;(2) SignalGroup (原子消息组),由一组原子消息构成,用于Com层和上层交互;(3) IPDU (交互层通信数据单元)=Signal和SignalGroup在Com层的载体,用于 Com层和下层交互。在AUT0SAR标准中规范里,COM通信栈中的COM层的一个重要的特征就是要求对通信实体单元提供超时监测机制,主要包括截止时间相关的时限监测和发送模式相关的时限监测。时限监测具体涉及以下几种(I)Signal的发送截止时间监测监测Signal从上层发出发送请求之后,是否在规定的时间间隔内通过Signal所在的IPDU被发送到下层并收到来自下层的发送成功确认,如果在规定的时间内未能成功发送,则启动通知机制通知上层,否则在收到成功确认的时间点取消监测。(2) Signal的接收截止时间监测监测Signal所在的IPDU自从在中断中接收到数据之后,是否在规定的时间间隔内被上层提取,如果在规定的时间内未经提取则启动通知机制通知上层,否则在被上层提取的时间点取消这次监测。(3) SignalGroup的发送截止时间监测监测SignalGroup自从上层发送请求发出之后,是否在规定的时间间隔内通过SignalGroup所在的IPDU被发送到下层并收到来自下层的发送成功确认,如果在规定的时间内未能成功发送,则启动通知机制通知上层,否则取消这次监测。(4) SignalGroup的接收截止时间监测监测SignalGroup所在的IPDU自从在中断中接收到数据之后,是否在规定的时间间隔内被上层提取,如果在规定的时间内未经提取则启动通知机制通知上层,否则在被上层提取的时间点取消这次监测。(5) IPDU的周期发送模式的时间监测如图2示,IPDU经过一个用户配置的周期时限之后,执行向下层发送操作,然后重新开始新的周期时间监测,IPDU发送无限次。其中, 周期发送模式就是直接以一个固定的周期执行IPDU的发送操作。(6) IPDU的直接发送模式的时间监测如图3示,IPDU经过一个用户配置的周期时限之后,执行向下层发送操作,然后重新开始新的周期时间监测,IPDU发送次数为N次。其中,N是用户配置的发送总数目,直接发送模式操作就是执行IPDU的N次以一个固定的间隔发送操作。其中直接发送IPDU的启动是由COM上层驱动的,如上层请求发送一个Signal/ SignalGroup0(7) IPDU的混合发送模式的时间监测如图4示,即执行IPDU的周期发送模式的时间监测,又执行IPDU的直接发送模式的时间监测。在以往的做法中,通常是对上面的每个实体单元的每种时限监测都配置一个监测警报器(Alarm),来实现AUT0SAR标准中要求的时限机制。举例来说在Com层配置了 5个 IPDU,每个IPDU分别配置了 5个Signal和4个SignalGroup,在极端情况下每个Signal和 SIgnalGroup都配置了发送截止时间和接收截止时间监测。这样每个IPDU需要的监测警报器总数目就是(5 +牡2+N2)*5 = 100,这样就需要AUTOSAR OS至少要支持同时能配置 100个监测警报器。因此现有技术存在这样的问题(1)需要用户配置太多监测警报器,引起的直接问题就是占用太多系统的Alarm 资源,不易于维护和调试。(2)维护过程中需要遍历太多的监测警报器,花费太多时间,而且有可能导致中断中操作太多,导致关时钟中断时间太长,会影响发送的时间准确性。

发明内容
本发明要解决的技术问题是提供一种占用资源少、维护简单、调试方便、处理速度快、收发效率高的基于AUTOSAR的COM层通信时限监测方法。为了解决上述技术问题,本发明采用的技术方案为一种基于AUTOSAR的COM层通信时限监测方法,其实施步骤如下1)建立一个跟随COM层启动的监测警报器,在每一个通信实体初始化时创建时限参数和计时参数;2)监测警报器定时遍历所有通信实体,且每次遍历时更新各个通信实体的计时参数;3)根据时限参数和计时参数判断通信实体的状态,如果通信实体发送时间超时, 则通知上层该通信实体发送失败;如果通信实体接收时间超时,则通知下层该通信实体接收失败;如果通信实体发送模式的时间点来临,则将该通信实体向下层传输,并重新设定该通信实体的时限参数。作为本发明的进一步改进所述步骤1)中创建时限参数时,如果通信实体为IPDU则建立直接发送次数、直接发送间隔、周期发送间隔三种时限参数,并设置用于监控直接发送模式中直接发送次数的发送计数器;如果通信实体为直接发送模式,则设置直接发送次数、直接发送间隔两种时限参数;如果通信实体为周期发送模式,则设置周期发送间隔一种时限参数;如果通信实体为混合发送模式,则设置直接发送次数、直接发送间隔、周期发送间隔三种时限参数;所述步骤2)中通信实体发送模式的时间点来临时,如果通信实体为直接发送模式,则在计时参数触发直接发送间隔时将该通信实体向下层传输、并更新所述发送计数器,如果发送计数器等于直接发送次数,则结束传输通信实体;如果通信实体为周期发送模式,则在计时参数触发周期发送间隔时将该通信实体向下层传输;如果通信实体为混合发送模式,则将一方面在计时参数触发直接发送间隔时将该通信实体向下层传输、并更新所述发送计数器,如果发送计数器等于直接发送次数,则结束直接发送模式传输通信实体;同时在计时参数触发周期发送间隔时将该通信实体向下层传输。本发明具有下述优点1、本发明通过一个监测警报器解决了所有通信实体的时限监测问题,大大节省 COM层占用的AUTOSAR OS的监测警报器资源数目,同时也免除了监测警报器数据结构相关的空间,具有占用资源少、维护简单、调试方便、处理速度快、收发效率高的优点。2、本发明由于只操作一个监测警报器,将动态维护的监测警报器触发链表转换为一个静态的时限参数和计时参数,非常便于操作,而且减少了数据结构维护的开销,因此收发开销小、收发效率更高。


图1为现有技术中COM层与上层、下层的交互原理结构示意图。图2为现有技术中IPDU周期发送模式的发送监测示意图。图3为现有技术中IPDU直接发送模式的发送监测示意图。图4为现有技术中IPDU混合发送模式的发送监测示意图。图5为本发明实施例的流程示意图。图6为本发明实施例发送两个均为周期发送模式的IPDU的发送监测示意图。图7为本发明实施例发送一个周期发送模式的IPDU、另一个为直接发送模式的 IPDU的发送监测示意图。图8为两个Signal的发送监测示意图。
具体实施例方式如图5所示,本发明实施例的基于AUTOSAR的COM层通信时限监测方法,其实施步骤如下1)建立一个跟随COM层启动的监测警报器,在每一个通信实体初始化时创建时限参数和计时参数;2)监测警报器定时遍历所有通信实体,且每次遍历时更新各个通信实体的计时参数;3)根据时限参数和计时参数判断通信实体的状态,如果通信实体发送时间超时, 则通知上层该通信实体发送失败;如果通信实体接收时间超时,则通知下层该通信实体接收失败;如果通信实体发送模式的时间点来临,则将该通信实体向下层传输,并重新设定该通信实体的时限参数。步骤1)中创建时限参数时,如果通信实体为IPDU则建立直接发送次数、直接发送间隔、周期发送间隔三种时限参数,并设置用于监控直接发送模式中直接发送次数的发送计数器;如果通信实体为直接发送模式,则设置直接发送次数、直接发送间隔两种时限参数;如果通信实体为周期发送模式,则设置周期发送间隔一种时限参数;如果通信实体为混合发送模式,则设置直接发送次数、直接发送间隔、周期发送间隔三种时限参数;所述步骤2)中通信实体发送模式的时间点来临时,如果通信实体为直接发送模式,则在计时参数触发直接发送间隔时将该通信实体向下层传输、并更新所述发送计数器,如果发送计数器等于直接发送次数,则结束传输通信实体;如果通信实体为周期发送模式,则在计时参数触发周期发送间隔时将该通信实体向下层传输;如果通信实体为混合发送模式,则将一方面在计时参数触发直接发送间隔时将该通信实体向下层传输、并更新所述发送计数器,如果发送计数器等于直接发送次数,则结束直接发送模式传输通信实体;同时在计时参数触发周期发送间隔时将该通信实体向下层传输。监测警报器(ComAlarm)具有一个回调函数ComAlarmAction,步骤2)中通过定时执行回调函数ComAlarmAction来触发遍历通信实体、更新各个通信实体的计时参数,计时参数存储于IPDU控制结构内部。执行回调函数ComAlarmAction的定时时间(tick)非常短,时限参数中涉及时限的均为tick的整数倍。若当前收取的通信实体为Signal或者SignalGroup时,则设置时限参数 ComRxTimeout、计时参数CurRxTime。ComRxTimeout代表收取的超时时间,计时参数 CurRxTime在当前Signal或者SignalGroup被遍历时更新。计时参数CurRxTime在初始化时初始化为时限参数ComRxTimeout,每次更新计时参数CurRxTime自动减1,当计时参数 CurRxTime为O时则代表Signal或者SignalGroup收取时间超时,则通知下层该Signal或者SignalGroup收取失败。若当前发送的通信实体为Signal或者SignalGroup时,则设置时限参数 ComTxTimeout、计时参数CurTxTime。ComTxTimeout代表发送的超时时间,计时参数 CurTxTime在当前Signal或者SignalGroup被遍历时更新。计时参数CurTxTime在初始化时初始化为时限参数ComTxTimeout,每次更新计时参数CurTxTime自动减1,当计时参数 CurTxTime为O时则代表Signal或者SignalGroup发送时间超时,则通知上层该Signal或者SignalGroup发送失败。本实施例中,每一个IPDU具有3个参数ComDNFactor, ComDPFactor和 ComPPFactor, 3 个参数 ComDNFactor、ComDPFactor 和 ComPPFactor 用于传递 IPDU 的发送模式信息,并传递发送模式的参数。3个参数ComDNFactor、ComDPFactor和ComPPFactor和 IPDU发送模式的关系如下表所示
权利要求
1.一种基于AUT0SAR的COM层通信时限监测方法,其特征在于其实施步骤如下1)建立一个跟随COM层启动的监测警报器,在每一个通信实体初始化时创建时限参数和计时参数;2)监测警报器定时遍历所有通信实体,且每次遍历时更新各个通信实体的计时参数;3)根据时限参数和计时参数判断通信实体的状态,如果通信实体发送时间超时,则通知上层该通信实体发送失败;如果通信实体接收时间超时,则通知下层该通信实体接收失败;如果通信实体发送模式的时间点来临,则将该通信实体向下层传输,并重新设定该通信实体的时限参数。
2.根据权利要求1所述的基于AUT0SAR的COM层通信时限监测方法,其特征在于所述步骤1)中创建时限参数时,如果通信实体为IPDU则建立直接发送次数、直接发送间隔、周期发送间隔三种时限参数,并设置用于监控直接发送模式中直接发送次数的发送计数器; 如果通信实体为直接发送模式,则设置直接发送次数、直接发送间隔两种时限参数;如果通信实体为周期发送模式,则设置周期发送间隔一种时限参数;如果通信实体为混合发送模式,则设置直接发送次数、直接发送间隔、周期发送间隔三种时限参数;所述步骤幻中通信实体发送模式的时间点来临时,如果通信实体为直接发送模式,则在计时参数触发直接发送间隔时将该通信实体向下层传输、并更新所述发送计数器,如果发送计数器等于直接发送次数,则结束传输通信实体;如果通信实体为周期发送模式,则在计时参数触发周期发送间隔时将该通信实体向下层传输;如果通信实体为混合发送模式,则将一方面在计时参数触发直接发送间隔时将该通信实体向下层传输、并更新所述发送计数器,如果发送计数器等于直接发送次数,则结束直接发送模式传输通信实体;同时在计时参数触发周期发送间隔时将该通信实体向下层传输。
全文摘要
本发明公开了一种基于AUTOSAR的COM层通信时限监测方法,其实施步骤如下1)建立一个跟随COM层启动的监测警报器,在每一个通信实体初始化时创建时限参数和计时参数;2)监测警报器定时遍历所有通信实体,且每次遍历时更新各个通信实体的计时参数;3)根据时限参数和计时参数判断通信实体的状态,如果通信实体发送时间超时,则通知上层该通信实体发送失败;如果通信实体接收时间超时,则通知下层该通信实体接收失败;如果通信实体发送模式的时间点来临,则将该通信实体向下层传输,并重新设定该通信实体的时限参数。本发明具有占用资源少、维护简单、调试方便、处理速度快、收发效率高的优点。
文档编号H04L12/26GK102231683SQ20111015934
公开日2011年11月2日 申请日期2011年6月14日 优先权日2011年6月14日
发明者张成硕, 李红, 王旭阳, 陈浩杰, 顾宗华 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1