嵌入式系统

——与众多媒体及业内人士共同探讨汽车电子市场发展趋势

赛普拉斯半导体公司举办媒体交流会,并独家赞助了由TechSugar主办的SugarTalk第二期汽车电子论坛。赛普拉斯多位高管就全球汽车电子发展趋势与行业媒体进行了深入的剖析和充分的沟通,并介绍了赛普拉斯先进的汽车电子解决方案。赛普拉斯汽车事业部高级副总裁布施武司先生还在论坛现场发表了关于“创新浪潮中的汽车:变与不变”的主题演讲,表达了赛普拉斯深耕中国,全力助推中国汽车电子市场发展的决心。

赛普拉斯携先进汽车电子嵌入式系统解决方案,助力中国汽车创新
赛普拉斯汽车事业部高级副总裁布施武司在SugarTalk第二期汽车电子论坛上发表演讲

赛普拉斯认为,在智能化、网联化与电动化等技术趋势的推动下,汽车市场已进入颠覆式创新发展时代。车、城市基础设施、驾乘者,乃至各种相关服务都将实现不同级别的联网;集复杂信息显示与控制功能,以及人工智能技术于一身的人机界面也将取代现有的仪表与机械式交互方式;与驾驶安全密切相关的数据采集、记录、分析、学习、推理、预测技术发展迅猛,带动辅助驾驶和自动驾驶技术日臻完善。所有这些都将为包括汽车设计制造、驾乘体验、基础设施、汽车服务等在内的产业链各个环节带来翻天覆地的变化。

赛普拉斯携先进汽车电子嵌入式系统解决方案,助力中国汽车创新
赛普拉斯亚太区汽车产品总监文君培参加SugarTalk圆桌论坛

在Cypress3.0计划的推动下,刚刚结束的2018年第一季度中,赛普拉斯汽车电子业务取得了骄人的业绩。汽车电子营收占公司总营收的34%,同比增长15%。 在全球汽车市场中,赛普拉斯在汽车仪表盘MCU、Wi-Fi和蓝牙无线组合连接解决方案、触摸屏和触摸感应解决方案、用于高级驾驶辅助系统(ADAS)的NOR闪存等应用方面均处于市场领先地位。 赛普拉斯还是USB-C连接和快速充电解决方案的领导者,率先推出了汽车级USB-C产品。 丰富的汽车产品组合、零缺陷和提供世界一流服务的承诺,以及对于行业标准最严格的遵从,赋予赛普拉斯提供完整卓越的汽车电子解决方案的能力。

赛普拉斯全球应用及销售执行副总裁迈克•贝罗表示:“作为汽车电子供应商,赛普拉斯始终以客户为中心,致力于为客户提供优质的服务和长期的支持和供货能力。我们将汽车市场作为我们未来发展的一个关键增长动力,在包括中国在内的全球市场上,我们已经和多个顶级汽车公司及核心供应商建立了紧密的合作关系。我们愿意与中国的伙伴们分享我们对汽车市场发展趋势的看法,并为中国市场提供最先进的汽车产品组合,把豪华车用户体验引入普及车型,惠及普通大众,使之充分享受高端驾乘乐趣。”

赛普拉斯携先进汽车电子嵌入式系统解决方案,助力中国汽车创新
赛普拉斯全球应用及销售执行副总裁迈克•贝罗为到场媒体做演讲

长期以来,赛普拉斯一直致力于与全球顶尖的汽车厂商及供应商合作,开发领先的汽车系统,其中包括高级驾驶辅助系统 (ADAS)、3D图形显示、无线连接、全功能触摸屏和卓越的车身电子系统。赛普拉斯的汽车级产品组合包括:

  •   内置于汽车仪表盘和车身电子系统的Traveo™ 微控制器(MCU)
  •   用于通用控制和触摸感应功能的PSoC®MCU
  •   Wi-Fi®、Bluetooth®和组合无线连接解决方案,包括Real Simultaneous Dual Band(RSDB)技术,可以使车辆中的多个设备同时连接并传输不同内容
  •   用于移动设备连接和快速充电的USB、USB-C和USB PD解决方案
  •   用于触摸感应用户界面及液位感应的CapSense®电容式感应解决方案
  •   用于中控显示屏和后座显示屏的TrueTouch®触摸屏解决方案
  •   用于系统安全准入和个性化设置的指纹解决方案
  •   用于仪表盘、车载娱乐系统、ADAS和其他安全系统中数据存储的汽车级NOR闪存及 HyperBus™存储器
  •   用于事件数据记录仪中的Excelon™F-RAM™非易失性存储器
  •   用于安全电气操作的电源管理IC(PMIC)

围观 6
1125

1 、电路设计原理

(1)电路板设计主要分为3个步骤:设计电路原理图、生成网络表、设计印制电路版。

(2) 网络表是电路原理设计和印制电路板设计中的一个桥梁,它是设计工具软件自动布线的灵魂。

(3)网络表的格式包括2部分:元器件声明和网络定义。(缺少任一部分都有可能在布线的时候出错)

(4) 电路原理图设计不仅是整个电路设计的第一步,也是电路设计的基础。包括以下的一些具体步骤:

A、建立元器件库中没有的库元件。
B、设置图纸属性。
C、放置元件。
D、原理图布线。
E、检查与校对。
F、电路分析与仿真。
G、生成网络表。
H、保存与输出。

2、 PCB 电路设计

(1)PCB 设计是电子产品物理结构设计的一部分,它的主要任务是根据电路的原理和所需元件的封装形式进行物理结构的布局和布线。

(2)PCB 设计包括下面一些具体步骤:

A、建立封装库中没有的封装。
B、规划电路板。
C、载入网络表和元件封装。
D、布置元件封装。
E、布线。
F、设计规则检查。
G、PCB 仿真分析。
H、存档输出。

3、多层 PCB 设计的注意事项

(1)高频信号线一定要短,不可以有尖角(90度直角),两根线之间的距离不宜平行、过近,否则可能会产生寄生电容。

(2)如果是两面板,一面的线布成横线,一面的线布成竖线,尽量不要布成斜线。

(3)一般来说,线宽一般为0.3mm,间隔也为0.3mm,这个长度约为8~10mil。但是对于电源线或者大电流线应该有足够宽度,一般需要60~80mil。焊盘一般为64mil。

(4)单面板的生产工艺都很差,因此,单面板的焊盘尽量做得大一些,线要尽量粗一些。

(5)铜膜线的地线应该在电路板的周边,同时将电路上可以利用的空间全部使用铜箔做地线,增强屏蔽能力,并且防止寄生电容。

(6)电路图上的地线表示电路中的零电位,并用作电路中其他各点的公共参考点,在实际电路中由于地线阻抗的存在,必然会带来共阻干扰,因此,在布线是,不能将具有地线符号的点随便连接在一起,这可能引起有害的耦合而影响电路的正常工作。

4 、PCB 设计中的可靠性知识

(1)地线设计:在电子设备中,接地是控制干扰的重要方法。

A、正确选择单点接地与多点接地。
a、在低频电路中(工作频率小于1MHz),采用一点接地。
b、在高频电路中(工作频率大于10MHz),采用就近多点接地。

B、将数字电路与模拟电路分开,两者地线不要相混。分别与电源端地线相连。

C、尽量加粗地线。若地线很细,接地电位则随电流的变化而变化,如有可能,接地线的宽度应大于3mm。

D、将接地线构成环路,可以明显提高抗噪声能力。

(2)电磁兼容性设计

A、选择合理的导线宽度。

a、瞬变电流在印制线条上所产生的冲击干扰主要是由印制导线的电感成分造成的。
b、时钟引线、行驱动器和总线驱动器的信号线常常载有大的瞬变电流,导线要尽可能短。
c、对于分立元件,导线宽度载1.5mm 左右可满足要求。
d、对于集成电路,导线宽度可在0.2mm~1mm 之间选择。

B、采用正确的布线策略:最好采用井字形网状布线结构。

a、PCB 的一面横向布线,另一面纵向布线,然后在交叉孔处用金属化孔相连。
b、尽量减少导线的不连续性,例如导线不要突变,拐角应大于90度。
c、尽量避免长距离的平行走线,尽可能拉开线与线之间的距离。
d、信号线与地线及电源线尽可能不交叉。
e、在一些对干扰十分敏感的信号线之间设置一根地线,可以有效抑制串扰。

C、抑制反射干扰。

(3)去耦电容配置。

配置去耦电容可以抑制因负载变化而产生的噪声,是印制电路板的可靠性设计的一种常规做法。

配置原则如下:

A、 电源输入端跨接一个10~100uF 的电解电容。
B、 为每个集成电路芯片配置一个0.01uF 的陶瓷电容。
C、 对于噪声能力弱、关断时电流变化大的器件和 ROM、RAM 等存储型器件,应在芯片的电源线和地线之间直接接入去耦电容。
D、去耦电容的引线不能过长,特别是高频旁路电容不能带引线。

(4) PCB 的尺寸与器件的布置。

A、相互有关的元件尽量放得靠近一些。
B、时钟发生器、晶振和 CPU 的时钟输入端易产生干扰,要相互靠近一些。
C、易产生噪声的元件、小电流电路、大电流电路等应尽量原理逻辑电路。

(5)散热设计。

5 、电子设计原理

(1) EDA 是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果而研制成的 电子CAD通用软件包。利用 EDA 工具,电子工程师可以将电子产品的由电路设计、性能分析到 IC 设计图或 PCB 设计图整个过程在计算机上自动处理完成。

(2)“自顶向下”的设计方法。

先从系统设计入手,在顶层进行功能框图的划分和结构设计。在框图一级进行仿真和纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证,然后用综合优化工具生成具体的门电路网表,其对应的物理实现级可以是 PCB 或专用集成电路。

(3)VHDL 是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为3种描述形式的混合描述。

6、电子电路测试原理与方法

(1)故障检测:判断故障是否存在,即只判断有无故障。

(2)故障诊断(故障定位):不仅判断故障是否存在,而且指出故障位置。

(3)仿真:对设计过程中得到的电路参数验证其正确性。

(4)测试:判断产品是否合格。

(5)可测试设计的3个方面是:测试生成、测试验证、测试设计。

(6)JTAG 测试接口是 IC 芯片测试方法的标准。

7 、硬件抗干扰测试

(1)形成干扰的3个基本要素:干扰源、传播路径和敏感器件。

(2)干扰的耦合方式:干扰源产生的干扰信号要通过一定的耦合通道才对系统产生作用。

A、直接耦合:最有效的方式是加入去耦电容。
B、公共阻抗耦合。
C、电容耦合。
D、电磁感应耦合(磁场耦合)。
E、漏电耦合。

(3)抑制干扰源的技术:尽可能减小干扰源的 du/dt 和 di/dt,这是抗干扰设计中最优先考虑和最重要的原则。

A、 主要通过在干扰源两端并联电容来实现减小干扰源的 du/dt。
B、 主要通过在干扰源回路串联电感或电阻及增加续流二极管来实现 di/dt。

(4)切断干扰传播路径的技术

A、充分考虑电源对嵌入式系统的影响。例如给电源加滤波电路或稳压器。
B、若微处理器的 I/O 口接控制电机等噪声器件,应在 I/O 和噪声源之间加隔离。
C、晶振与微处理器的引脚尽量靠近,用地线把时钟区隔离起来,晶振外壳接地并固定。
D、电路板合理分区,如强、弱信号,数字、模拟信号。
E、尽可能将干扰源与敏感元件远离。
F、用地线把数字区与模拟区隔离。
G、数字地与模拟地要分离,最后再一点接于电源地。
H、微处理器和大功率器件的地线要单独接地,以减小互相干扰。
I、大功率器件尽可能放在电路板边缘。

