串口通信介绍

2023-05-16

文章目录

    • 1- 串口通信简介(DB9接口讲解)
    • 2- 串口通信基本原理
        • (1)串口通信连线
        • (2)串口通信时序
          • 【1】波特率
          • 【2】起始位
          • 【3】数据位
          • 【4】奇偶校验位
          • 【5】停止位
    • 3- TTL、RS232以及RS485介绍
        • (1)TTL
        • (2)RS232
        • (3)RS232和TTL之间的转换
        • (4)RS485
    • 4- 串口通信特点


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能够进行远距离传输主要得益于使用差分信号进行传输,当有噪声干扰时仍可以使用线路上两者差值进行判断,使传输数据不受噪声干扰。


4- 串口通信特点

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

串口通信介绍 的相关文章

  • 如何使用UBLOX ZED-F9P +4G获取千寻差分,实现厘米级定位同时回传到IP服务器

    格林恩德F9P 4G RTK模块 xff0c 集成高精度板卡ZED F9P以及4G模组 xff0c 可同时接收GPS xff0c 北斗 xff0c GALILEO GLONASS卫星系统的L1 L2频点 xff0c 结合高精度天线一体化设计
  • 小型RTK/LITE RTK/Mini RTK CR202(9P+4G+imu) 惯导 实现高精度厘米级定位,输出组合导航位置,定位数据回传服务器

    格林恩德 CR202 是一款小巧 迷你的RTK设备 xff0c 集成高精度板卡 ZED F9P 与4G EC20通信模组 xff0c 内置惯性导航IMU三轴加速度计 三轴陀螺仪 CAN收发器 xff0c 支持多种差分链路包括4G 电台 支持
  • 常用CORS账号设置方法(千寻CORS、中国移动CORS、六分CORS、北斗CORS、迅腾CORS)

    1 千寻CORS账号设置方法 2 中国移动CORS账号设置方法 3 六分CORS账号设置方法 4 北斗CORS账号设置方法 5 讯腾CORS账号设置方法 格林恩德专注GPS北斗高精度定位 北斗短报文通信与无线传输应用产品的开发与市场拓展
  • NTRIPClient_1.7 工具使用方法分享

    1 打开NTRIPClient 1 7软件 2 选择串口和波特率 xff0c 正确的与板卡或者模块连接 点击编辑 xff0c 进入串口配置界面 选择正确的端口和波特率 3 输入正确的差分账号 输入千寻差分账号地址 端口 用户名 账号密码 4
  • 导航卫星的时间系统

    1 GPS时间系统 xff08 GPST xff09 GPS系统是测时测距系统 时间在 GPS测量中是一个基本的观测量 卫星的信号 xff0c 卫星的运动 xff0c 卫星的坐标都与时间密切相关 对时间的要求既要稳定又要连续 为此 xff0
  • JT808协议介绍 --- 格林恩德 CR202 RTK 高精度车载定位器协议解读

    部标808又称为JT808 xff0c JT808标准的全称是 道路运输车辆卫星定位系统终端通讯协议及数据格式 808协议适用于GPS定位车载终端和监控平台之间的通信 当前市面上 xff0c 普通车辆监测设备所安装的GPS定位器 xff0c
  • C++析构函数调用顺序

    文章目录 析构函数工作过程 1 执行析构函数的函数体 2 如果该类中拥有类对象成员 xff0c 且类对象有析构函数 xff0c 则以类对象成员声明次序的相反顺序调用其析构函数 xff0c 销毁类对象成员 3 按原来构造顺序的相反顶序向上依次
  • TCP通信C++实现小例子

    TCP通信C 43 43 实现案例 https www bilibili com video BV1Dt411p74c t 61 1746 61 61 全部来自以上视频 xff0c 纯属搬运 xff0c 小可爱有问题可以举手提问哈 61 6
  • 串行通信简介

    一 串行通信与并行通信 计算机与外界的数据交换称为通信 xff0c 通信分为并行通信和串行通信两种基本方式 并行通信 串行通信 并行通信 xff1a 并行通信指各个数据位同时进行传送的数据通信方式 xff0c 因此有多少个数据位 xff0c
  • 使用寄存器点亮一个LED灯 普中科技stm32(stm32f1103zeb6)

    板子 xff1a 普中科技stm32F1 芯片stm32f1103zet6 1 程序如下 xff1a include 34 stm32f10x h 34 导入头文件 typedef unsigned int u32 typedef是系统关键
  • day 5 select服务器和客户端

    select客户端代码 xff1a include lt stdio h gt include lt string h gt include lt sys socket h gt include lt netinet in h gt inc
  • python Requests添加Auth和Cert

    最近通过postman发起另外一个项目的请求 xff0c 鉴权较为复杂 xff0c 首先需要设置cert xff0c postman中设置如下 xff1a 需要设置basic auth的参数 然后将接口返回的token放入auth的bear
  • STM32笔记(三)---寄存器映射--BSRR分析

    STM32笔记 xff08 三 xff09 寄存器映射 BSRR分析 GPIO与引脚区别 GPIO包含在引脚内 xff08 引脚内还有电源 晶振等特殊功能引脚 xff09 xff0c 除GPIO拓展内容即为单片机最小系统 GPIO功能如何检
  • ROS赵虚左6.5 Rviz中控制机器人模型运动_选了odom坐标系后小车变白不能动

    原因 xff1a 配置文件中的参考坐标不应该是base footprint xff0c 而是你自己小车最下面那个 小脚 的坐标系 xff0c 我的是footprint 所以把参考坐标换一下就可以了
  • 超声波传感器的基础

    超声波传感器已经有几十年的历史了 xff0c 但是由于它们的性能 灵活性和低成本 xff0c 它们仍然占据着传感市场的很大一部分 随着越来越多的产品实现了自动化 xff0c 随着机器人 自动驾驶汽车和无人驾驶飞机的出现 xff0c 需求进一
  • pthread_create未定义的引用

    在ubuntu使用gcc编译时出现 pthread create未定义的引用 问题 解决如下 xff1a 在编译时加入 l pthread 例如gcc thread c o thr l pthread 原因 xff1a pthread不是l
  • Linux下vscode实现调试

    1 安装好vscode xff0c 安装对应的插件 2 编写代码 xff0c 点击右上角的三角形 xff0c 生成对应可执行文件 3 点击菜单栏中的终端 配置任务 xff0c 选择 c c 43 43 xff1a GCC build act
  • 二进制数与十进制之间的转换以及使用一个函数实现任意进制之间的转换

    其他进制转为十进制都可以实现 xff0c 只需要将函数中的10和2换掉你需要的就行 include lt stdio h gt include lt math h gt 1 二进制转换为十进制 int twoConvertTen long
  • vscode配置C语言编译调试的方法

    一 安装GCC 官方下载 如果你能从在线安装 xff0c 那最好就在线安装吧 不过在线安装太容易中断失败了 如果你能连上官网 xff0c 也可以选择从官网去下载离线安装包 https sourceforge net projects min

