首页/文章/ 详情

搞定串口,就搞定了通信,STM32串口通信基本原理

1小时前浏览7

   

通信接口背景知识


   

设备之间通信的方式

一般情况下,设备之间的通信方式可以分成并行通信和串行通信两种。并行与串行通信的区别如下表所示。


串行通信的分类

1、按照数据传送方向,分为:

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


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

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

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

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

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

常见的串行通信接口


STM32串口通信基础

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


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


对于两个芯片之间的连接,两个芯片GND共地,同时TXD和RXD交叉连接。这里的交叉连接的意思就是,芯片1的RxD连接芯片2的TXD,芯片2的RXD连接芯片1的TXD。这样,两个芯片之间就可以进行TTL电平通信了。STM32与51单片机串口通信相关实例,请移步此处:STM32与51单片机串口通信实例


若是芯片与PC机(或上位机)相连,除了共地之外,就不能这样直接交叉连接了。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。故,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成RS232类型,再交叉连接。


经过电平转换后,芯片串口和RS232的电平标准是不一样的:
  • 单片机的电平标准(TTL电平):+5V表示1,0V表示0;
  • RS232的电平标准:+15/+13 V表示0,-15/-13表示1。

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


所以单片机串口与PC串口通信就应该遵循下面的连接方式:在单片机串口与上位机给出的RS232口之间,通过电平转换电路(如下面图中的Max232芯片) 实现TTL电平与RS232电平之间的转换。STM32与PC之间通信实例,请移步此处:STM32实例-用按键控制串口发送数据,文末附代码



RS232串口简介
台式机电脑后面的9针接口就是com口(串口) 在工业控制 数据采集上应用广泛上图中,最右边的是串口接口统称为RS232接口,是常见的DB9封装。

通信过程中只有两个脚参与通信。

  • 2脚:电脑的输入RXD

  • 3脚:电脑的输出TXD 通过2 ,3 脚就可以实现全双工(可同时收发)的串行异步 通信

  • 5脚:接地

单片机的P3口是有两个复用接口RXD 和TXD。这是单片机进行串行通信的收发口,连接应该错位的对应到电脑的TDX RDX上。注意:单片机和RS232的电平标准是不一样的。

单片机的电平标准 TTL电平 :+5V表示1 0V表示0。

RS232的电平标准 +15/+13 V表示1 -15/-13 表示0。

所以 单片机与电脑串口通信就应该遵循下面的连接方式:

在单片机与上位机给出的RS232口之间通过电平转换电路(最上面图中的Max232芯片) 实现TTL电平与RS232电平之间的转换,PC串口与单片机串口连接方式图:

注意这两个DB9:DB91是在电脑上的 DB92是在单片机实验板上焊接着的。

这里的交叉连接的意思是 DB91的RXD连着DB92的TXD。
DB92的RXD连着DB91的TXD这样交叉着连接,如果电脑没有RS232口 只有USB口,可以用串口转接线转出串口,如下图所示。


这个时候在电脑上位机上需要安装串口驱动程序。
注意,这个驱动程序驱动的是PL2303芯片(在上图的大头里面) 使得RS232信息转换成USB信息。
下图为上图的内部结构:

用串口通信比USB简单,因为串口通信没有协议,使用方便简单。

STM32的UART特点
  • 全双工异步通信;

  • 分数波特率发生器系统,提供精确的波特率。发送和接受共用的可编程波特率,最高可达4.5Mbits/s;

  • 可编程的数据字长度(8位或者9位);

  • 可配置的停止位(支持1或者2位停止位);

  • 可配置的使用DMA多缓冲器通信;

  • 单独的发送器和接收器使能位;
  • 检测标志:

    ① 接受缓冲器

    ②发送缓冲器空

    ③传输结束标志;

  • 多个带标志的中断源,触发中断;

  • 其他:校验控制,四个错误检测标志。


串口通信过程


STM32中UART参数

串口通讯的数据包由发送设备通过自身的TXD接口传输到接收设备的RXD接口,通讯双方的数据包格式要规约一致才能正常收发数据。    

STM32中串口异步通信需要定义的参数:起始位、数据位(8位或者9位)、奇偶校验位(第9位)、停止位(1,15,2位)、波特率设置。相关文章推荐:学习STM32单片机,绕不开的串口

UART串口通信的数据包以帧为单位,常用的帧结构为:1位起始位+8位数据位+1位奇偶校验位(可选)+1位停止位。如下图所示:


