串口通信介绍

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


1- 串口通信简介(DB9接口讲解)

任何通信都要有信息传输载体,或者是有线的或者是无线的。串口通信是通过串口线进行有线通信。串口通信在早期是计算机与外界通信的主要手段,那时候的计算机基本上都标配有串口以实现和外部通信。
串口通信早期就定义了一套标准的串口规约,DB9 (9个引脚)接口就是标准接口,此外还有不常见的DB25 (25个引脚)。
DB9接口中有9根通信线,其中3根线(GND、TXD、RXD)很重要必不可少,剩余6根都是和流控有关的,现代我们使用串口都是用来做调试,所以这6根很少使用。但是面试的时候还是可能会问到的,所以还是可以了解一下的。

串口通信介绍

  • 1- DCD( Data Carrier Detect)载波检测:主要用于Modem通知计算机其处于在线状态,即Modem检测到拨号音,处于在线状态。

  • 2- RXD(Receive(rx) Data)串口数据输入:此引脚用于接收外部设备送来的数据。

  • 3- TXD(Transmit(tx) Data)串口数据输出:此引脚将计算机的数据发送给外部设备。

  • 4- DTR( Data Terminal Ready )数据终端就绪:当此引脚高电平时,通知Modem可以进行数据传输,计算机已经准备好。

  • 5- GND(Ground)信号地线

  • 6- DSR(data set ready)数据发送就绪:此引脚高电平时,通知计算机Modem已经准备好,可以进行数据通讯了。

  • 7- RTS(Request To Send)请求发送:此脚由计算机来控制,用以通知Modem马上传送数据至计算机;否则,Modem将收到的数据暂时放入缓冲区中。

  • 8- CTS(Clear to send)发送清除:此脚由Modem控制,用以通知计算机将欲传的数据送至Modem。

  • 9- RI ( Ring Indicator)铃声指示:Modem通知计算机有呼叫进来,是否接听呼叫由计算机决定。


2- 串口通信基本原理

(1)串口通信连线

任何通信都要有信息传输载体,或者是有线的或者是无线的。串口通信是通过串口线进行有线通信,在通信时最少需要两根线(GND和信号线)既可以实现单工通信,GPS模块就是典型的串口单工通信实例。此外大部分的串口通信都是使用3根线(TXD、RXD、GND)来实现全双工通信。
GND:保证两设备共地,有统一的参考平面。你说你是高电平或者你说你是低电平肯定有一个参考,GND就是参考平面。

串口通信介绍

(2)串口通信时序

串口通信时,收发是一个周期一个周期进行的,每个周期传输n个二进制位。这一个周期就叫做一个通信单元,一个通信单元由:起始位(1bit)+数据位(8bit)+奇偶校验位(1bit)+停止位(1bit) 组成的。

串口通信是异步通信,所以通信双方必须事先约定好通信参数,这些通信参数包括:波特率、数据位、校验位、停止位,这些参数中的任何一个设置错误,都会导致通信失败。譬如波特率调错了,发送方发送没问题,接收方也能接收,但是接收到全是乱码。
串口通信介绍

【1】波特率

简而言之,串口传输的波特率即为每秒钟传输二进制的位数,是衡量资料传送速率的指标。

波特率-115200:

  • 1s传输二进制的位数115200bit
  • 传输1bit需要 1/115200s=8.68us

串口通信是一种异步通信方式,收发双方并没有同步时钟信号来规约一个bit的数据发送电平维持多长时间,这样只能靠收发双方的速率来同步收发数据,这个速率叫做波特率(BaudRate),其单位为bps(bit per second)。

串口通信常用速率为115200(3G/4G/调试串口等)、9600(NB-loT/GPS等)、4800等。收发双方的速率必须保持一致,否则会出现乱码或完全接收不到的现象。

【2】起始位

先发出一个逻辑”0”的信号,表示传输字符的开始。

它表示发送方要开始发送一个通信单元,起始位的定义是串口通信标准事先指定的,是由通信线上的电平变化来反映的。对于串口通信而言总线没有数据传输空闲时维持高电平,一旦产生一个下降沿变成低电平则表示起始信号。

【3】数据位

它一个通信单元中发送的有效信息位,是本次通信真正要发送的有效数据,串口通信一次发送多少位有效数据是可以设定的(可选的有6、7、8、9,一般都是选择8位数据位,因为一般通过串口发送的数据都是以字节为单位的ASCII码编码,而ASCII码中一个字符刚好编码为8位)。

