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