IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32的串口通讯协议 -> 正文阅读

[嵌入式]STM32的串口通讯协议

目录

一、串口协议

1.1 串口通信协议简介

1.1-1 物理层?

1.1-2 协议层

1.2?STM32的USART简介

二、USB/TTL转232串口方法

2.1 三种接口简介

2.2 转换方法

2.3? "USB/TTL转232"模块工作原理

?三、参考资料


?

? ?本文主要讲解串口协议和RS-232标准,以及RS232电平与TTL电平的区别;介绍"USB/TTL转232"模块(以CH340芯片模块为例)的工作原理。

一、串口协议

1.1 串口通信协议简介

? ?串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。

? ?在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层协议层。简单来说物理层规定我们用嘴巴还是用肢体来交流,协议层则规定我们用中文还是英文来交流。

? ?物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输,eg:RS232、TTL高低电平。

? ?协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准,eg:串口数据包:起始位,数据位(8bit)、校验位、停止位。

1.1-1 物理层?

? ? 串口通讯的物理层有很多标准及变种,我们主要讲解RS-232标准,RS-232标准主要规定了信号的用途、通讯接口以及信号的电平标准。

? ?使用RS-232标准的串口设备间常见的通讯结构见图

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?串口通讯结构图

? ?在上面的通讯方式中,两个通讯设备的"DB9接口"之间通过串口信号线建立起连接,串口信号线中使用"RS-232标准"传输数据信号。由于RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个"电平转换芯片"转换成控制器能识别的"TTL校准"的电平信号,才能实现通讯。

①电平标准

? ?根据通讯使用的电平标准不同,串口通讯可分为TTL标准及RS-232标准

? ? ? 通讯标准? ? ? ? ? ? ? ? ? ? ? ? ?电平标准(发送端)
? ? ? ?5V TTL

? ? ? ? ? ? ? ? ? ? ? 逻辑1:2.4V-5V

? ? ? ? ? ? ? ? ? ? ? 逻辑0:0~0.5V

? ? ? RS-232

? ? ? ? ? ? ? ? ? ? ?逻辑1:2.4V-5V

? ? ? ? ? ? ? ? ? ? ?逻辑0:0~0.5V

? ?我们知道常见的电子电路中常使用TTL的电平标准,理想状态下,使用5V表示二进制逻辑1,使用0V表示逻辑0;而为了增加串口通讯的远距离传输及抗干扰能力,它使用-15V表示逻辑1,+15V表示逻辑0。使用RS232与TTL电平校准表示同一个信号时的对比见图

②RS-232信号线

? ?在最初的应用中,RS-232串口标准常用于计算机、路由与调制调解器(MODEN,俗称"猫")之间的通讯 ,在这种通讯系统中,设备被分为数据终端设备DTE(计算机、路由)和数据通讯设备DCE(调制调解器)。我们以这种通讯模型讲解它们的信号线连接方式及各个信号线的作用。

? ?在旧式的台式计算机中一般会有RS-232标准的COM口(也称DB9接口),见图

? ?其中接线口以针式引出信号线的称为公头,以孔式引出信号线的称为母头。在计算机中一般引出公头接口,而在调制调解器设备中引出的一般为母头,使用上图中的串口线即可把它与计算机连接起来。通讯时,串口线中传输的信号就是使用前面讲解的RS-232标准调制的。

? ?在这种应用场合下,DB9接口中的公头及母头的各个引脚的标准信号线接法见图

DB9信号线说明(公头,为方便理解,可把DTE理解为计算机,DCE理解为调制调解器)

序号名称符号数据方向说明
? ? 1? ?载波检测DCDDTE?DCEData Carrier Detect,数据载波检测,用于DTE告知对方,本机是否收到对方的载波信号
? ? 2? ?接收数据RXDDTE?DCEReceive Data,数据接收信号,即输入。
? ? 3? ?发送数据TXDDTE?DCETransmit Data,数据发送信号,即输出。两个设备之间的TXD与RXD应交叉相连
? ? 4数据终端(DTE)?就绪DTRDTE?DCEData Terminal Ready,数据终端就绪,用于DTE向对方告知本机是否已准备好
? ? 5? ? 信号地GND-地线,两个通讯设备之间的地电位可能不一样,这会影响收发双方的电平信号,所以两个串口设备之间必须要使用地线连接,即共地。
? ? 6数据设备(DCE)就绪DSRDTE?DCEData Set Ready,数据发送就绪,用于DCE告知对方本机是否处于待命状态
? ? 7? ?请求发送RTSDTE?DCERequest To Send,请求发送,?DTE?请求?DCE?本设备向DCE端发送数据
? ? 8? ?允许发送CTSDTE?DCEClear To Send,允许发送,DCE回应对方的RTS发送请求,告知对方是否可以发送数据
? ? 9? ?响铃指示RIDTE?DCERing Indicator,响铃指示,表示DCE端与线路已接通

? ?上表中的是计算机端的DB9公头标准接法,由于两个通讯设备之间的收发信号(RXD与TXD)应交叉相连,所以调制调解器端的DB9母头的收发信号接法一般与公头的相反,两个设备之间连接时,只要使用"直通型"的串口线连接起来即可,见图

