赞
踩
串口通信是一种串行异步通信,通信双方以字符帧作为数据传输单位,字符帧按位依次传输,每个位占固定的时间长度。两个字符帧之间的传输时间间隔可以是任意的,即传输完一个字符帧之后,可以间隔任意时间再传输下一个字符帧。
字符帧由四个部分构成,分别是起始位、数据位、校验位以及停止位。起始位占1位,为逻辑0。数据位占5 ~ 8位,可配置。校验位占1位,可配置为奇校验、偶校验、无校验;配置为无校验时字符帧不包含校验位;配置为奇校验时,数据位中逻辑1的个数为奇数时,校验位的值为逻辑0,否则为逻辑1;配置为偶校验时,数据位中逻辑1的个数为偶数时,校验位的值为逻辑0,否则为逻辑1。停止位占1/1.5/2位,可配置,停止位的值为逻辑1。常用的字符帧格式如下图1.1所示,1位起始位、8位数据位、1位校验位、1位停止位。
字符帧是按位依次传输,波特率即传输字符帧时的位速率,单位为bit/s。通信双方要使用相同的波特率,常用的波特率如9600、115200。
UART是通用异步收发器(Universal Asynchronous Receiver/Transmitter)的简称,它是设备实现串口通信的核心部件。如图1.3所示,UART由发送器、接收器、波特率发生器组成,发送器由发送保持寄存器、发送移位寄存器、控制逻辑构成,接收器由接收保持寄存器、接收移位寄存器、控制逻辑构成。发送数据时,应用程序将字节数据写入发送保持寄存器,发送移位寄存器每次向右移动一位,将数据一位一位发送出去。接收数据时,每接收一位数据后,接收移位寄存器向左移动一位,直到接收一个字节数据为止,应用程序通过读取接收保持寄存器来获取接收的字节数据。波特率发生器用于产生接收和发送数据时所使用的波特率。
8051、STM32等MCU芯片的内部都集成了UART,两个MCU进行串口通信时,可将一个MCU的TX、RX引脚分别与另一个MCU的RX、TX引脚相连,如图3.2所示。
RS232标准使用+5 V ~ +15 V表示逻辑0,-5V ~ -15 V表示逻辑1。相比TTL电平,RS232电平提高了串口通信的抗干扰能力,增大了串口通信的距离。台式PC一般都带有RS232标准接口,MCU按RS232标准进行串口通信时,需加max232电平转换芯片,如图4.1所示。
RS485标准使用差分电平表示逻辑0或1,当A与B的电压差为+2v ~ +6v 时表示逻辑1,当A与B的电压差为-2v ~ -6v时表示逻辑0。RS485为半双工通信,即通信节点不能同时进行数据的接收和发送。相比RS232电平,RS485电平使串口通信的抗干扰能力更强,通信距离更远。MCU按RS485标准进行串口通信时,需加max485电平转换芯片,如图5.1所示。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。