PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 124|回复: 0

串行通信的四大规则(Rules),你知道吗?

[复制链接]
发表于 2024-6-9 13:01:26 | 显示全部楼层 |阅读模式
>

公众号设为星标

,精彩不再错过


关于串行通信,我们已经介绍了:


1. 串行通信的基本概述(定义、种类及数据形式等):
串行通信不就是RS232、RS422和RS485?还有...
2.串行通信和并行通信的对比:
串行通信 vs. 并行通信
3.异步还是同步:
RS232是同步通信还是异步通信?

我们这期主要讨论串行通信的四大规则,怎么保证数据的准确性。



四大规则


我们上期讨论RS232是同步串行通信还是异步串行通信?这一问题,投票的结果是:

按照,上述投票的结果,还有将近一半的朋友并没有完全理解RS232串行标准的数据工作机制或者同步和异步的概念。

通信最重要的数据传输的正确性和稳定性,那在异步通信中,主要依赖下面四大方面(四大规则):

  1. 波特率Baud rate control

  2. 数据帧Data flow control

  3. 同步位(起始位、停止位)Transmission and reception control

  4. 错误控制(奇偶校验位)Error control.

波特率


我们在进行串口通信的软件设置时,经常有个参数需要进行设置:波特率,通常设为9600。


那这个参数具体的含义是什么呢?我们之前已经介绍过串行通信是数据一个位(bit)一个位地次传输,每一位数据占据一个固定的时间长度。那么波特率就是单位时间内,传输位的个数,即表述传输数据的快慢。


波特率的单位bps,是bits-per-second(位每秒)的缩写。好了,了解波特率的概念后,小测试下:


波特率设置为9600,那么发送一个bit数据的时间是多少ms?留言区给出您的答案吧。


波特率可以是合理范围内的任何值。唯一的要求是两个设备以相同的速率运行。一种普遍常见的波特率是9600 bps,尤其是对于速度不重要的简单场合。其他“标准”波特为1200、2400、4800、19200、38400、57600和115200。


串行数据帧


串行通信,通常传输的每个数据块(通常是一个字节byte)实际上都是以一个比特包或一帧的形式发送的。帧是通过将同步和奇偶校验位附加到我们的数据上来创建的。


例如,以串行通信方式发送ASCII码“S”,用一个byte8个位来传输,即01010011



起始位、停止位


同步比特(synchronization bits)是与每个数据块一起传输的两个或三个特殊比特。它们是起始位和终止位。与它们的名字一样,这些位标记着数据包的开始和结束。总是只有一个起始位,但停止位的数量可以配置为一个或两个(尽管通常为一个)。


起始位总是由从1到0的空闲数据线指示,而停止位将通过数据线保持在1而转变回0的空闲状态。



错误校验


数据损坏可能由于接收器端的外部噪声而发生。获得稳定输出的简单易行的解决方案是检查奇偶校验位。 


对于“奇校验”,如果字符中“1”的个数是偶数,则校验位应为“1”,如果字符中“1”的个数是奇数,则校验位应为“0”;对于“偶校验”,如果字符中“1”的个数是偶数,则校验位应为“0”,反之,则校验位应为“1”。


例如上述的例子:二进制数据10011011,数据位有(1+0+0+1+1+0+1+1=5)5个1,对于奇校验码,校验位即为0;对于偶校验码,校验位即为1。当然,有些通信场合,也可以选择无奇偶校验。



参考链接:


  1. https://www.bilibili.com/video/BV1m84y1T7kd/?vd_source=c95303688cee0f44143291f045560cc0

  2. https://www.serial-port-monitor.org/articles/serial-communication/#basic

  3. https://www.codrey.com/embedded-systems/serial-communication-basics/#1_What_is_Baud_rate




  • 【视频课程】Codesys V3.5系列入门课程(121人已学习)
  • 【视频课程】Codesys SoftMotion软运动控制基础课程(36人已学习)
  • 【视频课程】Codesys SoftMotion电子齿轮课程(11人已学习)
  • 【视频课程】Codesys SoftMotion电子凸轮CAM课程(9人已学习)
  • 【视频课程】Codesys Library自定义库的制作(21人已学习)
  •  Codesys V3.5系列最全免费公开资料汇总

  • 十大常用滤波算法(ST语言)

  • 集成Chat GPT的PLC长啥样?

  • 2023年度TOP 10的PLC编程书籍分享

  • 定制专属您的CODESYS运动控制器

  • MC_Power.status = FALSE,轴也可以运动?

  • ST语言学习资料汇总


--------END--------


喜欢本文请在下方分享及“点赞”和“在看”


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-9-8 09:03 , Processed in 0.048986 second(s), 25 queries .

快速回复 返回顶部 返回列表