一. 导言
现在,嵌入式体系现已渗透到各个范畴:工业操控,军事国防,消费类电子产品,网络通讯等,但大部分范畴的运用都是依据国外各大厂商的嵌入式处理器。在嵌入式范畴运用国产芯片,走国产化路途现已成为一个迫切需求处理的问题。现在国内的芯片主要有星光系列、汉芯系列、威风系列、青鸟嵌入式芯片、方舟系列、龙芯系列等,这些芯片各有自己的特色。
本规划选用了龙芯系列的GS32I SoC处理器,讨论并规划怎么结构一个小型嵌入式硬件体系,一起统筹科研与运用两方面的要求,在该渠道的基础上可以衔接各种外设进行嵌入式算法的试验。该体系经简略修正能便利地运用在军事、工业操控、数据收集等范畴。
二. 芯片简介
现在龙芯系列微处理器有龙芯1号,龙芯2号微处理器。龙芯2号集成了桥芯片,选用别离的32位地址/数据总线,因而本规划选用依据龙芯2号的GS32I SoC处理器。
GS32I高集成体系设备,供给了高带宽的存储总线,一个100/125MHz SDRAM操控器和一个SRAM/Flash EPROM操控器;48个GPIO口,其间22个专用,可以多路复用,以便在需求的时分能供给额定的功用;33/66MHz、32位PCI操控器(兼容 PCI2.2);两个10/100M以太网操控器;通用串行总线(USB)主机及设备操控器,两个通用异步收发器,一个AC97操控器,一个PCMCIA 操控器。GS32I处理器内部还完结了与MIPS32兼容的依据TLB的虚拟地址转化单元、破例机制、中止机制、指令操控、时钟发生等功用。GS32I供给了健旺的电源办理,有闲暇和睡觉两种省电形式,还供给有EJTAG接口,用于体系接连查看。
三. 小体系的规划
GS32I总线选用体系总线(SBUS)与存储器和外部设备通讯。SBUS是GS32I处理器内部的36位物理地址和32位数据地址总线。需求高带宽或许需求离CPU近的设备连到SBUS总线,包含存储器操控器(SDRAM, FLASH/SRAM)、32位PCI总线接口操控器、DMA 操控器、USB1.1操控器和以太网操控器。不需求高带宽衔接的设备均连至片上外部总线PBUS,外部总线的频率始终是体系总线(SBUS)频率的一半。 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的宽度和类型,此表如下所示:
依据体系国产化的需求,运用免费开放源代码的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的哪些位被用来译码片选信号。CSBA的高四位,也便是35:32位由mem_stcfg0寄存器的DTY域来决议。本体系中,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的读写时序,本规划中,Twcs,Twp都设置为0,Tcsw设置为0000b,这样使SRAM与CPU的时序可以合作且确保体系的稳定性。设置完结后,SRAM 的读写时序如下图所示:
图4 SRAM读写时序图
4.其他外部设备的规划
GS32I处理器供给48个GPIO口,其间22个专用,48个GPIO中的32个由主GPIO块操控,别的16个是次级GPIO口。每个GPIO 口可以被装备作为输入或输出,而且可以衔接到内部中止操控器对输入的信号发生一个中止。本规划中选用GPIO管脚作为外设的数据信号和操控信号。