1.引言
目前防盜器市場的主流產(chǎn)品是電子式防盜器,分為單向防盜器和雙向防盜器,,這兩種防盜器都是車主通過遙控器來控制汽車,,雙向防盜器可以把車輛的真實狀況反饋給車主。
GPS汽車防盜器依托全球定位系統(tǒng),,它將報警信息和報警車輛所在位置無聲地傳送到報警中心,。由于車主不能直接控制車輛,價格和使用費用較高,,使其推廣應(yīng)用受到很大限制,,目前還沒有普遍使用。GSM汽車雙向防盜器是網(wǎng)絡(luò)式防盜器的后起之秀,,它依托全球GSM網(wǎng)絡(luò),,車主可直接通過手機接受報警和控制車輛,性能價格比較好,,它代表著汽車防盜器的發(fā)展趨勢,,自推出以來收到客戶的青睞。
本文提出的汽車嵌入式車載防盜系統(tǒng)屬于GSM防盜系統(tǒng),,沒有采用昂貴的GPS模塊,,CPU采用了C51單片機,市場價格低廉,,經(jīng)過多年工業(yè)應(yīng)用,,穩(wěn)定可靠,具有很高的性價比,。
2.時間觸發(fā)模式
電子控制系統(tǒng)一般都是實時系統(tǒng),,常需要處理許多并發(fā)事件的輸入數(shù)據(jù)。這些事件的到來次序和幾率通常都是不可預(yù)測的,,而且還要求系統(tǒng)必須在事先設(shè)定好的時限內(nèi)作出響應(yīng),。
對于如何控制系統(tǒng)的復(fù)雜行為,普遍采用的是事件觸發(fā)方案,,即系統(tǒng)的所有行為響應(yīng)外部事件而執(zhí)行,。然而,中斷丟失與事件觸發(fā)系統(tǒng)的開銷是人們經(jīng)常忽略的問題,。為了滿足安全,,低成本及程序盡可能簡單等苛刻要求,電子控制系統(tǒng)的開發(fā)最終走向事件觸發(fā)結(jié)構(gòu),。事件觸發(fā)意味著所有的采樣輸入,,計算輸出結(jié)果等相關(guān)的動作在預(yù)定的時間前執(zhí)行,,因而能保證準(zhǔn)確的調(diào)度時間。
時間觸發(fā)模式是一種利用MCU的硬件定時器產(chǎn)生的時標(biāo)信號對多任務(wù)進行調(diào)度的嵌入式軟件模式,,它可以應(yīng)用于8位51系列單片機上,。時間觸發(fā)模式可以將控制精度控制在毫秒級,很適合于實時控制系統(tǒng),。在時間觸發(fā)嵌入式系統(tǒng)中,,設(shè)計人員能夠通過仔細(xì)安排可控的順序,保證一次只處理一個事件,。除了能夠提高可靠性之外,,時間觸發(fā)模式中對于存儲器及CPU資源的占用很少,即使在小型嵌入式系統(tǒng)中采用這種系統(tǒng)結(jié)構(gòu),,也能從中獲益,。
時間觸發(fā)合作式調(diào)度器通常通過一個定時器硬件定時器來實現(xiàn),多有的任務(wù)都是時間觸發(fā)的,,這也意味著出了定時器中斷以外,,沒有其他形式的中斷。硬件定時器將被設(shè)置為產(chǎn)生一個周期中斷信號,,這個周期中斷信號頻率可以到1KMz,。
時間觸發(fā)合作調(diào)度器的主要功能就是喚醒預(yù)先確定好時間執(zhí)行的任務(wù)。在工作期間,,調(diào)度器檢查靜態(tài)的任務(wù)鏈表,,根據(jù)任務(wù)的周期判斷是否有任務(wù)需要執(zhí)行。如果有則立即執(zhí)行任務(wù),;任務(wù)執(zhí)行完后繼續(xù)檢查任務(wù)鏈表,,重復(fù)上一個過程。完成鏈表檢查后,,CPU可以進入休眠狀態(tài),,等待下一個時鐘節(jié)拍的到來。其任務(wù)調(diào)度機制如圖1所示,。由于合作式調(diào)度器能保證在同一時刻,系統(tǒng)中只有一個任務(wù)被觸發(fā),,而且在任何時刻系統(tǒng)中都可以保證有任務(wù)在執(zhí)行,。這樣,系統(tǒng)的使用效率得到了提高,。
合作式調(diào)度器可靠且可預(yù)測的主要原因式在任何時刻只有一個任務(wù)是活動的,,這個任務(wù)運行直到完成,然后把CPU的控制權(quán)交給調(diào)度器,。如果采用搶占式調(diào)度,,有多個活動任務(wù)執(zhí)行“上下文切換”和“關(guān)鍵段保護”等將增加系統(tǒng)的開銷,。許多研究表明,相對于搶占式調(diào)度器,,合作式調(diào)度器具有很多優(yōu)點,。
3.系統(tǒng)概述
3.1系統(tǒng)功能分析和狀態(tài)轉(zhuǎn)移圖
經(jīng)過需求分析,我們定義了系統(tǒng)應(yīng)該實現(xiàn)的功能如下:
1)系統(tǒng)將監(jiān)視汽車發(fā)動機的狀態(tài),;
2)系統(tǒng)可以接受手機用戶的設(shè)置,,并設(shè)置手機號碼;
3)如果系統(tǒng)報警開啟,,汽車啟動時,,將通過無線模塊給指定的手機用戶報警;
4)系統(tǒng)接受手機用戶的控制短信,,對汽車進行斷油,,斷電處理;
5)系統(tǒng)接受手機用戶的查詢短信,,可以報告汽車的位置,,在市區(qū)可以精確到無線小區(qū);
6)系統(tǒng)將采取確定的措施以確保系統(tǒng)的穩(wěn)定性,。
以上的各項目標(biāo)功能同時也是衡量系統(tǒng)設(shè)計的指標(biāo),。在以后面的設(shè)計中,我們將利用有限狀態(tài)機等工具將各項功能進行進一步細(xì)化,,直到完成系統(tǒng)的軟硬件設(shè)計,。
基于對系統(tǒng)工作流程的分析,進一步我們可以設(shè)計出系統(tǒng)的狀態(tài)轉(zhuǎn)移圖(圖2),,從上面我們可以清晰的看到系統(tǒng)的工作流程,。
3.2系統(tǒng)模塊構(gòu)成
嵌入式系統(tǒng)設(shè)計中常用模塊化設(shè)計方法,以降低開發(fā)難度,,減少各個部分之間的耦合度,,增強系統(tǒng)的穩(wěn)定性。如圖所示,,整個系統(tǒng)主要由CPU,,傳感器,RS232接口以及GSM模塊構(gòu)成,。其中CPU是系統(tǒng)的核心控制部分,,負(fù)責(zé)接受各模塊信號,進行處理,,并控制其它模塊,;傳感器探測汽車被啟動;GPRS模塊用來收發(fā)短信,,向車主手機通過RS232接口與CPU進行通信,;電子開關(guān)電路用于控制汽車電路系統(tǒng),,能夠達(dá)到對汽車斷油,斷電的目的,。
3.3系統(tǒng)硬件部分
1)采用了Atmel公司生產(chǎn)的AT89S52單片機作為處理核心,,該處理器有32個I/O口,3個Timer,,最多支持8個中斷,。因為256B的片上RAM資源不夠,所以系統(tǒng)使用了擴展的64KRAM,,此外AT89S52的8K片上flash對于該系統(tǒng)來說已經(jīng)足夠,。該處理器可以支持不同的功耗模式,適用于對于成本和功耗敏感的場合,。
CPU外接型號為AT24C01的EEPROM作為數(shù)據(jù)存儲器,,用來存放車主電話號碼等信息。AT24C系列串行E2PROM具有I2C總線接口功能,,功耗小,,寬電源電壓(根據(jù)不同型號2.5V~6.0V),工作電流約為3mA,,靜態(tài)電流隨電源電壓不同為30μA~110μA,。系統(tǒng)中使用了P2口模擬I2C總線與E2PROM連接,這樣的方式相比硬件實現(xiàn)I2C協(xié)議可以簡化電路,,降低成本,。
AT89S52芯片中提供了內(nèi)置看門狗,在一定的時間周期內(nèi),,我們必須對看門狗的寄存器進行設(shè)置,,如果沒能及時設(shè)置,看門狗將使系統(tǒng)復(fù)位,。
2)每臺終端在使用前需要進行初始化設(shè)置,。該設(shè)置是通過串口來完成的,通過復(fù)用與GPS連接的串口來實現(xiàn)終端設(shè)備的初始化,。需要定義好其通信協(xié)議和需要配置的具體內(nèi)容,。
3)該終端安裝在汽車比較隱蔽的地方,采用汽車電源供電的方式,。該終端的主要功能是負(fù)責(zé)GPS信號的接收處理,、告警數(shù)據(jù)的上報、中心控制命令的接收,、處理及命令的執(zhí)行等工作。
4)GPRS模塊采用法國WAVECOM公司Q2406B,,上傳速率可達(dá)2618kbits/s,,下載速率可達(dá)5316kbits/s,。GPS模塊有以下兩種選擇:
a)直接選擇串口連接方式的GPRSMODEM。
b)選擇內(nèi)置的GPRS模塊外加天線的設(shè)計方法,。
采用第一種方法可以降低開發(fā)和維護的難度,,而且安裝方便,但是成本比較高,。第二種方法需要在硬件上設(shè)計相關(guān)的電路,,開發(fā)難度較大,不過可以降低成本,。
5)車輪速度傳感器也叫輪速傳感器或轉(zhuǎn)速傳感器,,它可以測出車輪與驅(qū)動軸共同旋轉(zhuǎn)的齒圈數(shù),然后產(chǎn)生與車輪轉(zhuǎn)速成正比的交流信號,。車輪速度傳感器信號通過ADC電路轉(zhuǎn)換為數(shù)字信號傳送給CPU進行判讀,。
3.4任務(wù)的設(shè)計
通過對圖2以及系統(tǒng)功能的分析我們將系統(tǒng)軟件劃分為多個任務(wù),任務(wù)的名稱,,任務(wù)周期以及執(zhí)行時間等信息如表1所列,。
在表列出的各項任務(wù)中,Task1每1ms對buffer進行查詢,,如果有需要收發(fā)的信息,,馬上通過串口收發(fā)。串口收到的string流存放到緩沖區(qū)中,,交給Task2進行處理,。Task2周期為1s,負(fù)責(zé)PUD短信的編解碼,,對命令的識別和控制信號的發(fā)送,,它是系統(tǒng)中最耗費資源的任務(wù)。Task3每隔10s執(zhí)行一次,,它對車速傳感器采集的信號進行判別,,如果需要告警,則將消息發(fā)送給Task2進行處理,。Task4每48ms檢測一次消息,,完成對汽車控制信號的發(fā)送。Task5在小于16383個CPU機器周期內(nèi)(這里以12ms為周期),,對看門狗進行置位,,保證系統(tǒng)的正常運行。
根據(jù)合作式調(diào)度器的原理與各任務(wù)的周期,,設(shè)置定時器每1ms產(chǎn)生一個周期中斷信號,。因為有多個任務(wù)的執(zhí)行時間超過1ms,Task1無法按規(guī)定的頻率執(zhí)行。因此采用直接將Task1包含進定時器中斷服務(wù)子程序的方法,,從而使所有任務(wù)的周期及執(zhí)行時間均能滿足系統(tǒng)任務(wù)可調(diào)度的要求,。
在工程中采用事件觸發(fā)模式很大程度上會增加系統(tǒng)的復(fù)雜性,導(dǎo)致龐大的代碼結(jié)構(gòu),。這樣的代碼長度及復(fù)雜性不適合普通開發(fā)人員構(gòu)建,,而商業(yè)實時操作系統(tǒng)往往價格昂貴,并且需要很大的操作系統(tǒng)開銷,。采用基于時間觸發(fā)模式開發(fā)系統(tǒng)可以滿足實時,、簡單、可預(yù)測性等工程要求,。在應(yīng)用實例中也可以看到,,對于任務(wù)周期與執(zhí)行時間相差懸殊的任務(wù),為滿足可調(diào)度性的要求,,將需頻繁執(zhí)行的短任務(wù)加入定時器中斷服務(wù)子程序的方法延長了中斷處理的時間,,同時削弱了系統(tǒng)實時響應(yīng)能力及可預(yù)測能力。此外,,也可以通過將執(zhí)行時間長的任務(wù)分解成幾個執(zhí)行時間短的任務(wù)來滿足任務(wù)可調(diào)度性,。相對于事件觸發(fā)模式,時間觸發(fā)模式對工程技術(shù)人員的要求更高,。
4.結(jié)語
通過軟硬件的設(shè)計,,汽車防盜系統(tǒng)實現(xiàn)了對汽車的實時監(jiān)控和報警,并能實現(xiàn)硬件硬件防盜功能,。汽車電子中嵌入式系統(tǒng)得到了大量運用,,如何整合汽車的原有資源,設(shè)計出強大而且實用的應(yīng)用,,將是未來汽車嵌入式開發(fā)的目標(biāo),。