当前位置:首页 > 通信技术 > 通信技术
[导读]串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。串口按电气标准及协议来划分,包括RS-232-C、RS-422、RS485等。

串口是串行接口(serial port)的简称,也称为串行通信接口或COM接口。

串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。串口按电气标准及协议来划分,包括RS-232-C、RS-422、RS485等。

一、串行通信

在串行通信中,数据在1位宽的单条线路上进行传输,一个字节的数据要分为8次,由低位到高位按顺序一位一位的进行传送。

串行通信的数据是逐位传输的,发送方发送的每一位都具有固定的时间间隔,这就要求接收方也要按照发送方同样的时间间隔来接收每一位。不仅如此,接收方还必须能够确定一个信息组的开始和结束。

常用的两种基本串行通信方式包括同步通信和异步通信

01:串行同步通信

同步通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这样就保证了通信双方在发送和接收数据时具有完全一致的定时关系。

同步通信把许多字符组成一个信息组(信息帧),每帧的开始用同步字符来指示,一次通信只传送一帧信息。在传输数据的同时还需要传输时钟信号,以便接收方可以用时针信号来确定每个信息位。

同步通信的优点是传送信息的位数几乎不受限制,一次通信传输的数据有几十到几千个字节,通信效率较高。同步通信的缺点是要求在通信中始终保持精确的同步时钟,即发送时钟和接收时钟要严格的同步(常用的做法是两个设备使用同一个时钟源)

02:串行异步通信

异步通信又称为起止式异步通信,是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。

在异步通信中,收发双方取得同步是通过在字符格式中设置起始位和停止位的方法来实现的。

具体来说就是,在一个有效字符正式发送之前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧。停止位至下一个起始位之间是不定长的空闲位,并且规定起始位为低电平(逻辑值为0),停止位和空闲位都是高电平(逻辑值为1),这样就保证了起始位开始处一定会有一个下跳沿;由此就可以标志一个字符传输的起始。而根据起始位和停止位也就很容易的实现了字符的界定和同步。

显然,采用异步通信时,发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,可以互不同步。

二、数据发送和接收过程

数据格式

在介绍异步通信的数据发送和接收过程之前,有必要先弄清楚异步通信的数据格式。

异步通信规定传输的数据格式由起始位(start bit)、数据位(data bit)、奇偶校验位(parity bit)和停止位(stop bit)组成,如图所示(该图中未画出奇偶校验位,因为奇偶检验位不是必须有的,如果有奇偶检验位,则奇偶检验位应该在数据位之后,停止位之前)。

异步通信数据格式

(1)起始位:起始位必须是持续一个比特时间的逻辑0电平,标志传输一个字符的开始,接收方可用起始位使自己的接收时钟与发送方的数据同步。

(2)数据位:数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定,一般可以是5位、7位或8位,标准的ASCII码是0~127(7位),扩展的ASCII码是0~255(8位)。传输数据时先传送字符的低位,后传送字符的高位。

(3)奇偶校验位:奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。

举例来说,假设传输的数据位为01001100,如果是奇校验,则奇校验位为0(要确保总共有奇数个1),如果是偶校验,则偶校验位为1(要确保总共有偶数个1)。

由此可见,奇偶校验位仅是对数据进行简单的置逻辑高位或逻辑低位,不会对数据进行实质的判断,这样做的好处是接收设备能够知道一个位的状态,有可能判断是否有噪声干扰了通信以及传输的数据是否同步。

(4)停止位:停止位可以是是1位、1.5位或2位,可以由软件设定。它一定是逻辑1电平,标志着传输一个字符的结束。

(5)空闲位:空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,必须由高电平来填充。

数据发送过程

清楚了异步通信的数据格式之后,就可以按照指定的数据格式发送数据了,发送数据的具体步骤如下:

(1)初始化后或者没有数据需要发送时,发送端输出逻辑1,可以有任意数量的空闲位。

(2)当需要发送数据时,发送端首先输出逻辑0,作为起始位。

(3)接着就可以开始输出数据位了,发送端首先输出数据的最低位D0,然后是D1,最后是数据的最高位。

(4)如果设有奇偶检验位,发送端输出检验位。

(5)最后,发送端输出停止位(逻辑1)。

(6)如果没有信息需要发送,发送端输出逻辑1(空闲位),如果有信息需要发送,则转入步骤(2)。

数据接收过程

在异步通信中,接收端以接收时钟和波特率因子决定每一位的时间长度。下面以波特率因子等于16(接收时钟每16个时钟周期使接收移位寄存器移位一次)为例来说明。

(1)开始通信,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对接收时钟计数。

(2)当计到8个时钟的时候,对输入信号进行检测,若仍然为低电平,则确认这是起始位,而不是干扰信号。

(3)接收端检测到起始位后,隔16个接收时钟对输入信号检测一次,把对应的值作为D0位数据。

(4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据,直到全部数据位都输入。

(5)检验奇偶检验位。

(6)接收到规定的数据位个数和校验位之后,通信接口电路希望收到停止位(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志;若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中取出送至数据输入寄存器,若校验错,在状态寄存器中置“奇偶错”标志。

(7)本帧信息全部接收完,把线路上出现的高电平作为空闲位。

(8)当信号再次变为低时,开始进入下一帧的检测。

以上就是异步通信中数据发送和接收的全过程了。

三、基本概念

为了更好的理解串口通信,我们还需要了解几个串口通信当中的基本概念。

(1)发送时钟:发送数据时,首先将要发送的数据送入移位寄存器,然后在发送时钟的控制下,将该并行数据逐位移位输出。

(2)接收时钟:在接收串行数据时,接收时钟的上升沿对接收数据采样,进行数据位检测,并将其移入接收器的移位寄存器中,最后组成并行数据输出。

(3)波特率因子:波特率因子是指发送或接收1个数据位所需要的时钟脉冲个数。

四、串口接头

常用的串口接头有两种,一种是9针串口(简称DB-9),一种是25针串口(简称DB-25)。每种接头都有公头和母头之分,其中带针状的接头是公头,而带孔状的接头是母头。

可以看出,在9针串口接头中,公头和母头的管脚定义顺序是不一样的,这一点需要特别注意。那么,这个管脚都有什么作用呢?

9针串口和25针串口常用管脚的功能说明如图所示。

单来说,同步通信是一种比特同步通信技术,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收.

相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的.但是接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收).发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来.异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大).同步通信和异步通信是两种不同的通信方式,它们的区别主要有以下几点:

