spi和iic技术的应用和比较请具体说明,好的话还会有加分

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 23:06:40
spi和iic技术的应用和比较请具体说明,好的话还会有加分

spi和iic技术的应用和比较请具体说明,好的话还会有加分
spi和iic技术的应用和比较
请具体说明,好的话还会有加分

spi和iic技术的应用和比较请具体说明,好的话还会有加分
spi的应用实例:
执行命令时,首先通过SPI串口往Flash发送一连串的数据,然后以命令字开头,除了“读状态寄存器”外,后面还要跟上页地址和页内的字节地址发及一些无关位.“读主存”时,首先需要往Flash发送64bit的命令,即:命令字52(8bit)+4个“r”+页地址(11bit)+页内字节的起始地址(9bit)+32个无关位,发送完这64bit(通常是组合成8个字节)命令后,紧跟着从Flash读数据以可以了(即后面的SCK信号使得数据从SO脚移出),每读出一个字节,字节地址自动加1,如遇到该页的末尾,只要有SCK信号,系统再加到该页的开关处读数据.在整个操作过程中,CS脚始终为“0”;当CS脚回到“1”时,将终止此次操作,SO脚恢复到高阻状态.
主存传送到Bufferx是指将2048页主存中的任何一页(由PA10~PA0决定)的内容复制到缓冲区,发送完32bit命令后,当CS脚由“0”为“1”后,数据的复制才真正开始.
主存与Bufferx的比较主要是看主存中的某一页与缓冲区是否一样,当CS脚回到“1”后,比较才开始进行,比较的结果(是否一样)记录在状态寄存器的bit6中.
把带擦除的Bufferx传送到主存就是将缓冲区的内容复制到主存中的某一页,复制前应将缓冲区的内容复制到主存中的某一页,复制前应将主存中的该页数据全部擦掉,所有这些操作只有等到CS脚回到“1”后才能进行.对于不带擦除的Bufferx传送到主存的操作,在命令执行前,指定的主存页必须已被擦除过.
以Bufferx为缓冲为主存编程就是将“写Bufferx”与“带擦除的Bufferx传送到主存”进行组合.在发送完命令后,写入Flash的数据将被写入到缓冲区内,如果遇到缓冲区末尾,要继续写入的数据又从缓冲区开头写入,直到CS脚由“0”到“1”后,主存中被指定的页的数据被擦除后再将缓冲区的数据整个复制到主存的指定页中.
3 状态寄存器及操作完成指示
一般向Flash发送57H后以可读出状态寄存器(移出时,高位在前),状态寄存器的位定义如表2所列.其中Bit7为“0”表示器件忙,为“1”表示可以接收新的命令;Bit6是比较结果位,为“0”表示主存与缓冲区的数据一样,为“1”时表示最少有一个bit不同;Bit5~Bit3为该系列器件的容量指示位,一共种8种容量,对于AT45D041来说,该区域为“011”;Bit2~Bit0未使用.一共蛾6种操作会使器件处于“忙”状态,这6种操作是:
●主存传送到Bufferx;
●主存与Bufferx比较;
●带擦除的Bufferx传送到主存;
●不带擦除的Bufferx传送到主存;
●Bufferx为缓冲对主存编程;
●Bufferx为缓冲自动重编程.
这6种操作均需要监视状态寄存器,以便知道操作是否完成.除了监视状态寄存器外,更好的方法是将芯片管脚RDY/BUSY与CPU的某个中断相连,并将中断设置为升沿触发,操作一完成即可触发中断,这样可能节省大量的CPU时间.
4 SPI接口及应用
4.1 SPI接口
串行外围接口一共有4种操作模式,图3为其时序图.这些操作模式决定了传送与接收的时钟相位和极性,换句话说,也就是这些模式决定了利用时钟信号的哪个沿来控制数据传判断的方向.这些模式一般由主机(CPU)来设置.
当CPOL=0时,时钟信号SCK在空闲时为“0”,即模式0和1;
如果CPOL=1,则SCK在空闲时为“1”,即模式2和3;
当CPHA=CPOL时,数据总在时钟信号的上升沿移进Flash,下降沿移出Flash,即模式0和3.
4.2 SPI接口应用
对于12位的数据采集系统,使用AD公司的Flash集成MCU芯片AduC812可使电路设计更加简单快捷.由于AduC812有一个与I2C兼容的SPI接口,所以与AT45系列的Flash接口只需将相应的管脚相连即可,只不过要将AduC812设为主机,而AT45D041自然以是从机了.在AduC812中有SPI控制寄存器(SPICON)与SPI数据寄存器(SPIDAT),数据寄存器的使用如同使用RS232的Buffer一样简单,控制寄存器的位定义如表3所列.现对其各个位定义进行说明:
ISPI:SPI中断位,在每次传送过错SPIDAT中的数据后,置“1”;
WCOL:写冲突错误标志位,在写保护状态下编程会导致该位置“1”;
SPE:SPI允许控制位,为“0”时禁止;
SPIM:主从模式选择位,为“1”时选择主机;
CPOL:时钟极性选择,为“0”时,将使CLK在空闲时为低电平;
CPHA:时钟相位选择,为“0”时,在时钟上升沿被锁存;
SPR1、SPR0:SPI波特率选择位,BITRATE=Fose/[4,8,32,64].“00”选择除以4.
4.3 SPI操作模式选择
AT45系列的Flash支持SPI模式0和3,并且在每个CS信号的下降沿,可通过采样时钟信号的状态自动选择操模式.由于在上电或复位时器件将自动进入缺省的模式3,所以使用械比较可靠.在AduC812的应用中,选择模式0和3对“写”Flash没有差别,但在“读”Flash时,选择模式0会使从Flash读出的数据总缺少一个bit,这可能是模式0中数据有效的时间比较靠后的缘故.图4和图5分别是模式0和模式3的“读主存”时序图,由时序图可以看出:模式0中数据的有效时间明显比模式3的有效时间靠后半个时钟周期.
表2 状态寄存器的位定义
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
RDY/BUSY COMP 0 1 1 × × ×
表3 SPI控制寄存器的位定义
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
ISPI WOOL SPE SPIM CPOL CPHA SPR1 SPR0
http://www.softwelt.com/Tech/TechDetail.aspx?TechID=178281
iic的应用实例
IIC总线通讯接口器件的CPLD实现
2007-03-09 19:03:27 作者:张冬冬 来源:互联网
摘要:介绍了采用ALTERA公司的可编程器件EPF10K10LC84-3实现IIC总线的通讯接口的基本原理,并给出了部分的VHDL语言描述.该通讯接口与专用的接口芯片相比,具有使用灵活、系统配置方便的特点. 关键词:IIC总线 CPLD VHDL ISP IIC总线是PHILIPS公司开发的一种简单、双向、二线制、同步串行总线.它只需两根线(串行时钟线和串行数据线)即可在连接于总线上的器件之间传送信息.该总线是高性能串行总线,具备多主机系统所需要的裁决和高低速设备同步等功能,应用极为广泛. 目前市场上虽然有专用IIC总线接口芯片,但是地址可选范围小、性能指标固定、功能单一、使用不方便.根据IIC总线的电气特性及其通讯协议,采用ALTERA公司的FLEX10K系列ISP器件EPF10K10LC84-3可以方便地实现IIC总线的通讯接口,且具有高速、易调试、可以灵活地实现地在线配置等优点,同时大大地减少了系统的开发周期. 1 IIC总线的数据传输规范 IIC总线主从机之间的一次数据传送称为一帧,由启动信号、地址码、若干数据字节、应答位以及停止信号等组成.通讯启动时,主动发送一个启动信号(当SCL线上是高电平时,SDA线上产生一个下降沿)、从机的地址码(8位)和读写信号;通讯停止时,主机发送一个停止信号(当SCL线上是高电平时,SDA线上产生一个上升沿).在数据传送过程中,当SCL线上是高电平时,必须保证SDA线上的数据稳定;传送一个字节的数据,必须由接收机发一个应答信号.总线的传输码速率为100kbps(标准)~400kbps(高速).采用+5V电源供电时,输入电平规定为:VILmax=1.5V,VIHmin=3V;采用宽电源电压时,电平规定为:VILmax=1.5VDD,VIHmin=3VDD. IIC总线的通讯过程如图1所示. 2 ISP的逻辑实现 基于IIC总线的数据传输规范,为完成IIC总线的数据发送与接收,采用ISP器件实现通讯接口的逻辑功能框图如图2所示.通过频选、控制、可控时钟可获得100kHz、200kHz、300kHz、400kHz的时钟频率.器件退出总线竞争后,时钟线置高电平. 2.1 通讯的启动与停止 在主机方式下,接收数据时,ISP器件必须通过启动信号生成器送出一个启动信号,然后发送从机的地址信号和读写信号.只有这样,才能在总线上发送数据.该过程由控制寄存器启动.VHDL描述如下: PROCESS(WR,CS) ——WR IS CPU WRITE SIGNAL ——CS IS THIS CHIP"S SELECT SIGNAL ADDRS:="0"; IF(Ctrreg(0)="1"AND Ctrreg(3)="1" AND SCL1="1")THEN ——Ctrreg 为控制寄存器 CLK1COUNT:="0"; SDA1:="1"; IF(CLK1 EVENT AND CLK="0")THEN IF(CLK1COUNT="3")THEN SDA1:="1"; ADDRS:="1"; Ctrreg(3):="0"; CSTA:="1"; ELSE CLK1COUNT:=CLK1COUNT+1; END IF; END IF; END IF; IF(ADDRS="1"AND SCL1 "EVENT AND SCL1="1")THEN %26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;——将数据寄存器中的数据 %26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;%26;#183;——及WR信号移位发出(略) END IF; END PROCESS; 当一次通讯结束时,主机要发送停止信号.该过程同样同控制寄存器控制;当控制字第二位为"1"时,ISP器件产生停止信号.VHDL描述与启动类似. 2.2 发送数据 在主机方式下,完成启动和地址信号发送后即开始发送数据.发送数据时并串转换器在SCL的下降沿移位,保证SCL高电平时SDA上的数据稳定.发送的进程由WR信号和从机的应答信号启动. 当ISP器件在总线竞争失败时,由处理器将ISP器件转为从机工作方式,处理器向地址检测电路送该器件在系统中的地址.只有在接收到的地址信息与该器件所设的地址相同时,才发出应答信号,开始通讯.每发送一个字节即将SDA拉高,等待接收机的应答信号,准备下一个数据. 2.3 接收数据 在主机方式下,完成通讯启动和地址信号发送后便开始准备接收数据.每接收一个字节后要发出应答信号,产生一个负脉冲作为中断请求信号输出给处理器.若此时系统忙,则拉低SCL电平迫使发送机进入等待状态.从机方式下的接收与主机方式下一样.VHDL描述如下: PROCESS(SDA1) SACK:="0"; FULL1:="0"; STP:="0"; INTQ:="1"; IF(CSTA="1" AND ADDOK="1")THEN IF(SCL"1"EVENT AND SCL1="0")THEN ……——接收数据,串入并出移位(略) FULL1:="1"; END IF; END IF; IF(FULL1="1")THEN IF(RD"EVENT AND RD="1"AND SCL1"EVENT AND SCL1="0 AND BUSY="0")THEN SDA1:="0"; FULL:="0"; INTQ:="0"; ELSE SDA1:="1"; IF(CLK1"EVENT AND CLK="0" AND FULL1="0")THEN IF(CLK1COUNT"20")THEN INTQ:="1"; CLK1COUNT:="0"; ELSE CLK1COUNT:=CLK1COUNT+1; END IF; END IF; IF(SLAVE="1" AND SCL="1" AND SDA "EVENT AND SDA="1")THEN STP:="1"; CSTA:="0"; END IF; END IF; END PROCESS; 2.4 总线仲裁 在通讯过程中,ISP器件在发送数据的同时接收总线上的数据,将该数据与已送的数据进行比较,若不相同则置位状态发生器的SLAVE,表示该主机退出竞争.通过处理给控制寄存器发送控制字可以让ISP器件转入从机工作方式.这时启动地址检测,禁止SCL的发送.在一次通讯结束后,将状态生成器的END置位,此时处理器可以再次将ISP器件设置为主机方式. 2.5 控制寄存器与状态生成器 控制寄存器主要是定义ISP器件的工作状态,其各位的定义为: BUSY CLKEN CLKS2 CLKS1 STA STP M/S BUSY:若该位为"1",主机作为接收机时,不发应答信号; STA:启动信号位; STP:停止信号位; M/S:主从机位,用于选择芯片工作状态(主机还是从机); CLKS1、CLKS2:频选控制位; CLKEN:SCL使能位,该位为1时SCL置高电平. 状态生成器可以生成工作状态信号(中断、IIC总线竞争、从机方式时通讯开始与结束)供处理器查询处理. 3 参数配置 该器件可以配置为从100kbps(标准)到400kbps(高速)的任何传送速度,以满足不同的需要.只需在VHDL(描述的结构体中指明配置的参数即可实现配置,非常方便. 本设计只使用一片可编程芯片即可完成IIC总线接口的芯片功能.由于采用VHDL-93语言进行设计,具有良好的可移植性,可用于其它ISP厂家的产品中.通过ByteBlast下载线可以在线改变其功能,体现了ISP器件的优越性.
http://news.eeworld.com.cn/designarticles/eda/200703/11369.html
spi和iic区别:
SPI总线
----串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口.Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列MCU.SPI总线是一种三线同步总线,因其硬件功能很强,所以,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务.
IIC总线是荷兰飞利浦PHILIPS开发的一种高效,实用,可靠的双向二线制(也有3线制,家电很少用)串行数据传输结构总线,该总线使各电路分割成各种功能的模块,并进行软件化设计,各个功能模块电路内都有集成一个IIC总线接口电路,因此都可以挂接在总线上,很好的解决了众多功能IC与CPU之间的输入输出接口,使其连接方式变得十分简单.
IIC总线上的器件分为主控器和被控器两大类它们之间只要在正常工作,总有一个IIC在总线上发送信息数据(一般是在开机后cpu首先像各个功能模块电路发出自检信号,得到各个功能模块电路正常反馈的数据信号后机器才进入正常工作状态).