嵌入式电路设计教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 嵌入式处理器

嵌入式系统应用需求的广泛性,以及应用功能的单一性、确定性的特点,决定了嵌入式处理器实现高性能的途径与通用微处理器有所不同,嵌入式处理器主要是针对于专门的应用领域进行专门设计来满足高性能、低成本和低功耗的要求。

嵌入式系统的核心是嵌入式处理器,它对实时多任务具有很强的支持能力,能够完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间减少到最低程度;同时,还具有功能很强的存储区保护功能,这是由于嵌入式系统的软件结构已采用模块化形式结构。为了避免在软件模块之间出现错误的交叉作用,其内部设计有存储区保护功能,这有利于软件诊断。另外,处理器还具有可扩展结构的功能,有利于快速地开发出满足应用性能的专用嵌入式处理器。嵌入式处理器内部功耗很低,甚至可以在mW或μW数量级,经常用于便携式的无线及移动的计算和通信设备上。目前,社会上应用的嵌入式处理器一般可以分为以下四种类型,如图1-3所示,本节将分别进行介绍。

图1-3 嵌入式处理器的四种分类形式

1.2.1 嵌入式微控制器

微控制器(Micro Controller Unit,MCU)的典型代表是单片机,目前8位或16位的MCU在嵌入式设备中仍然有着极其广泛的应用。

1.微控制器概述

微控制器诞生于20世纪70年代末,由于其微小的体积和极低的成本,已经广泛地应用到智能传感器、无线网络节点、智能玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、个人信息终端和通信产品中。目前,MCU已成为现代电子系统中最重要的智能化核心器件。

MCU只是一个核心控制单元,在实际应用中通常需要扩展一些外围电路和外围芯片以构成具有一定应用功能的MCU系统。由于MCU自身配置的软/硬件资源有限,要进行MCU系统的开发设计时,必须使用专门的MCU开发系统。目前国内市场上可提供各种类型和型号的MCU开发系统,为MCU的开发应用提供了有力的工具,也使MCU用户有了很大的选择余地。

MCU的制造商很多,例如Atmel、Motorola和Philips等国际知名集成芯片制造公司。在采用MCU进行系统设计开发时,需要依据被设计系统功能的复杂程度、性能指标和精度要求,参照现有MCU本身具有的功能、精度、运行速度、存储器容量、功耗和开发成本等几个方面综合进行选择。一般而言其选择原则主要应从以下几方面考虑:

(1)根据所设计任务的复杂程度来决定选择什么样的MCU。推荐使用自身带有Flash存储器的MCU,由于具有电写入、电擦除的优点,使得修改程序很方便,可以提高开发速度。

(2)在MCU的运行速度选择上不要片面追求高速度,还应该看其时钟频率和指令集,因为MCU的稳定性、抗干扰性等参数基本上是跟速度成反比的,另外速度快功耗也大。

(3)I/O端口的数量和功能是选用MCU时要考虑的主要因素之一,根据实际需要确定其数量,I/O端口过多不仅会使芯片的体积增大,也会增加成本。

(4)MCU一般内部提供2~3 个定时/计数器,有些定时/计数器还具有输入捕获、输出比较和PWM(脉冲宽度调制)功能。现在不少MCU内部还提供了A/D和D/A转换器,充分利用这些功能不仅可以简化软件设计,而且还能少占用MCU的资源。

(5)常见的MCU串行接口有UART接口、I2C总线接口、SPI接口、USB接口等不同类型,可以根据实际需要选择不同的MCU芯片。

(6)MCU的工作电压一般为3.3V和5V,功耗参数主要是指正常模式、空闲模式、掉电模式下的工作电流,选用电池供电的MCU系统要选用电流小的产品,同时要考虑是否要用到掉电模式,如果需要用可选择有相应功能的MCU芯片。

(7)MCU芯片的封装一般有DIP(双列直插式封装)、PLCC(带引线的芯片载体)、QFP(四侧引脚扁平封装)、SOP(双列小外形贴片封装)等类型,所以可以根据实际需要来进行选择。

