嵌入式汽車數字儀表設計方案


嵌入式汽車數字儀表設計方案
一、引言
隨著汽車電子技術的飛速發(fā)展,汽車數字儀表作為汽車信息的重要顯示裝置,其功能性和可靠性要求日益提高。本文提出了一種基于ARM架構的嵌入式汽車數字儀表設計方案,詳細闡述了系統(tǒng)結構、主控芯片選型及其在設計中的作用,并介紹了各個模塊的工作原理和通信方式。
二、系統(tǒng)概述
汽車數字儀表系統(tǒng)需要處理的信號主要包括車速、發(fā)動機轉速、水溫、油量以及各種開關量或報警信號。其中,發(fā)動機轉速信號和前后燈信號從CAN總線(發(fā)動機電控模塊和前后燈電控模塊)獲取,而車速信號、水溫、油量和其他開關量信號則從相應的傳感器獲取。
本系統(tǒng)對車速、發(fā)動機轉速、水溫和油量信息采用步進表頭顯示,里程信息采用LCD顯示,開關量或報警信號采用LED顯示。串口EEPROM用于存儲里程信息。系統(tǒng)采用Microchip公司的具有SPI接口的控制器MCP2510與收發(fā)器80C250構成CAN節(jié)點,用于實現與汽車其他CAN節(jié)點間的通信。
三、主控芯片選型及其作用
1. 主控芯片型號:三星S3C44BOX
型號說明:
三星S3C44BOX是一款基于ARM7TDMI內核的16/32位RISC處理器,其工作主頻可達75 MHz,內部資源豐富。
S3C44BOX內部無存儲器(內部SRAM用于緩存),因此必須采用總線擴展外部存儲器,包括程序存儲器和數據存儲器。
在設計中的作用:
數據處理核心:S3C44BOX作為主控制器,負責接收并處理來自各個傳感器的信號,包括車速、發(fā)動機轉速、水溫、油量等模擬信號,以及開關量和報警信號。
通信接口控制:通過內置的SIO接口(與MCP2510的SPI接口時序配合),實現與CAN總線的通信,從而獲取發(fā)動機轉速信號和前后燈信號。
顯示控制:通過I/O端口控制步進電機表頭、LCD顯示器和LED指示燈,實時顯示車速、發(fā)動機轉速、水溫、油量、里程等信息以及報警信號。
存儲管理:通過I2C總線方式,利用AT24C04存儲器件存儲里程信息,確保數據在掉電時能夠及時保存。
2. 其他關鍵芯片
CAN節(jié)點控制器:Microchip公司的MCP2510,具有SPI接口,用于實現與汽車其他CAN節(jié)點間的通信。
存儲器:16 Mbit的FlashSST39VF160作為程序存儲器,64 Mbit的SDRAM HY57V641620作為數據存儲器。
步進電機驅動器件:Switec的汽車儀表專用步進電機X15.168及專用四通道步進電機驅動器件X12.017。
電壓轉換器:7805穩(wěn)壓器作為5V電壓轉換器,AS2515AU2.5和AS2515AU3.3分別作為2.5V和3.3V電壓轉換器。
四、系統(tǒng)結構與設計
1. 電源電路
該汽車數字儀表系統(tǒng)采用汽車蓄電池供電,蓄電池電壓約為12V,而系統(tǒng)需采用5V、2.5V和3.3V工作電壓。S3C44BOX內核工作電壓是2.5V,I/O端口的工作電壓是3.3V,調理電路以及一些驅動器件需用5V的工作電壓。因此,系統(tǒng)選用7805穩(wěn)壓器作為5V電壓轉換器,選用AS2515AU2.5和AS2515AU3.3分別作為2.5V和3.3V電壓轉換器。掉電時能夠及時存儲里程信息,電源地需接一只1000μF的電容,確保S3C44BOX在掉電時仍能工作一段時間,完成里程信息的存儲。
2. 信號調理電路
車速脈沖信號調理:由于汽車大多工作在惡劣環(huán)境下,車速傳感器信號易受到干擾,因此在輸入至中斷端口EINT0前需要對車速脈沖信號進行處理。采用RC濾波、三極管放大以及斯密特整形方法調理車速脈沖信號。
水溫、油量信號調理:水溫、油量信號是電阻信號,需轉化為電壓信號,再將其電壓信號輸入至S3C44BOX的AD端口。
開關量信號調理:其他開關量則經過濾波降壓后輸入至S3C44BOX的I/O端口。
3. 顯示模塊
步進電機表頭:選用Switec的汽車儀表專用步進電機X15.168及專用四通道步進電機驅動器件X12.017。S3C44BOX的I/O電平為3.3LVCMOS電平,而X12.017是5VCMOS電平,需采用74LVX4245電平轉換。
LCD顯示:用于顯示里程信息。
LED顯示:用于顯示開關量或報警信號。
4. 存儲模塊
采用AT24C04存儲器件來存儲里程信息。AT24C04是4Kbit的串行存儲器,采用I2C總線方式實現里程信息的存儲。
5. 通信模塊
CAN總線通信:采用Microchip公司的具有SPI接口的控制器MCP2510與收發(fā)器80C250構成CAN節(jié)點,用于實現與汽車其他CAN節(jié)點間的通信。S3C44BOX無SPI接口,但有SIO接口,可通過設置S3C44BOX的SIO模塊所對應的寄存器實現上升沿發(fā)送數據,下降沿接收數據,從而與MCP2510的SPI總線時序相配合。
串口EEPROM:用于存儲里程信息。
6. 操作系統(tǒng)與任務劃分
系統(tǒng)采用Jean J-Labrosse開發(fā)的免費的、開源的嵌入式實時操作系統(tǒng)μC/OS-II。μC/OS-II是一個基于優(yōu)先級的可剝奪型內核,系統(tǒng)所有任務都有一個唯一的優(yōu)先級別,適用于實時性要求較強的場合。μC/OS-II提供多種系統(tǒng)服務,如消息郵箱、消息隊列、信號量管理以及時間延時等,實時內核使得CPU的利用更有效。
本系統(tǒng)主要有8個任務,即車速脈沖測量任務、CAN總線任務、水溫采樣任務、油量采樣任務、開關量處理任務、里程記錄及LCD顯示任務、步進電機驅動任務、WDT任務。任務間通過消息隊列和信號量進行通信和共享數據。
車速脈沖測量任務:脈沖信號接EINT0,使用定時器1定時,測量t時間內脈沖數,并將數據發(fā)送到消息隊列。
CAN總線任務:等待中斷服務程序發(fā)送,接收CAN總線數據的信號量,獲得CPU使用權后,處理CAN總線數據并將其發(fā)送到消息隊列,并再次等待接收信號量。
水溫和油量采樣任務:定時采樣模擬量,并將采樣到的模擬量數值發(fā)送到消息隊列。
開關量處理任務:根據開關量的狀態(tài)控制LED點亮或熄滅,延時。
里程記錄及LCD顯示任務:當車速脈沖值累加至0.1km計數值,向本任務發(fā)出信號量,任務獲得信號量后進入準備就緒狀態(tài),在任務調度時獲得CPU的使用權,顯示并記錄里程信息,運行后繼續(xù)等待接收信號量。
步進電機驅動任務:首先等待消息隊列,再根據送出消息的任務識別出信息內容,根據隊列中的數據驅動步進電機旋轉相應的步數,運行后再次等待隊列中的消息。本任務賦予第2高優(yōu)先級。
WDT任務:用于監(jiān)控,提高系統(tǒng)的可靠性,任務優(yōu)先級最高,延時。
五、系統(tǒng)實現與測試
1. 初始化與任務創(chuàng)建
主程序在完成初始化(硬件初始化ARMtargetInit()、μC/OS-II初始化OSInit()、建立消息隊列等)工作后依次創(chuàng)建各任務,然后調用OSStart()啟動操作系統(tǒng),啟動時鐘ARMTargetStart()。
2. 系統(tǒng)測試
功能測試:驗證系統(tǒng)能否正確顯示車速、發(fā)動機轉速、水溫、油量等信息,以及能否正確響應開關量和報警信號。
性能測試:測試系統(tǒng)的響應時間和數據處理能力,確保系統(tǒng)能夠滿足實時性要求。
可靠性測試:在惡劣環(huán)境下進行長時間運行測試,驗證系統(tǒng)的穩(wěn)定性和可靠性。
六、結論
本文提出了一種基于ARM架構的嵌入式汽車數字儀表設計方案,詳細闡述了系統(tǒng)結構、主控芯片選型及其在設計中的作用,并介紹了各個模塊的工作原理和通信方式。該系統(tǒng)采用三星S3C44BOX作為主控制器,通過CAN總線與汽車其他模塊進行通信,實現了車速、發(fā)動機轉速、水溫、油量等信息的實時顯示和報警信號的提示。同時,系統(tǒng)采用μC/OS-II實時操作系統(tǒng)進行任務管理和資源調度,提高了系統(tǒng)的實時性和可靠性。經過測試驗證,該系統(tǒng)功能完善、性能穩(wěn)定、可靠性高,具有廣泛的應用前景。
責任編輯:David
【免責聲明】
1、本文內容、數據、圖表等來源于網絡引用或其他公開資料,版權歸屬原作者、原發(fā)表出處。若版權所有方對本文的引用持有異議,請聯系拍明芯城(marketing@iczoom.com),本方將及時處理。
2、本文的引用僅供讀者交流學習使用,不涉及商業(yè)目的。
3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。
4、如需轉載本方擁有版權的文章,請聯系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經允許私自轉載拍明芯城將保留追究其法律責任的權利。
拍明芯城擁有對此聲明的最終解釋權。