田泽-嵌入式系统开发与应用教程第1章_第1页
田泽-嵌入式系统开发与应用教程第1章_第2页
田泽-嵌入式系统开发与应用教程第1章_第3页
田泽-嵌入式系统开发与应用教程第1章_第4页
田泽-嵌入式系统开发与应用教程第1章_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章

嵌入式系统开发与应用基础综述第一章

嵌入式系统开发基础本章主要内容:嵌入式系统嵌入式系统的硬件组成及开发嵌入式系统的软件组成及开发嵌入式技术的发展嵌入式系统嵌入式系统是嵌入到对象体中以嵌入式计算机为核心的专用计算机系统。以嵌入式计算机为核心的嵌入式系统是继IT网络技术之后,又一个新技术发展方向。IEEE(国际电气和电子工程师协会)对嵌入式系统的定义为:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(原文为devicesusedtocontrol、monitor、orassisttheoperationofequipment、machineryorplants)。这主要是从应用对象上加以定义,涵盖了软、硬件及辅助机械设备。国内普遍认同的嵌入式系统定义为:以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。相比较而言,国内的定义更全面一些,体现了嵌入式系统的“嵌入”、“专用性”、“计算机”的基本要素和特征

嵌入式系统的特点嵌入式系统与通用的计算机系统相比具有以下显著特点:“专用”计算机系统运行环境差异很大比通用PC系统资源少的多功耗低、体积小、集成度高、成本低具有完整的系统测试和可靠性评估体系具有较长的生命周期需要专用开发工具和方法进行设计包含专用调试电路多学科知识集成系统

嵌入式系统的应用范围不断发展的嵌入式应用嵌入式应用嵌入式系统的组成结构嵌入式系统是专用计算机应用系统,它具有一般计算机系统组成的共性,也是由硬件和软件组成的嵌入式计算机和具体应用相关的技术组成。下图描述了一个典型的嵌入式计算机的软、硬件各部分的组成体系结构,应用技术的繁杂性决定了它无法用一个相对统一的模式组成表达。嵌入式系统的组成结构应用程序实时操作系统(RTOS)输入输出接口处理器/ARM核MMU/CacheSOC/SOPCUSBGPIOIISLCDUART和IrDAADC/DACFPGA/CPLDDSP/浮点运算协处理器DMA电源管理典型的嵌入式系统组成人机交互接口LCD/触摸屏、键盘、鼠标设备驱动程序、HAL、BSP文件系统/图形用户应用程序接口驱动层OS层应用层软件硬件以太网看门狗及复位电路Timer/RTCCANFlashEEPROMSDRAMSRAM内存嵌入式系统开发基本流程面向具体应用的嵌入式开发决定了嵌入式开发的方法、流程各有不同,这里仅给出一般的嵌入式开发的具体过程:系统定义与需求分析阶段方案设计阶段详细设计阶段软硬件集成测试阶段系统功能性能测试及可靠性测试阶段开发流程图

嵌入式系统的知识体系下图给出了嵌入式系统的知识体系和结构嵌入式系统硬件组成及开发嵌入式系统的硬件是以嵌入式处理器或微处理器核为核心的SoC/SOPC,配置必要的外围接口部件。嵌入式处理器典型32位嵌入式处理器介绍嵌入式SoC/SOPC嵌入式外围接口电路和设备接口嵌入式处理器嵌入式微处理器(Microprocessor)嵌入式微控制器MCU(MicrocontrollerUnit)嵌入式DSP(DigitalSignalProcessor)SoC/SOPC典型32位嵌入式处理器32位嵌入式RISC处理器产品主要有IBM公司的PowerPC系列处理器(核)芯片、MIPS公司的MIPS、Sun公司的Sparc和ARM公司的基于ARM核系列。MIPS处理器PowerPC处理器Sparc处理器ARM处理器Xtensa系列可配置处理器嵌入式SoC/SOPC嵌入式SoC20世纪90年代后,嵌入式系统设计从以嵌入式微处理器/DSP为核心的“集成电路”级设计转向“集成系统”级设计,提出了SoC的基本概念,嵌入式系统已进入基于SoC的开发阶段。下面是2008年由作者为课题负责人成功研制的两款SoC芯片。SoC1553系统架构

