数据通信介绍

2023-11-16

数据通信方式有两种:串行通信与并行通信

一、串行通信

串行通信是指数据的各位在同一根数据线上逐位发送和接收。如下图所示。它可以按照数据传送方向通信方式来划分。

如果按照数据传送方向分类,则分为以下方式:

单工:

           数据传输只支持数据在一个方向上传输

半双工:

           允许数据在两个方向上传输,但是,在某一时刻,只允许数 据在一个方向上传输。实际上是一种切换方向的单工通信;

全双工:

           允许数据同时在两个方向上传输,因此,全双工通信是两个 单工通信方式的结合,它要求发送设备和接收设备都有独立

           的接收和发送能力。

如果按照通信方式分类,则可分为和同步串行通信方式和异步通信方式。

同步串行通信

同步通信是指发送端和接收端必须使用同一时钟,是一种连续传送数据的通信方式,一次通讯传送多个字符数据(一帧数据)。SPI,IIC通信都是带时钟同步信号传输。下图是同步串行通信帧格式:

 

那么同步串行通信就是把许多字符组成一个信息组(信息帧),每帧的开始用字符来指示。并且发送和接收的双方必须采用同一时钟,这样接收方就可以通过时钟信号来确定每个信息位。

 

同步串行通信帧:是将许多字符组成一个信息帧,字符可以一个接一个传输。但是,需要在每帧信息的开始加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。

同步串行通信的特点:必须有同步时钟,传输信息量大,传输速率高,但是传输设备则为复杂,技术要求高。

异步串行通信

异步通信是指发送和接收端使用的是各自的时钟,并且它是一种不连续的传输通信方式,一次通信只能传输一个字符数据(字符帧)。字符帧之间的间隙可以是任意的,在STM32中USART就是使用的是异步通信方式,下图是异步串行通信帧格式:

异步串行通信方式:是指通信双方以一个自读(包括特定附加位)作为数据传输单位且发送方传送字符的间隔时间是不定的,具有不规则数据段传输特性,下图是异步串行通信:

异步串行同信帧:将一个字节数据加上起始位、校验位以及停止位构成字符帧。由于异步通信没有同步时钟,所以接收端要时刻处于接收状态。

起始位:在没有数据传送时(空闲状态),此时通信线上为逻辑“1”。当发送端要发送一个数据时,首先发送一个逻辑“0”,这个低电平就是帧格式的起始位。作用是告诉接收端要开始发送一帧数据。接收端检测到这个低电平之后,就准备接收数据信号。

数据位:在起始位之后,发送端发出的就是数据位,数据位的位数没有严格限制(5-8位都可以)。低位在前,高位在后。由低位向高位逐位发送。

校验位:数据位发送完成之后,可以发送以为用来校验数据在传送过程中是否出错。校验位是收发双方预先约定好的有限制差错检验的方式之一(可不用)。

停止位:字符帧格式的最后部分是停止位,逻辑“1”有效,它的占位有1/2位、1位或者2位。停止位表示传送一帧信息的结束,也作为发送下一帧数据信息做准备。

异步串行通信特点:不需要同步时钟,通信实现简单,设备简单。但是传输速率不高。

串行通信传输速率

比特率:每秒钟传送的二进制位数。bps

波特率:每秒钟调制信号变化的次数。Baud

串行通信常用波特率表示数据传输率。

波特率与比特率的关系为:

比特率 = 波特率x单个调制状态对应的二进制位数

单个调制状态对应1个二进制位时,或对于数字信号1或0直接用两种不同电压表示的基带传输,此时 比特率==波特率。串行通信双方识别位的时间间隔要相同,所以通信双方的波特率必须一致。


 

二、并行通信

是指数据的各位同时在多根数据线上发送或接收,如图

 

参考:

https://blog.csdn.net/Dingjiawang6/article/details/81093518

