1 MCU 简介
若将4位单片机的出现作为MCU的起点,MCU的发展大致可以分为如下阶段:初级阶段(1971年-1976年)、8 位低性能阶段(1976 年-1980 年)、8 位高性能阶段(1980年-1983年)、16位阶段(1983年至80年代末)、片上系统(System On-Chip,SoC)阶段(1990-)。一个通用的MCU 由ROM、RAM、GPIO、串行设备(UART/SPI/IIC)、计数器/定时器(TIMER)等组成,并通过总线连接,如图1所示。
传统MCU 都需要一套指令集结构(Instruction SetArchitecture,ISA)。从现阶段主流体系结构讲,主要分为复杂指令集(Complex Instruction Set Computer,CISC)和精简指令集(Reduced Instruction Set Computer,RISC)。
RISC增加了运行速度,大大减小了指令集数目,方便使用多级流水线结构,可增加寄存器数量。AVR单片机就是一款内置FLASH的增强型RISC处理器[4].
另外MCU需要将数据和指令存储于存储器中。目前使用最多的两种存储器组织结构分别为冯·诺依曼结构(Von Neumann Architecture)和哈佛结构(Harvard Ar-chitecture)。冯·诺依曼结构将处理器指令和数据合并在一起存储,指向同一存储器的不同物理地址。哈佛结构将程序指令存储和数据存储分开,中央处理器先从程序指令存储器中获得指令译码后得到数据地址,再由此从数据存储器中取得数据,并进行下一步操作。哈佛结构的微处理器通常有很高的执行效率。Atmel公司的AVR系列就是采用的哈佛结构。
AVR单片机是由Atmel公司在1997年推出的高速8位MCU,内置FLASH的增强型RISC处理器,可广泛应用于计算机外部子系统、工业生产和控制、仪器仪表、通信设备、家用电器等各个领域。大部分AVR片上资源丰富:如E2PROM,PWM,RTC,SPI,USART,TWI,ISP,AD,Analog Comparator,WDT等。AVR单片机内嵌高质量的FLASH程序存储器,擦写方便,支持ISP和IAP,便于产品的调试、开发、生产、更新。内嵌长寿命的E2PROM可长期保存关键数据,避免断电丢失。片内大容量的RAM不仅能满足一般场合的使用,同时也更有效地支持使用高级语言开发系统程序,并可像8051单片机那样扩展外部RAM.
2 FPGA 简介
ASIC 是指依特定用途而设计的特殊规格逻辑电路。ASIC的最显着特点是面向特定用户需求,与通用集成电路相比有更小的体积、更低的功耗、较高的可靠性、较强的保密性和低成本等优点,但因为开发较为复杂,所以研发周期较长。
随着电子工业技术的发展,ASIC的设计方法变得越简单,效率越高,可编程ASIC就是一个很有特色的设计分支,它主要利用可编程的集成电路如PLD(Program-mable Read Only Memory)等可编程逻辑电路来设计。
主要特点是直接提供软件设计编程,完成ASIC电路功能,而不再通过集成电路工艺加工后得到成品。这种方法大大降低了开发周期,且缩小了成本。
现场可编程门阵列(Field Programmable Gate Ar-ray,FPGA)就是众多PLD产品中应用最为广泛的一种,它采用了逻辑单元阵列(Logic Cell Array,LCA),内部包含了可配置的逻辑模块(Configurable Logic Block,CLB)、输入/输出模块(Input Output Block,IOB)和内部连线(Interconnect)。FPGA采用的是小型查找表来实现组合逻辑的,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他的逻辑电路或者I/O,由此构成即可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,通过内部连线互相连接。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O之间的联系方式,并且最终决定了FPGA所实现的功能。由于FPGA采用查找表结构,而查找表本质是一个小RAM,所以FPGA内部信息掉电消失,上电需要重新进行配置。FPGA支持多次重复编程。相对于其他的可编程器件,FPGA是ASIC电路中设计风险最小、开发费用最低、周期最短的器件之一。采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。同时FPGA 的内部逻辑和I/O 资源非常丰富,可以说用FPGA芯片进行小批量生产,对于提高系统集成度、可靠性是很有帮助的。[page]
在众多PLD厂家中,XILINX公司的产品种类丰富,其开发工具ISE为业界公认的最好的开发工具之一,且其芯片的性价比很高。所以,这里主要使用XILINX公司的产品。XILINX 公司主要FPGA 产品为SPARTAN系列和VIRTEX系列。前者面向低成本应用,满足一般的逻辑设计要求,后者面向高性能应用,满足高端要求。文中选择Virtex-Ⅱ Pro 系列芯片作为开发平台。
这款芯片含有可编程输入/输出块、可配置逻辑块、嵌入式RAM块、数字时钟管理模块、专用硬核以及丰富的布线资源。FPGA的设计过程是利用EDA工具将设计输入转化为FPGA芯片可运行的过程,开发的一般流程见图2.
3 Virtual AVR 实现
通过对FPGA和MCU的深入了解,可知使用FPGA的丰富资源来虚拟出MCU是完全可行的。首先,需设计一个总体结构,如图3所示。ROM用于存放被执行程序及二进制代码,RAM 为运行内存,用总线将VirtualMCU Core与各外设相连。使用该结构可简化设计,无需对外设重复设计,只要使Virtual MCU Core满足同一接口即可。
Virtual MCU Core由几部分构成:算术逻辑单元,运算的主要单元;译码器,由二进制文件判断指令类型并获得源操作数和目的操作数等;寄存器,用于参加运算和存储某些中间值等。
Virtual AVR Core 以ATmega103处理器为参考,核心采用RISC结构,3级流水线结构,因为是哈佛结构,所以分为数据存储器和指令存储器。它的处理器核心如图4所示。同时ATmega103共有130条指令,每条指令都是固定结构,为16 位。在该设计中,移植了Open-Cores开源组织的8位AVR核,它支持3级流水线,兼容标准AVR微处理器。
上一篇:ATmega16单片机在实时温度采集与分析系统中的设计
下一篇:基于AVR的智能教学无人车控制系统设计
推荐阅读最新更新时间:2024-03-16 13:34
- 热门资源推荐
- 热门放大器推荐