1 华邦W90P710硬件评估板
目前华邦专门针对710的一款开发板,集成了所有W90P710的功能模块,并配有板级开发包,完善的设计技术和技术支持体系使华邦的710市场变得更为广泛。
如图1所示,W90P7lO评估板由以下部分组成。
MCU:标准操作频率为80 MHz,W90P710在ARM7TDMl基础上集成了丰富的片上资源,使成本费用降至最低,同时减少了系统的扩展,减小了产品的体积。
智能卡:通过EBI总线挂载性价比高、性能可靠的TDA8007芯片,可支持税控卡和用户卡。卡槽在评估板背部。
存储模块:本设计中存储器通过EBI总线挂载在系统中,内存可达16MB。程序存储器采用8MB的NORFlash,分两个区,第一个分区存储BOOT代码、内核映像和文件系统,第二个分区用来存储数据。为了满足存储大数据的需要,本设计还实现了可插拔式NAND存储器,将数据存储模块与系统主板分离。
通信模块: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主要是针对处理器没有存储管理单元的嵌入式系统而设计的。它保留了Linux的大多数优点:稳定、良好的移植性,优秀的网络功能,对各种文件系统完备的支持和标准丰富的API,编译后目标文件可达几百KB数量级,非常适合嵌入式系统的设计。鉴于uClinux的以上优点,同时由于Linux2.4是非常成熟的版本,本设计使用了uClinux-2.4.20版本的uClinux作为评估板的操作系统。
在W90P7lO板上移植uClinux的主要步骤:
①选择蓝本S3C4510B,然后编译该内核。期间可能会出现编译不能通过的现象,需要选择最小配置和进行适当的调试来解决。
②S3C4510B内核编译通过后,直接下载到华邦7lO开发板上运行。由于芯片不同,系统肯定会停止在某个地方,这时需要用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之后,操作系统基本上可以运行起来。由于串口驱动比较简单且很实用,所以首先针对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,用户可以按照自己的需要修改驱动程序里面相应的分区。目前华邦710BSP支持yaffs和jffs2两种针对NANDFlash和NORFlash的文件系统。存储模块的驱动进行了大量的模拟掉电等边缘测试,性能良好。
通信模块: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。
华邦板级开发包所包含的驱动程序都是经过严格的测试,且由广大客户共同维护的,所以程序严谨,性能优越。可以从www.udinux.org网站下载uClinux-dist20051110.tar.gz,以获得华邦W90N740、710系列的板级开发包。
2.3 交叉编译器制作
2.3.1 构建交叉编译器组件
要构建交叉编译器.需要构建GNU套件中的3大组件:
Binutils:包含基本的二进制工具,如汇编器、链接器和Size、Strip等相关工具。二进制工具主要是一些用于构建应用程序的核心组件和用来构建、操作目标机器执行格式的工具。例如,Strip工具用来移除目标文件或者应用程序的符号表、调试信息以及其他“无用”的信息。
Gcc:编译过程中的主要组件。Gee包括C预处理器和编译器,用来将C代码转换为目标CPU的汇编语言。
Gcc还在整个过程中担当着接口作用,调用相应的预处理器、编译器、汇编器和链接器。
uClibe:标准C库。为了能够应用于嵌入式目标而设计,在交叉编译器中,体积小,更加友好。
此外还需要有目标操作系统的头文件。这些是在构建应用程序时,如果要访问所有操作系统级的函数和系统调用所必需的。对于uClinux,获得头文件是相当容易的,可以拷贝现存的头文件。
目前,华邦板级开发包提供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即可。
值得注意的是,并不是所有的软件包都能一次性编译通过,它受到用来编译它的编译器版本的因素等制约,所以制作交叉编译器需要有一定的调试能力。另外在交叉编译器完全制作好后,用其编译出来的程序能不能很好地运行在开发板上也是一个问题,这需要用户不断地修正uClibc等组件的程序来适应自己的开发板。
2.3.3 板级支持包提供的主要应用程序组件
目前在华邦BSP里面有TestApp文件夹,里面包括了所有的驱动测试程序样例和目前比较流行的开源Linux组件程序,例如mysql、boa、pppoe等。这些已经移植到W90P710评估板上,而且严格测试过,用户可以直接做应用。
3 华邦W90P710的应用
3.1 华邦W90P710在税控收款机上的应用
基于W90P710的税控收款机的设计方案具有嵌入式操作系统、图形化操作界面、网络处理、MODEM通信和文件操作等,产品扩展方便。使用大屏幕LCD显示屏,实现了较好的人机界面。独有的数据保护电路,实现高可靠性、高抗干扰性,确保税务数据的生成、存储、传递万无一失。其硬件结构图如图2所示。
3.2 华邦W90P710在远程监控上的应用
监控系统一般可分为实时监控和触发模式监控两种,可以根据具体的情况设计合适的监控方式。如果采用实时监控,则将占用较多网络资源,成本相对较高,而采用触发模式的运行成本较低。
触发监控终端被触发后,开始拍摄图片;同时其内部的嵌入式控制模块完成Internet的接入(包括拨号、PPP和TCP/IP协议的处理等),并把拍摄到的图片数据经打包后发送给控制中心主机;控制中心主机登录到Internet上后,运行服务器端软件就可以浏览由监控点发来的图片。其硬件结构图如图3所示。
4 总 结
本文针对华邦最新推出的W90P7lO芯片,从硬件和软件两个方面对其评估板进行了研究。这款芯片接口丰富,很好地满足了当前复杂多变的嵌入式应用的要求,此外华邦还提供了板级支持包,有着丰富的底层驱动,包括网络、USB、串口、键盘、SPI、I2C、并口、智能卡和各种NOR/NAND Flash驱动,可以很容易地开发出相应的产品,节省了工程师的宝贵时间,为企业降低了成本。