《嵌入式系统设计师》笔记之一——嵌入式系统基础知识

时间:2021-12-04 19:24:00

1.1 嵌入式系统的定义和组成

1.1.1 嵌入式系统的定义

以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

1.1.2 嵌入式系统发展概述

1嵌入式系统发展的4个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向Internet阶段。

2知识产权核(IP核):具有知识产权的、功能具体、接口规范、可在多个集成电路设计中重复使用的功能模块,是实现系统芯片(SOC)的基本构件。

3IP核模块有行为、结构和物理3级不同程度的设计,对应描述功能行为的不同可以分为三类:软核、固核、硬核。

1.1.3 嵌入式系统的组成

硬件层、中间层、系统软件层和应用软件层

1硬件层:嵌入式微处理器、存储器、通用设备接口和I/O接口。

2嵌入式核心模块=微处理器+电源电路+时钟电路+存储器

3Cache:位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。它的主要目标是减小存储器给微处理器内核造成的存储器访问瓶颈,使处理速度更快。

4中间层(也称为硬件抽象层HAL或者板级支持包BSP):它将系统上层软件和底层硬件分离开来,使系统上层软件开发人员无需关系底层硬件的具体情况,根据BSP层提供的接口开发即可。

BSP有两个特点:硬件相关性和操作系统相关性。

5设计一个完整的BSP需要完成两部分工作:

A、 嵌入式系统的硬件初始化和BSP功能。

片级初始化、板级初始化、系统级初始化

B、 设计硬件相关的设备驱动。

6系统软件层:由RTOS、文件系统、GUI、网络系统及通用组件模块组成。

RTOS是嵌入式应用软件的基础和开发平台。

7应用软件:由基于实时系统开发的应用程序组成。

1.1.4 实时系统

1定义:能在指定或确定的时间内完成系统功能和对外部或内部、同步或异步时间做出响应的系统。

2区别:通用系统一般追求的是系统的平均响应时间和用户的使用方便;而实时系统主要考虑的是在最坏情况下的系统行为。

3特点:时间约束性、可预测性、可靠性、与外部环境的交互性。

4硬实时(强实时):指应用的时间需求应能够得到完全满足,否则就造成重大安全事故,甚至造成重大的生命财产损失和生态破坏,如:航天、军事。

5软实时(弱实时):指某些应用虽然提出了时间的要求,但实时任务偶尔违反这种需求对系统运行及环境不会造成严重影响,如:监控系统、实时信息采集系统。

6任务的约束包括:时间约束、资源约束、执行顺序约束和性能约束。

7调度:给定一组实时任务和系统资源,确定每个任务何时何地执行的整个过程。

8抢占式调度:通常是优先级驱动的调度,如uCOS。优点是实时性好、反应快,调度算法相对简单,可以保证高优先级任务的时间约束;缺点是上下文切换多。

9非抢占式调度:通常是按时间片分配的调度,不允许任务在执行期间被中断,任务一旦占用处理器就必须执行完毕或自愿放弃,如WinCE。优点是上下文切换少;缺点是处理器有效资源利用率低,可调度性不好。

10静态表驱动策略:系统在运行前根据各任务的时间约束及关联关系,采用某种搜索策略生成一张运行时刻表,指明各任务的起始运行时刻及运行时间。

11优先级驱动策略:按照任务优先级的高低确定任务的执行顺序。

12实时任务分类:周期任务、偶发任务、非周期任务。

13实时系统的通用结构模型:数据采集任务实现传感器数据的采集,数据处理任务处理采集的数据、并将加工后的数据送到执行机构管理任务控制机构执行。

1.2嵌入式微处理器体系结构

1.2.1体系结构

1冯诺依曼结构:程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,采用单一的地址及数据总线,程序和数据的宽度相同。例如:8086ARM7MIPS

2哈佛结构:程序和数据是两个相互独立的存储器,每个存储器独立编址、独立访问,是一种将程序存储和数据存储分开的存储器结构。例如:AVRARM9ARM10