MCU的其他性能因素方面的选择,还有如中断源的数量和优先级选择、工作温度范围选择、有无加电复位功能等方面;另外,还要考虑系统的开发工具、编程器、开发成本、技术支持和服务和产品价格等诸多因素。

下面将选择介绍一下目前MCU中比较有代表性的8位AT89S52单片机和16位MSP430系列单片机。

2.典型8位单片机简介

MCS-51系列单片机是在20世纪在80年代由Intel公司推出的一种8位单片机,其片内集成并行I/O口、串行I/O口、16位定时/计数器、RAM、ROM等,最高时钟频率为12MHz,采用CISC体系指令系统,三总线结构。由于MCS-51系列单片机不断推陈出新,基于51系列内核的产品已有几十个系列、上百种型号。目前广泛应用的8位单片机是美国Atmel公司生产型号为AT89S52系列单片机,其内部结构及外形引脚与Intel MCS-51系列8位单片机兼容,软件也是采用Intel MCS-51指令系统。AT89S52系列单片机是一款低功耗、高性能CMOS单片机。

1)性能和特点

(1)片内存储器包含8 KB的Flash ROM,可在线编程,擦写次数不小于1000次;另外还具有256 B的片内RAM,内部支持ISP(在线更新程序)功能。

(2)具有可编程的32根I/O端口线(P0、P1、P2和P3端口),内含两个数据指针DPTR0和DPTRl,地址/数据线复用等功能。

(3)中断系统是具有8个中断源,6个中断向量和2级优先权的中断结构。

(4)串行通信口是一个全双工的UART串行口。

(5)两种低功耗节电工作方式。在空闲方式下,CPU停止工作,RAM和其他片内的部件(如振荡器、定时/计数器、中断系统等)继续工作。此时的电流可降到大约为正常工作方式时的15%。在掉电方式下,所有片内的部件都停止工作,只有片内RAM的内容被保持,这种方式下的电流可降到15 pA以下。

(6)工作模式下主频为0~33MHz,工作电源电压为4.0~5.5V。

(7)指令系统中大部分指令为单周期指令,同时还具有布尔处理器的功能。

2)内部结构组成

简单来讲,微控制器是指一个集成在一块芯片上的完整计算机系统,其内部一般具有CPU、内存、内部和外部总线系统,同时集成了诸如通信接口、定时器、实时时钟等外围设备。目前某些高档次的MCU甚至可以将模拟/数字转换器、数字/模拟转换器以及声音、图像、网络等复杂的输入/输出系统集成在一块芯片上。由于MCU具有低廉的价格和优良的功能,所以拥有的品种和数量众多。AT89S52单片机内部结构原理图如1-4所示。

图1-4 AT89S52单片机内部结构原理图

Atmel公司生产的AT89S系列单片机支持在系统编程(ISP),为单片机程序的开发调试提供了极大的便利。AT89ISP软件是由Atmel公司开发的用于AT89S系列单片机在线程序下载的免费软件,它提供了对单片机进行在系统编程、查看和擦除F1ash等功能。

3)AT89ISP软件的安装

AT89ISP软件的安装简单,对系统配置的要求较低。安装完成后,执行下列操作:

(1)连接下载线。将单片机系统板通过Atmel ISP下载线连接到计算机接口,并给单片机系统板通电。

(2)端口设置。单击AT89ISP工具栏上的端口选择按钮,软件弹出端口选择对话框。需要根据下载线的连接方式正确选择接口编号,否则无法正常使用ISP功能。选择完成后,单击OK按钮。

(3)选择单片机型号。单击AT89ISP工具栏上选择器件按钮,打开器件选择对话框,单击AT89文件夹的层叠菜单,在其中找到目标系统中的单片机型号,如AT89S52,单击OK按钮。如果计算机、下载线及单片机系统板三者之间连接良好,且单片机系统板供电正常,会有缓存窗口自动弹出,表明计算机与单片机系统板通信良好。

