通讯协议学习之路:有线通讯协议总览

news2024/11/18 23:29:35

通讯协议之路主要分为两部分,第一部分从理论上面讲解各类协议的通讯原理以及通讯格式,第二部分从具体运用上讲解各类通讯协议的具体应用方法。

后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374)

一、概述

通信协议是两个(或多个)设备之间进行通信,必须要遵循的一种协议。通讯协议分为物理层和协议层。

物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输;

协议层:规定通讯逻辑,统一收发双方的数据打包、解包标准。

1、通信方式的分类

通信方式是指通信双方之间的工作方式或信号传输方式。

终端与其他设备(例如其他终端、计算机和外部设备)通过数据传输进行通信,根据数据的传输方式,有串行通信和并行通信。

串行通信又称为点对点通信,对于点对点之间的通信,

根据数据的同步方式,又分为异步传送和同步传送两种方式。

根据数据的传输方向与时间关系,又可分为单工通信、半双工通信及全双工通信三种方式。

二、数据通信方式

数据通信的基本方式可以分为串行通信与并行通信两种。

  • 串行通信:
    • 定义:串行通信是指利用一条传输线将数据一位位地顺序传送。
    • 传输方式:传输一个字节(8个位)的数据时,串口是将8个位排好队,逐个地在1条连接线上传输。
    • 特点:通信线路简单,利用电话或电报线就可以实现通信,降低成本,适用于远距离通信,但传输速度慢。
  • 并行通信:
    • 定义:并行通信是指利用多条传输线将一个数据的各位同时传送。
    • 传输方式:传输一个字节(8个位)的数据时,并口是将8个位一字排开,分别在8条连接线上同时传输。
    • 特点:传输速度块,适用于短距离通信。

串行通信

同步通信和异步通信

根据通讯的数据同步方式,又分为同步和异步两种。可以根据通讯过程中是否有使用到时钟信号进行简单的区分。

异步通信:

在异步通讯中,不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些同步用的信号位,或者把主体数据进行打包,以数据帧的格式传输数据。例如规定由起始位、数据位、奇偶校验位、停止位等。

某些通讯中还需要双方约定数据的传输速率,以便更好地同步 。波特率(bps)是衡量数据传送速率的指标。

同步通信:

在同步通讯中,收发设备双方会使用一根信号线表示时钟信号,在时钟信号的驱动下双方进行协调,同步数据。通讯中通常双方会统一规定在时钟信号的上升沿或下降沿对数据线进行采样。

单工、半双工和双工

串行通信又称为点对点通信,对于点对点之间的通信,根据数据的传输方向与时间关系,又可分为单工通信、半双工通信及全双工通信三种方式。

单工方式:

只允许数据按照一个固定的方向传送,在任何时刻都只能进行一个方向的通信,一个设备固定为发送设备,一个设备固定为接收设备。

半双工方式:

两个设备之间可以收发数据,但是不能在同一时刻进行,每次只能有一个设备发送,另一个站接收。

全双工方式:

在同一时刻,两个设备之间可以同时进行发送和接收数据。

并行通信

并行是指多比特数据同时通过并行线进行传送,数据的各个位同时传送,可以字或字节为单位并行进行,这样数据传送速度大大提高,通信速度快,但并行传送用的通信线多、成本高,线路长度受到限制,故不宜进行远距离通信。并且长度增加,干扰也会增加,数据也就容易出错。计算机或PLC各种内部总线就是以并行方式传送数据的。

三、具体通讯协议

UART

通用异步收发传输器。

USART

通用同步/异步串行接收/发送器。USART可以理解为UART和USRT二合一的通信接口,一个是同步通信,一个是异步通信。

IIC

集成电路总线,是一种串行通信总线。

SPI

串行外设接口,是一种高速的,全双工,同步的通信总线。

QSPI

是SPI接口的扩展,比SPI应用更加广泛。QSPI是在SPI协议的基础上,对其增加了队列传输机制,传输过程不需要CPU干预,极大的提高了传输效率。

RS-232

全双工点对点式的异步串行通信协议接口。

