# 串行输出与并行输出详解:原理、时序、优缺点及应用场景
串行输出与并行输出详解原理、时序、优缺点及应用场景前言在单片机、嵌入式系统、数字电路和计算机组成原理中数据经常需要在芯片、模块和设备之间传输。按照多个数据位的传输方式可以将数据传输简单分为两类串行输出多个数据位按照时间顺序一个接一个地传输。并行输出多个数据位通过多条数据线在同一时刻一起传输。可以用道路交通来理解串行输出像单车道车辆需要一个接一个通过。并行输出像多车道多辆车可以同时通过。本文将从基本原理、工作时序、优缺点、常见接口和应用场景等方面详细介绍串行输出与并行输出的区别。一、串行输出和并行输出的直观区别假设现在需要传输一个8位二进制数据101100101. 串行输出串行输出会将8个数据位按照时间顺序依次发送。时刻 t01 时刻 t10 时刻 t21 时刻 t31 时刻 t40 时刻 t50 时刻 t61 时刻 t70可以简化表示为发送端 ── 1 ── 0 ── 1 ── 1 ── 0 ── 0 ── 1 ── 0 ── 接收端 时间方向每一个时间段只传输一位数据。2. 并行输出并行输出会使用多条数据线每一条数据线负责传输一个数据位。D7 1 D6 0 D5 1 D4 1 D3 0 D2 0 D1 1 D0 0可以简化表示为发送端 ── D71 ── 接收端 ── D60 ── ── D51 ── ── D41 ── ── D30 ── ── D20 ── ── D11 ── ── D00 ──接收端可以在同一个采样时刻获得完整的8位数据。二、什么是串行输出串行输出是指多个数据位通过一条或少量数据通道按照规定的时间顺序逐位发送。串行输出的核心特点并不是“整个系统只能有一根线”而是同一个数据通道中的多个数据位需要按照时间顺序依次出现。例如UART一般使用TX和RX数据线SPI通常包含时钟线、数据线和片选线I2C通常包含SCL和SDA两条信号线。虽然这些接口可能不止一根线但数据仍然是按照时间顺序逐位传输的因此它们都属于串行接口。1. 串行输出的基本结构一个简单的串行输出系统可以表示为发送端 → 数据线 → 接收端根据具体通信协议还可能包含时钟信号片选信号起始位停止位校验位应答信号。由于串行传输使用的数据线较少因此可以减少芯片引脚占用和PCB布线压力。三、串行输出的工作过程串行输出一般包括以下几个步骤。第一步发送端准备数据假设发送端需要发送一个8位数据10110010第二步将数据拆分成多个数据位发送端将完整数据拆分成独立的数据位1、0、1、1、0、0、1、0第三步按照时间顺序发送发送端根据时钟频率或通信波特率依次将每一位数据放到数据线上。时间t0 t1 t2 t3 t4 t5 t6 t7 数据 1 0 1 1 0 0 1 0第四步接收端按照时序采样接收端需要在正确的时间读取数据线上的高低电平。如果采样时间不正确就可能把原本的0读取成1或者把原本的1读取成0。第五步重新组合数据接收端将接收到的数据位按照原来的顺序重新组合1 0 1 1 0 0 1 0最终还原为10110010因此串行传输不仅要保证数据内容正确还要保证数据位的先后顺序正确。四、串行输出的优点1. 占用数据线少串行传输通常只需要一条或少量数据线。对于引脚资源有限的单片机来说这是一个非常重要的优势。2. PCB布线简单由于信号线数量少PCB上的走线数量也会减少。这能够降低PCB布线难度连接器尺寸过孔数量电路板面积线缆成本。3. 硬件成本较低当数据线数量减少后芯片引脚数量、连接器针脚数量和PCB布线资源也会减少因此整体硬件成本通常更低。4. 更适合较长距离传输并行传输需要保证多条数据线之间的时序一致而串行数据通常集中在一条数据通道上传输因此更容易控制线路之间的时序差异。5. 便于实现高速差分通信现代高速通信接口大量采用串行传输例如USBPCI ExpressSATAHDMIEthernet。这些接口通过高速串行、差分信号、数据编码和时钟恢复等技术实现了非常高的数据传输速率。五、串行输出的缺点1. 单个时刻传输的数据位较少普通串行传输在一个时钟周期内通常只传输一位数据。如果需要发送8位数据就需要连续传输多个时钟周期。2. 需要进行串并转换发送端需要将完整数据拆分成串行数据。接收端需要将收到的串行数据重新组合成完整数据。3. 依赖通信协议接收端必须知道数据什么时候开始每一位持续多长时间数据按照什么顺序发送是否存在校验位数据什么时候结束。如果发送端和接收端的通信参数不一致就可能导致数据接收错误。4. 提高速度会增加系统要求提高串行通信速率后对以下因素的要求也会提高时钟精度信号完整性抗干扰能力收发器性能PCB阻抗控制接收端采样能力。六、常见的串行通信接口1. UARTUART是一种常见的异步串行通信接口。常见信号包括TX发送数据 RX接收数据 GND公共地UART通信双方通常不需要共享时钟线而是提前约定相同的波特率。常见应用包括单片机调试串口GPS模块蓝牙模块串口传感器单片机与上位机通信。需要注意的是UART通常是双向通信接口而“串行输出”主要描述其中的发送方向。2. SPISPI是一种同步串行通信接口。常见信号包括SCLK串行时钟 MOSI主机输出、从机输入 MISO主机输入、从机输出 CS片选信号SPI通常具有较高的通信速率常用于Flash存储器ADC和DAC显示屏高速传感器无线通信模块。SPI虽然包含多根信号线但每一条数据线上的数据仍然按照时间顺序逐位传输因此SPI属于串行接口。3. I2CI2C通常使用两条信号线SCL时钟线 SDA数据线I2C支持多个设备连接在同一条总线上常用于温湿度传感器EEPROM实时时钟电源管理芯片配置类外设。七、什么是并行输出并行输出是指多个数据位分别通过多条数据线在同一个时刻同时输出。例如一个8位并行接口通常包含8条数据线D7、D6、D5、D4、D3、D2、D1、D0如果需要输出数据10110010发送端可以把每一位数据放到对应的数据线上D7 1 D6 0 D5 1 D4 1 D3 0 D2 0 D1 1 D0 0接收端在时钟、锁存信号或数据有效信号到来时对所有数据线进行采样一次获得完整的8位数据。八、并行输出的工作过程第一步发送端准备多位数据发送端准备一个完整的数据字节10110010第二步将不同数据位放到不同线路发送端将每一个数据位放到对应的数据线上D7 → 1 D6 → 0 D5 → 1 D4 → 1 D3 → 0 D2 → 0 D1 → 1 D0 → 0第三步等待数据稳定由于不同数据线的长度、负载和电气特性可能不同各条线路上的数据不一定在完全相同的瞬间稳定。因此发送端需要保留一定的数据建立时间。第四步产生采样或锁存信号当数据稳定后发送端产生时钟、锁存或数据有效信号。第五步接收端同时采样接收端在规定时刻同时读取D0到D7的数据状态。D71 ───────── D60 ───────── D51 ───────── D41 ───────── D30 ───────── D20 ───────── D11 ───────── D00 ───────── ↑ 同时采样接收端一次即可获得完整数据10110010九、并行输出的优点1. 单次可以传输多个数据位8位并行总线在一次采样中可以传输8位数据。16位并行总线在一次采样中可以传输16位数据。2. 单周期吞吐量高在相同总线时钟条件下并行接口可以在一个周期内传输更多数据。例如1位串行接口一个周期传输1位 8位并行接口一个周期传输8位 16位并行接口一个周期传输16位3. 数据结构直观每一条数据线对应一个数据位硬件逻辑比较直观。4. 适合短距离高速连接在同一块PCB或者相邻芯片之间并行接口可以获得较高的单周期数据吞吐量。十、并行输出的缺点1. 占用芯片引脚多一个8位并行接口至少需要8条数据线。如果再加上时钟、片选、读写和锁存信号实际占用的引脚数量会更多。2. PCB布线复杂多条数据线需要同时连接发送端和接收端容易造成PCB走线密集过孔数量增加连接器体积增大PCB层数增加布线成本提高。3. 数据线之间可能存在时序偏差不同数据线的物理长度、负载和寄生参数很难完全相同因此数据到达接收端的时间可能存在差异。这种现象通常称为数据偏斜如果某些数据线提前到达某些数据线延后到达接收端就可能在错误的时间读取到不完整的数据。4. 高速时需要进行等长布线为了减小多条数据线之间的传播延迟差异高速并行总线通常需要进行等长设计。这会明显增加PCB设计难度。5. 不适合长距离传输传输距离增加后线路延迟、信号反射、串扰和电磁干扰都会变得更加明显。因此并行接口通常更适合芯片内部、设备内部或同一块电路板上的短距离连接。十一、常见的并行接口并行传输常见于以下场景CPU与存储器之间的数据总线MCU的GPIO并行输出SRAM、SDRAM等存储器接口RGB LCD显示接口摄像头并行数据接口FPGA内部数据通道传统打印机并口。例如单片机可以通过8个GPIO引脚同时输出一个字节#includestdint.hvoidparallel_output(uint8_tdata){// 示例代码将一个字节写入8位GPIO端口GPIO_PORTdata;}当输出数据为parallel_output(0xB2);0xB2对应的二进制形式为101100108个GPIO引脚会分别输出对应的高低电平。十二、串行输出与并行输出对比比较项目串行输出并行输出数据传输方式按照时间顺序逐位传输多位数据同时传输数据线数量较少较多芯片引脚占用较少较多PCB布线复杂度较低较高硬件成本通常较低通常较高单周期传输位数通常较少通常较多传输距离更适合较长距离更适合较短距离同步要求相对容易控制多条数据线需要保持同步数据偏斜问题相对较少比较明显典型接口UART、SPI、I2C存储器总线、LCD并口、GPIO并口典型应用模块通信、传感器、设备间通信板内总线、存储器、显示接口十三、并行传输一定比串行传输快吗很多初学者会认为并行接口一次可以传输多位数据所以并行传输一定比串行传输快。这种说法并不完全正确。在较低频率、较短距离和相同时钟频率条件下并行传输确实可以在单个周期内传输更多数据。例如8位并行总线一个周期传输8位 1位串行总线一个周期传输1位但是当通信速率不断提高时并行总线会遇到很多问题多条数据线的传播延迟不一致数据线之间可能产生串扰PCB走线需要严格控制长度时钟与数据难以保持同步芯片引脚和连接器数量过多长距离传输时信号完整性变差。串行接口虽然单条数据通道一次传输的数据位较少但可以通过提高信号速率获得更高的总带宽。现代高速串行接口还会使用差分信号多通道传输时钟恢复高速编码预加重均衡技术。因此很多现代高速接口都采用串行传输例如USB PCI Express SATA HDMI Ethernet所以更准确的结论是并行接口在短距离、低到中等频率场景中具有较高的单周期吞吐量串行接口在线路数量、传输距离和高速扩展方面通常更有优势。十四、串行输出和并行输出应该怎么选择实际项目中不能只比较“哪一种更快”还需要综合考虑传输速率通信距离芯片引脚数量PCB空间硬件成本抗干扰要求连接器尺寸软件和协议复杂度。1. 适合选择串行输出的场景当项目具有以下特点时可以优先选择串行接口单片机引脚数量有限设备之间距离较远PCB空间有限连接器需要尽量小硬件成本比较敏感多个设备需要共享总线数据量不是特别大。常见选择包括调试通信 → UART 传感器连接 → I2C Flash存储器 → SPI 显示模块 → SPI 远距离设备通信 → UART、RS-485等2. 适合选择并行输出的场景当项目具有以下特点时可以考虑并行接口发送端和接收端距离很短芯片引脚数量充足需要一次传输多个数据位对单周期吞吐量要求较高PCB线路长度容易控制接口主要位于同一块电路板内部。常见选择包括MCU连接并口LCD CPU连接外部存储器 FPGA连接高速ADC GPIO输出8位或16位数据 芯片内部模块之间传输数据十五、常见误区误区一接口线少就是串行接口不一定。判断一个接口是串行还是并行关键是看数据位的传输方式而不是只看信号线总数量。SPI虽然可能包含多根信号线但每一条数据线上的数据仍然按时间顺序传输因此SPI属于串行接口。误区二并行接口不需要时钟并行接口同样需要确定数据在哪一个时刻有效。常见的同步信号包括时钟信号锁存信号读写信号数据有效信号片选信号。误区三串行传输一定很慢现代高速串行接口可以达到非常高的传输速率。影响通信速度的不只是“一次传输多少位”还包括信号频率数据编码效率通道数量通信协议信号完整性硬件处理能力。误区四并行数据绝对同时到达实际电路中的多条数据线不可能做到传播延迟完全相同。工程上所说的“同时到达”通常是指所有数据位都能够在规定的采样窗口内稳定有效。误区五串行输出等于串行通信二者并不完全相同。“串行输出”强调数据从发送端向外输出的过程而“串行通信”通常同时包含发送和接收两个方向。例如UART、SPI和I2C属于串行通信接口其中都可能包含串行输出过程。十六、总结串行输出和并行输出的核心区别可以概括为串行输出 使用较少的数据线多个数据位按照时间顺序依次传输。 并行输出 使用多条数据线多个数据位在同一时刻一起传输。串行输出的主要特点包括连线少占用引脚少PCB布线简单成本较低适合较长距离更容易实现现代高速差分通信。并行输出的主要特点包括一次可以传输多个数据位单周期吞吐量较高占用引脚较多PCB布线复杂多条线路同步要求较高更适合板内短距离通信。在实际项目中串行和并行并不存在绝对的优劣关系需要结合速度、距离、引脚数量、硬件成本和系统可靠性进行选择。最后可以用一句口诀来记忆串行省线依次走并行多线一起走。文章标签嵌入式 单片机 串行通信 并行通信 UART SPI I2C 数字电路 计算机组成原理

相关新闻