(4)初始化。单击AT89ISP工具栏上初始化按钮,初始化单片机系统板。在每次使用AT89ISP时,均需要使用此命令进行初始化。若电缆的连接及软件设置均正确,则会弹出已经初始化的窗口,表明计算机和单片机系统板已经准备完成,可以向单片机中下载程序。

(5)装载程序文件。单击工具栏中的打开按钮,在打开的文件选择对话框中选择需下载的Keil C51编译生成的.HEX十六进制文件。

(6)下载程序。单击工具栏中的自动编程按钮,执行自动编程命令。下载时间由程序大小确定,从几十秒到几分钟不等,下载完成后程序会给出相应的提示。

(7)验证程序。以上步骤已经成功地将程序下载到单片机中,断开单片机系统板和下载线的连接,给单片机复位即可看到程序运行的效果。

(8)修改程序。若需要修改C语言程序,则每次修改完程序后都要在Keil C5l中重新编译,生成新的.HEX文件。需要注意的是每次下载.HEX文件之前都需要重新装载程序文件,将最新的.HEX文件调入缓冲区中,再执行下载。

另外值得注意的是,AVR系列单片机是Atmel公司于1997年研发出的RISC精简指令集的高速8位单片机,它全新配置了精简指令集、速度快,大多数指令仅用1个时钟周期,比52系列单片单周期指令快12倍;片内程序存储器采用Flash存储器,程序保密性高;支持C语音编程,采用CMOS生产工艺,功耗低,3V电源工作下一般只需几mA电流;还拥有多种低功耗方式,在掉电方式下工作电流小于1 µA。AVR系列单片机的片内资源更为丰富,接口也更为强大,同时由于其价格低等优势,在很多场合可以替代51系列单片机。

3.典型16位MSP430系列单片机简介

MSP430系列是由美国TI公司1996年推出的产品,片内具备在线下载调试(JTAG)功能,片上外设十分丰富,具有超低功耗特色,因此常用在各种便携式的智能仪器仪表等装置中。下面以常用的MSP430F43X系列为例介绍其性能和特点。

(1)低电压、超低功耗。MSP430F43X系列单片机的工作电压范围为1.8~3.6V,工作电流会因不同的工作模式而不同。例如,CPU在工作电压为2.2V,频率为1MHz的正常工作模式下,其工作电流为280μA,待机工作模式下为1.1μA,掉电工作模式下为0.1μA;内部具有16个中断源,并且可以任意嵌套,使用灵活方便;用中断请求将CPU唤醒只要6μs,可编制出实时性特别高的源代码;可将CPU置于省电模式,用中断方式唤醒程序。

(2)具有强大的处理能力。MSP430系列单片机为16位RISC结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;高效的查表处理方法;较高的处理速度,在8MHz晶体驱动下,指令周期为125 ns。这些特点可保证编制出高效率的源程序。

(3)系统工作稳定。上电复位后,系统能够保证晶体振荡器有足够的起振及稳定时间,然后可由软件设置适当的寄存器的控制位来确定最后的系统时钟频率。如果程序跑飞,可用“看门狗”将其复位。

(4)方便高效的开发环境。目前主要应用的MSP430F43X系列内部采用Flash型存储器,具有十分方便的开发调试环境。因为器件片内有JTAG调试接口,还有可电擦写的Flash存储器,因此可先将程序下载到Flash内,然后在器件内通过软件控制程序的运行,由JTAG接口读取片内信息,以供设计者调试和开发。这种方式只需要一台PC和一个JTAG调试器,不需要仿真器和编程器。在开发语言方面,可以采用汇编语言或者C语言。

(5)MSP430系列器件均为工业级的,运行环境温度为−40℃~+85℃。

MSP430系列单片机的各成员都集成了较为丰富的片内外设,其基本结构包括看门狗(WDT)、2个定时器(TimerA和TimerB)、比较器、2个串口(UART0和UART1)、硬件乘法器、液晶驱动器、10位/12位ADC、最多达6×8条I/O口线、基本定时器(Basic Timer)。以上外围模块再加上多种存储器方式就构成了不同型号的MSP430微控制器。MSP430F43X系列单片机内部结构框图如图1-5所示。

