关于嵌入式系统设计 这几个问题很常见

关于嵌入式系统设计 这几个问题很常见

关键词: 嵌入式, 术语, 工作原理, 微处理器,单片机,I2C

问:常见问题解答 – 嵌入式系统设计

这帖文在解答关于嵌入式系统设计的常见问题。一些问题为宽泛或概念性问题。另一些问题则更加具体,可能涉及单片机内的单个外围设备。浏览完各主题后,请花点时间访问DigiKey技术论坛 的各个部分。你可以找到一些包含下述主题的实际示例。

什么是嵌入式系统?

嵌入式系统由具有专用功能的硬件和软件组成,属于更大系统中的一部分。它通常包括一个或多个用于监管系统功能的微处理器或单片机。嵌入式系统包含某种能够在上电时自动启动的软件。许多时候,软件会自主运行。不过,嵌入式系统也常常包含用于外部控制和监控的某种用户界面(按钮、开关、LED、LCD等)。

什么是微处理器?

微处理器负责执行中央处理单元的所有功能,并被制造成小型集成电路。它需要解释并执行程序指令,因此可以被视为嵌入式系统的“大脑”。微处理器包括以特定顺序执行指令的数字逻辑,并使用主时钟来持续按顺序执行指令。主时钟内部通常被内部划分成单个时钟信号,用于触发专门的硬件部分。

什么是单片机?

单片机将CPU与存储器和用于特定目的的硬件外围电路相集成。

就存储器而言,单片机包括某种可以在运行时变为只读的非易失性可编程存储器。该存储器就是用户编程应用代码的地方,这些代码用于按照特定顺序执行指令以实现系统的整体目的。单片机通常具有易失性随机存取存储器,可以在运行时用于操作变量和存储结果。有时,单片机还会包括额外的非易失性存储器,用于在掉电时存储信息。

专用的硬件外围设备因单片机的不同而有所变化。一些常见的硬件外围设备包括计时器、串行通信块、模数转换器、数模转换器、模拟比较器,以及通用输入和输出引脚。

并行通信和串行通信有什么区别?

当两个器件相互通信时,意味着它们正在交换数据。将由系统架构来定义每个数据字由多少位组成,最常见的是8位、16位和32位数据字。并行通信使用专用线路来传输数据字中的每一位。而串行通信则将所有位按某种预定义的顺序移位到单一数据线上。通常,串行通信使用单一数据线,并按顺序依次(以最高有效位(msb)或最低有效位(lsb)为优先)移动每个位。但一些串行协议也会以非顺序的方式重新排列位,以减轻电场效应(直流偏置、电磁干扰等)对板的其余部分的影响。

使用并行通信的主要优势在于,在传输相同数量的数据的情况下,它需要的时钟周期数要少于串行通信。例如,如果使用8条独立线路传输一个8位数据字,那么整个数据字将在单个时钟周期内传输完毕。而使用单一数据线的串行通信协议则需要8个时钟周期来传输相同的数据字。

使用串行通信的主要优势在于,它大大减少了器件上的引脚数量和布线所需的板空间。因此,我们可以将引脚用于其他用途,并且这通常减少了所需的板空间和/或电缆尺寸。

此外,还有融合了二者优势的混合通信协议。例如,双和四I/O SPI协议使用多个串行数据引脚来增加总体带宽。不过,这最终还是取决于设计师的理解权衡,从而确定特定应用所需/可接受的方案。

同步通信和异步通信有什么区别?

同步通信意味着交换数据的两个(或更多)器件共享一个公共时钟线。一个器件(通常称为主机)将驱动时钟信号作为输出,而另一个器件(通常称为从机)将读取时钟信号作为输入。顾名思义,这样可以保持器件的同步,并确保数据在正确的时间进行设置和采样。同步通信的主要优势在于可靠性。你不必费心在每个器件上设置准确的参考时钟,以达到适当的波特率,并且温度对数据可靠性几乎没有或完全没有影响。缺点在于它需要额外的引脚,并且通常会增加所需的板空间/电缆尺寸。在板上运行时钟信号也可能增加电磁干扰效应。

