W90P710評估板的開發(fā)與應(yīng)用研究
W90P710/W90N745集成具高擴(kuò)展性的EBI(Exter-nal Bus Interface)接口,可通過EBI訪問ROM、Flash、SDRAM、PCMCTA Card等各種I/O部件。W90P7lO支持了高分辨率的TFT、STN LCD控制器。除了USB與EBI之外,W90P710/W90N745也留有UART接口,可以讓客戶設(shè)計(jì)各種應(yīng)用時(shí),連接更多設(shè)備,比如條形碼掃描儀、VFD模塊、調(diào)試口及Bluetooth模塊等。除了POS(Point-Of-Sale)應(yīng)用外,W90P710也適用于數(shù)據(jù)采集器、電子相框等需要用到LCD顯示的產(chǎn)品。
1 華邦W90P710硬件評估板
目前華邦專門針對710的一款開發(fā)板,集成了所有W90P710的功能模塊,并配有板級開發(fā)包,完善的設(shè)計(jì)技術(shù)和技術(shù)支持體系使華邦的710市場變得更為廣泛。
如圖1所示,W90P7lO評估板由以下部分組成。
MCU:標(biāo)準(zhǔn)操作頻率為80 MHz,W90P710在ARM7TDMl基礎(chǔ)上集成了豐富的片上資源,使成本費(fèi)用降至最低,同時(shí)減少了系統(tǒng)的擴(kuò)展,減小了產(chǎn)品的體積。
智能卡:通過EBI總線掛載性價(jià)比高、性能可靠的TDA8007芯片,可支持稅控卡和用戶卡。卡槽在評估板背部。
存儲模塊:本設(shè)計(jì)中存儲器通過EBI總線掛載在系統(tǒng)中,內(nèi)存可達(dá)16MB。程序存儲器采用8MB的NORFlash,分兩個(gè)區(qū),第一個(gè)分區(qū)存儲BOOT代碼、內(nèi)核映像和文件系統(tǒng),第二個(gè)分區(qū)用來存儲數(shù)據(jù)。為了滿足存儲大數(shù)據(jù)的需要,本設(shè)計(jì)還實(shí)現(xiàn)了可插拔式NAND存儲器,將數(shù)據(jù)存儲模塊與系統(tǒng)主板分離。
通信模塊:W90P710支持3個(gè)串口,用戶可接掃描槍、VFD模塊、調(diào)試口及Bluetooth模塊等。W90P710內(nèi)建了1個(gè)MAC,只需外加PHY即可組建成一個(gè)10/100Mbps的網(wǎng)口,同時(shí)內(nèi)建USB主和USB設(shè)備控制器,USB設(shè)備可以模擬串口使用。
顯示模塊:W90P710內(nèi)建高分辨率的TFT、STNLCD控制器,支持8位LCD模塊,19264點(diǎn),支持簡單的圖形界面.包括菜單和滾動條等。通過SPI接口支持VFD模塊顯示。
鍵盤:支持16鍵的矩陣鍵盤和PS2鍵盤。
SD卡:支持SD卡操作,卡槽在評估板背部。
Audio:耳機(jī)插槽,可以播放聲音。
Debug模塊:采用ICE進(jìn)行跟蹤調(diào)試和bootloader的第一次燒錄。
2 華邦W90P710的板級支持包
2.1 uClinux在W90P710評估板上的移植
uClinux主要是針對處理器沒有存儲管理單元的嵌入式系統(tǒng)而設(shè)計(jì)的。它保留了Linux的大多數(shù)優(yōu)點(diǎn):穩(wěn)定、良好的移植性,優(yōu)秀的網(wǎng)絡(luò)功能,對各種文件系統(tǒng)完備的支持和標(biāo)準(zhǔn)豐富的API,編譯后目標(biāo)文件可達(dá)幾百KB數(shù)量級,非常適合嵌入式系統(tǒng)的設(shè)計(jì)。鑒于uClinux的以上優(yōu)點(diǎn),同時(shí)由于Linux2.4是非常成熟的版本,本設(shè)計(jì)使用了uClinux-2.4.20版本的uClinux作為評估板的操作系統(tǒng)。
在W90P7lO板上移植uClinux的主要步驟:
①選擇藍(lán)本S3C4510B,然后編譯該內(nèi)核。期間可能會出現(xiàn)編譯不能通過的現(xiàn)象,需要選擇最小配置和進(jìn)行適當(dāng)?shù)恼{(diào)試來解決。
②S3C4510B內(nèi)核編譯通過后,直接下載到華邦7lO開發(fā)板上運(yùn)行。由于芯片不同,系統(tǒng)肯定會停止在某個(gè)地方,這時(shí)需要用ICE或者printk的方法跟蹤調(diào)試。但由于此時(shí)串口是不能使用的,所以printk方法無法使用,可以先針對華邦W90P710寫一個(gè)簡單的屏幕打印串口代碼,把這段代碼放在/kernel/printk.c的printk函數(shù)中。這樣就可以用printk跟蹤調(diào)試了。
③修改相應(yīng)的中斷函數(shù)。此步驟主要修改arch/armnornmu/kernel/irq.c中的init_IRQ及其頭文件,對W90P710的中斷控制器進(jìn)行初始化。
④修改相應(yīng)的tinier函數(shù)。在arch/armnommu/kernel/time.c中定義,同時(shí)調(diào)用arch/ammonmm/mach-w90p710/time.c文件,對應(yīng)的頭文件time.h也要作相應(yīng)修改。
⑤修改irq和timer之后,操作系統(tǒng)基本上可以運(yùn)行起來。由于串口驅(qū)動比較簡單且很實(shí)用,所以首先針對W90P710進(jìn)行串口驅(qū)動編程,這樣一個(gè)基本的uClinux內(nèi)核就可以運(yùn)行在華邦W90P710評估板上了。
2.2 華邦W90P710評估板各模塊驅(qū)動
根據(jù)圖1的評估板硬件組成,可以給出主要模塊的軟件驅(qū)動。
智能卡:通過EBI總線掛載性價(jià)比高、性能可靠的TDA8007芯片,驅(qū)動程序文件為1inux/driver/char/tda8007b_sc.c,驅(qū)動程序經(jīng)過完整的測試,性能可靠,在稅控機(jī)中廣泛應(yīng)用。
存儲模塊:NOR Flash驅(qū)動文件在linux/driver/mtd/chips下面,名稱為winbond.c,NAND Flash驅(qū)動文件在linux/driver/mtd/nand下面,名稱為w90p710_hand.c,用戶可以按照自己的需要修改驅(qū)動程序里面相應(yīng)的分區(qū)。目前華邦710BSP支持yaffs和jffs2兩種針對NANDFlash和NORFlash的文件系統(tǒng)。存儲模塊的驅(qū)動進(jìn)行了大量的模擬掉電等邊緣測試,性能良好。
通信模塊:W90P7lO支持3個(gè)串口,分別是linux/drlvers/char/w90p710_uart_1.c和w90p710_uart_2.c和w90p710_uart_3.c。W90P710內(nèi)建了一個(gè)MAC,驅(qū)動程序?yàn)閘inux/deriver/net/w90p710_mac.c,usb device驅(qū)動為linux/drivers/char/w90p710_usb.c。
顯示模塊:W90P710內(nèi)建高分辨率的TFT、STN LCD控制器,驅(qū)動程序?yàn)閘inux/drivers/media/vedio/w90p7l0_lcd.c,支持VFD模塊顯示,驅(qū)動程序?yàn)閘inux/driv-ers/media/vedio/w90p710_vfd.c。
鍵盤:支持16鍵的矩陣鍵盤,驅(qū)動程序?yàn)閘inux/drivers/char/w90p710_keypad.c和ps2鍵盤,驅(qū)動程序?yàn)閘inux/drivers/char/w90p710_ps2.c。
SD卡:支持SD卡操作,驅(qū)動程序?yàn)閘inux/drivers/scsi/w90p710_sdio.c。
Audio:驅(qū)動程序?yàn)閘inux/drivers/souod/w90p710_Aodio.c。
華邦板級開發(fā)包所包含的驅(qū)動程序都是經(jīng)過嚴(yán)格的測試,且由廣大客戶共同維護(hù)的,所以程序嚴(yán)謹(jǐn),性能優(yōu)越。可以從www.udinux.org網(wǎng)站下載uClinux-dist20051110.tar.gz,以獲得華邦W90N740、710系列的板級開發(fā)包。
2.3 交叉編譯器制作
2.3.1 構(gòu)建交叉編譯器組件
要構(gòu)建交叉編譯器.需要構(gòu)建GNU套件中的3大組件:
Binutils:包含基本的二進(jìn)制工具,如匯編器、鏈接器和Size、Strip等相關(guān)工具。二進(jìn)制工具主要是一些用于構(gòu)建應(yīng)用程序的核心組件和用來構(gòu)建、操作目標(biāo)機(jī)器執(zhí)行格式的工具。例如,Strip工具用來移除目標(biāo)文件或者應(yīng)用程序的符號表、調(diào)試信息以及其他“無用”的信息。
Gcc:編譯過程中的主要組件。Gee包括C預(yù)處理器和編譯器,用來將C代碼轉(zhuǎn)換為目標(biāo)CPU的匯編語言。
Gcc還在整個(gè)過程中擔(dān)當(dāng)著接口作用,調(diào)用相應(yīng)的預(yù)處理器、編譯器、匯編器和鏈接器。
uClibe:標(biāo)準(zhǔn)C庫。為了能夠應(yīng)用于嵌入式目標(biāo)而設(shè)計(jì),在交叉編譯器中,體積小,更加友好。
此外還需要有目標(biāo)操作系統(tǒng)的頭文件。這些是在構(gòu)建應(yīng)用程序時(shí),如果要訪問所有操作系統(tǒng)級的函數(shù)和系統(tǒng)調(diào)用所必需的。對于uClinux,獲得頭文件是相當(dāng)容易的,可以拷貝現(xiàn)存的頭文件。
目前,華邦板級開發(fā)包提供2種交叉編譯器,分別是根據(jù)組件Gcc版本號命名。一個(gè)是用來編譯內(nèi)核以及所有C語言程序的arm_tools3.O,另一個(gè)是專門用來編譯C++程序的arm_tools3,3.4,兩個(gè)版本的編譯器除了 Gcc版本不同外,uClibc版本也不相同。具體比較如表1所列。
2.3.2 構(gòu)建交叉編譯器步驟
現(xiàn)在的交叉編譯器已經(jīng)能夠提供安裝腳本文件,無須手動分別制作了。這在很大程度上給用戶提供了方便,但是使我們對編譯器的理解程度大大較低。
首先,應(yīng)從www.uclinux.org/pub/uClinux/uclinux-elf-too1s/下載相應(yīng)的源碼包和安裝腳本文件build_uclinux-tools.sh。然后按要求修改好適合自己的目錄和選項(xiàng),運(yùn)行sh build uclinux_tools.sh build即可。
值得注意的是,并不是所有的軟件包都能一次性編譯通過,它受到用來編譯它的編譯器版本的因素等制約,所以制作交叉編譯器需要有一定的調(diào)試能力。另外在交叉編譯器完全制作好后,用其編譯出來的程序能不能很好地運(yùn)行在開發(fā)板上也是一個(gè)問題,這需要用戶不斷地修正uClibc等組件的程序來適應(yīng)自己的開發(fā)板。
2.3.3 板級支持包提供的主要應(yīng)用程序組件
目前在華邦BSP里面有TestApp文件夾,里面包括了所有的驅(qū)動測試程序樣例和目前比較流行的開源Linux組件程序,例如mysql、boa、pppoe等。這些已經(jīng)移植到W90P710評估板上,而且嚴(yán)格測試過,用戶可以直接做應(yīng)用。
3 華邦W90P710的應(yīng)用
3.1 華邦W90P710在稅控收款機(jī)上的應(yīng)用
基于W90P710的稅控收款機(jī)的設(shè)計(jì)方案具有嵌入式操作系統(tǒng)、圖形化操作界面、網(wǎng)絡(luò)處理、MODEM通信和文件操作等,產(chǎn)品擴(kuò)展方便。使用大屏幕LCD顯示屏,實(shí)現(xiàn)了較好的人機(jī)界面。獨(dú)有的數(shù)據(jù)保護(hù)電路,實(shí)現(xiàn)高可靠性、高抗干擾性,確保稅務(wù)數(shù)據(jù)的生成、存儲、傳遞萬無一失。其硬件結(jié)構(gòu)圖如圖2所示。
3.2 華邦W90P710在遠(yuǎn)程監(jiān)控上的應(yīng)用
監(jiān)控系統(tǒng)一般可分為實(shí)時(shí)監(jiān)控和觸發(fā)模式監(jiān)控兩種,可以根據(jù)具體的情況設(shè)計(jì)合適的監(jiān)控方式。如果采用實(shí)時(shí)監(jiān)控,則將占用較多網(wǎng)絡(luò)資源,成本相對較高,而采用觸發(fā)模式的運(yùn)行成本較低。
觸發(fā)監(jiān)控終端被觸發(fā)后,開始拍攝圖片;同時(shí)其內(nèi)部的嵌入式控制模塊完成Internet的接入(包括撥號、PPP和TCP/IP協(xié)議的處理等),并把拍攝到的圖片數(shù)據(jù)經(jīng)打包后發(fā)送給控制中心主機(jī);控制中心主機(jī)登錄到Internet上后,運(yùn)行服務(wù)器端軟件就可以瀏覽由監(jiān)控點(diǎn)發(fā)來的圖片。其硬件結(jié)構(gòu)圖如圖3所示。
4 總 結(jié)
本文針對華邦最新推出的W90P7lO芯片,從硬件和軟件兩個(gè)方面對其評估板進(jìn)行了研究。這款芯片接口豐富,很好地滿足了當(dāng)前復(fù)雜多變的嵌入式應(yīng)用的要求,此外華邦還提供了板級支持包,有著豐富的底層驅(qū)動,包括網(wǎng)絡(luò)、USB、串口、鍵盤、SPI、I2C、并口、智能卡和各種NOR/NAND Flash驅(qū)動,可以很容易地開發(fā)出相應(yīng)的產(chǎn)品,節(jié)省了工程師的寶貴時(shí)間,為企業(yè)降低了成本。
評論