串口通信的基本原理

这篇具有很好参考价值的文章主要介绍了串口通信的基本原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

串行接口,简称串口,也称串行通信接口(采用串行通信方式的扩展接口),通常指COM接口;


二、串口通信的两种基本方式

1、同步通信(SYNC-synchronous data communication)

同步通信有时钟信号来做同步,在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这样就保证了通信双方在发送和接收时具有完全一致的定时关系;

同步串行通信SPI(Serial Peripheral Interface串行外围设备接口简称),SPI总线系统是一种同步串行的外设接口,它可以是MCU与各种外围设备以串行方式进行通信以交换信息;

2、异步通信(ASYNC-asynchronous data communication)

以字符为单位进行传输,字符之间没有固定的时间间隔要求,而每个字符中的各位则固定的时间传送。异步通信中,收发双方去的同步是通过在字符格式中设置起始位和停止位的方式来实现的。具体来说就是,在一个有效字符正式发送之前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位和停止位构成一帧。停止位和下一个起始位之间是不定长的空闲位,并且规定起始位为低电平(逻辑值为0),停止位和空闲位都是高电平(逻辑值为1),这样就保证了起始位开始处一定会有一个下跳沿,由此就可以标志一个字符传输的起始;根据起始位和停止位就很容易的实现了字符的界定和同步。

异步串行通信UART(无时钟信号)(UniverSal Asynchronous Receiver/Transmitter),即通用异步接收/发送;

UART包含TTL电平和RS232电平,TTL电平是3.3V的,RS232是负逻辑电平,它定义+3 ~ +15为低电平,而-15 ~ -3为高电平,通常PC机串口与单片机串口通信需要电平转换芯片,例如:MAX232;

显然,采用异步通信时,发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,可以互不同步。

异步通信的数据发送过程

  • 初始化后或者没有数据需要发送时,发送端输出逻辑1,可以有任意数量的空闲位;
  • 当需要发送数据时,发送端首先输出逻辑0,作为起始位;
  • 接着开始输出数据位,发送端首先输出数据的最低位D0,然后是D1,最后是数据的最高位;
  • 如果设有奇偶校验位,发送端输出校验位;
  • 最后,发送端输出逻辑1,作为停止位;
  • 如果没有信息需要发送,发送端输出逻辑1,作为空闲位,如果有信息需要发送,则转入步骤2;

异步通信的数据接收过程
在异步通信中,接收端一接收时钟和波特率因子决定每一位的时间长度;
下面一波特率因子16(接收时钟每16个时钟周期使接收移位寄存器移位一次)为例来说明:

  • 开始通信,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对接收时钟计数;
  • 接收端检测到起始位后,隔16个接收时钟对输入信号检测一次,把对应的值作为D0位数据;
  • 再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据;
  • 依此类推,直到接收到D7位数据;
  • 检验奇偶校验位;
  • 接收到规定的数据位个数个校验位后,通信接口电路希望收到停止位(逻辑1);
  • 若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志;
  • 若没有错误,对全部数据位进行奇偶校验,无校验错误时,把数据位从移位寄存器中取出送至数据输入寄存器;
  • 若校验错误,在状态寄存器中置“奇偶错”标志;
  • 本帧信息全部接收完,把线路上出现的高电平作为空闲位;
  • 当信号再次变为低电平(起始位)时,开始进入下一帧的检测;

接收时钟和发送时钟与波特率的关系:

f = n x B(f:发送时钟或接收时钟的频率;B:数据传输的波特率;n:波特率因子);
设发送或接收时钟的周期为Tc,发送一个波形所需要的传输时间为Td,则:Tc = 1 / f,Td = 1 / B,得到Tc = Td / n,从而n代表发送一个波形需要几个时钟周期;
在实际串行通信中,波特率因子可以设定;
在异步传送时,n = 1, 16, 64,常采用n = 16,即发送或接收时钟的频率要比数据传送的波特率高n倍;
在同步通信时,波特率因子n必须等于1;

波特率与比特率的关系:

波特率代表1秒钟发送波形的个数,而比特率代表1秒钟发送比特的个数;
在采用二进制传输的情况下,发送的波形一共有2种波形,即高电平和低电平。那么一个波形代表一个比特,因此波特率和比特率相等;
在采用四进制传输的情况下,发送的波形一共有4种波形,此处假设发送的最高电平为3C,发送00的波形为0V,发送01的波形为1V,发送10的波形为2V,发送11的波形为3V,那么一个波形代表两个比特,因此比特率是波特率的两倍;同理,在采用8进制传输的情况下,比特率是波特率的三倍,以此类推;


三、通讯方式

1、单工模式(Simplex Comminication)
数据传输是单向的,通信双方中,一方固定为发送端,一方固定为接收端,信息只能炎一个方向传输,使用一根传输线;

2、半双工模式
通信使用同一根传输线,既可以发送数据又可以接收数据,但不能同时进行发送和接收。数据传输运行数据在两个方向上传输,但是,在任何时刻都只能由其中的一方发送数据,另一方接收数据,因此半双工模式既可以使用一条数据线,也可以使用两条数据线。半双工通信中每端需有一个收发切换电子开关,通过切换来觉得数据向哪个方向传输;因为有切换,所以会产生时间延迟,信息传输效率低些;

3、全双工模式
通信允许数据同时在两个方向上传输,因此,全双工通信时两个单个通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力;在全双工模式中,每一段都有发送器和接收器,有两条传输线,信息传输效率高;文章来源地址https://www.toymoban.com/news/detail-452182.html


