《基于FPGA的嵌入式系统的软硬件设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的嵌入式系统的软硬件设计.docx(9页珍藏版)》请在第一文库网上搜索。
1、基于FPGA的嵌入式系统的软硬件设计1、前言近年来,随着嵌入式核心芯片的飞速发展,改变了传统嵌入式系统的设计方法,嵌入式系统逐渐由板级向芯片级过渡,即片上系统一一SOC。片上系统是追求产品系统最大包容的集成器件,是当前嵌入式应用领域的技术热点。SOC的出现使集成电路发展成为集成系统,整个电壬整机的功能可以集成到一块芯片中,降低了设计成本,缩短了开发周期。因此,本文设计了一个基于FPGA的嵌入式系统,既能满足嵌入式系统教学实验的需要,同时也可作为嵌入式产品开发平台。2、系统硬件设计本系统要实现的功能包括:可以运行嵌入式操作系统;支持N项口开发;支持幽通讯;支持咫-232串口通讯;支持以太网通讯:
2、支持ITAG接口在线调试与下载。2.1系统硬件框图针对所需的功能,设计出系统的相应硬件平台,硬件平台主要是由嵌入式处理器模块、存储器模块、包括以太网接口、USB接口和电遮等外部接口电路模块组成。系统硬件结构框图如图1所示。图1系统硬件结构图2.2嵌入式处理器模块嵌入式处理器是整个系统的控制管理中心,主要功能是实现整个系统的控制和任务调试管理。在本系统中嵌入式处理器采用制TERA公司的Cyc1one系列的EP1eI2Q240C8芯片,其采用QFP封装,拥有12060个逻辑单元(1E)52个M4K存储块、全部RAM位数为239616、两个锁相环,以及249个可用的I/O脚,其配置存储器采用EPCS
3、1,编译后系统速度可以达到IOOMHz,支持A1TERA公司的SOPC内核N1OSII系统的开发,NIOSII开发环境编译后的可执行文件可以通过JTAG接口下载到开发板上的F1ASH中去,可以支持一些嵌入式操作系统,比如MiCroC/0S操作系统和C1inUX操作系统。2.3存储器模块2.3.1专用串行配置器件EPCS1接口电路EPCS系列器件是A1tera公司提供的一种基于F1ASH存储器的专用串行配置器件,其具有串行接口,接口只需要四个引脚,能够存储StraIiXII系列、Cyc1one系列的FPGA的配置信息,并在系统上电或者需要重新配置FPGA时,向FPGA发送配置信息。本系统用的串行
4、配置器件EPCS1大小为IM字节,反复擦写次数可多达十万,可以轻松实现掉电保护2.3.2FIaSh存储器接口电路F1aSh存储器具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程(烧写)、擦除等特点,因而在各种嵌入式系统中得到了广泛的应用。系统中用了一片AMD291V320DF1ASH存储器,其单片存储容量为32M位(4M字节),工作电压为2.7V3.6V,16位数据宽度。AMD291V320D仅需3V电压即可完成在系统的编程与擦除操作,通过对其内部的命令寄存器写入标准的命令序列,可对FIaSh进行编程(烧写)、整片擦除、按扇区擦除以及其他操作。F1ash存储器在系统中通常用于存放程序代
5、码,系统上电或复位后从此获取指令并开始执行,由于,在进行系统整体设计时,可以通过使用QUartUSH对引脚进行配置,所以对于AMD291V320DF1ASH的三个功能引脚nCE、nOEnWE,可以各接一个EP1C12Q240C8的通用I/O脚即可。2.3.3SDRAM存储器接口电路与FIaSh存储器相比较,SDRAM不具有掉电保持数据的特性,但其存取速度大大高于FIaSh存储器,且具有读/写的属性,因此,SDRAM在系统中主要用作程序的运行空间、数据及堆栈区。当系统启动时,CPU首先从复位地址0x0处读取启动代码,在完成系统的初始化后,程序代码调入SDRAM中运行,以提高系统的运行速度。同时,
6、系统及用户堆栈、运行数据也都放在SDRAM中。系统中用了一片HY57V641620SDRAM存储器,其存储容量为4组x16位(8M字节),工作电压为3.3V,常见封装为54脚TSOP,兼容1VTT1接口,支持自动刷新(Auto-Refresh)和自刷新(Se1f-Refresh),16位数据宽度。可满足运行MiCrOC/0S操作系统、或者C1inUX操作系统及各种相对较复杂的算法的运行要求。要在系统中使用SDRAM,要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻辑电路。通过AItera公司提供的N1oSII开发工具可以将SDRAM控制器添加到N1oSCPU中,然后下载到EP1CI2
7、Q240C8中运行,因此可以方便地使用即1C12Q240C8的通用I/O口与SDRAM相连接,同样在进行系统整体设计时通过QUartUSII定义引脚。2.4外部接口模块2.4.1以太网接口设计系统采用rea1teck公司推出多年RT18019AS网络芯片。RT18019AS芯片是一款应用广泛的IoM网络芯片,支持以太网II和IEEE802.310Base5,10Base2,IOBaseT.支持可编程输出的4一诊断1叨。利用RT18019AS可以在NIOSII系统中方便的建立起完整的网络服务器,可以通过网络从FPGA芯片构成的软嵌入式系统中收发数据。RT18019AS与EP1C12Q240C8通
8、过外部总线进行连接。主要是把RT18019AS的数据总线(SDOSDI5)、地址总线(SAOSA5,SA8)、读使能(IORB).写使能(IOWB).中断输出信号(INTO)和中断输入信号(RSTDRV)与EP1C12Q240C8的通用I/O脚连接即可。2.4.2USB接口设计系统采用CyPreSS公司的S1811HS芯片作为USB接口芯片,它是一种USB主机控制器,它能与全速或低速USB外围设备通信。S1811HS能与各种微处理器、微控制器、FPGA以及皿,ISA等各种总线进行接口,适用于各种要求配置USB主机或设备的嵌入式系统。在USB接口电路设计中,S1811HS的8位数据线直接和FPG
9、A芯片的8位数据线相连。其中需要注意的是,S181IHS的Ao引脚和低8位地址线的最低位AO相连,即与锁存器的地址输出端的最低位相连。2.4.3串行接口设计RS232是应用最为广泛的UART接口,可以方便的实现与计算机的数据通讯;同时在调试基于FPGA的嵌入式操作系统时候,可以作为辅助调试接口,结果输出到主机的超级终端上面。因为FPGA的通用I/O引脚可以在后期通过Quartus软件定义,所以只需选取EP1CI2Q240C8的任意四个引脚与电平转换器MAX3232C相连,通过MAX3232C接RS232标准串行接口(DB9),可与PC机进行串行通信。2.4.4电源接口设计系统需要使用1.5V、
10、3.3V和5V三种直流电源,其中,EPICI2Q240C8内核使用15V电源,EP1C12Q240C8的I/O口、MAX3232C、1CD接口等器件使用3.3V电源,RT18019AS使用5V电源。为简化系统电源电路的设计,要求整个系统的输入电压为高质量的5V直流电压电源,本系统采用电压转换芯片B1117来得到15V和33V的电压。2.4.5系统时钟电路设计系统时钟模块为试验系统提供时钟信号,使其工作在指定的频率下,是系统不可缺少的部分。本系统的时钟信号由50MHZ的有源晶振产生,为了使系统有稳定的时钟输入,要对晶振的输入电压通过简单的1C滤波电路做滤波处理,使其电压更加稳定,尽可能减小干扰。
11、2.4.6复位电路设计在系统中,复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。本系统根据实际需要,通过QUartUSII软件对复位信号进行延时设计,然后在外部再加以需要简单的电路来实现。2.4.7JTAG接口设计JTAG(JointTestActionGroup)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行位直、调试。JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路,可以通过专用的JTAG测试软件对芯片内部节点进行测试。EP1CI2Q240C8有四个专用引脚TMS、TDKTCKTDO与AItera公司的专用下载电缆ByteB1asterII通过一
12、个十针的插座相连,用于下载以及在线调试。3、系统软件设计本系统主要的开发调试工具有SoPCBui1derQuartusII和NIOSIIIDE0SOPCBUiIder是一个自动化的系统开发工具,它能够极大地简化高性能SOPC的设计工作;QUartUSII是A1tera公司推出的CP1D/FPGA开发工具,Quartus提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,主要用于system-on-a-programmab1e-chip(SOPC)的设计环境;NIOSI1IDE是N1OSII系列嵌入式处理器的基本软件开发工具。所有软件开发任务都可以NK)SIIIDE下完成,包
13、括编辑、编译和调试程序。3.1. 系统软件配置采用NK)S处理餐开发设计与采用传统的处理器开发设计不同,开发者必须先配置处理器结构、设置接口等内容。也就是说,开发者必须根据实际需求构建一个处理器,而传统的处理器具有固定接口、片内RAM和外部设备。系统设计所需的具体软件配置如下:(1)用SOPCBUiIder系统综合软件来进行NIoS软核的软件配置,包括NIOSCPU配置、片上ROM及RAM设置、F1ASH设置、SDRAM设置、JTAG调试配置、加入定时器、加入外部RAM总线AVa1on三态总线桥、通讯接口、按键10与1EDPIO设置、指定基地址和配置N1oS软核,这样整个N1OS软核已经配置完
14、毕,之后需要编译,并生成图形文件,成为QUartUSII设计的一部分。(2)使用QUartoSII软件来选取具体的A1tera可编程器件系列,并对SOPCBui1der生成的HD1设计文件进行布局布线;再使用QuartosII软件选取目标器件并对N1oSII系统上的各种I/O口分配管脚,另外还要根据要求进行硬件编译选项或时序约束的设置。在编译的过程中,QuartosH从HD1源文件综合生成一个适合目标器件的网表。最后生成配置文件。(3)使用QUartoS编程器和A1tera下载电缆,将配置文件下载到开发板上。当校验完当前硬件设计后,再将新的配置文件下载到开发板上的非易失存储器里。3.2. 嵌入
15、式实时操作系统MiCroC/OS-11的应用设计目前比较流行的嵌入式操作系统主要有MicroC/OS-II,MicroC1inux,VXworkS等,考虑到系统资源以及NIOSIIIDE开发环境包含MiCroC/OSTI实时操作系统,为设计者提供快速地搭建基于N1oS处理器的MiCrOC/OS-II应用程序的能力,故本系统的操作系统选用MiCrOC/OSTI。MicroC/OS-II是一种可固化、可剪裁、占先式的多任务实时操作系统内核。它为每个任务分配单独的堆栈,提供多种系统服务可进行中断管理。创建一个基于N1OSII处理器的MiCrOC/OS-II软件过程包含以下步骤:创建一个新的N1oSI
16、IIDE工程;设定MiCrOC/OS-II软件工程库;建立并运行NIOSII下的MiCroC0S-软件工程。一、创建一个新的N1OSIIIDE工程创建一个新的N1OSIIIDE工程的方法比较简单,基本上按照向导就能完成,要注意的是在ProjectTemp1ate(工程模板)选择中,要选择theMicroC/OS-IITutoria1,在NewSystem1ibraryDia1ogBox页面中的Se1ectTypeofsystemIibrary栏中要选择MiCrOC/OSTI。二、设定MiCrOC/OS-II的步骤(1) .在N1OSIIIDE的CC+ProjeCtS视图中,右键在系统库上单击std_system_1ib0(2) .在弹出的菜单中选择Properties打开Properties对话框。(3),单击SySten