搜档网
当前位置:搜档网 › I2C和SPI,UART的区别

I2C和SPI,UART的区别

I2C和SPI,UART的区别
I2C和SPI,UART的区别

I2C和SPI,UART的区别

2009-11-22 23:00

SPI--Serial Peripheral Interface,(Serial Peripheral Interface:串行外设接口)串行外围设备接口,是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。

I2C--INTER-IC(INTER IC BUS:意为IC之间总线)串行总线的缩写,是PHILIPS 公司推出的芯片间串行传输总线。它以1根串行数据线(SDA)和1根串行时钟线(SCL)实现了双工的同步数据传输。具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点。在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。

能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所以任何

一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根

据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存。

最主要的优点是其简单性和有效性。它支持多主控(multimastering),其中任何能够进行发送

和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。

UART(Universal Asynchronous Receiver Transmitter:通用异步收发器):单端,远距离传输。

大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多

GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通

信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,

长度

可达1200米。

-----------------------------------------------------------------------------------------------------------------------------------

区别在电气信号线上:

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不行;

第四,看看牛人们的意见吧!

A:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一

些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。

B:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。

-----------------------------------------------------------------------------------------------------------------------------------

SPI 是一种允许一个主设备启动一个与从设备的同步通讯的协议,从而完成数据的交换。也就是SPI是一种规定好

的通讯方式。这种通信方式的优点是占用端口较少,一般4根就够基本通讯了。同时传输速度也很高。一般来说要

求主设备要有SPI控制器(但可用模拟方式),就可以与基于SPI的芯片通讯了。

SPI 的通信原理很简单,它需要至少4根线,事实上3根也可以。也是所有基于SPI的设备共有的,它们是

SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。其中CS是控制芯片是否被选中的,也就

是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总

线上连接多个SPI设备成为可能。

接下来就负责通讯的3根线了。通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数

据是一位一位的传输的。这就是SCK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO

则基于此脉冲完成数

据传输。数据输出通过SDO线,数据在时钟上沿或下沿时改变,在紧接着的下沿或上沿被读取。完成一位数据传

输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。

要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI 的设备中,至少有一个主控设备。

这样传输的特点:这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCK

时钟线的控制可以完成对通讯的控制。

SPI还是一个数据交换协议:因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。

不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。

I2C

?只要求两条总线线路:一条串行数据线SDA 一条串行时钟线SCL

?每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机从机关系软件设定地址主机可以作为主机

发送器或主机接收器?它是一个真正的多主机总线如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲

裁,防止数据被破坏

?串行的8 位双向数据传输位速率在标准模式下可达100kbit/s 快速模式下可达400kbit/s 高速模式下可达3.4Mbit/s

?片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整

?连接到相同总线的IC 数量只受到总线的最大电容400pF 限制

UART

UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传

输波特率的16倍)、UART接收器、UA RT发送器组成,硬件上由两根线,一根用于发送,一根用于接收。

显然,如果用通用IO口模拟UA RT总线,则需一个输入口,一个输出口。

UART常用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算

机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。

明显可以看出,SPI和UART可以实现全双工,但I2C不行。

-------------------

-----------------------------------------------------------------------------------------------------------------------------------

SPI通常有SCK时钟,STB片选,DATA数据信号三个信号。 I2C通常有 SDA数据和SCL时钟

两个信号。

SPI:Motorola推出的同步串行通讯方式,三线同步总线,硬件强大,软件相对简单,cpu有

更多时间处理其他事务。SCK时钟,STB片选,DATA数据信号三信号。多了一个片选信号

I2C:PHilips推出的串行总线,一根SDA串行数据线,一根串行时钟线SCL。按照地址来计算的

-----------------------------------------------------------------------------------------------------------------------------------

UART

Universival Asychronous Receiver/Transmitter(通用异步串行口),UART是一种较为通用的数据传输的方法(即Start Bit+D

ata+Check+StopBit),而COM口中Rx、Tx的数据格式即为UART。UART和RS232是两种异步数据传输标准.计算机中的COM1和COM2都是RS232串行通信标准接口。当Uart接口连到PC机上时,需要接RS232电平转换电路。

UART使用发送数据线TXD和接收数据线RXD来传送数据,接收和发送可以单独进行也可以同时进行。它传送数据的格式有