1.2.2 CISCRISC

1计算机执行程序所需要的时间P可以用下面公式计算:

P=I×CPI×T

I:高级语言程序编译后在机器上运行的指令数。

CPI:为执行每条指令所需要的平均周期数。

T:每个机器周期的时间。

1.2.3 流水线技术

1流水线的思想:在CPU中把一条指令的串行执行过程变为若干指令的子过程在CPU中重叠执行。

2流水线的指标:

吞吐率:单位时间里流水线处理机流出的结果数。如果流水线的子过程所用时间不一样长,则吞吐率应为最长子过程的倒数。

建立时间:流水线开始工作到达最大吞吐率的时间。若m个子过程所用时间一样,均为t,则建立时间Tmt

1.2.4 信息存储的字节顺序

A、存储器单位:字节(8位)

B、字长决定了微处理器的寻址能力,即虚拟地址空间的大小。

C32位微处理器的虚拟地址空间位2^32,即4GB

D、小端字节顺序:低字节在内存低地址处,高字节在内存高地址处。

E、大端字节顺序:高字节在内存低地址处,低字节在内存高地址处。

F、网络设备的存储顺序问题取决于OSI模型底层中的数据链路层。

1.3 嵌入式系统的硬件基础

1.3.1 逻辑电路基础

1根据电路是否具有存储功能,将逻辑电路划分为:组合逻辑电路和时序逻辑电路。

2组合逻辑电路:电路在任一时刻的输出,仅取决于该时刻的输入信号,而与输入信号作用前电路的状态无关。常用的逻辑电路有译码器和多路选择器等。

3时序逻辑电路:电路任一时刻的输出不仅与该时刻的输入有关,而且还与该时刻电路的状态有关。因此,时序电路中必须包含记忆元件。触发器是构成时序逻辑电路的基础。常用的时序逻辑电路有寄存器和计数器等。

4真值表、布尔代数、摩根定律、门电路的概念。(教程2829页)

5NOR(或非)和NAND(与非)的门电路称为全能门电路,可以实现任何一种逻辑函数。

6译码器:多输入多输出的组合逻辑网络。

每输入一个n位的二进制代码,在m个输出端中最多有一个有效。

m2n是,为全译码;当m<2n时,为部分译码。

7由于集成电路的高电平输出电流小,而低电平输出电流相对比较大,采用集成门电路直接驱动LED时,较多采用低电平驱动方式。液晶七段字符显示器LCD利用液晶有外加电场和无外加电场时不同的光学特性来显示字符。

8时钟信号是时序逻辑的基础,它用于决定逻辑单元中的状态合适更新。同步是时钟控制系统中的主要制约条件。

9在选用触发器的时候,触发方式是必须考虑的因素。触发方式有两种:

电平触发方式:具有结构简单的有点,常用来组成暂存器。

边沿触发方式:具有很强的抗数据端干扰能力,常用来组成寄存器、计数器等。

1.3.3 总线电路及信号驱动

1总线是各种信号线的集合,是嵌入式系统中各部件之间传送数据、地址和控制信息的公共通路。在同一时刻,每条通路线路上能够传输一位二进制信号。按照总线所传送的信息类型,可以分为:数据总线(DB)、地址总线(AB)和控制总线(CB)。

2总线的主要参数:

总线带宽:一定时间内总线上可以传送的数据量,一般用MByte/s表示。

总线宽度:总线能同时传送的数据位数(bit),即人们常说的32位、64位等总线宽度的概念,也叫总线位宽。总线的位宽越宽,总线每秒数据传输率越大,也就是总线带宽越宽。

总线频率:工作时钟频率以MHz为单位,工作频率越高,则总线工作速度越快,也即总线带宽越宽。

总线带宽 = 总线位宽×总线频率/8, 单位是MBps

常用总线:ISA总线、PCI总线、IIC总线、SPI总线、PC104总线和CAN总线等。

3只有具有三态输出的设备才能够连接到数据总线上,常用的三态门为输出缓冲器。

