摘要:針對“飛思卡爾”杯全國大學(xué)生智能車邀請賽,設(shè)計了基于MC9S12XS128(飛思卡爾專用芯片)的單片機(jī)開發(fā)系統(tǒng),,在此給出主要硬件電路和軟件設(shè)計流程,。為驗(yàn)證該系統(tǒng)可靠性,設(shè)計了4×4矩陣鍵盤鍵號的識別與數(shù)碼管顯示電路,。實(shí)際應(yīng)用結(jié)果表明,,此開發(fā)板的應(yīng)用大大提高了智能車開發(fā)效率。同時可為大學(xué)本科學(xué)生學(xué)習(xí)嵌入式開發(fā)系統(tǒng)以及為汽車電子行業(yè)工程師提供良好的開發(fā)平臺,,具有較高的實(shí)用性和推廣價值,。
關(guān)鍵詞:飛思卡爾;MC9S12XS128,;CAN總線,;矩陣鍵盤
0 引言
“飛思卡爾”杯全國大學(xué)生智能車競賽是以迅速發(fā)展的汽車電子為背景,涵蓋控制,、模式識別,、傳感技術(shù)、電子,、電氣,、計算機(jī)、機(jī)械等多個交叉學(xué)科的科技創(chuàng)意性比賽,,該項(xiàng)目由大賽組委會統(tǒng)一提供車模,,利用指定的微控制器作為核心控制單元,各參賽隊伍在此基礎(chǔ)上自主進(jìn)行系統(tǒng)設(shè)計,,完成智能車的制作,,使其能夠在專門設(shè)計的跑道上自動識別道路,并以最高速度行駛,。此項(xiàng)賽事旨在加強(qiáng)大學(xué)生的創(chuàng)新意識,、團(tuán)隊合作精神和培養(yǎng)學(xué)生的創(chuàng)新能力。本文設(shè)計了基于MC9S12XS128(飛思卡爾指定芯片)的單片機(jī)開發(fā)系統(tǒng),,為即將參加此項(xiàng)競賽的同
學(xué)提供學(xué)習(xí)平臺,。實(shí)際應(yīng)用結(jié)果表明,此項(xiàng)開發(fā)板的應(yīng)用大大提高了大學(xué)生制作智能車的開發(fā)效率,。
1 系統(tǒng)硬件設(shè)計
MC9S12XS128單片機(jī)開發(fā)板由MC9S12XS128單片機(jī)最小系統(tǒng),、電源模塊、CAN/LIN總線接口,、USB轉(zhuǎn)串口,、標(biāo)準(zhǔn)異步串行接口、MAX 485通信接口,、4×4矩陣鍵盤鍵號的識別與顯示電路(包括數(shù)碼管和液晶顯示接口)和電機(jī)驅(qū)動接口組成,,系統(tǒng)框圖如圖1所示。
1.1 電源模塊設(shè)計
此開發(fā)板上提供2種輸出電壓,,分別為5 V和12 V,,輸出的12 V電壓可以通過LIN總線接口外接,同時提供2種電壓輸入方式,,通過公用一個電源插頭給此開發(fā)板送入5 V或12 V電壓,,當(dāng)輸入5 V電壓時,開關(guān)s,,需打到5 V檔上,,板內(nèi)芯片ST662將5 V的電壓轉(zhuǎn)換為12 V電壓,給需要12 V電壓的模塊供電,。當(dāng)選擇使用輸入12 V電壓給開發(fā)板供電時,,開關(guān)S1需打到12 V檔上。此供電系統(tǒng)的原理圖如圖2所示,。
1.2 CAN總線與LIN總線設(shè)計
TJA1041高速CAN收發(fā)器通過接頭與MC9S12XS128的CAN總線引腳相連,。考慮到CAN總線的不常使用,,和功耗比較大,,所以系統(tǒng)不但設(shè)計了這2種總線接口,為了方便又設(shè)計了J-CAN-SELECT接頭和J-LIN-Selector接頭,。當(dāng)使用CAN總線時,,用跳線帽把J-CAN-SELECT接頭選通,當(dāng)使用LIN總線時,,用跳線帽把J-LIN-SELECT接頭選通,。CAN總線原理圖(LIN總線原理圖略)如圖3所示,。
1.3 通信接口設(shè)計
文中采用單片機(jī)與PC機(jī)之間的異步通信模式,將單片機(jī)看成另外一個PC機(jī),,只需3根線:發(fā)送線,,接收線和固定公地線。由于MC9S12XS 128內(nèi)部集成有2個串口控制器,,可以選用其中一個作為RS 232串口使用,,另外一個作為485總線的控制器。單片機(jī)內(nèi)部TTL電平與RS 232信號電平之間的電平轉(zhuǎn)換選用MAXIM公司的MAX 232芯片,。串口和485接口原理圖如圖4所示,。
其中PS1為對應(yīng)的單片機(jī)上串行控制接口0的發(fā)送端,PS0為接口0的接收端,。另外為了方便應(yīng)用,,設(shè)計了USB轉(zhuǎn)串口電路,原理圖如圖5所示,。由于MC9S12XS128內(nèi)部只集成有2個SCI控制器,,所以USB轉(zhuǎn)串口,串口,,LIN,,485四種通信接口需要公用2個SCI控制模塊:串口與USB轉(zhuǎn)串口公用SCI0,485與LIN公用SCI1,。USB協(xié)議轉(zhuǎn)換成串口通信協(xié)議選用PL2303芯片,。
1.4 直流電機(jī)驅(qū)動電路
直流電機(jī)驅(qū)動電路采用組委會推薦的專用電機(jī)驅(qū)動芯片MC33886,驅(qū)動電路如圖6所示,。其中,,V1+接電池正極;VCC接系統(tǒng)+5 V,;OUT+和OUT2-接直流電機(jī),;IN1和IN2控制MC33886輸出不同的值。
1.5 矩陣鍵盤按鍵識別
在MC9S12XS128單片機(jī)的I/O口設(shè)計4×4行列式鍵盤,,采用程序掃描識別鍵號,,當(dāng)有按鍵按下時,其鍵號顯示在共陰極LED數(shù)碼管上,。其電路如圖7所示,。在鍵盤的按鍵識別中通常采用“行掃描法”(逐行或列)掃描查詢法。判斷鍵盤中有無鍵按下時,,將列線PT0~PT3置為輸出,,將其中一條線置低電平其余3條線輸出高電平,然后檢測行線的狀態(tài)。只要有一行的電平為低,,則表示鍵盤中有鍵被按下,,而且閉合的鍵為被拉低的低電平行線與4根列線中低電平線相交叉的對應(yīng)按鍵。若判斷所有行線均為高電平,,則鍵盤中無鍵按下(具體可用查表的方法),。
但是此種方法單片機(jī)需要通過不停的掃描查詢,方可準(zhǔn)確的檢測到按鍵值,。考慮到PP口有中斷功能所以可將這4個口設(shè)置成中斷的模式來獲得按鍵值,,本設(shè)計中是將拉高的4位通過一個與門接到單片機(jī)的帶中斷的引腳上,,這樣當(dāng)任意鍵按下時就會產(chǎn)生低電平發(fā)生中斷,這時單片機(jī)再進(jìn)行按鍵判斷,,從而無需一直查詢,,減少了MCU的負(fù)荷量。
數(shù)碼管顯示電路采用共陰極使用兩個鎖存器74HC573分別接到PORTA口和PORTB口來實(shí)現(xiàn),。也可應(yīng)用液晶顯示接口:1602和12864接口顯示,。
2 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件采用C語言編寫,由于存在鍵盤陣列,、數(shù)碼管顯示和液晶顯示,,它可以完成較多的常規(guī)實(shí)驗(yàn)項(xiàng)目。如LED流水燈實(shí)驗(yàn),、基于PWM控制的蜂鳴器實(shí)驗(yàn),、數(shù)碼管驅(qū)動、鍵盤驅(qū)動,、1602液晶驅(qū)動,、ATD轉(zhuǎn)換等多個實(shí)驗(yàn);還可以進(jìn)行目前工業(yè)控制所常用的通信試驗(yàn),,如串口,,IIC,CAN,,LIN,,485總線實(shí)驗(yàn),基本具備單片機(jī)開發(fā)工業(yè)控制系統(tǒng)的能力,。下面以電子鐘為例來介紹其軟件設(shè)計思想,。
在電子鐘設(shè)計中對于時間的產(chǎn)生,選擇PIT0,,即對周期中斷定時器0做初始化,,使其每隔1 ms產(chǎn)生1次中斷,定義4個變量分別為:毫秒,,秒,,分,,時,然后在中斷服務(wù)程序中根據(jù)這4個變量在實(shí)際中的關(guān)系更新這4個變量,。在主程序中判斷鍵盤按鍵值和進(jìn)行時間顯示,,這里定義3個鍵值:1,2,,3,。軟件程序流程圖如圖8所示。
3 結(jié)語
本套單片機(jī)開發(fā)板為即將參加“飛思卡爾”競賽的學(xué)生提供了一個靈活高效的學(xué)習(xí)平臺,,同時可為大學(xué)本科學(xué)生學(xué)習(xí)嵌入式開發(fā)系統(tǒng)以及為汽車電子行業(yè)工程師提供良好的開發(fā)平臺,,具有較高的實(shí)用性和推廣價值。