嵌入式串口通信技术

SIO 串行输入输出

最基本的串行接口是SIO,它由一个主器件和一个从器件通过一条数据线和一条时钟线采用一对一的方式连接组成。主器件把传输时钟提供给从器件。

接口将被其控制电路中的寄存器指定为主从器件。在数据传输之前,应该设置另一个寄存器以确定哪一个成为发射器或接收器。

在这里插入图片描述

如果数据集为8位,则发出8个时钟来同步传输数据。主器件的指令随时钟信号传输至从器件。这就是说,当主器件向从器件发送或接收数据时,主器件将通过发出时钟来启动传输请求。由于数据传输方向是预先定义的,因此主器件将在必要时向从器件发出时钟,并执行与从器件之间的数据发送或接收,与时钟同步。

UART 通用异步收发器

UART: A Hardware Communication Protocol Understanding Universal Asynchronous Receiver/Transmitter | Analog Devices

异步串行接口,两个接口之间没有时钟信号。因此在UART中,主从器件的定义没有意义

消除时钟目的:防止噪声问题

来自主器件的命令将通过SIO中的时钟信号发送到从器件,但是由于UART没有任何时钟信号,UART接口无法接收任何命令。因此,接收器必须等待数据到达,然后随时正确接收数据

为了使接收器能够识别传输数据的开始和结束,发射器应对传输数据的开始或结束数据设置一些指示。起始位是数据“0”,停止(结束)位是数据“1”,它们分别添加在传输数据之前和之后。

在这里插入图片描述

在数据传输之前,发射器或接收器的分配已经完成。如果数据线变为“0”(数据线通常为“1”),则接收器会识别到发射器将要发送数据并准备开始接收传输数据。在数据传输过程中,由于没有时钟信号,很难理解一个位的时间间隔有多长。如果发射器发送了两个“0”(“00”),则接收器不可能在发射器和接收器之间没有任何约定的情况下识别出传输数据只是一个“0”或“00”。

关于该约定的典型例子是,接收器用频率比发射器中的发送时钟快16倍的时钟接收数据,该发射器应在数据传输之前预先定义。一旦接收器检测到起始位,它将每隔16个时钟捕获一次数据。

在这里插入图片描述

在UART和SIO中都可以添加奇偶校验位。
UART中可能有两个以上的接口。在这种情况下,只有一个接口能分配为主器件,其它接口作为从器件。接收器将应答返回给发射器,使得对接功能可在UART上工作。

SSP(SPI)同步串行端口(串行外围接口)

SPI有一个主器件和多个从器件,星型结构。所有接口共享两条数据线。其中一条是主器件发送数据线(SPDO),另一条是主器件接收数据线(SPDI)。通过使用这两条数据线,SPI可以方便地控制从器件接口,同时可轻松地增加从器件接口的数量,因为数据线上不会发生数据冲突。一条时钟线(SPCLK)将由主器件和所有从器件以及数据线共享。

主器件具有选择线路(SPFSSn)来访问其中一个从器件以便与主器件进行通信。一条选择线路连接到一个从器件,因此主器件的选择线路数量与从器件的相同。

SSP

I2C 内部集成电路

即使网络中存在多个从器件,在I2C中也只需要两条线路,即一条数据线和一条时钟线。I2C还允许多个主器件结构(可以分配多个主器件)。在每个接口控制电路中设置一个寄存器,可以完成主从器件的分配。I2C是同步接口。

设计I2C数据线和时钟线以实现多个主器件结构。所有接口的输出只有“0”或高阻状态,数据和时钟的高电平由线路上的上拉元件(“线与”结构)提供。每个接口的输出缓冲区只有NMOS晶体管,没有PMOS晶体管。必要时,这些晶体管变为“导通”,接口的输出将为“0”。如果这些NMOS晶体管变为“关断”,则接口的输出变为高阻状态。由于上拉元件连接到每条线路,如果连接到信号线的接口的所有输出变成高Z状态,则该线路被上拉直至VDD并变成“1”。这是“线与”结构。
在这里插入图片描述
在这里插入图片描述
在“线与”连接中,数据“0”比数据“1”强。也就是说,如果两个接口分别输出“0”和“1”(高阻状态),则该线路的数据变为“0”。该强度优先级实现了对于防止多个主器件系统中发生数据冲突的仲裁方式。考虑两个主器件同时向数据线输出数据的情况,如果其中一个数据为“0”,另一个数据为“1”,则后一个接口将立即知道其它输出为“0”,并根据自己的判断立即停止线路访问。结果是前一个接口将保留使用线路的优先级,后一个接口将在知道前一个接口的数据传输结束后恢复数据传输。这种仲裁方式使得多个主器件系统成为可能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Toreme

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值