4当总线上所接的负载超过总线的负载能力时,必须在总线和负载之间加接缓冲器或驱动器,最常用的是三态缓冲器,其作用是驱动和隔离。

5采用总线复用技术可以实现数据总线和地址总线的共用。但会带来两个问题:

A、需要增加外部电路对总线信号进行复用解耦,例如:地址锁存器。

B、总线速度相对非复用总线系统低。

6两类总线通信协议:同步方式、异步方式。

7对总线仲裁问题的解决是以优先级(优先权)的概念为基础。

1.3.4 电平转换电路

1数字集成电路可以分为两大类:双极型集成电路(TTL)、金属氧化物半导体(MOS)。

2CMOS电路由于其静态功耗极低,工作速度较高,抗干扰能力较强,被广泛使用。

3解决TTLCMOS电路接口困难的办法是在TTL电路输出端与电源之间接一上拉电阻R,上拉电阻R的取值由TTL的高电平输出漏电流IOH来决定,不同系列的TTL应选用不同的R值。

1.3.5 可编程逻辑器件基础(具体参见教程5161页)

这方面的内容,从总体上有个概念性的认识应该就可以了。

1.4 嵌入式系统中信息表示与运算基础

1.4.1 进位计数制与转换

1.4.2 计算机中数的表示

1进位计数制与转换:这样比较简单,也应该掌握怎么样进行换算,有出题的可能。

2计算机中数的表示:源码、反码与补码。

正数的反码与源码相同,负数的反码为该数的源码除符号位外按位取反。

正数的补码与源码相同,负数的补码为该数的反码加一。

例如-98的源码:11100010B、反码:10011101B、补码:10011110B

3定点表示法:数的小数点的位置人为约定固定不变。

4浮点表示法:数的小数点位置是浮动的,它由尾数部(有效数字)分和阶数部分(位移量P,正右负左移)组成。

5任意一个二进制N总可以写成:N=2P×SS为尾数,P为阶数。

1.4.3 非数值数据编码

1、ASCII编码,一个字节的右边的7位比奥斯不同的字符代码,最左边的以为可以左奇偶校验或者区别西文和汉字。

2、字符串向量存放法,所有的字符在物理上是邻接的,最简单最省空间,但插入删除时需重新分配空间。

3、字符串串表法,在字符后面紧跟下一个字符的地址,不需物理相连但是主存的有效利用率只有25%

4汉字表示法(教程6768页),搞清楚GB2318-80中国标码和机内码的变换。(把每个字节最高位置1)

5、声音三要素:音调(频率)、音强(振幅)、音色(形状)。

6语音编码中波形量化参数,声音质量(可能会出简单的计算题目哦)

采样频率:一秒内采样的次数,反映了采样点之间的间隔大小。人耳的听觉上限是20kHz,因此40kHz以上的采样频率足以使人满意。CD唱片采用的采样频率是44.1kHz

测量精度:样本的量化等级,目前标准采样量级有8位和16位两种。

声道数:单声道和立体声双道。立体声需要两倍的存储空间。

1.4.4 差错控制编码

1根据码组的功能,可以分为检错码和纠错码两类。检错码是指能自动发现差错的码,例如奇偶检验码;纠错码是指不仅能发现差错而且能自动纠正差错的码,例如循环冗余校验码。

2奇偶检验码、海明码、循环冗余校验码(CRC)。(教程7077页)

  3、奇偶校验:码组中1的个数为奇偶,只能差错,不能纠错,只能发现奇数个错误。

4、海明码:

5冗余校验码

Acrc算法已经有成熟和比较经典的现成代码可供我们利用。CRC计算可以靠专用的硬件来实现。在发送端根据要传送的k位二进制 码序列,以一定的规则产生一个校验用的监督码(既CRC码)r,并附在信息后边,构成一个新的二进制码序列数共(k+r),最后发送出去。在接收端则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。