四、TTL、RS232、RS485

  • TTL电平:输出低电平要小于0.8V,高电平要大于2.4V;输入低于1.2V就认为是0,高于2.0就认为是1;
  • RS232电平:逻辑1的电平为-3 ~ -15,逻辑0的电平为+3 ~ +15,介意-3 ~ +3之间的电压无意义;
  • RS485电平:差分信号 -2500mv ~ -200mv为逻辑0,差分信号 +2500mv ~ +200mv为逻辑1,-200mv ~ +200mv为高阻态;
  • MAX232芯片:是TTL电平和RS232电平的专用双向转换芯片,可以TTL转RS232,也可以RS232转TTL;
  • TTL电平一般用于芯片与芯片之间的通信;
  • RS232采用正负逻辑电平,提高线路的抗干扰性,最远可以达到15米左右;RS232全双工只支持点对点通讯(1 : 1);
  • RS485使用两线制的差分信号传输,最远可至1200米;RS484半双工或单双工支持从小形式通讯(1 :N);

到了这里,关于串口通信的基本原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【正点原子STM32】RS485串行通信标准(串口基础协议 和 MODBUS协议、总线连接、通信电路、通信波形图、RS485相关HAL库驱动、RS485配置步骤、)

    一、RS485介绍 二、RS485相关HAL库驱动介绍 三、RS485配置步骤 四、编程实战 五、总结 串口、UART、TTL、RS232、RS422和RS485之间的关系可以如此理解: 串口 :是一个广义术语,通常指的是采用串行通信协议的接口,它可以包括多种具体的物理接口标准和逻辑电平标准。 UART (通用

    2024年04月13日
    浏览(68)
  • 第6章_瑞萨MCU零基础入门系列教程之串行通信接口(SCI)

    本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id=728461040949 配套资料获取:https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总 : https://blog.csdn.net/qq_35181236/article/details/132779862 本章目标 了解串行通信协

    2024年01月24日
    浏览(39)
  • C#上位机的USB通信与串口通信接口区别

    USB通信与串口通信接口的代码区别有以下几个方面: 通信方式不同:串口通信采用全双工或半双工通信方式,而USB通信采用异步、同步和批量传输等多种传输方式。 端口号设置不同:串口通信设置端口号,如\\\"COM1\\\"、\\\"COM2\\\"等,而USB通信通过设备描述符和VID/PID等参数进行识别和

    2024年02月08日
    浏览(45)
  • 【期末不挂科-单片机考前速过系列P7】(第七章:11题速过串行口基本概念/结构/工作方式/双机通信例题)经典例题盘点(带图解析)

    前言 大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁 主要内容含: 欢迎订阅 YY 滴C++专栏!更多干货持续更新!以下是传送门! YY的《C++》专栏 YY的《C++11》专栏 YY的《Linux》专栏 YY的《数据结构》专栏 YY的《C语言基础》专栏 YY的《

    2024年02月02日
    浏览(59)
  • 09 AB 10串口通信发送原理

            通用异步收发传输器( Universal Asynchronous Receiver/Transmitter, UART)是一种异步收发传输器,其在数据发送时将并行数据转换成串行数据来传输, 在数据接收时将接收到的串行数据转换成并行数据, 可以实现全双工传输和接收。它包括了 RS232、 RS449、 RS423、RS422 和

    2024年02月20日
    浏览(38)
  • 51单片机串口通信原理、相关寄存器配置与简单串口收发程序代码

    目录 1. 串口通信原理 2. 51单片机串口通信  2.1 串口简要模式图  2.2 相关寄存器 (1)PCON、SCON、SBUF (2)IE、IPH、IP (3)配置T1定时器 2.3 波特率和系统时钟和TH1和TL1计算  3.串口通信简单收发使用代码   3.1 在STC-isp使用端口助手,从单片机发送字节  3.2 通过端口助手利用主

    2024年02月05日
    浏览(47)
  • 51单片机串口通信的原理及使用方法(附串口收发数据例程代码)

    温馨提示:本篇文章详细介绍了串口的原理及使用方法,涉及的内容较多,但也较为全面,学者若想充分掌握串口通信的原理和具体使用方法(部分限于51单片机),请静下心来将其读完,相信一定会受益匪浅!而且对32单片机的串口学习也有非常好的辅助! 一.串行通信的原

    2024年02月09日
    浏览(41)
  • 【沧海拾昧】WiFi串口通信ESP8266模块基本介绍(附野火WiFi透传实例)

    #C0104 沧海茫茫千钟粟,且拾吾昧一微尘 ——《沧海拾昧集》@CuPhoenix 【阅前敬告】 沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系 【如有问题必是本集记录有谬,切勿深究】     WiFi串口通讯模块是嵌入式初学者需要接触到的一种常用模块,可以用

    2024年02月02日
    浏览(47)
  • 通信原理循环码基本原理

    目录 一、码多项式 二、码多项式的按模运算 三、循环码的码多项式 四、循环码的生成矩阵 五、如何寻求任一​编辑循环码循环码的生成多项式​编辑 六、循环码的监督矩阵和监督多项式 一、码多项式 一个长度为的码组可表示成如下多项式形式: 多项式的系数就是码组中

    2024年02月10日
    浏览(32)
  • CAN通信----基本原理

    文章链接: STM32F103标准库开发----目录 STM32F103标准库开发----CAN总线通信实验----初始化/波特率 STM32F103标准库开发----CAN总线通信实验----发送和接收 资源链接: 本例程已经调试成功,下载即可使用。 STM32F103标准库开发----CAN通信收发实验----程序源码 CAN 是 Controller Area Network 的

    2024年01月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包