协议到底是什么?

一、为什么需要协议呢?

        我们都知道在计算机的世界里只有0和1,那么计算机是怎么从一堆1、0组成的数据中识别出特定的内容的呢?这就需要使用到协议。协议是指两台或者多台设备之间进行通信所必须共同遵守的规定或规则,可以形象的理解为规定了数据包的断句位置和每一个位数据的具体意义。
        例如,从机发送了一个数据包是“00100110101”,在没有协议约定的时候我们根本无法知道其中的意思,只有约定好了协议,双方都知道了断句位置以及每一位代表的是什么才能知道这其中的意义。

二、协议分类

        协议可以分为硬件层协议和软件层协议,硬件层协议主要用来进行高低电平的传输,而软件层协议主要用来实现对数据进行约定,来表明一串由01组成的字符串是什么意思。

(1)硬件层协议

        在硬件层协议中,又分为板级通信协议和现场通信协议,硬件层协议决定了数据传输中的0、1该怎样的方式传输,需要用几个信号线进行连接,是同步通信还是异步通信,是全双工、半双工还是单工。

        板级通信:就是应用在PCB板上的的通信协议,主要是指SPI、IIC、UART这一类。电气标准0就是指低电平1就是指高电平。例如TTL电平

         现场协议:主要是应用在工业控制现场,由于使用环境变得复杂,各种干扰会出现并对通信造成影响,所以这类通信协议一般采用差分信号或者提高高低电压范围的方式来提高抗干扰能力,不同协议有不同的电压信号代表逻辑值0和1。例如RS232,RS485,RS422等

(2)软件层协议

        软件层协议最主要的作用就是决定数据怎么传,给数据包做好断句和数据位的定义,使得通信双方能够根据这个协议的定义去解析出数据包中的数据,从而达到通信的方式。

        常见的软件层协议有很多,比如uart,spi,iic,can,modbud,tcp/ip等等

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

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

相关文章

Signal EM的流程与分析

RedhawkTM 提供了一种在设计中分析Power EM和SignalEM的单一平台方法。Power EM通常作为Static IR和Dynamic IR分析的组成部分进行。Signal EM分析是单独进行分析的,检查设计中所有信号线和过孔的平均(单向或双向)、RMS和峰值电流密度【1】。 1 SignalEM 流程介绍 如图7…

ArrayList集合的两个实例应用,有趣的洗牌算法与杨辉三角

本节课的内容,就让我们来学习一下ArrayList集合的应用,ArrayList的本质就是一个顺序表,那下面一起来学习吧 目录 一、杨辉三角 1.题目详情及链接 2.剖析题目 3.思路及代码 二、洗牌算法 1.创造牌对象 2.创造一副牌 3.洗牌操作 4.发…

人工智能(pytorch)搭建模型22-基于pytorch搭建SimpleBaseline(人体关键点检测)模型,并详细介绍该网络模型与代码实现

大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型22-基于pytorch搭建SimpleBaseline(人体关键点检测)模型,并详细介绍该网络模型与代码实现。本文将介绍关于SimpleBaseline模型的原理,以及利用pytorch框架搭建模型…

lwIP 细节之三:errf 回调函数是何时调用的

使用 lwIP 协议栈进行 TCP 裸机编程,其本质就是编写协议栈指定的各种回调函数。将你的应用逻辑封装成函数,注册到协议栈,在适当的时候,由协议栈自动调用,所以称为回调。 注:除非特别说明,以下内…

大模型应用_chuanhu川虎

https://github.com/GaiZhenbiao/ChuanhuChatGPT 1 功能 整体功能,想解决什么问题 官网说明:为ChatGPT等多种LLM提供了一个轻快好用的Web图形界面和众多附加功能 当前解决了什么问题,哪些问题解决不了 支持多种大模型(也可接入本…