? ?串口线中的RTS、CTS、DSR、DTR及DCD信号,使用逻辑?1表示信号有效,逻辑0表示信号无效。例如,当计算机端控制DTR信号线表示为逻辑1时,它是为了告知远端的调制调解器,本机已准备好接收数据,0则表示还没准备就绪。

1.1-2 协议层

? ?串口通讯的数据包由发送设备通过自身的TXD接口传输到接收设备的RXD接口。在串口通讯的协议层中,规定了数据包的内容,它由启始位、主体数据、校验位以及停止位组成,通讯双方的数据包格式要约定一致才能正常收发数据,其组成见图

①波特率?

? ?本章中主要讲解的是串口异步通讯,异步通讯中由于没有时钟信号(如前面讲解的DB9接口中是没有时钟信号的),所以两个通讯设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码,上图中用虚线分开的每一格就是代表一个码元。常见的波特率为4800、9600、115200等。

②通讯的起始和停止信号

? ?串口通讯的一个数据包从起始信号开始,直到停止信号结束。数据包的起始信号由一个逻辑0的数据位表示,而数据包的停止信号可由0.5、1、1.5或2个逻辑1的数据位表示,只要双方约定一致即可。

③有效数据

在数据包的起始位之后紧接着的就是要传输的主体数据内容,也称为有效数据,有效数据的长度常被约定为5、6、7或8位长。

④数据校验

? ?在有效数据之后,有一个可选的数据校验位。由于数据通信相对更容易受到外部干扰导致传输数据出现偏差,可以在传输过程加上校验位来解决这个问题。校验方法有奇校验(odd)偶校验(even)0校验(space)1校验(mark)以及无校验(noparity),它们介绍如下:

  • 奇校验要求有效数据和校验位中"1"的个数为奇数,比如一个8位长的有效数据为:01101001,此时总共有4个"1",为达到奇校验效果,校验位为"1",最后传输的数据将是8位的有效数据加上1位的校验位总共9位。
  • ?偶校验与奇校验要求刚好相反,要求帧数据和校验位中"1"的个数为偶数,比如数据帧:11001010,此时数据帧"1"的个数为4个,所以偶校验位为"0"。
  • 0校验是不管有效数据中的内容是什么,校验位总为"0",1校验是校验位总为"1"。
  • ?在无校验的情况下,数据包中不包含校验位。

1.2?STM32的USART简介

? ?STM32芯片具有多个USART外设用于串口通讯,它是?Universal Synchronous Asynchronous Receiver and Transmitter的缩写,即通用同步异步收发器可以灵活地与外部设备进行全双工数据交换。有别于USART,它还有具有UART外设(Universal Asynchronous Receiver and Transmitter),它是在USART基础上裁剪掉了同步通信功能,只有异步通信。简单区分同步和异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是UART。

? ?USART满足外部设备对工业标准NRZ异步串行数据格式的要求,并且使用了小数波特率发生器,可以提供多种波特率,使得它的应用更加广泛。USART支持同步单向通信和半双工单线通信;还支持局域互连网络LIN、智能卡(SmartCard)协议与lrDA(红外线数据协会) SIR ENDEC规范。

? ?USART支持使用DMA,可实现高速数据通信,USART在STM32应用最多莫过于"打印"程序信息,一般在硬件设计时都会预留一个USART通信接口连接电脑,用于在调试程序是可以把一些调试信息"打印"在电脑端的串口调试助手工具上,从而了解程序运行是否正确、指出运行出错位置等等。

? ?STM32的USART输出的是TTL电平信号,若需要RS-232标准的信号可使用MAX3232芯片进行转换。

二、USB/TTL转232串口方法

2.1 三种接口简介

①USB接口

USB通过USB电平工作

USB电平:电源线是5V,为USB设备提供最大500mA的电流,它与数据线上的电平无关,数据线是差分信号,通常D+和D-在+400mV~-400mV间变化,除去屏蔽层,有4根线,分别是VCC、GND和D+、D-两根信号线。5V是USB的电源电压,给USB device供电用的。信号线对于2.0,D+比D-大200mV时为1,D-比D+大200mV时为0。
?

②TTL串口

在这里插入图片描述

?单片机串口是TTL电平,所以叫TTL串口或UART 串口。

TTL电平:+5V等价于逻辑“1”,0V等价于逻辑“0”(采用二进制来表示数据时)。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。


③232串口

232串口,通过232电平标准工作。?

R232电平,负逻辑:
逻辑1(MARK)=-3V~-15V
逻辑0(SPACE)=+3~+15V

S232 接口一共有 9 个引脚,分别定义是:
1、载波检测 DCD;
2、接收数据 RXD;
3、发送数据 TXD;
4、数据终端准备好 DTR;
5、信号地线 SG;
6、数据准备好 DSR;
7、请求发送 RTS;
8、清除发送 CTS;
9、振铃提示 RI。我们要让这个串口和我们单片机进行通信,我们只需要关心其中的 2 脚 RXD、3 脚 TXD 和 5 脚 GND 即可,这三个引脚的名字和我们单片机上的串口名字一样,但是却不能直接和单片机对连通信。

