0%

硬件八股---串行并行、全双工半双工、同步异步讲解

介绍通信的三类核心模式。串行按顺序逐位传输,线路简单、适合长距通信,代表协议有 SPI、I2C、UART;并行多位同时传输,速率高但线路多、适合短距。全双工可同时收发数据(如 SPI),效率高;半双工双向通信但不同时(如 I2C、UART),结构简单。同步依赖公共时钟(如 SPI、I2C),可靠性高但线路复杂;异步无需共同时钟(如 UART),灵活简便但效率和准确性稍逊。

串行和并行

  • 串行 :是指数据一位接一位地依次传输。就像人们排队通过一个很窄的门一样,每次只能通过一个人。在串行通信中,数据是按照顺序在一个通道上逐位发送或接收的。例如,SPI(Serial Peripheral Interface)、I2C(Inter - Integrated Circuit)和 UART(Universal Asynchronous Receiver/Transmitter)都是串行通信协议。这种传输方式的优点是硬件线路简单,只需要较少的通信线,节省硬件资源,适合长距离通信。但是,因为数据是一位一位地传输,相对于并行通信,在相同的时间内传输的数据量会少一些,不过可以通过提高传输速率来弥补。

  • 并行 :是指数据的多个位同时传输。这就好比有好几扇门同时打开,人们可以同时通过。并行通信在同一时间可以传输多位数据,例如在计算机内部的某些数据总线,32 位的数据总线可以同时传输 32 位数据。其优势在于数据传输速率高,能够快速地传输大量数据。然而,它需要较多的通信线路,硬件成本相对较高,并且随着传输距离的增加,信号之间的干扰也会更明显,所以一般适合短距离、高速率的数据传输场景。

全双工和半双工

  • 全双工 :是指通信双方可以同时发送和接收数据。就像两个人在打电话,双方可以一边说话一边听对方说话。例如,SPI 支持全双工通信,在 SPI 总线中,主设备和从设备可以通过 MOSI(Master Out Slave In,主设备数据输出,从设备数据输入)和 MISO(Master In Slave Out,主设备数据输入,从设备数据输出)两条数据线同时进行数据传输。这种通信模式能够充分利用通信线路,提高通信效率。

  • 半双工 :是指通信双方可以进行双向通信,但不能同时发送和接收数据。就像两个人用一个对讲机,一个人在说话的时候,另一个人只能听,不能同时说话。I2C 和 UART 一般工作在半双工模式。在 I2C 通信中,数据通过 SDA(Serial Data Line,数据线)进行传输,在同一时刻,数据只能在一个方向上传输;UART 通信中,虽然有 TX(Transmit,发送)和 RX(Receive,接收)两个引脚,但在实际通信过程中,一般同一时间只能进行发送或者接收操作。半双工模式相对简单,但在某些需要同时双向通信的场景下,通信效率会受到一定限制。

同步和异步

  • 同步 :是指在通信过程中,发送方和接收方使用同一个时钟信号来协调数据的发送和接收。就好像一群人在跳集体舞,大家跟着同一个节拍器的节奏来跳舞。SPI 和 I2C 都是同步通信协议。在 SPI 中,主设备提供 SCK(Serial Clock,时钟信号),在时钟信号的驱动下,数据通过 MOSI 和 MISO 进行传输;I2C 中,主设备也提供 SCL(Serial Clock,时钟线)信号来控制数据在 SDA 线上的传输节奏。同步通信的优点是数据传输的准确性和可靠性较高,因为有共同的时钟来约束数据传输,发送方和接收方对数据的处理是同步进行的。不过,同步通信需要额外的时钟信号线,增加了硬件线路的复杂性。

  • 异步 :是指发送方和接收方不需要使用同一个时钟信号来协调数据传输。就像两个人在聊天,没有固定的节拍,每个人按照自己的节奏说话和听别人说话,但通过一些规则(如起始位、停止位等)来保证双方能够理解对方的意思。UART 是一种异步通信协议,它通过在数据的开始和结束处添加起始位和停止位来标识一个数据字符的传输。异步通信的优点是比较灵活,不需要专门的时钟信号线,硬件线路简单。但它的缺点是数据传输的效率相对较低,而且对数据传输的准确性要求较高,因为没有公共时钟来约束,容易出现数据位移等问题。

-------------本文结束感谢您的阅读-------------
原创技术分享创作不易,您的支持将维护网站运行~