孫令翠
摘 要:AUTOSAR是面向汽車領(lǐng)域的嵌入式軟件體系結(jié)構(gòu)標(biāo)準(zhǔn),整體上分為應(yīng)用層、基礎(chǔ)軟件層以及硬件層。本文從底層驅(qū)動接口標(biāo)準(zhǔn)、參數(shù)配置接口等方面研究符合AUTOSAR規(guī)范的底層驅(qū)動設(shè)計開發(fā)方法,并在微控制器TC1767上,設(shè)計和實(shí)現(xiàn)了CAN的驅(qū)動程序。
關(guān)鍵詞:汽車開放系統(tǒng)架構(gòu);底層驅(qū)動接口規(guī)范;CAN;驅(qū)動設(shè)計
嵌入式系統(tǒng)開發(fā)成功的關(guān)鍵就在于快速高效地開發(fā)穩(wěn)定的底層驅(qū)動程序,這就要求上層應(yīng)用軟件和操作系統(tǒng)具備良好的移植性。汽車開放系統(tǒng)架構(gòu)(AUTomotive Open Systems Architecture,AUTOSAR)規(guī)范從系統(tǒng)整體結(jié)構(gòu)入手,為各層制定接口標(biāo)準(zhǔn),很好的解決了設(shè)備驅(qū)動與應(yīng)用軟件的松散耦合。本文結(jié)合AUTOSAR規(guī)范,探討了符合AUTOSAR基礎(chǔ)軟件規(guī)范的嵌入式系統(tǒng)底層驅(qū)動開發(fā)問題。
一、 AUTOSAR規(guī)范
AUTOSAR是面向汽車領(lǐng)域的嵌入式軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)。整個AUTOSAR體系架構(gòu)是層次化、模塊化的結(jié)構(gòu),整體上分為應(yīng)用層、RTE 層和基礎(chǔ)軟件層。如圖1所示,基礎(chǔ)軟件層包含系統(tǒng)服務(wù)、ECU 抽象層和微控制器抽象層。
應(yīng)用層和基礎(chǔ)軟件層之間的通訊需要根據(jù)RTE來完成,服務(wù)層為應(yīng)用層和基礎(chǔ)軟件層(BSW)之間提供基礎(chǔ)服務(wù)。ECU抽象層是建立在ECU相關(guān)硬件的基礎(chǔ)之上,如外圍設(shè)備與ECU的連接方式。微控制器抽象層主要實(shí)現(xiàn)不同底層硬件接口的統(tǒng)一化,用于映射微控制器的功能和外圍接口,它定義了IO驅(qū)動接口、通信接口和內(nèi)存接,它的實(shí)現(xiàn)與微控制器硬件直接相關(guān)。
二、 CAN驅(qū)動設(shè)計與實(shí)現(xiàn)
1.文件結(jié)構(gòu)
CAN應(yīng)用程序接口大多是由CAN Driver給出,它能夠完成ECU的CAN信息傳遞,能夠為應(yīng)用程序和CCP協(xié)議所使用。在本文的設(shè)計中,CAN驅(qū)動程序是由CAN模塊初始化、CAN數(shù)據(jù)接收、CAN數(shù)據(jù)發(fā)送這三大模塊組成。
參考AUTOSAR底層CAN模塊驅(qū)動規(guī)范中的文件結(jié)構(gòu)體系,本文設(shè)計了如圖2所示的CAN驅(qū)動工程文件結(jié)構(gòu),該文件結(jié)構(gòu)主要包括下述幾個文件:頭文件CAN.h包含CAN模塊的API的聲明;CAN.c文件中定義的變量、數(shù)據(jù)類型以及函數(shù)僅僅可以在CAN模塊中被使用;CAN_Cfg.h、CAN_Inf.h 用于管理CAN模塊的驅(qū)動程序。
CAN.c文件中包括CAN驅(qū)動程序的主要函數(shù):CAN_Init、CAN_Trsmit、CAN_Reciv,主要實(shí)現(xiàn)CAN驅(qū)動的初始化、數(shù)據(jù)發(fā)送和接收功能。
2.CAN驅(qū)動設(shè)計
在使用CAN模塊之前,都應(yīng)當(dāng)對其進(jìn)行初始化操作,從而使其轉(zhuǎn)為復(fù)位模式。CAN通信主要包括發(fā)送和接收兩部分,本設(shè)計中CAN控制器能夠通過接收中斷的方法來接收CAN總線上發(fā)送的報文,因此必須在CAN控制器進(jìn)行初始化過程中打開CAN接收中斷。CAN部分模塊參數(shù)配置說明如表1所示。
3.API定義
根據(jù) AUTOSAR中MCU模塊的API規(guī)范、具體ECU的硬件特性,本文靈活性定義出TC1767 CAN驅(qū)動程序API的函數(shù)原型,確定接口函數(shù)名稱,返回類型以及形參類型。其中主要的API見表2。
三、 結(jié)語
文中介紹了AUTOSAR規(guī)范、CAN模塊驅(qū)動的整體要求,給出了符合AUTOSAR規(guī)范的CAN驅(qū)動設(shè)計開發(fā)方法和過程。經(jīng)驗證,該方法確實(shí)高效可行。利用本文所述的方法可實(shí)現(xiàn)符合AUTOSAR規(guī)范的其他設(shè)備驅(qū)動。
參考文獻(xiàn):
[1] Beibei Shao, Hui Gong. The dual-core technology of embedded system [M]. Beijing: Beijing university of aeronautics and astronautics press, 2008.
[2] Chuan Feng, Jie Hu, Fuwu Yan, Chuanbao Liu. AUTOSAR standard CAN underlying communication study [J]. Journal of wuhan university of technology, 2013, 35 (6) : 842-855.
[3] Jianghai Qiu, Zhiguo Zhao. C Code Generation for S12 Micro Controller and Calibration Technique Based on CCP[J]. Machinery & Electronics, 2011, 9: 003.
[4] AUTOSAR Administration. Specification of CAN Driver V4.0.1. AUTOSAR GbR, 2009.
[5] 孫升, 宋珂, 章桐. AUTOSAR標(biāo)準(zhǔn)發(fā)展及應(yīng)用現(xiàn)狀[J]. 機(jī)電一體化, 2014 (12): 33-38.
本文系“重慶市”三特行動計劃特色專業(yè)建設(shè)項目和重慶工程學(xué)院移動互聯(lián)網(wǎng)應(yīng)用開發(fā)工程研究中心聯(lián)合資助。endprint