查缺补漏----同步,异步,半同步,分离式通信

news2024/10/6 7:24:52

目录

1.同步通信(同步定时方式)

2.异步通信

3.半同步通信

4.分离式通信


1.同步通信(同步定时方式)

同步通信方式(比如SPI),是把许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为信息帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。同步方式下,发送方除了发送数据,还要传输同步时钟信号,信息传输的双方用同一个时钟信号确定传输过程中每1位的位置。见下图所示:

同步通信的过程:

假设:CPU作为主设备,某个输入设备作为从设备。并且一个总线传输周期包含4个总线时钟周期:

• CPU在T1时刻的上升沿给出地址信息
• 在T2的上升沿给出读命令(低电平有效),与地址信息相符合的输入设备按命令进行一系列的内部操作,且必须在T3的上升沿来之前将CPU所需的数据送到数据总线上。

• CPU在T3时钟周期内,将数据线上的信息传送到其内部寄存器中。

• CPU在T4的上升沿撤销读命令,输入设备不再向数据总线上传送数据,撤销它对数据总线的驱动。

在此例中的作为从设备的输入设备,没有按照主设备的时钟信号来工作,就会出现数据传输错误。例如没有在T3的上升沿来之前将CPU所需的数据送到数据总线上。

总结:

1.若干个时钟产生相等的时间间隔,每个间隔构成一个总线周期。这些时钟信号是统一由总线控制器发出的。信息的发方与接收方必须按照统一的时钟信号工作。

2.在一个总线周期中,发送方和接收方可进行一次数据传送。

3.因为采用统一的时钟,每个部件或设备发送或接收信息都在固定的总线传送周期中,一个总线的传送周期结束,下一个总线传送周期开始。

优点:传送速度快;具有较高的传输速率;总线控制逻辑简单。

缺点:主从设备属于强制性同步;不能及时进行数据通信的有效性检验,可靠性较差。

同步通信适用于总线长度较短(总线长度越短,信息传送越稳定)及总线所接部件的存取时间比较接近(若从设备是慢速的设备,跟不上时钟节拍,那么就会导致数据传输错误或者主从设备能在一个总线周期完成数据传输,并且其中一个设备存取速度非常快,另一个存取速度较慢,那么就会导致存取速度较快的设备性能被浪费)的系统。

2.异步通信(异步定时方式)

在异步通信方式(比如RS232)中,两个数据字符之间的传输间隔是任意的,所以,每个数据字符的前后都要用一些位来作为分隔位。从下图中可以看到,按标准的异步通信数据格式(叫做异步通信帧格式),1个字符在传输时,除了传输实际数据字符信息外,还要传输几个外加位:

在1个字符开始传输前,输出线必须在逻辑上处于“1”状态,这称为标识态。传输一开始,输出线由标识态变为“0”状态,从而作为起始位。起始位后面为5~8个信息位,信息位由低往高排列,即先传字符的低位,后传字符的高位

信息位后面为校验位,校验位可以按奇校验设置,也可以按偶校验设置,或不设校验位。最后是逻辑的“1”作为停止位,停止位可为1位、1.5位或者2位

如果传输完1个字符以后,立即传输下一个字符,那么,后一个字符的起始位便紧挨着前一个字符的停止位了,否则,输出线又会进入标识态。

在异步通信方式中,发送和接收的双方必须约定相同的帧格式,否则会造成传输错误。在异步通信方式中,发送方只发送数据帧,不传输时钟,发送和接收双方必须约定相同的传输率。当然双方实际工作速率不可能绝对相等,但是只要误差不超过一定的限度,就不会造成传输出错。

2.异步通信

在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。
主设备提出交换信息的“请求”信号(包含地址和读/写信号),经接口传送到从设备;从设备接到主设备的请求后,通过接口间主设备发出“回答”信号。

根据“请求”和“回答”信号的撤销是否互锁,分为以下3种类型:
(1)不互锁方式

主设备发出“请求”信号后,不必等到接到从设备的“回答”信号,而是经过一段时间,便撤销“请求”信号。

而从设备在接到“请求”信号后,发出“回答”信号,并经过一段时间,自动撤销“回答”信号(不会理会主设备有没有收到这个回答)。双方不存在互锁关系。

速度最快,可靠性最差


(2)半互锁方式

主设备发出“请求”信号后,必须待接到从设备的“回答”信号后,才撤销“请求”信号,有互锁的关系。

而从设备在接到“请求”信号后,发出“回答”信号,但不必等待获知主设备的“请求”信号已经撤销,而是隔一段时间后自动撤销“回答”信号,不存在互锁关系。

(3)全互锁方式

