一种在autosar中实现复杂数据到信号组的映射方法

文档序号:6399262阅读:632来源:国知局
专利名称:一种在autosar中实现复杂数据到信号组的映射方法
技术领域
本发明涉及汽车电子软件开发技术,尤其是一种在AUTOSAR系统配置模型中实现复杂数据到信号组的映射方法。
背景技术
AUTOSAR(AUTomotive Open System ARchitecture)是汽车电子开放系统架构,系统配置(System Configuration)是AUTOSAR方法论中的一个重要环节,它定义了系统中硬件拓扑、网络通信和系统映射等配置信息,其中系统映射规定了系统中软件组件到电控单元的映射关系,数据元素到网络信号的映射关系,电控单元端口发送接收网络信号关系等,实现了软硬件的解耦。在AUTOSAR系统配置模型中,数据元素到网络信号模型的映射关系分为两大类:发送者接收者通信数据SenderReceiver到网络信号的映射关系,客户端服务器通信数据ClientServer到网络信号的映射关系ClientServerToSignalGroupMapping。发送者接收者通信方式到网络信号的映射关系又分为两种:简单数据PrimitiveType到信号Signal的映射 SenderReceiverToSignalMapping 和复杂数据 CompositeType 到信号组 SignalGroup的映射SenderReceiverToSignalGroupMapping (附图1为其UML静态结构图)。对于SenderReceiver简单通信数据的映射关系表现为数据元素DataElementPrototype到系统信号SystemSignal的映射关系;对于SenderReceiver复杂通信数据的映射关系表现为数据元素DataElementPrototype到系统信号组SystemSignalGroup的映射关系。简单映射和复杂映射的区别表现为DataElementPrototype的数据类型是简单类型PrimitiveType还是复杂类型CompositeType。在AUTOSAR模型中,复杂类型分为两种数据类型ArrayType数组类型和RecordType结构体类型。ArrayType有数组长度和数组元素ArrayElement,每个数组元素都有一个数据类型DataType ;结构体类型有一到多个结构体元素RecordElement,每个结构体元素都有一个数据元素类型DataType (附图2为其UML静态结构图)。在复杂数据到信号组的映射关系中,AUTOSAR模型不仅要求生成复杂数据到信号组的映射关系,同时复杂数据包含的元素到信号组里每个信号对应的映射关系也要同时生成,对于用户来说,由于有些数据元素比较复杂,信号组包含的信号很多,如果定义了DataElement到信号组的映射关系,能够自动生成复杂数据包含的数据到信号的映射关系,将大大减轻用户工作量,提高采用AUTOSAR开发的效率。综合以上考虑,面对使用AUTOSAR方法开发汽车电子产品的用户,需要提供一种能够正确快速的建立复杂数据内部数据到信号组内部信号的映射关系的方法。

发明内容
本发明提供了一种在AUTOSAR中实现复杂数据到信号组的映射方法,该映射方法能不仅能产生复杂数据到信号组的映射关系,还能正确快速地建立复杂数据内部数据到信号组内部信号的映射关系。一种在AUTOSAR中实现复杂数据到信号组的映射方法,包括以下步骤:(I)对复杂数据进行递归得到简单数据元素,然后将所述简单数据元素存于空的数据元素列表中,得到数据元素列表;(2)获得信号组包含的所有信号,存于信号列表中;(3)对于数据元素列表和信号列表,将所述简单数据元素作为二分图的左子图,将信号作为二分图的右子图,以简单数据元素能映射到信号上作为连接条件,完成二分图的构造;(4)对所述的二分图使用最大匹配算法求最大匹配,如果所得到的最大匹配值等于信号列表的长度,则转到步骤(5),否则放弃;(5)对于得到的信号匹配列表,在AUTOSAR系统配置模型中建立简单数据元素到信号的映射关系,完成复杂数据到信号组的映射。其中,步骤(I)中所述的递归根据AUTOSAR数据模型的UML静态结构关系进行。作为优选,步骤(I)中,对复杂数据进行递归得到简单数据元素的步骤包括:(2.1)建立一个空的数据元素列表,对复杂数据中的数据元素类型进行如下判断和操作:(2.2)如果数据元素类型是简单类型,将其加入数据元素列表中;(2.3)如果数据元素类型是数组类型,获得数组元素和数组长度length,将length个数组元素进行步骤(2.2)的操作;(2.4)如果数据元素类型是结构体类型,获得所有的结构体元素,将所有的结构体元素进行步骤(2.2)的操作。作为优选,步骤(3)中,所述连接条件的判断方法如下:取每一个简单数据元素与每一个信号进行比较,若简单数据元素的类型能够容纳下信号的长度,则能够连接;否则不能连接。作为优选,所述的复杂数据的类型为数组类型;步骤(5)中,在AUTOSAR系统配置模型中建立简单数据元素到信号的映射关系包括:(5.1)初始1=0;(5.2)获得所述复杂数据的数组元素和数组长度length ;(5.3)遍历数组中的每个数组元素,对于第k个数组元素,建立IndexedArrayElement, index设为k, ArrayElement设为数组兀素,信号为最大匹配对应的第 i 个信号,建立 SenderRecArrayElementMapping, i++。作为优选,所述的复杂数据的类型为结构体类型;步骤(5)中,在AUTOSAR系统配置模型中建立简单数据元素到信号的映射关系包括:(5.1)初始1=0;(5.2)获得所述复杂数据包含的所有结构体元素;(5.3)对于第 j 个结构体兀素,建立 SenderRecRecordElementMapping,设置其RecordElement为第j个结构体元素,信号为最大匹配对应的第i个信号,i++。同现有技术相比,本发明的有益效果体现在:自动帮助用户生成复杂数据包含的数据元素到信号组内信号的映射关系,提高了用户开发AUTOSAR的效率,抛弃了数据元素到信号一对一进行匹配的蛮力、低效实现方案;将映射关系抽象成为一个二分图,利用最大匹配算法求的两者之间的映射关系,实现起来简单高效。


