串口通信知识点总结

2023-11-15

一、串口协议和RS-232标准

(一)串口通讯协议

1.简介

串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485

2.串口通信的基本原理

1)串口在嵌入式系统当中是一类重要的数据通信接口,其本质功能是作为 CPU 和串行设备间的编码转换器。当数据从 CPU 经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。
2)应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。典型地,串口用于 ASCII 码字符的传输。

  • 通信使用3根线完成:
    (1)地线,
    (2)发送数据线,
    (3)接收数据线。

3)串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

  • 对于两个进行通行的端口,这些参数必须匹配:波特率是一个衡量通信速度的参数,它表示每秒钟传送的 bit 的个数;数据位是衡量通信中实际数据位的参数,当计算机发送一个信息包,标准的值是 5,7 和 8 位。如何设置取决于你的需求;停止位用于表示单个包的最后一位,典型的值为 1,1.5和 2 位,停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会;奇偶校验位是串口通信中一种简单的检错方式,有四种检错方式——偶、奇、高和低,也可以没有校验位。

(二)RS232串口标准

1.简介

RS232串口标准是美国EIA(电子工业联合会)与BELL等公司一起开发的通信协议。它适合于数据传输速率在0~20000bit/s范围内通信。RS232作为一种标准,被广泛应用于计算机与外设间的一种常通信接口,其中外设应用种类繁多,如:打印机、数据采集模块、测试装置和各种控制回路,甚至RS232串行接口还可用于计算机之间的简单连接上。

2.RS232串行接口的特点

优点

(1)信号线少

  • RS-232总线规定了25条线,包含了两个信号通道,即第一通道(称为主通道)和第二通道(称为副通道)。利用RS- 232总线可以实现全双工通信,通常使用的是主通道,而副通道使用较少。在一般应用中,使用3条~9条信号线就可以实现全双工通信,采用三条信号线(接收线、发送线和信号地)能实现简单的全双工通信过程。 [1]

(2)灵活的波特率选择

  • RS-232规定的标准传送速率有50b/s、75b/s、110b/s、150b/s、300b/s、600b/s、1200b/s、2400b/s、4800b/s、9600b/s、19200b/s,可以灵活地适应不同速率的设备。对于慢速外设,可以选择较低的传送速率:反之,可以选择较高的传送速率。 [1]

(3)采用负逻辑传送

  • 规定逻辑“1”的电平为-5V~-15 V,逻辑“0”的电平为+5 V~+15 V。选用该电气标准的目的在于提高抗干扰能力,增大通信距离。RS -232的噪声容限为2V,接收器将能识别高至+3V的信号作为逻辑“0”,将低到-3 V的信号作为逻辑“1”。 [1]

(4)传送距离较远

  • 由于RS -232采用串行传送方式,并且将微机的TTL电平转换为RS-232C电平,其传送距离一般可达30 m。若采用光电隔离20 mA的电流环进行传送,其传送距离可以达到1000 m。另外,如果在RS-232总线接口再加上Modem,通过有线、无线或光纤进行传送,其传输距离可以更远。 [1]

缺点