异步通信表示两个器件不共享专用时钟信号……每个器件上都有一个唯一的时钟。因此,各器件必须提前设置相匹配的比特率以及在给定通信步骤中预期的位数。异步通信的优势在于它可以少用一个引脚,从而节省了板空间/电缆尺寸,并支持设计师将该引脚用于其他用途。从板上移除时钟线还有助于减少电磁干扰。使用异步通信的缺点是较难实现可靠的通信。用于生成比特率的参考时钟必须在相应的温度下维持一定的准确性和稳定性,否则时间可能会出错。整数除法下降也可能在比特率中引入错误。当你尝试实现不是参考时钟的精确整数倍的波特率时,就会发生这种情况。换句话说,即使有完美的参考时钟,所需的波特率也可能无法在一定量的误差下实现。误差量可能在/不在可以接受的范围内。

什么是 I2C ?

集成电路总线(I2C)协议是一种普遍用于嵌入式系统的同步串行通信协议,这是因为所需的引脚数量少,并且可以连接大量设备到单个总线上。I2C主机和从机之间只需要一条数据线(SDA)和一条时钟线(SCL)再加上共地即可。下图(可参考I2C百度百科词条)显示了I2C通信步骤的简化时序图。第一个黄色框用于指示启动信号。启动条件是SDA线在时钟线为高电平时转换为低电平的唯一时刻。在通信步骤期间,SDA转换在SCL处于低电平(蓝色)时进行,且SDA在SCL处于高电平(绿色)时被采样。第二个黄色框用于指示停止信号。停止条件是SDA线在时钟线为高电平时转换为高电平的唯一时刻。数据和时钟线使用具有外部上拉电阻的开漏输出。当器件停止主动驱动总线时,外部电阻将拉高每条线的电平。


I2C 时序示例

I2C是基于地址的协议,这意味着每个从设备都有唯一的I2C地址。I2C支持在单个总线上的多个主机和多个从机。器件的规格书将指定其I2C从机地址。通常,器件会使用7位I2C从机地址,尽管I2C协议的一些变体版本也支持10位和16位寻址模式。典型的I2C通信步骤将从主机发出启动信号开始,然后是包含从机7位地址和单个读写位的单个字节。在从机地址字节之后,消息格式因器件而异。在单个通信步骤中传输的字节数量没有限制。但是,在发送下一个字节之前,每个字节都必须获得接收器件的确认。在接收到最后一个字节和确认后,主机将发出停止信号以结束通信步骤。对于支持更大寻址方案的器件而言,初始字节格式也可能有所变化。特定器件的规格书将描述所需的I2C消息格式。100kbps是标准的I2C数据速率,而最近的I2C变体则支持400kbps快速模式 ,1Mbps快速模式 +和3.4Mbps高速模式 。

04_00

在下一张图中,占空比增加到75%,这意味着信号有75%的时间处于开启状态,有25%的时间处于关闭状态。这会将电压从2.5V增加到3.75V(5V的75%)。

05_00

应注意的是,PWM信号的周期(频率)保持不变。我们可以看到,两张图中的黑线间隔均匀,信号的下降沿总是在定义的时间发生。上升沿,也就是脉冲宽度,是我们需要进行调整以精确控制平均值的部分。所需的切换频率将特定于应用。

PWM广泛应用于嵌入式设计中。电机控制、LED强度控制和DC/DC电源转换都是脉冲宽度调制的典型应用。

更多嵌入式系统设计的常见问题解答,详情请查看下面帖子:

常见问题解答 – 嵌入式系统设计

更多嵌入式系统设计相关技术内容, 请参考下面帖子:

******

如有任何问题,欢迎联系得捷电子DigiKey客服团队。

中国(人民币)客服
- 400-920-1199
- service.sh@digikey.com
- QQ在线实时咨询 |QQ号:4009201199

中国(美金)/ 香港客服
- 400-882-4440
- 8523104-0500
- china.support@digikey.com

Digikey WeChat QR Code

到微信搜寻“digikey”或“得捷电子
关注我们官方微信
并登记成会员,
每周接收工程师秘技,
赚积分、换礼品、享福利

头像
得捷电子

评论已关闭。

Copyright©DigiKey Electronics