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