<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設計應用 > 基于代碼生成的車(chē)身網(wǎng)絡(luò )電控系統設計

基于代碼生成的車(chē)身網(wǎng)絡(luò )電控系統設計

作者: 時(shí)間:2010-12-09 來(lái)源:網(wǎng)絡(luò ) 收藏

引言
電子方面,國內外進(jìn)行了系列的研究。上海理工大學(xué)陳家琪等人利用工控機和相關(guān)數據采集卡以及CAN總線(xiàn)智能接口,構建了一個(gè)集中式的電子試驗臺。哈爾濱工業(yè)大學(xué)焦曉偉等人采用Stateflow圖形化建模工具構建符合AUTOSAR標準的應用層軟件模型,再利用Targetlink工具基于模型實(shí)現代碼自動(dòng)生成。而英國Warwick大學(xué)的Yue Guo等人,則比較了基于SysML和基于“Simulink+Stateflo-w”的開(kāi)發(fā)方法在駕駛信息系統開(kāi)發(fā)過(guò)程中的優(yōu)缺點(diǎn)。本文采用基于框架結構和高級語(yǔ)言描述的車(chē)身系統開(kāi)發(fā)方法,采用UML建模工具實(shí)現程序代碼的自動(dòng)生成,可進(jìn)一步簡(jiǎn)化車(chē)身的設計與開(kāi)發(fā)過(guò)程,提高軟件可重用度,降低開(kāi)發(fā)成本,減少人為錯誤。

1 EA及功能
Enterprise Architect(EA)是澳大利亞Sparx Systems公司開(kāi)發(fā)的一套UML建模及設計平臺。EA體積小巧,使用簡(jiǎn)便,對UML標準的支持完整;除支持UML2.0標準的所有13種圖形之外,還支持其他的擴展圖,包括分析圖、自定義圖、需求圖、維護圖、用戶(hù)界面圖、數據庫模式
圖、文檔、業(yè)務(wù)建模與業(yè)務(wù)交互圖等。
為便于擴展、定制以及二次開(kāi)發(fā),EA提供了豐富的SDK。代碼模板框架(Code Template Framework,CTF)是SDK的一部分,EA的功能正是通過(guò)基于此框架的代碼生成模板實(shí)現的。代碼生成模板指定了從UML元素到給定編程語(yǔ)言的轉換過(guò)程,其修改通過(guò)代碼模板編輯器實(shí)現。打開(kāi)方法為EA主菜單Settings→Code Generation Template,或使用快捷鍵Ctrl+Shift+P。代碼生成模板以純文本形式編寫(xiě),其語(yǔ)法風(fēng)格兼具標記語(yǔ)言和腳本語(yǔ)言的語(yǔ)法特性。這種語(yǔ)法主要關(guān)注三種基本結構:
(1)字面文本。在代碼生成模板中,除了空行將被忽略以外,所有不是宏或變量的定義及引用的文本,都將作為字面文本而直接輸出到生成的代碼中。如:
class % className%
(2)宏。宏既可用于訪(fǎng)問(wèn)UML模型中的元素值,又可用于對生成的代碼進(jìn)行結構化處理。所有的宏都有兩個(gè)百分號%包含其中。CTF中包含模板替代宏、域替代宏、標記值替代宏、控制宏、函數宏和EASL代碼生成宏6種基本的宏。正是這些豐富的宏定義造就了EA強大的代碼生成功能。仍以上例說(shuō)明,“%className%”就是一個(gè)域替代宏,在生成的代碼中將以當前的類(lèi)名替代,故若當前類(lèi)為Foo,則語(yǔ)句的輸出為“cl-ass Foo”。
(3)變量。變量的定義和引用為在代碼生成模板中存取數據提供了方便。CTF中的變量采用弱類(lèi)型定義,即變量的數據類(lèi)型可以被忽略且一個(gè)變量可以被賦予不同數據類(lèi)型的值。變量的值可以來(lái)自各種宏、雙引號包含的字面文本和其他變量的引用等。變量的定義和引用使用美元符號加一個(gè)合法標識符,如$foo=%class Name%。變量$foo將存儲當前類(lèi)的名稱(chēng),需要引用此變量時(shí)直接使用$foo即可。

2 軟硬件設計
為了方便調試及驗證生成代碼的有效性,本設計搭建以CAN總線(xiàn)為主干、LIN總線(xiàn)為下層的車(chē)身網(wǎng)絡(luò )演示實(shí)驗臺。
2.1 硬件拓撲
根據車(chē)身電器的功能和位置,實(shí)驗臺拓撲布局如圖1所示。其中,粗實(shí)線(xiàn)為CAN總線(xiàn)及其節點(diǎn),細實(shí)線(xiàn)為UN總線(xiàn)及其節點(diǎn)。主干CAN總線(xiàn)上共有8個(gè)節點(diǎn),既是下層LIN網(wǎng)絡(luò )上的主機節點(diǎn),又是CAN/LIN網(wǎng)關(guān)。其中,數據采集節點(diǎn)使用USBCAN卡搭建,其余網(wǎng)關(guān)節點(diǎn)使用Freescale公司16位單片機MC9S12XSl28作為主控芯片。

本文引用地址:http://dyxdggzs.com/article/197566.htm


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


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>