主设备发出“请求”信号后,必须待从设备“回答”后,才撤销“请求”信号;
从设备发出“回答”信号,必须待获知主设备“请求”信号已撤销后,再撤销其“回答”信号。双方存在互锁关系。

速度最慢,可靠性最好

关于异步通信:

优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合。

缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢。因为发送方需要等待接收方的回应,而对于同步定时方式而言,每个设备只需要在给定的节拍内完成相应的操作即可。

3.半同步通信

是同步通信与异步通信的结合,在统一时钟的基础上,增加一个“等待”响应信号\overline{WAIT}

对于同步通信而言,在T2的上升沿给出读命令(低电平有效),与地址信息相符合的输入设备按命令进行一系列的内部操作,且必须在T3的上升沿来之前将CPU所需的数据送到数据总线上。

但有的从设备跟不上时钟节拍,所以设置了"等待"响应时间。当从设备跟不上时钟节拍时,就会通过控制总线给总线控制器进行反馈,让总线控制器等待几个节拍,经过几个节拍后,从设备准备好数据,就会进入T3时钟周期,将数据传送给主设备。

在半同步通信中,给了总线控制器一定的自由度,总线控制器可以根据反馈的"等待"信号,动态调节总线传输周期内的时钟周期数。

所以半同步通信也可以支持两个工作速度相差很大的部件或设备之间可靠地进行信息交换。

4.分离式通信

上述三种通信的共同点:

一个总线传输周期(以主设备向从设备读出一个数据为例)
•主模块发地址和读命令,需要使用总线
•从模块准备数据,不需要使用总线,但是这一对主从设备依然会占用总线的使用权

•从模块向主模块发数据,需要使用总线

所以分离式通信的思想就是将一个总线传输周期分为两个独立的子周期:

子周期1:

主模块发出请求,申请占用总线,使用完后立即放弃总线的使用权。
子周期2:

从模块准备好设备,申请占用总线,将各种信息送至总线上。

之前讲到主模块(主设备)可以主动申请总线的控制权,但是在分离式通信中,从模块也需要能够主动申请总线的控制权。

特点:

1.各模块均有权申请占用总线

2.采用同步方式通信,不等对方回答

3.各模块准备数据时,不占用总线

4.总线利用率提高

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

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

相关文章

Springboot 整合 durid

文章目录 Springboot 整合 druiddruid的优势配置参数使用整合 Druid配置数据源配置参数绑定配置参数配置监控页面配置拦截器 Springboot 整合 druid druid的优势 可以很好的监控 DB 池连接 和 SQL 的执行情况可以给数据库密码加密可以很方便的编写JDBC插件 配置参数 使用 整…

数据结构之树(4)

摘要:本篇主要讲哈夫曼树、并查集、二叉排序树、平衡二叉树等,非常非常非常重要!!! 一、哈夫曼树 基于霍夫曼树,利用霍夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,…

Android2024.2.1升级错误

提示 Gradle 版本不兼容,升级后就报错了 。 1.gradle安装包镜像 distributionBaseGRADLE_USER_HOME distributionPathwrapper/dists //distributionUrlhttps\://services.gradle.org/distributions/gradle-8.5-bin.zip distributionUrlhttps://mirrors.cloud.tencen…

Koa2项目实战1(项目搭建)

前言 在正式开始之前,需要先知道用到的东西: koa:Koa 是一个基于 Node.js 的 Web 应用框架,非常适合开发API服务,可以与前端框架(如 Vue.js、React.js)结合使用,实现前后端分离的开…

第八篇:磁盘管理(1)

目录 6.1分区 6.1.1基本分区 6.1.1.1磁盘的相关知识 6.1.1.1.1基础知识 6.1.1.1.2命名 1.对于串口硬盘:/dev/sda、/dev/sdb、/dev/sdc......往后都是一个字母一个字母的累加 2.对于并口硬盘:/dev/hda其余相同 6.1.1.1.3磁盘的分区方式 方式1&am…

c++_ 多态

目录 一.多态 1.1多态(polymorphism)的概念 1.2实现多态还有两个必须重要条件: 1.3 重载 和 虚函数的重写/覆盖 和 隐藏 的比对 1.4 协变(了解) 1.5 析构函数的重写 1.6 override 和final关键字 二.纯虚函数和抽象类 三. 多态的原理 3.1虚函数表指针 3.…

黑马JavaWeb开发跟学(十一)SpringBootWeb案例

黑马JavaWeb开发跟学十一.SpringBootWeb案例 SpringBootWeb案例1. 新增员工1.1 需求1.2 接口文档1.3 思路分析1.4 功能开发1.5 功能测试1.6 前后端联调 2. 文件上传2.1 简介2.2 本地存储2.3 阿里云OSS2.3.1 准备2.3.2 入门2.3.3 集成 3. 修改员工3.1 查询回显3.1.1 接口文档3.1…

