基于CDC3207G的汽車儀表板設計
2.5 LED指示燈和報警燈
LED指示燈可以用有較強驅動能力的H端口進行驅動,其8個LED指示燈由H端口直接驅動。但H端口不夠用,所以擴展了一個TD62083,用于驅動另外8個LED指示燈和報警燈。圖5給出LED指示燈和報警燈電路。
3 軟件設計
考慮到汽車儀表板對實時性的要求,應用了μC/OS―II操作系統開發軟件。μC/OS―II是一個具備現代操作系統特點的RTOS,同時它結構清晰,注解詳盡,具有良好的可擴展性和可移植性,廣泛地應用于各種架構的微處理器。μC/OS―II的系統組成包含任務調度,任務管理,時間管理和任務間的通信等基本功能。這里僅對μC/OS―II的啟動程序和任務的分配作簡要介紹,將著眼點放在基于CDC3207G的移植和應用。圖6給出軟件的組織結構。
3.1 啟動代碼的設計
嵌入式系統的資源有限,程序通常都是固化在ROM運行。ROM程序執行前,需要初始化系統硬件和軟件運行環境,這些工作由匯編語言編寫的啟動程序完成。啟動程序是嵌入式程序的開頭部分,與應用程序一起固化在ROM中,并首先在系統上電后運行。它應包含各模塊可能出現的所有段類,并合理安排它們的次序。
設計優秀的嵌入式程序關鍵要有好的啟動程序,由于μC/OS―II不是針對特定的硬件進行設計,可以把μC/OS―II內核代碼分成4個部分:與處理器無關的代碼、與處理器有關的代碼、與應用相關的代碼以及驅動程序庫。為了使μC/OS―II在基于ARM7TDMI的處理器CDC3207G上能夠正常的運行,需要實現相應的啟動程序以及對μC/OS―II中與處理器相關部分的設計與實現。圖7給出啟動代碼的流程圖。
3.2 任務規劃
儀表盤的研制在軟件部分可以分成若干任務來完成,下面對這個問題進行規劃。
(1)啟動任務
優先級:10
周期:否
可剝奪:否
作用:初始化各模塊,包括UART、定時器、捕捉比較器等
(2)步進電機任務
優先級:8
周期:2 ms
可剝奪:否
作用:驅動步進電機,在啟動時需要0位檢測
(3)指示器任務
優先級:7
周期:500 ms
可剝奪:否
作用:設置指示燈和提示音。
(4)采集任務
優先級:6
周期:25 ms
可剝奪:否
作用:用于采集各種非中斷量如溫度、光強等傳感器信號并保存
(5)背光任務
優先級:5
周期:250 ms
可剝奪:否
作用:根據周圍的光線強度調節儀表盤和LCD的背光
(6)LCD顯示任務
優先級:2
周期:100 ms
可剝奪:是
任務:根據總線上采集到的數據更新LCD顯示,如溫度、公里數等
上述各任務運行在任務級,還有一些任務運行在中斷級,比如時鐘節拍中斷、CAN總線數據采集等。
4 結語
由于Micronas公司的CDC3207G內部集成有步進電機驅動模塊、音頻控制模塊、LCD驅動模塊、LED及報警燈驅動端口,CAN總線模塊等豐富的資源,因此減少了所需使用的外部驅動器件的數量,大大簡化了儀表盤系統的設計。該器件在休眠狀態下的功耗非常小(經測試約為19.1μA),有利于降低整個系統的功耗。該儀表板系統各方面表現良好.指針平滑轉動,具有極低的功耗,可靠性較高。軟件部分應用了uC/OS一Ⅱ操作系統,實時性能較好,能對外部事件作出快速響應。
評論