SoC-FC系统架构用可编程逻辑技术把整个系统放到一块硅片上,称作可编程片上系统SOPCSOPC是一种特殊的嵌入式系统:首先它是SoC,即由单个芯片完成整个系统的主要逻辑功能,具有一般SoC的基本属性;其次,它又具备软硬件在系统可编程的功能,是可编程系统,具有可裁减、可扩充、可升级等灵活的设计方式;SOPC技术是可编程逻辑器件在嵌入式应用中的完美体现。SOPC结合了SoC和PLD、FPGA各自的优点。嵌入式SOPC

SOPC基本特征:实现复杂系统功能的VLSI;采用超深亚微米工艺技术;使用一个以上的嵌入式处理器/DSP;外部可以对芯片进行编程;主要采用第三方IP进行设计;足够的片上可编程逻辑资源;具有处理器调试接口和FPGA编程接口;可能包含部分可编程模拟电路;单芯片、低功耗、微封装。

SOPC技术基础超大规模可编程逻辑器件及其开发工具的成熟;FPGA密度提高;FPGA制造成本大大下降;FPGA设计、综合、仿真、测试工具功能及性能快速发展。微处理器/DSP以IP核的形式方便的嵌入到FPGA中;基于IP核的开发模式深入人心。嵌入式SOPC的优点SOPC是PLD和SoC技术融合的结果,具有设计费用低、风险小、开发周期短、灵活性好等优点。目前的SoC产品设计、制造价格仍然相当昂贵,相反,信号处理算法、软件算法模块、控制逻辑等均可以IP核形式体现,并集成了硬核或软核CPU、DSP、存储器、外围I/O及可编程逻辑的SOPC芯片,在应用的灵活性及价格上都具有极大的优势,因此SOPC被业界称为“半导体产业的未来”。主流SOPCAltera

Altera设计开发了基于其可编程逻辑器件的处理器内核-Nios系列,目前最新产品是NiosII。Nios

II采用了基于RISC架构的32位指令集。ActelActel公司的CoreMP7软IP核是专门为Actel公司的FPGA优化的ARM7系列处理器核,与ARM7TDMI-S兼容。Xilinx嵌入式外围接口电路和设备接口嵌入式外围设备,是指在一个嵌入式系统硬件构成中,除了核心控制部件嵌入式微处理器/DSP(或以嵌入式微处理器/DSP为核心的微控制器、SoC)以外的各种存储器、输入/输出接口、通信接口、设备扩展接口以及供电电源等,各种外设通过数据线、地址线、控制信号与微处理器/DSP核心部件连接。根据外围设备的功能可分为以下5类存储器类型输入输出设备通信接口设备扩展接口电源及辅助设备存储器类型:

存储器是嵌入式系统中存储数据和程序的功能部件,目前常见的存储设备类型分为:易失性存储器:随机存储器(RandomAccessMemory,RAM)。按照存储机制的不同,RAM又可以分为动态RAM(DynamicRAM,DRAM)和静态RAM(StaticRAM,SRAM)。非易失性存储器:只读存储器(Memory,ROM)、FLASH和NvRAM。输入输出设备输入输出设备是人机交互的界面。通常,输入设备可分为以下三类:机械式输入设备:包括键盘、鼠标、手柄等,通过机械传送方式产生输入信号与系统进行交互。触控式输入设备:典型产品为触摸屏。按照触摸屏工作原理和传输信息介质,触摸屏可分为电阻式、电容感应式、红外线式和表面声波式。声光式输入设备:该类输入设备可以通过收集声音信号或者光信号,再转换为CPU可处理的数字信号完成数据输入。输出设备:嵌入式系统中的输出设备除了通用计算机系统中常见的显示器、打印机、绘图仪外,还包括LED指示灯、扬声器等。通信接口通信接口是嵌入式系统与其它设备或系统进行数据交换的通道。嵌入式系统设计时应根据应用环境确定通信接口。各通信接口的电气性能存在差异,主要常用的通信接口包括:RS-232C串行接口RS-422串行通信接口RS-485串行通信接口USB接口IEEE1394接口以太网接口蓝牙接口IEEE802.11无线接口IrDA接口JTAG接口设备扩展接口