奇偶校验位分为奇校验和偶校验两种,是一种简单的数据误码校验方法。奇校验是指每帧数据中,包括数据位和奇偶校验位的全部9个位中1的个数必须为奇数;偶校验是指每帧数据中,包括数据位和奇偶校验位的全部9个位中1的个数必须为偶数。

校验方法除了奇校验(odd)、偶校验(even)之外,还可以有:0 校验(space)、1 校验(mark)以及无校验(noparity)。 0/1校验:不管有效数据中的内容是什么,校验位总为0或者1。


UART(USART)框图


这个框图分成上、中、下三个部分。本文大概地讲述一下各个部分的内容,具体的可以看《STM32中文参考手册》中的描述。

框图的上部分,数据从RX进入到接收移位寄存器,后进入到接收数据寄存器,最终供CPU或者DMA来进行读取;数据从CPU或者DMA传递过来,进入发送数据寄存器,后进入发送移位寄存器,最终通过TX发送出去。

然而,UART的发送和接收都需要波特率来进行控制的,波特率是怎样控制的呢?

这就到了框图的下部分,在接收移位寄存器、发送移位寄存器都还有一个进入的箭头,分别连接到接收器控制、发送器控制。而这两者连接的又是接收器时钟、发送器时钟。也就是说,异步通信尽管没有时钟同步信号,但是在串口内部,是提供了时钟信号来进行控制的。而接收器时钟和发送器时钟有是由什么控制的呢?

可以看到,接收器时钟和发送器时钟又被连接到同一个控制单元,也就是说它们共用一个波特率发生器。同时也可以看到接收器时钟(发生器时钟)的计算方法、USRRTDIV的计算方法。

声明:


     
声明:文章来源网络。本号对所有原创、转载文章的陈述与观点均保持中立,推送文章仅供读者学习和交流。文章、图片等版权归原作者享有,如有侵权,联系删除。 

来源:硬件笔记本
电路通用电子芯片通信焊接控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-11-11
最近编辑:1小时前
硬件笔记本
本科 一点一滴,厚积薄发。
获赞 156粉丝 45文章 526课程 0
点赞
收藏
作者推荐

NTC热敏电阻基础

