开发板(demo board)是用来进行嵌入式系统开发的电路板,包括中央处理器、存储器、输入设备、输出设备、数据通路/总线和外部资源接口等一系列硬件组件。开发板一般由嵌入式系统开发者根据开发需求自己订制,也可由用户自行研究设计。开发板是为初学者了解和学习系统的硬件和软件,同时部分开发板也提供的基础集成开发环境和软件源代码和硬件原理图等。常见的开发板有51、ARM、FPGA、DSP开发板。
基本介绍
开发板一般由嵌入式系统开发者根据开发需求自己订制,也可由用户自行研究设计。在一般的嵌入式系统开发过程中,硬件一般被分成两个平台,一个是
开发平台(host),一个是目标平台(target)即开发板。在此描述的开发平台指的是使用计算机,通过传输的界面,例如串口(
RS-232)、USB、
并口、或者网络(Ethernet)与目标平台连接。
选型要求
嵌入式系统开发,要先选定满足自己开发所需型号CPU、FPGA、DSP,其次根据选定型号的CPU、FPGA、DSP等选择支持选定芯片的开发板范围。再次,优选开发板提供的开发环境及
技术支持的能力和水平。最后还要考虑开发板板子除了集成CPU、FPGA、DSP等之外,还需要较完善输入及输出的界面,如键盘和
LCD,程序下载接口、内存(RAM)、FlashROM、
电源模块等。同时为了开发初期的调试方便,还会引出几个特殊的引脚,如JTAG接口、USB和串口等,以供外接的调试模块所使用。
开发移植
当硬件及规格选定完成后,接下来就是进入最开始的
系统开发与建立开发环境。如果项目所使用的
嵌入式操作系统不是自己开发,而是向其他厂商购买的话,大都提供集成式开发环境(
IDE)与
仿真器(Emulator)让开发者可以加速整个开发的过程。当你拿到的是系统厂商已经移植好的操作系统,并且确定有给予充分的相关资料之后,就可以针对自己的目标平台做集成的动作。
选定操作系统之后,通常都会指定开发平台上所使用的各项开发工具,例如
编译器、连接器等。开发时需要设置的编译参数会依据每个环境不同而有所差异。这个部分必须依据硬件规格与指示说明编译出一个可以运行的
映像文件,然后通过烧录工具烧录到目标平台上。
开发板分类
单片机
(1)51系列单片机
51
单片机已有多种型号, 8031/8051/8751是Intel公司早期的产品,而 ATMEL 公司的AT89C51、
AT89S52则更实用。ATMEL公司的51系列还有AT89C2051、AT89C1051等品种,这些芯片是在AT89C51的基础上将一些功能精简掉后形成的精简版。而市场上供货比较足的芯片还要算ATMEL 的51、52 芯片, HYUNDAI 的GMS97 系列,WINBOND 的78e52,78e58,77e58 等。
(2)PIC系列单片机
在全球都可以看到PIC单片机从电脑的
外设、家电控制、电讯通信、智能仪器、
汽车电子到金融电子各个领域的广泛应用。PIC系列单片机又分:基本级系列,如PIC16C5X,适用于各种对成本要求严格的家电产品选用;中级系列,如PIC12C6XX,该级产品其性能很高,如内部带有A/D变换器、E2PROM数据
存储器、
比较器输出、
PWM输出、I2C和SPI等接口;PIC中级
系列产品适用于各种高、中和低档的电子产品的设计中。高级系列,如PIC17CXX 具有丰富的I/O控制功能,并可外接扩展EPROM和RAM,适用于高、中档的
电子设备中使用。
(3)AVR系列单片机
AVR单片机是1997年由ATMEL公司研发出的增强型内置
Flash的RISC(Reduced Instruction Set CPU)
精简指令集高速8位单片机。AVR的单片机可以广泛应用于计算机
外部设备、工业
实时控制、仪器仪表、通讯设备、家用电器等各个领域。
(4)ARM开发板
ARM开发板是以ARM内核芯片的嵌入式
开发版,包括ARM7,
ARM9,
ARM11,Cortex-M,Cortex-A,Cortex-R三个系列的内核而成的开发板,主要特点是速度快,
库文件统一,并且有利于进行开发。包括ATMEL,NXP,ST,Freescale等芯片都推出了基于ARM内核的芯片,和相应的开发板。
CPLDFPGA
CPLD(Complex Programmable Logic Device)复杂
可编程逻辑器件,是从
PAL和
GAL器件发展出来的器件,相对而言规模大,结构复杂,属于
大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的
数字集成电路。其基本设计方法是借助集成开发软件平台,用
原理图、
硬件描述语言等方法,生成相应的
目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的
数字系统。
许多公司如今都开发出了CPLD
可编程逻辑器件。比较典型的就是
Altera、
Lattice、Xilinx世界三大公司的产品,这里给出常用芯片: Altera EPM7128S(
PLCC84)、Lattice LC4128V (TQFP100)、Xilinx XC95108 (PLCC84)
FPGA是英文Field-Programmable Gate Array的缩写,即
现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为
专用集成电路(
ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件
门电路数有限的缺点。
FPGA的品种很多,有XILINX的XC系列、
TI公司的TPC系列、ALTERA公司的FIEX系列等。
DSP
DSP(digital signal processor)是一种独特的
微处理器,是以
数字信号来处理大量信息的器件。其工作原理是接收
模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他
系统芯片中把
数字数据解译回
模拟数据或实际环境格式。它不仅具有可编程性,而且其实时
运行速度可达每秒数以千万条复杂指令程序,远远超过
通用微处理器,是数字化电子世界中日益重要的
电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
主流的
DSP芯片主要有
TI公司的TI 2000系列、TI 5000系列、TI6000系列以及
ADI公司的ADI DSP系列。
ARM
ARM 即Advanced RISCMachines的缩写是对一类
微处理器的通称. ARM同时还是微处理器行业的一家知
名企业,设计了大量高性能、廉价、耗能低的RISC处理器、
相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/
教育类多媒体、DSP和移动式应用等。
ARM的主流分以下几类:
ARM7TDMI 应用于Game Boy Advance,
Nintendo DS,
iPodARM9TDMI Armadillo,GP32,GP2X(第一颗内核), Tapwave Zodiac(Motorolai. MX1);GP2X(第二颗内核)
ARM9E Nintendo DS,Nokia
N-GageConexant
802.11 chips;ST Micro STR91xF,
ARM11 Nokia N93,Zune,Nokia N800,NOKIA E72
Cortex Texas Instruments OMAP3; Broadcomis a user;Luminary Micro[3]
微控制器家族
MIPS
MIPS是世界上很流行的一种RISC处理器。MIPS的意思是“无内部互锁流水级的
微处理器”(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。
MIPS最早是在80年代初期由
斯坦福(Stanford)大学Hennessy教授领导的研究小组研制出来的。
MIPS公司的R系列就是在此基础上开发的RISC
工业产品的微处理器。这些系列产品为很多计算机公司采用构成各种工作站和
计算机系统。
可以说,MIPS是卖的最好的RISC CPU,从任何地方,如Sony, Nintendo的游戏机,Cisco的路由器和
SGI超级计算机,都可以看见MIPS产品在销售。和
英特尔相比,MIPS的授权费用比较低,也就为除英特尔外的大多数芯片厂商所采用。之后,
MIPS公司发生战略变化,开始以
嵌入式系统为重心,陆续开发了高性能、
低功耗的32位处理器内核(
core)MIPS324Kc与高性能
64位处理器内核MIPS64 5Kc。2000年,MIPS公司发布了针对MIPS32 4Kc的版本以及64位MIPS 64 20Kc处理器内核。
MIPS32
4KcTM 处理器是采用MIPS技术特定为
片上系统(System-On-a-Chip)而设计的高性能、低电压 32位MIPS RISC 内核。
MIPS 64 20Kc的浮点能力强,可以组成不同的系统,从一个处理器的Octane工作站到64个处理器的Origin 2000服务器;这种CPU更适合图形工作站使用。MIPS最新的R12000芯片已经在SGI的服务器中得到应用,其主频最大可达400MHz。
MIPS K系列
微处理器是仅次于ARM的用得最多的处理器之一(1999年以前MIPS是世界上用得最多的处理器),其
应用领域覆盖游戏机、路由器、
激光打印机、
掌上电脑等各个方面。 MIPS除了在手机中应用的比例极小外,在一般数字消费性、网络语音、个人娱乐、通信与商务
应用市场有着相当不错的成绩。而其应用最为广泛的应属家庭视听电器(包含机顶盒)、
网通产品以及汽车电子等方面。
PPC
PowerPC 是一种
精简指令集(RISC)架构的
中央处理器(
CPU),其基本的设计源自
IBM(国际商用机器公司)的POWER(Performance Optimized With Enhanced RISC;《IBM Connect 电子报》2007年8月号译为“增强RISC
性能优化”)架构。二十世纪九十年代,IBM(国际商用机器公司)、Apple(
苹果公司)和Motorola(
摩托罗拉)公司开发PowerPC芯片成功,并制造出基于PowerPC的多处理器计算机。PowerPC架构的特点是
可伸缩性好、方便灵活。
PowerPC 处理器有广泛的实现范围,包括从诸如 Power4 那样的高端服务器 CPU 到嵌入式 CPU 市场(
任天堂 Gamecube 使用了 PowerPC)。PowerPC 处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的
能量损耗以及较低的散热量。除了象串行和
以太网控制器那样的集成 I/O,该嵌入式处理器与“台式机”CPU 存在非常显著的区别。例如,4xx 系列 PowerPC 处理器缺乏
浮点运算,并且还使用一个受软件控制的
TLB 进行内存管理,而不是象台式机芯片中那样采用反转
页表。
构成部分
嵌入式微处理器
嵌入式系统硬件层的核心是
嵌入式微处理器,嵌入式微处理器与通用
CPU最大的不同在于嵌入式微处理器大多工作在为特定
用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式微处理器的
体系结构可以采用
冯·诺依曼体系或哈佛体系结构;
指令系统可以选用
精简指令系统(Reduced Instruction Set Computer,RISC)和
复杂指令系统CISC(Complex Instruction Set Computer,
CISC)。RISC计算机在通道中只包含最有用的指令,确保
数据通道快速执行每一条指令,从而提高了执行效率并使CPU硬件
结构设计变得更为简单。
嵌入式微处理器有各种不同的体系,即使在同一体系中也可能具有不同的
时钟频率和数据总线宽度,或集成了不同的外设和接口。据不完全统计,全世界嵌入式微处理器已经超过1000多种,体系结构有30多个系列,其中主流的体系有
ARM、
MIPS、
PowerPC、X86和
SH等。但与全球PC市场不同的是,没有一种
嵌入式微处理器可以主导市场,仅以32位的产品而言,就有100种以上的嵌入式微处理器。嵌入式微处理器的选择是根据具体的应用而决定的。
存储器
嵌入式系统需要
存储器来存放和执行代码。嵌入式系统的存储器包含Cache、
主存和
辅助存储器。
Cache是一种容量小、速度快的
存储器阵列它位于主存和
嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。在需要进行数据读取操作时,
微处理器尽可能的从Cache中读取数据,而不是从主存中读取,这样就大大改善了系统的性能,提高了微处理器和主存之间的
数据传输速率。Cache的主要目标就是:减小存储器(如主存和辅助存储器)给微处理器内核造成的存储器访问瓶颈,使
处理速度更快,
实时性更强。在嵌入式系统中Cache全部集成在嵌入式微处理器内,可分为数据Cache、指令Cache或混合Cache,Cache的大小依不同处理器而定。一般中高档的嵌入式微处理器才会把Cache集成进去。
主存是
嵌入式微处理器能
直接访问的
寄存器,用来存放系统和用户的程序及数据。它可以位于
微处理器的内部或外部,其容量为256KB~1GB,根据具体的应用而定,一般片
内存储器容量小,速度快,片
外存储器容量大。常用作主存的
存储器有:
ROM类
NOR Flash、
EPROM和
PROM等。
RAM类
SRAM、
DRAM和
SDRAM等。其中NOR Flash 凭借其可擦写次数多、存储速度快、
存储容量大、价格便宜等优点,在嵌入式领域内得到了广泛应用。
辅助存储器
辅助存储器用来存放大数据量的程序代码或信息,它的容量大、但读取速度与主存相比就慢的很多,用来长期保存用户的信息。
嵌入式系统中常用的外存有:硬盘、NAND Flash、CF卡、MMC和
SD卡等。
通用接口
嵌入式系统和外界交互需要一定形式的通用设备接口,如
A/D、D/A、I/O等,外设通过和片外其他设备的或传感器的连接来实现
微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外也可以内置芯片中。外设的种类很多,可从一个简单的串行
通信设备到非常复杂的
802.11无线设备。
嵌入式系统中常用的通用设备接口有A/D(模/数转换接口)、D/A(数/模转换接口),
I/O接口有
RS-232接口(串行通信接口)、Ethernet(
以太网接口)、
USB(通用串行总线接口)、
音频接口、
VGA视频
输出接口、
I2C(
现场总线)、
SPI(串行外围设备接口)和IrDA(
红外线接口)等。
硬件驱动
大部分嵌入式硬件都需要某种类型的软件进行初始化和管理。直接与一个硬件互相作用并控制这一硬件的软件称为设备
驱动程序(device driver)。所有需要软件的
嵌入式系统,在它们的系统软件层都需要设备驱动程序软件。设备驱动程序是初始化硬件的
软件库,它们管理着高层软件对硬件的访问,它是硬件与操作系统、
中间件和应用层之间联络的纽带。具体来说,这类驱动程序包括主处理器体系结构专用的功能性驱动程序、
存储器和存储器管理驱动程序、总线初始化和事务驱动程序、还有电路板层和主CPU层次的I/O初始化和控制驱动程序(如用于网络、图形、输入设备、
存储设备、调试I/O等)。
设备驱动程序通常划分为体系结构专用(architecture-specific)设备驱动程序和通用(generic)设备驱动程序。
体系结构专用设备驱动程序管理嵌入到主处理器(体系结构)中的硬件。体系结构专用驱动程序负责初始化主处理器内部的组件,这类驱动程序的具体事例包括片上存储器、集成的存储器管理器(
MMU)和浮点硬件的驱动程序。
通用设备驱动程序管理电路板上的硬件以及没有集成到主处理器中的硬件。在一个通用设备驱动程序中,通常包含一部分体系结构专用的
源代码,因为主处理器是中央
控制单元,要访问电路板上的任何组件通常都要经过主处理器。然而,通用
驱动程序也可以管理不被特定的处理器所专用的板级硬件,这就意味着一个通用驱动程序可以配置应用到许多体系结构中去,只要该结构中包含该驱动程序对应的硬件。通用驱动程序包含初始化和管理对电路板上剩余主要组件进行访问的代码,这些主要组件包括板级总线(I2C、
PCI、
PCMCIA等)、片
外存储器(控制器、2级以上
高速缓存、闪存等)和片外I/O(
以太网、RS-232、显示器、鼠标等)。
现状和趋势
信息时代,数字时代使得
嵌入式产品获得了巨大的发展契机,为嵌入式市场展现了美好的前景,同时也对嵌入式生产厂商提出了新的挑战,从中我们可以看出未来
嵌入式系统的几大
发展趋势:
1.嵌入式开发是一项系统工程,因此要求嵌入式系统厂商不仅要提供嵌入式软
硬件系统本身,同时还需要提供强大的
硬件开发工具和
软件包支持。
很多厂商已经充分考虑到这一点,在主推系统的同时,将
开发环境也作为重点推广。比如
三星在推广Arm7,Arm9芯片的同时还提供开发板和版及支持包(BSP),而WindowCE在主推系统时也提供Embedded VC++作为
开发工具,还有Vxworks的Tonado开发环境,DeltaOS的Limda编译环境等等都是这一趋势的典型体现。当然,这也是
市场竞争的结果。
2.网络化、信息化的要求随着因特网技术的成熟、带宽的提高日益提高,使得以往单一功能的设备如电话、手机、冰箱、
微波炉等功能不再单一,结构更加复杂。
这就要求芯片设计厂商在芯片上集成更多的功能,为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位RISC芯片或
信号处理器DSP增强处理能力,同时增加功能接口,如
USB,扩展总线类型,如CAN BUS,加强对多媒体、图形等的处理,逐步实施
片上系统(SOC)的概念。软件方面采用实时
多任务编程技术和交叉开发工具技术来控制功能复杂性,简化
应用程序设计、保障
软件质量和缩短开发周期。如
HP未来的
嵌入式设备为了适应
网络发展的要求,必然要求硬件上提供各种网络通信接口。传统的
单片机对于网络支持不足,而新一代的嵌入式处理器已经开始内嵌
网络接口,除了支持
TCP/IP协议,还有的支持
IEEE1394、USB、CAN、
Bluetooth或IrDA
通信接口中的一种或者几种,同时也需要提供相应的通信组网协议软件和
物理层驱动软件。软件方面系统系统内核支持网络模块,甚至可以在设备上嵌入
Web浏览器,真正实现随时随地用各种设备上网。
4.精简系统内核、算法,降低功耗和软硬件成本。
未来的
嵌入式产品是软硬件紧密结合的设备,为了减低功耗和成本,需要设计者尽量精简系统内核,只保留和
系统功能紧密相关的软硬件,利用最低的资源实现最适当的功能,这就要求设计者选用最佳的编程模型和不断改进算法,优化
编译器性能。因此,既要软件人员有丰富的硬件知识,又
需要发展先进嵌入式软件技术,如
Java、Web和
WAP等。
嵌入式设备能与用户亲密接触,最重要的因素就是它能提供非常友好的
用户界面。图像界面,灵活的
控制方式,使得人们感觉嵌入式设备就象是一个熟悉的老朋友。这方面的要求使得嵌入式软件设计者要在
图形界面,
多媒体技术上痛下苦功。手写文字输入、语音
拨号上网、
收发电子邮件以及彩色图形、图像都会使使用者获得自由的感受。一些先进的PDA在
显示屏幕上已实现汉字写入、
短消息语音发布,但一般的嵌入式设备距离这个要求还有很长的路要走。