基于lin协议的代码自动生成系统及方法

文档序号:6640926阅读:662来源:国知局
基于lin协议的代码自动生成系统及方法
【专利摘要】本发明涉及一种基于LIN协议的代码自动生成系统及方法,该系统包括LDF文件、LDF文件解析器和标准数据库,所述LDF文件包括LIN通讯的参数信息,所述LDF文件解析器导入LDF文件进行解析生成相应的数据库,所述LDF文件解析器与标准数据库进行通讯。所述标准数据库包括物理层函数集和应用层函数集,所述标准数据库的物理层函数集针对MCU通用UART/SCI接口编写的数据收发功能函数集;所述标准数据库的应用层函数集根据LIN信号读写的接口函数和网络睡眠唤醒接口函数。本发明可以短时间内高效高质量的完成软件代码的开发,为LIN软件模块的开发提供了自动化的开发模式,提高了产品软件开发效率。
【专利说明】基于LIN协议的代码自动生成系统及方法

【技术领域】
[0001]本发明属于汽车电子LIN网络通讯领域,公开了一种利用LDF文件自动生成LIN通讯软件代码的方法。

【背景技术】
[0002]目前汽车电子产品的软件开发逐渐向模块化、标准化、集成化、自动化发展。LIN通讯模块软件,在不同的项目中,客户需求(LDF文件)都不一样,每次都需要重新开发,严重的制约了产品开发的时间周期和稳定性。本发明可通过LDF文件自动生成LIN通讯软件代码,不仅提高了软件开发效率,还保证了软件的可靠性和唯一性。目前LIN软件功能模块的开发,都需要软件工程师独立开发物理层函数集和应用层函数集,对于LDF文件中的信息也需要人为的提取并转换到代码中,对于此种开发模式存在很大的弊端:首先,在物理层函数集和应用层函数集中,对于不同的项目都包含了大量公用的部分,而不同的人在函数命名和函数功能区域划分上都不尽相同,这就造成了资源上的极大浪费。在此发明中建立起一个标准数据库,囊括物理层函数集和应用层函数集,由于LIN硬件实现基本都是基于MCU通用UART/SCI接口,可以写成通用的标准物理层函数集,而应用层函数集完全可以写成标准的。其次,在LDF文件信息提取时,人工提取耗时耗精力,而且不可避免的由于人为因素会导致错误,这样一来无疑会导致后期的调试周期变长,同时不同的项目LDF文件也不同,每一次都需要人工提取信息。


【发明内容】

