作者:吳志紅,王俊現(xiàn),朱元 來源:電子設(shè)計(jì)工程
1引言
隨著現(xiàn)代電子技術(shù)的發(fā)展,多功能、高精度、高靈敏度、讀數(shù)直觀的電子數(shù)字顯示及圖像顯示的儀表已廣泛應(yīng)用于汽車領(lǐng)域。為了提高汽車的使用性能,汽車的電子控制程度越來越高。電子控制裝置必須能迅速、準(zhǔn)確處理各種復(fù)雜的信息,并通過汽車儀表板以數(shù)字、圖形或文字等形式顯示。這就對(duì)控制汽車儀表板的微控制器提出了更高的要求。
德國(guó)Micronas公司開發(fā)的CDC3207G是一款32位ARM內(nèi)核高性能低功耗的微控制器。這是專門針對(duì)汽車儀表板而設(shè)計(jì)的微控制器。目前已經(jīng)應(yīng)用于德國(guó)大眾,中國(guó)東風(fēng)等中高檔汽車。CDC3207G采用ARM7TDMI內(nèi)核,內(nèi)部具有512KFlash以及32KSRAM,為了滿足汽車儀表設(shè)計(jì)的需要,該微控制器還提供16路10位A/D轉(zhuǎn)換模塊、音頻驅(qū)動(dòng)模塊、液晶顯示驅(qū)動(dòng)模塊、7路步進(jìn)電機(jī)驅(qū)動(dòng)模塊等。而且內(nèi)部集成了CAN通信模塊,可以很方便地與車內(nèi)的其他電子裝置進(jìn)行通信。
2硬件設(shè)計(jì)
2.1硬件總體結(jié)構(gòu)圖
整個(gè)儀表板使用一個(gè)CDC3207G微控制器進(jìn)行控制。輸入信號(hào)可以分為數(shù)字開關(guān)信號(hào)和模擬電壓信號(hào)兩種類型。對(duì)數(shù)字開關(guān)信號(hào),可以根據(jù)其高低電平直接讀取其狀態(tài)。而對(duì)模擬信號(hào),如轉(zhuǎn)速,速度等,用微控制器內(nèi)部的lO位精度A/D轉(zhuǎn)換器進(jìn)行A/D轉(zhuǎn)換,將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。設(shè)計(jì)的儀表板用6個(gè)步進(jìn)電機(jī)來驅(qū)動(dòng)6個(gè)指針,分別用來顯示轉(zhuǎn)速、發(fā)動(dòng)機(jī)溫度、油量、速度、油壓和電池電壓。左右轉(zhuǎn)向時(shí)發(fā)出的提示音和故障報(bào)警聲等可以用音頻輸出驅(qū)動(dòng)一個(gè)揚(yáng)聲器來發(fā)出,除了可以產(chǎn)生簡(jiǎn)單的單音警報(bào)外,還可產(chǎn)生振幅逐漸衰減的鑼聲信號(hào)。在LCD上可以顯示當(dāng)前的檔位、車內(nèi)外的溫度以及一些報(bào)警信息和時(shí)間等。LED指示燈可以用微控制器的H端口直接驅(qū)動(dòng)。CAN總線可以與車內(nèi)的其他控制模塊通信。圖1給出儀表板的結(jié)構(gòu)示意圖。
2.2步進(jìn)電機(jī)模塊
步進(jìn)電機(jī)在汽車儀表領(lǐng)域的應(yīng)用是新一代汽車儀表最顯著的特點(diǎn)。控制器CDC3207G內(nèi)部集成了7個(gè)步進(jìn)電機(jī)驅(qū)動(dòng)模塊,每個(gè)步進(jìn)電機(jī)模塊通過控制器內(nèi)部連接了H橋的4個(gè)高電流輸出端口,直接驅(qū)動(dòng)兩相步進(jìn)電機(jī),大大簡(jiǎn)化了硬件電路的設(shè)計(jì)。通過軟件便可產(chǎn)生步進(jìn)電機(jī)定位需要的各種脈沖。CDC3207G微控制器的步進(jìn)電機(jī)模塊可提供多通道的PWM輸出,輸出信號(hào)頻率通過硬件設(shè)置可以選擇,并且不同步進(jìn)電機(jī)模塊輸出信號(hào)時(shí)序上具有偏移,可以提高電磁兼容性能(EMC)。根據(jù)控制兩相步進(jìn)電機(jī)的需要,CDC3207G內(nèi)部提供了3個(gè)8位的寄存器,用于通過軟件產(chǎn)生控制步進(jìn)電機(jī)需要的脈沖信號(hào)。其中2個(gè)寄存器通過每一模塊中的比較器與模塊計(jì)時(shí)器比較,用于產(chǎn)生驅(qū)動(dòng)電機(jī)的PWM信號(hào),另外一個(gè)寄存器用來選中相應(yīng)步進(jìn)電機(jī)模塊,輸出驅(qū)動(dòng)信號(hào),以及選擇4個(gè)輸出引腳的極性。這樣,通過軟件對(duì)3個(gè)寄存器的操作就能方便地控制每一路步進(jìn)電機(jī)。此外,CDC3207G還具有零位檢測(cè)功能,即檢測(cè)電機(jī)運(yùn)轉(zhuǎn)時(shí)的感應(yīng)電流,得到電機(jī)運(yùn)行的位置信息,就可以據(jù)此判斷電機(jī)是否達(dá)到初始位置(即汽車儀表的零位)。圖2給出步進(jìn)電機(jī)驅(qū)動(dòng)電路。
2.3音頻控制模塊
CDC3207G音頻模塊的輸出信號(hào)可以直接驅(qū)動(dòng)蜂鳴器或其他音頻設(shè)備,硬件設(shè)計(jì)比較簡(jiǎn)單。圖3給出音頻模塊驅(qū)動(dòng)電路。從圖中可知,在微控制器音頻模塊的輸出端口U1.4處直接接人三極管VT5、低通濾波器電路和揚(yáng)聲器,即可實(shí)現(xiàn)整個(gè)音頻電路的設(shè)計(jì)。音頻模塊用于由脈寬調(diào)制單元(PWM)、3個(gè)計(jì)數(shù)器和1個(gè)累加器組成。該模塊能產(chǎn)生類似于鑼聲的聲音信號(hào),是頻率可調(diào)的方波信號(hào),輸出信號(hào)的脈寬由方波信號(hào)的脈寬決定,無需CPU就能實(shí)現(xiàn)信號(hào)振幅的指數(shù)變化。
2.4LCD顯示模塊
液晶顯示器(LCD)具有微功耗、平板化、無x射線和電磁輻射等優(yōu)點(diǎn)。LCD顯示模塊能以數(shù)字和圖像準(zhǔn)確顯示出各個(gè)物理量,并增加了一些發(fā)生故障時(shí)的文字提示。CDC3207G內(nèi)部集成了一個(gè)48x4的筆段式LCD驅(qū)動(dòng)模塊,可以驅(qū)動(dòng)4行、48列的LCD顯示模塊。為了能顯示更多的信息,這里選用的是一款128x64的LCD模塊,在此LCD模塊上集成有驅(qū)動(dòng)器,所以沒有用到CDC3207內(nèi)部的LCD驅(qū)動(dòng)器。圖4給出LCD顯示電路,需要連接8根數(shù)據(jù)線,一根讀信號(hào),一根寫信號(hào),一根復(fù)位信號(hào)線。
2.5LED指示燈和報(bào)警燈
LED指示燈可以用有較強(qiáng)驅(qū)動(dòng)能力的H端口進(jìn)行驅(qū)動(dòng),其8個(gè)LED指示燈由H端口直接驅(qū)動(dòng)。但H端口不夠用,所以擴(kuò)展了一個(gè)TD62083,用于驅(qū)動(dòng)另外8個(gè)LED指示燈和報(bào)警燈。圖5給出LED指示燈和報(bào)警燈電路。
3軟件設(shè)計(jì)
考慮到汽車儀表板對(duì)實(shí)時(shí)性的要求,應(yīng)用了μC/OS—II操作系統(tǒng)開發(fā)軟件。μC/OS—II是一個(gè)具備現(xiàn)代操作系統(tǒng)特點(diǎn)的RTOS,同時(shí)它結(jié)構(gòu)清晰,注解詳盡,具有良好的可擴(kuò)展性和可移植性,廣泛地應(yīng)用于各種架構(gòu)的微處理器。μC/OS—II的系統(tǒng)組成包含任務(wù)調(diào)度,任務(wù)管理,時(shí)間管理和任務(wù)間的通信等基本功能。這里僅對(duì)μC/OS—II的啟動(dòng)程序和任務(wù)的分配作簡(jiǎn)要介紹,將著眼點(diǎn)放在基于CDC3207G的移植和應(yīng)用。圖6給出軟件的組織結(jié)構(gòu)。
3.1啟動(dòng)代碼的設(shè)計(jì)
嵌入式系統(tǒng)的資源有限,程序通常都是固化在ROM運(yùn)行。ROM程序執(zhí)行前,需要初始化系統(tǒng)硬件和軟件運(yùn)行環(huán)境,這些工作由匯編語言編寫的啟動(dòng)程序完成。啟動(dòng)程序是嵌入式程序的開頭部分,與應(yīng)用程序一起固化在ROM中,并首先在系統(tǒng)上電后運(yùn)行。它應(yīng)包含各模塊可能出現(xiàn)的所有段類,并合理安排它們的次序。
設(shè)計(jì)優(yōu)秀的嵌入式程序關(guān)鍵要有好的啟動(dòng)程序,由于μC/OS—II不是針對(duì)特定的硬件進(jìn)行設(shè)計(jì),可以把μC/OS—II內(nèi)核代碼分成4個(gè)部分:與處理器無關(guān)的代碼、與處理器有關(guān)的代碼、與應(yīng)用相關(guān)的代碼以及驅(qū)動(dòng)程序庫。為了使μC/OS—II在基于ARM7TDMI的處理器CDC3207G上能夠正常的運(yùn)行,需要實(shí)現(xiàn)相應(yīng)的啟動(dòng)程序以及對(duì)μC/OS—II中與處理器相關(guān)部分的設(shè)計(jì)與實(shí)現(xiàn)。圖7給出啟動(dòng)代碼的流程圖。
3.2任務(wù)規(guī)劃
儀表盤的研制在軟件部分可以分成若干任務(wù)來完成,下面對(duì)這個(gè)問題進(jìn)行規(guī)劃。
(1)啟動(dòng)任務(wù)
優(yōu)先級(jí):10
周期:否
可剝奪:否
作用:初始化各模塊,包括UART、定時(shí)器、捕捉比較器等
(2)步進(jìn)電機(jī)任務(wù)
優(yōu)先級(jí):8
周期:2ms
可剝奪:否
作用:驅(qū)動(dòng)步進(jìn)電機(jī),在啟動(dòng)時(shí)需要0位檢測(cè)
3)指示器任務(wù)
優(yōu)先級(jí):7
周期:500ms
可剝奪:否
作用:設(shè)置指示燈和提示音。
(4)采集任務(wù)
優(yōu)先級(jí):6
周期:25ms
可剝奪:否
作用:用于采集各種非中斷量如溫度、光強(qiáng)等傳感器信號(hào)并保存
(5)背光任務(wù)
優(yōu)先級(jí):5
周期:250ms
可剝奪:否
作用:根據(jù)周圍的光線強(qiáng)度調(diào)節(jié)儀表盤和LCD的背光
(6)LCD顯示任務(wù)
優(yōu)先級(jí):2
周期:100ms
可剝奪:是
任務(wù):根據(jù)總線上采集到的數(shù)據(jù)更新LCD顯示,如溫度、公里數(shù)等
上述各任務(wù)運(yùn)行在任務(wù)級(jí),還有一些任務(wù)運(yùn)行在中斷級(jí),比如時(shí)鐘節(jié)拍中斷、CAN總線數(shù)據(jù)采集等。
4結(jié)語
由于Micronas公司的CDC3207G內(nèi)部集成有步進(jìn)電機(jī)驅(qū)動(dòng)模塊、音頻控制模塊、LCD驅(qū)動(dòng)模塊、LED及報(bào)警燈驅(qū)動(dòng)端口,CAN總線模塊等豐富的資源,因此減少了所需使用的外部驅(qū)動(dòng)器件的數(shù)量,大大簡(jiǎn)化了儀表盤系統(tǒng)的設(shè)計(jì)。該器件在休眠狀態(tài)下的功耗非常小(經(jīng)測(cè)試約為19.1μA),有利于降低整個(gè)系統(tǒng)的功耗。該儀表板系統(tǒng)各方面表現(xiàn)良好.指針平滑轉(zhuǎn)動(dòng),具有極低的功耗,可靠性較高。軟件部分應(yīng)用了uC/OS一Ⅱ操作系統(tǒng),實(shí)時(shí)性能較好,能對(duì)外部事件作出快速響應(yīng)。
責(zé)任編輯:gt
-
微控制器
+關(guān)注
關(guān)注
48文章
7572瀏覽量
151638 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6856瀏覽量
123438 -
步進(jìn)電機(jī)
+關(guān)注
關(guān)注
150文章
3114瀏覽量
147607
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論