(5)提高敏感元件的抗干扰性能

A、布线时尽量减少回路环的面积,以降低感应噪声。
B、电源线和地线要尽量粗,除减小压降外,更重要的是降低耦合噪声。
C、微处理器闲置的 I/O 口不要悬空,要接地或接电源。
D、其他 IC 的闲置端在不改变系统逻辑的情况下接地或电源。
E、使用电源监控及看门狗电路,可大幅度提高整个电路的抗干扰性能。
F、在满足要求的前提下,尽量降低微处理器的晶振和选用低速数字电路。

转自: 沉舟侧畔

围观 10
1549

上一篇:嵌入式系统之接口技术篇(一)

12 、PCI 接口

(1)PCI 总线是 地址 、 数据多路复用的高性能32位和64位总线,是微处理器与外围控制部件、外围附加板之间的互连机构。

(2)从数据宽度上看,PCI 定义了32位数据总线,且可扩展为64位。从总线速度上分,有33MHz 和66MHz两种。

(3)与 ISA 总线相比,PCI 总线的地址总线与数据总线分时复用,支持即插即用、中断共享等功能。

13 、 USB 接口

(1)USB 总线的主要特点:

A、使用简单,即插即用。
B、每个 USB 系统中都有主机,这个 USB 网络中最多可以连接127个设备。
C、应用范围广,支持多个设备同时操作。
D、低成本的电缆和连接器,使用统一的4引脚插头。
E、较强的纠错能力。
F、较低的协议开销带来了高的总线性能,且适合于低成本外设的开发。
G、支持主机与设备之间的多数据流和多消息流传输,且支持同步和异步传输类型。
H、总线供电,能为设备提供5V/100mA 的供电。

(2)USB 系统由3部分来描述:USB 主机、USB 设备和 USB 互连。

(3)USB 总线支持的数据传输率有3种:高速信令位传输率为 480Mb/s;全速信令位传输率为 12Mb/s ;全速信令位传输率为 1.5Mb/s。

(4)USB 总线电缆有4根线:一对双绞信号线和一对电源线。

(5)USB 是一种 查询总线,由主控制器启动所有的数据传输。USB 上所挂接的外设通过由主机调度的 、基于令牌的协议来共享 USB 带宽。

(6)大部分总线事务涉及3个包的传输:

A、 令牌包:指示总线上要执行什么事务,欲寻址的 USB 设备及数据传送方向。
B、 数据包:传输数据或指示它没有数据要传输。
C、 握手包:指示传输是否成功。

(7)主机与设备端点之间的 USB 数据传输模型被称作 管道。管道有两种类型: 流和 消息。消息数据具有USB 定义的结构,而数据流没有。

(8) 事务调度表允许对某些流管道进行流量控制,在硬件级,通过使用 NAK(否认)握手信号来调节数据传输率,以防止缓冲区上溢或下溢产生。

(9)USB 设备最大的特点是 即插即用。

(10)工作原理:USB 设备插入 USB 端点时,主机都通过 默认地址0 0 0 0与 设备的端点0 0 0 0进行通信。在这个过程中,主机发出一系列试图得到 描述符的标准请求,通过这些请求,主机得到所有感兴趣的设备信息,从而知道了设备的情况以及该如何与设备通信。随后主机通过发出 Set Address 请求为设备设置一个 唯一的地址。以后主机就通过为设备设置好的地址与设备通信,而不再使用默认地址0。

14 、SPI 接口

(1)SPI 是一个 同步协议接口,所有的传输都参照一个共同的时钟,这个同步时钟有主机产生,接收数据的外设使用时钟来对串行比特流的接收进行同步化。

(2)在多个设备连接到主机的同一个 SPI 接口时,主机通过从设备的 片选引脚来选择。

(3)SPI 主要使用4 4 4 4 个信号:主机输出/从机输入(MOSI),主机输入/从机输出(MISO)、串行时钟 SCLK和外设片选 CS。

(4)主机和外设都包含一个 串行移位寄存器,主机通过向它的 SPI 串行寄存器写入一个字节来发起一次数据传输。寄存器通过 MOSI 信号线将字节传送给外设,外设也将自己移位寄存器中的内容通过 MISO 信号线返回给主机,这样,两个移位寄存器中的内容就被 交换了。

(5)外设的 写操作和读操作时同步完成的,因此 SPI 成为一个很有效的协议。

(6)如果只是进行写操作,主机只需忽略收到的字节;反过来,如果主机要读取外设的一个字节,就必须发送一个空字节来引发从机的传输。

15 、 IIC 接口

(1)IIC 总线是具备 总线仲裁和 高低速设备同步等功能的高性能 多主机总线。

(2)IIC 总线上需要 两条线:串行数据线 SDA 和串行时钟线 SCL。

(3)总线上的每个器件都有唯一的地址以供识别,而且各器件都可以作为一个发送器或者接收器(由器件的功能决定)。

(4)IIC 总线有4种操作模式:主发送、主接收、从发送、从接收。

(5)IIC 在传送数据过程中共有3种类型信号:
A、 开始信号:SCL 为高电平时,SDA 由高向低跳变。
B、 结束信号:SCL 为高电平时,SDA 由低向高跳变。
C、 应答信号:接收方在收到8位数据后,在第9个脉冲向发送方发出特点的低电平。

(6)主器件发送一个开始信号后,它还会立即送出一个从地址,来通知将与它进行数据通信的从器件。1个字节的地址包括7 7 7 7 位地址信息和1 1 1 1 位传输方向指示位,如果第7位为0,表示要进行一个写操作,如果为1 ,表示要进行一个读操作。

(7)SDA 线上传输的每个字节长度都是8 8 8 8 位,每次传输种字节的数量没有限制的。在开始信号后面的第一个字节是地址域,之后每个传输字节后面都有一个应答位(ACK),传输中串行数据的 MSB ( 字节高位 ) )首先发送。

(8)如果数据接收方无法再接收更多的数据,它可以通过将 SCL 保持低电平来中断传输,这样可以迫使数据发送方等待,直到 SCL 被重新释放。这样可以达到高低速设备同步。

(9)IIC 总线的工作过程:SDA 和 SCL 都是双向的。空闲的时候,SDA 和 SCL 都是高电平,只有 SDA变为低电平,接着 SCL 再变为低电平,IIC 总线的数据传输才开始。SDA 线上被传输的每一位在 SCL 的上升沿被采样,该位必须一直保持有效到 SCL 再次变为低电平,然后 SDA 就在 SCL 再次变为高电平之前传输下一个位。最后,SCL 变回高电平,接着 SDA 也变为高电平,表示数据传输结束。

16 、以太网接口

(1)最常用的以太网协议是 IEEE802.3 标准。

(2)传输编码(06和07年都有考题):曼彻斯特编码和差分曼彻斯特编码。
A、 曼彻斯特编码:每位中间有一个电平跳变,从 高到底的跳变表示“0”,从 低到高的跳变表示为“1”。
B、 差分曼彻斯特编码:每位中间有一个电平跳变,利用每个码元开始时有无跳变来表示“0”或“1” ,有跳变为“0”, 无跳变为“1”。

(3)相比之下,曼彻斯特编码编码简单,差分曼彻斯特编码提供更好的噪声抑制性能。

曼彻斯特编码:
0=在间隔的中间位置从高向低跳变。
1=在间隔的中间位置从低向高跳变。

差分曼彻斯特编码:在间隔的中间位置总有一个跳变。
0=在间隔的起始位置有跳变。
1=在间隔的起始位置没有跳变。

(4)以太网数据传输特点:

A、所有数据位的传输 由低位开始,传输的位流时用 曼彻斯特编码。
B、以太网是 基于冲突检测的总线复用方法,由硬件自动执行。
C、传输的数据长度,目的地址 DA+源地址 SA+类型字段 TYPE+数据段 DATA +填充位 PAD,最小为60B,最大为1514B。
D、通常以太网卡可以接收3种地址的数据:广播地址、多播地址、自己的地址。
E、任何两个网卡的 物理地址都不一样,是世界上 唯一的,网卡地址由专门机构分配。

(5)嵌入式以太网接口有两种实现方法:

A、嵌入式处理器+网卡芯片(例如:RTL8019AS、CS8900等)
B、带有以太网接口的处理器。

(6)TCP/IP 是一个分层协议,分为:物理层、数据链路层、网络层、传输层和应用层。每层实现一个明确的功能,对应一个或几个传输协议,每层相对于它的下层都作为一个独立的数据包来实现。每层上的协议如下:

A、应用层:BSD 套接字。
B、传输层:TCP、UDP。
C、网络层:IP、ARP、ICMP、IGMP
D、数据链路层:IEEE802.3 Ethernet MAC
E、物理层:二进制比特流。

(7)ARP(地址解析协议)

A、 网络层用 32 位的地址来标识不同的主机(即 IP 地址),而 链路层使用 48 位的物理地址(MAC)来标识不同的以太网或令牌网接口。
B、ARP 功能:实现从 IP 地址到对应物理地址的转换。

(8)ICMP(网络控制报文协议)

A、IP 层用它来与其他主机或路由器交换错误报文和其他重要控制信息。
B、ICMP 报文是在 IP 数据包内被传输的。
C、网络诊断工具 ping 和 traceroute 其实就是 ICMP 协议。

(9)IP(网际协议)

A、IP 工作在网络层,是 TCP/IP 协议族中最为核心的协议。
B、所有的 TCP、UDP、ICMP 及 IGMP 数据都以 IP 数据包格式传输。
C、TTL(生存时间字段):指定了 IP 数据包的生存时间(数据包可以经过的路由器数)。

D、IP 提供不可靠、无连接的数据包传送服务,高效、灵活。
a、 不可靠:它不能保证数据包能成功到达目的地,任何要求的可靠性必须由上层来提供(如 TCP) 。如果发生某种错误,IP 有一个简单的错误处理算法。丢弃该数据包,然后发送 ICMP 消息报给信源端。
b、 无连接:IP 不维护任何关于后续数据包的状态信息。每个数据包的处理都是相互独立的。IP数据包可以不按顺序接收,

(10)TCP(传输控制协议)

TCP 协议是一个 面向连接的可靠的传输层协议,它为两台主机提供高可靠性的端到端数据通信。

( 11 )UDP(用户数据包协议)

UDP 协议是一种 无连接不可靠的传输层协议,它不保证数据包能到达目的地,可靠性有应用层来提供。UDP 协议开销少,和 TCP 相比更适合于应用在低端的嵌入式领域中。

(12)端口:TCP 和 UDP 采用16位端口号来识别上层的用户,即应用层协议,例如 FTP 服务的 TCP端口号都是21,Telnet 服务的 TCP 端口号都是23,TFTP 服务的 UDP 端口号都是69。

17 、 CAN 总线接口

(1)CAN(Control Area Network,控制器局域网)总线是一种 多主方式的串行通信总线,是国际上应用最广泛的现场总线之一,最初被用于汽车环境中的电子控制网络。一个 CAN 总线构成的单一网络中,理想情况下可以挂接任意多个节点,实际应用中节点数据受网络硬件的电气特性所限制。

(2)总线信号使用 差分电压传送。两条信号线被称为 CAN_H 和 CAN_L,静态是均为2.5V 左右,此时状态表示 逻辑1 1 1 1,也可以叫做“ 隐性”。用 CAN_H 比 CAN_L 高表示 逻辑0 ,称为“ 显性”,此时,通常电压值为 CAN_H=3.5V 和 CAN_L=1.5V。

(3)当“显性”和“隐性”位同时发送的时候,最后总线数值将为“显性”这种特性为 CAN 总线的仲裁奠定了基础。

