各种通信接口的简单对比

2023-11-05

对比表
在这里插入图片描述
同步方式与异步方式的主要区别在于:

  1. 是否传输时钟信号。
  2. 只要是通訊前雙方需要設定相同波特率的,都是異步傳輸方式。

异步传输(Asynchronous Transmission): 每次异步传输的信息都以一个起始位开头,它通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据比特的时间;在传输结束时,一个停止位表示该次传输信息的终止。每8个比特要多传送两个比特,总的传输负载就增加25%。因此,异步传输常用于低速设备。

同步传输(Synchronous Transmission):同步传输不是独立地发送每个字符,不是每个字符都有自己的开始位和停止位,而是把它们组合起来一起发送。我们将这些组合称为数据帧,或简称为帧。

一、UART

  • 名称:Universal Asynchronous Receiver Transmitter,通用异步收发器。
  • 特点:UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。
  • 接口:
    • RS232:传输速率一般不超过20Kbps,速率低,抗干扰能力差,RS-232C能传输的最大距离不超过15m(50英尺)。
    • RS422:定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100Kbps时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。
    • RS485:增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。最高传输速率10Mbps,抗干扰能力强,可以传距离1.5km。

小结:

  • RS232:20Kbps | 15m | 全双工 | 1(-3 ~ -15) | 0(+3 ~ +15) | 共模传输 | 3线 | 异步串行
  • RS422:10Mbps | 1200m | 全双工 | 1(+2 ~ +6) | 0(-2 ~ -6) | 差分传输 | 5线 | 异步串行
  • RS485:10Mbps | 1200m | 半双工 | 1(+2 ~ +6) | 0(-2 ~ -6) | 差分传输 | 3线 | 异步串行

二、IIC

  • 名称:Inter-Integrated Circuit,字面上的意思是集成电路之间,它其实是I²C Bus简称,所以中文应该叫集成电路总线。
  • 特点:双向、二线制、同步串行总线。I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。
  • 速率:标准模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4Mbps)。
  • 小结:
  • IIC:100kbps 400kpbs 3.4Mbps | 板间 | 半双工 | 1(+2 ~ VCC) | 0(0 ~ 1.2) | 共模传输 | 2线 | 同步串行 | 多主机

三、SPI

  • 名称:Serial Peripheral Interface,串行外围设备接口。
  • 特点:是一种高速,全双工,同步的通信总线。常规只占用四根线,节约了芯片管脚,PCB的布局省空间。
  • 速率:SPI没有定义速度限制,一般的实现通常能达到甚至超过10 Mbps。
  • 小结:
  • SPI:10Mbps | 板间 | 全双工 | 1(+2 ~ VCC) | 0(0 ~ 1.2) | 共模传输 | 4线 | 同步串行 | 单主多从

四、CAN

  • 名称:Controller Area Network,控制器局域网。
  • 特点:是ISO国际标准化的串行通信协议。
  • 速率:最高1Mbps(距离小于40M),最远可达10KM(速率低于5Kbps)。
  • 小结:
  • CAN:1Mbps | 10km | 半双工 | 1(+2) | 0(0) | 差模传输 | 2线 | 异步串行 | 多主机

五、USB2.0

六、IIS

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