- 同步通信要求发送方和接收方的时钟频率一致,或者有一个固定的时间间隔来传输数据,而异步通信则不需要时钟同步,发送方可以在任意时间发送数据,只需要在每个数据单元的开始和结束加上标志位¹。

- 同步通信效率较高,因为没有额外的标志位,也不需要等待接收方的响应,但是同步通信也较复杂,需要双方时钟的误差很小,或者有一个可靠的同步机制¹。异步通信则相对简单,容错率高,但是效率较低,因为需要添加标志位,也可能造成数据的不连续¹。

- 同步通信可以用于点对多点的通信场景,例如广播或多播²。异步通信则只适用于点对点的通信场景,例如串行通信²。

同步通信和异步通信各有优缺点,适用于不同的应用场景。一般来说,当数据量大、实时性要求高、传输距离短时,可以采用同步通信;当数据量小、实时性要求低、传输距离长时,可以采用异步通信³。

UART、SPI和I2C是三种常见的串行通信协议。它们分别属于异步通信、同步通信和同步通信⁴。具体来说:

- UART(Universal Asynchronous Receiver/Transmitter)是一种通用的异步串行收发器,它可以在两个设备之间进行全双工的异步串行通信⁵。UART在每个数据字节的前后加上开始位和停止位,以便接收方能够识别数据的边界⁵。

- SPI(Serial Peripheral Interface)是一种高速的同步串行外设接口,它可以在一个主设备和多个从设备之间进行全双工的同步串行通信⁶。SPI使用一个时钟线来同步数据的传输,同时使用一个片选线来选择目标从设备⁶。

- I2C(Inter-Integrated Circuit)是一种低速的同步串行总线,它可以在多个主设备和多个从设备之间进行半双工的同步串行通信⁷。I2C使用一个时钟线和一个数据线来传输数据,并使用从设备的地址来识别目标设备⁷。

声明:该篇文章为本站原创,未经授权不予转载,侵权必究。
换一批
延伸阅读

串行通信接口是一种数据传输方式,采用串行通信协议(Serial Communication Protocol)。它通过串行数据线(Serial Data Line)进行数据传输,通常使用标准的RS-232、RS-485或...

关键字: 串行通信 RS-232

同步通信是一种通信方式,它要求发送方和接收方之间保持精确的时钟同步,以便实现数据的可靠传输和协调操作。在同步通信中,发送端和接收端的时钟信号频率和相位始终保持一致,这样可以确保数据按照预定的顺序和时序进行传输,避免数据丢...

关键字: 同步通信

异步串行通信是一种通信方式,其中字符或字节以一种串行的方式从一个设备传输到另一个设备。以下是异步串行通信的详细介绍:通信方式:在异步串行通信中,数据以字符为单位进行传输。每个字符都由起始位、数据位、奇偶校验位和停止位组成...

关键字: 异步串行通信 RS-232

同步通信的原理是发送端在发送串行数据的同时,提供一个时钟信号,并按照一定的约定(例如:在时钟信号的上升沿的时候,将数据发送出去)发送数据。接收端根据发送端提供的时钟信号,以及双方的约定,接收数据。这种通信方式中,因为数据...

关键字: 同步通信 异步通信

同步通信是指在通信过程中发送方和接收方之间进行精确的时钟同步,以便实现数据的可靠传输和协调操作的一种通信方式。在同步通信中,发送方和接收方需要共享相同的时钟信号,以确保数据能够按照预定的时序进行传输。同步通信可以分为两种...

关键字: 同步通信 异步通信

串行通信是一种计算机通信方式,它在主机与外设以及主机之间的数据传输中起着重要作用。其工作原理是将数据按位依次传输,每位数据占据固定时长。相较于并行通信,串行通信使用的通信线路较少,成本较低。

关键字: 串行通信 异步通信

异步通信是指通信中两个字符(8位)之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。异步通信也可以理解为通信过程中发送方和接收方没有同步的时序限制,即它们可以独立于对方进行操作。具体地说,异步通信的发送方可...

关键字: 异步通信 同步通信

异步通信的工作原理基于事件驱动模型。例如,当一个进程想要向另一个进程发送数据时,它会发送一个请求并继续执行。当接收方准备好处理该请求时,它会触发一个事件来通知发送方,从而达到异步通信的目的。

关键字: 异步通信 RS232

在通信和计算机科学中,串行通信(Serial Communication)是一个通用概念,串行通信是指计算机主机与外设之间或者主机系统与主机系统之间数据的串行传送,通过数据信号线、地线等,按位进行传输数据的一种通讯方式。

关键字: 串行通信 RS-232

摘 要:AJAX作为当前网站开发的前沿技术,可根据用户需要向服务器端发送少量的数据请求,实现快速无刷新地改变系统页面的布局和内容,从而提供给用户极佳的浏览体验。文中将分析AJAX的基本原理以及其在Web应用交互中的重点突...

关键字: AJAX 智慧农业 Web前端 异步通信
关闭