设备扩展接口主要用于系统升级时或对现有通信接口扩展时使用。目前一些高端的嵌入式系统都会预留可扩展存储设备接口,为日后用户有特别需求时,可购买符合扩展接口规格的装置直接接入系统使用。常用的扩展卡还有各种CF卡、SD卡、MemoryStick等。目前高端的嵌入式系统都留有一定的扩展卡接口。电源及辅助设备嵌人式系统力求外观小型化、重量轻以及电源使用寿命长,例如移动电话或PDA,体积较大或者过重的机型已经被淘汰。目前发展的目标是体积小、易携带和外观设计新颖等。在便携式嵌入式系统的应用中,必须特别关注电源装置等辅助设备。嵌入式硬件开发

嵌入式系统的硬件开发通常采用的是一种自顶向下的开发方式,即从用户提出的需求出发,对需求和功能及技术要求进行分析,制定设计方案,逐步细化并实现的过程。硬件设计一般遵循如下步骤:需求和功能分析设计方案的规划核心部件选型主要部件选型(主要部件主要是存储器、测试接口、外设接口等)基础部件选型(基础部件指系统设计所需的电源电路、时钟电路、复位电路、低功耗电路等)原理图设计PCB设计系统调试产品维护和升级嵌入式软件组成及开发嵌入式软件是针对特定应用的、基于相应的硬件平台、为完成用户预期任务而设计的计算机软件。嵌入式软件的层次结构:对于使用操作系统的嵌入式系统来说,嵌入式系统软件结构一般包含四个层面:板级支持包、实时操作系统(RTOS)层、应用程序接口(API)层、应用程序层。有些资料将应用程序接口API归属于OS层,是按三层划分的。

嵌入式操作系统操作系统与嵌入式操作系统嵌入式实时操作系统嵌入式操作系统基本管理功能典型嵌入式操作系统介绍操作系统与嵌入式操作系统嵌入式操作系统是嵌入式应用软件的基础和开发平台,它是一段嵌入在目标代码中的软件,用户的其它应用程序都建立在操作系统之上。嵌入式操作系统大部分是实时操作系统RTOS,RTOS是一个可靠性和可信度很高的实时内核,将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API,并根据各个任务的优先级,合理地在不同任务之间分配CPU时间。嵌入式实时操作系统嵌入式系统一般具有实时特点。所谓实时系统,是指一个能够在指定或者确定的时间内完成系统功能和对外部或内部、同步或异步时间做出响应的系统。嵌入式实时操作系统(RealTimeEmbeddedOperatingSystem)是一种实时的、支持嵌入式系统应用的操作系统,是嵌入式系统(包括硬、软件系统)极为重要的组成部分。RTOS嵌入在系统的目标代码中,系统复位并执行完BootLoader后执行,用户的其它应用程序都建立在RTOS之上。RTOS是一个标准的内核,将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API接口。实时操作系统可以根据实际应用环境的要求对内核进行剪裁和重新配置,组成可根据实际的不同应用领域而有所不同。但以下几个重要组成部分是不太变化的:实时内核、网络组件、文件系统和图形接口等。RTOS体系结构图应用程序驱动程序、硬件抽象层、Boot文件系统/图形用户接口BSPOS层应用层扩展模块基本模块进程调度内存管理调度文件管理进程调度OS核图形驱动数据库模块应用程序接口(API)

