一、UART
(一)概念
1.UART概念:通用异步收发器,2个串口(一个用于ISP下载程序,另一个可以用来与主机通信)。
2.有RXD,TXD两根通信线
3.全双工、串行、异步
(二)通信方式
1.单工:发送方和接收方固定,数据传输通过一根信号线,数据传输方向单一。
2.半双工(对讲机,i2c):发送方和接收方不固定,但是单方不能在某一时刻发送和接收。数据传输方向是双向,但某一时刻是单向的。
3.全双工(电话,UART,TCP聊天室):通信双方同一时刻既可以发送又可以接收,有两根信号线。
(三)串口(UART)数据传输的顺序:LSB优先原则(低位先发)
(四)数据传输方式
1.串行:通过一根信号线传输数据,从低bit到高bit按序逐个发送
优点:硬件成本低、实现简单,传输距离远(RS485差分,上千m传输)、抗干扰强
缺点:传输速度慢
2.并行:通过多根信号线,同时传输
优点:传输速度快
缺点:硬件成本高,实现复杂、传输距离近(理论30m以内)、抗干扰弱(存在信号偏移,电磁波干扰)
二、串口通信时序
(一)步骤
1.串口通信时,空闲状态位高电平
2.当由高电平-->低电平,表示发送了一个起始位,准备开始通信
3.发送数据(通常是8bit,遵循LSB发送原则)
4.在发送一个bit的奇偶校验位
5.最后发送一个bit的停止位,代表一次串口通信结束
(二)校验
1.奇偶校验(串口):无法检测偶数个bit出错
2.累加和校验
3.CRC校验
三、串口通信参数
(一)波特率(bps:bit per sencod):每秒传输bit的数量,常见:2400,4800,8600,115200
(二)数据位:8,串口传输通常8bit数据位传输
(三)停止位:1,1bit停止位
(四)校验位
1.None,N,无校验
2.Even,E,偶校验
3.Odd,O,奇校验
四、同步、异步通信
(一)同步
通信的双方有一根共享的时钟线来约定通信的频率(同步发送/接收数据)
(二)异步
通信双方没有共享的时钟线,如UART:可以通过设置波特率来实现同步(发2400bps 收:2400bps)
(三)通过时钟线判断(UART:无时钟线,异步、SPI:SCLK时钟线、I2C:SCL时钟线)同步、异步?
五、串口寄存器配置
(一)串口控制寄存器(SCON/PCON)
1.PCON寄存器中的bit6置0,代表通过SCON寄存器中的SM0和SM1两位指定串口工作方式
2.将SCON寄存器中的bit6和bit7清0
3.将SCON寄存器中的SM1 bit6置1,SM0 bit7清0,代表串口工作8位UART模式
4.将SCON寄存器中REN bit4置1,代表允许串口接收数据
5.SCON寄存器bit1 TI位,代表串口8位数据发送完毕硬件自动置1,但需要软件清0(查询)
6.SCON寄存器bit0 RI位,代表串口8位数据接收完毕硬件自动置1,但需要软件清0(查询)
7.PCON寄存器SMOD bit7位置1,代表波特率加倍
(二)串口的波特率发生器依赖于定时器1(Timer1)
(三)定时器寄存器相关配置
1.将TMOD寄存器中的高四位清0(TMOD定时器模式选择寄存器:定时器1)
2.将TMOD寄存器中的bit5置1,bit4清0,代表定时器1工作在8位自动重装载模式
3.将定时器初值写入到TL1和TH1
4.将TCON寄存器中的bit6置1,代表允许定时器1开始计数
(四)中断寄存器相关配置
1.将IE寄存器中的bit7 EA位置1,代表CPU能够响应所有中断
2.将IE寄存器中的bit4 ES1位置1,代表允许串口产生中断