赞
踩
一、串行通信
串行通信指的是:数据字节位通过一根总线,单bit位,一位一位输出或者输入;
常见的串行通信方式有:usart、iic、spi等,本文着重介绍UART;
二、UART介绍
UART也叫通用异步收发串口;在异步通信中,数据通常以字符(或字节)为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,两个时钟源彼此独立,互不同步。
UART通信中如何判定发送端何时开始发送和何时发送结束呢?这是由字符帧格式规定的。平时,发送线为高电平(逻辑1),每当接收端检测到传输线上发送过来低电平逻辑0(字符帧的起始位)时,就知道发送端已经开始发送,每当接收端接收到字符帧中的停止位时,就知道一帧字符信息已发送完毕。任何在UART通信中区分两个连续的逻辑0或者逻辑1呢?这时就需要我们规定每个逻辑0或者逻辑1的持续时间,即波特率(baudrate);
UART异步通信的字符帧格式:
1、帧格式介绍
字符帧格式也称为数据帧,由起始位、数据位、奇偶校验位和停止位4部分构成。
起始位 | 位于字符帧开头,只占1位,始终为逻辑0低电平,用于向接收设备表示发送端开始发送一帧信息 |
数据位 | 紧跟起始位之后,用户根据情况可以取5位、6位、7位和8位,低位在前高位在后。若所传数据位ASCII字符,则常取7位 |
奇偶校验位 | 位于数据位之后,仅占1位,用于表征串行通信中采用奇校验位还是偶校验,由用户根据需要决定 |
停止位 | 位于字符帧末尾,为逻辑高电平1,通常可取1位、1.5位或2位,用于向接收端表示一帧字符信息已发送完毕,也为发送下一帧字符做准备 |
2、波特率
波特率的定义为每秒钟传送二进制数码的位数(又称为比特数),单位是bit/s。波特率是串行通信的重要指标,用于表征数据传输的速度。波特率越高,数据传输速度越快。波特率还与信道的频带有关。波特率越高,信道频带越宽。所以,波特率也是衡量信道频宽的重要指标。
二、通信制式
1、串行通信中,数据是在两个站之间传输的。按照数据传输方向,串行通信可分为半双工和全双工两种制式。
半双工制式 | 在半双工制式下,A站和B站之间只有一个通信回路,故数据或者由A站发送被B站接收,或者由B站发送被A站接收。因此,A、B两站之间只需要一条信号线和一条接地线 |
全双工制式 | 在全双工制式下,A、B两站间有两个独立的通信回路,两站都可以同时发送和接收数据。因此,全双工方式下A、B两站之间至少需要三条传输线:一条用于发送,一条用于接收,一条用于信号地 |
2、常见串行通信方式制式:
通信标准 | 引脚说明 | 通信方式 | 通信方向 |
UART (通用异步收发器) | TXD:发送端 RXD:接收端 GND:公共地 | 异步通信 | 全双 |
SPI | SCK:同步时钟 MISO:主机输入,从机输出 MOMI:主机输出,从机输入 | 同步通信 | 全双工 |
I2C | SCL:同步时钟 SDA:数据输入/输出端 | 同步输出 | 半双工 |
二、单片机串口工作方式介绍
单片机的UART模块主要有:时钟单元、寄存器单元、中断单元、外设单元、错误控制单元、通信控制单元;
1、时钟单元:UART若要工作,必须要有正确时钟才能才能做到,只有选择合适的时钟,才能通过分频(或者倍频),配置出想要的波特率。
2、寄存器:时钟选择寄存器、数据寄存器、移位寄存器、控制寄存器、状态寄存器;
3、中断:接收中断、发送中断,错误中断;
4、外设:IO管脚;
5、错误控制单元:帧错误、溢出错误、奇偶校验错误;
6、通信控制:很多单片机的串行单元都是很多功能复用的,可以用作UART,也可以用作IIC,或者SPI等功能,具体用什么功能可以通过通信控制单元进行选择和控制;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。