[0003]针对以上现有技术的不足,本发明提供一种基于LIN协议的代码自动生成系统及方法,通过上位机工具“LDF文件解析器”,直接导入LDF文件生成软件代码,告别了人工提取信息的繁琐和风险,一键式自动完成,完全实现自动化智能化。
[0004]为了实现上述目的,本发明提供的技术方案是一种基于LIN协议的代码自动生成系统,该系统包括LDF文件、LDF文件解析器和标准数据库,所述LDF文件包括LIN通讯的参数信息,所述LDF文件解析器导入LDF文件进行解析生成相应的数据库,所述LDF文件解析器与标准数据库进行通讯。所述标准数据库包括物理层函数集和应用层函数集,所述标准数据库的物理层函数集针对MCU通用UART/SCI接口编写的数据收发功能函数集;所述标准数据库的应用层函数集根据LIN信号读写的接口函数和网络睡眠唤醒接口函数。所述标准数据库的物理层函数集针对不同型号的MCU需要对LDF文件解析器的寄存器进行修改。所述LDF文件解析器的数据库包括LIN信号的宏定义和常量数组,所述常量数组包括调度表?目息和ID {目息。
[0005]一种基于LIN协议的代码自动生成方法,该方法包括以下步骤:步骤一、LDF文件导入LDF文件解析器;步骤二、LDF文件解析器,生成与LDF文件相对应的数据库;步骤三、标准数据库的物理层函数集和应用层函数集结合LDF文件解析器生成与LDF文件相对应的数据库中常量数组中的信息实现LIN网络的运行和周期调度;步骤四、根据数据库中的信号宏定义作为函数的入口参数,实现对LIN信号的读写功能、LIN网络的睡眠唤醒操作和多个调度表之间的切换;步骤五、LDF文件解析器生成与LDF文件相对应的数据库、标准数据库和系统源文件一起编译和链接,实现代码的自动生成。LDF相对应的数据库中的LIN信号的宏,每个信号的宏定义对应一个十六进制数字信息,代表着该信号在信号列表中所处的位置和长度。所述步骤二中,针对不同LIN功能需求设计的LDF文件,LDF文件解析器解析出不同的LDF文件相对应的数据库。
[0006]本发明的优点在于:该发明主要应用在带LIN通讯功能的汽车电子产品的软件开发上,根据客户提供的不同LDF文件,都可以短时间内高效高质量的完成软件代码的开发,为LIN软件模块的开发提供了自动化的开发模式,提高了产品软件开发效率。

【专利附图】

【附图说明】
[0007]下面对本发明说明书中每幅附图表达的内容及图中的标记作简要说明:
[0008]图1为本发明【具体实施方式】I的系统流程图。

【具体实施方式】
[0009]下面对照附图,通过对实施例的描述,本发明的【具体实施方式】如所涉及的各构件的形状、构造、各部分之间的相互位置及连接关系、各部分的作用及工作原理、制造工艺及操作使用方法等,作进一步详细的说明,以帮助本领域技术人员对本发明的发明构思、技术方案有更完整、准确和深入的理解。
[0010]一种基于LIN协议的代码自动生成系统,该系统包括LDF文件、LDF文件解析器和标准数据库,所述LDF文件包括LIN通讯的参数信息,所述LDF文件解析器导入LDF文件进行解析生成相应的数据库,所述LDF文件解析器与标准数据库进行通讯。所述标准数据库包括物理层函数集和应用层函数集,所述标准数据库的物理层函数集针对MCU通用UART/SCI接口编写的数据收发功能函数集;所述标准数据库的应用层函数集根据LIN信号读写的接口函数和网络睡眠唤醒接口函数。所述标准数据库的物理层函数集针对不同型号的MCU需要对LDF文件解析器的寄存器进行修改。所述LDF文件解析器的数据库包括LIN信号的宏定义和常量数组,所述常量数组包括调度表信息和ID信息。
[0011]如图1所示,一种基于LIN协议的代码自动生成方法,该方法包括以下步骤:步骤一、LDF文件导入LDF文件解析器;步骤二、LDF文件解析器,生成与LDF文件相对应的数据库;步骤三、标准数据库的物理层函数集和应用层函数集结合LDF文件解析器生成与LDF文件相对应的数据库中常量数组中的信息实现LIN网络的运行和周期调度;步骤四、根据数据库中的信号宏定义作为函数的入口参数,实现对LIN信号的读写功能、LIN网络的睡眠唤醒操作和多个调度表之间的切换;步骤五、LDF文件解析器生成与LDF文件相对应的数据库、标准数据库和系统源文件一起编译和链接,实现代码的自动生成。LDF相对应的数据库中的LIN信号的宏,每个信号的宏定义对应一个十六进制数字信息,代表着该信号在信号列表中所处的位置和长度。所述步骤二中,针对不同LIN功能需求设计的LDF文件,LDF文件解析器解析出不同的LDF文件相对应的数据库
[0012]【具体实施方式】1:
[0013]一种实现LDF文件自动生成软件代码的方法,主要包括LDF文件、“LDF文件解析器”和标准数据库三个部分,将LDF文件导入“LDF文件解析器”生成对应的程序源代码,和标准数据库以及系统的其他代码一起编译链接,实现定制LIN通讯软件模块。其中“LDF文件解析器”是一个上位机工具,需要自行开发,具体实现功能是将LDF文件中对LIN网络定义的信息参数解析,以源代码的形式呈现出来,嵌入到整个系统软件中。
[0014]1.实现LDF文件自动生成软件代码的方法,需要的内容包括LDF文件,“LDF文件解析器”和标准数据库。其特征在于:LIN模块软件设计的自动化和标准化,将上位机工具“LDF文件解析器”和标准数据库进行结合,只需导入LDF文件即可自动生成软件代码,再进行编译链接,完成软件开发,无需软件工程师进行实质性的代码编写,完全智能化快速化。2.如要求I所述的LDF文件是LIN描述文件,是LIN协议中定义的一种标准文件,该文件中包含了 LIN通讯所有的参数信息。客户会根据产品开发需求定义相应的LDF文件,这个LDF文件则是作为软件开发的一个重要输入。3.如要求I所述的“LDF文件解析器”,是根据LDF文件语法规则,设计出的一个上位机工具,它可以导入LDF文件进行解析生成相应的数据库。数据库中以代码的形式包括了 LDF文件中所有的信息,这些信息成为整个系统软件中的一部分,供其他软件模块查询和调用。4.如要求I所述的标准数据库,是包含了LIN物理层的函数集和应用层函数集,这些函数集是标准的固定的,结合LDF文件生成的数据库,可以实现上层应用对LIN网络的管理操作和信息读写。LDF文件。上位机工具,“LDF文件解析器”。可将LDF文件解析成源代码形式的数据库,定义为文件夹“LIN CFGs”。该数据库中包含了所有LIN信号的宏定义和一个常量数组,数组中定义了调度表和所有ID的信息。标准数据库。该软件库包括物理层软件和应用层软件,物理层软件是依据LIN协议数据帧格式,针对MCU通用UART/SCI接口编写的数据收发功能函数集,对于不同型号的MCU时,需要在寄存器定义处稍作修改;应用层软件是用于连接上层与物理层的中间层,提供了LIN信号读写的接口函数和网络睡眠唤醒接口函数。定义为文件夹“LIN APIs”。
[0015]首先将①LDF文件导入②LDF文件解析器,生成③文件夹“LIN CFGs”,该文件夹中定义了所有LIN信号的宏,每个信号的宏定义对应一个十六进制数字信息,代表着该信号在信号列表中所处的位置和长度;同时还定义了一个常量数组,包含了所有ID的信息和调度表信息。④文件夹“LIN APIs”中有物理层函数和应用层函数,其中物理层函数会结合③文件夹“LINCFGs”中常量数组中的信息实现LIN网络的运行和周期调度,而应用层函数则是提供给上层使用的接口函数,通过③文件夹“LIN CFGs”中的信号宏定义作为函数的入口参数以实现对LIN信号的读写功能,还可以实现LIN网络的睡眠唤醒操作以及多个调度表之间的切换。
[0016]然后将③文件夹“LIN CFGs”、④文件夹“LIN APIs”和⑤系统其他源文件一起⑥编译&链接,即可实现一个完整的带有LIN功能模块的软件。
[0017]从实现的步骤可以看出针对不同的LIN功能需求开发,只是LDF文件不同而已,从而导致③文件夹“LIN CFGs”中的内容不同,而④文件夹“LIN APIs”基本是不变的,所以在开发LIN功能软件时最重要的环节是②LDF文件解析器,该上位机工具的开发需借助于VB/VC等可视化开发平台,涉及到如何对LDF文件进行解析,从而匹配④文件夹“LIN APIs”中的函数。
[0018]上面结合附图对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。
【权利要求】
1.一种基于LIN协议的代码自动生成系统,其特征在于:该系统包括LDF文件、LDF文件解析器和标准数据库,所述LDF文件包括LIN通讯的参数信息,所述LDF文件解析器导入LDF文件进行解析生成相应的数据库,所述LDF文件解析器与标准数据库进行通讯。
2.根据权利要求1所述的代码自动生成系统,其特征在于:所述标准数据库包括物理层函数集和应用层函数集,所述标准数据库的物理层函数集针对MCU通用UART/SCI接口编写的数据收发功能函数集;所述标准数据库的应用层函数集根据LIN信号读写的接口函数和网络睡眠唤醒接口函数。
3.根据权利要求2所述的代码自动生成系统,其特征在于:所述标准数据库的物理层函数集针对不同型号的MCU需要对LDF文件解析器的寄存器进行修改。
4.根据权利要求1所述的代码自动生成系统,其特征在于:所述LDF文件解析器的数据库包括LIN信号的宏定义和常量数组,所述常量数组包括调度表信息和ID信息。
5.根据权利要求1至4任意一项所述的一种基于LIN协议的代码自动生成方法,其特征在于,该方法包括以下步骤: 步骤一、LDF文件导入LDF文件解析器; 步骤二、LDF文件解析器,生成与LDF文件相对应的数据库; 步骤三、标准数据库的物理层函数集和应用层函数集结合LDF文件解析器生成与LDF文件相对应的数据库中常量数组中的信息实现LIN网络的运行和周期调度; 步骤四、根据数据库中的信号宏定义作为函数的入口参数,实现对LIN信号的读写功能、LIN网络的睡眠唤醒操作和多个调度表之间的切换; 步骤五、LDF文件解析器生成与LDF文件相对应的数据库、标准数据库和系统源文件一起编译和链接,实现代码的自动生成。
6.根据权利要求5所述的额代码自动生成方法,其特征在于:LDF相对应的数据库中的LIN信号的宏,每个信号的宏定义对应一个十六进制数字信息,代表着该信号在信号列表中所处的位置和长度。
7.根据权利要求5所述的额代码自动生成方法,其特征在于:所述步骤二中,针对不同LIN功能需求设计的LDF文件,LDF文件解析器解析出不同的LDF文件相对应的数据库。
【文档编号】G06F9/44GK104503767SQ201410853108
【公开日】2015年4月8日 申请日期:2014年12月31日 优先权日:2014年12月31日
【发明者】陈泽坚 申请人:埃泰克汽车电子(芜湖)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1