串行总线协议的区别
S P I、I2C、U A R T、U S B串行总线协议的区别SPI、I2C、UART三种串行总线协议的区别第一个区别当然是名字:SPI(Serial Peripheral Interface:串行外设接口);I2C(INTER IC BUS)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-mas ter)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。
在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。
(注:I2C资料了解得比较少,这里的描述可能很不完备)UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。
第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;第四,看看牛人们的意见吧!wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI 则无所谓,因为它是有时钟的协议。
quickmouse:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。
UART UART: Universal AsynchronousReceiver/Transmitter,通用异步接收/发送装置,UART是一个并行输入成为串行输出的芯片,通常集成在主板上,多数是16550AFN芯片。
因为计算机内部采用并行数据,不能直接把数据发到Modem,必须经过UART整理才能进行异步传输,其过程为:CPU先把准备写入串行设备的数据放到UART的寄存器(临时内存块)中,再通过FIFO(First Input First Output,先入先出队列)传送到串行设备,若是没有FIFO,信息将变得杂乱无章,不可能传送到Modem。
它是用于控制计算机与串行设备的芯片。
有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。
作为接口的一部分,UART还提供以下功能:将由计算机内部传送过来的并行数据转换为输出的串行数据流。
将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。
在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。
在输出数据流中加入启停标记,并从接收数据流中删除启停标记。
处理由键盘或鼠标发出的中断信号(键盘和鼠标也是串行设备)。
可以处理计算机与外部串行设备的同步管理问题。
有一些比较高档的UART还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理数据前在其缓冲区内存储16字节数据,而通常的UART 是8250。
现在如果您购买一个内置的调制解调器,此调制解调器内部通常就会有16550 UART。
什么是 UARTUART是一种通用串行数据总线,用于异步通信。
该总线双向通信,可以实现全双工传输和接收。
在嵌入式设计中,UART 用来与PC进行通信,包括与监控调试器和其它器件,如EEPROM通信。
UART通信UART首先将接收到的并行数据转换成串行数据来传输。
消息帧从一个低位起始位开始,后面是7个或8个数据位,一个可用的奇偶位和一个或几个高位停止位。
接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。
如果选择了奇偶,UART就在数据位后面加上奇偶位。
奇偶位可用来帮助错误校验。
在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。
UART也产生额外的信号来指示发送和接收的状态。
例如,如果产生一个奇偶错误,UART就置位奇偶标志。
数据方向和通信速度数据传输可以首先从最低有效位(LSB)开始。
然而,有些UART允许灵活选择先发送最低有效位或最高有效位(MSB)。
微控制器中的UART传送数据的速度范围为每秒几百位到1.5Mb。
例如,嵌入在ElanSC520微控制器中的高速UART通信的速度可以高达。
UART波特率还受发送和接收线对距离(线长度)的影响。
目前,市场上有只支持异步通信和同时支持异步与同步通信的两种硬件可用于UART。
前者就是UART名字本身的含义,在摩托罗拉微控制器中被称为串行通信接口(SCI);Microchip 微控制器中的通用同步异步收发器(USART)和在富士通微控制器中的UART是后者的两个典型例子。
UART是通用异步收发器(异步串行通信口)的英文缩写,它包括了RS232、RS499、RS423 、RS422和RS485等接口标准规范和总线标准规范,即UART 是异步串行通信口的总称。
而RS232、RS499、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容。
实际上是属于通信网络中的物理层(最底层)的概念,与通信协议没有直接关系。
而通信协议,是属于通信网络中的数据链路层(上一层)的概念。
COM口是PC(个人计算机)上,异步串行通信口的简写。
由于历史原因,IBM的PC外部接口配置为RS232,成为实际上的PC界默认标准。
所以,现在PC机的COM口均为RS232。
若配有多个异步串行通信口,则分别称为COM1、COM2... USART USART:(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步串行接收/发送器USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。
其主要特点如下:#全双工操作(相互独立的接收数据寄存器和发送数据寄存器);#支持同步和异步操作;#同步操作时,可主机时钟同步,也可从机时钟同步;#独立的高精度波特率发生器,不占用定时/计数器;#支持5、6、7、8和9位数据位,1或2位停止位的串行数据桢结构;#由硬件支持的奇偶校验位发生和检验;#数据溢出检测;#桢错误检测;#包括错误起使位的检测噪声滤波器和数字低通滤波器;#三个完全独立的中断,TX发送完成、TX发送数据寄存器空、RX接收完成;#支持多机通信模式;#支持倍速异步通信模式。
USART收发模块一般分为三大部分:时钟发生器、数据发送器和接收器。
控制寄存器为所有的模块共享。
时钟发生器由同步逻辑电路(在同步从模式下由外部时钟输入驱动)和波特率发生器组成。
发送时钟引脚XCK仅用于同步发送模式下,发送器部分由一个单独的写入缓冲器(发送UDR)、一个串行移位寄存器、校验位发生器和用于处理不同浈结构的控制逻辑电路构成。
使用写入缓冲器,实现了连续发送多浈数据无延时的通信。
接收器是USART模块最复杂的部分,最主要的是时钟和数据接收单元。
数据接收单元用作异步数据的接收。
除了接收单元,接收器还包括校验位校验器、控制逻辑、移位寄存器和两级接收缓冲器(接收UDR)。
接收器支持与发送器相同的桢结构,同时支持桢错误、数据溢出和校验错误的检测。
SPI SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。
SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号:(1)MOSI –主器件数据输出,从器件数据输入(2)MISO –主器件数据输入,从器件数据输出(3)SCLK –时钟信号,由主器件产生(4)/SS –从器件使能信号,由主器件控制IICI2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
I2C总线是一种串行数据总线,只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。
在 I2C总线上传送的一个数据字节由八位组成。
总线对每次传送的字节数没有限制,但每个字节后必须跟一位应答位。
(这是与SPI总线最显着的不同之处)。
--------------------------------------------------------------------------------Axbb Post at 2010-12-13 21:17:24IISI2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。
I2S有3个主要信号:1.串行时钟SCLK,也叫位时钟,即对应数字音频的每一位数据,SCLK有1个脉冲。
2. 帧时钟LRCK,用于切换左右声道的数据。
LRCK为“1”表示正在传输的是左声道的数据,为“0”则表示正在传输的是右声道的数据。
3.串行数据SDATA,就是用二进制补码表示的音频数据。
有时为了使系统间能够更好地同步,还需要另外传输一个信号MCLK,称为主时钟,也叫系统时钟(Sys Clock)。
--------------------------------------------------------------------------------Axbb Post at 2010-12-13 21:17:46UARTUART (Universal Asynchronous Receiver/Transmitter) 通用异步收发器将由计算机内部传送过来的并行数据转换为输出的串行数据流。
总线与协议
总线与协议概述在计算机系统中,总线和协议是实现硬件设备之间通信的重要组成部分。
总线是一组电子信号线,用于在计算机各个组件之间传输数据和控制信号。
协议是一套规范,用于定义数据传输的格式、时序和控制方式。
本文将介绍总线的基本概念和常见协议的特点。
总线的基本概念总线是计算机内部各个硬件设备之间传输数据和控制信号的通道。
它将计算机内部的各个组件连接起来,使它们能够相互通信。
总线通常包括地址总线、数据总线和控制总线三部分。
•地址总线用于传输地址信息,指示数据在内存或外设中的位置。
•数据总线用于传输实际的数据。
•控制总线用于传输控制信号,如读写信号、时钟信号等。
总线的宽度指的是总线上能同时传输的位数,例如32位总线能够传输32位的数据。
常见总线协议1. PCI总线PCI(Peripheral Component Interconnect)是一种常见的总线标准,用于连接计算机的内部扩展卡。
PCI总线采用并行传输方式,支持多种设备类型的连接。
它具有高带宽、低延迟和热插拔功能等特点,广泛应用于个人电脑和服务器系统。
2. USB总线USB(Universal Serial Bus)是一种通用的外部设备连接接口,用于连接计算机与外部设备。
USB总线采用串行传输方式,具有热插拔、多设备连接和高速传输等特点。
USB总线广泛应用于鼠标、键盘、打印机、摄像头等外部设备。
3. SATA总线SATA(Serial Advanced Technology Attachment)是一种用于连接存储设备的接口标准。
SATA总线采用串行传输方式,具有高速传输和热插拔功能。
SATA总线主要应用于硬盘、光驱和固态硬盘等存储设备。
4. I2C总线I2C(Inter-Integrated Circuit)是一种用于连接芯片之间的串行总线标准。
I2C 总线采用两根线进行数据传输,具有简单、低速和多设备连接等特点。
I2C总线广泛应用于各种集成电路芯片之间的通信。
SPI、I2C、UART、USART串行总线协议的区别
SPI、I2C、UART、USART串行总线协议的区别第一个区别当然是名字:SPI(Serial Peripheral Interface:串行外设接口);I2C(INTER IC BUS)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的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
SPII2CUART三种串行总线的原理区别及应用
简单描述:SPI 与I2C这两种通信方式都就是短距离的,芯片与芯片之间或者其她元器件如传感器与芯片之间的通信。
SPI与IIC就是板上通信,IIC有时也会做板间通信,不过距离甚短,不过超过一米,例如一些触摸屏,手机液晶屏那些很薄膜排线很多用IIC,I2C能用于替代标准的并行总线,能连接的各种集成电路与功能模块。
I2C就是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。
总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。
多路微控制器能在同一个I2C总线上共存这两种线属于低速传输;而UART就是应用于两个设备之间的通信,如用单片机做好的设备与计算机的通信。
这样的通信可以做长距离的。
UART与,UART就就是我们指的串口,速度比上面三者快,最高达100K左右,用与计算机与设备或者计算机与计算之间通信,但有效范围不会很长,约10米左右,UART优点就是支持面广,程序设计结构很简单,随着USB的发展,UART也逐渐走向下坡;SmBus有点类似于USB设备跟计算机那样的短距离通信。
简单的狭义的说SPI与I2C就是做在电路板上的。
而UART与SMBUS就是在机器外面连接两个机器的。
详细描述:1、UART(TX,RX)就就是两线,一根发送一根接收,可以全双工通信,线数也比较少。
数据就是异步传输的,对双方的时序要求比较严格,通信速度也不就是很快。
在多机通信上面用的最多。
2、SPI(CLK,I/O,O,CS)接口与上面UART相比,多了一条同步时钟线,上面UART的缺点也就就是它的优点了,对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。
一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。
3、I2C(SCL,SDA)接口也就是两线接口,它就是两根线之间通过复杂的逻辑关系传输数据的,通信速度不高,程序写起来也比较复杂。
一般单片机系统里主要用来与24C02等小容易存储器连接。
串行总线总结
SPI、CAN、I2C总线总结一、SPI总线(serial peripheral interface)二、CAN总线(Controller area network)CAN是ISO认证的国际标准化串行通信协议。
CAN协议中,所有的消息都以固定的格式发送。
和总线连接的单元没有I2C类似的“地址”信息,但是每个单元都要有相同的通信速率。
CAN总线是可同时连接多个单元总线,可以连接的单元总数理论上是没有限制的,理论上,CAN总线上的节点数几乎不受限制,可达到2000个,实际上受电气特性的限制,最多只能接100多个节点。
三是实际上可连接的单元数受总线上的时间延迟及电器负载的限制。
降低通信速率,可连接的单元数增加;提高通信速率,则可连接的单元数减少。
CAN协议覆盖了ISO规定的OSI基本参照模型中传输层、数据链路层和物理层。
数据链路层分为MAC层和LLC子层。
MAC子层是CAN协议中核心部分。
数据链路层的功能是将物理层收到的信号组织成有意义的消息,并提供传输错误控制等传输控制的流程。
具体就是消息的帧化、仲裁、应答、错误的检测和报告。
数据链路层的功能通常在CAN控制器的硬件中执行。
物理层定义了信息实际的发送方式,位时序、位的编码方式及同步的步骤,具体信号的电平、通信速度、驱动器和总线电器特性由用户根据需求自行确定。
但是ISO 定义了两种不同物理层,一种是通信速度是最高1Mbps,总线最大长度是40m,最大连接数为30;另一种是通信速度最高是125kbps,但是总线长度可达1000m,最大连接数为20。
当两个以上的单元同时发送消息时,根据标识符(ID)来决定优先级,ID并不是表示发送的目的地址,而是表示访问总线的消息的优先级。
两个以上单元同时发送消息时,对各个消息的ID每位进行逐个仲裁比较,仲裁获胜的单元可以继续发送消息。
ID给出的不是目标节点地址,而是这个报文本身的特征。
信息以广播方式在网络上发送,所有节点都可以接收到。
SPII2CUART三种串行总线的原理区别及应用
SPII2CUART三种串行总线的原理区别及应用SPI(Serial Peripheral Interface),I2C(Inter-Integrated Circuit)和UART(Universal Asynchronous Receiver/Transmitter)是常见的串行总线通信协议,它们在嵌入式系统中被广泛使用。
以下是对这三种串行总线的原理、区别及应用的详细介绍。
1. SPI(Serial Peripheral Interface)SPI是一种同步的、全双工的串行总线协议,通常由一个主设备和一个或多个从设备组成。
SPI总线上通信是基于时钟信号进行同步的,主设备产生时钟信号,从设备在时钟的边沿上发送和接收数据。
在SPI总线上,主设备控制通信的起始和结束,并通过片选信号选择与之通信的从设备。
SPI总线上的数据传输是基于多线制的,其中包括主设备的时钟线(SCLK)、数据输出线(MOSI)、数据输入线(MISO)和片选线(SS)。
SPI总线具有以下特点:-速度较快,可以达到十几MHz甚至上百MHz的传输速率。
-支持多主设备,但每个时刻只能有一个主设备处于活动状态。
-适用于短距离通信,通常在PCB上的芯片之间进行通信。
-数据传输可靠性较高。
SPI总线广泛应用于各种设备之间的数据传输,例如存储器、传感器、显示模块等。
2. I2C(Inter-Integrated Circuit)I2C也是一种同步的、双向的串行总线协议,由一个主设备和一个或多个从设备组成。
I2C总线上的通信也是基于时钟信号进行同步的,主设备产生时钟信号和开始/停止条件,从设备在时钟边沿上发送和接收数据。
I2C总线上的数据传输是基于两根线—串行数据线(SDA)和串行时钟线(SCL)。
I2C总线具有以下特点:- 通信速度较慢,大多数设备的传输速率为100kbps,但也支持高达3.4Mbps的快速模式。
-支持多主设备,可以同时连接多个主设备。
总线协议有哪些
总线协议有哪些总线协议是指控制多个设备之间数据传输和通信的规范和约定。
它定义了数据传输的格式、时序、电气特性等内容,确保不同设备之间能够有效地进行通信和交互。
下面将介绍一些常见的总线协议。
一、串行总线协议1. 串行通信协议(Serial Communication Protocol)串行通信协议主要用于串行数据传输,通过逐位传输数据来实现设备之间的通信。
常见的串行通信协议有RS-232、RS-485等。
2. I2C(Inter-Integrated Circuit)I2C是一种串行总线协议,适用于连接多个设备的短距离通信。
它采用两根信号线(时钟线和数据线)进行通信,支持多主机和多从机的通信。
3. SPI(Serial Peripheral Interface)SPI是一种同步的串行通信协议,主要用于连接微控制器和外围设备。
它使用四根信号线(时钟线、数据线、主机输出和主机输入线)进行通信,支持全双工通信。
二、并行总线协议1. PCI(Peripheral Component Interconnect)PCI是一种高速并行总线协议,主要用于连接计算机的外围设备。
它使用32位或64位的并行数据传输,支持多个设备同时访问总线。
2. USB(Universal Serial Bus)USB是一种通用的串行总线协议,用于连接计算机和外部设备。
它支持热插拔、即插即用的特性,可以同时连接多个设备。
三、网络总线协议1. EthernetEthernet是一种广泛应用于局域网(LAN)的网络总线协议。
它提供高速、可靠的数据传输,支持多台设备之间的通信。
2. CAN(Controller Area Network)CAN是一种广泛应用于汽车和工业控制领域的网络总线协议。
它支持多个设备之间的通信,并具有高抗干扰能力和可靠性。
四、其他总线协议1. HDMI(High-Definition Multimedia Interface)HDMI是一种高清晰度多媒体接口,用于连接高清视频和音频设备。
SPII2CUART三种串行总线协议及其区别
SPII2CUART三种串行总线协议及其区别SPI(Serial Peripheral Interface)是一种常见的串行总线协议,主要用于单片机和外部设备之间的通信。
SPI协议需要同时使用多个信号线,包括时钟信号、主从选择信号、数据输入信号和数据输出信号。
SPI协议是一种全双工的通信方式,数据可以双向传输。
SPI通信协议的特点包括以下几点:1.时钟信号:SPI协议中的设备之间使用了共享的时钟信号,时钟信号用于同步数据传输。
时钟信号由主设备控制,并且时钟频率可以根据需要调整。
SPI协议没有固定的时钟频率限制,可以根据实际需求进行调整。
2.主从选择信号:SPI协议中的从设备需要通过主从选择信号进行选择。
主设备通过拉低从设备的主从选择信号来选择与之通信的从设备。
可同时与多个从设备通信。
3.数据传输:SPI协议是一种由主设备控制的同步通信协议,数据在时钟的边沿上升移位。
主设备在时钟的上升沿将数据发送给从设备,从设备在时钟的下降沿将数据发送给主设备。
SPI协议的优势在于速度快、可靠性高,适合于需要高速传输的应用,如存储器、显示器驱动等。
I2C(Inter-Integrated Circuit)是一种常见的串行总线协议,主要用于集成电路之间的通信。
I2C协议仅需要两根信号线:序列时钟线(SCL)和串行数据线(SDA)。
I2C协议是一种半双工通信方式,数据只能单向传输。
I2C通信协议的特点包括以下几点:1.序列时钟线(SCL):SCL是在主设备和从设备之间共享的信号线,用于同步数据传输。
主设备通过拉高和拉低SCL来控制数据传输的时钟频率。
2.串行数据线(SDA):SDA负责数据的传输。
数据在SCL的上升沿或下降沿变化时,主设备或从设备将数据写入或读取出来。
3.地址寻址:I2C协议使用7位或10位的地址寻址,从设备可以根据地址进行选择。
I2C协议的优势在于可以连接多个设备,节省了引脚,适用于多设备之间的通信,如传感器、温度传感器、压力传感器等。
CAN、I2S、I2C、SPI、SSP 总线协议
标签:无标签一、 SPI 总线说明串行外围设备接口 SPI (serial peripheral interface)总线技术是Motorola 公司推出的一种同步串行接口, Motorola 公司生产的绝大多数 MCU(微控制器)都配有 SPI 硬件接口,如 68 系列 MCU。
SPI 用于 CPU 与各种外围器件进行全双工、同步串行通讯。
SPI 可以同时发出和接收串行数据。
它只需四条线就可以完成 MCU 与各种外围器件的通讯,这四条线是:串行时钟线(CSK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效从机选择线 CS。
这些外围器件可以是简单的 TTL 移位寄存器,复杂的 LCD 显示驱动器, A/D、D/A 转换子系统或者其他的 MCU。
当 SPI 工作时,在移位寄存器中的数据逐位从输出引脚(MOSI)输出(高位在前),同时从输入引脚(MISO) 接收的数据逐位移到移位寄存器(高位在前)。
发送一个字节后,从另一个外围器件接收的字节数据进入移位寄存器中。
主 SPI 的时钟信号 (SCK) 使传输同步。
其典型系统框图如下图所示。
SPI 主要特点有: 可以同时发出和接收串行数据 ;可以当做主机或者从机工作 ;提供频率可编程时钟 ;发送结束中断标志 ;写冲突保护 ;总线竞争保护等。
图 2 示出 SPI 总线工作的四种方式,其中使用的最为广泛的是 SPI0 和 SPI3 方式(实线表示):SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。
如果 CPOL="0",串行同步时钟的空暇状态为低电平;如果 CPOL=1,串行同步时钟的空暇状态为高电平。
时钟相位 (CPHA) 能够配置用于选择两种不同的传输协议之一进行数据传输。
如果 CPHA=0,在串行同步时钟的第一个跳变沿(上升或者下降)数据被采样;如果 CPHA=1,在串行同步时钟的第二个跳变沿(上升或者下降) 数据被采样。
高速串行总线RapidIO与PCIExpress协议分析比较
3. 1 流控方式 Rapid IO 链路层定义了三个流控制规则: 接收器
将有效缓冲区通过控制符号报告给发送器的信任规 则; 接收器在没有有效缓冲区时的重试规则; 接收器发 送请求插入空闲的抑制规则。PCI Express 的流控机制 是只有在接受设备有虚拟信道缓冲区空间接受数据包 时,才通过链路发送。流控制是硬件自动管理的,对于 软件透明。接受设备会定期发送一种流控制数据包给 发送设备,该数据包中含有流控制信用信息,来更新发 送器关于接受器虚拟信道缓冲区还有多少可用空间的 信息。
RapidIO 支持多种系统拓扑结构来保证其系统灵 活性、性能和可靠性。根据应用需求的不同,可以采用 点对点、星形、双星形、链式拓扑结构,最常用的为基于 交换的星形拓扑结构,如图 3。RapidIO 星形连接的拓
图 3 Rapid IO 互连结构
扑结构中,由端点器件和交换器件组成,端点器件发送 和接收数据包,交换器件连接多个端点器件,将数据包 从输入端口接收后经路由选择后发送到目的端口。系 统中会指定一个或者多个端点器件作为交换网络的主
RapidIO 技术最初是 Mercury Computing 公司为下 一代高速嵌入式处理的前端总线开发的专用结构,目 前由 RapidIO 行业协会监管。RapidIO 针对嵌入式系 统设备的应用设计,被定义为嵌入式系统芯片到芯片、
板到板、机架到机架的高性能互连技术。 PCI Express ( 亦称 PCIe) 是由 Intel 公司所开发。
控制包
前端 CRC
低
DMA, message,
GSM
芯片 - 串行,串 1. 25,2. 5,3. 125Gboud 并行 并 500 ~ 2 000 MHz
长
SPI、I2C、UART、USB串行总线协议的区别
SPI、I2C、UART、USB串行总线协议的区别SPI、I2C、UART三种串行总线协议的区别第一个区别当然是名字:SPI(Serial Peripheral Interface:串行外设接口);I2C(INTER IC BUS)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的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