https://blog.csdn.net/newbie_xymt/article/details/76577191

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据通信介绍 的相关文章

  • scanf("%d\n",&num)中的\n是很特别的

    这是上篇博文 http blog csdn net u010412719 article details 48324799 中遇到的问题 详细原因明天再总结 总之 因为自己这样写了 花了很长时间才把这个bug调通 在scanf里 n 很特别
  • 小程序margin-bottom在IOS里面不起作用的解决方法

    margin bottom 是页面标签底部的元素属性 例如view中的定义按钮 如果想要距离底部有20rpx 按照常规写法margin bottom 20rpx 但是小程序用margin bottom在IOS手机出现失效问题 如何解决这个问
  • appuim+python常遇到的问题

    appuim python常遇到的问题 appuim使用过程中常见的问题 import time 一 内嵌H5定位 1 在web自动化中我们会遇见frame的问题 在遇见这些内嵌的标签后我们需要做的就是切换窗口 那么在app自动化测试也有类
  • Kotlin和Java混合开发必读:基本的互操作

    在使用Kotlin和Java混合开发的时候 涉及到一些基本的互操作 一 属性的读写 1 Kotlin自动识别Java的属性的Getter和Setter 2 Java操作kotlin属性可以通过Getter和Setter的方式 二 空安全类型
  • 面试官问:微服务的4种部署策略有哪些,什么区别?

    在项目迭代的过程中 不可避免需要 上线 上线对应着部署 或者重新部署 部署对应着修改 修改则意味着风险 目前有很多部署发布的技术 这儿将常见的做一个总结 上面所说难免有些抽象 举一个情景例子 加入你是微博项目负责人员 现在新版本较原来的老版
  • VScode解压版升级

    按照提示 下载最新的解压版 下载后解压文件夹 然后将旧的的解压版删除 不要替换 是删除之前的解压版 然后将新的解压后的文件粘贴到原来的位置 当然 如果你要换位置也是可以的 解压版很随意 很绿色的 之前的插件也是会完全保留的 包括登录信息