图1-5 MSP430F43X系列单片机内部结构框图

MSP430系列单片机的开发软件较多,但常用的是IAR公司的集成开发环境,即IAR Embedded Workbench嵌入式工作台以及调试器C-SPY。下面将进行简单介绍。

IAR Embedded Workbench为开发不同的目标处理器的项目提供强有力的开发环境,并为每一种目标处理器提供工具。IAR Embedded Workbench使用项目模式来组织应用程序,它有如下一些特点:

(1)可以在Windows环境下运行,分层的项目表示,直观的用户界面。

(2)工具与编辑器全集成,全面的超文本帮助。

(3)可以同时编辑汇编语言和C语言源文件,汇编语言程序和C语言程序的句法可用文本格式和颜色加以区别显示。

(4)具有强有力的搜索和置换命令,而且可以多个文件搜索,从出错列表直接跳转到出错的相关文件的相关语句。

(5)可以设置在出错语句前标志;圆括号匹配;自动缩进,可以设置自动缩进的空格;每个窗口的多级取消与恢复。

目前MSP430系列的型号已经达到100多种,可以适用于不同的产品开发需要。总之,单片机的最大特点是单片化,体积小,功耗和成本低,非常适合用于进行计算机控制、家用电器、智能装置、仪器仪表等领域,因此也被称为微控制器MCU。

1.2.2 嵌入式微处理器

嵌入式微处理器(Embedded Micro Processor,简称EMPU或者MPU)是嵌入式系统的核心部件,其内部由32位运算器、控制器、寄存器组和部分存储器组成。与通用微处理器不同的是:在实际嵌入式应用中,其内部只保留和嵌入式应用紧密相关的功能硬件,去除了其他冗余功能的部分,这样就能够以最低的功耗和资源满足嵌入式应用的特殊要求。

1.概述

嵌入式微处理器系统的功能和标准与通用微处理器基本类似,只是在工作温度、抗电磁干扰、可靠性等方面专门做了适当的增强。与工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。主流的嵌入式微处理器芯片有基于ARM(Advanced RISCMachines Limited)、Am186/88、PowerPC、68000、MIPS等系列的产品。具有32位体系结构嵌入式微处理器的性能优势如下:

1)寻址空间大

在ARM的体系结构里,所有的资源,如存储器、控制寄存器、I/O端口等都是在有效的地址空间内进行统一编址的,方便程序在不同处理器间的移植。

2)运算和数据处理强

采用了先进的CPU设计理念、多总线接口(哈佛结构)、多级流水线、高速缓存、数据处理增强等技术,这样使得C、C++、Java等高级语言得到了广泛的应用空间,几乎所有的通信协议栈都能在32位CPU中实现。另外,多数的微处理器都包含有DMA控制器,这样就进一步提高了整个芯片的数据能力。

3)支持操作系统

如果某个系统有多任务的调度、图形化的人机界面、文件管理系统、网络协议等需求,那么就必须使用嵌入式操作系统。一般复杂的操作系统在多进程管理中还需要有硬件存储器保护单元或内存管理单元(MMU)的支持,目前ARM9以上的微处理器均有这些支持,可运行Linux、WinCE和VxWorks等多种嵌入式操作系统。

目前,ARM系列的嵌入式微处理器有ARM7、ARM9、ARM10和ARM11相关产品系列。在ARM体系架构的每个系列微处理器都提供一套特定的配置来满足设计者对功耗、性能和体积的需求。基于ARM体系架构的微处理器一般是由32位ALU、37个通用寄存器及状态寄存器、32位桶形移位寄存器、指令译码及控制逻辑、指令流水线和数据/地址寄存器等部件组成的。ARM系列微处理器内部结构如图1-6所示。

下面,以基于ARM9系列由韩国三星公司生产的嵌入式微处理器S3C2410作为实例予以介绍,以便读者更好地了解MPU。