严格的规定,每个数据以相同的位串形式传送,每个串行数据由起始位,数据位,奇偶校验位和停止位组成。从起始位到停止位结束的时间称为一帧(frame),即一个字符的完整通信格式。

SPI

Serial Perheral Interface,是一种全双工同步串行接口标准,串行通信的双方用四根线进行通信,这四根连线分别是:片选信

号,I/O时钟,串行输入,串行输出,这种接口的特点是快速,高效,并且操作起来比I2C要简单一些,接线也比较简单,TLC2543提供SPI接口。

I2C

Inter-Integrated Circuit(集成电路之间), I2C总线是一种由PHILIPS公司开发的两线式双向串行总线,用于连接微控制器

及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。I2C属于两线式串行总线,它由数据线SDA和时钟SCL构成的串行总线,

可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条

总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,IC2总

线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信

号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对

比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。

式控制系统具有明显的优越性。

I2CBus与SMBus间技术差异

I2C Bus与SMBus间技术差异 前言: 关于I2C与SMBus,许多人很少去谈论与了解两者的细节差异,包括很多国外的简报,文章也经常将两者混写、交杂描述、交替运用。 确实,在一般运用下,I2C Bus与SMBus没有太大的差别,从实际接线上看也几乎无差异,甚至两者直接相连多半也能相安无误地正确互通并运作。不过若真要仔细探究,其实还是有诸多不同,如果电子设计工程师不能明辨两者的真实差异,那么在日后的开发设计的验证纠错阶段必然会产生困扰,为此本文将从各层面来说明I2C Bus与SMBus的细微区别,期望能为各位带来些许帮助。 我写这篇文章,可以理解为郭長祐先生博客中相关文章的读书笔记,我可没有那么高的造诣,关于I2C Bus的基础,可参考先生之前的「I2C 界面之线路实务」,网址为: https://www.sodocs.net/doc/9d10871822.html,/n/article.asp?id=304799064272FED148256FDC00481D68 当然也可以去参考Philips半导体网站的I2C官方规格: https://www.sodocs.net/doc/9d10871822.html,/acrobat/literature/9398/39340011.pdf 运用背景、版本演进之别 首先从规格的制订背景开始,I2C是在设计电视应用时所研发的界面,首版于1992 年发表;而SMBus(System Management Bus)则是Intel与Duracell (金顶电池)共同制订笔记本电脑所用的智能型电池(Smart Battery)时所研发的接口,首版于1995 年发表,不过SMBus文件中也提及,SMBus确实是参考自I2C,并以I2C为基础所衍生成。 I2C起源于电视设计,但之后朝通用路线发展,各种电子设计都有机会用到I2C;而SMBus则在之后为PC所制订的先进组态与电源管理接口(Advanced Configuration & Power Interface;ACPI)规范中成为基础的管理讯息传递接口、控制传递接口。 虽然I2C与SMBus先后制订时间不同,但都在2000年左右进入成熟化改版,I2C的过程改版以加速为主要诉求,而SMBus以更切合Smart Battery及ACPI的需求为多。 I2C三次主要改版: 1992 年v1.0 1998 年v2.0 2000 年v2.1 SMBus三次主要改版: 1995 年v1.0 1998 年v1.1 2000 年v2.0

总线协议及SPI时序图详解

SPI总线协议及SPI时序图详解 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简 SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,上升沿发送、下降沿接收、高位先发送。 上升沿到来的时候,sdo上的电平将被发送到从设备的寄存器中。 下降沿到来的时候,sdi上的电平将被接收到主设备的寄存器中。 假设主机和从机初始化就绪:并且主机的sbuff=0xaa (10101010),从机的sbuff=0x5一遍(假设上升沿发送数据)。 --------------------------------------------------- 脉冲主机sbuff 从机sbuff sdi sdo --------------------------------------------------- 0 00-0 10101010 01010101 0 0 --------------------------------------------------- 1 0--1 0101010x 10101011 0 1 1 1--0 0101010010101011 0 1 --------------------------------------------------- 2 0--1 1010100x 01010110 1 0 2 1--0 1010100101010110 1 0 ---------------------------------------------------

简要对比TWI总线与I2C总线