RS-485

串行通信总线,采用两线制,差分传输,半双工模式。

RS-422

采用四线制,全双工,差分传输,多点通信的数据传输协议。

USB

通用串行总线 。USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术。

CAN

控制器局域网络。 CAN 总线是一种应用广泛的现场总线 ,在工业测控和工业自动化等领域有很大的应用前景。

IRDA

是一种利用红外线进行通信的,点对点通信的技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1105891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ELK使用指南 2】常用的 Logstash filter 插件详解(附应用实例)

Logstash filter 一、logstash filter过滤插件的常用模块简介二、grok 正则捕获插件2.1 grok插件的作用2.2 内置正则表达式2.3 自定义正则表达式 三、mutate 数据修改插件3.1 mutate插件的作用3.2 常用的配置选项3.3 mutate插件应用实例 四、multiline 多行合并插件4.1 multili…

哈希表(拉链法)代码模板

这里也是用数组模拟链表 //拉链法 //模拟散列表 在算法题中一般只有添加和查询不会有删除 //如果真的要删除也不是真正的删除而是打上一个标记 //mod的这个数最好取大于数据范围的第一个质数 #include<iostream> #include<cstring> using namespace std; const in…

“1688商品评论接口:打造完美电商口碑的秘密武器!“

1688商品评论接口是一种供卖家使用的接口&#xff0c;可以让卖家通过该接口维护商品的评论信息&#xff0c;包括评论内容、评分、评论时间等等。 通过使用该接口&#xff0c;卖家可以方便地管理商品的评论信息&#xff0c;包括查看、修改、删除评论等操作。同时&#xff0c;该…

屏幕截图软件Snagit 2023 mac中文特点介绍

Snagit 2023 mac是一款屏幕截图和视频录制软件&#xff0c;它可以帮助用户快速捕捉屏幕上的任何内容&#xff0c;并将其编辑、标注和共享。 Snagit 2023 软件特点 多种截图模式&#xff1a;支持全屏截图、窗口截图、区域截图、延时截图等多种截图模式&#xff0c;满足不同用户…

二蛋赠书五期:《Python数据挖掘:入门、进阶与实用案例分析》

前言 大家好&#xff01;我是二蛋&#xff0c;一个热爱技术、乐于分享的工程师。在过去的几年里&#xff0c;我一直通过各种渠道与大家分享技术知识和经验。我深知&#xff0c;每一位技术人员都对自己的技能提升和职业发展有着热切的期待。因此&#xff0c;我非常感激大家一直…

vue使用pdf-dist实现pdf预览以及水印

