电子说
UART是 异步 ,全双工串口总线。它比同步串口复杂很多。有两根线,一根TXD用于发送,一根RXD用于接收。UART的串行数据传输不需要使用时钟信号来同步传输,而是依赖于发送设备和接收设备之间预定义的配置。对于发送设备和接收设备来说,两者的串行通信配置应该设置为完全相同。
对于两个芯片之间的连接,两个芯片GND共地,同时TXD和RXD交叉连接。这里的交叉连接的意思就是,芯片1的RxD连接芯片2的TXD,芯片2的RXD连接芯片1的TXD。这样,两个芯片之间就可以进行TTL电平通信了。
若是芯片与PC机(或上位机)相连,除了共地之外,就不能这样直接交叉连接了。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。故,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成RS232类型,再交叉连接。
经过电平转换后,芯片串口和RS232的电平标准是不一样的:
单片机是TTL电平:+5V表示1,0V表示0
RS232是负逻辑电平,-3 to -15V为1,3 to 15V为0
RS-232通讯协议标准串口的设备间通讯结构图如下:
所以单片机串口与PC串口通信就应该遵循下面的连接方式:在单片机串口与上位机给出的RS232口之间,通过电平转换电路(如下面图中的Max232芯片) 实现TTL电平与RS232电平之间的转换。下图中的P10,也就是上文中提到的DB9。
STM32的UART特点
全双工异步通信;
n 分数波特率发生器系统,提供精确的波特率。发送和接受共用的可编程波特率,最高可达4.5Mbits/s;
n 可编程的数据字长度(8位或者9位);
n 可配置的停止位(支持1或者2位停止位);
n 可配置的使用DMA多缓冲器通信;
n 单独的发送器和接收器使能位;
n 检测标志:① 接受缓冲器 ②发送缓冲器空 ③传输结束标志;
n 多个带标志的中断源,触发中断;
n 其他:校验控制,四个错误检测标志。
串口通信过程
STM32中UART参数
起始位:表示数据传输的开始,电平逻辑为“0” 。数据位:可能值有5、6、7、8、9,表示传输这几个bit 位数据。一般取值为8,因为一个ASCII 字符值为8 位。奇偶校验位:用于接收方对接收到的数据进行校验,校验“1” 的位数为偶数(偶校验) 或奇数(奇校验),以此来校验数据传送的正确性,使用时不需要此位也可以。停止位:表示一帧数据的结束。电平逻辑为“1”。如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。
UART串口通信的数据包以帧为单位,常用的帧结构为:1位起始位+8位数据位+1位奇偶校验位(可选)+1位停止位。如下图所示:
奇偶校验位分为奇校验和偶校验两种,是一种简单的数据误码校验方法。奇校验是指每帧数据中,包括数据位和奇偶校验位的全部9个位中1的个数必须为奇数;偶校验是指每帧数据中,包括数据位和奇偶校验位的全部9个位中1的个数必须为偶数。
校验方法除了奇校验(odd)、偶校验(even)之外,还可以有:0 校验(space)、1 校验(mark)以及无校验(noparity)。0/1校验:不管有效数据中的内容是什么,校验位总为0或者1。
UART框图
这个框图分成上、中、下三个部分,具体的可以看《STM32中文参考手册》中的描述。
框图的上部分,数据从RX进入到接收移位寄存器,后进入到接收数据寄存器,最终供CPU或者DMA来进行读取;数据从CPU或者DMA传递过来,进入发送数据寄存器,后进入发送移位寄存器,最终通过TX发送出去。
然而,UART的发送和接收都需要波特率来进行控制的,波特率是怎样控制的呢?
这就到了框图的下部分,在接收移位寄存器、发送移位寄存器都还有一个进入的箭头,分别连接到接收器控制、发送器控制。而这两者连接的又是接收器时钟、发送器时钟。也就是说,异步通信尽管没有时钟同步信号,但是在串口内部,是提供了时钟信号来进行控制的。而接收器时钟和发送器时钟又是由什么控制的呢?
可以看到,接收器时钟和发送器时钟又被连接到同一个控制单元,也就是说它们共用一个波特率发生器。同时也可以看到接收器时钟(发生器时钟)的计算方法、USRRTDIV的计算方法。
串行端口称为串口,也称为串行通信接口,即COM端口。
UART口(嵌入式里面说的串口,一般是指UART口。4个pin(Vcc,GND,RX,TX),用TTL电平)、COM口、USB口、RJ45以太网口是指的物理接口形式(硬件)。
TTL、RS-232(全双工)、RS-485(半双工) RS-422(全双工)是指的电平标准(电信号)。
使用国际连接器标准定义的8个位置(8针)。修改后的插孔或插头
单片机与PC通讯示意图如下
UART接口 :通用异步收发器(Universal Asynchronous Receiver/Transmitter),UART是串口收发的逻辑电路,这部分可以独立成芯片,也可以作为模块嵌入到其他芯片里,单片机、SOC、PC里都会有UART模块,UART有4个pin(VCC, GND, RX, TX), 用的TTL电平, 低电平为0(0V),高电平为1(3.3V或以上)。
COM 口 : 即串行通讯端口,简称串口。这里区别于USB的“通用串行总线”和硬盘的“SATA”。一般我们见到的是两种物理标准。D型9针插头,和 4针杜邦头两种。这是常见的4针串口,在电路板上常见,经常上边还带有杜邦插针。还有时候有第五根针,3.3V电源端。由于是预留在电路板上的,协议可以有很多种,要看具体设备,应用了串口通信时序和RS232的逻辑电平。
1)USB通用串行总线(Universal Serial Bus)缩写为USB,(物理接口)
是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术,特点是传输速度快,支持热插拔,可连接多个设备。
我们在很多地方可以看到USB的身影,鼠标,键盘,手机充电器,现在几乎所有的电子充电设备都是USB接口,如下是各个USB的物理接口。
USB接口是计算机主板上的四针接口。2根信号线(D+、D-)和2根电源线(+、-)
最常见的的Type-A型USB接口定义如下。
Pin# | Name | 颜色 | |
---|---|---|---|
1 | VBUS/+5V | 红色 | |
2 | D-/Data-/DM | 白色 | |
3 | D+/Data+/DP | 绿色 | |
4 | GND | 黑色 |
USB电缆分为屏蔽型和非屏蔽型。屏蔽电缆的传输速度可以达到12Mbps,价格更高。
非屏蔽电缆的速度为1.5Mbps,但价格便宜。
1MB/s=8Mbps(1个Byte等于8bit)
USB1.0 低速(Low Speed) 传输速率为 1.5Mbps;
USB1.1 全速(Full Speed) 传输速率为 12Mbps;
USB2.0 高速(High Speed) 传输速率为 480Mbps;
USB3.0 超速(SuperSpeed) 传输速率为 5Gbps;
USB3.1 Gen2 超高速(SuperSpeed+) 传输速率为 10Gbps;
●USB Type-C
又称USB-C,是一种通用串行总线(USB)的硬件接口形式,外观上最大特点在于其上下端完全一致,与Micro-USB相比用户不必再区分USB正反面。
但USB-C只是一个接口,不一定支持USB 3.1或Power Delivery。
自从2014年USB-C规范发布后,许多新款的Android移动设备、笔记本电脑、台式机甚至是游戏机等3C设备开始使用这种连接端口。Windows 10原生支持Type-C。
USB转232,可以先将USB转换为TTL,再将TTL转换为RS232,当然市面上也有很多USB直接转RS232的线材,线材内部集成转换电路,淘宝上某USB转RS232用的两个芯片是FT232和SP213。
全部0条评论
快来发表一下你的评论吧 !