区分:串口,COM口,UART,USART

本文主要简述串口,COM口,UART,USART之间的联系和区别,另外也讲述了串口的RS-232电平和TTL电平,以及单片机与电脑之间的串口连接方式。

串口
      串口,即串行接口,与之相对应的另一种接口叫并口,并行接口。两者的区别是,传输一个字节(8个位)的数据时,串口是将8个位排好队,逐个地在1条连接线上传输,而并口则将8个位一字排开,分别在8条连接线上同时传输。
      在相同的数据传输速率下,并口的确比串口更快,但由于并口的各个连接线之间容易互相干扰,高速情况下难以同步各连接线的数据,而且硬件成本也相对串口更高(线多),因而串口取代并口成为了现在的主流接口,较具代表性的要数Universal Serial Bus,通用串行总线,也就是USB。其它在嵌入式领域常见的串行接口还包括:I2C,SPI,RJ-45,UART,USART等。

COM口
      电脑上的异步串行通信接口,有时也称之为串口(其实这个叫法并不严谨)。电脑COM口使用DB9连接器,遵循RS-232标准,RS-232规定了通信口的电气特性(比如多少伏为逻辑“1”)和接口机械特性(形状,针脚定义)等内容。COM口多见于旧式电脑,用于连接鼠标,调制调解器等设备,现在已被USB取代。

UART与USART
      UART,全称Universal Asynchronous Receiver/Transmitter,通用异步收发传输器。
      USART,全称Universal Synchronous/Asynchronous Receiver/Transmitter,通用同步异步收发传输器。
      两者都是一个数据收发器,属于硬件电路范畴。UART使用异步通信,而USART既可异步通信,也可同步通信。当USART使用异步通信时,就变成了UART。单片机的串口指的就是UART或USART。
      同步通信和异步通信的区别是:时钟线的有无。同步通信有时钟线,收发双方通过统一的时钟来确定何时进行数据的传输,如I2C和SPI。异步通信没有时钟线,只能在数据的头和尾加入标志位来区分不同的数据帧,接收数据之前也要预先知道波特率的大小,传输效率比同步通信要低。

串口、RS-232与TTL
      前面讲过,RS-232是一个串行通信接口标准,它规定了逻辑“1”为-3 ~ -15V,逻辑“0”为+3 ~ +15V,符合该标准的串口也叫RS-232串口,比如电脑的COM口。那么,还有不符合RS-232标准的串口?答案是肯定的,那就是单片机(如stm32)的UART/USART,这个也叫串口,但它不遵循RS-232标准,使用的是TTL电平(Transistor-Transistor Logic),该电平的逻辑“1”为+5V,逻辑“0”为0V,称为TTL串口。
      需要注意的是,串口、UART/USART通常指的是硬件接口,而RS-232指的是属于物理层范畴的串行通信接口标准,简而言之,RS-232就是个标准。

单片机与电脑的连接
     既然单片机有串口(UART/USART),电脑也有串口(COM口),那么两者就可以通过串口进行通信。
     如果电脑有实体COM口,由于COM口使用的RS-232电平跟单片机的UART/USART使用的TTL电平不一样,这时就需要使用MAX232之类的电平转换芯片,将TTL电平转换成RS-232电平,连接示意如下:
    电脑COM口 <---> MAX232 <---> 单片机UART/USART

    如果电脑没有COM口,就要通过CH340之类的USB转TTL串口芯片,来实现用USB模拟COM口,这样电脑的USB口就变成了一个TTL串口,可以跟单片机的UART/USART通信,连接示意如下:
    电脑USB口 <---> CH340 <---> 单片机UART/USART

参考:

https://zh.wikipedia.org/wiki/%E4%B8%B2%E8%A1%8C%E7%AB%AF%E5%8F%A3
https://zh.wikipedia.org/wiki/UART
https://zh.wikipedia.org/wiki/RS-232
https://www.edn.com/electronics-blogs/embedded-basics/4440395/USART-vs-UART--Know-the-difference

————————————————————————————————————————————

UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。
其中各位的意义如下:
起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。
资料位:紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。
奇偶校验位 (Parity):资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。
    奇偶校验位有两种类型:偶校验位与奇校验位。如果一组给定数据位中 1 的个数是奇数,那么偶校验位就置为 1,从而使得总的 1 的个数是偶数。如果给定一组数据位中 1 的个数是偶数,那么奇校验位就置为 1,使得总的 1 的个数是奇数。偶校验实际上是循环冗余校验的一个特例,通过多项式 x + 1 得到 1 位 CRC。

停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。
波特率:是衡量资料传送速率的指标。表示每秒钟传送的符号数(symbol)。一个符号代表的信息量(比特数)与符号的阶数有关。例如传输使用256阶符号,每8bit代表一个符号,资料传送速率为120字符/秒,则波特率就是120baud,比特率是120*8=960bit/s。这两者的概念很容易搞错。

————————————————————————————————————————————

RS-232C接口定义(DB9)

引脚 定义 符号
1 载波检测 DCD(Data Carrier Detect)
2 接收数据 RXD(Received Data)
3 发送数据 TXD(Transmit Data)
4 数据终端准备好 DTR(Data Terminal Ready)
5 信号地 SG(Signal Ground)
6 数据准备好 DSR(Data Set Ready)
7 请求发送 RTS(Request To Send)
8 清除发送 CTS(Clear To Send)
9 振铃提示 RI(Ring Indicator)

————————————————————————————————————————————

UART详解

————————————————————————————————————————————

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103微控制器具有多个串口通信接,包括USART1、USART2、USART3和UART4。其中USART3和UART4是两个独立的串口通信接USART3与UART4是可独立配置为全双工或半双工模式的通信接。它们可以与其他外部设备(如电脑、传感器等)进行数据通信。 首先,我们需要初始化串口的相应引脚,将它们配置为功能引脚,以便与外部设备进行连接。然后,我们设置串口的工作模式、波特率、数据位数、停止位数、校验位等参数。 在发送数据时,我们将要发送的数据写入串口的数据寄存器,并等待发送完成。在接收数据时,我们将从串口的数据寄存器中读取接收到的数据,并进行后续处理。 例如,要在USART3上进行串口通信,可以按照以下步骤进行配置: 1. 初始化串口引脚,将USART3对应的引脚配置为串口功能。 2. 配置串口的工作模式、波特率、数据位数、停止位数、校验位等参数。 3. 启用USART3的发送和接收功能。 4. 要发送数据,将要发送的数据写入USART3的数据寄存器,并等待发送完成。 5. 要接收数据,从USART3的数据寄存器中读取接收到的数据,并进行后续处理。 类似地,可以使用相同的方法来配置和使用UART4进行串口通信。 总之,使用STM32F103的USART3和UART4串口通信需要正确配置串口引脚和相关参数,并使用发送和接收数据的相应寄存器来进行数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值