硬件(Hardware)网络模块调度嵌入式操作系统基本管理功能目前大多数的嵌入式操作系统必须提供以下管理功能:多任务管理存储管理周边资源管理中断管理嵌入式操作系统的种类繁多,但大体分为两种——商用型和免费型。目前商用型的操作系统主要有VxWorks、WindowsCE、Psos、PalmOS、OS-9、LynxOS、QNX、LYNX等。目前免费型的操作系统主要有Linux和µC/OS-II。典型嵌入式操作系统介绍

几种常用的嵌入式操作系统µC/OS-II嵌入式操作系统WinCE操作系统VxWorks嵌入式实时操作系统Linux操作系统µC/OS-II嵌入式操作系统µC/OS-II是一个可裁减的、源码开放的、结构小巧、可剥夺型的实时多任务内核,主要面向中小型嵌入式系统,具有执行效率高、占用空间小、可移植性强、实时性能优良和可扩展性强等特点。µC/OS-II中最多可以支持64个任务。µC/OS-II最大程度上使用ANSIC语言开发,现已成功移植到近40多种处理器体系上。µC/OS-II嵌入式操作系统µC/OS-II结构小巧,最小内核可编译至2k(这样的内核没有太大实用性),即使包含全部功能如信号量、消息邮箱、消息队列及相关函数等,编译后的µC/OS-II内核也仅有6~10kb,所以它比较适用于小型控制系统。µC/OS-II具有良好的扩展性能。WinCE操作系统MicrosoftWindowsCE是针对有限资源的平台而设计的多线程、完整优先权、多任务的操作系统,但它不是一个硬实时操作系统

高度模块化是WinCE的一个鲜为人知的特性。WinCE操作系统的基本内核需要至少200K的ROM,它支持

Win32API子集、多种用户界面硬件、多种的串行和网络通讯技术、COM/OLE和其他的进程间通讯的先进方法。VxWorks嵌入式实时操作系统VxWorks实时操作系统是基于微内核结构,可裁剪的高性能强实时操作系统。目前VxWorks操作系统的版本为VxWorks6.7,其核心功能主要有:微内核wind任务间通信机制网络支持文件系统和I/O管理POSIX标准实时扩展C++以及其他标准支持支持对称多处理(SymmetricMultiprocessing,

SMP)和非对称多处理(SymmetricMultiprocessing,AMP)Flash媒体管理VxWorks的主要特点:VxWorks具有高度可剪裁的微内核结构。VxWorks能进行高效的多任务调度。VxWorks6.4通过了POSIX1003.13PES52标准认证,可以应用与航天和国防电子领域。VxWorks6.7增加了对更多硬件构架(包括ARM、PowerPC、IntelAllagash等)的支持,以及提供针对多核处理器SMP、AMP的支持。

VxWorks嵌入式操作系统的最初集成开发环境Tornado新一代Workbench开发平台继承了其原有的Tornado集成开发平台的一贯优势,并且功能更加强大。目前Workbench已经升级到3.0版本,提供了对更多处理器的支持(包括ARMCortexA8、FreescaleiMX27、MarvellPXA等新型处理器)并且增强了对移动中断的支持。VxWorks的应用程序开发Linux类似于UNIX,是一种免费的、源代码完全开放的、符合POSIX标准规范的操作系统。Linux拥有现代操作系统所具有的内容:真正的抢先式多任务处理、支持多用户、内存保护、虚拟内存、支持对称多处理机SMP(symmetricmultiprocessing)、符合POSIX标准、支持TCP/IP、支持绝大多数的32位和64位CPU。Linux操作系统

