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