S3C2410 微处理器是韩国三星电子公司推出的基于ARM920T内核的RISC嵌入式微处理器。该微处理器主要面向便携式设备以及高性价比、低功耗的应用,内部采用0.18μm CMOS制造工艺和新的总线结构。

图1-6 ARM系列微处理器内部结构原理图

ARM920T内核由ARM9TDMI、内存管理单元MMU和高速缓存三部分组成,其中,MMU可以管理虚拟内存,高速缓存由独立的16 KB地址和16 KB数据高速Cache组成。S3C2410微处理器主要性能如下:

● MCU采用ARM920T核,主频高达203MHz;

● 32位SDRAM容量16 MB、32 MB、64 MB可选,32位Flash容量4 MB、16 MB可选;

● USB分为主(HOST)、从(SLAVE)两个接口;

● 有三个UART串行接口;

● 电源输入+5~+9V,输出为+3.3V和+1.8V;

● LCD控制器支持STN和TFT形式;

● 具有4路DMA通道;

● 8通道10位ADC接口和触摸屏控制接口;

● 具有4路PWM和一路内部定时器、看门狗电路;

● 支持MMC和SMC卡;

● 具有117路I/O端口和24路外部中断端口;

● 芯片采用272引脚FBGA封装形式。

2.S3C2410微处理器内部结构组成

S3C2410微处理器内部结构主要由ARM920T核和片内外设两大部分构成。片内外设可具体分为高速外设和低速外设,分别连接在AHB高速总线和APB外设总线。S3C2410微处理器片内外设结构部分如图1-7所示。

图1-7 S3C2410微处理器片内外设结构图

S3C2410微处理器支持七种操作模式(可以由软件进行配置),它们分别为用户执行模式(USR)、快速数据传输和通道处理模式(FIQ)、通用中断处理模式(IRQ)、操作系统保护模式(SVC)、操作系统任务模式(SYS)、数据或指令预取失效模式(ABT)和执行未定义指令模式(UND)。对这些操作模式的支持,使得ARM可以支持虚拟存储器机制,支持多种特权模式,从而使其可以运行多种主流的嵌入式操作系统。

微处理器内部共有37个32位寄存器,其中包含30个通用寄存器,6个状态寄存器(1个专用于记录当前状态,5个备用于记录状态切换前的状态),1个程序计数器PC。针对处理器的七种不同的工作模式,它们都有一组相应的寄存器与之对应使用。

S3C2410内部集成了具有日历功能的实时时钟(Real Time Clock,RTC)和锁相环电路(PLL)的时钟发生器。其中,RTC给CPU提供精确的当前时刻,它在系统停电的情况下由后备电池供电继续工作。RTC需要外接一个32.768kHz的石英晶体振荡器,作为实时时钟的基准信号源。另外,系统外接的20MHz石英振荡器通过锁相环电路产生MPLL作为系统主时钟,这样微处理器工作频率可高达到203MHz(内核电压增加到2.0V时工作频率最高可达266MHz)。

S3C2410的存储管理器提供访问外部存储器的所有控制信号,具体为26位地址信号、32位数据信号、8个片选信号,以及读/写控制信号等。

S3C2410微处理器内部的中断控制器总共支持56个中断源,这些中断请求可由S3C2410内部功能模块(如DMA控制器、UART、I2C等)或者外部引脚信号产生。每个中断源都可以被任意定义快速数据处理模式(FIQ)和通用中断处理模式(IRQ)方式。

S3C2410具有4个通道的DMA控制器,它们位于系统总线和外设总线之间。DMA的主要优点是可以不通过CPU的中断来实现数据的传输,DMA的运行可以通过软件或者通过外围设备的中断和请求来初始化。每个DMA通道都有4个DMA请求源,通过设置可以从中挑选一个服务。

3.系统的启动方式

从编程的角度看,S3C2410微处理器可以工作在两种状态:一种为ARM工作状态,此时处理器执行32位的字对齐的ARM指令;另一种为Thumb工作状态,此时处理器执行16位的、半字对齐的Thumb指令。值得注意的是,ARM微处理器在工作期间,也可在这两种模式之间切换。

