嵌入式MCU硬件设计概述
扫描二维码
随时随地手机看文章
1引言
目前,集成电路的嵌入式技术发展越来越快,各色嵌入式产品也越来越受欢迎,尤其是以大屏幕多功能的手机、平板电脑等为典型代表,做为其控制核心的高性能、低功耗的微控制器(MCU)起到了决定性作用。因此以CPU为核心MCU的设计也成为了诸多高等院校、各大公司进行市场竞争的一个主流发展方向。
2 MCU选型技术
微控制器(MCU)的应用领域非常广泛,如消费类电子市场中的手机、照相机、摄像机、MP3、MP4、平板电脑、笔记本电脑、PC机、各种遥控电动玩具等,还有汽车电子的电子钥匙、控制系统、导航、倒车影像、倒车雷达等,还有各种安全防卫系统、医疗器械、工业控制、武器装备、航空航天等各个领域。因此在设计MCU之前需要进行明确的市场定位,从而使目标产品有的放矢,并在高性能、低成本、多功能、轻体积、低功耗、高可靠、散热好、抗辐照、抗单粒子、适应超高温和超低温等方面具有很强的竞争力。MCU硬件设计主要包括两大部分:CPU选型和外围IP核的选取。
3 CPU选型
CPU作为MCU的大脑,起到控制核心的作用,基本上决定了MCU的目标应用领域,因此CPU的选型是设计MCU的关键。目前,可以用于集成电路嵌入式设计的CPU主要有CISC架构的80386EX,RISC架构的ARM7TDMI/EJ、ARM926EJS/946ES/968ES、ARM1136/56/76、ARMCortex-A5/7/8/9/15、ARMCortex-R4/5/7、ARMCortex-M0/0+/1/3/4、SecurCore000/100/300、MIPS32M4K/4K/14K/24K/34K/74K/1004K/1074K、microMIPS32、SmartMIPS、Nios/NiosII、PowerPC40x/60x/70x/90x、SPARCv7/8/9、LEON2/3/4、OR1000/1200等,其中以ARM系列嵌入式CPU发展的势头最为迅猛,占据了嵌入式处理器绝大部分的市场份额,而且还在继续增长。各家公司的每种处理器都有自己的特点,可以满足不同的应用需求。此外,开发环境的完备性、总线接口协议的高效性、技术支持的专业性、IP核种类的丰富性、设计资源的开放性以及设计者的使用习惯等,都会对CPU的选型产生决定性的影响。
4外围IP选取
对于应用领域而言,外围IP核起到了很好的支撑作用,因为如果把MCU比作“人”,则外围IP核相当于MCU的“眼”“耳”“口”“鼻”等重要器官,所以外围IP核的选取也同样至关重要。IP核的选取包括通用IP核和特定用途IP核两种。
4.1通用IP选取
目前,通用IP核的种类比较繁多,按照总线接口协议可以分为IBM公司的Core Connect、ARM公司的AMBA(Advanced Microcontroller Bus Architecture)和Silicore Corp公司的Wishbone等;按功能分为接口类IP核如DMA、GPIO、UART、USART、Timer、WDT、I2C、I2S、SPI、CAN、存储器控制器,图像处理类IP核等;存储器类IP核如ROM、RAM、SRAM、FLASH等。根据功能不同可以进行不同的选择,还可以集成几个相同功能的IP核,如UARTx4有4个UART接口,I2Cx2则是有2个I2C接口等。
4.2特定用途IP选取
特定功能的IP核种类也很多,如时钟类的PLL、片上高精度振荡器,模数转换类的AD、DA,网络类的ETHERNETMAC/PHY、Modem,图像处理类的H.264、JPEG,接口类的USB2.0/3.0、IDE、SATA等,高速接口类的LVDS、RapidIO、SerDes等,还有各种传感器等,需要根据市场定位来确定。
5 MCU设计
5.1硬件设计
目前,Samsung、FreeScale、Atmel、NXP、TI、ST等大公司已经大规模推出各类MCU,而且各具特色,因此设计具有自主知识产权的MCU应在系统架构等方面有别于这些大公司,一是避免侵权,二是更有利于市场竞争。同时应做好产品的规划:从简单到复杂,从单一产品到系列产品,设计平台不断维护与更新,设计软件不断维护与升级,设计人员的水平不断提高。主要包括以下几个方面:
(1)体系架构分析、设计和验证
依据设计规格书中的性能指标和功能指标,首先需要制定设计方案:选取几款CPU以及所有用到的IP核进行系统级设计,从整体上评估MCU的系统架构、CPU的性能指标、IP核的功能特性等方面。基于几种选定的目标工艺给出相应的数据分析,确认是否能够满足设计目标的要求,从而确定基本的设计方案,然后再根据具体的设计结果进行相应的优化。
(2)时钟和复位方案设计
时钟和复位对整个电路而言起到了至关重要的作用。如果这两路信号有问题,则电路不能正常工作。因此,需要作出详尽的时钟方案和复位方案,需要给不同的外设提供不同的时钟:USB单独时钟、CPU等高速外设一个时钟、UART等低速外设一个时钟,如图1示。
图1时钟方案示意图
(3)总线方案设计
采用何种总线、何种组合方式、总线的数量等关系到MCU性能的发挥。以AMBA总线为例,通常的用法是AHB接高速外设,再通过AHB到APB总线桥来访问低速外设。有时为了提高外设的访问速度,一个MCU内部可能有两条APB总线;也可能有两条AHB总线。指令和数据分离,一条用来数据传输或图像处理,另一条用来通用控制。还可能有多层AHB的互连矩阵,便于多个Master可以同时访问多个不同的高速外设,从而大幅度提高MCU系统性能。因此,总线方案的制定须依据产品的具体应用来确定。
(4)功耗管理方案设计
低功耗是MCU的突出特点之一,因为MCU中集成了多种低功耗管理策略:不仅在逻辑上采用门控时钟、门级优化的方式,而且还在物理上采用多阈值电压、多电源域、门控电源等方式;同时更在功能模式上采用了多种模式:正常运行模式、睡眠模式、深度睡眠模式、掉电模式等,并严格规定各种模式下运行和关闭IP核的种类以及各种模式之间的进入和退出流程。这既保证了电路的功能,又保证了电路的性能。[!--empirenews.page--]
(5)中断处理方案设计
中断是MCU一项很重要的功能。通过中断控制,CPU可以快速响应外设的请求。中断处理一般包括中断源的数量、优先级、是否可屏蔽、是一般中断还是快速中断等,通常需要设计一个专用模块来进行中断处理。有时为了提高设计效率,IP销售商也提供标准的基于AHB或APB等总线接口协议的IP核。如果此类IP核能够满足系统对于中断处理情况的要求,也可以选用。
(6)存储器管理方案设计
存储器是MCU中占面积较大的模块。一个MCU中可能同时含有ROM、SRAM和FLASH三种存储器:ROM用于放置Boot Loader、IP Drivers等,SRAM用于提高软件运行速度、存放临时数据,FLASH用于存放应用程序和数据。由于FLASH的读写速度比较慢,为了提高FLASH的读写速度,可以采用预取缓冲器和写缓冲器来加速指令和数据的缓冲。由于各个存储器都有自己的地址空间,因此很方便用户访问。为了便于系统管理,通常设计一个存储器管理模块,并在系统控制模块中设计对应的控制寄存器。
(7)在线调试方案设计
目前,比较常用的在线调试方式为串行调试,如JTAG、EJTAG、UART等,使用PC机的并口、串口、网口或是USB接口,使得在线调试简单方便,成本低廉,如图2所示。由于被调试的程序要在目标板上运行,而且MCU必须正常工作,因此需要设计一个专用的调试模块以保证上位机软件可以调用CPU来进行软硬件的在线调试,并且符合IEEE1149.1的协议标准,此模块的基本结构如图3所示。
图2典型在线调试系统示意图
图3调试结构示意图
(8)测试方案设计
MCU的测试方案主要包括物理测试、功能测试和性能测试几部分内容。先要根据时钟方案和复位方案对MCU进行时钟测试,确保时钟电路工作正常;再对CPU进行功能测试,因为CPU是MCU的控制核心,只有CPU正确运行才能对其他IP核进行测试;然后再依据设计规格书对MCU外围的数字IP核和模拟IP核进行功能测试和性能测试。
5.2系统级验证
为了确保设计的正确性,流片之前必须对MCU进行全功能验证。因此需要使用多种IIP和VIP来搭建一个系统级验证平台,依据设计规格书制定详细的验证方案,通过仿真工具,采用定向和随机的方式或采用比较流行的OVM、VMM和UVM等验证方法学、逐个IP核来验证MCU的全部功能是正确的,重点是系统控制单元、总线仲裁器、功耗管理等为系统功能定制设计的非标准模块。
5.3 FPGA原型验证
由于系统级验证使用的是EDA工具进行软件仿真,仿真的速度比较慢,因此可以通过FPGA原型验证的方式来加速系统级验证的速度,尤其是需要将那些功能比较复杂、规模比较大的模块下载到FPGA中,而且应尽可能使用规模比较大的FPGA,如Virtex-7系列、ArriaV系列等。搭建FPGA验证平台时,不仅可以使用一块FPGA,也可以使用多块FPGA,最好能够将设计的所有模块全部下载到FPGA中。FPGA原型验证不仅要验证硬件的正确性,还要验证IP核驱动程序的正确性,同时也可以验证目标应用程序的正确性。
5.4物理设计
在对MCU系统级验证和FPGA原型验证后,需要进行物理设计:依据设计规格书制定合理设计约束,从逻辑综合到自动布局布线,再到物理验证、形式验证、静态时序分析和功能验证,完成从RTL到GDSII的转换过程,最后将数据发送至代工厂进行加工制造。
5.5文档设计
文档是MCU设计过程中很重要而且很必要的环节,且应该在设计的不同阶段,以模板的形式规定在此阶段所要完成的文档设计,并由项目负责人进行详细审查,从而确保一旦设计中出现了任何问题,都可以查找相关的设计文件以及对应的设计文档,尤其是设计的细节需要体现的很完整。
6结束语
以上只是简要概述了MCU硬件设计的主要方面。若要设计一个性价比高、竞争力强的MCU,还需要进行大量的、详细的工作,尤其是电路的全功能验证和详尽测试,并搭建一个MCU平台来进行系列产品的开发,以保证产品可以源源不断地进入嵌入式市场。