1.数据通信:计算机与计算机之间以及计算机与其他外部设备之间的信息交互
分为并行通信和串行通信
并行通信:单位时间内多位数据同时传输
串行通信:一位一位传输
速度:并行通信>串行
成本:随距离增加,成本上升
稳定性:容易受到电磁干扰,并行更容易收到电磁干扰
接收数据
1.同步通信:接收方做好接受准备(打电话),按时钟信号来规定收发双方的速度问题,不易造成丢失错位问题。以数据块(一组字符)为单位
2.异步通信:接收方不一定和发送方同时在(写信)
3.波特率:每秒传输二进制个数,一般都是1200的倍数
4.帧格式:起始位(1)+数据位(8)+校验位+停止位(1),异步串行通信上的数据就按这种格式发送,起始位拉低后一定时间接收方开始接收
空闲状态:当通信总线在一定时间里为高电平时
如何收发数据:相同波特率,固定的帧格式
单工,全双工,半双工
单工
单向固定传输,只发不收 / 只收不发。
半双工
双向,但不能同时收发,同一时间只能一方发、一方收。
全双工
双向同时收发,两边可一边发一边收。
通信接口
物理层:物理形式,电气特性:数据传输的时候是以不同的形式(电流,电压,电磁波)
软件层:通信协议,数据格式
常见串行接口
RS232(232电平):0:+3V——+15V
1:-15v —— -3v
MCU(TTL电平):0: 0V——0.4V
1: 2.4V —— 5V
MCU和232通信时需要加 “ 电平转换芯片 ”
232称为:*异步串行全双工,收发不影响。抗干扰能力差(共地)
232改进后叫RS485
:主要在抗干扰上做改进:使用差分信号
支持多从机通信:是半双工,最大可以挂在128个通信
再改进RS422:再加两根线全双工
接口类型 通信模式 最大传输距离 最大波特率
RS232 全双工 15 20kbps
485 半双工 1200 10Mbps
422 全双工 1200 10Mbps
USART(同步异步收发器)
外设
有一个发送数据寄存器(只写)和接收数据寄存器(只读);这两个数据寄存器虚拟地址相同,叫做DR,物理地址不同
UART(异步收发器)
地位:收发器
数据收发的过程
大体上:数据传送到usart上,然后根据波特率转化为帧格式
细节:数据寄存器DR-------------发送寄存器---->发送移位寄存器------------>tx传输出去
rx---------->接收寄存器---->接收移位寄存器---------->DR
为什么数据可以都放到DR中呢?因为发送寄存器只读,接收寄存器只写,DR是一个临时的通用存放数据寄存器
USART_SR 串口状态寄存器
| 标志位 | 作用 | 清空
|TXE |TXE=1:发送寄存器为空,可以写入新数据发送, |写入 DR 后 TXE 自动变 0
|TC | TC=1:所有数据全部发送完毕, |读 SR 再写 DR 才能把 TC 清零
RXNE | =1:收到新数据存在 DR 里, |读取 DR 后 RXNE 自动变 0
ORE | 为1接收溢出,旧数据没读又收到新数据, |读 SR 再读 DR 才能把 ORE 清零
IDLE | 为1 串口总线长时间空闲 |读 SR 再读 DR 才能把 IDLE 清