S3C2410微处理器本身具有三种启动方式,由OM[l:0]引脚选择:当引脚为00时处理器从NAND Flash启动;为01时从16位宽的ROM启动;为10时从32位宽的ROM启动。用户可以将Bootloader代码和操作系统镜像放在外部的NAND Flash中,采用NAND Flash启动方式。在这种情况下,由于S3C2410处理器在片内集成了一个4 KB的内部SRAM,微处理器上电复位时,通过内置的控制器将位于NAND Flash前4 KB位置的Bootloader代码自动加载到片内的4 KB boot SRAM中,并开始运行Bootloader程序,将操作系统的镜像加载到SDRAM。启动完毕后,4 KB boot SRAM就可以用于其他用途。

1.2.3 嵌入式DSP处理器

数字信号处理器(Digital Signal Processor,DSP)是专门用于信号处理方面的处理器。DSP在系统结构和指令算法方面进行了特殊设计,编译效率较高,指令执行速度也很快。DSP的理论算法在20世纪70年代就已经出现,在1982年世界上诞生了首枚DSP芯片。

目前DSP处理器已得到了快速的发展和应用,特别是在运算量较大的智能化系统中。比如在需要进行数字滤波、FFT、频谱分析等运算的各种仪器上,DSP中就得到了大规模的应用。另外,DSP还应用于各种带有智能逻辑的消费产品、生物信息识别终端、带加密算法的键盘、实时语音压缩和解压系统、虚拟现实显示等的信息处理方面。某些对实时性、计算强度要求较高的场合也使用DSP。随着DSP的运算速度进一步提高,应用领域也从上述范围扩大到了通信和计算机方面。

DSP处理器经过单片化、EMC改造、增加片上外设成为嵌入式DSP处理器,如TI公司的TMS320C2000/C5000/6000等属于此范畴。

1.2.4 嵌入式片上系统

嵌入式片上系统(System On Chip,SOC)就是一种电路系统。随着电子设计自动化(EDA)的推广和超大规模集成电路(VLSI)设计的普及化及半导体工艺的迅速发展,在一个硅片上实现一个更为复杂系统的时代已经来临。各种通用处理器内核将作为SOC设计公司的标准库,和许多其他嵌入式系统外设一样,成为VLSI设计中标准的器件。采用标准的超高速集成电路硬件描述语言(VHDL)等语言描述,存储在器件库中。用户只须定义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。这样除个别无法集成的器件以外,整个嵌入式系统均可集成到一块或几块芯片中去,应用系统电路板将变得很简洁,对于减小体积和功耗、提高可靠性非常有利。SOC可分为通用和专用两类。

SOC内部由许多功能模块组成,并将它们集成做在一个芯片上。例如,将微处理器核心电路再加上一些通信接口单元,如通用串行端口(USB)、TCP/IP通信单元、GPRS通信接口、GSM通信接口、IEEE1394、蓝牙模块接口等集成在一起,做在一个片上即可构成SOC系统。

SOC是追求产品系统最大包容的集成器件,最大的特点是成功实现了软、硬件无缝结合,可以直接在处理器片内嵌入操作系统的代码模块。SOC可以运用VHDL等硬件描述语言进行系统设计,不像传统的硬件系统设计要绘制庞大、复杂的电路板,再对元器件进行逐一焊接。而是只需要使用精确的编程语言,综合时序设计可直接在器件库中调用各种通用处理器的标准,然后通过仿真之后就可以直接交付芯片厂商进行生产。

目前,SOC在声音、图像、影视、网络及系统逻辑等应用领域中发挥了重要作用。采用SOC所具有的其他好处还有很多,比如利用改变内部工作电压,降低了芯片功耗;减少了芯片对外的引脚数,简化制造过程;减少了外围驱动接口单元及电路板之间的信号传递,可以加快微处理器数据处理的速度;内嵌的线路可以避免外部电路板在信号传递时所造成的系统杂乱信息;减小了体积和功耗,而且提高了系统的可靠性和设计生产效率等优点。