Stm32 USART
关键词: stm32 串口 串口助手
概述
主要内容:
- 串口以及各种接口
- Stm32串口驱动程序
- 基于Qt的串口助手
文档参考:
- 同步串口与异步串口 https://www.cnblogs.com/zhugeanran/p/9269592.html
- 无人不知的UART http://www.360doc.com/content/19/0409/08/38894361_827372836.shtml
- usb转ttl电路图大全 http://www.elecfans.com/emb/jiekou/20180511676053.html
- 串口助手 https://taotaodiy-qt.readthedocs.io/en/latest/project/serialPort.html
最新地址: https://taotaodiy-mcu.readthedocs.io/en/latest/stm32/usart.html
什么是串口
串口一般指串行接口(COM接口),是串行通信方式的扩展接口。
其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,
数据位的传送,按位顺序进行,特别适用于远距离通信(米到几千米),但传送速度较慢。
与之对应是并行传输,也就是指同时传输多个位的数据(多条线同时传输)。
串行通讯可以进一步分为单工、半双工和全双工三种。
- 单工:指数据只从从发送端传输到接受端,传输方向固定。
- 半双工:指一个信号载体的两个方向上传送,发数据的就是发送端,接受数据的就是接受端,但发送和接收不能同时进行。
- 全双工:可在信号载波的两个方向同时传输。
这里还涉及一个同步和异步通信,最简单的区分方式就是有无时钟信号。
串口多用于工控和测量设备以及部分通信设备,在单片机中MCU几乎是标配,其功能主要用来和上位机通信。
标准接口
串行端口依靠特殊的控制器芯片通用异步接收/传输器(UART)来实现自己的功能。
UART芯片从计算机的系统总线获得并行输出,然后将其转换成串行形式,以便通过串行端口传输。
UART包含TTL电平的串口和RS232电平的串口。
- TTL电平,以+5V(或者+3.3V)表示1,以GND表示0。
- RS232是负逻辑电平,它定义+5~+12V为低电平,而-12~-5V为高电平。
串行接口按电气标准及协议来分包括RS-232-C、RS-422、RS485等。
RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。
RS-232
标准串口,最常用的一种串行通讯接口。
传统的RS-232-C接口标准有22根线,采用标准25芯D型插头座(DB25),后来使用简化为9芯D型插座(DB9),现在应用中25芯插头座已很少采用。
RS-232采取不平衡传输方式,即所谓单端通讯。由于其发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,
再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,
其驱动器负载为3~7kΩ。所以RS-232适合本地设备之间的通信。
RS-422
标准全称是"平衡电压数字接口电路的电气特性",它定义了接口电路的特性。典型的RS-422是四线接口。实际上还有一根信号地线,
共5根线。其DB9连接器引脚定义。由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,
最多可接10个节点。即一个主设备(Master),其余为从设备(Slave),从设备之间不能通信,所以RS-422支持点对多的双向通信。
接收器输入阻抗为4k,故发端最大负载能力是10×4k+100Ω(终接电阻)。
RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)
或硬件方式(一对单独的双绞线)实现。
RS-422的最大传输距离为1219米,最大传输速率为10Mb/s。其平衡双绞线的长度与传输速率成反比,
在100kb/s速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为1Mb/s。
RS-485
是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。
RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信,而采用四线连接时,与RS-422一样只能实现点对多的通信,
即只能有一个主(Master)设备,其余为从设备,但它比RS-422有改进,无论四线还是二线连接方式总线上可多接到32个设备。
RS-485与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而RS-422在-7V至+7V之间,
RS-485接收器最小输入阻抗为12kΩ、RS-422是4kΩ;由于RS-485满足所有RS-422的规范,所以RS-485的驱动器可以在RS-422网络中应用。
RS-485与RS-422一样,其最大传输距离约为1219米,最大传输速率为10Mb/s。平衡双绞线的长度与传输速率成反比,
在100kb/s速率以下,才可能使用规定最长的电缆长度。