table {
border-collapse: collapse;
width: 100%;
margin-bottom: 1rem;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
}
tr:nth-child(even) {
background-color: #f9f9f9;
}
pre {
background-color: #f8f8f8;
padding: 15px;
border-radius: 4px;
overflow-x: auto;
}
1、什么是嵌入式系统?尽可能多地给出不同的定义(并说明理由)。
嵌入式系统是嵌入在更大电子设备中的计算系统,反复执行单一(或一小部分)功能,且常常不被设备用户注意到。此定义虽不太专业精确,但能概括其基本特征。另外,从某种意义上,也可认为嵌入式系统是除桌面计算机和其他高配置计算机之外的计算系统,理由是其设计目标、性能要求和设计约束与一般计算系统有显著差异。
2、识别我们周围的一些嵌入式系统,并说明将它们归类为嵌入式系统的理由。
周围常见的嵌入式系统
有手机、洗衣机、汽车防抱死制动系统等。
手机
可接收和传输信号,实现两人间通信,还能收发短信、拍照等。虽功能多样,但不能进行复杂科学计算,可高效完成特定通信等功能,符合嵌入式系统特点。
洗衣机
有嵌入式控制器,可接收用户旋钮设置输入,并重复执行洗涤任务,属于单一功能嵌入式系统。
汽车防抱死制动系统
能根据车辆行驶状况进行制动控制,与物理环境交互,保障行车安全,满足嵌入式系统与物理环境交互、可靠等特性。
3、区分单功能和多功能嵌入式系统,并分别举例。如何区分多功能嵌入式系统和普通桌面计算机?
嵌入式系统分类及特点
单功能嵌入式系统
通常重复执行单一任务
示例:洗衣机的嵌入式控制器
根据旋钮设置接收用户输入
执行洗涤工作
多功能嵌入式系统
除主要功能外还有其他多种功能
示例:手机
接收和传输信号实现两人通信
收发短信
拍照
收听广播
播放音乐
连接互联网
多功能嵌入式系统与桌面计算机的区别
特点 | 多功能嵌入式系统 | 普通桌面计算机 |
---|---|---|
功能多样性 | 虽功能多样,但不能用于执行复杂科学计算 | 是通用计算系统,可进行多种复杂操作 |
可编程性 | 无法像桌面计算机那样针对此目的进行编程 | 可进行多种复杂操作 |
4、识别一些可以作为与环境交互的嵌入式系统一部分的仪器。
传感器和执行器可用于与环境交互,例如:
传感器
:如房间温度监测系统中的温度传感器,用于采集环境温度数据。
执行器
:如可根据温度读数进行工作的加热/冷却设备,用于调节环境温度。
5、区分主动系统和反应系统,并举例说明。
反应系统与环境持续交互,其行为很大程度上取决于环境中发生的事件,通常有一组状态,会根据事件发生进行状态转换。例如,通过传感器接收到火灾警报后立即启动灭火器的系统。主动系统可能不具有交互性,一旦启动,可自行工作以产生输出。
6、解释嵌入式系统的主要特点。
嵌入式系统的主要特点
嵌入式系统的主要特点如下:
单功能系统
:多数嵌入式系统反复执行单一任务,虽也有多功能的,但无法像桌面电脑那样进行复杂科学计算。
与物理环境交互
:通过传感器收集环境数据,用执行器控制环境参数。
用户界面
:常包含专用用户界面,如按钮、发光二极管、方向盘等,让普通用户感觉不到计算机和信息处理。
可靠系统
:常用于安全关键应用,要求高度可靠,确保易维护性、高可用性、环境安全性和信息处理的安全性。
严格受限系统
:设计受多方面限制,如成本要低,尺寸、性能和功率预算对目标实现的选择有严格约束。
7、什么是设计指标?请列举在嵌入式系统设计中需要考虑的各种设计指标。
设计指标
设计指标是嵌入式系统设计师想要实现的优化目标。在嵌入式系统设计中,需要考虑以下设计指标:
系统成本
包括非重复性工程成本和重复性成本。
尺寸
硬件为硅面积,软件为代码大小。
性能
指设计系统的速度。
功耗
系统功耗及散热应很低。
设计灵活性
指规格变化时修改系统所需的工作量。
设计周转时间
从规格制定到产品上市所需的时间。
系统可维护性
指系统投入使用后维护和监控其健康状况的难易程度。
功能测试与验证
指检查系统功能并确认其正确运行的能力。
8、系统成本这一设计指标包含哪些组成部分?从基于通用处理器的设计转变为专用设计时,这些组成部分的贡献会如何变化?
系统成本由非重复性工程(NRE)成本和重复性成本两种类型组成。
NRE成本
:是系统设计阶段产生的一次性支出。
在基于通用处理器的设计中,由于可能使用现成的通用处理器,NRE成本相对较低;
而在应用特定设计中,如设计VLSI芯片,NRE成本非常高,因为包括生成掩模的过程。
重复性成本
:一旦完成掩模制备,就可以在大硅片上复制以生产大量相似芯片,降低了单位成本,重复性成本占比相对降低。
9、有哪些令人信服的因素使功耗成为一个重要问题?
电池续航在嵌入式应用中的重要性
许多嵌入式应用围绕电池构建,因此电池续航是衡量其可接受性的关键因素。需要考虑的重要问题包括:
功耗限制
尺寸限制
I/O 要求
工作占空比
此外,还涉及一些实际考量,如:
充电便利性
设备尺寸
运行时长
设备所需功率
I/O 设备类型
运行速度
10、什么是设计周转时间,为什么它应该尽可能短?
设计周转时间
设计周转时间是指从规格制定开始到产品推向市场完成设计所需的时间。由于电子产品的淘汰率很高,所以这个时间必须尽可能短。这一要求常迫使设计师使用现成的组件,而不是对系统组件进行昂贵的重新设计。
11、软件进程的寄存器传输级(RTL)规范是什么意思?
对于映射到通用处理器的进程,软件代码被转换为汇编/机器语言指令。因为处理器仅在
寄存器传输级
定义操作,所以这就是软件进程的
RTL规范
。
12、典型的微控制器与微处理器有何不同?微控制器中存在哪些典型的架构模块?
微处理器与微控制器的区别
微处理器用于个人计算机和其他高性能应用,而微控制器针对小型应用。
微控制器的特点
微控制器是单芯片计算机,在单个芯片中结合了以下组件:
相对简单的CPU
定时器
串行/并行接口
数字/模拟接口
输入/输出线
此外,微控制器通常包含:
片上程序存储器
一个通常较小的读写存储器
(通常称为暂存器)
它还提供了适当的接口设施以进一步扩展程序和数据存储器。
典型架构模块
微控制器的典型架构模块包括:
相对简单的CPU
定时器
串行/并行接口
数字/模拟接口
输入/输出线
片上程序存储器
读写存储器
13、在嵌入式应用中,选择微控制器的因素有哪些?
微控制器的最高可用速度是否满足当前应用的需求。
芯片的尺寸,如40引脚双列直插封装(DIP)、四方扁平封装(QFP),这决定了系统和设备的大小。
片上ROM/RAM空间应足够容纳程序代码,根据设计约束,可能会使用或不使用外部存储器。
单个芯片的成本,因为它将决定整个系统的成本。
开发平台应足够好,以减少设计时间,建议具备片上调试功能(通过JTAG端口)和调试软件。
微控制器芯片的可用性。
14、比较并对比精简指令集计算机(RISC)和复杂指令集计算机(CISC)指令。解释ARM是如何融合这两种理念的。
RISC 特点与 ARM 架构的融合
RISC 特点
拥有
16 个通用寄存器
的大型统一寄存器文件
采用
加载/存储架构
,处理数据的指令仅对寄存器操作,与访问内存的指令分离
寻址模式简单
指令字段统一且长度固定
,所有 ARM 指令为 32 位长,多数采用常规三操作数编码
这些特点有助于 ARM 架构实现流水线。
非 RISC 特性(ARM 的增强设计)
为保持架构简单并提高性能,ARM 引入了一些非 RISC 特性:
每条指令控制 ALU 和移位器
,使指令功能更强
自动递增和自动递减寻址模式
:在加载或存储操作时对索引寄存器的值进行递增或递减
多条加载/存储指令
:可一次加载或存储多达 16 个寄存器
虽违反了每条指令一个周期的原则
显著加快了关键性能操作,如过程调用和批量数据传输
使代码更紧凑
指令的条件执行
:
指令的机器码中操作码前有 4 位条件码
只有满足条件指令才会执行
有助于消除程序代码中的小分支和消除流水线中的停顿
结果与优势
这些特性使 ARM 兼具 RISC 的简洁高效和类似 CISC 的强大功能,实现了两种理念的融合,带来了以下优点:
高性能
低代码大小
低功耗
低硅面积
15、ARM 中有多少个通用寄存器和专用寄存器?请解释它们的功能。
在用户模式下,ARM ISA 有 16 个通用寄存器,即 R0 – R15。其中:
R15
是程序计数器,也可作为通用寄存器进行操作;
R13
用作堆栈指针,不过这只是编程约定,ARM 指令集没有 PUSH 和 POP 指令,堆栈处理通过一组允许在单个操作中加载和存储多个寄存器的指令完成;
R14
有特殊意义,称为链接寄存器,当进行过程调用时,返回地址会自动存入该寄存器(而非像其他处理器那样存入堆栈)。
16、为什么在 ARM 数据处理指令中,并非所有可能的 32 位操作数都能被指定为立即操作数?
这是由于 32 位指令中用于操作数指定的空间有限。
17、在 ARM 的算术运算中如何设置条件标志?这种优先设置为我们带来了什么优势?
在 ARM 中,算术指令对条件标志的修改是可选的。例如,使用助记符
ADDS
代替
ADD
可以设置标志,而基本的
ADD
指令不会影响任何标志。这种优先设置为编程增添了灵活性,标志无需在设置它们的指令之后立即检查,只要中间的其他指令不改变这些标志,就可以在后续的指令流中进行检查。
18、列举在 ARM 中指定内存操作数地址的不同方式。
ARM 中指定内存操作数地址的方式如下:
单寄存器传输
:可用于在寄存器和内存位置之间传输 1、2 或 4 字节的数据。
多寄存器传输
:
采用基址加偏移量寻址模式,将基址寄存器的值与存储在寄存器中或作为立即值传递的偏移量相加来形成内存地址;
还支持自动索引寻址模式,包括:
– 预索引模式(使用计算出的地址进行加载/存储操作,然后将基址寄存器更新为计算值)
– 后索引模式(使用未修改的基址寄存器进行传输,然后更新基址寄存器)
偏移量可以是:
– 无符号 12 位立即值(0 到 4095 字节)
– 寄存器(可选择按立即值移位)
可与基址寄存器相加或相减,应用时机有:
– 传输前(预索引寻址)
– 传输后(后索引寻址)
19、什么是提前终止?如果乘法运算的操作数是12和55,应该选择哪个作为源操作数?
提前终止指在ARM乘法运算中,当源寄存器中没有1时,乘法运算提前结束。对于操作数12(二进制
00000000000000000000000000001100
)和55(二进制
00000000000000000000000000110111
),应选12作为源操作数,因为其含1的位数少,运算周期可能更少。
20、说明英特尔处理器和 ARM 处理器处理软件中断方式的差异。
ARM 硬件不会尝试区分 $2^{24}$ 种软件中断情况;若要为其维护单独地址,ARM 需要 $2^{26}$ 字节内存。未详细说明英特尔处理器处理软件中断的方式,所以无法全面对比两者差异。
21、BX/BLX 与 B/BL 有何不同?
以下是调整为 Markdown 格式的文本内容:
BX/BLX 除了与 B/BL 功能类似外,还能在 ARM 指令集和 THUMB 指令集之间进行指令集交换,这是唯一能实现指令集交换的方式。
22、为什么在 ARM 中 FIQ 中断比 IRQ 中断处理速度更快?
FIQ 的向量地址最高,中断服务程序可直接从该地址开始,无需从向量地址跳转至中断服务程序,节省了快速中断发生后启动程序所需的时间,所以 FIQ 中断处理速度比 IRQ 快。
23、可用于嵌入式系统实现的不同硬件平台有哪些?从不同设计方面对这些平台进行比较。
可用于嵌入式系统实现的硬件平台有微控制器、FPGA、DSP、ASIC等。
24、什么是数字信号处理器,它的特性与通用处理器有何不同?
数字信号处理器(DSP)
数字信号处理器(DSP)是专门为
高效处理数字信号处理任务
而设计的微处理器。
与通用处理器相比,DSP在信号处理应用中具备以下优势:
更低成本
更高性能
更低延迟
此外,DSP在运行时常无需
专门的冷却装置
和
大容量电池
,尤其适用于
便携式嵌入式应用
,如:
手机
个人数字助理(PDA)
虽然通用处理器也能处理此类应用,但在上述方面
不如DSP
。
25、区分冯·诺依曼、哈佛和超级哈佛架构。
架构对比:冯·诺依曼架构、哈佛架构与超级哈佛架构
冯·诺依曼架构
使用单一内存和单一总线。
数据通过该总线进出中央处理器。
乘法运算至少需要三个时钟周期。
整个计算过程是顺序的,速度较慢。
哈佛架构
拥有独立的程序存储器和数据存储器:
程序存储器用于存储指令。
数据存储器用于存储数据。
两个存储模块拥有独立的地址和数据总线。
数据存储器总线通常比程序存储器总线更繁忙。
超级哈佛架构
在CPU中增加了片上指令缓存和I/O控制器等功能。
程序存储器可以同时存储指令和一组数据。
另一组数据存储于数据存储器中。
多数滤波算法包含较小的循环体:
程序开始运行较慢。
随后整个循环体驻留在指令缓存中。
能在单个内存访问周期内获取数据。
实现高内存访问带宽。
26、什么是零开销循环?它如何有助于 DSP 程序执行?
零开销循环
零开销循环指对于固定迭代次数的循环,DSP 提供硬件支持,无需指令对循环初始化、终止条件检查和循环索引更新等开销部分进行编码。通常会提供循环或重复指令,实现
for
循环时无需为更新和测试循环计数器或跳转回循环体顶部消耗指令周期。它有助于 DSP 程序执行,能加快控制指令的执行速度,提高程序执行效率。
27、超长指令字(VLIW)架构相对于传统处理器有哪些优势?
VLIW架构的优势包括:
可同时发出多个指令并由一组执行单元并行执行,提高计算速度;
指令集简单规则,指令调度在编译时确定,执行顺序不变,执行时间可预测;
架构具有潜在可扩展性,可添加更多执行单元以并行执行更多指令。
28、区分超长指令字(VLIW)架构和单指令多数据(SIMD)架构。
VLIW架构同时发出多个指令,由一组执行单元并行执行,指令集简单规则,指令调度在编译时确定,执行顺序不变,执行时间可预测,架构可扩展,但需要高内存带宽,功耗高,汇编级编码困难,依赖优化编译器;
SIMD架构基于数据级并行,发出单条指令对多个数据集进行操作,SIMD和VLIW可在同一处理器中结合,但SIMD需要操作中有足够的并行性,严格的顺序代码无法受益,常使用循环展开来利用数据级并行性。
29、展示C6000 DSP内核的高层结构。
C6000 DSP 内核高层结构
在 CPU 中,包含以下组件及数据路径元素:
CPU 中有
八个并行功能单元
,因此最多可并行执行
八条无数据依赖的指令
。
数据路径元素
.D(.D1 和 .D2)
处理
数据加载和存储操作
。
.S(.S1 和 .S2)
处理
移位、分支和比较指令
。
.M(.M1 和 .M2)
处理
乘法操作
。
.L(.L1 和 .L2)
处理
逻辑和算术操作
。
30、什么是扩展精度累加器,它如何在数字信号处理计算中提高信噪比?
扩展精度累加器
扩展精度累加器是一种特殊用途的寄存器,其位数是其他存储位置的2 – 3倍。
在重复计算中,连续中间值的存储会导致量化噪声的累积。使用扩展精度累加器能在累加过程中几乎消除舍入噪声,仅在最终结果存储时,由于将数字缩放为16位才会产生误差,从而提高了信噪比。
该策略尤其用于定点表示。对于浮点情况,量化噪声很低,通常不需要这些技术。
31、什么是现场可编程门阵列(FPGA),它与专用集成电路(ASIC)有何不同?
现场可编程门阵列(FPGA)是作为定制集成电路(IC)的替代方案而引入的,用于以硬件方式实现电路,同时为用户提供可重新编程的灵活性。
专用集成电路(ASIC)设计可针对任何应用,但非经常性工程(NRE)成本非常高。
在性能成为重要标准时,ASIC 和 FPGA 都是嵌入式系统除基于软件解决方案的微控制器和数字信号处理器之外的替代选择。
32、区分基于 SRAM、反熔丝和浮栅的编程技术,并为每一类至少举一个 FPGA 的例子。
FPGA 编程技术
1. SRAM 编程技术
在基于 SRAM 的 FPGA 中,设备内每个可编程点都对应一个 SRAM 位。
设备上电或复位时,从片外存储器读取配置程序并加载到片上 SRAM,该程序定义各逻辑块实现的逻辑功能和互连。
这种技术可通过更改配置程序轻松重新编程,但代价是占用面积大(每个单元至少五个晶体管,每个开关一个晶体管)。
属于 SRAM 编程技术的 FPGA 有:
Xilinx
Plassey
Algotronix
Concurrent Logic
Toshiba
2. 反熔丝编程技术
反熔丝最初是开路,电阻非常高。
编程时(在两端施加 11 – 20V 电压),电阻变得非常低,从而建立电气连接。
使用改进的 CMOS 技术可使反熔丝做得非常小,因此与 SRAM 相比,设备密度非常高。
但一旦编程就不能再使用,即设备是一次性可编程的。
支持反熔丝编程技术的 FPGA 有:
Actel
Quicklogic
Crosspoint
例如:Actel FPGAs 中使用的 PLICE(可编程低阻抗电路元件)
3. 浮栅编程技术
使用该技术的 FPGA 公司包括:
Altera
Plus Logic
AMD
Altera 和 Plus Logic 使用紫外线可擦除的 EPROM。
AMD 使用电可擦除的 EEPROM。
通过在控制栅极和漏极之间施加高电压,可使晶体管禁用,电荷可通过紫外线照射或电擦除去除。
该技术具有可重新编程的特点,且与 SRAM 不同,上电时无需外部存储器来对芯片进行编程。
不过,EPROM 技术需要额外的处理步骤,存在导通电阻高和由于上拉电阻导致的静态功耗高等问题。
33、列举细粒度和粗粒度逻辑块之间的权衡。
逻辑块粒度对FPGA的影响
细粒度逻辑块
包含少量可通过编程互连的晶体管
例如:交叉点FPGA在逻辑块中为每个布尔变量使用单个晶体管对
粗粒度逻辑块
包含大量逻辑,复杂度差异大
例如:Xilinx的XC4000和Actel的Act1
逻辑块规模对比
类型 | 特点 |
---|---|
大的逻辑块(粗粒度) | 可在单个块内实现更多逻辑,实现给定功能所需逻辑块数量更少,但会占用更多FPGA空间 |
细粒度逻辑块 | 则相反 |
查找表的影响
在基于查找表的FPGA中,4输入查找表在逻辑合成和面积消耗方面效果最佳
粒度对FPGA性能的影响
粒度越高,系统输入输出之间的延迟越小
但平均扇出、开关数量和线长会增加
34、列举FPGA设计流程。
FPGA设计流程
FPGA设计流程包含以下部分:
1. 设计输入
可通过以下两种方式实现:
原理图输入
:使用图形界面,让设计者以库模块及其互连方式输入设计。
行为描述
:通过硬件描述语言(如VHDL、Verilog等)实现。行为描述需经过设计综合阶段生成库组件网表以实现功能,而原理图本身就是网表,无需此阶段。
2. 行为仿真
这是在原理图/行为层面确定系统正确功能的必要步骤。
3. 设计实现
此阶段为目标设备实现生成的网表,常涉及格式转换:
进行
功能仿真
以检查转换的功能正确性。
接着进行详细的
布局和布线
,将设计实现在目标设备上。
时序分析
报告网络延迟,将这些延迟值反向标注到设计中。
使用
时序仿真
对设计进行仿真,以识别实现中是否存在任何时序违规(如建立和保持时间违规)。
4. 设备编程
此阶段为设备生成最终配置程序:
配置程序可下载到内存中,在加电时读取(对于SRAM FPGA)。
或用于生成反熔丝/EPROM烧录模式。
许多FPGA包含在线验证模块,可用于检查下载设计的正确性。
35、详细研究Virtex – 6现场可编程门阵列(FPGA)的特性。
每个Virtex-6 FPGA的可配置逻辑块(CLB)可配置为一个6输入查找表(LUT)或两个5输入LUT,该LUT也可用作64位随机存取存储器(RAM)或两个32位RAM。
此外,每个Virtex-6 FPGA有156 – 1064个(取决于子系列)双端口块RAM,每个存储36K位。
它们还拥有许多专用、全定制、低功耗的数字信号处理(DSP)切片,每个切片包含25个18位、2的补码乘法器和一个48位累加器。
每个Virtex-6设备有一个17通道、10位模数转换器(ADC)和8 – 72Gbps收发器。
36、详细研究Virtex – 7现场可编程门阵列(FPGA)的特性。
Virtex – 7
Virtex – 7 是 3D 集成电路,具有许多改进特性。
峰值收发器速度
:在 12.5 – 28.05 Gbps 之间
收发器数量
:36 – 96 个
运算能力
:可进行 2756 – 5314 吉次乘累加(GMACs)运算
块随机存取存储器(RAM)
:包含 46.5 – 85 Mb
总线接口
:PCI Express
输入/输出(I/O)引脚
:最多有 1200 个
37、描述串行外设接口如何用于数据传输。
## 串行外设接口(SPI)
串行外设接口(SPI)由摩托罗拉开发,是一种四线接口,使用四个主要信号实现数据传输,这些信号分别是:
- **主输出从输入(MOSI)**
- **主输入从输出(MISO)**
- **串行时钟(SCLK)**
- **片选(CS)**
该接口可用于连接以下外设:
- 内存
- ADC
- DAC
- 实时时钟
- LCD驱动器
- 传感器
- 音频芯片
- 其他处理器
### 数据传输过程
在数据传输时:
1. **主设备**通过**片选信号(CS)**选择要通信的从设备。
2. 主设备利用**串行时钟(SCLK)**提供时钟信号来同步数据传输。
3. 主设备通过**主输出从输入(MOSI)线**将数据发送给从设备。
4. 从设备通过**主输入从输出(MISO)线**将数据发送给主设备。
从而实现主从设备之间的数据传输。
38、列举具有SPI接口的设备示例。
具有SPI接口的设备示例如下:
温度传感器:LM74
压力传感器:SCP1000
模数转换器:LTC2452
触摸屏:SX8652
EEPROM:Microchip 25XXX
实时时钟:DS3234
存储卡:MMC 和 SD 卡
39、列举SPI控制寄存器中CPOL和CPHA位的作用。
CPOL和CPHA用于配置时钟信号相对于数据的极性和相位。
CPOL
CPOL = 0时,时钟基值为0
CPOL = 1时,时钟基值为1
CPHA
当CPOL = 0且CPHA = 0时,数据在时钟
上升沿
捕获,在
下降沿
传输
当CPOL = 0且CPHA = 1时,数据在时钟
下降沿
捕获,在
上升沿
传输
40、假设从CPU的SPI数据寄存器向设备寄存器传输数据或从设备寄存器向CPU的SPI数据寄存器传输数据,在CPU中需要2毫秒,在设备中需要10毫秒。通过MOSI/MISO线路的传输速率为64 Kbps。计算传输1 K字节数据所需的时间:(i) 从CPU到设备,(ii) 从设备到CPU。
首先计算传输1 K字节(1024字节)数据在64 Kbps速率下所需的时间,根据公式
时间 = 数据量 / 速率
,
1024字节换算为比特是 1024 × 8 比特,传输时间为:
1024×864000=0.128 秒=128 毫秒1024×864000=0.128 秒=128 毫秒
(i)
从CPU到设备,总时间为
CPU传输时间 + 线路传输时间 + 设备接收时间
,即
2+128+10=140 毫秒2+128+10=140 毫秒
(ii)
从设备到CPU,总时间为
设备传输时间 + 线路传输时间 + CPU接收时间
,即
10+128+2=140 毫秒10+128+2=140 毫秒
所以,(i) 和 (ii) 所需时间均为
140 毫秒
。
41、讨论使用IIC接口的数据传输技术。
I2C总线简介
I2C总线是用于互连小型嵌入式系统内的外围设备的廉价且有效的网络。
基本特性
使用两根线在多点总线中连接多个设备
双向、低速且与公共时钟同步
数据速率在100 – 400 kbps之间
信号线
SDA
(串行数据)
SCL
(串行时钟)
均为开漏和双向的
与SPI不同,I2C使用相同信号线进行主传输和从响应
空闲状态
SDA和SCL均为高电平
通信过程
起始条件
SDA先变低
接着SCL变低
随后SDA转换为第一个有效数据位
数据传输
每传输一位,该位必须在SCL为低电平时在SDA上有效
SCL上升沿采样该位,该位需保持有效直到SCL再次变低
然后SDA在SCL再次变高之前转换到下一位
停止条件
SCL先回到高电平
接着SDA回到高电平
数据传输机制
I2C数据包可传输任意数量的字节
若接收器无法再接收字节,可通过拉低SCL中止传输,此时发送器等待接收器释放SCL
为便于确认:
发送第8位后,主设备释放SDA
并在SCL上给出一个额外时钟脉冲
触发接收器通过拉低SDA确认该字节
地址机制
由于总线上可能有多个设备,每个设备有唯一的7位地址
第一个传输的字节是地址字节和一个方向位
方向位‘0’表示写操作(从设备接收数据)
方向位‘1’表示读操作(从设备发送数据)
42、请举例说明具有IIC接口的设备。
具有IIC接口的设备有:
温度传感器LM75
它是带有I2C接口的温度传感器、delta – sigma ADC和数字过温检测器,温度精度范围为 -55°C至 +125°C。
压力传感器BMP085
压力范围为300至1100 hPa,是低功耗、低噪声设备。
43、比较RS – 232和RS – 485。
以下是RS-232和RS-485的比较:
工作模式
– RS-232为单端模式
– RS-485为差分模式
驱动器和接收器数量
– RS-232有1个驱动器和1个接收器
– RS-485有32个驱动器和32个接收器
最大电缆长度
– RS-232为25米
– RS-485为1200米
数据速率
– RS-232为20 Kb/s
– RS-485为10 Mb/s
驱动器输出电压
– RS-232为±25 V
– RS-485为–7 V到 +12 V
信号电平(负载最小值)
– RS-232为±5 V到±15 V
– RS-485为±1.5 V
信号电平(负载最大值)
– RS-232为±25 V
– RS-485为±6 V
接收器输入电压范围
– RS-232为±15 V
– RS-485为–7 V到 +12 V
接收器输入电阻
– RS-232为3 K到7 K
– RS-485大于12 K