简要对比TWI总线与I2C总线 摘要在简要对比TWI总线与I2C总线的基础上,详细介绍TWI总线的内部模块、工作时序和工作模式,并给出一个编程实例加以说明.对TWI总线和传统的I2C总线的正确区分及使用具有现实的指导意义。 关键词两线串行总线TWI I2C AVR系列的单片机内部集成了TWI(Two-wire SerialInterface)总线。该总线具有I2C总线的特点,即接线简单,外部硬件只需两个上拉电阻,使用时钟线SCL和数据线SDA就可以将128个不同的设备互连到一起;而且支持主机和从机操作,器件可以工作于发送器模式或接收器模式,数据传输率高达400 kHz。正因为TWI总线具有这么多的优点,因此受到了使用者的青睐。 由于该总线与传统的I2C总线极其相似。因此不少人误以为TWI总线就是I2C总线,其实这只是一种简单化的理解。TWI总线是对I2C总线的继承和发展。它定义了自已的功能模块和寄存器,寄存器各位功能的定义与I2C总线并不相同;而且TWI总线引入了状奁寄存器,使得TWI总线在操作和使用上比I2C总线更为灵活。在实际应用上,由于大部分单片机内部没有集成I2C总线,因此单片机的控制是通过模拟I2C总线的时序来完成其操作的。 AVR系列的单片机内部集成了TWI总线,而且其用法也比I2C更为灵活。本文结合一个实例对TWI总线的内部模块、工作时序和工作模式进行了详细介绍,目的在于正确区分TWI 总线和传统的I2C总线,对如何正确使用TWI总线编程也具有现实的指导意义。 1 TWI内部模块 TWI内部由总线接口单元、比特率发生器、地址匹配单元和控制单元等几个子模块组成,如罔1所示。图中,SCL、SDA为MCU的TWI接口引脚。引脚的输出驱动器包含一个波

单片机软件模拟SPI接口—加深理解SPI总线协议

SPI — SPI SPI(Serial Peripheral Interfacer ) SPI RAM EEPROM FlashROM A D D A LED LED I O UART SPI I O SPI I O AT89C205l SPI EEPROM 93CA6 1 I O SPI 93C46 SPI 93CA6 SPI 4 I O (SK) DO DI CS (MSB) (LsB) 93C46 SPI 2

SPI SPI AT89C2051 SPI 1 AT89C2051 EEPROM 93C46 P1 0 SPI SDO P1 2 SPI SCK P1 3 SPI SCS P1 1 SPI SDI P1 2(SCK) 0( ) AT89C2051 P1 0 1 (1) 2 (10) 6 (A5A4A3A2A1A0) P1 1 1 (0) l6 ( ) AT89C2051 P1 0 1 (1) 2 (01) 6 (A5A4A3A2A1A0) P1 0 l6 ( ) (WEN)) 1 (1) 2 (00) 6 (11XXXX) (WDS)) 1 (1) 2 (00) 6 (00XXXX) C51 SPI // I/O sbit SDO=P1^0 sbit SDI=P1^1 sbit SCK=P1^ 2 sbit SCS=P1^3 sbit ACC_7= ACC^7 unsigned int SpiRead(unsigned char add) { unsigned char i unsigned int datal6 add&=0x3f /*6 */ add |=0x80 /* l0*/ SDO=1 /* 1 */ SCK=0 SCK=1 for(i=0 i<8 i++)/* */ { if(add&0x80==1) SDO=1 else SDO=0 SCK=0 /* */ SCK=1 add<<= 1 } SCK=1 /* 1 */

SPI通信协议(SPI总线)学习

SPI通信协议(SPI总线)学习 各位读友大家好!你有你的木棉,我有我的文章,为了你的木棉,应读我的文章!若为比翼双飞鸟,定是人间有情人!若读此篇优秀文,必成天上比翼鸟! SPI通信协议(SPI总线)学习1、什么是SPI?SPI是串行外设接口(Serial Peripheral Interface)的缩写。是Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。2、SPI优点支持全双工通信通信简单数据传输速率块3、缺点没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据可靠性上有一定的缺陷。4、特点1):高速、同步、全双工、非差分、总线式2):主从机通信模式5、协议通信时序详解1):SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。(1)SDO/MOSI –主设备数据输出,从设备数据输入;(2)SDI/MISO –主设备数据输入,从设备数据输出;(3)SCLK –时钟信号,由主设备产生;(4)CS/SS –从设备使能信号,由主设备控制。当有多个从设备的时候,因为每个从设备上都有一个片选引脚接入到主设备机中,当我们的主设备和某个从设备通信时将需要将从设备对应的片选引脚电平拉低或者是拉高。2):需要说明的是,我们SPI通信有4种不同的模式,不