缺点编辑 语音
(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
(2)传输速率较低,在异步传输时,波特率为20Kbps;因此在CPLD开发板中,综合程序波特率只能采用19200,也是这个原因。
(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
(4)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在15米左右。

3.RS232串行接口的电气特性

数据线Txd和Rxd上逻辑电平的下定义:>

  • 逻辑1:-3V~-15V
  • 逻辑0:+3V~+15V》
    RTS、CTS、DSR、DTR和DCD等控制线上:
  • 信号有效(ON):+3V~+15V
  • 信号无效(OFF):-3V~-15V

由于RS232的电平定义与大部分单片机系统(各种外设都基于一个单片机系统构建)使用的TTL电平标准不相符,所以以一般单片机系统与RS232之间的连接通常都加了一个这两种电平之间的转换芯片,如常用的MAX232就属于此类电平转换芯片。

二、RS232电平与TTL电平

(一)TTL电平标准

输出 L: 《0.8V ; H:》2.4V。

输入 L: 《1.2V ; H:》2.0V

TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。于是TTL电平的输入低电平的噪声容限就只有(0.8-0)/2=0.4V,高电平的噪声容限为(5-2.4)/2=1.3V。

(三)RS232标准

逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次。

(三)区别

TTL电平信号之所以被广泛使用,原因是因为:通常我们采用二进制来表示数据。而且规定,+5V等价于逻辑“1”,0V等价于逻辑“0”。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。这是计算机处理器控制的设备内部各部分之间通信的标准技术。

rs232是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries AssociaTIon,EIA)
所制定的异步传输标准接口。通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25)
的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和
COM2。RS232的电平标准为+12V为逻辑负,-12为逻辑正,TTL电平为5V为逻辑正,0为逻辑负

三、USB/TTL转232模块(以CH340芯片模块为例)的工作原理

(一)USB转串口原理

USB主机检测到USB转串口设备插入后,首先会对设备复位,然后开始USB枚举过程。USB枚举时过程会获取设备描述符、配置描述符、接口描述符等。描述符中会包含USB设备的厂商ID,设备ID和Class类别等信息。操作系统会根据该信息为设备匹配相应的USB设备驱动。
USB虚拟串口的实现在系统上依赖于USB转串口驱动,一般由厂家直接提供,也可以使用操作系统自带的CDC类串口驱动等。驱动主要分为2个功能,其一注册USB设备驱动,完成对USB设备的控制与数据通讯,其二注册串口驱动,为串口应用层提供相应的实现方法。

串口收发对应的驱动数据流向:

串口发送

  • 串口应用发送数据->USB串口驱动获取数据->驱动将数据经过USB通道发送给USB串口设备->USB串口设备接收到数据通过串口发送

串口接收

  • USB串口设备接收串口数据->将串口数据经过USB打包后上传给USB主机->USB串口驱动获取到通过USB上传的串口数据->驱动将数据保存在串口缓冲区提供给串口应用读取

(二)USB转串口芯片CH340G

1.CH340G芯片简介

其中CH340G是目前最常用的转换芯片,它不仅能在PC系统上面使用,也能使用在嵌入式linux系统里面,在linux内核版本中已有相应的驱动源码,很容易进行移植开发。
CH340G支持 5V 电源电压和 3.3V 电源电压甚至 3V 电源电压。
CH340G芯片内置了 USB 上拉电阻,D+和 D-引脚应该直接连接到 USB 总线上,USB工作在USB2.0全速模式。
CH340G 芯片内置了电源上电复位电路。CH340B 芯片还提供了低电平有效的外部复位输入引脚。
CH340G 芯片正常工作时需要外部向 XI 引脚提供 12MHz 的时钟信号。
硬件全双工串口,内置收发缓冲区,支持通讯波特率 50bps~2Mbps

2. 3.3V工作原理

LED1为单元灯,LED2在发送数据的时候灯会闪烁,LED3在接收到数据的时候会闪烁,可根据需求加上或者是删除。
CH340G_VCC为芯片的供电,可以是3.3V或者是5V,上述电路可以兼容5V电源和3.3V电源输入。电压确定的话可以去掉前面的稳压管和R1。TX/Rx的高电平与此电源相同,移植的时候需要注意。
芯片的TXD是芯片CH340G的发送,RXD是CH340G的接收,对接时需要注意信号方向。

3. 5V原理图

可以看到3.3V供电或5V供电主要区别是对V3引脚的处理不同,从数据手册可以看到:

在这里插入图片描述

四、总结

