甘文凱,羅航,彭丁虎,李祥,蔡亦舒
(江漢大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北武漢 430063)
基于Xscale的嵌入式計(jì)算器的研究與設(shè)計(jì)
甘文凱,羅航,彭丁虎,李祥,蔡亦舒
(江漢大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北武漢 430063)
本文設(shè)計(jì)最終目標(biāo)是在PXA270RP嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)的鍵盤(pán)上可以進(jìn)行加減乘除的簡(jiǎn)單計(jì)算,在LED終端上可以顯示運(yùn)算過(guò)程,在數(shù)碼管上可以顯示按下數(shù)字鍵對(duì)應(yīng)的值,在LED點(diǎn)陣上對(duì)非數(shù)字鍵進(jìn)行相應(yīng)的顯示。實(shí)現(xiàn)的方式是在VM虛擬機(jī)和Fedora系統(tǒng)為軟件的基礎(chǔ)上對(duì)相關(guān)研究硬件編寫(xiě)驅(qū)動(dòng)程序及測(cè)試程序,以完成計(jì)算機(jī)器的功能運(yùn)算。
嵌入式系統(tǒng);字符設(shè)備驅(qū)動(dòng)程序;計(jì)算器;Linux系統(tǒng)
從20世紀(jì)60年代嵌入式系統(tǒng)的出現(xiàn)和興起,經(jīng)過(guò)幾十年的應(yīng)用和發(fā)展,嵌入式系統(tǒng)的應(yīng)用領(lǐng)域一步步擴(kuò)大,涉足人們?nèi)粘I畹母鱾€(gè)角落,而且,人們對(duì)嵌入式應(yīng)用的要求越來(lái)越高,對(duì)于嵌入式系統(tǒng)的開(kāi)發(fā)復(fù)雜度要求也越來(lái)越復(fù)雜。因此,進(jìn)行嵌入式的研究和開(kāi)發(fā)是很有必要的。作為英特爾公司出產(chǎn)的一款高端處理器,PXA270屬于PXA27x系列,擁有Xscale架構(gòu)它能廣泛應(yīng)用于掌上電腦、智能手機(jī)、網(wǎng)絡(luò)存儲(chǔ)設(shè)備、骨干網(wǎng)路由器中。
本文實(shí)驗(yàn)環(huán)境采用的是VM9下的Fedora7系統(tǒng),開(kāi)發(fā)語(yǔ)言為C語(yǔ)言。對(duì)PXA270RP的硬件設(shè)備的操作主要是:數(shù)碼管、LED點(diǎn)陣、蜂鳴器、數(shù)字鍵盤(pán)和LCD終端。計(jì)算器工作原理如下:
第1步:從數(shù)字鍵盤(pán)輸入相應(yīng)的操作。對(duì)任何按鍵,蜂鳴器都會(huì)響應(yīng)。
第2步:對(duì)按鍵進(jìn)行判斷。當(dāng)數(shù)字鍵被按下時(shí),數(shù)碼管及LCD都會(huì)顯示其值;當(dāng)按下運(yùn)算符鍵時(shí),LED點(diǎn)陣會(huì)有相應(yīng)的動(dòng)畫(huà)顯示。當(dāng)Enter鍵被按下時(shí),調(diào)用相應(yīng)運(yùn)算算法來(lái)進(jìn)行運(yùn)算并在LCD終端上顯示結(jié)果。
第3步:初始化并等待下一次運(yùn)算的進(jìn)行。
PXA270的中斷控制器來(lái)控制中斷的產(chǎn)生和動(dòng)作這個(gè)層次。處理器設(shè)備是初級(jí)的中斷源,而外部產(chǎn)生中斷信號(hào)的設(shè)備被叫做次級(jí)中斷源。通常,一定數(shù)量的次級(jí)中斷源一般被映射成一個(gè)初級(jí)中斷源。例如,擁有32個(gè)次級(jí)中斷源DMA控制器是一個(gè)初級(jí)中斷源。每一個(gè)中斷源可以產(chǎn)生一個(gè)IRQ或FIQ。決定產(chǎn)生一個(gè)IRQ或一個(gè)FIQ的設(shè)置被稱(chēng)為中斷的級(jí)別??梢酝ㄟ^(guò)編輯中斷控制器,來(lái)單獨(dú)的屏蔽不同的中斷源(被屏蔽的中斷源將不會(huì)長(zhǎng)生中斷信號(hào))。軟件可以讀中斷控制器中的寄存器,它可以標(biāo)志了所產(chǎn)生的IRQ或者FIQ。
PXA270RP機(jī)箱鍵盤(pán)采用的是4x6矩陣鍵盤(pán),通過(guò)對(duì)鍵盤(pán)的6行4列進(jìn)行掃描來(lái)判斷是那個(gè)鍵被按下。首先是對(duì)第0列進(jìn)行掃描,然后對(duì)0~5行進(jìn)行掃描,若沒(méi)有捕捉到鍵盤(pán)按下,則繼續(xù)對(duì)剩下的列進(jìn)行掃描,一次循環(huán)掃描,若掃描到符合條件的信號(hào)就退出掃描。鍵盤(pán)中斷信號(hào)從I/O/GCK2引腳發(fā)出,COLD1檢測(cè)到有中斷產(chǎn)生,若有中斷產(chǎn)生,將MST_IRQSELTCLR_L的第五位置1,CPLD將引腳GPIO0由0置1,同時(shí)根據(jù)寄存器的哪一位配置GPIO引腳GP0向CPU發(fā)送中斷信號(hào)并執(zhí)行相應(yīng)的中斷程序。
八段數(shù)碼管分為共陰極和共陽(yáng)極,發(fā)光二極管是由P形半導(dǎo)體和n形半導(dǎo)體以及他們之間的過(guò)渡層組成的,兩側(cè)加正向電壓時(shí),在過(guò)渡層注入少量載流子流向多數(shù)載流子,會(huì)將多余的能量裝換成光能量,但是兩側(cè)加反向電壓時(shí)少量載流子很難注入到多數(shù)載流子中,故不能發(fā)光。采用共陽(yáng)極時(shí),將陽(yáng)極接高電壓,陰極接高電壓則對(duì)應(yīng)的二極管不亮,接低電壓則發(fā)光;若采用共陰極則陰極全部接地,陽(yáng)極與驅(qū)動(dòng)電路的輸出端,輸出高電壓則燈亮,反之則不亮??刂茢?shù)碼管工作的移位寄存器74HC164的功能是串行輸入、并行輸出,它有一個(gè)數(shù)據(jù)輸入端口、8個(gè)輸出端口以及一個(gè)時(shí)鐘信號(hào)端口。串行的數(shù)據(jù)從2個(gè)輸入端Dsa、Dsb中的其中一個(gè)輸入,二者必須連接在一起或者其中一個(gè)接高電平。cp是時(shí)鐘信號(hào)輸入口,當(dāng)信號(hào)從低電平跳到高電平時(shí),數(shù)據(jù)向右移動(dòng),將Dsa、Dsb相“與”的結(jié)果送入Q0口,當(dāng)再次電平有低跳到高的時(shí)候,Q0的數(shù)據(jù)移位到Q1,然后下一個(gè)數(shù)據(jù)繼續(xù)從Q0口輸出,就這樣依次循環(huán)。
測(cè)試程序是建立在驅(qū)動(dòng)程序已經(jīng)寫(xiě)好的基礎(chǔ)上對(duì)驅(qū)動(dòng)程序的應(yīng)用,將驅(qū)動(dòng)程序控制的設(shè)備進(jìn)行控制,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的計(jì)算器的功能。
本文在PXA270RP嵌入式系統(tǒng)開(kāi)發(fā)實(shí)驗(yàn)平臺(tái)下對(duì)數(shù)碼管、LED點(diǎn)陣、蜂鳴器、數(shù)字鍵盤(pán)和LCD終端進(jìn)行了驅(qū)動(dòng)程序和測(cè)試程序的研究與設(shè)計(jì),實(shí)現(xiàn)了對(duì)數(shù)字進(jìn)行運(yùn)算,并將結(jié)果輸出到LCD終端上,在按鍵的時(shí)候都能都運(yùn)行蜂鳴器發(fā)出響聲,按下運(yùn)算符鍵以及enter鍵能在LED點(diǎn)陣上顯示動(dòng)畫(huà)的類(lèi)似運(yùn)算符字樣的動(dòng)畫(huà)效果,在按下數(shù)字鍵時(shí)能在數(shù)碼管上顯示相應(yīng)的數(shù)字。這對(duì)加深基于XSCALE的嵌入系統(tǒng)開(kāi)發(fā)的學(xué)習(xí)有很大的促進(jìn)作用。
參閱文獻(xiàn)
[1]李朱峰.嵌入式系統(tǒng)開(kāi)發(fā)與實(shí)踐.北京:北京航空航天大學(xué)出版社.2010.
[2]陳賾.ARM9嵌入式技術(shù)及Linux高級(jí)實(shí)踐教程.北京:北京航空航天大學(xué)出版社.2005.
[3]韋東山.嵌入式Linux應(yīng)用開(kāi)發(fā).北京:人民郵電出版社. 2012.
[4]趙悅.嵌入式系統(tǒng)概論.中央民族大學(xué)出版社.2011.
[5]石秀民.嵌入式系統(tǒng)原理與應(yīng)用——基于XScal與Linux.北京:北京航空航天大學(xué)出版社.2007.
Research and Design of Embedded Calculator Based on Xscale
GAN Wen-kai,LUO Hang,PENG Ding-hu,LI Xiang,CAI Yi-shu
(School of Computer Science and Technology,Jianghan University,Wuhan Hubei 430063,China)
In this paper,the ultimate design goal is to implement simple calculations for addition,subtraction,multiplication and division via the keyboard of the PXA270RP embedded system development platform.The operation process can be displayed on LED terminal,the corresponding value when a number key is pressed displayed on digital tube,and the non-number keys displayed on the LED dot matrix.These are realized by writing drivers and test programs for related hardware based on virtual machine(VM)and Fedora software system to complete the functional operation of the calculator.
embedded system;character device driver;calculator;Linux system
TP334
A
1008-1739(2015)10-54-3
定稿日期:2015-04-26