1一、嵌入式系统开发的基础知识1.嵌入式系统的特点、分类、发展与应用,熟悉嵌入式系统的逻辑组成。(1)特点:专用性隐蔽性(嵌入式系统是被包装在内部)资源受限(要求小型化、轻型化、低功耗及低成本,因此软硬件资源受到限制)高可靠性(任何误动作都可能会产生致命的后果)软件固化(软件都固化在只读存储器ROM中,用户不能随意更改其程序功能)实时性(2)逻辑组成硬件:1)处理器(运算器、控制器、存储器)目前所有的处理器都是微处理器中央处理器(CPU)和协助处理器(数字信号处理器DSP、图像处理器、通信处理器)2)存储器(随机存储器RAM和只读存储器ROM)RAM分为动态DRAM和静态SRAM两种。DRAM电路简单、集成度高、功耗小、成本低,但速度稍慢慢;SRAM电路较复杂、集成度低、功耗较大、成本高,但工作速度很快,适合用作指令和数据的高速缓冲存储器RAM当关机或断电时,其中的信息都会消失,属于易失性存储器ROM属于不易失性存储器。分为电可擦可编程只读存储器(存放固件)和闪速存储器(FlashROM简称内存)。内存的工作原理:在低压下,存储的信息可读但不可写,这类似于ROM;在较高的电压下,所存储的信息可以更改和删除,这有类似于RAM。3)I/O设备与I/O接口4)数据总线软件(3)分类按嵌入式系统的软硬件技术复杂程度进行分类:1)低端系统采用4位或8位单片机,在工控领域和白色家电领域占主导地位,如计算器、遥控器、充电器、空调、传真机、BP机等。2)中端系统采用8位/16位/32位单片机,主要用于普通手机、摄像机、录像机、电子游戏机等。3)高端系统采用32位/64位单片机,主要用于智能手机、调制解调器、掌上计算机、路由器、数码相机等。(4)发展20世纪60年代初,第一个工人的现代嵌入式系统(阿波罗导航计算机)20世纪60年代中期,嵌入式计算机批量生产220世纪70年代,微处理器出现20世纪80年代中期,外围电路的元器件被集成到处理器芯片中,昂贵的模拟电路元件能被数字电路替代20世纪90年代中期SOC出现,集成电路进入超深亚微米乃至纳米加工时代2.嵌入式系统的组成与微电子技术(集成电路、EDA、SoC、IP核等技术的作用和发展)(1)集成电路IC集成电路的制造大约需要几百道工序,工艺复杂。集成电路是在硅衬底上制作而成的。硅衬底是将单晶硅锭经切割、研磨和抛光后制成的像镜面一样光滑的圆形薄片,它的厚度不足1mm,其直径可以是6、8、12英寸甚至更大这种硅片称为硅抛光片,用于集成电路的制造。制造集成电路的工艺技术称为硅平面工艺,包括氧化、光刻、掺杂等多项工序。把这些工序反复交叉使用,最终在硅片上制成包含多层电路及电子元件的集成电路。集成电路的特点:体积小、重量轻、可靠性高。其工作速度主要取决于逻辑门电路的晶体管的尺寸。尺寸越小,工作频率就越高,门电路的开关速度就越快。(2)EDA(电子信号自动化)(3)SoC芯片(片上系统)既包含数字电路,也可以包含模拟电路,还可以包含数模混合电路和射频电路。SoC芯片可以是一个CPU,单核SoC,也可以由多个CPU和/或DSP,即多核SoC。开发流程:(1)总体设计可以采用系统设计语言SystemC(或称IEEE1666,它是C++的扩充)或SystemVetilog语言对SoC芯片的软硬件作统一的描述,按照系统需求说明书确定SoC的性能能参数,并据此进行系统全局的设计。(2)逻辑设计将总体设计的结果用RTL(寄存器传输级描述语言)语言进行描述(源文件)后,在使用逻辑综合将源文件进行综合生成,生成最简的布尔表达式核心好的连接关系(以类型为EDF的EDA工业标准文件表示)(3)综合和仿真(4)芯片制造借助EDA中的布局布线工具(4)IP核IC设计文件:逻辑门级,包括各种基本的门电路;寄存器传输级,如寄存器、译码器、数据转换器;行为级,如CPU、DSP、存储器、总线与接口电路等。核库中的设计文件均属于知识产权IP保护的范畴,所以称为“知识产权核”或“IP核”。IP核是开发SoC的重要保证。按IC设计文件的类型,IP通常分为:软核、固核、硬核。IP核的复用可以减少研发成本,缩短研发时间,是实现SoC的快速设计,尽早投放市场的有效途径。目前主要的CPU内核有ARM、MIPS、PowerPC、Coldfile、x86、8051等。ARM3内核占所有32位嵌入式RISC处理器的90%以上。3.嵌入式系统与数字媒体(文本、图像和音频/视频等数字媒体的表示与处理)(1)文本含义:在计算机中的文字信息,最常用的一种数字媒体。字符集及其编码1)西方字符的编码ASCII字符集和ASCII编码,基本的ASCII字符集共128个字符,每个字符使用7个二进位制进行编码。2)汉字的编码汉子国家编码标准有GB2312和GB18030。每个汉字用2个字节表示。GB2312只有6763个汉字,经常不够用。GB18030字符集与UCS/Unicode字符集基本兼容,采用不等长的编码方法,单字节编码表示ASCII字符,与ASCII码兼容;双字节表示汉字,与GB2312保持向下兼容(即GB2312中有的GB18030字符集都有)3)UCS/Unicode编码文本类型1)简单文本只能顺序阅读。2)丰富格式文本有插图、对文字颜色等定义,调整页面,文本布局,插入声音视频等。3)超文本通过超链接实现跳转、导航、回溯等操作(2)图像图像获取过程的核心是模拟信号的数字化,处理步骤为:1)扫描将画面网格化,每个网格为一个取样点2)分色将每个取样点的颜色分解成三原色3)取样测量每个取样点的每个分量(基色)亮度值4)量化把模拟量使用数字量来表示,A/D转换数字图像的主要参数:图像大小(水平分辨率*竖直分辨率)、位平面数目、像素深度、颜色模型一幅图像的数据量计算公式:图像数据量=图像大小*像素深度/8(3)音频/视频音频/视频信息的数字化,处理步骤为:1)取样2)量化3)编码4数字音频的主要参数:取样频率、量化位数、声道数目、使用的压缩编码方法、比特率(每秒钟的数据量)压缩前波形声音的码率(比特率)=取样频率*量化为数*声道数(单位b/s)压缩后码率=压缩前码率/压缩倍数(压缩比)4.嵌入式系统与网络通信技术(数字通信与计算机网络,TCP/IP协议,互联网接入技术等)(1)数字通信(2)计算机网络(3)音频/TCP/IP协议(4)互联网接入技术二、嵌入式处理器1.嵌入式处理器的结构、特点与分类(不同类型的典型嵌入式处理器及其特点,嵌入式处理器分类等)(1)不同内核嵌入式微控制器性能比较性能内核51内核其他8位内核16位内核其他32位内核ARMCortex-M内核处理速度差差一般好好低能耗好好好差好代码密度差差一般差好内存64KB差差差好好向量中断好好好一般好低中段延时好好好差好低成本好好好差好多供资源好差差差好编译器选择好一般一般一般好软件可移植性好一般一般一般好(2)冯–诺依曼结构和哈佛结构的区别两者连接CPU程序存储器和数据存储器的方式不同冯–诺依曼结构CPU程序/数据存储器哈佛结构程序存储器CPU数据存储器程序总线数据总线(3)分类按指令集分为:复杂指令集结构CISC和精简指令集结构RISC按存储机制分为:冯–诺依曼结构和哈佛结构按字长分为:8位、16位、32位、64位结构5按不同内核系列可以分为:51、AVR、PIC、MSP430、PowerPC、Coldfile、ARM(4)不同典型内核简介内核系列推出公司内核结构简单描述51IntelCISC哈佛结构8位字长,常用于简单的检测与控制应用领域,最早被称为单片机。其价格低,应用资料齐全,开发工具便宜,开发周期短,成本低,因此被广泛应用到各个行业。随着1T改进型51内核的推出,加上许多器件厂家增加了自己的特色组件,51系列还在使用。AVRAtmelRISC哈佛结构8位、16位和32位三类字长的微控制器内核,以适应不同应用层次的要求。主要特点是高性能、高速度、低功耗。PICMicrochipRISC哈佛结构8位、16位和32位三类字长的微控制器内核,以适应不同应用层次的要求。主要用于工业控制,主要优势是针对性强,特别是抗干扰能力强。MSP430TIRISC冯-结构16位字长的微控制器区内核,广泛应用于手持设备嵌入式应用系统中,突出特点就是以超低功耗著称全球。MIPSMIPSRISC哈佛结构高性能高档次32位和64位处理器内核。主要特点是适应于高速、大数据吞吐量应用场合PowerPCApple,IBM,MotorolaRISC哈佛结构高性能高档次含有32位子集的64位处理器内核。具有优异的性能、较低的能耗以及较低的散热量。MC68KMotorolaRISC哈佛结构32位字长的处理器内核,具有超标量的超级指令流水线,性能优异明显,主要用于与高端嵌入式应用领域。ColdfileFrescaleRISC哈佛结构32位字长的高性能处理器内核,性能优越,集成度高,可用于工业应用领域、消费电子领域、医疗电子领域、测试与测量领域等。ARMARMRISC多数为哈佛结构32位字长的高性能处理器内核,目前嵌入式处理器的领跑者2.ARM处理器内核的体系结构(工作状态,工作模式,寄存器组织,异常,数据类型与存储格式等)(1)工作状态一是ARM状态,二是Thumb指令状态及Thumb-2状态,三是调试状态。ARM处理器复位后开始执行代码时总是只处于ARM状态,如果需要,可通过下面的方法切换到Thumb状态或Thumb-2状态ARM状态切换到Thumb指令状态:通过BX指令,将操作数寄存器的最低位设置为1即可。如果R0[0]=1,则执行BXR0指令将进入Thumb状态状Thumb态切换到ARM状态:通过BX指令,将操作数寄存器的最低位设置为0即可。如果R0[0]=0,则执行BXR0指令将进入ARM状态。(2)工作模式(7种)6工作模式功能说明可访问的寄存器CPSR[M4:M0]用户模User程序正常执行工作模式PC,R14-R0,CPSR10000快速中断模式FIQ处理高速中断,用于高速数据传输或通道处理PC,R14_fiq-R8_fiq,R7-R0,CPSR,SPSR_fiq10001外部中断模式IRQ用于普通中断处理PC,R14_irq-R13_irq,R12-R0,CPSR,SPSR_irq10010管理模式SVC操作系统的保护模式,处理软中断SWIPC,R14_svc-R13_svc,R12-R0,CPSR,SPSR_svc10011中止模式ABT处理存储器故障,实现虚拟存储器和存储器保护PC,R14_abt-R13_abt,R12-R0,CPSR,SPSR_abt10111未定义指令模式UND处理为定义的指令陷阱,用于支持硬件协处理器仿真PC,R14_und-R13_und,R12-R0,CPSR,SPSR_und11011系统模SYS运行特权及的操作系统任务PC,R14-R0,CPSR11111(3)寄存器组织ARM处理器共有37种寄存器,包括31个通用寄存器(含PC)和6个状态寄存器。无论何种模式,R15均作为PC使用;CPSR为当前程序状态寄存器;R7-R0为公用的通用寄存器。所有通用寄存器均为32位结构。程序状态寄存器的格式:313029282726……876543210NZCVQ状态保留IFTM4M3M2M1M0条件码标志含义如下:N为符号标志位,N=1为负数,N=0为正数。Z为全0标志位,运算结果为0,则Z=1,否则Z=0;C为进借位标志,有进/借位时C=1,否则C=0.V为溢出标志,加减法运算结果溢出时V=1,否则V=0.Q为增强的DSP运算指令溢出标志,溢出时Q=1,否则Q=0.控制位含义如下:I为中断禁止控制位,I=1禁止IRQ中断,I=0,允许中断。F为禁止快速中断FIQ的控制位,F=1禁止FIQ中断,F=0允许。T为ARM和Thumb指令切换,T=1时执行Thumb指令,否则执行ARM指令。M4-M0为模式选择位(4)存储格式大端模式:32位数据字的高字节存储在低地址,而数据字的低字节则存放在高地