各种通信接口的简单对比 的相关文章

  • 在c++中接收USB设备插入的通知/事件/信号

    我已经寻找了一段时间 但一直无法找到这个问题的答案 我正在尝试接收特定 USB 设备的连接通知 这是我所知道的 我运行的是 linux 内核版本 3 2 我有识别 USB 设备所需的 ID 我创建了一个用于读取和写入设备的内核模块 内核模块
  • 三星 Android 手机从另一台设备上出现 USB 问题

    早上好 我有一部三星 Android 手机 我通过 USB 电缆将其连接到另一台设备 不是电脑 对于这种情况 我在 android 中启用了 USB 调试和开发人员模式 如果我使用另一台 Android 手机 它工作正常 另一台设备正在闪烁
  • 有没有办法通过浏览器与 USB 设备通信?

    有没有办法在常规浏览器 FF Safari IE8 等 中与 USB 设备通信 我认为它可能是 Javascript gt Java 桥或其他东西 请指教 P S 是否可以以最小的依赖性实现 如果没有 基于浏览器的软件的全部意义就毫无用处
  • 批量传输和 Android USB API

    我有一个程序 我尝试通过 USB 将我的 Android 设备连接到网络摄像头 我在一些事情上遇到了麻烦 即正确传输数据 我尝试过使用bulkTransfer 但似乎无法识别它的使用情况 我一直在尝试寻找可能对我有帮助的例子 例如here
  • 如何禁用 Android 设备 USB 端口

    我正在尝试搜索是否有一种方法可以禁用 Android 设备 USB 端口 主要是软件级别 因此用户仍然可以为 Android 设备充电 但无法再与 PC 通信 我得到了一些线索link1 https groups google com fo
  • USB 控制传输能否保证交付?

    USB 2 0 指定 http www usb org developers docs usb20 docs 4 种传输类型 第 5 4 节传输类型 控制转移 同步传输 中断传输 批量转账 第 5 8 节规定批量转账提供 在带宽可用的基础上
  • 在 Mac OSX 下检测连接的 USB 设备

    首先声明 对于 Mac 编程 我是一个新手 然而 我有一项任务需要与设备进行 USB 通信 所以我想我将从基本的东西开始 我从here https developer apple com library mac samplecode USB
  • 如何阻止 Linux 初始化 USB HID 设备

    我有一个 USB HID 设备 可以在两种不同的模式下工作 模式的选择基于发送给它的 USB 枚举 初始化数据包的顺序 我使用的是运行 Raspbian 的 Raspberry Pi 3 但是如果我为桌面 Ubuntu 发行版编译代码 我也
  • 使用“设备过滤器”解决方案时如何处理 Android 上的 USB 权限对话框事件?

    当我将 已知 USB 设备连接到 Android 手机时出现的自动权限对话框中 用户按下 确定 或 取消 时 我试图处理该事件 我正在使用 android usb host 库 可以在 Android 手机和设备之间发送和接收 此外 我使用
  • USB 传输数据

    我正在尝试通过 USB 发送和接收数据 我的设备 Acer Iconia A500 拥有连接到设备所需的一切 一切都很好并且工作正常 但是当我尝试发送和接收数据时 它的行为并不像预期的 这是我的代码 for this is the main
  • 使用 DeviceWatcher 监视 USB 驱动器并检索设备信息?

    I m a WinForms开发人员和我已经知道如何使用 WMI 监视连接或断开连接的 USB 但不久前我发现了设备观察者 http msdn microsoft com en us library windows devices enum
  • 使用Python直接向USB发送信号

    如何使用 Python 将 USB 端口连接设置为高或低 这可用于定制 USB 设备 例如 假设我有一个 LED 连接到 USB 端口 数据线 现在通过代码我想闪烁它或控制它 现在 这可以通过使用任何微控制器 Arduino Raspber
  • 在 Zend Framework 2 中使用 Memcached 设置 ttl 和命名空间

    据我所知 这似乎是设置 Memcached 并设置 TTL 和命名空间的方法 但它们对缓存没有影响 该密钥没有命名空间前缀 并且过期时间是无限的 MemcachedOptions new Zend Cache Storage Adapter
  • 在 ARM 处理器上执行存储在外部 SPI 闪存中的程序

    我有一个 ARM 处理器 能够与外部闪存芯片连接 写入芯片的是为 ARM 架构编译的程序 可供执行 我需要知道如何将这些数据从外部闪存获取到 ARM 处理器上以供执行 我可以提前运行某种复制例程 将数据复制到可执行内存空间吗 我想我可以 但
  • USB接口条码扫描器

    不完全是一个编程问题 但很接近 无论如何我都会试试运气 The 键盘楔子 扫码机插入 读者之间的翻译装置 和键盘 数据发送通过 楔形看起来就像是被输入的 电脑 而键盘 本身仍保持完整功能 因为电脑使用键盘 楔子无法区分 在输入的数据之间 扫
  • 我可以从哪里开始使用可编程硬件?

    一段时间以来 我一直渴望至少学习一点有关硬件编程的知识 并想在这里提出要求以获得一些起点 我是一位相当有成就的程序员 具有 Delphi 和 Objective c 经验 但从未听过设备端口 中断 我什至不知道术语 更不用说对硬件进行编程了
  • 在 Linux (libusb-1.0) 上访问 USB 设备?

    我正在编写一个小程序 使用 Linux 上的 libusb 1 0 与特定 USB HID 产品 由供应商和产品 ID 标识 进行通信 现在 我必须以 root 身份运行该程序 因为 libusb 需要对 USB 设备节点的写访问权限 有没
  • 如何用 C 语言从串行(SPI)连接读取数据?

    我正在尝试编写一个程序 该程序将安装在 Linux MCU Raspberry Pi 上 该程序将读取从另一个 MCU 我将自己构建的自制程序 发送到它的串行数据 我研究了如何做到这一点 并认为我有 大局 但仍然缺少一些东西 其一 我需要启
  • 当端点和 PMA 地址均更改时,CubeMX 生成的 USB HID 设备发送错误数据

    我正在调试我正在创建的复合设备的问题 并在新生成的仅 CubeMX 代码中重新创建了该问题 以使其更容易解决 我添加了少量代码main 让我发送 USB HID 鼠标点击 并在按下蓝色按钮时使 LED 闪烁 uint8 t click re
  • Go 中带有 TTL 选项的映射

    我需要构建这样的数据结构 map string SomeType 但它必须将值存储大约 10 分钟 然后从内存中清除 第二个条件是记录数量 它必须是巨大的 该数据结构必须至少添加每秒 2 5K 条记录 那么 Go 中最正确的实现方法是什么

