SPI、I2C、I2S、UART、GPIO、SDIO、CAN、JTAG的区别

SPI

全称及由来:SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。

使用方法:SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

工作模式:SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号: (1)MOSI – 主器件数据输出,从器件数据输入 (2)MISO – 主器件数据输入,从器件数据输出 (3)SCLK – 时钟信号,由主器件产生(4)/SS – 从器件使能信号,由主器件控制

I2C

全称及由来:I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。

使用方法:I2C总线是一种串行数据总线,只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。

在 I2C总线上传送的一个数据字节由八位组成。总线对每次传送的字节数没有限制,但每个字节后必须跟一位应答位。(这是与SPI总线最显著的不同之处)。

I2S

全称及由来:I2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。

使用方法:I2S有3个主要信号:1.串行时钟SCLK,也叫位时钟,即对应数字音频的每一位数据,SCLK有1个脉冲。2. 帧时钟LRCK,用于切换左右声道的数据。LRCK为“1”表示正在传输的是左声道的数据,为“0”则表示正在传输的是右声道的数据。3.串行数据SDATA,就是用二进制补码表示的音频数据。有时为了使系统间能够更好地同步,还需要另外传输一个信号MCLK,称为主时钟,也叫系统时钟(Sys Clock)。

UART

UART (Universal Asynchronous Receiver/Transmitter) 通用异步收发器

将由计算机内部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记,并从接收数据流中删除启停标记。

处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备)。可以处理计算机与外部串行设备的同步管理问题。有一些比较高档的UART还提供输入输出数据的缓冲区。

手机中常用TXD,RXD,/RTS,/CTS。

GPIO

GPIO (General Purpose Input Output 通用输入/输出)或总线扩展器利用工业标准I²C、SMBus™或SPI™接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或当系统 需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。

每个GPIO端口可通过软件分别配置成输入或输出。Maxim的GPIO产品线包括8端口至28端口的GPIO,提供推挽式输出或漏极开路输出。提供微型3mm x 3mm QFN封装。

  GPIO的优点(端口扩展器)

  低功耗:GPIO具有更低的功率损耗(大约1μA,μC的工作电流则为100μA)。

  集成IIC从机接口:GPIO内置IIC从机接口,即使在待机模式下也能够全速工作。

  小封装:GPIO器件提供最小的封装尺寸 ― 3mm x 3mm QFN!

  低成本:您不用为没有使用的功能买单!

  快速上市:不需要编写额外的代码、文档,不需要任何维护工作!

  灵活的灯光控制:内置多路高分辨率的PWM输出。

  可预先确定响应时间:缩短或确定外部事件与中断之间的响应时间。

  更好的灯光效果:匹配的电流输出确保均匀的显示亮度。

  布线简单:仅需使用2条IIC总线或3条SPI总线

SDIO

SDIO是SD型的扩展接口,除了可以接SD卡外,还可以接支持SDIO接口的设备,插口的用途不止是插存储卡。支持 SDIO接口的PDA,笔记本电脑等都可以连接象GPS接收器,Wi-Fi或蓝牙适配器,调制解调器,局域网适配器,条型码读取器,FM无线电,电视接收 器,射频身份认证读取器,或者数码相机等等采用SD标准接口的设备。

CAN

JTAG

