嵌入式系统入门基础知识分析(一)

简介: 嵌入式系统入门基础知识分析(一)

ae2503202c464eff85d9776334cdf202.png


一、什么是嵌入式


IEEE(Institute of Electrical and Electronics Engineers,美国电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”。原文为:Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants)。

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在 ROM 中的嵌入式处理器控制板。事实上,所有带数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。

从应用对象上加以定义,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。

一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。

执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY 智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。


二、嵌入式系统的组成


  • 1、  硬件层  

硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。在一嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在 ROM 中。


  • 2、  中间层  

硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或者板级支持包(Board Support Package,BSP),它半系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据 BSP 层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。


实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化的BSP功能,设计硬件相关的设备驱动。  


  • 3、  系统软件层  

系统软件层由实时多任务操作系统(Real-time Operation System,RTOS)、文件系统、图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。


三、实时系统


  • 定义:在指定或确定的时间内完成系统功能和对外部或内部、同步或异步时间做出响应的系统。
  • 区别:通用系统一般追求的是系统的平均响应时间和用户的使用方便;而实时系统主要考虑的是在最坏情况下的系统行为。
  • 特点:时间约束性、可预测性、可靠性、与外部环境的交互性。
  • 硬实时(强实时):指应用的时间需求应能够得到完全满足,否则就造成重大安全事故,甚至造成重大的生命财产损失和生态破坏,如:航天、军事。
  • 软实时(弱实时):指某些应用虽然提出了时间的要求,但实时任务偶尔违反这种需求对系统运行及环境不会造成严重影响,如:监控系统、实时信息采集系统。
  • 任务的约束包括:时间约束、资源约束、执行顺序约束和性能约束。


四、实时系统的调度


  • 调度:给定一组实时任务和系统资源,确定每个任务何时何地执行的整个过程。 
  • 抢占式调度:通常是优先级驱动的调度,如uCOS。优点是实时性好、反应快,调度算法相对简单,可以保证高优先级任务的时间约束;缺点是上下文切换多。
  • 非抢占式调度:通常是按时间片分配的调度,不允许任务在执行期间被中断,任务一旦占用处理器就必须执行完毕或自愿放弃,如WinCE。优点是上下文切换少;缺点是处理器有效资源利用率低,可调度性不好。
  • 静态表驱动策略:系统在运行前根据各任务的时间约束及关联关系,采用某种搜索策略生成一张运行时刻表,指明各任务的起始运行时刻及运行时间。
  • 优先级驱动策略:按照任务优先级的高低确定任务的执行顺序。
  • 实时任务分类:周期任务、偶发任务、非周期任务。
  • 实时系统的通用结构模型:数据采集任务实现传感器数据的采集,数据处理任务处理采集的数据、并将加工后的数据送到执行机构管理任务控制机构执行。


五、嵌入式微处理器体系结构


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

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

CISC与RISC的特点比较:

计算机执行程序所需要的时间 P 可以用下面公式计算:P=I×CPI×T

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

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

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

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

流水线的指标:

  • 吞吐率:单位时间里流水线处理机流出的结果数。如果流水线的子过程所用时间不一样长,则吞吐率应为最长子过程的倒数。
  • 建立时间:流水线开始工作到达最大吞吐率的时间。若m个子过程所用时间一样,均为 t,则建立时间 T=mt。  

信息存储的字节顺序

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

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

C、32位微处理器的虚拟地址空间位232,即4GB。

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

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

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


六、逻辑电路基础


  • 根据电路是否具有存储功能,将逻辑电路划分为:组合逻辑电路和时序逻辑电路。
  • 组合逻辑电路:电路在任一时刻的输出,仅取决于该时刻的输入信号,而与输入信号作用前电路的状态无关。常用的逻辑电路有译码器和多路选择器等。
  • 时序逻辑电路:电路任一时刻的输出不仅与该时刻的输入有关,而且还与该时刻电路的状态有关。因此,时序电路中必须包含记忆元件。触发器是构成时序逻辑电路的基础。常用的时序逻辑电路有寄存器和计数器等。
  • 真值表、布尔代数、摩根定律、门电路的概念。
  • NOR(或非)和NAND(与非)的门电路称为全能门电路,可以实现任何一种逻辑函数。
  • 译码器:多输入多输出的组合逻辑网络。


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

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

  • 由于集成电路的高电平输出电流小,而低电平输出电流相对比较大,采用集成门电路直接驱动LED时,较多采用低电平驱动方式。液晶七段字符显示器LCD利用液晶有外加电场和无外加电场时不同的光学特性来显示字符。
  • 时钟信号是时序逻辑的基础,它用于决定逻辑单元中的状态合适更新。同步是时钟控制系统中的主要制约条件。
  • 在选用触发器的时候,触发方式是必须考虑的因素。触发方式有两种:电平触发方式:具有结构简单的有点,常用来组成暂存器。边沿触发方式:具有很强的抗数据端干扰能力,常用来组成寄存器、计数器等。


