[发明专利]一种基于ANTLR的LIN网络描述文件LDF的导入方法有效
申请号: | 201110386945.8 | 申请日: | 2011-11-29 |
公开(公告)号: | CN102521291A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 李红;杨国青;孙征;钟晓峰;耿莉莉;赵民德 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 杭州裕阳专利事务所(普通合伙) 33221 | 代理人: | 江助菊 |
地址: | 310027 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 antlr lin 网络 描述 文件 ldf 导入 方法 | ||
技术领域
本发明涉及汽车电子软件开发中的网络设计技术,尤其是涉及一种基于ANTLR的LIN网络描述文件LDF的导入方法。
背景技术
LIN(Local Interconnect Network)是一种低成本的车载内部互联网络,是对现存的车载复杂网络的一个补充。LIN试图通过实现分级的车载网络来进一步的提升性能,同时降低汽车电子中的开发、生成、服务和物流的成本。与CAN(Controller Area Network,控制器局域网络)总线相比,LIN总线具有比较小的带宽,复杂性也相对比较低。LDF是一种LIN总线的配置信息描述文件。它主要包括LIN总线的如下信息:总线版本信息、总线速率定义、通信节点定义、通信节点属性定义、信号定义(还有诊断信号)、信号组定义、帧定义(还有动态帧、离散帧、事件触发帧和诊断帧),调度表定义等。LDF文件中定义的所有元素都是具有特定的规范的文法的,符合BNF(Backus-Naur Form)巴克斯-诺尔范式。通过LDF可以有效的进行LIN总线的设计同时定义基于LIN总线的通信簇。
开源的语言识别器ANTLR,比起Lex/Yacc,ANTLR提供了一个更强大的语言识别框架。其可以根据用户定义的文法文件,生成多种目标语言(Java、C#、C++、Python等)的词法识别器和文法识别器。同时,ANTLR对语义树的处理、错误报告、错误恢复提供了非常有效的支持。
目前汽车电子软件开发中的网络设计过程,一般不会从零开始去进行特定网络的设计。从零开始的网络设计是一个比较复杂的过程。如果能够提供一个高效的,直观的类似DaVinci Network Designer的设计工具,那么一定程度上会提高网络配置的效率。如今通常采用的方法是导入已有的网络模型,进行相关配置来快速建立满足应用需要的网络模型。
LDF文件具有较好的可读性。基于这一点,虽然可以直接基于文本字符串来处理LDF文件从而达到导入的目的。但是,基于文本字符串的处理缺乏准确性,效率比较低,而且比较繁琐,复杂度较高。
综上,面对为了充分利用已有网络模型的需求,尤其是为了满足AUTOSAR(汽车开放系统架构,Automotive Open System Architecture)方法论中系统配置阶段进行的网络设计的特殊需求,需要一种正确地高效地导入LDF文件的方法。
发明内容
为了有效利用已有的网络设计的开发成果,克服基于文本字符串的文件导入方式带来的易错、低效以及繁琐的缺点,本发明提供了一种高效的LDF文件导入方法来完成对已有的LIN总线网络模型的有效利用。
为了解决上述技术问题,本发明的技术方案如下:
一种基于ANTLR的LIN网络描述文件LDF的导入方法,包括如下步骤:
1) 利用LIN总线版本规定的LDF规范的文法,编写符合开源的语言识别器ANTLR规定的文法,组合得到LDF文法文件;
2) 通过将步骤1)所述的LDF文法文件导入所述ANTLR中,设置ANTLR中的参数配置,生成得到LDF文件的词法识别器和语法识别器;
3) 通过所述ANTLR生成所述抽象语义树的遍历器,编写遍历抽象语义树的文法文件,所述遍历器根据编写的遍历抽象语义树的文法文件针对所述LDF文法文件中的元素进行遍历,提取应用需要的信息,并可以按需要定义一定的逻辑;
4) 导入LDF文件通过步骤2)所述的词法识别器和语法识别器得到其抽象语义树;
5) 通过步骤3)所述的遍历器遍历所述抽象语义树各个节点信息,结合自定义的LDF元素类模型,去除所述抽象语义树中的冗余信息,完成从抽象语义树到具体内存类模型的转化。
进一步的,所述LDF文件包括总线版本信息元素、总线速率定义元素、通信节点定义元素、通信节点属性定义元素、信号定义元素、信号组定义元素、帧定义元素,调度表定义元素并且符合BNF范式。
进一步的,所述步骤5)中当遍历所述抽象语义树各个节点信息时当发现并没有遍历结束,则获取非树叶节点信息以及其所有子节点信息,判断子节点是否都是叶子节点,如果不是则继续获取非树叶节点信息以及其所有子节点信息,如果是则合并所有子节点信息并结合自定义的LDF元素类模型,去除所述抽象语义树中的冗余信息,完成从抽象语义树到具体内存类模型的转化。
进一步的,所述LDF文件符合LIN2.0网络标准。
本发明具有如下有益效果:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110386945.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:有色金属管材收卷的方法
- 下一篇:变压器骨架