JTAG (Joint Test Action Group 联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。

标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。

测试复位信号(TRST,一般以低电平有效)一般作为可选的第五个端口信号。一个含有JTAG Debug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的设备,如FLASH,RAM,内置模块的寄存器,象UART,Timers,GPIO等等的寄存器。

CAN

CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之 间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。

一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如,当使用Philips P82C250作为CAN收发器时,同一网络中允许挂接110个节点。CAN 可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。

CAN是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到10Km时,CAN 仍可提供高达50Kbit/s的数据传输速率。

由于CAN总线具有很高的实时性能,因此,CAN已经在汽车工业、航空工业、工业控制、安全防护等领域中得到了广泛应用。

CAN通讯协议主要描述设备之间的信息传递方式。CAN层的定义与开放系统互连模型(OSI)一致。每一层 与另一设备上相同的那一层通讯。

设备只通过模型物理层的物理介质互连。CAN的规范定义了模型的最下面两层:数 据链路层和物理层。

下表中展示了OSI开放式互连模型的各层。应用层协议可以由CAN用户定义成适合特别工业领域的任何方案。

表1 OSI 开放系统互连模型

7

应用层

最高层用户软件网络终端等之间用来进行信息交换如DeviceNet

6

表示层

将两个应用不同数据格式的系统信息转化为能共同理解的格式

5

会话层

依靠低层的通信功能来进行数据的有效传递

4

传输层

两通讯节点之间数据传输控制操作如数据重发数据错误修复

3

网络层

规定了网络连接的建立维持和拆除的协议如路由和寻址

2

数据链路层

规定了在介质上传输的数据位的排列和组织如数据校验和帧结构

1

物理层

规定通讯介质的物理特性如电气特性和信号交换的解释

CAN能够使用多种物理介质,例如双绞线、光纤等。最常用的就是双绞线。信号使用差分电压传送,两条信号线被称为“CAN_H”和“CAN_L”, 静态时均是2.5V左右,此时状态表示为逻辑“1”,也可以叫做“隐性”。用CAN_H比CAN_L高表示逻辑“0”,称为“显形”,此时,通常电压值 为:CAN_H = 3.5V 和CAN_L = 1.5V 。

CAN 有哪些特性?

CAN具有十分优越的特点,使人们乐于选择。这些特性包括:

  低成本

  极高的总线利用率

  很远的数据传输距离(长达10Km)

  高速的数据传输速率(高达1Mbit/s)

  可根据报文的ID决定接收或屏蔽该报文

  可靠的错误处理和检错机制

  发送的信息遭到破坏后,可自动重发

  节点在错误严重的情况下具有自动退出总线的功能

  报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息

什么是CSMA/CD ?

CSMA/CD是“载波侦听多路访问/冲突检测”(Carrier Sense Multiple Access with Collision Detect)的缩写。

利 用CSMA访问总线,可对总线上信号进行检测,只有当总线处于空闲状态时,才允许发送。利用这种方法,可以允许多个节点挂接到同一网络上。当检测到一个冲 突位时,所有节点重新回到‘监听’总线状态,直到该冲突时间过后,才开始发送。在总线超载的情况下,这种技术可能会造成发送信号经过许多延迟。为了避免发 送时延,可利用CSMA/CD方式访问总线。当总线上有两个节点同时进行发送时,必须通过“无损的逐位仲裁”方法来使有最高优先权的的报文优先发送。在 CAN总线上发送的每一条报文都具有唯一的一个11位或29位数字的ID。CAN总线状态取决于二进制数‘0’而不是‘1’,所以ID号越小,则该报文拥 有越高的优先权。因此一个为全‘0’标志符的报文具有总线上的最高级优先权。可用另外的方法来解释:在消息冲突的位置,第一个节点发送0而另外的节点发送 1,那么发送0的节点将取得总线的控制权,并且能够成功的发送出它的信息。

- 2 -

CAN的高层协议

CAN的高层协议(也可理 解为应用层协议)是一种在现有的底层协议(物理层和数据链路层)之上实现的协议。高层协议是在CAN规范的基础上发展起来的应用层。许多系统(像汽车工 业)中,可以特别制定一个合适的应用层,但对于许多的行业来说,这种方法是不经济的。一些组织已经研究并开放了应用层标准,以使系统的综合应用变得十分容 易。

一些可使用的CAN高层协议有:

制定组织 主要高层协议

CiA           CAL协议

CiA           CANOpen协议

ODVA       DeviceNet 协议

Honeywell  SDS 协议

Kvaser       CANKingdom协议

什么是标准格式CAN和扩展格式CAN?

标准CAN的标志符长度是11位,而扩展格式CAN的标志符长度可达29位。CAN 协议的2.0A版本规定CAN控制器必须有一个11位的标志符。同时,在2.0B版本中规定,CAN控制器的标志符长度可以是11位或29位。遵循 CAN2.0B协议的CAN控制器可以发送和接收11位标识符的标准格式报文或29位标识符的扩展格式报文。如果禁止CAN2.0B,则CAN 控制器只能发送和接收11位标识符的标准格式报文,而忽略扩展格式的报文结构,但不会出现错误。

目前,Philips公司主要推广的CAN独立控制器均支持CAN2.0B协议,即支持29位标识符的扩展格式报文结构。

SPI、I2C、I2S、UART、GPIO、SDIO、CAN、JTAG的区别相关推荐

  1. SPI、I2C、UART、I2S、GPIO、SDIO、CAN,你能分清楚吗?

    总线,总线,总要陷进里面.这世界上的信号都一样,但是总线却成千上万,让人头疼. 总的来说,总线有三种:内部总线.系统总线和外部总线.内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连: ...

  2. 教你分清楚SPI、I2C、UART、I2S、GPIO、SDIO、CAN!

    总线,总线,总要陷进里面.这世界上的信号都一样,但是总线却成千上万,让人头疼. 总的来说,总线有三种:内部总线.系统总线和外部总线.内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连: ...

  3. linux can总线接收数据串口打包上传_SPI、I2C、UART、I2S、GPIO、SDIO、CAN,你能分清楚吗?...

    总线,总线,总要陷进里面.这世界上的信号都一样,但是总线却成千上万,让人头疼. 总的来说,总线有三种:内部总线.系统总线和外部总线.内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连: ...

  4. 高速USB转JTAG/SPI/I2C/UART/GPIO应用

    高速USB转接芯片CH347是一款集成480Mbps高速USB接口.JTAG接口.SPI接口.I2C接口.异步UART串口.GPIO接口等多种硬件接口的转换芯片. 接口示意图: 应用示意图: JTAG ...

  5. 树莓派 SPI,I2C,UART串行总线介绍

    很多人对总线,串行等概念不熟悉特别是SPI,I2C,UART,GPIO等概念. 因此我收集了一些资料,用于总结.希望对大家有所帮助. 首先看一下树莓派上的接口: GPIO引脚 x 26 UART总线 ...

  6. SPI、I2C、UART 三种串行总线对比介绍

    转载自https://blog.csdn.net/oqqHuTu12345678/article/details/65445338 参考博客 https://blog.csdn.net/xiaodin ...

  7. SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)

    SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...

  8. 串行总线 —— I2C、UART、SPI

    I2C,也叫 IIC,是一种常见的串行总线,它只需要两根线即可在连接于总线上的器件之间传送信息. 0. 电气知识 开漏输出:Open drain output,不输出电压,低电平时接地,高电平时不接地 ...

  9. UART SPI I2C 接口介绍 转载

    UART SPI I2C 接口介绍@TOC 做单片机开发时UART,SPI和I2C都是我们最经常使用到的硬件接口,我收集了相关的具体材料对这三种接口进行了详细的解释. UART UART是一种通用串行 ...