B生成多项式,16位的CRC码产生的规则是先将要发送的二进制序列数左移16位后,再除以一个多项式,最后所得到的余数既是CRC码。例 如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111

C标准CRC生成多项式如下表:

    名称         生成多项式               简记式*   

    CRC-4   x4+x+1         3       

    CRC-8    x8+x5+x4+1       0x31                    
    CRC-8    x8+x2+x1+1       0x07                    
  CRC-8  x8+x6+x4+x3+x2+x1 0x5E 
CRC-12  x12+x11+x3+x+1  80F
    CRC-16   x16+x15+x2+1    8005     

    CRC16-CCITT  x16+x12+x5+1      1021   

CRC-32       x32+x26+x23+...+x2+x+1  04C11DB7   

CRC-32c      x32+x28+x27+...+x8+x6+1  1EDC6F41 SCTP 

生成多项式的最高位固定的1,故在简记式中忽略最高位1了,如0x1021实际是0x11021

D基本算法(人工笔算): 

CRC16-CCITT为例进行说明,CRC校验码为16位,生成多项式17位。假如数据流为4字节:BYTE[3]BYTE[2]BYTE[1]BYTE[0] 数据流左移16位,相当于扩大256×256倍,再除以生成多项式0x11021,做不借位的除法运算(相当于按位异或),所得的余数就是CRC校验码。 发送时的数据流为6字节:BYTE[3]BYTE[2]BYTE[1]BYTE[0]CRC[1]CRC[0]

(E)举例:

信息字段代码为: m(x)=x6+x4+x3+1    代码为:1011001

生成多项式:    g(x)=x4+x3+1       代码为:11001(生成码5=r+1,校验码就是r位,r的位数需要可以检测出信息段每一位出错的可能,2^r>信息段的位数)

m(x)x4=x10+x8+x7+x4 对应的代码记为:10110010000      左移r4

m(x)x4 在与 g(x)进行 模2的除法运算,相当于按位异或,计算过程如下:

 

 

1 0 1 1 0 0 1 0 0 0 0 

1 1 0 0 1 

----------------------------- 
0 1 1 1 1 0 1 0 0 0 0 

  1 1 0 0 1 

----------------------------- 
  0 0 0 1 1 1 1 0 0 0 0 

         1 1 0 0 1 

----------------------------- 
              0 0 1 1 1 0 0 0 

              1 1 0 0 1 

----------------------------- 
                  0 0 1 0 1 0             --------------> 余数     即 校验码 

发送数据码为: 10110011010

将信息位后添加r位校验码:FCS帧检验列

校验纠错:收到的FCS码除去CRC校验码,即用数据码模2CRC校验码,余数为0则无错,余数不为0对应不同位出错。

1.5 嵌入式系统的性能评价

1性能指标:分为部件性能指标和综合性能指标,主要包括:吞吐率、实时性和各种利用率。

2可靠性与安全性

可靠性是嵌入式系统最重要、最突出的基本要求,是一个嵌入式系统能正常工作的保证,一般用平均故障间隔时间MTBF来度量。

3可维护性:一般用平均修复时间MTTR表示。

4可用性、功耗、环境适应性、通用性、安全性、保密性、可扩展性

5性价比中的价格,除了直接购买嵌入式系统的价格外,还应包含安装费用、若干年的运行维修费用和软件租用费。

6嵌入式系统的评价方法:测量法和模型法

1)测量法是最直接最基本的方法,需要解决两个问题:

A、根据研究的目的,确定要测量的系统参数。

B、选择测量的工具和方式。

2)测量的方式有两种:采样方式和事件跟踪方式。

3)模型法分为分析模型法和模拟模型法。分析模型法是用一些数学方程去刻画系统的模型,而模拟模型法是用模拟程序的运行去动态表达嵌入式系统的状态,而进行系统统计分析,得出性能指标。

4)分析模型法中使用最多的是排队模型,它包括三个部分:输入流、排队规则和服务机构。

5)使用模型对系统进行评价需要解决3个问题:设计模型、解模型、校准和证实模型。