同的从设备可能在出厂是就是配置为某种模式,这是不能改变的;但我们的通信双方必须是工作在同一模式下,所以我们可以对我们的主设备的SPI模式进行配置,通过CPOL(时钟极性)和CPHA(时钟相位)来控制我们主设备的通信模式,具体如下:Mode0:CPOL=0,CPHA=0Mode1:CPOL=0,CPHA=1Mode2:CPOL=1,CPHA=0Mode3:CPOL=1,CPHA=1时钟极性CPOL 是用来配置SCLK的电平出于哪种状态时是空闲态或者有效态,时钟相位CPHA是用来配置数据采样是在第几个边沿:CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时CPOL=1,表示当SCLK=1时处于空闲态,所以有效状态就是SCLK处于低电平时CPHA=0,表示数据采样是在第1个边沿,数据发送在第2个边沿CPHA=1,表示数据采样是在第2个边沿,数据发送在第1个边沿例如:CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。CPOL=0,CPHA=1:此时空闲态时,SCLK 处于低电平,数据发送是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。CPOL=1,CPHA=0:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿。CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据发送是在第

SPI总线协议SPI时序图详解

SPI总线协议及SPI时序图详解 SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。 下面为一种情况例举: 上升沿发送、下降沿接收、高位先发送。 上升沿到来的时候,sdo上的电平将被发送到从设备的寄存器中。 下降沿到来的时候,sdi上的电平将被接收到主设备的寄存器中。 假设主机和从机初始化就绪:并且主机的sbuff=0xaa (10101010),从机的sbuff=0x55 (01010101),下面将分步对spi的8个时钟周期的数据情况演示一遍(假设上升沿发送数据)。 --------------------------------------------------- 脉冲主机sbuff 从机sbuff sdi sdo --------------------------------------------------- 0 00-0 10101010 01010101 0 0 --------------------------------------------------- 1 0--1 0101010x 10101011 0 1 1 1--0 0101010010101011 0 1 --------------------------------------------------- 2 0--1 1010100x 01010110 1 0 2 1--0 1010100101010110 1 0 --------------------------------------------------- 3 0--1 0101001x 10101101 0 1 3 1--0 0101001010101101 0 1 --------------------------------------------------- 4 0--1 1010010x 01011010 1 0 4 1--0 1010010101011010 1 0 --------------------------------------------------- 5 0--1 0100101x 10110101 0 1 5 1--0 0100101010110101 0 1 --------------------------------------------------- 6 0--1 1001010x 01101010 1 0 6 1--0 1001010101101010 1 0 --------------------------------------------------- 7 0--1 0010101x 11010101 0 1 7 1--0 0010101011010101 0 1 --------------------------------------------------- 8 0--1 0101010x 10101010 1 0 8 1--0 01010101 10101010 1 0 这样就完成了两个寄存器8位的交换,上面的0--1表示上升沿、1--0表示下降沿,sdi、 sdo相对于主机而言的。根据以上分析,一个完整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的名准备数据,主机在下一个8位时钟周期才把数据读回来。 SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数

SPI、I2C、UART三种串行总线的原理、区别及应用

简单描述: 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:高速同步串行口。3~4线接口,收发独立、可同步进行 UART:通用异步串行口。按照标准波特率完成双向通讯,速度慢 SPI:一种串行传输方式,三线制,网上可找到其通信协议和用法的 3根线实现数据双向传输 串行外围接口 Serial peripheral interface UART:通用异步收发器 UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了

SPI总线协议

原文:SanDisk Secure Digital Card - Product Manual Version 2.2 (Document No. 80-13-00169 September 2004)第5章 SPI总线协议译者:醇酒。请尊重我的劳动,勿抄袭和修改本文中的内容,若文中翻译有不妥之处,请Email:chunjiu○https://www.sodocs.net/doc/9d10871822.html,处指正,不胜感激! SD卡规格书第五章 SPI总线协议 译者注:

SPI总线协议目录 5.1. SPI总线协议 5.1.1. 模式选择 5.1.2. 总线传送保护 5.1.3. 数据的读取 5.1.4. 数据写入 5.1.5. 擦除和写保护处理 5.1. 6. 读取CID/CSD寄存器 5.1.7. 复位顺序 5.1.8. 时钟控制 5.1.9. 错误条件 5.1.9.1. CRC和无效指令 5.1.9.2. 读取、写入和擦除的超时情形 5.1.10.存储器阵列分布 5.1.11. 卡的锁定/解锁 5.1.12. 特殊用途的命令集 5.1.13. 版权保护命令集 5.2. SPI命令设置 5.2.1. 命令格式 5.2.2. 命令类 5.2.2.1. 详细的命令描述 5.2.3.应答 5.2.3.1 R1 的格式 5.2.3.2. R1b的格式 5.2.3.3. R2的格式 5.2.3.4. R3 的格式 5.2.3.5. 数据应答 5.2.4. 数据标记 5.2.5.数据错误标记 5.2. 6. 清除状态位 5.3. 卡寄存器 5.4. SPI总线时序图解 5.4.1. 命令 / 应答 5.4.2. 数据读取 5.4.3. 数据写入 5.4.4. 时钟数值 5.5. SPI 电气接口 5.6. SPI总线操作条件(环境) 5.7.总线时钟 附录: 英文特殊命令表 英文通用命令表 存储器阵列图 产品规格表 主控制器设计参考(简介,无实际内容)

SPI_IIC_USART_区别

第一个区别当然是名字: SPI(Serial Peripheral Inter face:串行外设接口); 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的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI 则无所谓,因为它是有时钟的协议。 quickmouse:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。 SPI总线 ----串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口。Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列MCU。SPI总线是一种三线同步总线,因其硬件功能很强,所以,与SPI有关的软件就相当简单,使CPU有更多的时间

SPI协议的简单实例说明

SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。 假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。 那么第一个上升沿来的时候数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这时寄存器=0101010sdi,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序。 例子: 假设主机和从机初始化就绪:并且主机的sbuff=0xaa,从机的sbuff=0x55,下面将分步对spi的8个时钟周期的数据情况演示一遍:假设上升沿发送数据 这样就完成了两个寄存器8位的交换,上面的上表示上升沿、下表示下降沿,sdi、sdo相对于主机而言的。其中ss引脚作为主机的时候,从机可以把它拉底被动选为从机,作为从机的是时候,可以作为片选脚用。根据以上分析,一个完整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的名准备数据,主机在下一个8位时钟周期才把数据读回来!!

SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如P89LPC900. SPI,是一种高速的,全双工,同步的通信总线,其工作模式有两种:主模式和从模式,无论那种模式,都支持 3Mbit/s的速率,并且还具有传输完成标志和写冲突保护标志。到目前为止,我使用过的具有SPI总线的器件,就是存储芯片Eprom:at25128,在使用过程中,发现的确是有这种总线的优点。下面以P89LPC900单片机的SPI总线来解释SPI总线的通用使用规则。 LPC900单片机的SPI接口主要由4个引脚构成:SPICLK、MOSI、MISO及/SS,其中SPICLK是整个SPI总线的公用时钟,MOSI、MISO作为主机,从机的输入输出的标志,MOSI是主机的输出,从机的输入,MISO是主机的输入,从机的输出。/SS 是从机的标志管脚,在互相通信的两个SPI总线的器件,/SS管脚的电平低的是从机,相反/SS管脚的电平高的是主机。在一个SPI通信系统中,必须有主机。 SPI总线可以配置成单主单从,单主多从,互为主从。今以互为主从模式作为讲解: 要进行SPI互为主从操作,必须遵照以下步骤: 1 对A、B进行初始化,均设为主机(需要进行以下操作)。 a) SPI端口初始化为准双向。 b) SPCTL配置为0x50,SSIG=0,SPEN=1,MSTR=1。 c) 清除SPSTAT中的SPIF及WCOL标志位为0。

i2c区别spi