最新文章

  1. 福州大学2013java期末试卷_2020-11-04:java里,总体说一下集合框架。
  2. 网上有打印按键怎么设置下载_打印机共享怎么设置 如何设置打印机共享【详细攻略】...
  3. 利用函数wavread对语音信号进行采样_语音信号处理相关知识
  4. Java学习——使用Static修饰符
  5. flash和js通讯的伪沙箱安全错误
  6. T^T问题(快速幂)
  7. MATLAB IIR滤波器设计函数buttord与butter
  8. 【转载】启发式搜索技术A*【译】
  9. for循环性能优化的几种思路
  10. python无穷大怎么表示_python如何表示无穷大
  11. 最全的smarty‘总结~耿兴隆老师著作,学子zyf献上
  12. PhotoShop中合并形状颜色会变化的问题
  13. jyzy noip模拟赛5.22-2
  14. Android-APK瘦身实践
  15. swiper横向轮播——阶梯式滚动轮播
  16. Java实现21点多人游戏(期末作业)
  17. P2657 [SCOI2009] windy 数
  18. 计算机怎么查看网络连接的地址,各种电脑系统如何查看连接路由器的登录地址是多少?...
  19. 报表工具fastreport使用
  20. 电路原理实验二:电路元件伏安特性的测量

热门文章

  1. 啊哈c语言 潦草的初步笔记(1)
  2. csdn官网第一次写博客 一直显示不要使用默认标题
  3. sql server 修改字段长度 及 删除默认值
  4. Unix系统下修改密码
  5. 分布式解决方案-全面解密分布式任务调度平台-XXLJob调度中心集群
  6. 网络安全——黑客攻击的步骤和防范
  7. 开放智能公司捐助180套嵌入式ARM套件助力南科大C/C++课程教学
  8. Thinkpad安装系统后,在设备管理器中有一其他设备叹号为“PCI 数据捕获和信号处理控制器”...
  9. Windows无法连接SENS服务请求解决办法
  10. matlab 变量 鼠标 黑屏,消除运行MATLAB生成独立可执行程序的DOS黑屏