
国产龙芯GS32I在小系统的硬件应用.docx
9页Word版本下载可任意编辑】 国产龙芯GS32I在小系统的硬件应用 一、引言 目前,嵌入式系统已经渗透到各个领域:工业控制,军事国防,消费类电子产品,网络通信等,但大部分领域的应用都是基于国外各大厂商的嵌入式处理器嵌入式系统是"控制、监视或者辅助装置、机器和设备运行的装置"(devices used to control, monitor, or assist the operation of equipment, machinery or plants)从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为根底、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统在嵌入式领域使用国产芯片,走国产化道路已经成为一个迫切需要解决的问题 本设计采用了龙芯系列的GS32I SoC处理器,SoC的定义多种多样,由于其内涵丰富、应用范围广,很难给出准确定义一般说来, SoC称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。
同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程探讨并设计如何构造一个小型嵌入式硬件系统,同时兼顾科研与应用两方面的要求,在该平台的根底上可以连接各种外设开展嵌入式算法的实验该系统经简单修改能方便地应用在军事、工业控制、数据采集等领域 二、芯片简介 目前龙芯系列微处理器有龙芯1号,龙芯2号微处理器龙芯2号集成了桥芯片,采用分离的32位地址/数据总线,因此本设计采用基于龙芯2号的GS32I SoC处理器 GS32I高集成系统设备,提供了高带宽的存储总线,一个100/125MHz SDRAM控制器和一个SRAM/Flash EPROM控制器;EPROM(Erasable Programmable ROM,可擦除可编程ROM)芯片可重复擦除和写入,解决了PROM芯片只能写入的弊端EPROM芯片有一个很明显的特征,在其正面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,可以看到其内部的集成电路,紫外线透过该孔照射内部芯片就可以擦除其内的数据,完成芯片擦除的操作要用到EPROM擦除器SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器,同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址开展数据读写。
48个GPIO口,其中22个专用,可以多路复用,以便在需要的时候能提供额外的功能;33/66MHz、32位PCI控制器(兼容PCI2.2);两个10/100M以太网控制器;通用串行总线(USB)主机及装置控制器,两个通用异步收发器,一个AC97控制器,一个PCMCIA控制器GS32I提供了强健的电源管理,有空闲和睡眠两种省电模式,还提供有EJTAG接口,用于系统连续检查 三、小系统的设计 龙芯GS32I SoC处理器是专门针对嵌入式领域研制的一款处理器GS32I处理器是基于MIPS32指令集的高性能,低功耗的片上系统(SoC),主频可达 500MHz,工作频率在400MHz时功耗小于0.7w,使用了0.18uS的制造工艺龙芯GS32I开发板以GS32I处理器为,内部集成桥芯片,集成了嵌入式产品所需的大量外设,包括系统外设、高速/低速外设、存储器接口、DMA等由于龙芯GS32I优越的性能,低功耗,高集成度,目前已成功的应用于瘦客户机、网络服务器、路由器等网络设备GS32I总线采用系统总线(SBUS)与存储器和外部设备通信SBUS是GS32I处理器内部的36位物理地址和32位数据地址总线。
需要高带宽或者需要离CPU近的设备连到SBUS总线,包括存储器控制器(SDRAM, FLASH/SRAM)、32位PCI总线接口控制器、DMA 控制器、USB1.1控制器和以太网控制器PBUS设备包括电源控制单元、中断控制器、时钟定时器、通用I/O、UART、AC97控制器 1. 系统总体设计 小系统硬件功能框图如图1所示: 图1 总体框图 系统设计包括CPU启动和复位电路以及外部I/O设备的地址扩展; 包括FLASH和SRAM在内的存储系统的设计;RS232串口;用于人机交互的4×4小键盘和4位LED数码管,另外还提供了八路开关量的输入/输出、A/D和D/A转换器以及用来实验和测试的EJTAG接口等 2. 系统的启动与复位 龙芯GS32I支持16位和32位启动管脚 ROMSEL和ROMSIZE的状态决定了CPU启动ROM的宽度和类型,此表如下所示: 表1: 基于系统国产化的需求,使用开放源代码的Linux操作系统便于实现国产化为了方便其嵌入,本系统设置为32位FLASH启动,即把ROMSEL和ROMSIZE都置为低电平启动时,若ROMSEL为低电平,则RCSO#缺省设置为有效,并且对Ox0 1FCO 0000使能,CPU从物理地址Ox0 1FCO 0000地址开始执行程序。
因此,FLASH或ROM的起始地址应该通过RCS0#映射到此处系统复位模块提供GS32I处理器的硬件复位和软复位当管脚VDDXOK和RESETP#都有正电平跳变时,硬件复位有效,这一般在系统加电时产生 若电源供电正常,且VDDXOK保持,当RESETP#发生正电平跳变时,软件复位有效这种复位对一些存放器,特别是系统控制块存放器没有影响复位芯片采用可监视供电电源的低功耗芯片MAX811SU,电路原理如下列图所示: 图2 RESET电路 3. 存储系统的设计 GS32I提供了高带宽的存储总线,一个100/125MHz SDRAM控制器和一个SRAM/Flash EPROM控制器SRAM/Flash EPROM控制器可以支持FLASH 、SRAM、LCD 、PCMCIA和外部I/O设备等 针对存储容量要求比较低的小型嵌入式系统,SRAM设计为16M bit,FLASH设计为64M bit,已能够满足应用需求SRAM/Flash EPROM控制器有四个可编程的片选信号RCS0#~RCS3#,本文将RCSO#,RCS1#用于FLASH和SRAM,RCS2#用做对外部I/O设备的地址扩展。
本设计采用了2片Intel公司的28F320C3 FLASH,作为系统ROM区,存放操作系统和用户应用程序;两片ISSI公司的IS61LV51216 SRAM,作为系统RAM区,存放系统数据和用户数据其中RCS0#用于FLASH的片选信号,与FLASH的CS#连接,RCS1#用于SRAM的片选信号关于存储器的硬件设计示意图如下图: 图3 存储系统的硬件设计示意图 ⑴ FLASH接口设计及相关存放器的设计 28F320C3 FLASH的存储容量为2M×16 bit.由于SRAM/Flash EPROM控制器设置为32位总线宽度,使用两片28F320C3 FLASH扩展为32位总线宽度,地址线连接至GS32I地址总线的RAD2~RAD22,每次读取四个字节; GS32I复位后起始地址是 0x0 1FC0 0000,FLASH的地址被装载到此处,每个片选信号的地址映射范围是通过设置片选地址存放器mem_staddr0来实现的,片选地址存放器mem_staddr0的格式如下所示: 当E位置为1并且满足条件"(physical_addr&CSMASK)==CSBA"时,片选信号将变为有效。
physical_addr是内部系统总线作为输出的实际的36位物理地址,CSBA用来指定这个片选信号的物理基地址的31:18位,CMASK用来指定CSBA的哪些位被用来译码片选信号本系统中,mem_stcfg0存放器的DTY域设置为3,则对应的高四位35:32位的值为0000B,CSBA设置为0x07F0,CMASK设置为0x3FF0这样FLASH的地址就被映射到0x0 1FC0 0000-0x0 1FFF FFFF. FLASH快读取速度为70ns, CPU系统总线周期为10ns(100MHz),因此在读取FLASH时需要插入等待状态,通过设置静态时序存放器mem_sttime0来插入等待周期静态时序存放器mem_sttime0的格式为: Ta域为数据有效时片选信号要求插入的周期数,考虑到系统的稳定性,根据FLASH的读取参数,插入7个等待周期,因此Ta域设置为7.Ta域默认值为29,在选取启动ROM芯片时,若芯片读取参数需要插入的等待周期超过29,则这种芯片不可用Tcsh域用来指定在两次访问期间片选信号保持的时钟周期数,这里设置为0. ⑵ SRAM接口设计及相关存放器的设计 SRAM的存储容量设计为512K×32位,可使用两片IS61LV51216 SRAM(512K×16)通过位扩展实现。
将RCS1#连接到SRAM的片选信号CS#上,地址线连接至GS32I地址总线的RAD2~RAD20,地址范围是通过设置片选地址存放器mem_staddr1来映射的,设置方法与mem_staddr0的实现相同 SRAM时序与CPU的配合是通过设置静态时序存放器mem_sttime1来完成的,mem_sttime1的格式与的mem_sttime0相同IS61LV51216 SRAM的读写速度快为10ns, 片选信号RCS1#插入一个等待周期,Ta域设置为1,Tcsh域设置为0.对于SRAM的写入,与其相关的域有Twcs,用来指定写脉冲RWE#后片选信号RCS1#保持的时钟周期数, Tcsw用来指定片选信号RCS1#有效后的几个时钟周期插入RWE#,Twp用来指定RWE#持续的时钟周期数根据SRAM的参数和SRAM的读写时序设置完成后,SRAM的读写时序如下列图所示: 图4 SRAM读写时序图 4.其他外部设备的设计 GS32I处理器提供48个GPIO口,其中22个专用,48个GPIO中的32个由主GPIO块控制,另外16个是次级GPIO口每个GPIO口可以被配置作为输入或输出,并且能够连接到内部中断控制器对输入的信号产生一个中断。
本设计中采用GPIO管脚作为外设的数据信号和控制信号 (1)串口的设计 RS232收发器使用MAXIM公司的MAX3232,采用简单的三线制接法,即地、接收数据和发送数据三脚相连,原理图如下所示: 图5 串口电路原理图 (2)键盘驱动和数码显示驱动 4×4键盘和四位LED显示用于人机交互4×4小键盘采用专用的键盘译码芯片74C922,中断方式连接,通过GPIO1触发中断显示模块是四位共阴极LED七段数码管,段码通过共阴极数码管驱动器74LS248驱动,位码用74LS373存放器送数据这个设计比较简单,限于篇幅,略去原理图 (3)A/D和D/A转换模块的设计 A/D 和D/A使用封装小,功耗低,且能满足高速采样系统的串行转换器,这样适合嵌入式系统的要求串行A/D和D/A转换器发送与接收数据是通过GS32I的GPIO口来实现的本设计中用次级GPIO口作为串行数据的输入输出,主GPIO产生中断A/D模块采用流水线构造的12位模-数转换器(ADC),内部由流水线ADO、基准电压源、控制逻辑、FIFO、缓冲器、采样保持器和多路器切换开关等组成。
