基于嵌入式車(chē)載安全預(yù)警系統(tǒng)設(shè)計(jì)
2.1 微處理器MCU
設(shè)計(jì)中選用的主控芯片為STM32增強(qiáng)型系列的STM32F103RE,STM32系列是意法半導(dǎo)體推出的專(zhuān)為高要求、低成本、低功耗的嵌入式應(yīng)用設(shè)計(jì)的Cortex-M3內(nèi)核的ARM控制器。2.0~3.6 V的工作電壓,時(shí)鐘頻率可達(dá)到72 MHz,內(nèi)置512 KB FLASH和64 KB SRAM,帶片選的靜態(tài)存儲(chǔ)器控制器,支持CF卡、SRAM、NAND存儲(chǔ)器。片上集成有三路16位數(shù)模轉(zhuǎn)換器、兩路I2C、五路UART和三路SPI端口等,其方便的擴(kuò)展性及豐富的通信接口非常適用于本系統(tǒng)實(shí)現(xiàn)與多個(gè)外部功能模塊的通信控制。
2.2 定位、測(cè)速電路設(shè)計(jì)
GPS是實(shí)現(xiàn)車(chē)輛定位及測(cè)速功能的核心模塊,這里選用的是瑞士u-blox公司生產(chǎn)的LEA-5S型號(hào)的GPS模塊,其具有22.4 mmx17 mm超小封裝,4 Hz定位更新速率,65 mW的低功耗以及-160 dBm的高追蹤靈敏度。模塊的串口。TTL電平是3 V,與STM32的通信電平一致,因此應(yīng)用中直接將模塊的Pin3 TxD,Pin4 RxD與主控芯片PA3 USART2_RX和PA2 USART2_TX相連。
通信協(xié)議遵循NMEA-0183標(biāo)準(zhǔn),協(xié)議的語(yǔ)句格式以“$”開(kāi)始,以“CR>LF>”結(jié)束,主控芯片可以通過(guò)串口讀取模塊上傳的數(shù)據(jù)幀$GP GGA(全球定位信息)和$GPVTG(地面速度信息)語(yǔ)句,從中提取需要的經(jīng)緯度、航向、速度、時(shí)間等信息。
系統(tǒng)設(shè)計(jì)中選用Analog Device公司生產(chǎn)的型號(hào)為ADXL345三軸重力加速度計(jì),主要完成的功能有:輔助測(cè)速,因其不受地理位置和周?chē)ㄖ挠绊懀\(yùn)用擴(kuò)展的Kalman濾波算法,解決GPS在動(dòng)態(tài)環(huán)境中信號(hào)失鎖和周跳問(wèn)題,保證系統(tǒng)測(cè)速功能的實(shí)時(shí)性;對(duì)汽車(chē)行駛過(guò)程中的加速度檢測(cè),通過(guò)檢測(cè)的數(shù)據(jù)判斷車(chē)輛是否行駛在安全的加速度閾值內(nèi)。ADXL345是一款超低功耗,小巧纖薄的3軸加速計(jì),可以對(duì)高達(dá)±16g的加速度進(jìn)行高分辨率(13位)測(cè)量,車(chē)載系統(tǒng)中應(yīng)用了芯片上的I2C通信接口。
2.3 藍(lán)牙免提模塊設(shè)計(jì)
設(shè)計(jì)中采用了一款集成度較高的BC05MM-EXT藍(lán)牙模塊,其內(nèi)核芯片是英國(guó)CSR公司的BC05 Bluecore芯片,執(zhí)行標(biāo)準(zhǔn)Bluetooth 2.1+ED R,模塊內(nèi)嵌的通信協(xié)議支持HS/HF、A2DP,可實(shí)現(xiàn)免提和高質(zhì)量的音頻播放功能,內(nèi)置噪聲消除和回音處理電路。
該模塊的外圍電路主要包括通信電路、音頻輸出電路、MIC濾波電路、狀態(tài)指示電路、按鍵輸入電路。STM32通過(guò)串口與藍(lán)牙模塊相連,主要完成的任務(wù)是與帶藍(lán)牙功能的手機(jī)之間進(jìn)行通信;按照模塊支持的A2DP協(xié)議,音頻輸出電路調(diào)試階段采用的是100 mW的立體聲耳機(jī)放大器TS482,匹配32 Ω的揚(yáng)聲器;MIC輸入電路主要是對(duì)音頻信號(hào)的濾波處理,采用了差分輸入設(shè)計(jì)提高抗干擾性能,保證免提的音頻效果;狀態(tài)指示和按鍵輸入部分由主控芯片外接發(fā)光二級(jí)管和獨(dú)立按鍵實(shí)現(xiàn)。
設(shè)計(jì)中應(yīng)用結(jié)構(gòu)簡(jiǎn)單的倒F天線(xiàn),可直接在PCB板上按照適用藍(lán)牙系統(tǒng)的倒F天線(xiàn)尺寸在適當(dāng)?shù)牟及逦恢美L制天線(xiàn)。
2.4 GSM模塊設(shè)計(jì)
常用的GSM短信模塊有TC35,TC35I。因前者電壓范圍稍微大一些,考慮到GSM模塊對(duì)電源的敏感性,所以設(shè)計(jì)中選用的是西門(mén)子公司推出的無(wú)線(xiàn)通信GSM模塊(雙頻900/1 800 MHz)TC35,支持Text和PDU格式的SMS(Short Message Service,短消息),可通過(guò)AT命令或關(guān)斷信號(hào)實(shí)現(xiàn)重啟和故障恢復(fù)。
TC35外圍電路主要由電源電路、數(shù)據(jù)通信電路、IGT啟動(dòng)電路和SIM卡電路組成。在啟動(dòng)電路設(shè)計(jì)中實(shí)現(xiàn)可靠的啟動(dòng)脈沖十分關(guān)鍵,按照TC35的設(shè)計(jì)要求,上電后需要給模塊的IGT腳加一個(gè)延時(shí)大于100 ms的低電平脈沖,并且電平下降時(shí)間要小于1 ms,供電電壓大于3.3 V才能使TC35進(jìn)入工作狀態(tài),設(shè)計(jì)中通過(guò)STM32的I/O引腳推挽輸出方式實(shí)現(xiàn)TC35的啟動(dòng)。模塊對(duì)電源的穩(wěn)定性要求非常高,在通信時(shí)網(wǎng)絡(luò)連接時(shí)的瞬間電流峰值可達(dá)2 A,尤其是在信號(hào)不良時(shí),這種情況在電源電路設(shè)計(jì)時(shí)增加了必要的電容濾波部分。通信接口為模塊的18腳RXD,19腳TXD與主控芯片USART3串口通信。
2.5 電源設(shè)計(jì)
汽車(chē)上電子設(shè)備較多,使得車(chē)內(nèi)的電磁環(huán)境也較復(fù)雜,在這種環(huán)境中汽車(chē)電子產(chǎn)品電源性能的好壞直接影響到電子設(shè)備的可靠性。根據(jù)各模塊的供電需求,系統(tǒng)采用車(chē)內(nèi)點(diǎn)煙器提供的12 V電源,經(jīng)LM2596為核心的開(kāi)關(guān)穩(wěn)壓電源芯片為系統(tǒng)提供5 V和3.3 V的車(chē)載系統(tǒng)工作電壓,LM2596其輸入范圍可達(dá)40 V,輸出電流可達(dá)3 A,并且功耗小、效率高、具有很好的線(xiàn)性和負(fù)載特性,非常適合該應(yīng)用系統(tǒng)。選用LM259 6-3.3將車(chē)內(nèi)電源轉(zhuǎn)化成車(chē)載系統(tǒng)內(nèi)主控芯片STM32、加速度傳感器和GPS使用的3.3 V電源;同時(shí)選用LM2596.5.0為GSM提供5 V工作電壓。LM2596—5.0應(yīng)用電路如圖2所示,LM2596—3.3的應(yīng)用電路和LM2596-5.0原理基本相同。本文引用地址:http://www.ex-cimer.com/article/148038.htm
如圖2所示,電源電路設(shè)計(jì)考慮到應(yīng)用環(huán)境,采取了相應(yīng)的抗干擾和過(guò)流保護(hù)措施。為了防止電流過(guò)大,輸入端串接自恢復(fù)保險(xiǎn)絲F1保護(hù)系統(tǒng)的安全性;D1,D2構(gòu)成電源極性反接保護(hù)電路;C1,C2,C3電容并接電路去除車(chē)內(nèi)電源信號(hào)的紋波和高頻噪聲;輸出端L1可以抑制紋波,使LM2596輸出穩(wěn)定的電壓;電源輸出端對(duì)地連接的C4,C5旁路電容也起到穩(wěn)定環(huán)路的作用。
3 系統(tǒng)的軟件設(shè)計(jì)
STM32開(kāi)發(fā)工具選用的是ARM公司4.22版的KeilMDK,采用μVision 4開(kāi)發(fā)環(huán)境,通過(guò)片上集成的JTAG調(diào)試接口通過(guò)JLINK V8仿真器與PC相連。
3.1 μC/OS-Ⅱ的簡(jiǎn)介與移植
為了便于系統(tǒng)的升級(jí)與維護(hù),設(shè)計(jì)中采用了嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ。該操作系統(tǒng)具有執(zhí)行效率高、占用空間小實(shí)時(shí)性能優(yōu)良和可擴(kuò)展性強(qiáng)等特點(diǎn),最小內(nèi)核可編譯至2 KB,非常適合FLASH容量較小的系統(tǒng)使用。
μC/OS-Ⅱ的文件體系結(jié)構(gòu)如圖3所示。
由圖3中可以看出,μC/OS-Ⅱ的絕大部分是與處理器和其他硬件無(wú)關(guān)的代碼,大大降低了移植的工作量,移植過(guò)程中需要修改的源代碼文件有:
(1)在內(nèi)核頭文件OS_CPU.H中設(shè)置與處理器和編譯器相關(guān)的代碼,針對(duì)具體處理器的字長(zhǎng)重新定義一系列數(shù)據(jù)類(lèi)型,聲明用于開(kāi)關(guān)中斷、堆棧的增長(zhǎng)方向和任務(wù)切換的宏。
(2)在OS_CPU_A.ASM中實(shí)現(xiàn)與處理器相關(guān)的函數(shù),關(guān)中斷函數(shù)OS_CPU_SR_Save();恢復(fù)中斷函數(shù)OS_CPU_SR_Restore();啟動(dòng)最高優(yōu)先級(jí)任務(wù)運(yùn)行OSStartHighRdy();任務(wù)切換OSCtxSw()和中斷切換OSIntCtxSw()。
(3)在OS_CPU_C.C中用C語(yǔ)言編寫(xiě)與CPU相關(guān)的函數(shù)。主要是任務(wù)堆棧初始化函數(shù)OSTaskStkInit()和系統(tǒng)HooK函數(shù)。
整個(gè)移植的代碼都在上面三個(gè)文件中,實(shí)際只要在啟動(dòng)文件中修改任務(wù)調(diào)度函數(shù)以及節(jié)拍函數(shù)的中斷入口就完成了操作系統(tǒng)的移植。
評(píng)論