PXA255是Intel繼PXA250后的第二代XScale處理器,,也是一款高檔的Intel個(gè)人互聯(lián)網(wǎng)架構(gòu)(PCA)網(wǎng)絡(luò)處理器,它提供更高的性能和更低的耗電量,。Linux操作系統(tǒng)高效穩(wěn)定,,實(shí)現(xiàn)了真正的多任務(wù)、多用戶環(huán)境,,有著強(qiáng)大的網(wǎng)絡(luò)功能,,更由于其開放源碼、定制方便而在嵌入式系統(tǒng)領(lǐng)域獲得了飛速的發(fā)展,。
本平臺(tái)針對(duì)諸如銀行,、稅控、商業(yè)POS等行業(yè)的應(yīng)用,,為業(yè)界提供非常豐富的功能和一整套嵌入式交叉開發(fā)工具鏈,二次開發(fā)用戶可以根據(jù)實(shí)際需要選擇使用其中某一部分或全部的組件來進(jìn)行有關(guān)嵌入式系統(tǒng)產(chǎn)品的應(yīng)用開發(fā),。平臺(tái)提供了4M/16M/32M/64M/128M可選的SDRAM和4M/16M/32M/64M/128M可選的Flash存儲(chǔ)器,給予應(yīng)用程序開發(fā)工程師較大的選擇空間
,。同時(shí)采用JFFS2文件系統(tǒng)用于管理非易失性存儲(chǔ)中的結(jié)構(gòu)化文件數(shù)據(jù),,為掉電等突發(fā)事件提供很好的數(shù)據(jù)保護(hù)機(jī)制。提供了用于創(chuàng)建連接各類設(shè)備的集成化驅(qū)動(dòng)程序和協(xié)議堆棧,,如10M以太網(wǎng)接口,、USB接口、JTAG接口,、多達(dá)6個(gè)的串口,、并口和可選的IrDA接口等,給予工程師極其豐富的選擇,。顯示采用單色/彩色TFT LCD,,提供了友好的人機(jī)界面。
平臺(tái)系統(tǒng)設(shè)計(jì) 本應(yīng)用平臺(tái)由硬件系統(tǒng)和軟件系統(tǒng)構(gòu)成,,其中軟件系統(tǒng)包括嵌入式操作系統(tǒng)(EOS),、圖形用戶接口(GUI)和應(yīng)用程序接口(API),。同時(shí)提供一套在PC機(jī)上構(gòu)建交叉開發(fā)環(huán)境的開發(fā)工吡?,栽熕交矉泉发环菊\驢⒌撓τ貿(mào)絳蚩梢栽諂教ㄉ銜薹煸誦校傭迪腫鈧詹返墓δ堋?硬件系統(tǒng) 硬件系統(tǒng)分為核心電路系統(tǒng)和各外圍設(shè)備,,前者是由微處理器PXA255和Flash/SRAM存儲(chǔ)器加上各種外圍接口模塊構(gòu)成的,;后者包括10.4′TFT LCD、標(biāo)準(zhǔn)101鍵盤和鼠標(biāo)等,,同時(shí)可以通過串/并口連接諸如打印機(jī)等各類設(shè)備,。
PXA255采用RISC結(jié)構(gòu),內(nèi)部集成了RAM,、LCD,、USB(client)和AC97等大量的功能模塊,具有很強(qiáng)的擴(kuò)展能力,提供200MHz外頻,,最高時(shí)鐘頻率提供200/300/400MHz等多種選擇,。采用1.3V的工作電壓,耗電量低,。PXA255支持JTAGT調(diào)試,,這樣不需要ICE而大大降低了開發(fā)成本。
SDRAM 選用Winbond的W981216(16MB),, Flash選用Intel的E28F128(16MB),,用戶可以根據(jù)不同應(yīng)用采用多片來進(jìn)行擴(kuò)大存儲(chǔ)容量。同時(shí)考慮到行業(yè)應(yīng)用對(duì)串口的需要,,利用W83977EF進(jìn)行了擴(kuò)展,,可使用的總串口可多達(dá)6個(gè),同時(shí)提供1個(gè)打印并口,,應(yīng)用程序可以分別通過設(shè)備名ttyS00~ttyS04,、ttyS1和lp0來進(jìn)行訪問控制。 軟件系統(tǒng) 軟件系統(tǒng)由嵌入式Linux操作系統(tǒng),、嵌入式圖形用戶界面和相應(yīng)的支持API庫構(gòu)成,。嵌入式Linux操作系統(tǒng)包括Linux 2.4.18內(nèi)核、JFFS2文件系統(tǒng),、busybox工具集等,,具有高度模塊化、易于定制,、可移植性好等優(yōu)點(diǎn),。
由于Linux 2.4.18內(nèi)核提供Framebuffer的支持,這樣就不需要對(duì)顯示芯片進(jìn)行直接的硬件編程,,而是由FrameBuffer系統(tǒng)通過打開/dev/fb0,,使用mmap()映射顯存到內(nèi)存中的線性緩沖區(qū)的方式來工作。這樣,,考慮在商業(yè)POS等領(lǐng)域還使用單色的顯示而不需要用到GUI,,平臺(tái)提供了兩套圖形應(yīng)用庫:一個(gè)是基于Framebuffer運(yùn)行于虛擬控制臺(tái)方式下的嵌入式圖形應(yīng)用庫,另一個(gè)是基于GTK+1.2運(yùn)行于多任務(wù)GUI下的嵌入式多任務(wù)圖形應(yīng)用庫,。前者支持屏幕和鍵盤驅(qū)動(dòng),,其中屏幕驅(qū)動(dòng)支持1 、2 ,、4 ,、8 、16 ,、32 位每像素(bpp),,能進(jìn)行相應(yīng)的西文和中文顯示,。具有強(qiáng)大的繪圖功能,包括畫線,、區(qū)域填充,、畫多邊形、剪貼和圖形模塊等,。提供大量的圖形應(yīng)用編程接口,,該庫只有100KB左右,特別適合用在嵌入式系統(tǒng)上開發(fā)控制臺(tái)圖形用戶界面的應(yīng)用程序,。后者支持彩色LCD,、鼠標(biāo)等,支持五筆和拼音中文輸入,,并且具有智能記憶功能,,即可以自動(dòng)記憶到用戶詞庫中。
運(yùn)行時(shí)系統(tǒng)提供Linux常用的命令,,并提供網(wǎng)絡(luò)和Shell等必備的工具,,支持FTP、Telnet以及遠(yuǎn)程登錄Win2000 Server,,能自動(dòng)實(shí)現(xiàn)IP地址沖突的檢測并進(jìn)行相應(yīng)的提示,。 交叉開發(fā)工具鏈 交叉開發(fā)工具鏈由一套用于編譯、匯編和鏈接內(nèi)核及應(yīng)用程序的組件組成,,它們自身運(yùn)行于一個(gè)平臺(tái)(如PC Linux)下,,而利用它們開發(fā)出來的應(yīng)用程序是運(yùn)行在另一個(gè)平臺(tái)(如嵌入式應(yīng)用平臺(tái))下。這些組件包括用于操作二進(jìn)制文件的實(shí)用程序集合Binutils,、Gcc編譯器和鏈接運(yùn)行庫Glibc等三部分,。
嵌入式系統(tǒng)本身沒有自舉開發(fā)功能,必須有一套開發(fā)工具并且要在PC機(jī)中建立起相應(yīng)的開發(fā)環(huán)境,。一般有三種選擇:一是PC機(jī)的操作系統(tǒng)只用Windows,,但是要安裝cgywin來提供Windows下的Linux開發(fā)環(huán)境,同時(shí)要安裝適合于cgywin的交叉開發(fā)工具鏈(本平臺(tái)不提供),;也可只用Linux,,但需要對(duì)Linux環(huán)境以及vi等文本編輯器非常熟悉;而最常用的方式是采用Linux服務(wù)器,、Windows工作站的開發(fā)方式,,這樣可只需要在一臺(tái)Linux服務(wù)器上建立交叉開發(fā)環(huán)境,,多臺(tái)Windows工作站通過telnet客戶端遠(yuǎn)程登錄協(xié)同開發(fā),。這樣,一方面節(jié)省了內(nèi)存和硬盤等資源,,還可以使用Windows的一些軟件來加快編輯開發(fā)速度,。
這種嵌入式Linux的開發(fā)模式一般叫做主從模式,。在PC機(jī)的交叉編譯環(huán)境下,編譯鏈接通過后的應(yīng)用程序可以通過串行口或以太網(wǎng)口從PC機(jī)下載到應(yīng)用平臺(tái)上,,通過GDB服務(wù)器進(jìn)行聯(lián)機(jī)調(diào)試及運(yùn)行,。很顯然,用戶在本平臺(tái)的基礎(chǔ)上只需要專注于自己應(yīng)用程序開發(fā)就可以實(shí)現(xiàn)項(xiàng)目系統(tǒng)的功能,。 結(jié) 語 本平臺(tái)目前已經(jīng)應(yīng)用于POS系統(tǒng),。利用開發(fā)工具開發(fā)出運(yùn)行于平臺(tái)上的相應(yīng)應(yīng)用程序,通過串口將平臺(tái)和商場POS服務(wù)器相連,,通過以太網(wǎng)接口和通訊服務(wù)器相連并最終連接到銀行主機(jī)系統(tǒng),,這樣構(gòu)成了一個(gè)完整的商業(yè)POS系統(tǒng)。平臺(tái)在該系統(tǒng)中就相當(dāng)于一個(gè)高檔的網(wǎng)絡(luò)終端,,或者說更類似一臺(tái)標(biāo)準(zhǔn)PC機(jī),,搭建系統(tǒng)只需要從應(yīng)用程序著手。