(4)CAN 总线的一个位时间可以分成4个部分:同步段、传播时间段、相位缓冲段1和相位缓冲段2。

(5)CAN 总线的数据帧有两种格式: 标准格式和 扩展格式。包括:帧起始、仲裁场、控制场、数据场 、CRC 场、ACK 场和帧结束。

(6)CAN 总线硬件接口包括: CAN 总线控制器和 CAN 收发器。CAN 控制器主要完成时序逻辑转换等工作,例如菲利普的 SJA1000。CAN 收发器是 CAN 总线的物理层芯片,实现 TTL 电平到 CAN 总线电平特性的转换,例如 TJA1050。

18 、 xDSL 接口

(1)xDSL(数字用户线路)技术是,在现有用户电话线两侧同时接入专用的 DSL 调制解调设备,在用户线上 利用数字数字信号高频带宽较宽的特性直接采用数字信号传输,省去中间的 A/D 转换,突破了模拟信号传输极限速率为56KB/s 的闲置。

(2)DSL 技术主要分为 对称和 非对称两大类。

(3)对成 xDSL 更适合于企业 点对点连接应用,例如文件传输、视频会议等收发数据量大致相同的工作。

(4)ASDL 是近年发展的另一种宽带接入技术,是利用双绞铜线向用户提供两个方向上 速率不对称的宽带信息业务。

(5)ADSL 在一对电话线上同时传送一路高速下行数据、一路较低速率上行数据、一路模拟电话。各信号之间采用 频分复用方式占用不同频带, 低频段传送话音; 中间窄频带传送上行信道数据及控制信息; 其余高频段传送下行信道数据、图像或高速数据。

19 、 WLAN 接口

(1)WLAN(Wireless Local Area Network)是利用无线通信技术在一定的局部范围内建立的,是计算机网络与无线通信技术相结合的产物,它以无线多址通道作为传输媒介,提供有线局域网的功能。

(2)WLAN 的标准:主要是针对 物理层和 媒质访问控制层 ( MAC 层) ),涉及到所有使用的无线频率范围 、控制接口通信协议等技术规范与技术标准。

A、 IEEE 802.11:定义了物理层和 MAC 层规范,工作在2.4~2.4835GHz 频段,最高速率为2Mb/s ,是 IEEE 最初制定的一个无线局域网标准。
B、 IEEE 802.11b:工作在2.4~2.4835GHz 频段,最高速率为11Mb/s,传输距离50~150inch。采用点对点模式和基本模式两种运行模式。在数据传输速率方面可以根据实际情况在11Mb/s、5.5Mb/s、2Mb/s、1 Mb/s 的不同速率间自动切换。
C、 IEEE 802.11a:工作在5.15~8.825GHz 频段,最高速率为54Mb/s/72Mb/s,传输距离10~100m。
D、 IEEE 802.11g:混合标准,拥有 EEE 802.11a 的传输速率,安全性较 EEE 802.11b 好,采用两种调制方式,做到与 EEE 802.11a 和 EEE 802.11b 兼容。

(3)WLAN 有两种网络类型: 对等网络和 基础机构网络。

20 、蓝牙接口

(1)蓝牙技术的目的:使特定的移动电话、便鞋式电脑以及各种便携通信设备的主机之间近距离内实现无缝的资源共享。

(2)蓝牙技术的实质内容是要建立通用的无线空中接口及其控制软件的公开标准。其工作频段为全球通用的 2.4GHz ISM(即工业、科学、医学)频段,其数据传输速率为 1Mb/s,采用 时分双工方案来实现全双工传输,其理想的连接范围为 10cm ~ 10m。

(3)蓝牙基带协议是 电路交换和分组交换的结合。

(4)蓝牙技术特点:

A、传输距离短,工作距离在10m 以内。
B、采用跳频扩频技术。
C、采用时分复用多路访问技术,有效地避免了“碰撞”和“隐藏终端”等问题。
D、网络技术。
E、语言支持。
F、纠错技术,其采用的是 FEC(前向纠错)方案。

(5)蓝牙接口由3 3 3 3 大单元组成:无线单元、基带单元、链路管理与控制单元。

21 、 1394 接口

(1)1394作为一种标准总线,可以在不同的工业设备之间架起一座沟通的桥梁,在一条总线上可以接入63个设备。

(2)IEEE 1394的 特点:

A、支持多种总线速度,适应不同应用要求。
B、即插即用,支持热插拔。
C、支持同步和异步两种传输方式。
D、支持点到点通信模式,IEEE 1394是多主总线。
E、遵循 ANSI IEEE 1212控制及状态寄存器(CSR)标准,定义了64位的地址空间,可寻址1024条总线的63个节点,每个节点可包含256TB 的内存空间。
F、支持较远距离的传输。
G、支持公平仲裁原则,为每一种传输方式保证足够的传输带宽。
H、六线电缆具有电源线,可传输8~40V 的直流电压。

(3)IEEE 1394的 协议栈由3 3 3 3 层组成:物理层、链路层和事务层,例外还有一个管理层。物理层和链路层由硬件构成,而事务层主要由软件实现。

A、 物理层提供 IEEE 1394的电气和机械接口,功能是重组字节流并将它们发送到目的节点上去。
B、 链路层提供了给事务层确认的数据服务,包括:寻址、数据组帧和数据校验。
C、 事务层为应用提供服务。
D、 管理层定义了一个管理节点所使用的所有协议、服务以及进程。

22 、电源接口

(1)DC-DC 转换器有三种类型:

A、 线性稳压器:产生较输入电压低的电压。
B、 开关稳压器:能升高电压、降低电压或翻转输入电压。
C、 充电泵:可以升高、降低或翻转输入电压,但电流驱动能力有限。

(2)任何变压器的转换过程都不具有100%的效率,稳压器本省也使用电流(静态电流),这个电流来自输入电流。静态电流越大,稳压器功耗越大。

(3)线性稳压器输入输出使用 退耦电容来过滤,电容除了有助于平稳电压以外,还有利于去除电源中的瞬间短时脉冲波形干扰。

(4)电压与功耗之间的平方关系意味着理想高效的方法是在要求较低电压的较低时钟速率上执行代码,而不是先以最高的时钟速率执行代码然后再转为空闲休眠。

(5)电源通常被认为是整个系统的“心脏”,绝大多数电子设备50%~80%的节能潜力在于电源系统 ,研制开发新型开关电源是节能的主要举措之一。

(6) 降低功耗的设计技术:

A、采用低功耗器件,例如选用 CMOS 电路芯片。

B、采用高集成度专用器件,外部设备的选择也要尽量支持低功耗设计。

C、动态调整处理器的时钟频率和电压,在允许的情况下尽量使用低频率器件。

D、利用“节电”工作方式。

E、合理处理器件空余引脚:

a、大多数数字电路的输出端在输出低电平时,其功耗远远大于输出高电平时的功耗,设计时应该注意控制低电平的输出时间,闲置时使其处于高电平输出状态。
b、多余的非门、与非门的输入端应接低电平,多余的与门、或门的输入端应接高电平。
c、ROM 或 RAM 及其他有片选信号的器件,不要将“片选”引脚直接接地,避免器件长期被接通,而应该与“读/写”信号结合,只对其进行读写操作时才选通。

F、实现电源管理,设计外部器件电源控制电路,控制“耗电大户”的供电情况。

转自: 沉舟侧畔

围观 8
1390

1 、存储器系统的层次架构

计算机系统的存储器被组织城一个 金字塔的层次结构。自上而下为:CPU 内部寄存器、芯片内部高速缓存(cache)、芯片外部高速缓存(SRAM、SDRAM、DRAM) 、主存储器(FLASH、EEPROM)、外部存储器(磁盘、光盘、CF 卡、SD 卡)和远程二级存储器(分布式文件系统 、WEB 服务器),6个层次的结构。上述设备从上而下,依次速度更慢、容量更大、访问频率更小,造价更便宜。

2、高速缓存 (cache)

(1)工作原理 :主要利用了程序的 局部性特点。地址映象是指把主存地址空间映象到 cache 的地址空间。地址变换是指当程序或数据已经装入到 cache 后,在实际运行过程中,把主存地址如何编程 cache 空间的地址。

常用的地址映象和地址变换的方式有:

A、直接映象和变换:速度快,造价低,但有局限性,不能充分利用 cache 的好处。
B、组相联地址映象和变换:速度稍慢但是命中率高。
C、全相联地址映象和变换:可以任意映射。
D、常用的 cache 替换算法:轮转法和随机替换算法。
  
(2)高速缓存的分类:

A、统一 cache 和独立的数据/指令 cache
B、写通 cache 和写回 cache
C、读操作分配 cache 和写操作分配 cache

3 、存储管理单元( MMU )

MMU 在 CPU 和物理内存之间进行地址转换,将地址从逻辑空间映射到物理空间,这个过程称为 内存映射。

MMU 主要完成下面的工作:

A. 虚拟存储空间到物理空间的映射。
B. 存储器访问权限的控制。
C. 设置虚拟存储空间的缓冲特性。

嵌入式系统中常常采用 页式存储管理。为了管理这些页引入了页表的概念。页表是位于内存中的表,它的每一行对应虚拟存储空间的一个页,该行包含了该虚拟内存页对应的物
理内存页的地址、该页的访问权限和该页的缓冲特性等。从虚拟地址到物理地址的变换过程就是 查询页表的过程。由于页表存储在内存中的,整个查询过程需要付出很大的代价。根据程序局部性的特点,增加了一个小容量、高速度的存储部件来存放当前访问需要的地址变换条目,这个存储部件称为: 地址转换后备缓冲器 (TLB)。

当 CPU 访问内存时,首先在 TLB 中查找需要的地址变换条目,如果该条目不存在,CPU 再从内存中的页表中查询,并把相应的结果添加到 TLB 中,更新它的内容。嵌入式系统中虚拟存储空间到物理空间的映射以 内存块为单位进行。即虚拟存储空间中一块连续的存储空间被映射到物理存储空间中同样大小的一块连续存储空间。在页表和 TLB 中,每一个地址变换条目实际上记录了一个虚拟存储空间的内存块的基地址与物理存储空间相对应的一个内存块的基地址之间的对应关系。在 MMU 中实现虚拟地址到物理地址的映射是通过 两级页表来实现的。禁止 MMU 时,所有物理地址和虚拟地址相等,即使用 平板存储模式。

4 、内存保护

操作系统通常利用 U MMU 来实现操作系统内核与应用程序之间的隔离,以及应用程序与应用程序之间的隔离。

内存保护包含两个方面的内容:

A. 防止地址越界,每个应用程序都有自己独立的地址空间。
B. 防止越权操作,每个应用程序都有自己的访问权限。

5 、实模式与保护模式

在嵌入式系统中,常见的存储管理方案可以分为两大类: 实模式和 保护模式。

(1)实模式:内存的平面使用模式。特点有:

A. 不划分“系统空间”与“用户空间”,无须进行地址映射。
B. 操作系统与应用程序之间不再有物理的边界。
C. 系统中的“任务”或“进程”,实际上全是内核线程。

在实模式下, 内存布局可以分为5个段:

A. 代码段:包含操作系统和应用程序的所有代码。
B. 数据段:所有带有初始值的全局变量。
C. BSS 段:所有未带初始值的全局变量。
D. 堆空间:动态分配的内存空间。
E. 栈空间:保存上下文以及函数调用时的局部变量和形参。

在实模式存储管理方案下,主要的工作在于 堆空间的管理,即如何来管理空闲的堆空间、如何来分配内存、如何来回收内存等等。

(2)保护模式:处理器中必须有 U MMU 硬件并启用。特点有:

A. 系统内核和用户程序都有各自独立的地址空间。
B. 每个应用程序只能访问自己的地址空间,不能去破坏操作系统和其他应用程序的代码和数据。

6 、分区存储管理

为了实现多道程序系统而采用的最简单的内存管理。基本思路:把整个内存划分为两大区域,即系统区和用户区,然后再把用户区划分为若干个分区,每个任务占有其中的一个分区。这样,在内存当中就同时保留多个任务,让他们共享整个用户区,从而实现多个任务的并发运行。

分区存储管理又可以分为两类: 固定分区和 可变分区。

(1)固定分区:各个用户分区的个数、位置和大小一旦确定后,就固定不变,不能再修改。

优点:易于实现,系统开销较小。

缺点:内存利用率不高,分区总数固定。

(2)可变分区:动态创建,在装入一个程序时,系统将根据它的需求和内存空间的使用情况来决定是否分配。

优点:动态变化,非常灵活。

缺点:可能存在外碎片。

在实现可变存储管理技术的时候,需要考虑三个方面的问题:

A. 内存管理的数据结构
B. 内存的分配算法
C. 内存的回收算法

7 、地址映射

地址映射也叫地址重定位。逻辑地址和物理地址是完全不同的,不能用逻辑地址来直接访问内存单元。为了保证 CPU 在执行指令的时候,可以正确地访问内存单元,需要将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。这个过程称为: 地址映射。地址映射由存储管理单元 MMU 来完成。

(1)地址映射主要有两种方式:静态地址映射和动态地址映射。

A、静态地址映射:当用户程序被装入内存时,直接对指令代码进行修改,一次性地实现逻辑地址到物理地址的转换。

B、动态地址映射:当用户程序被装入内存时,不对指令代码做任何修改,而是在程序的运行过程中,当它需要访问内存单元的时候,再来进行地址转换。在具体实现时,这项转换工作一般是由硬件的地址映射机制来完成的。通常设置一个 基地址寄存器 ,或者叫重定位寄存器。当一个任务被调度运行时,就把它所在分区的起始地址装入到整个寄存器中。然后 ,在程序运行的过程中,当需要访问某个内存单元时,硬件就会自动地将其中的逻辑地址加上基地址寄存器中的内容,从而得到实际的物理地址,并且按照这个物理地址区执行。这个基地址寄存器位于 MMU 的内部,整个地址映射过程是自动运行的。从理论上说,每访问一次内存都要进行一次地址映射。

8 、页式存储管理(重点)

(1)基本思路:把物理内存划分为许多固定大小的内存块,称为 物理页面;把逻辑地址空间也划分为大小相同的块,称为 逻辑页面。当一个用户程序被装入内存时,不是以整个程序为单位,把它存放在一整块连续的区域,而是以页面为单位来进行分配的。对于一个大小为 N 的页面程序,需要有 N 个空闲的物理页面来把它装载。这些物理页面不一定是要连续的。在页式存储管理中需要解决三个问题:数据结构、内存分配与回收、地址映射。

数据结构有两个:页表和物理页面表。

A. 页表:给出了任务逻辑页面号和内存中物理页面号之间的对应关系。
B. 物理页面表:描述内存空间中,各个物理页面的使用情况。

内存的分配过程:

A. 对于一个新来的任务,计算它所需要的页面数 N,然后查看位示图,看是否还有 N 个空闲的物理页面。
B. 如果有足够的空闲物理页面,就去申请一个页表,其长度为 N,并把页表的起始地址填入到该任务的控制块中。
C. 分配 N 个空闲的物理页面,把他们的变换填到页表中,建立逻辑页面与物理页面直接的对应关系。
D. 修改位示图,对刚刚被占用的那些物理页面进行标记。

(2)地址映射的基本思路:

A. 逻辑地址分析:对逻辑地址,找到它所在的逻辑页面,以及它在页面内的偏移地址。
B. 页表查找:根据逻辑页面号,从页表中找出它对应的物理页面号。
C. 物理地址合成:根据物理页面号和页内偏移地址,最终确定物理地址。
  
(3)逻辑地址分析:

页面的大小都是2的整数次幂。对于给定的一个逻辑地址,可以直接把它的高位部分作为逻辑页面号 ,把它的低位部分作为页内偏移地址。例如,假设页面的大小是4KB,即2的12次幂,逻辑地址为32为,那么在一个逻辑地址当中,最低12位为页内偏移地址,而剩下的20位就是逻辑页面号。

计算方法:
逻辑页面号=逻辑地址/页面大小
页内偏移量=逻辑地址%页面大小

页表查找:
页表作为操作系统的一个数据结构,通常保存在内核的地址空间中。页表基地址寄存器用来指向页表的起始地址;页表长度寄存器用来指示页表的大小,即对于当前任务,它总共包含有多少个页面。

物理地址合成:
假设物理页面号为 f,页内偏移地址为 offset,每个页面大小为2n ,那么相应的物理地址为: f×2n+offset。

9 、虚拟存储管理

(1)程序局部性原理: 时间局限性和 空间局限性。
(2)虚拟页式存储管理:在页式管理的基础上,增加了 请求调页和 页面置换的功能。

(3)基本思路 :当一个用户程序需要调入内存去运行时,不是将这个程序的所有页面都装入内存,而是只装载部分的页面,就可以启动这个程序运行。在运行过程中,如果发现要执行的指令或者访问的数据不在内存当中,就向系统发出缺页中断请求,然后系统在处理这个中断请求时,就会将保存在外存中的相应页面调入内存,从而使该程序能继续运行。在虚拟页式存储管理中,页表包含:逻辑页面号、物理页面号、驻留位、保护位、修改位和访问位。  

(4)常用的页面置换算法:

A. 最优页面置换算法:理想化算法。
B. 最近最久未使用算法:链表法和栈方法。寻找长时间没有被访问的页面。
C. 最不常用算法:每个页面设置一个访问计数器。
D. 先进先出算法:性能比较差。
E. 时钟页面置换算法:把页面组成环形链表,类似时钟面。

一般来说,当一个任务刚刚启动的时候,它会不断去访问一些新的页面,然后逐步建立一个比较稳定的工作集。 工作集是指当前任务正在使用的逻辑页面的集合。如果分配给一个任务的物理页面数太少,不能包含整个的工作集,任务将会造成很多缺页中断,需要频繁地进行页面置换,这种现象称为“ 抖动”。

转自: 沉舟侧畔

围观 25
949

1 、嵌入式软件基础

(1)嵌入式软件的特点:
A、规模较小。
B、开发难度大。
C、实时性和可靠性要求高。
D、要求固化存储。

(2)嵌入式软件分类:
A、 系统软件:控制和管理嵌入式系统资源,如嵌入式操作系统、驱动程序、中间件等。
B、 应用软件:定义嵌入式设备的主要功能和用途,负载与用户进行交互。
C、 支撑软件:辅助软件开发的工具软件。

(3)无操作系统的嵌入式软件的两种实现方式:

A、 循环轮转
优点:简单、直观、开销小、可预测。
缺点:过于简单,所有代码顺序执行,无法处理异步事件,缺乏并行处理能力。

B、 前后台系统(在循环轮转的基础上增加了中断处理功能)
前台(事件处理级):中断服务程序,负载处理异步事件。
后台(任务级):一个无限循环,负载资源分配、任务管理和系统调度。

(4)有操作系统的三大优点:
A、提高系统的可靠性。
B、提高了系统的开发效率,降低了开发成本,缩短了开发周期。
C、有利于系统的扩展与移植。

(5)设备驱动层(也叫板级支持包 BSP :包含了嵌入式系统中所有与硬件相关的代码)

大多数的嵌入式硬件设备都需要某种类型软件的初始化和管理。这部分工作由设备驱动层来完成的,它负责直接与硬件大交道,对硬件进行管理和控制,为上层软件提供所需的驱动支持,类似 PC 系统中的 BIOS 和驱动程序。

(6)板级支持包BSP的基本思想

把嵌入式操作系统与具体的硬件平台隔离开来。在 BSP 当中,把所有与硬件相关的代码都封装起来,并向上提供一个虚拟的硬件平台,而操作系统就运行在这个虚拟的硬件平台上。它使用一组定义好的编程接口来与 BSP 进行交互,并通过 BSP 来访问真正的硬件。

(7)一般来说 BSP 主要包括两个方面的内容:
A、 引导加载程序 BootLoader。
B、 设备驱动程序。

(8)关于引导加载程序 BoorLoader

引导加载程序是嵌入式系统加电后运行的第一段软件代码,是在操作系统内核运行之前运行的一段小程序,它的实现高度依赖于具体的硬件平台,主要的基本功能如下:

A、 片级初始化:纯硬件初始化过程,把微处理器从上电的默认状态设置成系统要求的工作状态。
B、 板级初始化:同时有软件和硬件在内的初始化过程,设置各种硬件的寄存器和设置某些软件的数据结构和参数。
C、 加载内核:将操作系统和应用程序的映象从 Flash 存储器复制到系统内存当中,然后跳转到系统内核的第一条指令处继续执行。

补充: PC 系统的引导加载过程。

PC 系统的引导加载程序由两部分代码组成――BIOS 和 MBR 中的引导程序。BIOS 在完成硬件检测和资源配置后,将硬盘主引导记录 MBR 中的引导程序读到系统的内存当中,然后将控制权交给它,由它负责把操作系统的内核映象从硬盘读入到内存,然后跳转到内核入口去运行,即启动操作系统。

(9)设备驱动程序

在一个嵌入式系统中,操作系统可能有也可能无,但是设备驱动程序是必不可少的。设备驱动程序, 就是一组库函数,用来对硬件进行初始化和管理,并向上层软件提供良好的访问接口。大多数设备驱动程序都具备下面的基本功能: 启动、关闭、停用、启用、读操作、写操作。这些功能一般用函数的形式来实现,这些函数之间的组织结构主要有两种 :分层结构和 混合结构。

(10)关于分层结构

A、硬件接口:直接操作和控制硬件。

B、调用接口:不直接跟硬件大交道,为上层软件提供服务和函数接口。

C、优点:把所有与硬件相关的细节都封装在硬件接口中,在硬件需要升级,需要更新设备驱动程序的时候,只需要改动硬件接口中的函数即可,而上层调用接口中的函数不用做任何修改。

D、混合结构:在设备驱动程序当中,没有明确的层次关系,上层接口和硬件接口混在一起,相互调用。

(11)嵌入式中间件它是在操作系统内核、设备驱动程序和应用软件之外的所有系统软件,其 基本思路是:把原本属于应用软件层的一些通用的功能模块抽取出来,形成独立的一层软件,从而为运行在它上面的那些应用软件提供一个灵活、安全。移植性好、相互通信、协同工作的平台。

2 、嵌入式操作系统概述

(1)内核
内核是指操作系统中的一个组件,它包含了 OS 的主要功能,即 OS 的各种特性及其相互之间的依赖关系,这些功能主要包括:

A、 任务管理:对系统中运行的软件进行描述和管理,并完成处理器资源分配和调度。
B、 存储管理:提高内存的利用率,方便用户使用,提供足够的存储空间。
C、 设备管理:方便设备的使用,提高 CPU 和 I/O 设备的利用率。
D、 文件管理:解决文件资源存储、共享、保密和保护等问题。
注:不同嵌入式操作系统的内核设计各不相同,取决于系统设计和实际需求。

(2)嵌入式操作系统分类:

A、按系统类型:商业系统、专用系统、开源系统。
B、按响应时间:硬实时系统、软实时系统。
C、按软件结构:单体结构(uCOS)、分层结构(MS-DOS)、微内核结构(Vxworks)。

3 、任务管理