随机推荐

  • c语言中swap的意思,C语言中swap的作用和用法?

    慕村225694 swap函数一般是一个程序员自定义函数 通常是实现两个变量数值的交换 比如123int a 2 int b 3 swap a b 一般用到变量数值交换 交换后a 3 b 2 实现的方法多种多样 比如下面几种写法 1 通过使
  • Python——类的方法重写、property、运算符重载

    1 super 函数 主要是用来调用父类的方法 在子类中调用父类的方法时进行使用 2 私有方法 私有属性 1 定义方法 在类的内部 使用def关键字可以为类定义一个方法 与一般函数定义不同 类方法必须包含参数self 且为第一个参数 2 私
  • ubuntu搭建vpn步骤

    1 搭建环境 系统 Ubuntu 18 04 4 LTS Bionic Beaver 位置 轻量应用云服务器 2 安装软件 Sudo apt get update Sudo apt get install pptpd Sudo apt ge
  • 【ESP8266】关于调试fatal exception/自动重启的一些经验分享

    本人小白一枚 最近在捣鼓ESP8266的NONOS SDK开发 本来已经写好了一个工程测试基本功能也没什么问题了 但是发现了一个很严重的问题 就是每次一跑上40来分钟的时候 就会宕机重启 自动重启 真是奇了个怪了 本来这也没啥 但出于对稳定
  • 关闭 Ubuntu 中的关机/重启确认的小技巧

    导读 对于 Ubuntu 新手来说 有很多新东西要学 但是网上很多教程不是针对新手的 在这里 我们不走寻常路 不能说全部的教程都是为初学者准备 但至少大部分是 关闭 Ubuntu 中的关机 重启确认 这篇文章也是一篇新手教程 并且展示如何在
  • Android常用控件之悬浮窗

    悬浮窗可以显示在所有应用程序之上 不管在PC机还是Android设备上都有这个 最常见的是360的 加速球 来看下在Android设备上的效果 程序的目录结构如下图 创建Activity后启动Service就关闭 java view pla
  • 基于cordova打包RPGMAKERMV 安卓app

    基于cordova打包RPGMAKERMV 安卓app 1 RPGMakerMV部分 部署出网页项目 2 node部分 https nodejs org en 上下载node左边稳定版 右边是包含最新特性的版本 这是目前的版本可能不一样 设
  • 刷题之图像渲染

    有一幅以二维整数数组表示的图画 每一个整数表示该图画的像素值大小 数值在 0 到 65535 之间 给你一个坐标 sr sc 表示图像渲染开始的像素值 行 列 和一个新的颜色值 newColor 让你重新上色这幅图像 为了完成上色工作 从初
  • Verilog基本语法之循环语句(六)

    循环语句分为以下4种 for语句 通过三个步骤来决定语句的循环执行 1 给控制循环次数的变量赋初值 2 判定循环执行条件 若为假则跳出循环 若为真 则执行指定语句后 转到第三步 3 修改循环变量的值 返回第二步 repeat 连续执行一条语
  • qt 调节win声音版本大小

    QT4 情况下 运行的 会出错 目前暂时没有办法解决在 win下调节音量大小问题 在这里插入代码片 参考资料 QT 对window系统下音量的设置和获取 还有个很好贴子 没有找到
  • vim入门了

    自从上次搞定代码折叠之后 仿佛vim真的入门了 今天又看了一些内容 会复制 粘贴 查找了 更加的感觉入门了 值得庆贺 2012 5 3
  • JZOJ 幽幽子与森林

    题目大意 迷途竹林可以看成是一个n个点的森林 幽幽子定义dis u v 为u到v路径上的边的数量 若u和v不连通则为m 她定义整个森林的危险度为 为了去拜访永琳师匠 幽幽子需要提前知道迷途竹林的危险度 但迷途竹林的形态是时刻变化着的 所以幽
  • 栈系列之 最小栈的实现

    算法专题导航页面 算法专题 栈 栈系列之 栈排序 栈系列之 最小栈的实现 栈系列之 用栈实现队列 栈系列之 递归实现一个栈的逆序 题目 设计一个栈 其拥有常规的入栈 出栈操作外 需要额外具备获取最小元素的功能 其他限制 获取最小元素功能的时
  • 25. TCP协议之TCP中MSS与MTU

    MSS MSS英文全称为Maximum Segment Size 表示最大TCP报文段数据长度 并且MSS只会出现在对端发送SYN段时才会夹带的信息 在三次握手的过程中可以看到这个对端期望能够收到最大的数据段长度 如下 可以看到现在对端的M
  • 阿里云服务器部署node服务(一)

    万事开头难 尝试通过阿里云服务器部署node服务 中间踩了一些坑 借此给自己一个总结 1 远程服务器安装node 1 安装node wget https npmmirror com mirrors node v16 16 0 node v1
  • kafka介绍,安装以及简单的java调用kafka代码

    Producer 消息生产者 向broker发消息的客户端 Consumer 消息消费者 向broker取消息的客户端 Topic 一个队列 主题 Message 消息是kafka处理的对象 在kafka中 消息是被发布到broker的to
  • 【R】【纽约人口数量分析】

    文章目录 1 实验说明 2 实验环境 3 实验目的 4 实验内容 5 实验步骤 下载并导入数据 对生成的时间序列对象可视化 a 思考 b 由上述三种变量查看各个波动趋势数据 c 由上述结果可知 使用 plot 函数 修正数据 6 实验分析
  • Cadence学习六:ORCAD里怎么增加和删除Offpage connector

    ORCAD里怎么增加和删除Offpage connector 注 本文是个人再学习cadence17 4的时候遇到的问题小结 任何人不得商用 如有侵权 请联系本人删除 问题概述 对于ORCAD有多个页面的原理图 off page担当着在不同
  • error: C2248: “QObject::QObject”: 无法访问 private 成员(在“QObject”类中声明)

    QT中使用的C 对象经常会用到数据类 而存放数据可以选择使用QList lt gt QMap lt gt 等模板类存放指针或是对象 如果是选择存数据对象 考虑好之后的数据最好是静态访问的 很少去修改的 在存放的时候就会报上面的错误 原因是没
  • 各种通信接口的简单对比

    对比表 同步方式与异步方式的主要区别在于 是否传输时钟信号 只要是通訊前雙方需要設定相同波特率的 都是異步傳輸方式 异步传输 Asynchronous Transmission 每次异步传输的信息都以一个起始位开头 它通知接收方数据已经到达