SPI、I2C、UART三种串行总线的区别

出处:电子工程专辑 发布于:2018-06-25 14:20:44

  SPI:Serial Peripheral Interface 串行外围接口
  ISP:In Syesterm Program 在系统编程
  AT89S52在系统编程(ISP)所用到的几个引脚定义:


  ISP <wbr><wbr>SPI <wbr><wbr>JTAG <wbr><wbr>三者区别详解
  SPI简述(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOST和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。由于SPI系统总线一共只需3~4位数据线和控制即可实现与具有SPI总线接口功能的各种I/O器件进行接口,而扩展并行总线则需要8根数据线、8~16位地址线、2~3位控制线,因此,采用SPI总线接口可以简化电路设计,节省很多常规电路中的接口器件和I/O口线,提高设计的可靠性。由此可见,在MCS51系列等不具有SPI接口的单片机组成的智能仪器和工业测控系统中,当传输速度要求不是太高时,使用SPI总线可以增加应用系统接口器件的种类,提高应用系统的性能。
  SPI四线制引脚功能定义
  ISP <wbr><wbr>SPI <wbr><wbr>JTAG <wbr><wbr>三者区别详解
  小结:AT89S52单片机的FLASH烧写程序接口是ISP,所用为烧写程序小板上主控芯片AVR的SPI通信引脚MOSI、MISO、SCLK。
  什么是JTAG?
  JTAG是一个通信标准,用于计算机和单片机进行实时快速通讯。
  AVR 的JTAG功能(只有部分型号才有)使得AVR的调试工作非常简单,可以通过JTAG 接口对Flash、EEPROM、熔丝位和锁定位进行编程。
  使用AVR studio软件和JTAG硬件( AVR JTAG编程器,AVR JTAG仿真器)可以进行程序(编程)和程序在线调试。
  JTAG接口有四个引脚。以JTAG的术语来说,这些引脚组成了测试访问端口TAP。这些引脚是:
  TMS:测试模式选择。此引脚用来实现TAP 控制器各个状态之间的切换。
  TCK:测试时钟。JTAG 操作是与TCK 同步的。
  TDI: 测试数据输入--需要移位到指令寄存器或数据寄存器(扫描链)的串行输入数据。
  TDO:测试数据输出-- 自指令寄存器或数据寄存器串行移出的数据。
  什么是ISP?
  ISP是一种通用的程序方式,AVR单片机都有ISP接口。可以通过ISP线或者STK500把程序到单片机中。
  ISP线成本低廉,制作简单,一个并口ISP线只需几十元即可得到。开发工具成本低也是AVR单片机的优势之一。
  JTAG与ISP的区别和联系
  区别:JTAG可以调试程序,而ISP只能程序。
  联系:同作为AVR程序工具,都能把程序从电脑到单片机中。都能对芯片的熔丝位和锁定位进行编程。
  JTAG调试与普通软件仿真的区别和联系
  联系:都可以在计算机调试程序终端看到程序的运行效果,都可以设置断点,单步运行,进入循环,跳出循环,连续运行等操作。还能实时观察各寄存器的值,IO口状态等。
  区别:软件仿真,用的是计算机来模仿单片机运行,不是全真的环境,很多时候会出现偏差甚至错误。而用JTAG在线调试,程序本身在单片机内运行,完全真实的硬件环境,更准确的反映程序运行的实际情况,有助于大型程序的调试。
  个区别当然是名字:
  SPI(Serial Peripheral Interface:串行外设接口);
  I2C(INTER IC BUS:意为IC之间总线)
  UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)
  第二,区别在电气信号线上:
  SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现 多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。
  如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。
  I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
  如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。(注:I2C资料了解得比较少,这里的描述可能很不完备)
  UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
  显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。
  第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;
  第四,看看牛人们的意见吧!
  wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且I2C使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。
  quickmouse:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。
  1、SPI(Serial Peripheral Interface串行外围接口):高速、全双工、同步串行口。
  三或四个信号用于数据交换:
  SIMO:从进,主出
  SOMI:从出,主进
  UCLK:时钟,由主机驱动,从机用它发送和接收数据
  STE:从机发送允许,用于四线模式中控制多主从系统中的多个从机
  三线SPI组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI);当有多个从设备时,还可以增加一条从设备选择线。四线SPI模式用附加控制线,来允许从机数据的发送和接收,它由主机控制。
  SPI总线可以实现多个SPI设备互相连接。
  提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。
  主从设备间可以实现全双工通信,SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信。
  如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。
  UART需要固定的波特率,而SPI则无所谓,因为它是有时钟的协议。
  SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
  2、I2C(Inter IC Bus)接口定义:
  I2C总线是双向两线(SCL——串行时钟、SDA——串行数据线)制同步串行总线,具有竞争检测和仲裁机制,可使多个主机任意同时发送数据而不破坏总线上的数据信息。非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
  特点:
  A、每个连到总线上的器件都可由软件的地址寻址,并建立简单的主从关系。主器件既可作为发送器,又可作为接收器。
  B、同步时钟允许器件通过总线以不同的波特率进行通信
  C、同步时钟可以作为停止和重新启动串行口发送的握手方式
  D、连接到同一总线上的集成电路器件数只受400PF的总大总线电容的限制
  如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。
  注:组成I2C总线的串行数据线SDA和串行时钟线SCL必须经过上拉电阻Rp接到正电源上,连接到总线上的器件的输出极必须为“开漏”或“开集”的形式,以便完成“线与”的功能。
  I2C需要有双向IO的支持,而且使用上拉电阻,抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
  各种接口之间的区别如下:
  1、UART和USART两个别区说不出来,USART是新出的,不过区别在什么地方我也搞不清楚。UART就是两线,一根发送一根接收,可以全双工通信,线数也比较少。数据是异步传输的,对双方的时序要求比较严格,通信速度也不是很快。在多机通信上面用的多。
  2、SPI接口和上面UART相比,多了一条同步时钟线,上面UART的缺点也就是它的优点了,对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。
  3、I2C接口也是两线接口,它是两根线之间通过复杂的逻辑关系传输数据的,通信速度不高,程序写起来也比较复杂。一般单片机系统里主要用来和24C02等小容易存储器连接。

关键词:UART总线

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

相关技术资料
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!