I2C的数据输入输出用的是一根线,SPI则分为dataIN和dataOUT。由于这个原因,采用I2C时CPU的端口占用少,SPI多一根。但是由于I2C的数据线是双向的,所以隔离比较复杂,SPI则比较容易。所以系统内部通信可用I2C,若要与外部通信则最好用SPI带隔离(可以提高抗干扰能力)。但是I2C和SPI都不适合长距离传输。长距离时就要用485了。 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如P89LPC900. SPI,是一种高速的,全双工,同步的通信总线,其工作模式有两种:主模式和从模式,无论那种模式,都支持 3Mbit/s的速率,并且还具有传输完成标志和写冲突保护标志。 I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。 I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。 I2C的数据输入输出用的是一根线,SPI则分为dataIN和dataOUT。由于这个原因,采用I2C时CPU的端口占用少,SPI多一根。但是由于I2C的数据线是双向的,所以隔离比较复杂,SPI则比较容易。所以系统内部通信可用I2C,若要与外部通信则最好用SPI带隔离(可以提高抗干扰能力)。但是I2C和 SPI都不适合长距离传输。长距离时就要用485 了。 第一: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)

spi总线协议英文版

竭诚为您提供优质文档/双击可除spi总线协议英文版 篇一:spi总线协议及spi时序图详解 spi总线协议及spi时序图详解 spi是一个环形总线结构,由ss(cs)、sck、sdi、sdo 构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。 下面为一种情况例举: 上升沿发送、下降沿接收、高位先发送。 上升沿到来的时候,sdo上的电平将被发送到从设备的寄存器中。 下降沿到来的时候,sdi上的电平将被接收到主设备的寄存器中。 假设主机和从机初始化就绪:并且主机的 sbuff=0xaa(10101010),从机的sbuff=0x55(01010101),下面将分步对spi的8个时钟周期的数据情况演示一遍(假设上升沿发送数据)。 ---------------------------------------------------

脉冲主机sbuff从机 sbuffsdisdo--------------------------------------------------- 000-0101010100101010100--------------------------------------------------- 10--10101010x1010101101 11--0010101001010101101--------------------------------------------------- 20--11010100x010******* 21--0101010010101011010--------------------------------------------------- 30--10101001x1010110101 31--0010100101010110101--------------------------------------------------- 40--11010010x010******* 41--0101001010101101010---------------------------------

iic和spi有什么区别

iic和spi有什么区别 什么是iicIIC 即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的一种简单、双向、二线制、同步串行总线,主要是用来连接整体电路(ICS),IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。这种方式简化了信号传输总线接口。 IIC简介即I2C,一种总线结构。例如:内存中的SPD信息,通过IIC,与BX芯片组联系,IIC 存在于英特尔PIIX4结构体系中。 随着大规模集成电路技术的发展,把CPU和一个单独工作系统所必需的ROM、RAM、I/O 端口、A/D、D/A等外围电路集成在一个单片内而制成的单片机或微控制器愈来愈方便。目前,世界上许多公司生产单片机,品种很多。其中包括各种字长的CPU,各种容量的ROM、RAM以及功能各异的I/O接口电路等等,但是,单片机的品种规格仍然有限,所以只能选用某种单片机来进行扩展。扩展的方法有两种:一种是并行总线,另一种是串行总线。由于串行总线的连线少,结构简单,往往不用专门的母板和插座而直接用导线连接各个设备。因此,采用串行线可大大简化系统的硬件设计。PHILIPS公司早在十几年前就推出了I2C串行总线,利用该总线可实现多主机系统所需的裁决和高低速设备同步等功能。因此,这是一种高性能的串行总线。 飞利浦电子公司日前推出新型二选一I2C主选择器,可以使两个I2C主设备中的任何一个与共享资源连接,广泛适用于从MP3播放器到服务器等计算、通信和网络应用领域,从而使制造商和终端用户从中获益。PCA9541可以使两个I2C主设备在互不连接的情况下与同一个从设备相连接,从而简化了设计的复杂性。此外,新产品以单器件替代了I2C多个主设备应用中的多个芯片,有效节省了系统成本。 什么是spiSPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时

SPI通信协议(SPI总线)学习

