UART口的第一次接触 MCU起航 QQ:2246080671
主要内容 1、什么是UART口 2、UART口的应用电路 3、波特率
什么是UART口 在前面学习了IIC总线,得知它是串行总线,而UART口 也是串行总线的一种。那么,它到底是什么?简单来说,它 是单片机上的一组接口,如图所示。 UART是Universal Asynchronous Receiver/Transmitter 的缩写,意思为通用异步收发传输器,能够实现全双工、异 步、串行通信。通过UART口,单片机可以实现单片机与单 片机之间的、单片机与电脑之间的通信。什么是全双工?解 释它就不得不提到另外两个概念:半双工和单工。
什么是UART口 全双工是指在发送数据的同时也能够接收数据,两者同 步进行,就好像平时打手机一样,说话的同时也能够听到对 方的声音。 半双工是指在同一时刻,只能进行数据的发送或者接收, 两者无法同时进行。例如刚学的IIC总线,同一时刻,它只能 发送,或者接收。再例如玩户外的朋友经常用的对讲机,它 也是半双工的。 单工指的是永远只能进行固定方向的数据传输,例如收 音机,只能被动的接收无线电信号,不可能向外发送信号。
什么是UART口 简而言之,它是STC89C52RC上面的一个接口,如图 10.2所示,由引脚10和11组成。默认情况下,它俩是普通IO 口P3.0和P3.1,需要用时,通过配置相关寄存器,会变为 UART口中的TXD和RXD。 进行数据传输时,会按照一定的速度、顺序、格式进行 串行传输,如有需要,可开启中断,在一个8位或9位数据发 送或接收完成之后,触发中断。由于多处文献将其称为串行 口,因此常被简称为串口。
UART口的应用电路 UART口的应用电路般来说,分为如下3种情况。 1、单片机UART口直接连接。电源电压相等的情况下, TXD和RXD接口交叉连接即可。电压不等的话,如图
UART口的应用电路 2、单片机和电脑串口通讯。早期的台式机或笔记本上一般 会有一个电脑串口,如图所示,共9个引脚。较为常用的是 2RXD、3TXD和5GND,其它引脚的用途不多,不做关注。 电脑上既然有TXD和RXD,直接和单片机连接不行么? 当然不行,因为单片机中用5V(或3.3V)表示逻辑1, 用0V表示逻辑0。但是电脑串口上,-3V~-15V表示逻辑1, 3V~15V表示逻辑0
UART口的应用电路 如图所示,J1为9针连接器,上面的10脚和11脚为连接 器两侧的固定孔。U1为MAX232,它是美信公司(MAXIM) 专为RS-232标准串口设计的单电源电平转换芯片,使用 +5V单电源供电。其中,10、11脚为TTL/CMOS输入,9、 12脚为TTL/CMOS输出,7、14脚为RS232输出,8、13脚 为RS232输入。
UART口的应用电路 3、虽然RS232接口对电路调试者来说很方便,在工业上用 途也很广,但是实际对个人消费者用途不大,所以它在个人 电脑上已经慢慢淘汰了。但是很多时候需要用到串口,怎么 办?于是,出现了USB转串口这样一个设计,这也是下载程序 使用的方法。
波特率 波特率是什么?其实在学习IIC通信的时候,已经有了 一定的接触,只是没有明确的概念化。它是一个电子信号的 术语,用来描述信道的数据通讯速度。这里提到的信道,指 的是通信的渠道,它可以是有线的,例如IIC总线,串口线等 等,也可以是无线的,例如电视遥控器上的红外线,手机上 的蓝牙等等。 如果随意问一个人波特率是什么,可能得到的答案是: 每秒钟传输的二进制位数的个数,称为波特率。 如果此时再问一句:比特率是什么。估计他会有两种反应: 1、告诉你波特率和比特率是一回事。 2、如同被闪电击中一般,陷入深深的思考,开始质疑刚才 所做的回答。
波特率 严格来说,这是由于单片机领域和电子通信领域对同一 个词使用不同解释所引发的遗留问题。 先说电子通信领域,比特率指的是数字信号的传输速率, 表示单位时间内传输的二进制数的位数,单位为比特每秒 (bit/s)、每秒千比特数(Kbps)、每秒兆比特数 (Mbps)。 而波特率指的是信号被调制以后在单位时间内的变化, 即单位时间内载波参数变化的次数,其单位为波特 (baud)。 回归到单片机中,单片机中的波特率就是电子通讯领域 的比特率。
波特率 下图为9600 baud时,单片机连续向电脑串口发送十六 进制数“0xaa”,得到的串口线电平变化逻辑图,单独测量 一个电平信号持续的时间,约为104.33微秒左右。取反,得 到频率约为9584,刚好符合9600 baud。