七、总线电路及信号驱动


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


总线的主要参数:

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

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

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

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

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

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

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

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

  • A、需要增加外部电路对总线信号进行复用解耦,例如:地址锁存器。
  • B、总线速度相对非复用总线系统低。

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

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


八、电平转换电路


  • 数字集成电路可以分为两大类:双极型集成电路(TTL)、金属氧化物半导体(MOS)。
  • CMOS电路由于其静态功耗极低,工作速度较高,抗干扰能力较强,被广泛使用。
  • 解决TTL与CMOS电路接口困难的办法是在TTL电路输出端与电源之间接一上拉电阻R,上拉电阻R的取值由TTL的高电平输出漏电流IOH来决定,不同系列的TTL应选用不同的R值。


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


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

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

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

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

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

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

浮点表示法:数的小数点位置是浮动的,它由尾数部分和阶数部分组成。

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

汉字表示法,搞清楚GB2318-80中国标码和机内码的变换。


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

  • 采样频率:一秒内采样的次数,反映了采样点之间的间隔大小。
  • 人耳的听觉上限是20kHz,因此40kHz以上的采样频率足以使人满意。
  • CD唱片采用的采样频率是44.1kHz。
  • 测量精度:样本的量化等级,目前标准采样量级有8位和16位两种。
  • 声道数:单声道和立体声双道。立体声需要两倍的存储空间。


十、差错控制编码


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


十一、嵌入式系统的度量项目


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

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

  • 可维护性:一般用平均修复时间MTTR表示。
  • 可用性
  • 功耗
  • 环境适应性
  • 通用性
  • 安全性
  • 保密性
  • 可扩展性  

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

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

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

  • A、根据研究的目的,确定要测量的系统参数。
  • B、选择测量的工具和方式。  

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

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

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

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


十二、存储器


1、Flash存储  

(1)Flash存储器是一种非易失性存储器,根据结构的不同可以将其分为NOR Flash和NAND Flash两种。  

(2)Flash存储器的特点:

  • A、区块结构:在物理上分成若干个区块,区块之间相互独立。
  • B、先擦后写:Flash的写操作只能将数据位从1写成0,不能从0写成1,所以在对存储器进行写入之前必须先执行擦除操作,将预写入的数据位初始化为1。擦除操作的最小单位是一个区块,而不是单个字节。
  • C、操作指令:执行写操作,它必须输入一串特殊指令(NOR Flash)或者完成一段时序(NAND Flash)才能将数据写入。
  • D、位反转:由于Flash的固有特性,在读写过程中偶尔会产生一位或几位的数据错E、坏块:区块一旦损坏,将无法进行修复。对已损坏的区块操作其结果不可预测。  

(3)NOR Flash的特点:

应用程序可以直接在闪存内运行,不需要再把代码读到系统RAM中运行。NOR Flash的传输效率很高,在1MB~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。  

(4)NAND Flash的特点

能够提高极高的密度单元,可以达到高存储密度,并且写入和擦除的速度也很快,这也是为何所有的U盘都使用NAND Flash作为存储介质的原因。应用NAND Flash的困难在于闪存需要特殊的系统接口。  

(5)NOR Flash与NAND Flash的区别:

  • A、NOR Flash的读速度比NAND Flash稍快一些。
  • B、NAND Flash的擦除和写入速度比NOR Flash快很多
  • C、NAND Flash的随机读取能力差,适合大量数据的连续读取。
  • D、NOR Flash带有SRAM接口,有足够的地址引进来寻址,可以很容易地存取其内部的每一个字节。NAND Flash的地址、数据和命令共用8位总线(有写公司的产品使用16位),每次读写都要使用复杂的I/O接口串行地存取数据。
  • E、NOR Flash的容量一般较小,通常在1MB~8MB之间;NAND Flash只用在8MB以上的产品中。因此,NOR Flash只要应用在代码存储介质中,NAND Flash适用于资料存储。
  • F、NAND Flash中每个块的最大擦写次数是一百万次,而NOR Flash是十万次。
  • G、NOR Flash可以像其他内存那样连接,非常直接地使用,并可以在上面直接运行代码;NAND Flash需要特殊的I/O接口,在使用的时候,必须先写入驱动程序,才能继续执行其他操作。因为设计师绝不能向坏块写入,这就意味着在NAND Flash上自始至终必须进行虚拟映像。
  • H、NOR Flash用于对数据可靠性要求较高的代码存储、通信产品、网络处理等领域,被成为代码闪存;NAND Flash则用于对存储容量要求较高的MP3、存储卡、U盘等领域,被成为数据闪存。  