随机推荐

  • C语言之补漏(1)

    typedef 1 define与typedef区别 xff1f 相比起宏定义的直接替换 xff0c typedef是对类型的封装 xff08 通俗说就是对类型起一个别名 xff09 2 typedef可以给多个别名 typedef int
  • 关于学习如何组装基于F4V3S飞控的竞速穿越机

    广西 河池学院 广西高校重点实验室培训基地 系统控制与信息处理重点实验室 本篇博客来自河池学院 智控无人机小组 创作时间2020 8 22 组装一架穿越机 xff0c 你需要的一些最基本的 xff0c 能让它飞起来的配件有 xff1a 机架
  • STM32—串口

    串口介绍 串行接口简称串口 xff0c 也称串行通信接口或串行通讯接口 xff08 通常指COM接口 xff09 xff0c 是采用串行通信方式的扩展接口 串行接口 xff08 Serial Interface xff09 是指数据一位一位
  • 2021电赛元件清单(评论区有题目预测)

    2021 年全国大学生电子设计竞赛仪器设备和主要元器件及器材清单 本科组 1 仪器设备清单 数字示波器 xff08 100MHz xff0c 双通道 xff09 函数发生器 xff08 50 MHz xff0c 双通道 xff09 任意波信
  • 通过TCP实现客户端与服务端之间通信

    客户端发送的消息 xff0c 服务端接收并在终端中显示出来 服务端代码 xff08 server c include lt stdio h gt include lt sys socket h gt include lt netinet i
  • Qt导入Opencv出现undefined reference to cv::xxx

    Qt配置Opencv在Qt运行时报错undefined reference to cv xxx Face Recognizer报错 FaceRecognizer load const char 41 报错 首先 xff0c 如果出现cv x
  • ESP32 之 ESP-IDF 教学(十二)WiFi篇—— LwIP 之 TCP 通信

    本文章 来自原创专栏 ESP32教学专栏 基于ESP IDF xff0c 讲解如何使用 ESP IDF 构建 ESP32 程序 xff0c 发布文章并会持续为已发布文章添加新内容 xff01 每篇文章都经过了精打细磨 xff01 通过下方对
  • ACWING 799. 最长连续不重复子序列 (入门) (双指针算法)

    给定一个长度为 n 的整数序列 xff0c 请找出最长的不包含重复的数的连续区间 xff0c 输出它的长度 输入格式 第一行包含整数 n 第二行包含 n 个整数 xff08 均在 0 105 范围内 xff09 xff0c 表示整数序列 输
  • STM32串口通信晶振导致问题出现

    STM32串口通信问题 关于stm32串口通信的问题 xff0c 比较常见的主要是以下几个问题 xff1a 1 xff0c 因为波特率不同导致通信时出现乱码 xff0c 这是一个比较常见的问题 xff0c 也是比较容易发现和解决的问题 2
  • 解决ERROR: cannot launch node of type [move_base/move_base]

    最近拿了别人的程序跑 xff0c 直接将工作空间git了过来 xff0c 结果发现提示错误 xff1a ERROR cannot launch node of type move base move base Cannot locate n
  • 基于单片机控制的开关电源设计

    文末下载完整资料 1 概述 1 1 课题来源及意义 电源技术是一种应用功率半导体器件 xff0c 综合电力变换技术 现代电子技术 自动控制技术的多学科的边缘交叉技术 随着科学技术的发展 xff0c 电源技术又与现代控制理论 材料科学 电机工
  • Hikvison对接iSecure Center时获取Appkey和Secert、不显示API网关、预览时提示网络请求失败

    场景 SpringBoot 43 Vue 43 iSecure Center xff08 海康综合安防管理平台 xff09 实现视频预览 xff1a SpringBoot 43 Vue 43 iSecure Center xff08 海康综
  • request和response

    文章目录 前言一 request功能1 获取请求行数据 xff08 1 xff09 方法 xff08 2 xff09 获取请求头数据 xff08 3 xff09 获取请求体数据 2 其他功能 xff08 1 xff09 获取请求参数通用方式
  • C++ Primer Plus 学习笔记(一)

    目录 第二章 开始学习C 43 43 1 主函数 2 预处理器 3 endl 第三章 处理数据 1 简单变量 2 整型 3 C 43 43 初始化 xff1a 4 字符 5 bool 6 const限定符 7 浮点数 8 算数运算符 9 类
  • 【上位机与下位机通信】使用WIFI模块ESP8266连接单片机与上位机通信

    文章目录 前言一 ESP8266模块与STM32连接二 单片机代码三 总结 前言 承接上文WIFI上位机部分 xff1a 上位机 通过WIFI上位机与网络调试助手通信绘制曲线 xff0c 现阶段实现了STM32单片机与ESP8266WIFI
  • Linux C++服务器项目——项目实战1(理论知识)

    牛客 C 43 43 高并发服务器开发 参考笔记 1 阻塞 非阻塞 同步 异步 网络lO 2 Unix Linux上的五种lO模型a 阻塞blockingb 非阻塞non blocking NIO c IO复用 IO multiplexin
  • 网络编程传输层——UDP通信

    何为传输层 xff1f 在物理层 数据链路层 网络层解决了主机和主机之间能够发送接收数据 xff0c 但是在计算机网络中 xff0c 主机的通信主体还是进程 xff0c 而传输层则解决应用进程的通信 xff0c 所谓传输层协议也是端对端协议
  • WiFi的原理以及正点原子WiFi模块的使用

    本文主要用于记录WiFi的部分协议 原理 xff0c 以及如何使用正点原子的WiFi模块 文章名 xff1a WiFi的原理以及正点原子WiFi模块的使用 作者 xff1a 遮瑕 注 xff1a 本文大量引用 WIFI基本知识整理 以及百度
  • STM32 - 用户自定义通讯协议

    一 自定义协议 帧头1 xff1a 0x5A 帧头1 xff1a 0xA5 命令类型 xff1a 0x01 ADC 读取电压 0x02 外部flash写入 0x03 外部flash 读取 0x04 内部flash 写入 0x05 内部fla
  • 串口通信介绍

    文章目录 1 串口通信简介 xff08 DB9接口讲解 xff09 2 串口通信基本原理 xff08 1 xff09 串口通信连线 xff08 2 xff09 串口通信时序 1 波特率 2 起始位 3 数据位 4 奇偶校验位 5 停止位 3