随机推荐

  • C# 中 Console.WriteLine 常见的几种形式及其用法差异

    在 C 的 Console WriteLine 方法中 有多种重载形式可以用于不同的输出需求 下面是常见的几种形式及其用法差异 输出字符串 Copy code Console WriteLine Hello World 这是最简单的用法 直
  • Unity --- 基本键鼠操作

    1 我们对于键盘和鼠标的点击操作相当于在输入数据 这些输入的数据都会被存储到对应的数据缓存区中供程序读取和调用 而我们所谓的游戏程序中的键鼠操作其实就是当我们通过键盘输入了特定数据之后 游戏程序马上从缓存区中读取到这个数据 并通过这个输入的
  • axure怎么存html文件怎么打开,axure 保存html文件怎么打开

    2 回答 2020 08 18 浏览 71 分类 绘图建模 回答 1 谷歌内核的浏览器需要安装Axure的插件才能访问 2 火狐浏览器 好像可以 与IE浏览器 3 可以用本机搭建一个服务器 让人家访问你的IP 任何浏览器都可以 1 回答 2
  • cobalt strike木马免杀

    0x001 针对powershell免杀 工具 Invoke Obfuscation 操作实例 1 利用CS生成powershell木马 2 进入invoke Obsfuscation文件 使用powershell命令执行 3 利用powe
  • CUDA Samples:Vector Add

    以下CUDA sample是分别用C 和CUDA实现的两向量相加操作 参考CUDA 8 0中的sample C ProgramData NVIDIA Corporation CUDA Samples v8 0 0 Simple 并对其中使用
  • 《深度学习入门》鱼书学习笔记(代码可运行)

    X 前言 X 1环境配置 x 1 1安装Anaconda 直接官网下载Anaconda 安装完成后 conda V查看是否安装成功 activate gt 进入base环境 conda create n py37 python 3 7 创建
  • 启用tun设备开启tap虚拟网卡功能

    注意 该文章中的arp应答部分是有问题的 由于作者现在已经没有实验环境无法再进行修正了 望看该文章的人注意一下 关于tun设备启用tap网卡 就是启用一个字符设备 使用open函数得到一个tun设备的文件描述符 可以使用write和read
  • (七)mkdocs学习——其他技巧

    mkdocs学习笔记系列 一 MkDocs 学习 快速开始 二 MkDocs学习笔记 撰写文档 三 MkDocs学习 配置主题 四 MkDocs学习 自定义主题 五 MkDocs学习 配置文件 六 MkDocs学习 部署文档 七 mkdoc
  • 如何搭建自己的写作素材库,快来学,方法高效简单

    我们平时看过的书 做过的事 不及时记下来 很可能过几天就忘记了 由此看来 搭建自己的写作素材库非常有必要 尤其是写作者 写稿的速度取决于自己写作素材的储备量 你储备的素材越多 写作时便可以拿来即用 不用再费尽心思找个好几天 我们该如何搭建自
  • ACL的规则总结

    按照由上到下的顺序执行 找到第一个匹配后既执行相应的操作 然后跳出ACL 每条ACL的末尾隐含一条deny any 的规则 ACL可应用于某个具体的IP接口的出方向或入方向 ACL可应用于系统的某种特定的服务 如针对设备的TELNET 在引
  • WEB开发中遇到的困难,controller方法对应的url显示不出来页面

    问题 controller方法对应的url返回页面但是显示不出来页面 等待下午来人求救 这个问题真是日了狗了啊 明明项目没动 刚开始运行项目的时候总是报错 java lang ClassNotFoundException 然后检查了一下对应
  • linux vi的命令

    inux vi命令详解 刚开始学着用linux 对vi命令不是很熟 在网上转接了一篇 vi编辑器是所有Unix及Linux系统下标准的编辑器 它的强大不逊色于任何最新的文本编辑器 这里只是简单地介绍一下它的用法和一小部分指 令 由于 对Un
  • 【录制Selenium IDE导出python代码】

    Generated by Selenium IDE import pytest import time import json from selenium import webdriver from selenium webdriver c
  • PHP内置函数intval()使用不当的安全漏洞分析

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 一 描述 intval函数有个特性 直到遇上数字或正负符号才开始做转换 再遇到非数字或字符串结束时 结束转换 在某些应用程序里由于对intval函数这个特性认识不够 错误的
  • react中使用splice函数去删除数组的某一项

    1 splice函数 splice 方法向 从数组中添加 删除项目 然后返回被删除的项目 slice 方法可从已有的数组中返回选定的元素 所以 在使用的时候 就要注意的是 splice返回的是被删除的项目 2 举一个我在react中使用的小
  • 单片机预备知识(电平、进制转换、字节、数据类型)

    参考 郭天祥十天带你精通51单片机 网址 https www bilibili com video BV1DW411a7mz spm id from 333 788 videocard 0 目录 电平特性 二进制 进制转换 1K字节等于多少
  • Ubuntu18.04 安装cmake-3.18.0,报错openssl

    1 问题描述 Downloads wget https cmake org files v3 18 cmake 3 18 0 tar gz Downloads tar xf cmake 3 18 0 tar gz Downloads cd
  • mvvm框架是什么

    MVVM是Model View ViewModel的简写 它本质上就是MVC Model View Controller 的改进版 在开发过程中 由于需求的变更或添加 项目的复杂度越来越高 代码量越来越大 此时我们会发现MVC维护起来有些吃
  • mysql表操作-约束删除、用户填加、授权和撤权

    目录 一 表的约束删除 1 查看所有表的约束条件 2 删除主键 3 删除唯一键 4 删除check键值 5 删除check键值 6 删除not null键值并删除check键值 7 删除键外值 8 检查表的约束条件是否存在 二 设置数据库密
  • 数据通信介绍

    数据通信方式有两种 串行通信与并行通信 一 串行通信 串行通信是指数据的各位在同一根数据线上逐位发送和接收 如下图所示 它可以按照数据传送方向和通信方式来划分 如果按照数据传送方向分类 则分为以下方式 单工 数据传输只支持数据在一个方向上传