SPI通信协议(SPI总线)学习 1、什么是SPI? SPI是串行外设接口(Serial Peripheral Interface)的缩写。是Motorola 公司推出的一 种同步串行接口技术,是一种高速的,全双工,同步的通信总线。 2、SPI优点 支持全双工通信 通信简单 数据传输速率块 3、缺点 没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据可靠性上有一定的缺陷。 4、特点 1):高速、同步、全双工、非差分、总线式 2):主从机通信模式 5、协议通信时序详解 1):SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。 (1)SDO/MOSI – 主设备数据输出,从设备数据输入; (2)SDI/MISO – 主设备数据输入,从设备数据输出; (3)SCLK – 时钟信号,由主设备产生; (4)CS/SS – 从设备使能信号,由主设备控制。当有多个从设备的时候,因为每个从设 备上都有一个片选引脚接入到主设备机中,当我们的主设备和某个从设备通信时将需 要将从设备对应的片选引脚电平拉低或者是拉高。 2):需要说明的是,我们SPI通信有4种不同的模式,不同的从设备可能在出厂是就是配置为某种模式,这是不能改变的;但我们的通信双方必须是工作在同一模式下,所以我们可以对我们的主设备的SPI模式进行配置,通过CPOL(时钟极性)和CPHA(时钟相位)来控制我们主设备的通信模式,具体如下: Mode0:CPOL=0,CPHA=0 Mode1:CPOL=0,CPHA=1 Mode2:CPOL=1,CPHA=0 Mode3:CPOL=1,CPHA=1 时钟极性CPOL是用来配置SCLK的电平出于哪种状态时是空闲态或者有效态,时钟相位CPHA 是用来配置数据采样是在第几个边沿: CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时 CPOL=1,表示当SCLK=1时处于空闲态,所以有效状态就是SCLK处于低电平时 CPHA=0,表示数据采样是在第1个边沿,数据发送在第2个边沿 CPHA=1,表示数据采样是在第2个边沿,数据发送在第1个边沿 例如: CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。

SPI,UART,I2C都有什么区别,及其各自的特点

SPI,UART,I2C都有什么区别,及其各自的特点 区别: SPI:高速同步串行口。3~4线接口,收发独立、可同步进行 UART:通用异步串行口。按照标准波特率完成双向通讯,速度慢 I2C:一种串行传输方式,三线制,网上可找到其通信协议和用法的 3根线实现数据双向传输 串行外围接口Serial peripheral interface UART:通用异步收发器 UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。作为接口的一部分,UART还提供以下功能: 将由计算机内部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记,并从接收数据流中删除启停标记。处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备)。可以处理计算机与外部串行设备的同步管理问题。有一些比较高档的UART还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理数据前在其缓冲区内存储16字节数据,而通常的UART是8250。现在如果您购买一个内置的调制解调器,此调制解调器内部通常就会有16550 UART。 I2C:能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存。 更详细的区别: 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS:意为IC之间总线) UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 第二,区别在电气信号线上:

SMBus与I2C总线的区别

