新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 基于代碼生成的車身網絡電控系統設計

        基于代碼生成的車身網絡電控系統設計

        作者: 時間:2010-12-09 來源:網絡 收藏

        引言
        電子方面,國內外進行了系列的研究。上海理工大學陳家琪等人利用工控機和相關數據采集卡以及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作為主控芯片。

        本文引用地址:http://www.104case.com/article/197566.htm


        MC9S12XSl28同時具有CAN網絡控制器(MSCAN模塊)和LIN網絡控制器(SCI模塊),故只需再連接相應的CAN網絡收發器TJAl050和LIN網絡收發器TJAl020即可完成CAN/LIN網關節點的硬件設計。CAN/LIN網關節點功能框圖如圖2所示。


        上一頁 1 2 3 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 四会市| 随州市| 麻城市| 广东省| 信阳市| 漳州市| 新河县| 宁南县| 晋州市| 延长县| 湟中县| 巍山| 嵊泗县| 佛山市| 永平县| 青河县| 阿拉善左旗| 建瓯市| 木兰县| 潞城市| 读书| 海原县| 儋州市| 西乌珠穆沁旗| 长汀县| 嘉峪关市| 镇安县| 光泽县| 库伦旗| 兴文县| 屏东市| 新乡市| 宁夏| 富阳市| 云阳县| 通辽市| 金门县| 武城县| 安顺市| 云安县| 瓮安县|