ARM嵌入式處理器的片上解決方案
8位的51單片機(jī)長(zhǎng)期占據(jù)著微控制器(MCU)的主流市場(chǎng),但隨著技術(shù)與需求的發(fā)展,32位微控制器應(yīng)用增長(zhǎng)率也在不斷攀升。目前,基于arm內(nèi)核的32位微處理器在市場(chǎng)上處于領(lǐng)導(dǎo)地位。
基于arm處理器的片上系統(tǒng)解決方案可應(yīng)用于企業(yè)應(yīng)用、汽車系統(tǒng),家庭網(wǎng)絡(luò)和無線技術(shù)等市場(chǎng)領(lǐng)域。ARM CortexTM系列提供了一個(gè)標(biāo)準(zhǔn)的體系結(jié)構(gòu)來滿足以上各種技術(shù)的不同性能要求,基于ARM架構(gòu)有3個(gè)分工明確的系列:A系列面向復(fù)雜的尖端應(yīng)用程序,用于運(yùn)行開放式的復(fù)雜操作系統(tǒng);R系列針對(duì)實(shí)時(shí)系統(tǒng);M系列專為低成本控制和微控制器應(yīng)用開發(fā)。Cortex-M3是基于ARM架構(gòu)的處理器,是專門為了在微控制器等對(duì)功耗和成本敏感的應(yīng)用領(lǐng)域?qū)崿F(xiàn)高系統(tǒng)性能而設(shè)計(jì)的,它簡(jiǎn)化了可編程的復(fù)雜性,使arm架構(gòu)成為各種應(yīng)用方案的良好選擇。
Luminary Micro公司(已被TI公司收購(gòu))StelIaris提供一系列的微控制器是首款基于armCortex-M3的控制器,它們?yōu)閷?duì)成本尤其敏感的微控制器應(yīng)用方案帶來了高性能的32位運(yùn)算能力。這些具備領(lǐng)先技術(shù)的芯片使用戶能夠以傳統(tǒng)的8位和16位器件的價(jià)位來享受32位的性能。其中,LM3S811微控制器正是針對(duì)工業(yè)應(yīng)用方案而設(shè)計(jì)的,包括測(cè)試和測(cè)量設(shè)備、工廠自動(dòng)化、建筑控制、運(yùn)動(dòng)控制、醫(yī)療器械、火警安防以及電力能源等。
TH12864等圖形點(diǎn)陣液晶顯示器以其工作電壓低、功耗低、壽命長(zhǎng)、不產(chǎn)生電磁輻射污染、可以顯示復(fù)雜的文字及圖形等優(yōu)點(diǎn),已被廣泛應(yīng)用在各種儀器儀表、電子設(shè)備和家用電器等領(lǐng)域。
本文嘗試將基于arm的LM3S811微控制器與TH12864顯示模塊相結(jié)合的技術(shù)應(yīng)用。
1 系統(tǒng)硬件設(shè)計(jì)
1.1 LM3S811主控芯片
本次系統(tǒng)硬件設(shè)計(jì)的主控芯片選擇TI公司LM3S811芯片,其電源電壓為3.3 V,最高時(shí)鐘頻率50 MHz,64 kHz的單周期FLASH;3個(gè)32位通用定時(shí)器,可分成6個(gè)16位定時(shí)器使用;一組同步串行接口(SSI),2個(gè)異步串行接口(UART);4通道模數(shù)轉(zhuǎn)換器(ADC),1組模擬比較器和I2C接口;3個(gè)脈寬調(diào)制信號(hào)(PWM)模塊,32個(gè)通用輸入輸出管腳(GPIO)及硬件看門狗等。LM3S811系統(tǒng)方框圖如圖1所示。
1.2 TH12864顯示模塊
本次系統(tǒng)設(shè)計(jì)的顯示模塊選擇帶中文字庫(kù)的TH12864,其電源電壓為3.3 V。TH12864液晶顯示模塊是128×64點(diǎn)陣的漢字圖形型液晶顯示模塊,可顯示漢字及圖形,內(nèi)置國(guó)標(biāo)GB2312碼簡(jiǎn)體中文字庫(kù)(16×16點(diǎn)陣)、128個(gè)字符(8×16點(diǎn)陣)及64×256點(diǎn)陣顯示RAM(GDRAM)??商峁?位并行及串行2種連接方式,具有多種功能:光標(biāo)顯示、畫面移位、睡眠模式等。其中TH12864的管腳功能如下:
1:VSS,地(GND);2:VDD,電源;3:V0,背光調(diào)節(jié);4:CS,片選信號(hào);5:STD,串行數(shù)據(jù);6:SCLK,串行時(shí)鐘;14:DB0-DB7,并行數(shù)據(jù);15:PSB,串并口選擇,串行模式為低電平有效;17:/RST,復(fù)位;19:LEDA,背光正極;20:LEDK,背光負(fù)極。
1.3 LM3S811主控芯片與TH12864顯示模塊的連接
為節(jié)約系統(tǒng)硬件資源以便其他用途,故選擇TH12864顯示模塊為串行模式。則主控芯片LM3S811只需要占用3個(gè)GPIO管腳即可,保留PWM等用于小車驅(qū)動(dòng)等,選擇與比較器和I2C復(fù)用的PB2,PB4和PB6,如圖2所示。
2 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)分為底層驅(qū)動(dòng)程序、中層實(shí)現(xiàn)程序和上層應(yīng)用程序。軟件以IAR集成開發(fā)環(huán)境為開發(fā)平臺(tái),用C語言編寫,便于維護(hù)和移植。下面是部分源程序。
2.1 底層驅(qū)動(dòng)部分
底層驅(qū)動(dòng)程序完成的功能是實(shí)現(xiàn)TH12864的硬件時(shí)序。
程序如下:
驅(qū)動(dòng)程序先預(yù)處理3個(gè)字節(jié)要發(fā)送數(shù)據(jù)的具體內(nèi)容,片選后,依次循環(huán),按時(shí)鐘信號(hào)發(fā)送每個(gè)字節(jié)的每一位,其中延時(shí)不能省略。
2.2 中層實(shí)現(xiàn)程序
中層實(shí)現(xiàn)程序完成主要功能是,按照TH12864的用戶指令集,用底層驅(qū)動(dòng)程序發(fā)送指令,完成初始化、顯示、清除、設(shè)定等功能。例如初始化程序:
從前兩句可以看出LM3S811在設(shè)置GPIO時(shí),比普通51單片機(jī)設(shè)置要簡(jiǎn)單許多,無需記憶眾多的寄存器,由于廠家提供了Stellaris外設(shè)驅(qū)動(dòng)庫(kù)函數(shù),只要調(diào)用相應(yīng)API接口函數(shù)即可,簡(jiǎn)化了編程的復(fù)雜性,對(duì)于新學(xué)者也可以迅速上手編程工作。
2.3 上層應(yīng)用程序
在底層驅(qū)動(dòng)程序和中層實(shí)現(xiàn)程序的基礎(chǔ)上,程序移植方便??梢愿鶕?jù)系統(tǒng)需求完成字符、漢字和圖片等實(shí)際顯示內(nèi)容。
此次系統(tǒng)實(shí)現(xiàn)了開機(jī)圖片顯示,歡迎詞和小車狀態(tài)的循環(huán)動(dòng)態(tài)顯示,速度顯示及電子秒表等功能。
3 結(jié)語
通過本次系統(tǒng)集成的設(shè)計(jì)、制作、調(diào)試和驗(yàn)證,完成并實(shí)現(xiàn)了基于arm單片機(jī)的小車顯示系統(tǒng)功能。實(shí)現(xiàn)了LM3S811對(duì)于TH12864顯示模塊的控制,其底層驅(qū)動(dòng)程序可以供大家參考。在實(shí)現(xiàn)過程中發(fā)現(xiàn),在硬件方面,LM3S811的主頻較高,運(yùn)算能力較強(qiáng),外設(shè)資源豐富。在軟件方面,由于廠家提供了Stellaris外設(shè)驅(qū)動(dòng)庫(kù)函數(shù),降低了編程的難度,可以快速上手工作。此外,本系統(tǒng)也可以推廣應(yīng)用到其他小型儀表或設(shè)備顯示系統(tǒng)。