422接收数据00_串口通信232/485/422 详细解析

16 篇文章 1 订阅
订阅专栏

1. 什么是串口通信?

2371ff7d6dd4280c49a2443036b79a88.png

        常见的串口通信一般是指异步串行通信。这里就要说一下同步和异步的区别了。

 

(1)先讲一下串行通信的概念。那么,与串行通信相对的是什么呢?

        与串行通信相对的是并行通信。并行数据传输一般都是以字节传输的,一个字节8个位。拿一个并行通信举例来说,也就是会有8根线,每一根线代表一个位。一次并行数据传输就可以传一个字节byte。

        而串口通信,就是传数据只有一根线传输,一次只能传一个位,要传一个字节就需要传8次。

d6e3fc04177694d922af3cd850aa3e82.png

 

        在很多设备上,不方便接太多线,比如接8根数据线,也不方便接同步时钟信号(这个后面再说),于是一种异步串行通信就诞生了。

        相对来说,异步串口通信,就只需要一根线就可以发送数据了。在对速率要求不高的情况,使用一根线发送数据是带来大大的方便和实用价值的。

        那么问题来了,怎么样才能保证一根线就能发送正常的数据呢。也就说发送方发送的数据,接收方是怎么知道是什么数据呢。

        为了能正常发送数据和接收正确的数据,那异步串口通信就需要满足以下几个条件:

0613979d03fb59b076176d0960a80250.png

        也就是双方必要约定一种暗号,也许当时发送这个通信的小组是这样讨论的。

  • 经理:我要用一根线就能传输数据,你来给我定个标准。
  • 研发:好。
  • 经理:只有一根线,我怎么知道数据什么时候开始呢。
  • 研发:就一根线,默认是高电平,那就有一个起始位吧。当检测到有低电平的时候,就是开始有一个字节的数据发送了,起始位之后,先是字节的最低位,传送一个字节。
  • 经理:可是,就一根线,过来的数据会不会有干扰,容易出错呀。
  • 研发:行呀,那就在字节数据(8位)后再加一个校验位。可以做奇校验,偶校验,1校验,0校验,无校验。
  • 经理:嗯 ,很不错。有起始位就应该有停止位,那我们就再加个停止位在后面吧。
  • 研发:......
  • 经理:传输一串数据,对方要怎么知道数据的拆分呢,怎么按时间或频率去解读数据位,校验位呢。
  • 研发:这样吧,双方约定一个波特率吧,定义一个每个位占用多长的时间,这样双方按这个波特率就可以处理了。
  • 经理:这个比特率呀
  • 研发:老板,是波特率。
  • 经理:我知道,是比特率嘛。
  • 研发:这个波特率呢,是指1S钟可以传输多个位,也就知道一个位占用多长时间。这样就解决传输的问题了。
  • 经理:那万一传输过程,数据太快,判断失误停不下来怎么办。
  • 研发:那就把停止位可以调节为1个停止位或者2个停止位。这样就可以停下来了。
  • 经理:嗯,听着不错。就这样办吧。

于是,串口通信就这样出来了。

        在串口的通信参数上,就有了波特率、数据位、停止位、校验位这几个参数来确保串口通信的正确性和稳定上。当然,这只是某个方面保证串口通信的正确性和稳定性,不代表设备间通信的正确性和稳定性。

2. 串口通信主要为分232,485,422 通信三种方式

说一下这三种通信方式的区别:

(1)232:

a8c41ba8c1cc6ebd2caca36f03347362.png        

        232 通信主要是由RX,TX,GND三根线组成。RX接TX,TX接RX,GND接GND。这样还是比较好理解吧。因为发送和接收分别是由不同的线处理的,也就是能同时发送数据和接收数据,这就是所谓的全双工。

        在这里扩展一下,串口通信还有一个功能叫做全功能串口通信,也叫标准串口。因为在两个设备间进行数据传输,有些设备处理速度比较快,有些数据比较慢。

        为了保证数据能正常传输,在RX,TX的基础上,还增加了几个控制引脚,本来好端端就R,T,G,三根线,凑着就凑齐了9个引脚,召唤出了DB9这个东西。

34b580e879ef0ea19fdc2fe09d81d82f.png

(2)485:

        485是为了解决232通信距离的问题。原理什么之类的就不多讲了。反正232通信距离就是不长。485主要是以一种差分信号进行传输,只需要两根线,+,-两根线,或者也叫A,B两根线。A,B两根线的差分电平信号就是作为数据信号传输。

        那么问题来了,那是不是就没有RX和TX的概念了。是的,发送和接收就不能分开了。发送和接收都是靠这两根的来传输,也就是每次只能作发送或者只能作接收,这就是半双工的概念了,这在效率上就比232弱很多了。

32c11f0625bd707e2f61126a07ae1d29.png        

        就像对讲机一样,经常是某个人讲完之后,都要说一个over,确保当前说完了,等待对方回复。

        485就是这样牺牲了232全双工的效率来达到自己传输距离远的代价。那有没有即保留了232的全双工,又可以像485这样提高传输距离呢,于是,422出来了。

(3)422:

        422呢,有些标注为485-4;而485就标注为485-2。有什么区别呢?就是为了好记呢。485-2就是2根线,485-4就是4根线。

        422就是把232的RX分成两根线,RX+,RX-,把TX分成TX+,TX-。这样就可以同时发送和同时接收了,还可以像485这样,有较远的传输距离。

