侵权投诉
订阅
纠错
加入自媒体

基于代码生成的车身网络电控系统设计

2010-12-30 16:28
铁马老言
关注

  引言

  在车身电子方面,国内外进行了系列的研究。上海理工大学陈家琪等人利用工控机和相关数据采集卡以及CAN总线智能接口,构建了一个集中式的车身电子试验台。哈尔滨工业大学焦晓伟等人采用Stateflow图形化建模工具构建符合AUTOSAR标准的车身应用层软件模型,再利用Targetlink代码生成工具基于模型实现代码自动生成。而英国Warwick大学的Yue Guo等人,则比较了基于SysML和基于“Simulink+Stateflo-w”的开发方法在驾驶信息系统开发过程中的优缺点。本文采用基于框架结构和高级语言描述的车身网络电控系统开发方法,采用UML建模工具实现程序代码的自动生成,可进一步简化车身网络的设计与开发过程,提高软件可重用度,降低开发成本,减少人为错误。

  1 EA及代码生成功能

  Enterprise Architect(EA)是澳大利亚Sparx Systems公司开发的一套UML建模及设计平台。EA体积小巧,使用简便,对UML标准的支持完整;除支持UML2.0标准的所有13种图形之外,还支持其他的扩展图,包括分析图、自定义图、需求图、维护图、用户界面图、数据库模式图、文档、业务建模与业务交互图等。

  为便于扩展、定制以及二次开发,EA提供了丰富的SDK。代码模板框架(Code Template Framework,CTF)是SDK的一部分,EA的代码生成功能正是通过基于此框架的代码生成模板实现的。代码生成模板指定了从UML元素到给定编程语言的转换过程,其修改通过代码模板编辑器实现。打开方法为EA主菜单Settings→Code Generation Template,或使用快捷键Ctrl+Shift+P。代码生成模板以纯文本形式编写,其语法风格兼具标记语言和脚本语言的语法特性。这种语法主要关注三种基本结构:

  (1)字面文本。在代码生成模板中,除了空行将被忽略以外,所有不是宏或变量的定义及引用的文本,都将作为字面文本而直接输出到生成的代码中。如:

  class % className%

  (2)宏。宏既可用于访问UML模型中的元素值,又可用于对生成的代码进行结构化处理。所有的宏都有两个百分号%包含其中。CTF中包含模板替代宏、域替代宏、标记值替代宏、控制宏、函数宏和EASL代码生成宏6种基本的宏。正是这些丰富的宏定义造就了EA强大的代码生成功能。仍以上例说明, “%className%”就是一个域替代宏,在生成的代码中将以当前的类名替代,故若当前类为Foo,则语句的输出为“cl-ass Foo”。

  (3)变量。变量的定义和引用为在代码生成模板中存取数据提供了方便。CTF中的变量采用弱类型定义,即变量的数据类型可以被忽略且一个变量可以被赋予不同数据类型的值。变量的值可以来自各种宏、双引号包含的字面文本和其他变量的引用等。变量的定义和引用使用美元符号加一个合法标识符,如$foo=%class Name%。变量$foo将存储当前类的名称,需要引用此变量时直接使用$foo即可。

  2 软硬件设计

  为了方便调试及验证生成代码的有效性,本设计搭建以CAN总线为主干、LIN总线为下层网络的车身网络演示实验台。

  2.1 硬件拓扑

  根据车身电器的功能和位置,实验台拓扑布局如图1所示。其中,粗实线为CAN总线及其节点,细实线为UN总线及其节点。主干CAN总线上共有8个节点,既是下层LIN网络上的主机节点,又是CAN/LIN网关。其中,数据采集节点使用USBCAN卡搭建,其余网关节点使用 Freescale公司16位单片机MC9S12XSl28作为主控芯片。

  实验台拓扑布局

  MC9S12XSl28同时具有CAN网络控制器(MSCAN模块)和LIN网络控制器(SCI模块),故只需再连接相应的CAN网络收发器 TJAl050和LIN网络收发器TJAl020即可完成CAN/LIN网关节点的硬件设计。CAN/LIN网关节点功能框图如图2所示。

  CAN

  LIN从机节点使用Freescale公司8位单片机MC9S08DZ60作为主控芯片,使用其SCI模块连接LIN网络收发器TJAl020,再连接其他外围执行器组成。LIN从机节点功能框图如图3所示。

  LIN从机节点功能框图

1  2  3  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号