0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通信接口背景知识与串口通信基本原理

GReq_mcu168 来源:玩转单片机 作者:玩转单片机 2020-10-26 10:46 次阅读

通信接口背景知识

设备之间通信的方式

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

并、串行通信的区别

串行通信的分类

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电平通信了。

若是芯片与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电平之间的转换。

具体要了解RS232串口的,可以查看链接RS232串口简介http://www.21ic.com/jichuzhishi/datasheet/RS232/jiekou/187973.htmlSTM32的UART特点

全双工异步通信;

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

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

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

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

单独的发送器和接收器使能位;

检测标志:

① 接受缓冲器

②发送缓冲器空

③传输结束标志;

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

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

串口通信过程

STM32中UART参数

串口通讯的数据包由发送设备通过自身的TXD接口传输到接收设备的RXD接口,通讯双方的数据包格式要规约一致才能正常收发数据。STM32中串口异步通信需要定义的参数:起始位、数据位(8位或者9位)、奇偶校验位(第9位)、停止位(1,15,2位)、波特率设置。

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的计算方法。

这里需要知道一个知识点:

UART1的时钟:PCLK2(高速);

UART2、UART3、UART4的时钟:PCLK1(低速)。

框图的中部分,涉及到UART(USART)的中断控制部分,在后面的文章中会具体介绍到。

版权声明:本文为CSDN博主「Yngz_Miao」的原创文章
遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38410730/article/details/79887200

责任编辑:xj

原文标题:【STM32】串口通信基本原理(超基础、详细版)

文章出处:【微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信
    +关注

    关注

    18

    文章

    5706

    浏览量

    134412
  • STM32
    +关注

    关注

    2240

    文章

    10675

    浏览量

    348856
  • 串口
    +关注

    关注

    14

    文章

    1485

    浏览量

    74525

原文标题:【STM32】串口通信基本原理(超基础、详细版)

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    USB转多协议串口通信

    、232、TTL多协议串口通信。板子上预留了5V和3.3V的供电输出,输出电流最大500mA。 一. 产品简介: 1)项目背景是在实际应用中需要多种串口调试工具,携带起来也不太方便就
    的头像 发表于 04-29 16:23 3次阅读
    USB转多协议<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    QT串口通信的简单使用

    QT串口通信是上位机和下位机通信常用的通信方式, 也是学习QT必须学会的基础知识, 这篇就简单介绍一下QT
    的头像 发表于 01-15 09:27 541次阅读
    QT<b class='flag-5'>串口</b><b class='flag-5'>通信</b>的简单使用

    PD通信基本原理 PD通信的相关过程

    PD通信基本原理 PD通信的相关过程 PD通信是一种公共无线通信技术,它可以在没有任何网络支持的情况下,让用户在附近的范围内相互
    的头像 发表于 10-27 14:31 857次阅读

    STM32串口通信简明知识

    STM32串口通信简明知识
    的头像 发表于 10-25 15:48 799次阅读
    STM32<b class='flag-5'>串口</b><b class='flag-5'>通信简明知识</b>

    串行通信基本原理、应用场景及主要优势

    串行通信(Serial Communication)是一种数据传输方式,其中数据位按顺序一个接一个地传输。尽管这种通信方式在某些方面可能不如并行通信(如 USB、I2C 和 HDMI)高效,但它在许多应用中仍然具有重要价值。本文
    发表于 09-26 17:25 1731次阅读

    USB接口基本原理、常见类型及应用

    USB(Universal Serial Bus,通用串行总线)是一种用于连接和通信的标准,已成为计算机与其他设备之间进行数据传输和电源供应的重要接口。本文将介绍USB接口基本原理
    的头像 发表于 09-14 17:10 7336次阅读

    电源设计的基本原理,电源的关键部件有哪些?

    了解电源设计的基本原理对于避免故障和确保高速单片机、存储芯片和逻辑IC满足设计预期非常重要。在本文中将介绍电源设计的基本原理,提供确保电子电路性能可靠所需的知识
    的头像 发表于 07-06 09:43 532次阅读
    电源设计的<b class='flag-5'>基本原理</b>,电源的关键部件有哪些?

    串口屏的通信接口

    1. 通信接口的选择需要考虑的主要因素:传输距离,稳定性,传输带宽。 帝晶光电智慧屏,提供1.28-15.6寸串口屏、小尺寸圆形旋钮屏、触摸屏等 2. 对于串口屏来说,传输稳定性和传输
    的头像 发表于 07-03 09:50 837次阅读

    串口通信是指什么?带你掌握串口通信

    串口是串行接口(serial port)的简称,也称为串行通信接口或COM接口
    的头像 发表于 06-26 15:49 3164次阅读
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>是指什么?带你掌握<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    【分享】什么是串口通信串口常见通信问题如何解决?

    在之前的文章中小编介绍了什么是CAN总线,包括CAN总线的数据格式和通信特点等方面的内容,今天将分享串口通信相关知识内容。CAN总线、串口
    的头像 发表于 06-21 17:45 1344次阅读
    【分享】什么是<b class='flag-5'>串口</b><b class='flag-5'>通信</b>?<b class='flag-5'>串口</b>常见<b class='flag-5'>通信</b>问题如何解决?

    有线传输方式之串口通信

    在之前的文章中小编介绍了什么是CAN总线,包括CAN总线的数据格式和通信特点等方面的内容,今天将分享串口通信相关知识内容。CAN总线、串口
    发表于 06-16 13:53 867次阅读
    有线传输方式之<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    计算机通信基本原理

     计算机通信基本原理是将电信号转换为逻辑信号,其转换方式是将高低电平表示为二进制数中的1和0, 再通过不同的二进制序列来表示所有的信息。
    发表于 05-09 16:41 2841次阅读

    信捷plc485通信上位机_常用通信接口汇总

    1.上位机、下位机、主机、从机的关系 2.常用通信接口说明(包括串口、GPIB接口、以太网接口、USB
    发表于 05-09 11:14 0次下载
    信捷plc485<b class='flag-5'>通信</b>上位机_常用<b class='flag-5'>通信</b><b class='flag-5'>接口</b>汇总

    串口通信的基础知识

    串口是串行接口(serial port)的简称,也称为串行通信接口或COM接口
    发表于 05-08 15:59 1894次阅读
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>的基础<b class='flag-5'>知识</b>

    通信基本原理是什么

    通信基本原理是传输信息。信息在通信中是通过信号来传输的,信号是信息载体的物理表现。信号在传输过程中要经过编码、调制、调节传输方式、差错控制等各个环节才能到达接收端,然后接受端再进行解码、解调、差错检测、还原等过程来获取原始信息
    发表于 05-08 15:26 6318次阅读