1 嵌入式系统的概念与特点
嵌入式系统结合微处理器或微控制器的系统电路与其专属软件,达到系统操作效率的最高比,这里把嵌入式系统定义为一个体积较小的计算机系统(与PC机相比),由于其体积较小,因此软硬件结构和应用范围与PC机相比有较大的不同,其特性可归纳为下列四项:
(1)通常执行特定功能;
(2)以微电脑与外围构成核心;
(3)严格的时序与稳定性要求;
(4)全自动操作循环。
嵌入式系统具有目的性或针对性,其开发是围绕着产品和产品的特定功能来进行的。它必须最大限度的在硬件和软件上"量身订作"以提高效率 ,本文设计的嵌入式系统主要用于金融和税务类产品。
2 总体设计
2.1 CPU的选择
本文采用的是Cirrus Logic公司的嵌入式处理器EP9312 。
EP9312是一款ARM9系列的处理器,ARM9系列是高性能和低功耗特性方面最佳的硬宏单元,它具有五级流水线,并提供1.1MI/s/MHz的哈佛结构,而其前代产品ARM7系列处理器则具有嵌入式ICE-RT逻辑,功耗非常低,并提供0.9MI/s/MHz的三级流水线和冯.诺依曼结构。因为本主要用于开发先进的计算机终端,机顶盒、高端打印机等产品,所以需要较快的运算速度,而ARM7主要用于对价位和功耗敏感的消费类产品,并且其运算速度相对较慢,所以本设计系统选择ARM9系列[2],在ARM9系列CPU中还有EP9307和EP9315。EP9307与EP9312的功能构造基本相同,只少了1个IDE接口,但多了图形加速的功能,由于金融税务类产品大多需要较多的GPIO,而与EP9307相比,EP9312可以很容易地设计出较多的GPIO。EP9315在EP9312拥有的功能上再增加了PCMCIA接口和图形加速功能,但这并不是金融税务类产品所必需的功能,综合考虑之后,本系统选择了EP9312。
2.2 技术指标
经过系统调研并基于产品成本考虑,嵌入式系统的技术指标如下所述:
Cirrus Logic公司的EP9312作为主处理器;
32MB Flash使用NOR Flash;
64MB SDRAM;
显示格式:西文:24×12点阵,中文:24×24点阵,26行,80列,或者西文:16×8点阵,中文:16×16点阵,26行,80列;
800×600×16bpp、1024×768×16bpp多种TFT显示模式,支持单扫描或双扫描;
1个并口;
5个串口;
2个PS/2端口;
1个1/10/100Mb/s为的以太网接口,支持TCP/IP协议;
1个USB Host和1个USB Slave接口。
2.3 系统组成
EP9312已经集成了嵌入式系统所需的许多功能,为了使本设计满足金融税务类产品的要求,还增加了如下硬件:Super I/O器件(包含2个UART、1个并口、2个PS/2产品控制器),网络PHY接口器件、接口电平转换器、Flash、SDRAM等,PCB板采用4层板,表层为信号层,其中的电源线路层和地线层深埋在主板的内层,不易受到电源杂波的干扰,尤其是高频电路,可以获得较好的抗干扰能力,系统的基本结构如图1所示 。
3 模块功能描述
3.1 CPU
EP9312的内核是ARM920T,其主频为200MHz,100MHz内部总线,有16KB的指令Cache和16KB的数据Cache,内部集成了很多功能模块,其中主要包括:LCD控制器,3个USB Host控制器,3个串口控制器,Ethernet MAC、EIDE、AC97接口等,EP9312内含MMU,支持TCP/IP协议,也为开发各种字符图形功能提供了快捷的方法[3]。本设计充分利用了这些内部集成功能,减少了外围器件。
3.2 RESET模块
系统的RESET模块为系统提供启动及复位信号,是系统运行的开端。
本系统采用MAX708CSA作为复位器件,设计成用户重启的按钮控制。发出RESET信号送给CPU的RSTOn引脚、Flash模块、JATG模块等。另采用一片MAX708CSA作为系统上电的按钮控制,发出POR信号发给CPU的PRSTn引脚,如图2所示。
3.3 系统时钟模块
系统时钟模块的作用是产生20个独立的时钟频率来满足EP9312不同独立逻辑部分的要求,所以这些时钟频率都来源于外部的一个低频晶体振荡器。这样处理器速率、总线速率、视频速率就可以不同而且互不影响。
EP9312提供两个接口外接晶体振荡器,其频率分别为32KHz(实时时钟)和14.7456MHz。
为了获得足够高的时钟频率,EP9312同时提供两个PLL,将32KHz和14.7456MHz频率提升到足够高(14.756MHz,最大频率可为400MHz)。
3.4 调试端口(JATG)模块
EP9312提供了JTAG调试接口,它有6条测试扫描链,这个接口通过5个外部控制信号实现调试功能;
TDO-测试数据输出,TDI-测试数据输入,TMS-测试模式选择,TCK-测试时钟,nTRST-测试复位。
由于EP9312集成了这些JTAG信号,因此引出这些信号线在板上扩展出JTAG口,即可与JTAG测试器进行通信。
3.5 存储器
EP9312内含SDRAM控制器,它提供了一个高速存储接口给多种存储装置,包括SDRAM,Synchronous Flash和Synchronous ROM等。
CPU中已有SDRAM控制器,因此系统不需要外加SDRAM控制器,只要采用合适的SDRAM存储器,与EP9312的专用SDRAM信号线相连接即可。
本系统采用2片IS4216400B的16位数据总线SDRAM器件组合构成了一个32位数据总线的16MB存储系统。今后如有需要,只需要16MB器件代替8MB的器件,即可方便地扩容至32MB SDRAM的系统。
本系统所用的Flash器件是Intel公司的TE28F320J3D-75,该器件采用56引脚TSOP封装,32MB的存储空间由32个128KB的擦除块组成,该Flash采用25根地址线和16位数据线,可以通过BYTE信号来选择是8位还是16位方式访问。本系统采用16位方式访问,因此该信号线接高电平,同时AO地址线接地,OE/WE是读写信号,由EP9312的读写控制线直接控制,系统中将Flash的片选信号CE2、CE1信号接地,CEO由EP9312的两根片选信号CS0和CS6通过跳线来控制,如图3所示。
本系统的Flash需要设计成2MB、4MB、8MB均支持的电路,只需要焊接不同容量的器件即可,这样做可以满足不同用户的需求,如:使用CF卡的用户只要2MB Flash即可,此时,需要对Flash和SDRAM的型号进行细致的选择,并对地址总线和数据总线进行相应的设计。
3.6 PS/2、串口和并口
通过Super-I/O进行扩展,如图1所示,Super-I/O选择Winbond公司的W83977ATF。该器件提供两个串口、一个并口、PS/2键盘鼠标接口和23个GPIO,通过EP9312的WAITn延时等待信号来匹配ISA总线与存储总线的速度问题 。连同CPU提供的3个串口控制器,系统总共具有5个串口。
3.7 网络
EP9312内部含有一个Ethernet的MAC,只需要一个PHY并通过VT6103L即可实现。
3.8 显示电路
要根据不同的显示屏来决定显示电路设计,本系统设计成共支持五种屏幕,包括TFT、CSTN、DSTN、LVDS、VGA。EP9312输出的是数字信号,分别为1位数据、场频、行频、时钟、亮度控制几类信号。对于TFT、CSTN、可以直接与EP9312的内置接口相连,但要注意CSTN在初始化彩色查找表时,将R.B色码互换,接TFT屏要加电平转换器,对于DSTN来说,本系统选用的屏幕为夏普公司的LM121VB1T02,该屏为单色屏,上下每时钟周期4个象素,每个信号对应一个象素点,查阅EP9312的输出象素转换表后发现,双扫描每时钟周期4个象素的模式并不适用于该屏,所以本系统在设计中选用了双扫描每时钟周期8个象素的模式,并从中挑选出适合的信号来驱动该屏,同时也要加电平转换器,在目前的市场上,TFT接口的屏并不是主流,相对来说LVDS接口的屏使用更广,对LVDS接口的设计,本系统采用DS90C383MTD转换器来构建,对于彩色CRT要加三个D/A转换器和电平转换器,单色CRT只要一个D/A转换器和电平转换器,接VGA屏要加专用器件,如ADV7123 ,显示电路模块图如图4所示。
3.9 电源
EP9312需要4个不同的电源:RVDD(3.3V)、CVDD(1.8V)、VDD_PLL(1.8V)和VDD_ADC(3.3V)。板上其他元件除了3.3V供电的以外,还有5V供电的,整个系统的输入电压为12V,通过变压器件变成5V,再通过LT176ET-3.3转换器件把+5V转变为3.3V的系统电压,通过LT176ET-1.8转换器件把+3.3V转变为1.8V的EP9312内核电压。
3.10 GPIO分配
EP9312有16个具有中断能力的增强型通用I/O,由于金融税务类嵌入式系统的产品通常不需要IDE接口,因此IDE接口的I/O设计成GPIO,连同其他一些设计,总共增加了49个可选通用I/O。
3.11 Bootloader
Bootloader是系统加电启动运行的第一段软件代码,整个系统的加载启动任务就完全由Bootloader来完成。简单的说,Bootloader就是在操作内核或用户应用程序运行之前运行的一段小程序,通过这段小程序,可以初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境[5],EP9312提供了20种Bootloader的方式,分别经过EECLK、EEDAT、LBOOTI、LBOOTO、ASDO、CSn[7:6]的跳线组合来选择。
本系统在调试和生产时,采用16-bit Serial boot的启动方式,对应的EECLK、EEDAT、LBOOTI、LBOOTO、ASDO、CSn[7:6]选择方式分为为:1、1、0、X、0、1。此时,CPU通过片内已经固化的4KB程序进行启动,初始化CPU和串口,并通过串口把用户程序下载到Flash中,当系统正常工作时,则直接通过Flash启动,直接在Flash中读取程序代码运行 。
本设计利用前者把操作系统和应用程序写入Flash中,用后者进行嵌入式系统的正常工作开启。
4 结束语
本文介绍了一种基于EP9312的银税类嵌入式系统的硬件设计方案,经过测试,系统各部分都能正常工作,实现了预定的功能。
与以前的嵌入式系统平台相比,本系统集成度高、主板面积小、外围接口多、成本低、运行速度快、是一款性价比很高的产品,能为嵌入式产品的开发提供一个良好的平台,主要面向计算机终端、存折打印机、补登机、POS机等嵌入式产品。