图1为AUTOSAR发送者接收者通信方式复杂映射的UML静态结构图。图2为AUTOSAR数据模型的UML静态结构图。图3为复杂数据到信号组映射案例结构体数据和信号组的结构。图4为结构体struct_error和信号组errorSigGroup建立的二分图。图5为结构体struct_error和信号组errorSigGroup建立的二分图的最大匹配。图6为数据元素列表建立流程图。图7为利用最大匹配算法求数据元素到信号的最大匹配流程图。图8为建立数据元素到信号的映射关系的流程图。
具体实施例方式本发明中,在AUTOSAR中实现复杂数据到信号组的映射方法,包括以下步骤:(I)根据AUTOSAR数据模型的UML静态结构关系,对于复杂数据元素递归获得其包含的简单数据元素,将得到的简单数据元素存于数据元素列表中;(2)对于信号组,获得其包含的所有信号,存于信号列表中;(3)对于数据元素列表和信号列表,取每一个简单数据元素与每一个信号进行比较,若简单数据元素的类型能够容纳下信号的长度,那么此简单数据元素就与此信号匹配,进而将简单数据元素与信号相关联即构造二分图,然后在二分图中将此简单数据元素的节点和与它相匹配的信号的节点相连接,完成二分图的构造;(4)对此二分图使用最大匹配算法求最大匹配,如果最大匹配的值等于信号列表的长度即信号组中包含的信号个数,说明该复杂数据元素能够映射到该信号组上,否则说明映射关系不成功;(5)映射关系成功时,对于最大匹配得到的信号匹配列表,建立简单数据元素到信号的映射关系。图6为步骤(I)中建立数据元素列表的流程图,如图6所示,数据元素列表的建立包括:(1.1)建立一个空的数据元素列表;(1.2)如果数据元素类型是简单类型,将其加入数据元素列表中,返回;(1.3)如果数据元素类型是数组类型,获得数组元素和数组长度length,对length个数组元素进行(1.2)步骤的操作;(1.4)如果数据元素类型是结构体类型,获得所有的结构体元素,对每个结构体元素进行(1.2)步骤的操作。图7为步骤(3)中利用最大匹配算法求数据元素到信号的最大匹配流程图,具体包括:数据元素位于二分图的左子图,信号位于二分图的右子图,数据元素能映射到某个信号上作为可以相关联的条件,然后利用最大匹配算法求的数据元素到信号的映射关系O图8为步骤(5)中建立数据元素到信号的映射关系的流程图,如图8所示,具体步骤包括:(5.1)初始1=0;(5.2)对于该复杂数据元素,如果其是结构体类型,建立SenderRecRecordTypeMapping,获得其包含的所有结构体元素,到步骤(5.3);如果其类型是数组类型,建立SenderRecArrayTypeMapping,获得数组元素和数组长度,到步骤(5.4);(5.3)对于第j个结构体兀素,建立SenderRecRecordElementMapping,设置该结构体元素为该数据元素,信号为最大匹配对应的第i个信号,i++ ;如果该结构体元素的类型是复杂类型,回到步骤(5.2),否则退出;(5.4)对于第 k 个数组兀素,建立 SenderRecArrayElementMapping,建立IndexedArrayElement, index设为k, ArrayElement设为数组兀素,信号为最大匹配对应的第i个信号,i++ ;如果该数组元素的类型是复杂类型,回到步骤(5.2),否则退出。下面结合附图和实施例对本发明作进一步说明:实施例1本实施例所使用的复杂数据为DataElement类型为结构体struct_error,信号组为信号组errorSigGroup,他们的组成情况见附图3,具体的映射步骤如下:(I)获得 struct_error 包含的数据兀素列表 dataList(包含 status_l, status_2,status_3, cell0nVolt_i3, cell0ffVolt_i2, leakage_i2, timer_i4),如附图 3 的左半部分所示;(2)对于信号组errorSigGroup,获得其包含的所有信号的信号列表signalList(包含 statusSig_l, statusSig_3, statusSig_3, cellOnVoltSig, cellOffSig, IeakageSig,timerSig),如附图3的右半部分所示;(3)取dataList中每一个数据元素与signalList中的每一个信号进行比较,若数据元素的类型能够容纳下信号的长度,那么此数据元素就与此信号匹配,进而将数据元素与信号相关联即构造二分图,在二分图中将此数据元素节点和与它相匹配的信号节点相连接,这样二分图构造完成,如附图4所示;(4)对此二分图使用最大匹配算法求最大匹配,如果最大匹配的值为7等于信号列表的长度,说明struct_error能够映射到errorSigGroup上;(5)得到的最大匹配信号列表maxMatchSignalList,兀素为statusSig_l,statusSig_3, statusSig_3, cellOnVoltSig, cellOffSig,IeakageSig,timerSig ;(6)根据maxMatchSignalList,建立映射关系,对于struct_error中的第k个结构体兀素,建立一个 SenderRecRecordElementMapping,设置其信号为 maxMatchSignalList的第k个元素,完成映射关系的新建,如附图5所示。虽然通过上述具体实例对本发明进行了说明,但是本发明并不局限于上述实例,对于本领域的相关人员,可以根据本发明的技术方案和思想,作出其他各种改变和变形,而所有这些都应该属于本发明权利要求的保护范围内。
权利要求
1.一种在AUTOSAR中实现复杂数据到信号组的映射方法,其特征在于,包括以下步骤: (1)对复杂数据进行递归得到简单数据元素,然后将所述简单数据元素存于空的数据元素列表中,得到数据元素列表; (2)获得信号组包含的所有信号,存于信号列表中; (3)对于数据元素列表和信号列表,将所述简单数据元素作为二分图的左子图,将信号作为二分图的右子图,以简单数据元素能映射到信号上作为连接条件,完成二分图的构造; (4)对所述的二分图使用最大匹配算法求最大匹配,如果所得到的最大匹配值等于信号列表的长度,则转到步骤(5),否则放弃; (5)对于得到的信号匹配列表,在AUTOSAR系统配置模型中建立简单数据元素到信号的映射关系,完成复杂数据到信号组的映射。
2.根据权利要求1所述的在AUTOSAR中实现复杂数据到信号组的映射方法,其特征在于,步骤(I)中,对复杂数据进行递归得到简单数据元素的步骤包括: (2.1)建立一个空的数据元素列表,对复杂数据中的数据元素类型进行如下判断和操作: (2.2)如果数据元素类型是简单类型,将其加入数据元素列表中; (2.3)如果数据元素类型是数组类型,获得数组元素和数组长度length,将length个数组元素进行步骤(2.2)的操作; (2.4)如果数据元素类型是结构体类型,获得所有的结构体元素,将所有的结构体元素进行步骤(2.2)的操作。
3.根据权利要求1所述的在AUTOSAR中实现复杂数据到信号组的映射方法,其特征在于,步骤(3)中,所述连接条件的判断方法如下: 取每一个简单数据元素与每一个信号进行比较,若简单数据元素的类型能够容纳下信号的长度,则能够连接; 否则不能连接。
4.根据权利要求1所述的在AUTOSAR中实现复杂数据到信号组的映射方法,其特征在于,所述的复杂数据的类型为数组类型; 步骤(5)中,在AUTOSAR系统配置模型中建立简单数据元素到信号的映射关系包括:(5.1)初始 i=0 ; (5.2)获得所述复杂数据的数组元素和数组长度length ; (5.3)遍历数组中的每个数组元素,对于第k个数组元素,建立IndexedArrayElement,index设为k, ArrayElement设为数组元素,信号为最大匹配对应的第i个信号,建立SenderRecArrayElementMapping, i++。
5.根据权利要求1所述的在AUTOSAR中实现复杂数据到信号组的映射方法,其特征在于,所述的复杂数据的类型为结构体类型; 步骤(5)中,在AUTOSAR系统配置模型中建立简单数据元素到信号的映射关系包括:(5.1)初始 i=0 ; (5.2)获得所述复杂数据包含的所有结构体元素; (5.3)对于第j个结构体兀素,建立SenderRecRecordElementMapping,设置其RecordElement为第j个结 构体 元素,信号为最大匹配对应的第i个信号,i++。
全文摘要
本发明公开了在AUTOSAR中实现复杂数据到信号组的映射方法,该方法包括以下步骤(1)对复杂数据元素递归获得其简单数据元素,并将该简单数据元素存于数据元素列表中;(2)获得信号组包含的信号并将其存于信号列表中;(3)对于数据元素列表和信号列表,取每一个简单数据元素与每一个信号进行比较,根据是否匹配来完成二分图的构造;(4)对此二分图使用最大匹配算法求最大匹配,判断映射关系是否成功;(5)映射关系成功时,对于最大匹配得到的信号匹配列表,建立简单数据元素到信号的映射关系。该映射方法能自动帮助用户生成复杂数据包含的数据元素到信号组内信号的映射关系,提高了用户开发AUTOSAR的效率。
文档编号G06F9/44GK103176796SQ20131004832
公开日2013年6月26日 申请日期2013年2月4日 优先权日2013年2月4日
发明者杨国青, 李红, 耿莉莉, 郭徐, 吴朝晖 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1