2、RAM存储器  

(1) SRAM的特点:

SRAM表示静态随机存取存储器,只要供电它就会保持一个值,它没有刷新周期,由触发器构成基本单元,集成度低,每个SRAM存储单元由6个晶体管组成,因此其成本较高。它具有较高速率,常用于高速缓冲存储器。

通常SRAM有4种引脚:

  • CE:片选信号,低电平有效。
  • R/W:读写控制信号。
  • ADDRESS:一组地址线。
  • DATA:用于数据传输的一组双向信号线。


(2)DRAM的特点:

DRAM表示动态随机存取存储器。这是一种以电荷形式进行存储的半导体存储器。它的每个存储单元由一个晶体管和一个电容器组成,数据存储在电容器中。电容器会由于漏电而导致电荷丢失,因而DRAM器件是不稳定的。它必须有规律地进行刷新,从而将数据保存在存储器中。

DRAM的接口比较复杂,通常有一下引脚:

  • CE:片选信号,低电平有效。
  • R/W:读写控制信号。
  • RAS:行地址选通信号,通常接地址的高位部分。
  • CAS:列地址选通信号,通常接地址的低位部分。
  • ADDRESS:一组地址线。
  • DATA:用于数据传输的一组双向信号线。  


(3) SDRAM的特点:

SDRAM表示同步动态随机存取存储器。同步是指内存工作需要同步时钟,内部的命令发送与数据的传输都以它为基准;动态是指存储器阵列需要不断的刷新来保证数据不丢失。它通常只能工作在133MHz的主频。


(4) DDRAM的特点

DDRAM表示双倍速率同步动态随机存取存储器,也称DDR。

DDRAM是基于SDRAM技术的,SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输;而DDR内存则是一个时钟周期内传输两次次数据,它能够在时钟的上升期和下降期各传输一次数据。在133MHz的主频下,DDR内存带宽可以达到133×64b/8×2=2.1GB/s。  


3、硬盘、光盘、CF卡、SD卡


嵌入式系统入门基础知识分析(二)https://developer.aliyun.com/article/1389507

目录
相关文章
|
6月前
|
人工智能 监控 API
嵌入式系统的魅力与实战应用
嵌入式系统的魅力与实战应用
|
6月前
|
存储 编译器 程序员
嵌入式系统中C++基础知识精髓
嵌入式系统中C++基础知识精髓
107 0
|
6月前
|
存储 传感器 数据采集
嵌入式系统:原理、应用与代码实践
嵌入式系统:原理、应用与代码实践
216 1
|
6月前
|
传感器 C++
精通嵌入式开发:从原理到实践
嵌入式开发是一门涉及硬件和软件交叉领域的技术,要想精通这门技术,需要从理论基础到实际操作都有深入的了解和实践。
64 3
|
6月前
|
编解码 网络协议 芯片
嵌入式系统入门基础知识分析(二)
嵌入式系统入门基础知识分析(二)
85 0
|
芯片
嵌入式基础知识
视觉项目落地少不了的是嵌入式相关知识
240 0
嵌入式基础知识
|
存储
14个PLC入门基础知识
14个PLC入门基础知识
242 0
14个PLC入门基础知识
|
Serverless
【从零开始的嵌入式生活】必备基础知识7——函数(2)
【从零开始的嵌入式生活】必备基础知识7——函数(2)
【从零开始的嵌入式生活】必备基础知识7——函数(2)
【从零开始的嵌入式生活】必备基础知识7——函数(1)
【从零开始的嵌入式生活】必备基础知识7——函数(1)
【从零开始的嵌入式生活】必备基础知识7——函数(1)
|
机器学习/深度学习 算法 Linux
【从零开始的嵌入式生活】必备基础知识3——输入输出
【从零开始的嵌入式生活】必备基础知识3——输入输出
【从零开始的嵌入式生活】必备基础知识3——输入输出