资讯详情

STM32的串口通讯协议

一、串口协议

1.1 串口通信协议简介

1.1-1 物理层

1.1-2 协议层

1.2STM32的USART简介

二、USB/TTL转232串口方法

2.1 三个接口简介

2.2 转换方法

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

三、参考资料


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

一、串口协议

1.1 串口通信协议简介

串口通讯(Serial Communication)这是一种非常常用的串行通信方式,因为它简单方便,大多数电子设备都支持这种通信方式,电子工程师经常使用这种通信方式来输出调试信息。

在计算机科学中,大多数复杂的问题可以通过分层来简化。如果芯片分为核心层和芯片外设;STM32标准库是寄存器和用户代码之间的软件层。我们也通过分层来理解通信协议。最基本的是把它分成。简单来说,物理层规定我们用嘴或肢体交流,协议层规定我们用中文或英文交流。

规定通信系统具有机电功能的特点,

主要,统一收发双方数据包装解包标准,eg:串口数据包:起始位,数据位(8bit)、校验位、停止位。

1.1-1 物理层

串口通信的物理层有很多标准和变种,我们主要解释,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表示逻辑0RS232与TTL当电平校准表示相同信号时的对比见图

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

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

接线端口以针引出的信号线称为公头,以孔引出的信号线称为母头。公头接口通常从计算机中引出,而母头通常从调制调解器设备中引出。上图中的串口线可与计算机连接。通信时,串口线中传输的信号使用上述说明RS-232标准调制。

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

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

序号 名称 符号 数据方向 说明
    1    载波检测 DCD DTE➡DCE Data Carrier Detect,数据载波检测,用于DTE告知对方,本机是否收到对方的载波信号
    2    接收数据 RXD DTE⬅DCE Receive Data,数据接收信号,即输入。
    3    发送数据 TXD DTE➡DCE Transmit Data,数据发送信号,即输出。两个设备之间的TXD与RXD应交叉相连
    4 数据终端(DTE) 就绪 DTR DTE➡DCE Data Terminal Ready,数据终端就绪,用于DTE向对方告知本机是否已准备好
    5     信号地 GND - 地线,两个通讯设备之间的地电位可能不一样,这会影响收发双方的电平信号,所以两个串口设备之间必须要使用地线连接,即共地。
    6 数据设备(DCE)就绪 DSR DTE⬅DCE Data Set Ready,数据发送就绪,用于DCE告知对方本机是否处于待命状态
    7    请求发送 RTS DTE➡DCE Request To Send,请求发送, DTE 请求 DCE 本设备向DCE端发送数据
    8    允许发送 CTS DTE⬅DCE Clear To Send,允许发送,DCE回应对方的RTS发送请求,告知对方是否可以发送数据
    9    响铃指示 RI DTE⬅DCE Ring 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位长。

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

  • 奇校验要求有效数据和校验位中"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电平:电源线是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串口或UART 串口。

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

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 转换方法

 

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

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

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

标签: 晶体管输出型cts7

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台