vue使用pdf-dist实现pdf预览以及水印 一.使用pdf-dist插件将PDF文件转换为一张张canvas图片 npm install pdf-dist二.页面引入插件 const pdfJS require("pdfjs-dist"); pdfJS.GlobalWorkerOptions.workerSrc require("pdfjs-dist/build/pdf.worker.entry&…

JavaScript中多种获取数组最后一个元素的策略。

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 &…

ESD监控系统-设备接地报警器的应用领域和说明

ESD监控系统是一种用于检测和监控静电放电&#xff08;ESD&#xff09;的设备&#xff0c;其中设备接地监控报警器是其重要组成部分之一。该设备主要用于检测设备的接地情况&#xff0c;当设备没有接地或者接地不良时&#xff0c;会发出报警信号&#xff0c;提醒操作人员及时采…

idea控制台乱码

如果打包时&#xff0c;控制台出现错误乱码的解决办法 而修改此后&#xff0c;运行程序有可能报错&#xff0c;则需要添加vm参数即可&#xff1a;

每日一题 2530. 执行 K 次操作后的最大分数(中等,最大根堆)

显然每次需要取出最大的元素&#xff0c;用过后将他除以三重新加入数组中&#xff0c;所以只要维护一个最大根堆即可 class Solution:def maxKelements(self, nums: List[int], k: int) -> int:nums [-i for i in nums]heapq.heapify(nums)ans 0for i in range(k):ans -…

Himmelblau函数-优化问题的经典案例

Himmelblau函数-优化问题的经典案例 前言 Himmelblau函数是一种常见的多元函数&#xff0c;它的形式为f(x,y)(x^2y-11)^2(xy^2-7)^2。这个函数的名字来源于其发明者David Himmelblau&#xff0c;它在数学和工程领域中都有广泛的应用。 一、Himmelblau函数是什么&#xff1f; …

Fast DDS介绍

目录 架构 Fast DDS是一个DCPS(data-centric)数据中心的发布-订阅模型中间件&#xff0c;主要关注应用程序中处理和发送数据。 架构 一个DomainParticipant启动的线程 NameTypeCardinalityDescriptionEventGeneral每个DomainParticipant一个处理周期性事件和触发的时间事件Dis…

Tomcat配置文件

Tomcat 是一个开源的 web 应用服务器 区别nginx NGINX主要处理静态页面 那么动态请求&#xff08;连接数据库 动态页面&#xff09; 并不是NGINXde 长项 动态的请求会交给tomcat 进行处理 Tomcat : 1 处理动态页面请求&#xff08;http的请求&#xff09; 2 处理后端…

vue集成钉钉单点登录

初始环境判断 判断是否是来自钉钉环境的访问&#xff0c;返回&#xff1a;boolean类型值 window.navigator.userAgent.includes("DingTalk")前端引入vue中钉钉相关的依赖&#xff0c;并获取钉钉的临时授权码 import * as dingtalk from dingtalk-jsapi; let that …

某翻译网站webpack 全扣js逆向法

持续创作文章&#xff0c;只是为了更好的思考 如下内容&#xff0c;如果有写的不清楚&#xff0c;不对的地方&#xff0c;也请大家提醒我一下&#xff0c;谢谢&#xff01; 本次的目标是某道翻译网站&#xff0c;相信各位爷应该明白&#xff0c;这次逆向的整体做法还是把webpac…

Element UI打开表单自动验证问题的解决

最近深陷Element表单验证的坑&#xff0c;被一个问题困扰了好几天&#xff1a;页面一打开什么都没做表单就自动验证。在排除页面未触发了validate方法的情况下&#xff0c;需要观察下rules值是否发生了变化&#xff0c;如果rules值发生了变化&#xff0c;需要在<el-form>…

单片机学习一定要先买开发板么?

今日话题&#xff0c;单片机学习一定要先买开发板么&#xff1f;不一定要先买&#xff0c;但如果想要深入学习&#xff0c;在对单片机有了一定的了解之后&#xff0c;还是建议买。如果是单纯为了入门学习单片机&#xff0c;完全可以用仿真软件。不过&#xff0c;如果想要用单片…

木与空间的舞蹈:奥地利住宅的独特设计

国外著名设计师&#xff0c;为一位业主设计了一座住宅&#xff0c;附带有附属建筑和有盖的入口&#xff0c;形成了像庭院一样的建筑群。 这座住宅采用了当地的传统建筑风格&#xff0c;有长方形的平面和陡峭的顶棚&#xff0c;与周围的房屋相符。然而&#xff0c;内部设计别具一…

【ChatGLM2-6B】在只有CPU的Linux服务器上进行部署

简介 ChatGLM2-6B 是清华大学开源的一款支持中英双语的对话语言模型。经过了 1.4T 中英标识符的预训练与人类偏好对齐训练&#xff0c;具有62 亿参数的 ChatGLM2-6B 已经能生成相当符合人类偏好的回答。结合模型量化技术&#xff0c;用户可以在消费级的显卡上进行本地部署&…

PhotoShop字体加粗,PhotoShop字体添加边框,PhotoShop设置文字背景为图片

字体加粗 创建文字&#xff1a; 选中文字 &#xff08;用鼠标点一下&#xff09; 然后 转换为智能对象 输入合适的数值即可加粗字体 字体添加外边框 点击字体&#xff0c;点击右下角的fx 咋fx中选择描边 设置文字背景为图片 将文字放到刚刚图片所在的位置即可 。…