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