【4】奇偶校验位

奇偶校验是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中的"1"的个数是奇数或者偶数来进行校验。但是一般都不怎么准确,有50%d误差(等于没说)

奇数校验:8个bit数据位中有偶数个1,那么奇偶校验位为1才能满足1的个数为奇数(奇校验)。如果为0就是偶校验了。
1111 0000 1

偶数校验:8个bit数据位中有奇数个1,那么奇偶校验位为1才能满足1的个数为偶数(偶校验)。如果为0就是奇校验了。
1111 1000 1

此位还可以去除,即不需要奇偶校验位。

【5】停止位

它是发送方用来表示本通信单元结束标志的,停止位的定义是串口通信标准事先指定的,是由通信线上的电平变化来反映的。


3- TTL、RS232以及RS485介绍

RS232和TTL,最根本的不同在于:
硬件(机制)不同:

(1)TTL

逻辑高电平 1:3.3V或者5V
逻辑低电平 0:0V
TTL是正逻辑,逻辑0为低电平

TTL是芯片上的串口直接出的电平,它适合距离近且干扰小的情况,如开发板上芯片与芯片之间、开发板与串口模块之间的短距离串口通信。

(2)RS232

逻辑高电平 1:- 15V ~ - 3V 常为:-13V
逻辑低电平 0:+3V ~ +15V 常为:13V
也就是说RS232是负逻辑 ,逻辑0为高电平

设备与设备之间的长距离通信,因为压降和信号干扰等原因通常会使用RS232来进行通信。

RS232特点:

  • 接口使用一根Tx信号线和一根Rx信号线而构成共地的传输形式,这种方式抗噪声抗干扰性弱;
  • 传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在50米左右。
  • 传输速率较低,在异步传输时,波特率为20Kbps(一般是115200bps);
  • 通信的时候只能两点之间进行通信,不能够实现多机联网通信;
  • RS232 与TTL电平不兼容,另外接口的信号电平值较高,易损坏接口电路的芯片。
(3)RS232和TTL之间的转换

CPU或芯片引出的串口默认都是TTL电平,如果要转成RS232电平的话一般会接一个MAX232的芯片。
简单介绍一下MAX232,至于内部是怎么转换或者设计的,想知道的小伙伴可以自行去了解一下:
串口通信介绍

当用单片机和PC机通过串口进行通信,尽管单片机有串行通信的功能,但单片机提供的信号电平和RS232的标准不一样,因此要通过MAX232这种类似的芯片进行电平转换。

MAX232芯片的作用:是将单片机输出的TTL电平(0V,5V)转换成PC机能接收的232电平(-10V,10V)或将PC机输出的232电平(-10V,10V)转换成单片机能接收的TTL电平(0V,5V)。

(4)RS485

RS485 和RS232一样都是基于串口的通讯接口,数据收发的操作是一致的,但是它们在实际应用中通讯模式却有着很大的区别,RS232接口为全双工数据通讯模式,而RS485接口一般为半双工数据通讯模式,数据的收发不能同时进行,为了保证数据收发的不冲突,硬件上是通过方向切换来实现的,相应也要求软件上必须将收发的过程严格地分开。

上述针对RS232接口的不足,就不断出现了一些新的接口标准,RS485 就是其中之一,它具备以下的特点:

  • 差分传输增加噪声抗扰度,减少噪声辐射;
  • 长距离链路,最长可达4000英尺(约1219米);
  • 数据速率高达10Mbps (40英寸内,约12.2米) ;
  • 同一总线可以连接多个驱动器和接收器宽共模范围允许驱动器和接收器之间存在地电位差异,允许最大共模电压-7-12V。

RS-485能够进行远距离传输主要得益于使用差分信号进行传输,当有噪声干扰时仍可以使用线路上两者差值进行判断,使传输数据不受噪声干扰。文章来源地址https://www.toymoban.com/news/detail-428084.html


4- 串口通信特点

  • 串口通信单向只有一个数据线实现通信,同时只能传输1个二进制位数据,所以是串行通信;
  • 串口通信的发送方和接收方之间没有统一的时钟信号,所以它是异步通信方式;
  • 串口通信即可以实现全双工通信,也可以实现单工通信;
  • 串口通信出现时间较早、速率较低,并且采样电平信号传输,抗干扰能力不强,传输的距离较近;

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

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

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

