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