2.2 转换方法

CH340等芯片是直接将USB信号转换为TTL电平或者TTL电平转换为USB信号。

MAX232等芯片是将TTL转换为RS232信号或者将RS232信号转换为TTL.

?

①USB 转 UART(TTL) 原理:

只需要在电路上添加一个 USB 转串口芯片,就可以成功实现 USB 通信协议和标准UART 串行通信协议的转换,比如 CH340T 这个芯片

在这里插入图片描述

?用跳线帽把中间和下边的针短接在一起。右侧的 CH340T 这个电路很简单,把电源、晶振接好后,6 脚和 7 脚的 DP 和 DM 分别接 USB 口的 2 个数据引脚上去,3 脚和 4 脚通过跳线接到单片机的 TXD 和 RXD 上去。

②USB转232串口线原理:

USB接口>>>CH340>>>MAX232>>>9针接口
信号分析:
电脑USB接口>>>电脑输出USB电平信号>>>CH340>>>TTL电平>>>MAX232芯片>>>电脑串口接口

在这里插入图片描述

在这里插入图片描述?

在这里插入图片描述?

? ?其实 RS232 串口和 (TTL串口)UART 串口,它们的协议类型是一样的,只是电平标准不同而已,而 MAX232 这个芯片起到的就是中间人的作用,它把 UART 电平(TTL电平)转换成 RS232 电平,也把 RS232 电平转换成 UART 电平,从而实现标准 RS232接口和单片机 UART 之间的通信连接。
?

2.3? "USB/TTL转232"模块工作原理

USB转串口模块可以使用5V、3V3电压供电,需要将跳线帽进行安装。

可以对USB转串口模块进行测试,将USB的电压引脚用跳帽接上,然后将RXD和TXD两个引脚用跳帽或者杜邦线接上。

?

然后打开串口终端,点击“手动发送”或者“自动发送”,如果在接收区可以接收到数据,说明USB转串口模块工作正常,否则需要检查接线是否正确、电路板元器件是否损坏。

下图是USB转串口模块的一些功能模块的标示,USB转串口电路板背后还预留了一些全信号输出的接口,可以将电线直接焊接在这些引脚上来使用预留的功能。
即便管脚没有这么多,但功能都是差不多的。

?

?USB转串口电路板与单片机的接线图,VCC接线是为了单片机供电,USB转串口的RXD引脚与单片机的TXD引脚相连,USB转串口的TXD引脚与单片机的RXD引脚相连,两者的GND引脚直接相连。

?

?三、参考资料

串口通讯协议_guankaer的工作室-CSDN博客_串口协议文章转载自http://www.cnblogs.com/firege/p/5805753.html20.1 串口通讯协议简介串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;...https://blog.csdn.net/cool9932/article/details/79419990?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163480459716780366581656%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163480459716780366581656&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-3-79419990.pc_search_result_cache&utm_term=%E4%B8%B2%E5%8F%A3%E5%8D%8F%E8%AE%AE&spm=1018.2226.3001.4187


USB转TTL串口、USB转232串口、232串口转TTL串口_棒棒的博客-CSDN博客首先认识一下这3中接口:1,USB,通过USB电平工作USB电平:电源线是5V,为USB设备提供最大500mA的电流,它与数据线上的电平无关,数据线是差分信号,通常D+和D-在+400mV~-400mV间变化。2,232串口,通过232电平标准工作232电平:逻辑1(MARK)=-3V~-15V逻辑0(SPACE)=+3~+15V3,单片机串口是TTL电平,所以叫TTL串口。TTL电平:+5V等价于逻辑“1”,0V等价于逻辑“0”(采用二进制来表示数据时)。这样的数据通信及电平规https://blog.csdn.net/weixin_45456099/article/details/107500617?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163499821416780271539896%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163499821416780271539896&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-107500617.pc_search_result_cache&utm_term=USB%2FTTL%E8%BD%AC232&spm=1018.2226.3001.4187

?USB转串口CH340接线方法_嵌入式学徒之斋-CSDN博客_ch340接线USB转串口模块可以使用5V电压供电,需要将跳帽按下图安装。??USB转串口模块可以使用3.3V电压供电,需要将跳帽按下图安装。?可以对USB转串口模块进行测试,将USB的电压引脚用跳帽接上,然后将RXD和TXD两个引脚用跳帽或者杜邦线接上。然后打开串口终端,点击“手动发送”或者“自动发送”,如果在接收区可以接收到数据,说明USB转串口模块工作正https://blog.csdn.net/wangjiaweiwei/article/details/49612207?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163499967516780261925154%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163499967516780261925154&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-4-49612207.pc_search_result_cache&utm_term=%22USB%2FTTL%E8%BD%AC232%22%E6%A8%A1%E5%9D%97%EF%BC%88%E4%BB%A5CH340%E8%8A%AF%E7%89%87%E6%A8%A1%E5%9D%97%E4%B8%BA%E4%BE%8B%EF%BC%89%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E3%80%82&spm=1018.2226.3001.4187

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-25 12:40:09  更:2021-10-25 12:41:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:51:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码