相关文章

  • STC89C51——串行通信、串口介绍及配置

            本文介绍基于常见的51单片机,即如下图的芯片:  AT89C51具备一个全双工串行通信接口。设有2个相互独立的接收、发送缓冲器,可以同时发送和接收数据。 两个缓冲器(SBUF)共用一个物理地址即99H。如果CPU写SBUF,数据就会被送入发送寄存器准备发送;如果CPU读SB

    2024年02月05日
    浏览(57)
  • PySerial:Python串口通信库的详细介绍、安装及使用方法攻略

    PySerial:Python串口通信库的详细介绍、安装及使用方法攻略 一、PySerial 简介 PySerial 是 Python 的一个串口通信库,支持不同平台下的串口操作。在 Python 应用中,使用 PySerial 可以非常方便地实现对串口设备的读写操作。 二、PySerial 的安装 在 Windows 平台下,可以通过 pip 命令安装

    2024年02月09日
    浏览(55)
  • JSON格式介绍以及STM32串口通信JSON格式远程控制LED灯

    JSON(JavaScript Object Notation),即 JS对象简谱,是一种轻量级的数据格式。 它采用完全独立于编程语言的文本格式来存储和表示数据,语法简洁、层次结构清晰,易于人阅读和编写,同时也易于机器解析和生成,有效的提升了网络传输效率。 JSON 可以将 JavaScript 对象中表示的一

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

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

    2024年02月02日
    浏览(45)
  • 看完这篇文章你就彻底懂啦{保姆级讲解}-----(I.MX6U驱动UART串口通信) 2023.5.20

    串口是我们在开发过程中最常用到的外设,所以我们必须掌握。 串口驱动初始化部分 好!按照老样子,接下来开始详细讲解每行代码的用处,以及为什么这样写! 串口驱动初始化部分讲解开始: //将IO功能设置为UART1_RXD和UART1_TXD。 //配置UART1_TX_DATA、UART1_RX_DATA的IO属性。 先关

    2024年02月05日
    浏览(106)
  • 驱动开发常见的通信接口介绍

            本文将为您详细讲解驱动开发中常见的通信接口,以及它们的特点、区别和应用场景。在操作系统和硬件设备之间,通信接口扮演着至关重要的角色,它们定义了数据如何在软件和硬件之间传输和交互。          1. 串行通信接口(Serial Communication)       

    2024年03月14日
    浏览(42)
  • Python开发GUI常用库PyQt6和PySide6介绍之三:交互和通信方式讲解

    在PyQt6和PySide6中,事件(Event)和信号(Signal)是两个不同的概念,它们都是Qt框架中用于处理不同类型的应用程序响应机制。简言之,事件是对用户交互或系统状态变化的直接响应,而信号和槽是一种允许对象间通信的机制。在PyQt6和PySide6的应用程序中,合理地使用事件和信

    2024年02月04日
    浏览(38)
  • Android Studio App开发之网络通信中使用GET方式调用HTTP接口的讲解及实战(附源码 超详细必看)

    运行有问题或需要源码请点赞关注收藏后评论区留言~~~ Android开发采用Java作为编程语言,也就沿用了Java的HTTP连接工具HttpURLConnection,不管是访问HTTP接口还是上传或下载文件都是用它来实现。它有几个关键点 1:HttpURLConnection默认采取国际通行的UTF-8编码,中文用GBK编码 2:多数

    2024年02月05日
    浏览(109)
  • ESP32串口通信 双机串口通信

    环顾论坛居然无使用uart进行双击通信的案例或者讲解!!! 还是自己摸索吧!环境依旧是arduino(熟练使用ESP32后必得用vs code,这个IDE居然有时候函数不能跳转!!!) 双向通信代码 先贴代码(使用串口2,GPIO16、17): esp32发送端 esp32接收端 注意 :接收端不采用循环,目的当

    2024年02月10日
    浏览(45)
  • 树莓派学习笔记--串口通信(配置硬件串口进行通信)

            树莓派4b的外设一共包含两个串口: 硬件串口(/dev/ttyAMA0) , mini串口(/dev/ttyS0)         硬件串口由硬件实现,有单独的波特率时钟源,性能高,可靠;而mini串口性能低,功能单一。所以一般都使用硬件串口。         树莓派的串口又分为主串口与辅助

    2024年04月26日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包