c6600641cb8a79043fccf9a75e77507a.png

3. 波特率(baud rate)和比特率(bit rate)

        理解了串口中这些既熟悉又陌生的术语之后,我们再来看看波特率(baud rate)。

        说实话,在数据通信中,比特率(bit rate)比较容易理解,就是一定时间内,能够传输多少个bit。例如bps,就是bit per second的缩写。那什么是波特率呢?

        在通信中,波特率也称作符号速率(symbol rate),指的的是“数据变化”的速率。说着很拗口,我们举个例子:

        在计算机系里,小杨和小李是一对好基友,不过小杨是学霸、小李是学渣。所以,期末考试到了,小杨决定“鼎力相助”。怎么办呢?

        二人约定,考试时,小杨携带黑色和白色两支笔,根据两支笔出现的情况,表示A、B、C、D四种答案,即:

  • 白色的笔没有出现 黑色的笔没有出现 A
  • 白色的笔没有出现 黑色的笔出现 B
  • 白色的笔出现 黑色的笔没有出现 C
  • 白色的笔出现 黑色的笔出现 D

        同时约定,在考试开始1小时之后,小杨从第1道选择题开始,以每分钟更换一次的速度,更换答案。小李按照这个速度,以及大家的约定,通过观察两支笔出现的情况,获得答案。

        确实是个好方法,不过仔细想想,这其实是一个典型的异步通信过程。通信的过程中,答案更新的速度(每分钟1次),就是我们所说的baud rate(或者symbol rate),即1 bd per minute(可以把bd看着baud的单位)。

        与此同时,每次更新,传递了多少信息呢?表面上看是A、B、C、D,本质上是由白和黑所代表的两个bit,00、01、10或者11。因此,每次更新传递2个bit的信息,所以bit rate就是2 bits per minute。

上面的例子中,通信的波特率和比特率是不同的,分别为1和2(per minute),而有些通信系统,例如我们所熟知的串口通信,它们却是一样的,例如我们说115200的波特率,实际上的比特率也是115200。因为一次只传输1个bit(0或者1)。

原文链接:https://blog.csdn.net/weixin_31582099/article/details/112141637

写文章

热门文章

  • 在本地shell脚本中ssh到远程服务器并执行命令 117504
  • Ubuntu 16.04安装docker详细步骤 99580
  • vs code中项目的基本配置--include路径、运行参数、debug配置 44406
  • 微信小程序开发入门(一) 38664
  • linux设置开机启动脚本的3种方法 38406

分类专栏

  • 文件系统 84篇
  • 音视频 20篇
  • 内核 18篇
  • 网络 8篇
  • 数据结构 22篇
  • 数据处理 16篇
  • 无人系统应用 3篇
  • 量化交易 2篇
  • 数据融合 20篇
  • 配置管理 1篇
  • 笔记 3篇
  • BiscuitOS 1篇
  • 计算机 6篇
  • 场景 1篇
  • 物理
  • ROS课程讲义 7篇
  • 小白动手学机器学习--Python版100-Days-Of-ML-Code(python)
  • linux 340篇
  • ROS 59篇
  • java 10篇
  • C语言 144篇
  • ElasticSearch开发 4篇
  • 安卓开发 1篇
  • Python 8篇
  • 数学 21篇
  • 数据库 32篇
  • 其他 18篇
  • AI 28篇
  • 社区发现 9篇
  • 观点 2篇

最新评论

  • 编译出错,出现 vfs_read[******.ko] undefined !

    何以忘言: 这个也不行,user是编不过的,需要谷歌认证

  • 计算机那些事(5)——多个目标文件的链接、静态链接、动态链接

    谬天: 看的书都是一样的

  • linux对已经存在的文件中间修改或者删掉几个字节后磁盘上数据的变化情况

    u011039780: write应该实现不了在文件中间截断,只能将文件后方内容复制到前边覆盖,在再最后将尾巴截断

  • linux对已经存在的文件中间修改或者删掉几个字节后磁盘上数据的变化情况

    u011039780: 文章质量不错,但是只能证明是sed创建了副本

  • C++中控制函数调用超时

    liushi_80_81: 使用c++ 11标准库 如何保证std::condition_variable::notify_one()在std::condition_variable::wait_for()之后执行?

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • B样条曲线-核心思想和简要概述
  • sudo 授权问题
  • Linux下ARM64内核空间分布及页表查询
2024年2篇
2023年28篇
2022年85篇
2021年196篇
2020年189篇
2019年91篇
2018年54篇
2011年1篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源罗姓起名男孩名字大全家纺公司起名字大全集汇力发蛋糕起名字比较有意义的字寓意好的成语起名大全起名字女生如何起一个适合自己的笔名查询起名字测试打分周易起名网免费取名测分449欧元酒起名字大全烈火情人下载读书报告的范文鄂州新闻五月女儿起名孔孟家谱公司启起名电视剧真相描写春天的四字词语解析式创业名称怎么起2021年起名排行榜老婆婚令如山8080端口明星起名护肤品的店起名起名禁用儒字肖起名字女孩win7升级win10起早贪黑励志名言淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化