嵌入式学习——串口通信小试

本文介绍了串口通信的基础,包括串口协议、RS-232和RS-485标准,以及它们与TTL电平的区别。详细讲解了STM32的USART串口通信程序,使用HAL库和MDK汇编语言实现,并展示了如何使用USB转串口模块和串口调试助手进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

嵌入式学习——串口通信小试

1.了解串口协议和RS-232、485标准,以及RS-232、485电平与TTL电平的区别

1.1 什么是串口协议

串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范

通信接口背景知识
设备之间通信的方式:
一般情况下,设备之间的通信方式可以分成并行通信和串行通信两种。它们的区别是:

在这里插入图片描述

串行通信的分类
1、按照数据传送方向,分为:

单工:数据传输只支持数据在一个方向上传输;
半双工:允许数据在两个方向上传输。但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;它不需要独立的接收端和发送端,两者可以合并一起使用一个端口。
全双工:允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,需要独立的接收端和发送端。

2、按照通信方式,分为:

同步通信:带时钟同步信号传输。比如:SPI,IIC通信接口。
异步通信:不带时钟同步信号。比如:UART(通用异步收发器),单总线。

在同步通讯中,收发设备上方会使用一根信号线传输信号,在时钟信号的驱动下双方进行协调,同步数据。例如,通讯中通常双方会统一规定在时钟信号的上升沿或者下降沿对数据线进行采样。

在异步通讯中不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些用于同步的信号位,或者将主题数据进行打包,以数据帧的格式传输数据。通讯中还需要双方规约好数据的传输速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等。

在同步通讯中,数据信号所传输的内容绝大部分是有效数据,而异步通讯中会则会包含数据帧的各种标识符,所以同步通讯效率高,但是同步通讯双方的时钟允许误差小,稍稍时钟出错就可能导致数据错乱,异步通讯双方的时钟允许误差较大。
常见的串行通信接口:

在这里插入图片描述

1.2 RS-232标准

简介:

RS-232接口是电子工业协会(Electronic Industries Association,EIA) 制定的异步传输标准接口,同时对应着电平标准和通信协议(时序),其电平标准是采用负逻辑传送,即:+3V~+15V对应0,-3V~-15V对应1。

STM32的串口通信接口有两种,分别是:UART(通用异步收发器)USART(通用同步异步收发器)。而对于大容量STM32F10x系列芯片,分别有3个USART和2个UART。

UART引脚连接方法
RXD:数据输入引脚,数据接受;
TXD:数据发送引脚,数据发送。

在这里插入图片描述

若是芯片与PC机(或上位机)相连,除了共地之外,就不能这样直接交叉连接了。

尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。

RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。故,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。如图:

在这里插入图片描述

RS-232通讯协议标准串口的设备间通讯结构图如下:

在这里插入图片描述

因此,单片机串口与PC串口通信遵循下面的连接方式:
在单片机串口与上位机给出的rs232口之间,通过电平转换电路,实现TTL电平与RS232电平之间的转换。

1.3 RS-485标准

简介:

RS-485标准专门弥补RS-232通讯距离短、速率低等缺点而产生。RS-485标准只规定了平衡发送器和接收器的特性。而没有规定接插件、传输电缆和应用层通讯协议。

RS-485有两线制和四线制两种接线,四线制只能实现点对点的通讯方式,现很少采用,多采用两线制接线方式。这种接线方式为总线式拓朴结构在同一总线上最多可以挂线32–128个结点。

在RS-485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。通讯协议采用按照设备地址查询的方式,其通讯的效率很低,不适合高速传输系统。一般速率不超过19200bps。波特率为9600Bps、1200Bps。RS-485标准的最大传输距离约为1219米,最大传输速率为10Mbps。

RS-485 的电气特性:

逻辑“1”以两线间的电压差为+(2—6) V 表示;

逻辑“0”以两线间的电压差为 -(2—6)V 表示;

接口信号电平比 RS -232-C 降低了,就不易损坏接口电路的芯片,且该电平与 TTL 电平兼容,可方便与 TTL 电路连接。

RS-485优点:

RS-485 接口的最大传输距离标准值为 4000 英尺,实际上可达 3000 米。

RS-485 接口在总线上是允许连接多达 128 个收发器,因 RS-485 接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。

RS-485传输线路:

因为 RS485 接口组成的半双工网络 ,一般只需二根连线,所以 RS485 接口均采用屏蔽双绞线传输。

1.4 RS-232、RS-485电平与TTL电平

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值