SMBus与I2C总线的区别 The I 2C bus and the SMBus are popular 2-wire buses that areessentially compatible with each other. Below,significantdifferences between the two buses. I2C SMBus Timeout No Yes Minimum Clock Speed DC 10kHz Maximum Clock Speed 100kHz (400kHz and 2MHz also available) 100kHz V HIGH0.7 x V DD, 3.0V Fixed 2.1V V LOW0.3 x V DD, 1.5V Fixed 0.8V Max I 3mA 350(iA Clock Nomenclature SCL SMBCLK Data Nomenclature SDA SMBDAT General Call Yes Yes Alert# No Yes SMBus与I2C的差别 SMBus与I2C总线之间在时序特性上存在一些差别。首先, SMBus需要一定数据保持时间,而I2C 总线则是从内部延长数据保持时间。 SMBus具有超时功能,因此当SCL太低而超过35 ms时,从器件将复位正在进行的通信。相反,I2C采用硬件复位。SMBus具有一种警报响应地址(ARA),因此当从器件产生一个中断时,它不会马上清除中断,而是一直保持到其收到一个由主器件发送的含有其地址的ARA为 止。SMBus只工作在从10kHz到最高100kHz。最低工作频率10kHz是由SMBus超时功能决定的 (1)SMBus是一种二线制串行总线,1996年第一版规范开始商用。它大部分基于I2C总线规范。和I2C 一样,SMBus不需增加额外引脚,创建该总线主要是为了增加新的功能特性,但只工作在100KHZ且专 门面向智能电池管理应用。它工作在主/从模式:主器件提供时钟,在其发起一次传输时提供一个起始位, 在其终止一次传输时提供一个停止位;从器件拥有一个唯一的7或10位从器件地址。 SMBus与I2C总线之间在时序特性上存在一些差别。首先, SMBus需要一定数据保持时间,而I2C 总线则是从内部延长数据保持时间。SMBus具有超时功能,因此当 SCL太低而超过35 ms时,从器件将 复位正在进行的通信。相反,I2C采用硬件复位。SMBus具有一种警报响应地址(ARA),因此当从器件产生一个中断时,它不会马上清除中断,而是一直保持到其收到一个由主器件发送的含有其地址的ARA为止。 SMBus只工作在从10kHz到最高100KHZ。最低工作频率10kHz是由SMBus超时功能决定的。

(完整)spi总线协议详细说明

SPI总线原理与应用篇《电子制作》2008年9月站长原创,如需引用请注明出处 大家好,通过以前的学习,我们已经对51单片机综合学习系统的使用方法及学习方式有所了解与熟悉,学会了使用IIC总线的基本知识,体会到了综合学习系统的易用性与易学性,这一期我们将一起学习SPI总线的基本原理与应用实例。 先看一下我们将要使用的51单片机综合学习系统能完成哪些实验与产品开发工作:分别有流水灯,数码管显示,液晶显示,按键开关,蜂鸣器奏乐,继电器控制,IIC总线,SPI 总线,PS/2实验,AD模数转换,光耦实验,串口通信,红外线遥控,无线遥控,温度传感,步进电机控制等等。主体系统如图1所示,其配套书本教程《单片机快速入门》如图2所示。 图1 51单片机综合学习系统主机部分图片

图2 51单片机综合学习系统配套书本教程——《单片机快速入门》 上图是我们将要使用的51单片机综合学习系统硬件平台,如图1所示,本期实验我们用到了综合系统主机、板载的AT93C46芯片,综合系统其它功能模块原理与使用详见前几期《电子制作》杂志及后期连载教程介绍。 SPI总线简介 SPI总线基本概念 SPI ( Serial Peripheral Interface ———串行外设接口) 总线是Motorola公司推出的一种同步串行接口技术。SPI总线系统是一种同步串行外设接口,允许MCU 与各种外围设备以串行方式进行通信、数据交换。外围设备包括FLASHRAM、A/ D 转换器、网络控制器、MCU 等。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。其工作模式有两种:主模式和从模式。SPI是一种允许一个主设备启动一个从设备的同步通讯的协议,从而完成数据的交换。也就是SPI是一种规定好的通讯方式。这种通信方式的优点是占用端口较少,一般4根就够基本通讯了(不算电源线)。同时传输速度也很高。一般来说要求主设备要有SPI控制器(也可用模拟方式),就可以与基于SPI的芯片通讯了。 SPI总线系统结构

I2C与UART的区别与比较

I2C IIC本身是为板级通讯设计,没有考虑远距离通讯.UART通讯编程简单,通讯速度远比IIC 快,可以直接使用RS485延伸通讯距离达到1km,通讯速度很容易做高。 UART是一个并行输入成为串行输出的芯片...有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信. I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用 于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优 点。 发送器:发送数据到总线的器件; 接收器:从总线接收数据的器件; 主机:初始化发送产生时钟信号和终止发送的器件; 从机:被主机寻址的器件; 多主机:同时有多于一个主机尝试控制总线但不破坏传输; 仲裁:是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使传输不被破坏 的过程; 同步:两个或多个器件同步时钟信号的过程。 两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;SDA 线上的数据必须在 时钟的高电平周期保持稳定。数据线的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变。

SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况表示起始条件; SCL 线是高电平时,SDA 线由低电平向高电平切换,这个情况表示停止条件。 发送到SDA 线上的每个字节必须为8 位,每次传输可以发送的字节数量不受限制。每个 字节后必须跟一个响应位。首先传输的是数据的最高位(MSB),如果从机要完成一些其他功能后(例如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,可以使时钟线SCL 保持低电平,迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL 后数据传输继续。 数据传输必须带响应,相关的响应时钟脉冲由主机产生。在响应的时钟脉冲期间发送器 释放SDA 线(高)。在响应的时钟脉冲期间,接收器必须将SDA 线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。 写操作 写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不 同有所不同。 读操作

相关主题