颠倒二进制位(力扣

uint32_t reverseBits(uint32_t n) {int i0,nums[32]{0};while(n){nums[i]n%2;n/2;}i0;while(i<32&&!nums[i])i;while(i<32)nn*2nums[i];return n; }

【华为OD】依据用户输入的单词前缀,从已输入的英文语句中联想出用户想输入的单词,按字典序输出联想到的单词序列

题目描述主管期望你来实现英文输入法单词联想功能需求如下:依据用户输入的单词前缀,从已输入的英文语句中联想出用户想输入的单词,按字典序输出联想到的单词序列,如果联想不到,请输出用户输入的单词前缀注意1.英文单词联想时,区分大小写2.缩略形式如"dont",判定…

Matlab程序设计

成绩设计 输入一个成绩&#xff0c;判定等级90-100优秀&#xff0c;80-89良好&#xff0c;70-79中等&#xff0c;60-69及格。低于60不合格。 ainput("请输入成绩&#xff1a;") if a>90&a<100disp(优秀) elseif a>80&a<89disp(良好) elseif a&…

Pytorch学习概述

目录 学习目标人工智能1. 智能&#xff08;Intelligence&#xff09;1.1 人类智能1.2 机器学习&#xff08;人工智能&#xff09;1.3 深度学习1.4 学习系统的发展历程传统的机器学习策略 2. 传统机器学习算法的一些挑战3. 神经网络的简要历史3.1 Back Propagation&#xff08;反…

公司怎么防止办公文件数据\资料外泄?

PC访问地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 公司可以采取以下措施来防止办公文件数据和资料外泄&#xff1a; 文件加密&#xff1a;对文件进行加密是一种常见的数据安全保护手段。加密后的文件只能在单位内部电脑上…

C++基础与细节理解

前言 本博客旨在记录C学习过程中的一些细节知识理解&#xff0c;由于问题的产生并非成体系&#xff0c;所以前期的记录可能会无序一些。烦请读者参阅目录进行快速的问题定位与跳转 C基础与细节理解 前言正文部分C基础&#xff1a;为什么new的时候要使用指针接收&#xff1f;C基…

如何开发嵌入式中断控制系统?

目录 1、中断向量表 2、NVIC&#xff08;内嵌向量中断控制器&#xff09; 3、中断使能 4、中断服务函数 在嵌入式开发过程中&#xff0c;中断处理是一个不可或缺的环节。本篇博文将以STM32微控制器为核心案例&#xff0c;深入解析中断处理在MCU开发中的关键步骤和策略。主要有以…

Java - CAP定理

CAP 定理指的是在一个分布式系统中&#xff0c;一致性 Consistency 、可用性 Availability 、分区容 错性 Partition tolerance &#xff0c;三者不可兼得。  一致性&#xff08; C &#xff09;&#xff1a;分布式系统中多个主机之间是否能够保持数据一致的特性。即&…

HttpSessionListener监听器和HttpSessionAttributeListener监听器

1.作用&#xff1a;监听Session创建或销毁&#xff0c;即生命周期监听 2.相关方法&#xff1a; //void sessionCreated(HttpSessionEvent se):创建session时调用 //void sessionDestroyed(HttpSessionEvent se):销毁sessio时调用 3.使用场景&#xff1a; 和前面的ServletCo…

mysql自动安装脚本(快速部署mysql)

mysql_install - 适用于生产环境单实例快速部署 MySQL8.0 自动安装脚本 mysql8_install.sh&#xff08;执行前修改一下脚本里的配置参数&#xff0c;改成你自己的&#xff09;&#xff08;博客末尾&#xff09; my_test.cnf&#xff08;博客末尾&#xff09;&#xff08;这个…

C语言预读取技术 __builtin_prefetch

__builtin_prefetch 是一个编译器内置函数&#xff0c;用于在编译时向编译器发出指令&#xff0c;要求在执行期间预取内存数据。它通常用于提高程序的性能&#xff0c;特别是对于那些需要频繁访问内存的情况。 __builtin_prefetch 函数的语法如下&#xff1a;c __builtin_prefe…

力扣24 两两交换链表中的节点 Java版本

文章目录 题目解题方法Code 题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;hea…

【五】Python 代理模式

文章目录 5.1 代理模式概述5.1.1 代理介绍5.1.2 代理模式的作用 5.2 代理模式的UML类图5.3 了解不同类型的代理5.3.1虚拟代理5.3.2 远程代理5.3.3 保护代理5.3.4 智能代理 5.4 现实世界中的代理模式5.5 代理模式的优点5.6 门面模式和代理模式之间的比较 5.1 代理模式概述 5.1.…

VSCode 配置自动生成头文件

相关文章 VSCode 开发C/C实用插件分享——codegeex VSCode 开发C/C实用插件分享——koroFileHeader VSCode 配置自动生成头文件 一、snippets二、配置步骤三、效果展示 一、snippets 相信大家对C、C都头文件都不陌生&#xff0c;都会发现每个头文件都会包括下面的这些格式&…

Cent OS7 磁盘挂载:扩展存储空间和自动挂载

文章目录 &#xff08;1&#xff09;概述&#xff08;2&#xff09;查看磁盘使用情况&#xff08;3&#xff09;VMware虚拟机挂载磁盘&#xff08;4&#xff09;物理机磁盘挂载&#xff08;5&#xff09;ntfs硬盘处理 &#xff08;1&#xff09;概述 在Linux系统中&#xff0c…