(1)嵌入式操作系统的任务管理可以分为:

A、单道程序技术:操作系统中,任何时候只能有一个程序在运行。
B、多道程序技术:操作系统中,允许多个程序同时存在并运行。

(2)进程

进程,简单的说,是一个正在运行的程序。进程与程序既有联系又有区别,主要表现为下面结构方面:

A、程序由 数据和 代码两部分内容组成,它是一个 静态的概念。而进程是正在执行的程序,它也由两部分组成: 程序和该程序的 运行上下文。它是一个 动态的概念。

B、程序和进程之间并不是一一对应的。一个进程在运行的时候可以启动一个或多个程序。反之,同一个程序也可能由多进程同时执行。

C、程序可以作为一种软件资源长期保存,以文件的形式存放在光盘或硬盘上,而进程则是一次执行的过程,它是暂时的,是动态的产生和终止。一个进程至少应包括三个方面: 相应的程序、 CPU 上下文、一组系统资源。

进程有三个特性:

A、动态性:进程是正在运行的程序,而程序的运行状态是不断变化的。
B、独立性:进程是系统资源的使用单位,每个进行有自己的运行上下文和内部状态。
C、并发性:宏观来看,系统中同时有多个进程存在,它们相互独立地运行。

注:对于并发的理解。

在单 CPU 的情况下,所谓的并发性指的是宏观上的并发运行,而微观上还是顺序进行,各个进程轮流去使用 CPU 资源。在单核 CPU 中,真正的、物理上的 PC 寄存器只有一个,进程在轮流执行的时候,物理 PC 的取值也在不断变化。而逻辑 PC 其实就是一个内存变量。每个进程都有一个逻辑 PC,当一个进程要运行的时候,就把它的逻辑 PC 装载到物理 PC 中去;反之,当一个进程暂不运行的时候,就把物理 PC中的值保存在它的逻辑 PC 当中。

(3)线程

线程就是进程当中的一条执行流程。进程其实包含两个部分:资源平台和执行流程(线程)。在一个进程当中,或者说在一个资源平台上,可以同时存在多个线程;可以用线程作为 CPU 的基本调度单位,使得各个线程之间可以并发执行;对于同一个进程当中的各个线程来说,他们可以共享该进程的大部分资源。 每个线程都有自己独立的 CPU 运行上下文和栈,这是不能共享的。

(4)任务

在嵌入式系统中,任务其实就是线程,它是能够独立运行的一个实体。原因有二:

A、 任务具有独立的优先级和栈空间,CPU 上下文一般存放在栈空间中。

B、 任务之间可以很方便地、直接地使用共享的内存单元,而不需要经过系统内核。在多道程序的嵌入式系统中,同时存在着多个任务,这些任务之间的结构一般为 层状结构,存在着 父子关系。当嵌入式内核刚刚启动的时候,只有一个任务存在,然后由该任务派生出所有其他任务。

(5)任务的创建与中止

任务的创建主要发生在以下三种情形:

A、 系统初始化。
B、 任务运行的过程中。
C、 用户提出请求。

从技术的角度来说,实际上新任务只有一种创建的方法,也就是在一个已经存在的任务中,通过调用相应的系统函数来创建一个新的任务。任务的创建只要有两种可能的实现模型:fork/exec 和 spawn。两种模型的差别主要在于内存的分配方式。

A、fork/exec 模型下,首先调用 fork 函数为新任务创建一份与父任务完全相同的内存空间,然后再调用 exec 函数装入新任务的代码,并用它来覆盖原有的属于父任务的内容。 嵌入式 Linux 操作系统是基于 fork/exec 模型的。

B、spawn 模式下,在创建新任务的时候,直接为它分配一个全新的地址空间,然后将新任务的代码装入并运行。 S uCOS 操作系统是基于 spawn 模型的。

任务的中止可能有多种原因,主要有下面三种情况:

A、 正常退出。
B、 错误推出。
C、 被其他任务踢出。

在有些嵌入式系统中,尤其是一些控制系统中,它的某些任务被设计为“死循环”的模式,一直循环下去,不会中止。

(6)任务的状态

任务有三中基本状态:

A、运行状态:任务占有 CPU,并在 CPU 上运行。
B、就绪状态:任务已经具备运行的条件,在等待 CPU 空闲。
C、阻塞状态:任务因为正在等待某种事件的发生而暂时不能运行。

对于就绪状态和阻塞状态,它们的相同之处在于,任务都是处于暂停状态,没有运行 。不同之处在于,暂停的原因是不一样的,导致就绪状态的原因是外因,是操作系统的 CPU正忙,而导致阻塞状态的原因是内因,是任务自身的问题。

任务状态的四种转换关系:
A、 运行 -> 阻塞:任务由于等待某个时间被阻塞起来。
B、 运行 -> 就绪:调度器由于某种原因(例如优先级)选择了另一个任务去运行。
C、 就绪 -> 运行:CPU 空闲了,处于就绪状态的任务被调度器选中去运行。
D、 阻塞 ->就绪:任务的等待事件完成,具备了继续运行的条件。

(7)任务控制块 TCB

任务控制块 TCB,就是在操作系统中,用来描述和管理一个任务的数据结构。系统为每一个任务都维护了一个相应的 TCB,用来保存该任务的各种相关信息。它的主要内容包括下面几项:

A、任务的管理信息:任务的标识 ID、状态、优先级、调度信息、各种队列指针等。
B、CPU 上下文信息:CPU 各种寄存器当前的值以及逻辑寄存器。
C、资源管理的信息:段表地址、页表地址、根目录、文件描述字等。

当需要创建一个任务的时候,就为它生成一个 TCB,并初始化这个 TCB 的内容;当需要中止一个任务的时候,只要回收它的 TCB 就可以了。

(8)任务的切换

基本思想:把当前任务的运行上下文保存起来,并恢复新任务的上下文。任务切换通常有下面的 基本步骤:
A、将处理器的运行上下文保存在当前任务的 TCB 中。
B、更新当前任务的状态,从运行状态变为就绪状态或阻塞状态。
C、按照一定的策略,从所有处于就绪状态的任务中选择一个去运行。
D、修改新任务的状态,从就绪状态变成运行状态。
E、 根据新任务的 TCB 的内容,恢复它的运行上下文环境。

在一个多任务的操作系统中,采用 任务队列的方式来组织它的所有任务。由操作系统来维护一组队列,用来表示系统当中所有任务的当前状态,不同的状态用不同的队列来标志。

(9)任务的调度

调度器可以看作 CPU 的资源管理者。任务调度的首要问题是:何时进行调度,即调度发生的时机。一般有下面几种情形:

A、一个新任务被创建时,需要决定运行新任务还是继续执行父任务。
B、一个任务运行结束时,需要从就绪队列中选择某个任务去运行。
C、一个任务运行阻塞时,需要选择另一个任务去运行。
D、一个 I/O 操作完成,任务阻塞结束,立即执行新就绪任务还是继续执行被中断任务。
E、一个时钟节拍结束时,需要对就绪任务重新调度。

任务调度的第二个问题是:如何调度,即调度方式。主要有两种方式:

A、 不可抢占调度方式:例如时间片轮转。
B、 可抢占调度方式:例如优先级调度。

实时操作系统大都采用可抢占调度方式。

任务调度的第三个问题是:调度算法。

A、先来先服务算法:按照任务到达的先后次序进行调度,是不可抢占的调度方式。

B、短作业优先算法:各个任务开始执行之前,事先预计好它的执行时间,从中选择用时较短的任务优先执行。

C、时间片轮转算法:所有的就绪任务按照先来先服务的原则排成一个队列。在每次调度的时候,把处理器分派给队列当中的第一个任务,让它去执行一小段时间。在这个时间段里任务被阻塞或由于其他原因暂停,或者任务的时间片用完了,它会被送到就绪队列的末尾,然后调度器再执行当前队列的第一个任务。这种算法的优点是各个就绪任务都平均地分配使用 CPU 的时间,每个就绪任务都能一直保持着活动性。时间片轮转法有一个默认前提,即位于就绪队列中的各个任务是同等重要的。

D、优先级算法:给每个任务都设置一个优先级。然后在任务调度的时候,在所有处于就绪状态的任务中选择优先级最高的那个任务去运行。采用优先级调度算法的一个
问题是可能会发生 优先级反转 ,出现任务“ 饥饿”现象。

(10)实时系统调度

对于 RTOS 调度器来说,任务之间的公平性并不是最重要的,它追求的是 实时性。

A、 单调速率调度算法( RMS):任务的优先级与它的周期表现为单调函数的关系,任务的周期越短,优先级越高,任务的周期越长,优先级越低。RMS 假定任务是相同独立的 、周期性的、任务在能够在任何位置被抢占,而实际中的系统,任务之间需要进行通信和同步 ,这是一种理想的调度方法,实际中并不一定存在。

B、 最早期限优先法( EDF) ):根据任务的截止时间来确定其优先级,对于时间限期最近的任务,分配最高的优先级。当有一个新的任务处于就绪状态时,各个任务的优先级就有可能要进行调整,选择截止时间最近的任务去运行。

(11)任务互斥

A、任务之间的关系:相互独立、任务互斥、任务同步、任务通信。

B、任务间的互斥:当前已经有一个任务正在访问临界区共享数据,那么其他任务暂时不能访问。

C、提出互斥访问的四个条件:
a、在任何时候最多只能有一个任务位于它的临界区中。
b、不能事先假定 CPU 的个数和系统的运行速度。
c、没有任务位于它的临界区中,它不妨碍其他任务去访问临界区资源。
d、任何一个任务进入临界区的请求必须在有限的时间内得到满足,不能无限期。

D、任务互斥的解决方案:
a、关闭中断法
b、繁忙等待法
c、信号量处理

(12)信号量

信号量记录当前可用资源的数量。信号量由操作系统维护,任务不能直接去修改它的值,只能通过初始化和两个标准原语(PV 原语)来对它进行访问。

注:关于原语。

原语通常由若干条语句组成,用来实现某个特点的操作,并通过一段不可分割或不可中断的程序来实现其功能。原语时操作系统内核的一个组成部分,必须在内核态下执行。原语的不可中断性是通过在其执行过程中关闭中断来实现的。

关键要理解 PV 原语的实现:

P(semaphores S)
  {
    --S.count; //申请一个资源
    if(S.count     {
      将当前任务阻塞起来,加到阻塞队列末尾,调度新的任务运行。
    }
   }
  V(semaphores S)
  {
    ++S.count; //释放一个资源
    if(S.count     {
      从阻塞队列中取出一个任务,把该任务改为就绪状态,插入就绪队列。
    }
  }
利用操作系统提供的信号量机制,可以方便、有效地实现对临界资源的互斥访问,优点有两个:

A、 可以设置信号量的计数值,从而允许多个任务同时进入临界区。
B、 当一个任务暂时无法进入临界区时,它会被阻塞起来,将 CPU 让给其他任务。

(13)任务同步

任务之间的同步可以使用信号量机制,通过引入 PV 操作来设定两个任务在运行时的先后顺序。例如,可以把信号量视为某个共享资源的当前个数,然后由一个任务负责生成这种资源,而另一个任务则负责消费这种资源,这样可以构成两个任务之间的先后顺序。在具体实现上,一般把信号量的初始值设为 N,N 大于或等于0。然后在一个任务内使用 V 原语 ,把信号量加1,而在另外一个任务内部使用 P 原语,将信号量减1,从而实现这两个任务之间的同步关系。

(14)死锁

在一组任务中,每个任务都占用着若干资源,同时又在等待其他任务占用的资源,从而造成所有任务都无法进展下去的现象,这称为死锁现象。除了资源的竞争之外,PV 操作使用不当也会引起死锁。

(15)信号

所谓信号,是系统给任务的一个指示,表明某个异步事件已经发生了。该事件可能来自外部,也可能来自内部。信号机制也可以称为软中断机制。信号机制与中断处理机制非常相似,相同点:

A、 都具有中断性。
B、 都有相应的服务程序。
C、 都可以屏蔽响应。

不同点:
A、 中断由硬件或特定指令产生,而信号由系统调用产生。
B、 中断触发后,硬件会根据中断向量找到相应的处理程序执行;而信号则通过发送信号的系统调用来触发,系统不一定马上对它进行处理。
C、 中断处理程序在系统内核的上下文中运行,是全局的;而信号处理程序在相关任务的上下文中运行,是任务的一个组成部分。

(16)任务间通信

任务之间的通信可以分为两种类型:
A、 低级通信:只能传递状态和整数值等控制信息,例如信号量机制。
B、 高级通信:能够传输任意数量的数据,只要有三类: 共享内存 、 消息传递和管道。

任务之间的通信方式有两种:
A、 直接通信:通信双方必须明确知道与之通信的对象。例如 PV 原语。
B、 间接通信:通信双方不需指出消息的来源和去向,通过共享邮箱发送和接收消息。
邮箱只能存放单条消息,它提供一种低开销的消息传递机制,只有空和满两种状态。 消息队列与邮箱类似,但是可以同时存放若干条消息,提供了一种任务间缓冲通信的方法。管道由 UNIX 首创,以 文件系统为基础,连接两个任务之间的一个打开的共享文件,专用于任务直接的数据通信。

4 、设备管理

(1)设备管理基础

一个 I/O 单元通常由两个部分组成:

A、 机械部分:I/O 设备本身。

B、 电子部分:设备控制器或设备适配器。

硬件寄存器的编址方式有三种:
A、 I/O 独立编址:对于各种设备控制器中的每一个寄存器,分配一个唯一的 I/O 端口编号,也叫 I/O 端口地址,然后用专门的 I/O 指令对这些端口进行操作。这些端口地址构成的地址空间是完全独立的,与内存地址空间没有任何关系。
B、 内存映象编址:把各种设备控制器当中的每一个寄存器都映射为一个内存单元,这内存单元专门用于 I/O 操作。端口地址空间与内存地址空间是统一编址的,端口地址空间是内存地址空间的一部分。
C、 混合编址:对于设备控制器当中的寄存器采用独立编址的方法,每个寄存器有一个独立的 I/O 端口地址;而对于设备的数据缓冲区,则采用内存映象编址的方法,把他们统一到内存地址空间当中。

(2) I/O 控制方式:

A、 程序循环检测:要一直占用 CPU,浪费 CPU 的时间。

B、 中断驱动方式:前后台系统。

C、 直接内存访问:DMA 控制,减少了中断的次数。

(3) I/O 软件

A、 中断处理程序:当一个用户程序需要某种 I/O 服务时,它会去调用相应的系统函数 ,而这个函数又会去调用相应的设备驱动程序,在驱动程序中会启动相应的 I/O 操作,并且被阻塞起来,直到这个 I/O 操作完成后,产生一个中断程序,并跳到相应的中断处理程序,在这里将会唤醒被阻塞的驱动程序。

B 设备驱动程序:直接同 I/O 设备打交道,直接对它们进行控制的软件模块。上层的 I/O软件通过抽象的函数接口与设备驱动程序打交道,这些接口是标准的、稳定不变的,而硬件设备的具体细节被封装在设备驱动程序里面。设备驱动程序的管理通过驱动程序地址表来实现。驱动程序表中存放了各个设备驱动程序的入口地址,可以通过此表来实现设备驱动的动态安装与卸载。

C、 设备独立 I/O 软件:这部分软件在设备驱动程序的上面,是独立的 I/O 软件,也是系统内核的一部分,主要任务是实现所有设备都需要的一些通用 I/O 功能,并向用户级的软件提供一个统一的访问接口。

D、 用户空间的 I/O 软件:大部分的 I/O 软件都是包含在操作系统当中的,也有一小部分运行在系统内核之外。主要可以分为下面两种:
a、与用户程序进行链接的库函数:例如 C 语言中与 I/O 相关的库函数。
b、完全运行在用户空间当中的程序:例如 Spooling 技术。

注: Spooling 技术
Spooling 是“外围设备联机操作”的所写,spooling 技术也叫假脱机技术或虚拟设备技术,它可以把一个独占的设备转变为具有共享特征的虚拟设备。在多道系统中,对于一个独占设备,专门利用一道程序来增强该设备的 I/O 功能。优点有二:能提供高速的虚拟 I/O 服务;能实现对独占设备的共享。

5 、文件系统

(1)嵌入式文件系统概述

文件系统就是操作系统中用以 组织、存储、命名、使用和 保护文件的一套管理机制。常见的嵌入式文件系统有:
A、 FAT :VxWorks、QNX、WindowsCE 等
B、 NFS:网络文件系统,基于远程调用和扩展数据表示。
C、 FFS:用于 Flash 存储器的文件系统。

(2)文件和目录

A、当一个文件被创建时,必须给它指定一个名字,用户就是通过 文件名来访问这个文件的。
B、文件命是一个有限长度的字符串,由两部分组成: 文件名和 扩展名。
C、文件的逻辑结构主要有三种:无结构、简单的记录结构和复杂结构。现代文件系统通常采用的是无结构的形式。
D、除了文件名之外,操作系统会给每个文件附加一些其他信息,称为 文件的属性。
E、文件的存取方法有两种: 顺序存取和 随机存取。
F、目录也称为文件夹,它是一张 表格,记录了在该目录下每个文件名和其他的一些管理信息。
G、在多级目录结构中,访问文件或目录主要有两种方法: 绝对路径名和 相对路径名。

(3)文件系统的实现

A、数据块:在磁盘中以扇区为单元进行读写操作。对文件系统而言,把磁盘空间划分为一个个大小相同的块,称为物理块,每个物理块包含若干个连续的扇区,同时把文件的字节流也分成大小相同的逻辑块。在文件系统内部,以块为单位来进行操作,把每一个逻辑块保存在一个物理块中。

B、文件的实现需要解决两个方面的问题:
a、如何描述一个文件。
b、如何存储一个文件。

C、文件控制块(FCB):它是 文件的描述方法,是操作系统为了管理文件而设置的一种 数据结构,里面存放了与文件有关的所有管理信息, FCB 是文件存在的标志。

D、文件的物理结构:连续结构、链表结构和索引结构。

连续结构:把文件的各个逻辑块按照顺序存放在若干个连续的物理块当中。主要用于CD-ROM 等一次性写入的光学存储介质当中。

链表结构:把文件的各个逻辑块依次存放在若干个物理块当中,这些物理块既可以是连续的,也可以是不连续的,然后在各个块之间通过指针连接起来,前一个物理块指向下一个物理块,从而形成一条链表。带有文件分配表的链表结构:在链表结构的基础上,把每一个物理块当中的链表指针抽取出来,单独组成一个表格,就是文件分配表( FAT )。如果要随机访问文件的地 n 个逻辑块,可以先从 FAT 表中查到相应的物理块地址,然后根据这个地址直接去访问磁盘。索引结构:把文件当中每一个逻辑块所对应的物理块编号直接记录在这个文件的文件控制块当中,这样的文件控制块称为是 I 节点,或索引节点。这样,对于系统中的每一个文件,都有一个自己的索引节点,通过这个索引节点就能够直接实现逻辑块与物理块之间的映射关系。

(4)目录的实现

A、 直接法:把文件控制块的内容直接保存在目录项当中,因此每个目录项就等于某个文件名加上它的 FCB。

B、 间接法:目录项里面只有文件名和该文件的 FCB 所在地址。不管是那一种类型的实现方法,目录的基本功能都一样,即用户给出一个文件名,就返回相应文件的 FCB。

(5)空闲空间管理方法:
 
A、位图法。
B、链表法。
C、索引法。

转自: 凌潇-博客园

围观 7
858

1 、嵌入式系统的定义

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

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

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

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

2 、嵌入式系统的组成: 硬件层、中间层、系统软件层和应用软件层

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

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

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

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

BSP 有两个特点:硬件相关性和操作系统相关性。设计一个完整的 BSP 需要完成两部分工作:

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

片级初始化:纯硬件的初始化过程,把嵌入式微处理器从上电的默认状态逐步设置成系统所要求的工作状态。
板级初始化:包含软硬件两部分在内的初始化过程,为随后的系统初始化和应用程序建立硬件和软件的运行环境。
系统级初始化:以软件为主的初始化过程,进行操作系统的初始化。

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

(3)系统软件层:由 RTOS、文件系统、GUI、网络系统及通用组件模块组成。RTOS 是嵌入式应用软件的基础和开发平台。

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

3 、实时系统

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

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

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

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

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

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

4 、实时系统的调度

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

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

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

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

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

(6)实时任务分类:周期任务、偶发任务、非周期任务。

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

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

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

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

(3)CISC 与 RISC 的特点比较 。
计算机执行程序所需要的时间 P 可以用下面公式计算:
    P=I × CPI ×T
    I:高级语言程序编译后在机器上运行的指令数。
    CPI:为执行每条指令所需要的平均周期数。
    T:每个机器周期的时间。

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

(5)流水线的指标:

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

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

(6)信息存储的字节顺序
  A、存储器单位:字节(8 位)
  B、 字长决定了微处理器的寻址能力,即虚拟地址空间的大小。
  C、32 位微处理器的虚拟地址空间位 2^32 ,即 4GB。
  D、 小端字节顺序:低字节在内存低地址处,高字节在内存高地址处。
  E、 大端字节顺序:高字节在内存低地址处,低字节在内存高地址处。
  F、网络设备的存储顺序问题取决于 OSI 模型底层中的 数据链路层。

6 、逻辑电路基础

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

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

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

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

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

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

每输入一个 n 位的二进制代码,在 m 个输出端中最多有一个有效。当 m=2^n 时,为 全译码;当 m

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

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

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

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

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

7 、总线电路及信号驱动

(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)对总线仲裁问题的解决是以优先级(优先权)的概念为基础。

8 、电平转换电路

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

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

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

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

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

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

   正数的反码与源码相同,负数的反码为该数的源码除符号位外按位取反。
   正数的补码与源码相同,负数的补码为该数的反码加一。
   例如-98 的源码:11100010B
       反码:10011101B
       补码:10011110B

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

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

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

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

(5)语音编码中波形量化参数

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

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

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

10 、差错控制编码

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

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

11 、嵌入式系统的度量项目

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

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

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

(4)可用性

(5)功耗

(6)环境适应性

(7)通用性

(8)安全性

(9)保密性

(10)可扩展性

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

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

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

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

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

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

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

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

转自: 凌潇-博客园

围观 14
973

在嵌入式系统中,异步串口(UART)使用非常频繁,可以用于与各种外部系统(帧括PC)之间的通信。在硬件上UART通过在每个字节的传输中插入开始位和停止位,保证接收端可以正确地找到字节的开始和结束,同时也可以通过插入奇偶校验位,让接收端检验收到的字节是否正确。而且,由于有开始位和停止位的存在,使得字节之间可以插入任意的空闲位(与停止位同为高电平),而不影响下一个字节的正常传输。因此,UART硬件保证了每个字节的正确传输,并可以有效检出字节传输的错误。但并不保证一串字节的正确传输,这需要软件来完成。

从软件的角度来看,所有的通信都是一串字节(叫做数据帧)的连续传输。软件需要采用适当的机制来保证接收端能够正确识别出一个完整的数据帧、能够检查接收到的数据帧是正确的、在传输发生错误时有合适的恢复机制。为此就需要定义一个合适的数据帧格式。
  
数据帧的提取
  
为了识别出一个完整的数据帧,基本上有两个机制:一是在软件上规定字节之间的间隔最大值,一旦两个字节间的间隔超过某个阈值,就认为一个数据帧结束;另一种机制不对字节间的间隔作规定,而是用特殊的字节来定义数据报的开始和结束,当收到该特殊字节时,就认为一个数据帧的传输已完成。
  
采用第一种机制的,比如Modbus-RTU。就是规定了同一个数据帧的字节间隔不能大于1.5个字节的传输时间,一旦大于该间隔,则认为前一个帧的传输已经结束,或者出错。同时为了保证不同数据帧之间有足够的间隔,还规定了两个数据帧之间最少插入3.5个字节的空闲位。下图摘自Modbus协议,表示了一个正确的数据帧、错误的数据帧以及数据帧之间的间隔。同时在数据报中引入了CRC,用于检出数据帧层面的传输错误。
  

嵌入式系统上的异步串口通信的实现嵌入式系统上的异步串口通信的实现

 
第二种机制需要选用一个特殊字节作为帧头帧尾(也可以给帧头帧尾选用不同的字节),比如说,选用0xFF作为帧头帧尾字节,也即发送端在每个数据帧的头尾都插入至少一个0xFF,接收端收到该字节就结束上一个帧的接收,同时从下一个非0xFF字节开始一个新的数据帧的接收。但该机制有一个问题,那就是所选的特殊字节(此处是0xFF)也可能是数据帧中的一个有效字节,如果不作特殊处理,接收端就可能把这个数据帧中的字节误认为是数据帧的结束标识,从而导致接收错误。因此,此处采取字节替换的特殊处理,以消除在数据帧的中间出现的特殊字节,以下是一个例子。
  
嵌入式系统上的异步串口通信的实现

  
在此处,选0xFE作为字节替换的标识字节,将0xFF替换成0xFE 0x0F。由于0xFE是字节替换的标志,也成了一个特殊字符,同样需要进行替换。在上图中,将0xFE替换成0xFE 0x0E。
  
采用该机制时,发送端对数据帧中的所有0xFF,0xFE进行替换。在接收端则进行反向替换。如果在接收端的0xFE后面的字节收到非0x0F,0x0E的字符,说明发生了传输错误,丢弃已经接收的内容,重新搜索帧头字符开始一个新数据帧的接收。
  
数据帧的校验
  
考虑到串口通信有一定的误码率,无论是采用那种传输方式,必须有错误帧检出机制。通常选用的是CRC。一般用2个字节或4个字节。
  
串口驱动的实现
  
在嵌入式系统中,串口驱动的实现一般有两个途径:一个是通过串口的收发中断与串口控制器的Buffer直接交换数据;另一种是通过DMA,利用DMA与串口Buffer交互自动收发数据。
  
与串口控制器直接交互的方式,实现简单,既可以实时进行字节替换以节省内存,也可以方便设置字节间的定时器。但频繁打断CPU,对有一定BUFFER大小的串口,还可以利用BUFFER进行性能优化,而对一些只有一个字节或两个字节BUFFER的串口,就需要一个字节起一次中断,如果CPU负荷较重,很容易由于中断处理不及时而导致字节丢失,特别是在高波特率的情况。
  
利用DMA与串口控制器交互的方式,由于不能实时进行字节替换,需要在放入DMA之前完成字节替换,导致占用较大内存空间。另外对于字节间间隔敏感的传输策略,需要用另外的机制,比如PRS,去操作定时器。用DMA的另一个问题是在接收时无法实时确定帧尾(采用帧头帧尾模式时),一般只能采用定时器与DMA配合,用字节流的方式处理接收。

转自: 电子产品世界

围观 25
1016

1.设计目的

随着科技的进步,智能化成为了人们关注的焦点,同时也越来越贴近人们的生活。人们对于健康生活方式的需求催生出了智能可穿戴设备,智能手环就属于其中的一种代表性产物。其主要应用于监测运动,监测睡眠以及智能化的安排人的生活作息方式等。是一款突出个性与人性的智能化产物。

本文讲述一套初步的智能手环解决方案,对于智能手环的设计以及制造有可行性方案指导作用。

2.用户需求

智能手环是一种穿戴式智能设备。通过这款手环,用户可以记录日常生活中的锻炼、睡眠、部分还有饮食等实时数据,并将这些数据与手机、平板、ipod touch同步,起到通过数据指导健康生活的作用。

基于嵌入式系统智能手环的设计开发
图一 智能手环样图

  
基于嵌入式系统智能手环的设计开发
表一 热门智能手环对比

  
智能手环内置低功耗蓝牙4.0模块,可以与手机、平板、PC客户端进行连接,可以随时随地设置身高、体重、步幅等信息和上传运动数据。另外,智能手环还具备社交网络分享功能,比如用户可以将睡眠质量、饮食情况和锻炼情况以及心情记录等通过绑定微博等社交网络端进行分享。
  
3.性能指标
  
3.1MCU和蓝牙模块
  
nRF51822是一款为超低功耗无线应用(ULP wirelessapplications)设计的的多协议单芯片解决方案。芯片支持BLE4.0和2.4GHZ协议栈,整合了射频发射电路,一个ARM Cortex M0核以及256KB的flash + 16KB的RAM。
  
基于嵌入式系统智能手环的设计开发
图二 nRF51822性能参数

  
nRF51822性能优点:
  
(1)内部RC振荡器的误差是2%(30分钟/天),即使校准后只能达到250ppm(22秒/天);
  
(2)外部晶振,一般能达到40ppm(3秒/天),误差非常小;
  
蓝牙BALUN可以使用分立器件,也可以使用ST定制的BAL-01D3。设计中我们使用了定制器件BAL-01D3,保证了信号的性能以及减小了的板卡尺寸。注意:如果更改nRF51822的封装,需要将定制器件型号改成BAL-02D3。
  
BALUN电路输出端,需要一个π形电路(起到阻抗匹配的作用),需要根据实际情况在三个位置上增加电容或者电感。调整的依据是根据史密斯圆图(如下图所示),把阻抗调整到中心点,达到最大的功率输出效果。
  
4.过程描述
  
智能手环功能实现流程图:
基于嵌入式系统智能手环的设计开发
图三 智能手环功能实现流程图

  
5.系统结构
  
智能手环是由数据连接模块运动传感器
三轴加速度传感器
电池(可充电或纽扣电池)
闪存芯片
蓝牙通讯模块
震动马达
指示灯或显示屏幕(有些可能没有)
NFC(目前只看见 Fitbit Flex有)
核心部件是:蓝牙传感器,ActiGraph体动记录仪等组成。其结构组成图如下:
  
基于嵌入式系统智能手环的设计开发
图四 智能手环结构图

来源: 捷配电子市场

围观 13
716

随着电子信息科学技术信息化,智能化,网络化的发展,单片机与嵌入式也获得了广阔的应用空间。本文简单分析了单片机与嵌入式系统的联系、组成结构对比等基础知识,并列举了几种适用于PIC18F系列单片机的几种嵌入式实时操作系统。

单片机与嵌入式系统组成结构对比

(1)单片机基本结构
单片机由运算器、控制器、存储器、输入输出设备构成。

(2)嵌入式系统成部分:
嵌入式系统一般由以下几组嵌入式微处理器、外围硬件设备、嵌入式操作系统、特定的应用程序。
嵌入式系统设计的第一步是结合具体的应用,综合考虑系统对成本、性能、可扩展性、开发周期等各个方面的要求,确定系统的主控器件,并以之为核心搭建系统硬件平台。

单片机与嵌入式系统的联系

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8为单片机,发展到现在的32位300M的高速单片机。

最早的单片机是Intel公司的8048,它出现在1976年。Motorola同时推出了68HC05,Zilog公司推出了Z80系列,这些早期的单片机均含有256字节的RAM、4K的ROM、4个8位并口、1个全双工串行口、两个16位定时器。之后在80年代初,Intel又进一步完善了8048,在它的基础上研制成功了8051,这在单片机的历史上是值得纪念的一页,迄今为止,51系列的单片机仍然是最为成功的单片机芯片,在各种产品中有着非常广泛的应用。

嵌入式系统的出现最初是基于单片机的,从20世纪七十年代单片机的出现到今天各式各样的嵌入式微处理器,微控制器的大规模应用,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:更容易使用、更快、更便宜。这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些单线程的程序,还谈不上“系统”的概念。

从80年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入式应用软件,这使得可以获取更短的开发周期,更低的开发资金和更高的开发效率,“嵌入式系统”真正出现了。确切点说,这个时候的操作系统是一个实时核,这个实时核包含了许多传统操作系统的特征,包括任务管理、任务间通讯、同步与相互排斥、中断支持、内存管理等功能。

其中比较著名的有Ready System公司的VRTX、Integrated System
Incorporation(ISI)的PSOS和IMG的VxWorks、QNX公司的QNX等。这些嵌入式操作系统都具有嵌入式的典型特点:它们均采用占先式的调度,响应的时间很短,任务执行的时间可以确定;系统内核很小,具有可裁剪,可扩充和可移植性,可以移植到各种处理器上;较强的实时和可靠性,适合嵌入式应用。这些嵌入式实时多任务操作系统的出现,使得应用开发人员得以从小范围的开发解放出来,同时也促使嵌入式有了更为广阔的应用空间。

90年代以后,随着对实时性要求的提高,软件规模不断上升,实时核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。这时候更多的公司看到了嵌入式系统的广阔发展前景,开始大力发展自己的嵌入式操作系统。除了上面的几家老牌公司以外,还出现了Palm OS,Win CE,嵌入式Linux,Lynx,Nucleux,以及国内的Hopen,Delta Os等嵌入式操作系统。随着嵌入式技术的发展前景日益广阔,相信会有更多的嵌入式操作系统软件出现。

适用于PIC18F系列单片机的几种嵌入式实时操作系统

如下图所示:

◆嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。因此可以这样理解上述三个面向的含义,即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。

◆嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。所以,介入嵌入式系统行业,必须有一个正确的定位。例如Palm之所以在PDA领域占有70%以上的市场,就是因为其立足于个人电子消费品,着重发展图形界面和多任务管理;而风河的Vxworks之所以在火星车上得以应用,则是因为其高实时性和高可靠性。

◆嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。目前的嵌入式系统的核心往往是一个只有几K到几十K微内核,需要根据实际的使用进行功能扩展或者裁减,但是由于微内核的存在,使得这种扩展能够非常顺利的进行。

来源: 玩转单片机

围观 18
922


从Intel公司1976年的MCS48诞生算起,微控制器已有40年的发展史。微控制器是微处理器应智能化控制需求演化出来的一个分支,突出了它的控制功能,应称之为微控制器(MCU)。微控制器具有单芯片形态、嵌入式应用方式,历史上曾广泛称它为单片机,现在,许多人都称它为嵌入式系统。

1、Intel的历史功绩

Intel公司1971推出的第1个微处理器4004虽然没有实用化,却是现代计算机发展史的里程碑事件。如果说图灵机是现代计算机的第1个里程碑事件,那么,微处理器诞生便是第2个里程碑事件。图灵机奠定了现代计算机的思想理论基础,微处理器实现了图灵机人工智力内核的梦想,其后便是现代计算机40年飞速发展的时代。

现代计算机的第3个里程碑事件,是Intel公司对通用微处理器与嵌入式处理器的探索。Intel是同时从事通用微处理器与嵌入式处理器探索并取得成功的公司。其在通用微处理器领域的贡献众所周知,在嵌入式处理器领域,虽然许多公司推出众多微控制器产品,但只有Intel公司的MCS51成为微控制器的经典体系,影响至今。

Intel公司最后一个仍可称之为里程碑事件的行为,是MCS51的开放与割舍。有人为Intel公司对MCS51的割舍感到惋息,实际上这却是Intel公司的英明之举。事实证明,在放弃MCS51后,Intel公司在通用微处理器领域迅速取得成功,并垄断了全球的PC机市场。

从图灵机到微处理器,从微处理器到通用处理器与嵌入式处理器两大分支,现代计算机有其自身的发展规律。从图灵机到电子计算机,完成了图灵机的理论探索,微处理器诞生后才找到实用化的理想道路。微处理器诞生后,迅速形成两大分支的发展态势,使现代计算机开始了蓬勃的发展道路。如果Intel公司当年不放弃MCS51,专注于通用微处理器,也许无法击退竞争对手AMD,MCS51也不会迅速成长为80C51公共主流系列。Intel的贡献使人类社会受益。

2、嵌入式系统的发展史

嵌入式系统这一词语被频繁使用还是20世纪90年代的事。嵌入式系统发展史应从微控制器诞生讲起,因为嵌入式系统主要是微控制器系统。

除了智慧、内核、集群等基本特点外,微控制器还有单机形态、嵌入方式、对物理对象的感知与控制等应用上的特点。了解这些特点有助于理解嵌入式系统的发展史。

从应用的视角,可以用粗略的线条将40年微控制器的发展史划分为3个大的时代,即单片机时代、嵌入式系统时代、物联网时代。

2.1 单片机时代

在微控制器诞生后最初的20年,是微控制器的单片机时代。微控制器诞生后,迅速进入电子技术领域,成为传统电子系统智能化改造的利器。电子工程师是微控制器应用的主流群体,他们习惯性地将微控制器看成是单个芯片的智能器件,称之为单片机(单片微控制器或单片微型计算机)。事实上,在传统电子系统智能化改造中,所有单片机都体现为嵌入式应用。这一时期,由于电子工程师单打独斗,缺乏计算机的理论基础与计算机工程方法,微控制器也较原始,工程师应用开发水平不高,主要是汇编级的软件编程,很少使用操作系统。

2.2 嵌入式系统时代

从20世纪90年代中期开始,微控制器应用进入到嵌入式系统时代。随着传统电子系统智能化改造日渐火爆,众多计算机界人士开始介入单片机领域。由于计算机人士的不断增多,高级语言、操作系统、集成开发环境、计算机工程方法逐渐普及。计算机界人士不习惯“单片机”称谓,更愿意使用嵌入式系统一词,致使“嵌入式系统”称谓流行至今,可以看出,嵌入式系统时代是电子技术与计算机技术交叉融合的发展时代。此后,人们习惯性地将微控制器系统称作嵌入式系统,有些业内专家认为“单片机”片面突出单片形态,“嵌入式系统”片面突出嵌入式应用,建议改名为智能电子系统,但智能系统又易于与产品系统混淆。

2.3 物联网时代

在经历了20年的单片机时代、近15年的嵌入式系统时代后,微控制器及其应用技术日趋成熟。嵌入式系统经历了单机物联、分布式物联、总线物联、局域物联网,将互联网推进到物联网后,嵌入式系统便从以往的独立产业进入到物联网的应用服务时代。嵌入式系统成为物联网、大数据、云计算等大科技中的一个成员。

3、Intel对微控制器的贡献

微控制器与通用计算机都源于微处理器,但它们的体系结构和演化道路却截然不同。通用计算机完全在通用微处理器的演化道路上前行;微控制器则经历了探索、完善、百花齐放、产业转型4个发展阶段。与此同时出现了微控制器(Microcontroller Unit)、嵌入式系统(Embedded System)的演化历程。

3.1 微控制器的探索

最早的微控制器探索,应该是1974年仙童半导体公司的F8系列。F8并非单片形态,它是由8位CPU与3851(1 KB ROM、定时/计数器和两个并行I/O口)两个芯片构成,确立了微控制器数据存储器与程序存储器分开的哈佛结构。由于此时的仙童公司处于低谷时期,F8系列没有得到进一步完善。

其后,众多的半导体厂家开始了微控制器的探索,其主导思想是单芯片的内核化探索,即在微处理基础上,设计出用于智能化控制的单芯片计算机。这一时期出现了两种不同的探索道路,即与通用微处理器兼容的嵌入式微处理器和独创的单片微控制器。

与通用微处理兼容的嵌入式微处理器的典型代表是1978年Motorola公司推出的6801系列。6801与通用微处理器MC6800兼容,它将MC6800系列的6800(CPU)+6875时钟+6810(128 B RAM)+2×6830(1 KB ROM)+1/2并行I/O口6821+1/3(定时/计数器)+6805(串行I/O口)整合成一个可以用于控制的单芯片微型计算机。
1976年,富有创造精神的Intel公司独辟蹊径,开始了全新体系结构的单芯片微控制器的探索,推出了MCS48系列。在获得成功后,迅速完善到MCS51,使其成为微控制器的经典体系结构。

3.2 微控制器完善至经典体系

在探索阶段,仙童公司的F8后继无力,Motorola公司的6801系列并不理想,具有全新微控制器体系结构的MCS48获得成功后迅速完善到MCS51,确立了用于智能化控制的单芯片专用体系结构。在这个专用体系结构中,采用了数据空间与程序空间独立的哈佛结构。哈佛结构保证了被固化的软件不受病毒侵袭;完善了总线结构,包括内部16位寻址的两个独立空间的8位并行总线,以及用于外部通信的串行通信总线、用于外部扩展的并行总线、用于外部交互的I/O端口;完善了用于控制的指令系统,突出了控制功能,增加了位操作指令;所有功能单元,包括后续可能扩展的功能单元,采取了特殊功能寄存器SFR的集中管理模式,方便了微控制器外部系统配置与系统扩展的应用要求。

图1描述了MCS51微控制器系统的经典体系结构。

图1 MCS51微控制器系统的体系结构


微控制器是在嵌入式微处理器基础上,在内部总线支持下,通过外围功能单元扩展而成,SoC化是其主要发展趋势。微控制器有4个与外部交互的接口通道:前向通道、后向通道与物理对象相连,是物理对象感知与控制的交互接口;交互通道,是实现人机交互的接口;信息通道,是与其他应用系统交互的通信接口,用于实现微控制器的多机通信。

3.3 完善了微控制器的应用环境

MCS51问世后,不仅为用户提供了完善的体系结构,而且还提供了完善的应用环境。Intel为用户提供的应用环境有:满足不同应用的3种供应状态,即程序指令的掩膜状态、ROM烧写状态与EPROM烧写状态;用于产品开发的ICE在线仿真器(ICE51);用于汇编语言程序设计的宏汇编ASM51;用于用户程序管理的实时任务操作系统iRMX51。另外,为适应分布式多机系统通信需要,还衍生出具有位总线(BIT BUS)的RUPI44系列(8051+串行通信接口单元,支持HDLC/SDLC协议)微控制器。

这些优异的应用环境使电子工程师们能迅速从传统电子系统时代迈进智能电子时代。

4、微控制器的进化历程

Intel公司在完善了MCS51后,错误地认为应该向16位微控制器进军,便和著名的电器商Philips公司合作,探索16位微控制器。由于理念上的差异,导致两者分道扬镳。Intel公司推出了16位微控制器MCS96;Philips公司为满足智能化电器产品的应用需求,着力于提高MCS51应用水平。分手后,Intel公司同意向Philips公司免费开放MCS51,受免费开放政策影响,众多半导体公司参与到MCS51体系结构深度开发中,将MCS51推进到众多半导体公司参与开发的80C51时代。

80C51时代中有几件值得提及的大事件,即Philips等公司大力提升微控制器功能,Atmel公司将微控制器推进至Flash ROM时代,以及20世纪末Cygnal公司对80C51脱胎换骨的改造。

4.1半导体厂家大力提升微控制器功能

半导体厂家在推动80C51不断进化中,主要完成的重大工作有:满足嵌入式应用要求的众多外围功能集成,如WDT、PWM、ADC、高速I/O口、计数器捕捉/比较等;满足系统中芯片扩展的串行扩展总线,如目前大量使用的Philips公司的I2C总线、Motorola公司的SPI以及Dallas公司的单总线1Wire总线;满足微控制器应用系统集群的德国BOSCH公司的CAN总线以及其他现场总线等。

4.2 Atmel公司微控制器的Flash ROM时代

Atmel公司用Flash ROM作为程序存储器推出的89C51系列,为众多嵌入式应用系统开发提供了一种灵活、高效、价廉的方案,将80C51推进到Flash ROM时代。89C51起源于我国原电子工业部的北京集成电路设计中心,他们在设计国产化80C51单片机后,寻找产业化合作伙伴时,Atmel公司主动提出将Flash ROM植入国产的80C51中,并更名为89C51,产权为双方共有。在中国大陆89C51最初的品牌不是AT89C51,而是由北京集成电路设计中心冠名。后来由于经营不善,北京集成电路设计中心放弃了89C51之后,才改名为AT89C51,被Atmel公司独有。

4.3 Cygnal对80C51的全面革新

20世纪末,Cygnal公司对80C51体系结构进行了彻底改造,使之成为顶尖的8位微控制器C8051F系列,使80C51进入到又一个新的辉煌时代。Cygnal公司对80C51体系结构的改造有:

① 对80C51 CPU内核实施改造,实行指令运行的流水作业,使指令运行速度提高到原来的12倍,成为8位高速微控制器;

② 设置用户可配置的交叉开关,使I/O接口从功能固定方式提升至可随意选择的功能设置;

③ 从单一固定系统时钟到可编程选择的时钟系统,使微控制器在运行过程中可随意选择时钟状态;

④ 从传统的仿真调试到基于JTAG接口的在系统调试,并为在系统测试提供边界扫描功能;

⑤ 把80C51单一的外部复位发展成多源复位系统,如上电复位、掉电复位、外部引脚复位、软件复位、时钟检测复位、比较器0复位、WDT复位和引脚配置复位等;

⑥ 有最小功耗系统设计的最佳技术支持,如降低供电电压(从5 V到3 V)、时钟系统可任意选择、复位系统可随意唤醒来灵活设置低功耗模式。

4.4 从80C51到ARM的产业变革

21世纪初,微控制器领域的一个重大事件是从80C51主流系列到ARM主流系列的变迁。究其原因,除了嵌入式高端需求拉动的技术因素外,产业变革是一个重要的内在因素。此前,所有从事微控制器的半导体厂家都是实体产业公司,都有自己的微控制器设计团队,设计与生产自己公司的微控制器,从而形成了百花齐放的微控制器产业发展趋势。

而ARM公司一反传统的微控制器产业模式,从公司成立之初,便摒弃实体产业,专注发展微处理器知识产权,即只专注于发展微处理器技术,不从事微处理器生产,从而成为雄据众多半导体之上的上游产业。先进技术水平的ARM系列与上游产业的优势吸引了众多的半导体厂家,他们纷纷在ARM公司授权的ARM系列架构基础上生产本公司的微控制器。ARM系列大量使用后,由于成本下降,不断侵蚀80C51的原有领域,80C51逐渐失去微控制器应用系统的主流地位。

在ARM系列不断侵蚀80C51原有领域时,并不代表80C51末日到来。在无限大的嵌入式系统应用领域中,80C51另辟蹊径,转战智能器件领域。今天,智能传感器、无线收发器件领域,已成为80C51的主流阵地。

文章来源:单片机与嵌入式系统应用

围观 8
520
订阅 RSS - 嵌入式系统