性能测试笔记2-总

安装路径:先装jdk,后装JMeter 安装JDK: 下载JDK – 安装JDK – 配置环境变量 – 验证 安装Jmeter: 下载Jmeter – 安装Jmeter – 配置环境变量 – 启动验证 注意点: 下载JDK时,注意电脑操作系统是32位/64位 下载…

力扣 简单 110.平衡二叉树

文章目录 题目介绍解法 题目介绍 解法 平衡二叉树:任意节点的左子树和右子树的高度之差的绝对值不超过 1 //利用递归方法自顶向下判断以每个节点为根节点的左右子树的最大深度是否大于1 class Solution {public boolean isBalanced(TreeNode root) {if(root null){return tr…

Uniapp API

1.uni.showToast 显示消息提示框 unishowToast({ obj参数 }) 2.uni.showLoading 显示 loading 提示框, 需主动调用 uni.hideLoading 才能关闭提示框。 3.uni.showModal 显示模态弹窗,可以只有一个确定按钮,也可以同时有确定和取消按钮。类似于一个A…

windows上安装python环境

前言 最近电脑重装了系统,需要重新安装python环境 ,因此记录一下 1.下载 打开python官网下载,下载链接:https://www.python.org/downloads/windows/ 点击下载 ,我这里使用64位操作系统(大部分电脑),根据…

怎么查看网站是否被谷歌收录,查看网站是否被谷歌收录的简便方法

查看网站是否被谷歌收录,有多种简便方法可供选择。以下是一些常用的简便方法: 一、使用“site:”指令 打开谷歌搜索引擎: 在浏览器中打开Google.com,确保使用的是谷歌的官方搜索引擎。 输入查询指令: 在搜索框中输…

网关路由登录校验

网关过滤器 登录校验必须在请求转发到微服务之前做,否则就失去了意义。而网关的请求转发是Gateway内部代码实现的,要想在请求转发之前做登录校验,就必须了解Gateway内部工作的基本原理。 暂时无法在飞书文档外展示此内容 如图所示&#xff…

15分钟学 Python 第38天 :Python 爬虫入门(四)

Day38 : Python爬虫异常处理与反爬虫机制 章节1:异常处理的重要性 在爬虫开发过程中,网络请求和数据解析常常会遭遇各种异常。正确的异常处理可以提高程序的稳定性,避免崩溃,并帮助开发者快速定位问题。 章节2:常见…

requests案例——腾讯新闻数据的爬取

需求: 1.利用requests方法爬取该i.news.qq.com网站的数据(包括名字和对应链接) 2.实现翻页的爬取 3.将爬取下来的数据保存在excel文件中 4.利用jsonpath来解析获取的数据 5.使用openpyxl库处理 Excel 文件 注意: 1.如果报以…

一个不错的 SQL 编码风格的指南

前言 SQL语句的编写对于我们后端开发者而言是一个必备的技巧,在日常工作中,SQL语言编写的质量不仅仅会影响到团队的合作效率与项目的可维护性,还直接关系到数据库的性能优化与数据安全。今天大姚给大家分享一个不错的 SQL 编码风格的指南&am…

卡码网KamaCoder 117. 软件构建

题目来源:117. 软件构建 C题解(来源代码随想录):拓扑排序:给出一个 有向图,把这个有向图转成线性的排序。拓扑排序也是图论中判断有向无环图的常用方法。 拓扑排序的过程,其实就两步&#xff1…

Kubernetes资源详解

华子目录 1.Kubernetes中的资源1.1资源管理介绍1.2资源管理方式1.2.1命令式对象管理1.2.2kubectl常见command命令1.2.3资源类型1.2.4常用资源类型 基本命令示例运行和调试命令示例高级命令示例总结 其他命令示例create和apply区别案例显示命名空间查看命名空间中的pod如何对外暴…

数据库伸缩设计-分库分表如何做?读书笔记

一些企业内部系统,用户数量和业务规模有限,因此并不会产生巨大的数据量,这时数据库的存储和读写性能均不会成为瓶颈,没有扩容的需要,因此无须考虑伸缩性。对于一些互联网系统,前后端应用可以通过CDN 、缓存…

基于Zynq SDIO WiFi移植二(支持2.4/5G)

1 SDIO设备识别 经过编译,将移植好的uboot、kernel、rootFS、ramdisk等烧录到Flash中,上电启动,在log中,可看到sdio设备 [ 1.747059] mmc1: queuing unknown CIS tuple 0x01 (3 bytes) [ 1.761842] mmc1: queuing unknown…