本次实验了解了串口协议和RS-232标准的原理,RS-232标准的优缺点:优点是 (1)信号线少(2)灵活的波特率选择(3)采用负逻辑传送(4)传送距离较远;不足的是(1)接口的信号电平值较高,易损坏接口电路的芯片(2)传输速率较低(3)抗噪声干扰性弱 (4)传输距离有限。了解了RS232电平与TTL电平的区别。CH340芯片USB/TTL转232的工作原理。

五、参考资料

RS-232串口通信协议
RS-232百度百科
串口通信协议百度百科
rs232电平和TTL电平的区别
USB转串口原理及应用
USB转串口芯片CH340G的使用,3.3V或5V供电电路

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

串口通信知识点总结 的相关文章

  • CSS总结div中的内容垂直居中的六种方法

    一 行高 line height 法如果要垂直居中的只有一行或几个文字 那它的制作最为简单 只要让文字的行高和容器的高度相同即可 比如 p height 30px line height 30px width 100px overflow
  • VMware vSphere中三种磁盘规格(厚置备延迟置零\厚置备置零\Thin Provision

    在VMware vSphere中 不管是以前的5 1版本 或者是现在的6 5版本 创建虚拟机时 在创建磁盘时 都会让选择磁盘的置备类型 如下图所示 分为 1 厚置备延迟置零 2 厚置备置零 3 Thin Provision 精简置备 在创建
  • unity 基本寻径

    一 实现效果 敌人追逐玩家 自动躲避障碍物 二 游戏框架 Plane 平面 是玩家和敌人可以行走的区域 Player 玩家 可以在平面上移动 绕开障碍物 Enemy 敌人 可以追逐玩家 绕开障碍物 障碍物 五个正方体 玩家在移动的过程中和敌
  • java中,在一个类中调用另一个类的属性和方法

    在java当中 在一个类中调用另一个类的情况有多种 可能是调用不同包中的类 也可能是同包不同类 如果调用不同包中的类 需要先导入该包 然后才能调用 这里主要分享一个调用同包中的不同类的属性和方法的操作 比如这里有一个Card类和一个Card

随机推荐

  • ubuntu apt update 报错Err:6 https://download.docker.com/linux/ubuntu jammy InRelease

    目录 尝试清除已存在的软件源信息并重新添加 重新配置ubunut镜像源 我这边用的是阿里云的源 阿里源配置 Ubuntu换阿里云源后更新提示 GPG error缺少公钥解决方法 尝试清除已存在的软件源信息并重新添加 Clear your p
  • oracle.数据的增删改、事务、创建表、修改表、删除表

    一 数据的增删改 1 备份表 01 全表备份 CREATE TABLE 新表名 AS 子查询 将emp表全表备份 CREATE TABLE emp bak AS SELECT FROM emp SELECT FROM emp bak 02
  • java JLabel改变大小后如何刷新_到底一行java代码是如何在计算机上执行的

    不知道你是否思考过 每次我们在IDEA中右键Run Application启动主方法 假如程序运行正常 控制台也打印出了你所要打印的信息 在这个过程中你知道这台计算机上那些硬件及其软件都是以什么样的方式参与到这个过程吗 今天我们就分析梳理下
  • Java对正则表达式的支持(手机、身份证校验)

    目录 1 数量 单个 字符匹配 2 数量 单个 字符集 可以从里面任选一个字符 3 数量 单个 简化字符集 4 边界匹配 5 数量表示 默认情况下只有添加上了数量单位才可以匹配多位字符 6 逻辑表达式 可以连接多个正则 7 理解字符 的含义
  • OpenMMLab MMDetectionV3.1.0-SAM(环境安装、模型测试、训练以及模型后处理工具)

    OpenMMLab Playground 概况 当前通用目标检测的研究方向正在朝着大型多模态模型发展 除了图像输入之外 最近的研究成果还结合了文本模式来提高性能 添加文本模态后 通用检测算法的一些非常好的属性开始出现 例如 可以利用大量易于
  • UE4 自定义鼠标样式

    主要内容 在项目制作中我们往往不会使用默认的鼠标样式 这时就需要自定义鼠标样式 具体实现步骤就是创建一个带有图片的UI蓝图然后在项目设置里的UserInterface里进行设置 实现步骤 1 新建UI蓝图 添加一个Image控件把锚点设置成
  • 电容降压主要是用在直流稳压电源电路里

    https www cnblogs com jarvise p 4647029 html 基本原理 电容降压主要是用在直流稳压电源电路里 直流稳压电源电路的大致结构是 市电 变压 降压 整流 滤波 稳压 直流输出 变压 主要是降压 一般使用
  • 非线性微分跟踪器

    微分器描述 离散形式的非线性微分跟踪为 其中 h为采样周期 v k 为第k时刻的输入信号 为决定跟踪快慢的系数 fst 为最速控制综合函数 描述如下 仿真分析 微分器测试 输入信号v t sin2pit 采样周期h 0 001 150 扰动
  • 高性能本地存储设计

    本地存储常规架构 通用的云本地存储常规架构如下图所示 以MySQL数据库为例 它通过POSIX API与云主机内核交互 云主机内核包括一个标准文件系统和标准的块设备接口 云主机内核下面是云物理机内核 它自上而下由标准文件系统 标准块设备接口
  • STL之list(二)

    默认allocator为alloc 其具体使用版本请参照
  • HTML画布与SVG(Canvas vs. SVG)

    目录 画布 Canvas 什么是 Canvas 创建 Canvas 元素 通过 JavaScript 来绘制 理解坐标 更多 Canvas 实例 实例 线条 实例 圆形 实例 渐变 实例 图像 相关页面 SVG Scalable Vecto
  • 信号量的基本概念总结

    以下内容是摘抄博客 https blog csdn net fern girl article details 61197995 信号量的基本概念 一 首先 我们要知道信号量是什么 信号量的本质是数据操作锁 它本身不具有数据交换的功能 而是
  • FileSystemObject组件新建/读取/添加/修改/删除功能实例

  • MAC快捷键对照表

    Mac 键盘符号说明 Command Shift Caps Lock Option Control Return Enter Delete 向前删除键 Fn Delete 上箭头 下箭头 左箭头 右箭头 Page Up Fn Page Do
  • matlab kl散度,基于KL散度的面向对象遥感变化检测

    3 2 实验过程与结果 3 2 1 面向对象的遥感影像分割 利用ENVI软件的Segment Only Feature Extraction功能模块对实验数据进行面向对象分割操作 该方法采用的是Full Lambda Schedule分割算
  • 多益2018春招前端技术面试

    2018春招 多益网络内推 前端开发工程师 技术面问题 据我了解 从一月到三月份年 多益一共启动了至少三批春招招聘 从同学的反馈来看 一月份考验刚结束的那批春招通过率比较高 至于我个人 参加的是三月份上中旬的春招内推 可惜并没有通过 总体上
  • 虚拟机克隆后无法连接网络

    本文章转载自 Linux 无线图标莫名消失的解决方法 xin1889的博客 CSDN博客 今天我的也是的觉得再弄个虚拟机麻烦 索性就直接克隆了 然后连不上网 就连接原来的可以 连接百度也可以 但是唯独ping自己不行 然后不知道怎么回事 同
  • 智能指针和函数模板

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
  • c++学习笔记-#pragma once

    pragma 预处理宏的一般格式 pragma one one是参数 1 pragma message message 当编译器遇到这条指令时 它会在编译输出窗口中将message打印出来 常用于宏条件条件判断中使用 这样就知道自己的宏条件
  • 串口通信知识点总结

    串口通信小试牛刀 一 串口协议和RS 232标准 一 串口通讯协议 1 简介 2 串口通信的基本原理 二 RS232串口标准 1 简介 2 RS232串行接口的特点 3 RS232串行接口的电气特性 二 RS232电平与TTL电平 一 TT