一、UART基础概念
UART(Universal Asynchronous Receiver/Transmitter) 通用异步收发器;
参与通信的设备称为主机;
通信的本质是信息的传达;
1.通信方式:
2.串行通信与并行通信
并行通信:通信双方之间有两根及以上的数据线传输信息;传输速率较高,但会占用大量的芯片资源传输速率较高,但会占用大量的芯片资源.
串行通信:通信双方之间只有一根数据线传输信息;系统占用资源少,结构简单等优点
3.UART
UART(串口)是一种通信方式,全双工串行通信方式
作为常用的串行通信方式,以TTL为例,串口通信在不同主机之间的数据格式为:
空闲时数据线为高电平;
发送时发送一个低电平表示起始位;
发送的第一个比特是最低位(最右边)bit0即LBS;
校验位分为奇校验,偶校验和无校验。 奇校验是指确保数据位加上校验位中"1",1的总数为奇数;偶校验是指确保数据位加上校验位中"1",1的总数为偶数;
为保证下一个字节发送前的起始位能够表现出来,校验位之后发送一个停止位1。(将数据分隔);
4.波特率---数据传输速率:
串行通信用波特率(bit per second)来描述数据传输的速率,记作bps。常见的波特率有1200、2400,4800,9600,115200等,表示每秒钟传输的比特数。
5.串行的异步通信与同步通信:
- 异步通信:指通信中两个字符(8位)之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的;
收发双方的波特率必须是事先约定好的; - 同步通信:要求发收双方具有同频同相的同步;
SDA(数据线)
SCL(时钟线):用于同步双方时钟的节奏,一般由发送方决定;
6.TTL、RS232、RS485
1)TTL(Transistor-Transistor Logic)通常指的就是芯片引脚产生的电压,这个电压值跟选择的芯片有关,在51单片机系统下是5v;在2440下是3.3v等等。5vTTL通信距离通常被限制在10~20米之间,如果需要更远的距离,怎么解决呢?
2)为解决这个问题IEEE(Institute of Electrical and Electronics Engineers)颁布了RS232标准,其中规定了:
逻辑高电平(逻辑1):在-3V到-15V之间
逻辑低电平(逻辑0):在+3V到+15V之间
收发主机间有三根线,分别是收、发和地,因此RS232是全双工的。理论上RS232能够传输20~30米。
3)同理RS485使用两根信号线(A和B)来传输数据,通过比较A和B之间的电压差来识别信息,电压范围分别为+7V到+12V和-7V到-12V。正电压表示高电平,负电压表示低电平。这种差分信号传输方式提高了抗干扰能力。RS485的传输距离可达1200米,适用于大范围的数据传输需求。由于采用的是压差,RS485在传输数据的某一时刻,两根线都要用到,所以它是半双工的。
二、串口通讯(51单片机)
1.硬件部分
Windows表示串口为COMn;
2.
1)SBUF寄存器
2)SCON寄存器与PCON寄存器
STC89C51RC/RD+系列单片机的串行口设有两个控制寄存器:串行控制寄存器SCON和波特率选择特殊功能寄存器PCON
SCON寄存器
PCON寄存器
xdata 的作用:不将内容放在芯片内部的RAM中,放在扩展的RAM中
三、MODBUS通信协议