串行接口,简称串口,也称串行通信接口(采用串行通信方式的扩展接口),通常指COM接口;
1、同步通信(SYNC-synchronous data communication)
同步通信有时钟信号来做同步,在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这样就保证了通信双方在发送和接收时具有完全一致的定时关系;
同步串行通信SPI(Serial Peripheral Interface串行外围设备接口简称),SPI总线系统是一种同步串行的外设接口,它可以是MCU与各种外围设备以串行方式进行通信以交换信息;
2、异步通信(ASYNC-asynchronous data communication)
以字符为单位进行传输,字符之间没有固定的时间间隔要求,而每个字符中的各位则固定的时间传送。异步通信中,收发双方去的同步是通过在字符格式中设置起始位和停止位的方式来实现的。具体来说就是,在一个有效字符正式发送之前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位和停止位构成一帧。停止位和下一个起始位之间是不定长的空闲位,并且规定起始位为低电平(逻辑值为0),停止位和空闲位都是高电平(逻辑值为1),这样就保证了起始位开始处一定会有一个下跳沿,由此就可以标志一个字符传输的起始;根据起始位和停止位就很容易的实现了字符的界定和同步。
异步串行通信UART(无时钟信号)(UniverSal Asynchronous Receiver/Transmitter),即通用异步接收/发送;
UART包含TTL电平和RS232电平,TTL电平是3.3V的,RS232是负逻辑电平,它定义+3 ~ +15为低电平,而-15 ~ -3为高电平,通常PC机串口与单片机串口通信需要电平转换芯片,例如:MAX232;
显然,采用异步通信时,发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,可以互不同步。
异步通信的数据发送过程
异步通信的数据接收过程
在异步通信中,接收端一接收时钟和波特率因子决定每一位的时间长度;
下面一波特率因子16(接收时钟每16个时钟周期使接收移位寄存器移位一次)为例来说明:
接收时钟和发送时钟与波特率的关系:
f = n x B(f:发送时钟或接收时钟的频率;B:数据传输的波特率;n:波特率因子);
设发送或接收时钟的周期为Tc,发送一个波形所需要的传输时间为Td,则:Tc = 1 / f,Td = 1 / B,得到Tc = Td / n,从而n代表发送一个波形需要几个时钟周期;
在实际串行通信中,波特率因子可以设定;
在异步传送时,n = 1, 16, 64,常采用n = 16,即发送或接收时钟的频率要比数据传送的波特率高n倍;
在同步通信时,波特率因子n必须等于1;
波特率与比特率的关系:
波特率代表1秒钟发送波形的个数,而比特率代表1秒钟发送比特的个数;
在采用二进制传输的情况下,发送的波形一共有2种波形,即高电平和低电平。那么一个波形代表一个比特,因此波特率和比特率相等;
在采用四进制传输的情况下,发送的波形一共有4种波形,此处假设发送的最高电平为3C,发送00的波形为0V,发送01的波形为1V,发送10的波形为2V,发送11的波形为3V,那么一个波形代表两个比特,因此比特率是波特率的两倍;同理,在采用8进制传输的情况下,比特率是波特率的三倍,以此类推;
1、单工模式(Simplex Comminication)
数据传输是单向的,通信双方中,一方固定为发送端,一方固定为接收端,信息只能炎一个方向传输,使用一根传输线;
2、半双工模式
通信使用同一根传输线,既可以发送数据又可以接收数据,但不能同时进行发送和接收。数据传输运行数据在两个方向上传输,但是,在任何时刻都只能由其中的一方发送数据,另一方接收数据,因此半双工模式既可以使用一条数据线,也可以使用两条数据线。半双工通信中每端需有一个收发切换电子开关,通过切换来觉得数据向哪个方向传输;因为有切换,所以会产生时间延迟,信息传输效率低些;
3、全双工模式
通信允许数据同时在两个方向上传输,因此,全双工通信时两个单个通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力;在全双工模式中,每一段都有发送器和接收器,有两条传输线,信息传输效率高;