嵌入式Linux版本众多,如支持硬实时的Linux-RT-Linux/RTAI、Embedix、BlueCatLinux和HardHatLinux等,现在仅简要介绍应用广泛的µClinux。µClinuxµClinux是针对无MMU微处理器开发的,已经被广泛使用在ColdFire、ARM、MIPS、SPARC、SuperH等等没有MMU的微处理器上。虽然µClinux的内核要比原Linux2.0内核小的多,但保留了Linux操作系统稳定性好,网络能力优异以及对文件系统的支持等主要优点。µClinuxµClinux同标准Linux的最大区别在于内存管理。标准Linux是针对有MMU的处理器设计的,在这种处理器上,虚拟地址被送到MMU,把虚拟地址映射为物理地址。通过赋予每个任务不同的虚拟--物理地址转换映射,支持不同任务之间的保护。对于µClinux来说,其设计针对没有MMU的处理器,不能使用虚拟内存管理技术。µClinuxµCLinux对内存的访问是直接的,即它对地址的访问不需要经过MMU,而是直接送到地址线上输出,所有程序中访问的地址都是实际的物理地址,µCLinux对内存空间不提供保护,各个进程实际上共享一个运行空间。在实现上,µCLinux仍采用存储器的分页管理,系统在启动时把实际存储器进行分页,在加载应用程序时,程序分页加载。但是由于没有MMU管理,所以µCLinux采用实存储器管理策略(realmemeorymanagement)。嵌入式软件开发1.嵌入式软件开发的特点和技术挑战2.嵌入式软件开发环境3.嵌入式应用软件开发的基本流程4.嵌入式软件开发的可移植性和可重用性1.嵌入式软件开发的特点和技术挑战开发的复杂度嵌入式软件开发需要软硬件开发环境和工具嵌入式软硬件必须协同设计需要新的任务设计方法需要转变观念,熟悉新的开发模式开发过程完成后,系统应用程序代码需要固化到系统中进行功能、性能和可靠性测试技术挑战:技术门槛提高,需要学习全新的RTOS技术;软件的要求更高,开发工作量和难度更大2.嵌入式软件开发环境嵌入式开发环境组成交叉开发环境软件模拟环境目标板与评估板

交叉开发环境嵌入式系统应用软件的开发属于跨平台开发,因此需要一个交叉开发环境。交叉开发是指在一台通用计算机上进行软件的编辑编译,然后下载到嵌入式设备中运行调试的开发方式,它通常采用宿主机/目标机模式。用来开发的通用计算机可以选用比较常见的PC机等,运行通用的Windows等操作系统。开发计算机一般称宿主机,嵌入式设备称为目标机,在宿主机上编译好的程序,下载到目标机上运行,交叉开发环境提供调试工具对目标机上运行的程序进行调试。交叉开发环境交叉开发环境一般由运行于宿主机上的交叉开发软件、宿主机到目标机的调试通道组成。运行于宿主机上的交叉开发软件最少必须包含编译调试模块,其编译器为交叉编译器。作为宿主机的一般为基于x86体系的桌上型计算机,而编译出的代码必须在目标机处理器体系结构上运行,这就是所谓的交叉编译了。在宿主机上编译好目标代码后,通过宿主机到目标机的调试通道将代码下载到目标机,然后由运行于宿主机的调试软件控制代码在目标机上运行调试。组成嵌入式交叉开发环境的宿主机到目标机的调试通道一般有以下四种在线调试(On-ChipDebugging,OCD)或在线仿真(On-ChipEmulator)在线仿真器ICE(In-CircuitEmulator)ROM监控器(ROMmonitor)ROM仿真器(ROMEmulator)软件模拟环境也称为指令集模拟器IIS(InstructionSetSimulator),在很多时候为保证项目进度,硬件和软件开发往往同时进行,这时作为目标机的硬件环境还没有建立起来,软件的开发就需要一个模拟环境来进行调试。模拟开发环境建立在交叉开发环境基础之上,是对交叉开发环境的补充。这时,除了宿主机和目标机之外,还需要提供一个在宿主机上模拟目标机的环境,使得开发好的程序直接在这个环境里运行调试。软件模拟环境

应用目标板是系统最终的电路板。评估板一般用来作为开发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论