01什么是NTC热敏电阻、原理及作用 什么是NTC热敏电阻?NTC热敏电阻是以Negative Temperature Coefficient的首字母缩写命名的热敏电阻。通常,“热敏电阻”一词指代的就是NTC热敏电阻。1833年,当时正在研究硫化银半导体的迈克尔·法拉第将其发现,塞缪尔·鲁本于20世纪30年代实现其商业化。NTC热敏电阻是一种由锰(Mn)、镍(Ni)和钴(Co)组成的氧化物半导体陶瓷。它在我们的生活中随处可见。由于阻值随温度的升高而降低的特性,它不仅被用作温度计、空调中的温度感应装置,抑或是智能手机、热水壶及熨斗中的温度控制装置,还被用于电源设备中的电流控制。最近,随着车辆电动化程度的提高,热敏电阻也越来越多地被用于车载产品。工作原理 通常,金属的阻值随着温度的升高而增加。这是由于,热加剧了晶格振动,自由电子的平均移动速度随之降低。与之相对,半导体中自由电子和空穴由于热的传导而增加,该部分的比例大于速度减小的部分的比例,故电阻值减小。此外,由于半导体内能带间隙的存在,当被外部加热时,价带中的电子移动到导带上并进行导电。也就是说,电阻值会随着温度的升高而降低。图1 : 半导体的导电性用途 负温度系数(NTC)热敏电阻随温度变化,电阻值会产生3~5%/°C的变化。它经常作为一般的温度传感器用于电子设备中。例,智能手机。在使用智能手机时,您有“手机怎么变热了”这样的经历么?可以说薄且高功能的智能手机就是一台小型电脑。但由于手机没有安装电脑的散热风扇等,因此机身会变热。所以,对热很敏感的精密元件可能会有损坏的危险。在此,负温度系数(NTC)热敏电阻登场!运用负温度系数(NTC)热敏电阻测量智能手机内部的温度,再使用这一温度信息对温度进行各种控制。02NTC热敏电阻基本特性 电阻-温度特性(R-T特性)NTC热敏电阻的电阻值是在有足够低的自热(由于施加的电流而产生的热)的电流下测量的。作为标准,建议使用最大工作电流。并且,电阻值需要与温度成对表示。特性曲线由以下公式描述。图1 : NTC热敏电阻的R-T特性B常数B常数是表征NTC热敏电阻的单个值。B常数的调节总是需要两点。B常数描述了两个点的斜率。如果选择的两点不同,B常数也会不同,所以比较时请注意。(见图2)图2 : 2点选择的不同B常数将上式(参考电阻 − 温度特性)变形后如图3所示,1/T(T为绝对温度)与阻值成对数比例关系。可以看出,该关系近似于直线。图3 : 横轴为1/T的温度特性伏安特性(V-I特性)NTC热敏电阻的V-I特性如图4所示。图4 : NTC热敏电阻的V-I特性在电流较小的区域中,随着电流的逐渐上升,欧姆接触的电压也逐渐上升。通过从热敏电阻表面和其它部位散热,电流流经造成的自发热不会造成电阻温度的升高。然而,当发热量较大时,热敏电阻自身的温度上升,电阻值减小。在这样的区域中,电流与电压之间的比例关系不再成立。通常,在自发热尽可能低的区域范围内使用热敏电阻。作为标准,建议工作电流保持在最大工作电流以下。在超过电压顶点的区域中使用,可能会导致重复发热和电阻值降低等热失控反应,造成热敏电阻发红、破损,请避免在该范围使用。电阻温度系数(α)NTC热敏电阻在单位温度下的变化率为温度系数,由以下公式计算。Ex)靠近50°C,B常数为3380K时由此,电阻温度系数由下所示。热耗散常数(δ)环境温度为T1的情况下,当热敏电阻消耗电功率P(mw)后其温度变为T2,则以下的公式成立。热耗散常数δ是指在自发热条件下提高1°C温度所需的功率。热耗散常数δ由“功耗导致的自热”和“散热”之间的平衡来决定,因此根据热敏电阻工作环境的不同而变化显著。Murata定义了“单位元件的热耗散常数”这一概念。图5 : 贴片NTC热敏电阻的散热状态热时间常数(τ)当一个保持在温度T0的热敏电阻突然被改变到环境温度T1时,它改变到目标温度T1所需的时间被称为热时间常数(τ)。通常,该值是指达到T0和T1之间温差的63.2%所需的时间。当保持在一个温度(T0)的热敏电阻暴露在另一个温度(T1)时,温度是呈指数变化的,经过时间(t)时的温度(T)表示如下。这就是为什么τ被规定为达到63.2%温差的时间。图6 : NTC热敏电阻的热时间常数最大电压(Vmax)可直接施加到热敏电阻的最大电压。当施加的电压超过最大电压时会造成产品性能恶化甚至毁坏。此外,由于自发热,元件的温度上升。需要注意元件的温度不能超过工作温度范围。图7 : NCU15型最大电压降额最大工作电流(Iop)、最大工作电压(Vop)Murata将最大工作电流、最大工作电压定义为施加时自发热为0.1℃的电流和电压。参考该值,热敏电阻能够实现更准确的测温。故施加电流 /电压超过最大工作电流 / 电压时并不会造成热敏电阻的性能退化。但请注意元件的自发热会带来检测上的误差。图8 : 散热差异导致的最大工作电流 / 电压的变化如何计算最大工作电流计算最大工作电流时,需要使用单位元件定义的热耗散常数(1mW/°C)。热耗散常数表示散热的程度,但散热状态随工作环境的不同有较大的差异。其中工作环境包括基板的材料,厚度,结构,焊接区域尺寸,热板接触,树脂封装等。单位元件定义的使用,排除了环境的干扰因素。而根据经验来看,实际使用中的热耗散常数约为单位元件的3~4倍。假设,实际的热耗散常数为3.5倍,那么最大工作电流如图中蓝色曲线所示。与1mW/°C的情况相比,现在是1.9倍(√3.5倍)。零负载电阻值在自发热可忽略不计的电流(电压)下测量的电阻值。作为标准,建议使用最大工作电流。图9 : Murata的电阻值测量方法03NTC热敏电阻测温回路 电路图输出电压可能因NTC热敏电阻接线图而异。可在以下URL中进行模拟。SimSurfing : NTC Thermistor Simulator(murata.co.jp)图1 : 电阻接地和热敏电阻接地电路的输出特性R1(分压电阻)、R2(并联电阻)、R3(串联电阻)的调整输出电压可根据线路图而变化。图2 : R值的调整和输出特性的变化声明: 声明:文章来源Murata。本号对所有原创、转载文章的陈述与观点均保持中立,推送文章仅供读者学习和交流。文章、图片等版权归原作者享有,如有侵权,联系删除。 来源:硬件笔记本

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