ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:336.74KB ,
资源ID:9398540      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9398540.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SPI总线bus的综述.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SPI总线bus的综述.docx

1、SPI总线bus的综述SPI总线综述SPI是英文Serial Peripheral Interface的缩写,中文意思是串行外围设备接口。SPI是Motorola公司推出的一种同步串行通讯方式,是一种标准的四线同步双向串行总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。SPI可以使微控制器(MCU)与各种外围设备(包括FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和微控制器等)以串行方式进行通信以交换信息。SPI总线使用同步协议传送数据,接收或发送数据时由主机产生的时钟信号控制。SPI接口可以连接多个SPI芯片或装置,主机通过选择它们的片选

2、来分时访问不同的芯片1 基本原理SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,设备之间有4线模式(双向传输时)或3线模式(单向传输时)。在4线模式下,它们是 SDI(数据输入),SDO(数据输出),SCLK(时钟),CS(片选);在3线模式下,SDI 和 SDO并为一根,定义为SIO。(1)MOSISPI 总线主机输出/从机输入(SPI Bus Master Output/Slave Input)(2)MISOSPI 总线主机输入/从机输出(SPI Bus Master Input/Slave Output) (3)SCLK时钟信号,由主设备产生 (4)

3、CS从设备使能信号,由主设备控制 其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。接下来就负责通讯的3根线了。通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCLK时钟线存在的原因,由SCK提供时钟脉冲,SDI、SDO则基于此脉冲完成数据传输。数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成

4、8位数据的传输。SPI 总线系统有以下几种形式:1个主机和多个从机、多个从机相互连接构成多主机系统(分布式系统)、1个主机与1个或几个I/O设备构成的系统等SPI总线信号线基本连接关系,如下图SPI总线包括1根串行同步时钟信号线以及2根数据线。SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果 CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳

5、变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设音时钟相位和极性应该一致。SPI接口时序如图3、图4所示。SPI是一个环形总线结构由SS(CS)、SCK、SDI、SDO构成,其时序其实很简单,主要是在SCK的控制下,两个双向移位寄存器进行数据交换。假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。 那么第一个上升沿来的时候数据将会是SDO=1;寄存器=0101010x。下降沿到来的时候,SDI上的电平将所存到寄存器中去,那么这时寄存器=0101010SDI,这样在8个时钟

6、脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个SPI时序。 例子: 假设主机和从机初始化就绪:并且主机的SBUFF=0xaa,从机的SBUFF=0x55,下面将分步对SPI的8个时钟周期的数据情况演示一遍:假设上升沿发送数据脉冲主机SBUFF从机SBUFFSDISDO01010101001010101001上0101010x1010101x011下0101010010101011012上1010100x0101011x102下1010100101010110103上0101001x1010110x013下0101001010101101014上1010010x0101101x104下

7、1010010101011010105上0100101x1011010x015下0100101010110101016上1001010x0110101x106下1001010101101010107上0010101x1101010x017下0010101011010101018上0101010x1010101x108下010101011010101010这样就完成了两个寄存器8位的交换,上面的上表示上升沿、下表示下降沿,SDI、SDO相对于主机而言的。其中SS引脚作为主机的时候,从机可以把它拉底被动选为从机,作为从机的是时候,可以作为片选脚用。根据以上分析,一个完整的传送周期是16位,即两个字

8、节,因为,首先主机要发送命令过去,然后从机根据主机的名准备数据,主机在下一个8位时钟周期才把数据读回来。要注意的是,SCLK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI的设备中,至少有一个主控设备。这样传输的特点:这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCLK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCLK时钟线的控制可以完成对通讯的控制。SPI还是一个数据交换协议:因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和

9、输出。不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义。在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从设备的系统中,每个从设备需要独立的使能信号。2 主要特性 全双工通信,可以同时发出和接收串行数据 1.05Mbit/s的最大主机位速率 四种可编程主机位速率 可编程串行时钟极性与相位 可以当作主机或从机工作 提供频率可编程时钟 发送结束中断标志 写冲突保护 总线竞争保护等3 应用范围SPI主要应用在高速数据传输的外设上,例如 SD卡,FLASH芯片等。在集成电路飞速发展的近几年SPI总线应用非常广泛,

10、大量的新型器件如LCD模块、FLASH、EEPROM存储器、数据输入、输出设备、实时时钟、AD转换器、数字信号处理器和数字信号解码器等都有采用SPI接口。在早期的单片机系统中,CPU大都不具有SPI接口,因此,对SPI接口设备的访问,基本都是通过软件模拟产生SPI接口所需要的时序。但是随着单片机技术的进步,新型的单片机一般都已将SPI接口控制器集成在单片机内部。SPI在单片机上的应用是其应用范围上的一大转折点,进一步拓宽了其应用领域,使得SPI的优势能在更多的领域体现。4 应用实例1) MCP42X2双SPI 数字电位器SPI 模块支持两种(共4 种)标准SPI 模式。它们是模式0 和3。SC

11、K的上升沿数据采样。CS的无效状态Vih,低有效状态Vil和高有效状态Vihh。Vil就是低电平,Vih就是MCP42X2的供电电压,Vihh需要一个MCP42X2的供电的倍压。当与MCP42X2通讯时,CS只需要给出一个有效电平(低电平或倍电压)就可以。SPI0时序图命令格式命令字节具有3 个字段,即地址、命令和2 个数据位。当前仅定义了一个数据位(D8)。它用于写命令。当主器件发送正确的命令字节选择所需的操作时,会访问器件存储器。被访问的存储器单元包含在命令字节的AD3:AD0位中。所期望的操作包含在命令字节的C1:C0位中。C1:C0 决定所期望的存储器单元是被读取、写入、递增(抽头设置

12、 + 1)还是递减(抽头设置 - 1)。递增和递减命令仅对于易失性抽头寄存器有效。当命令字节装入器件(在SDI 引脚上)时,器件的SDO引脚被驱动。对于该命令的前6 位,SDO 引脚将输出高位。在第7 位,SDO 引脚将输出CMDERR 位状态。第8 位的状态取决于所选择的命令命令位:C1C0 功能 位数11 读数据 1600 写数据 1601 递增 810 递减 8存储器映射和受支持的命令只有SPI 发送具有正确的SCK 脉冲数时,才会执行SPI发送。只有接收到全部数量的时钟之后,命令才会被执行。如果CS 引脚被强制为无效状态(VIH),串行接口会复位。不完整的命令不会被执行。器件支持连续执

13、行命令的功能。当CS 引脚处于有效状态(VIL 或VIHH)时,可以接收任意的有效命令序列2) 基于LPC2103的SPI总线技术的应用本文给出了一种基于SPI总线的LPC2103控制外围LED显示的设计方法。利用74HC595驱动静态共阳LED数码管,使用串转并的方式实现I/ O口的扩展。1 LPC2103中的SPI功能特性LPC2103是一个基于支持实时仿真的16/32位ARM7TDMIS CPU的微控制器,内部具有2个完全独立的SPI控制器,采用全双工的数据通信方式,最大数据位速率为外设时钟Fpclk的l/8。与SPI总线接口有关的专用寄存器有:(1)SPCR控制寄存器。该寄存器包含一些

14、可编程位来控制SPI总线的功能,而且在数据传输之前进行设定,主要有时钟相位控制、时钟极性控制、主从模式选择、字节传输移动方向及SPI中断使能;(2)SPSR状态寄存器(为只读寄存器)。用于监视SPI功能模块的状态,包括一般性功能和异常情况。主要用途是检测数据传输是否完成,通过判断SPIF位来实现,其他位用于指示异常情况;(3)SPDR数据寄存器。为SPI提供数据的发送和接收,处于主模式时,向该寄存器写入数据,将启动SPI数据传输。串行数据的发送和接收通过内部移位寄存器来实现;(4)SPCCR时钟计数器寄存器。用于设置SPI时钟分频值,SPI处于主模式时,该寄存器用于控制时钟速率,即SPI总线速

15、率,寄存器值为l位SCK时钟所占用的PCLK周期数,并且值为偶数,必须不小于8;(5)SPINT中断标志寄存器。包含了SPI的中断标志位,由数据传输完成及发生模式错误来引发。1.1 SPI电气连接利用SPI总线可在软件的控制下构成各种系统,如l个主MCU和几个从MCU、几个从MCU相互连接构成多主机系统(分布式系统)、1个主MCU和1个或几个从I/O设备所构成的各种系统等。在大多数应用场合,可使用1个MCU作为主机来控制数据,并向1个或几个从外围器件传送该数据。从器件只有在主机发命令时才能接收或发送数据。同一时刻只允许有1个主机操作总线。在数据传输过程中。总线上只能有1个主机和1个从机通信。在

16、一次数据传输中,主机总是向从机发送1个字节数据,而从机也总是向主机发送1个字节数据。图l为SPI在主模式下控制2个SPI从机的硬件连接图。1.2 SPI数据传输在SPI数据传输中,SPCR控制寄存器的CPHA和CPOL位作用非常关键。CPHA为时钟相位控制,该位决定SPI传输时数据和时钟的关系,并控制从机传输的起始和结束,该位为1,时钟前沿数据输出,后沿数据采样;为0,时钟前沿数据采样,后沿数据输出。CPOL为时钟极性控制。为l时,SCK为低电平有效;为0时。SCK努高电平有效。图2为SPI的4种不同数据传输格式时序。描述的是8位数据传输。该时序图水平方向分成3部分:(1)描述SCK和SSEL

17、信号;(2)描述CPHA为0时的MOSI和MISO信号;(3)描述CPHA为l时的MOSI和MISO信号。SSEL信号为低电平,说明SPI工作在从模式。其中,MOSI和MISO信号中的bitlbit8表示传输的第几位数据。2 74HC595扩展I/O接口电路SPI是一个串行输入输出的接口,使用串转并的接口芯片可以实现扩展I/0口。74HC595芯片为一种常用的8位串转并移位寄存器芯片。本系统利用74HC595来驱动静态共阳LED数码管。74HC595的主要优点:具有数据存储寄存器。在移位过程中。输出端的数据可以保持不变。这在串行速度慢的场合很有用处,数码管没有闪烁感。LPC2103I作在SPI

18、主模式下。图3为74HC595逻辑图。图中,SI为串行数据输入引脚,用来连接LPC2103的MOSI功能引脚;SCK为移位寄存器的时钟输入,连接LPC2103串行时钟线SCK; 为清移位寄存器引脚;RCK为锁寄存器锁存时钟引脚;即输出触发端与SSEL连接;为输出使能引脚;SQH为串行数据输出引脚,连接MISO;QAQH引脚为并行输出。当为高电平、使能接低时,SCK产生一个上升沿,SI引脚当前电平值将在移位寄存器中左移l位,在下一个上升沿到来时移位寄存器中的所有位都会向左移l位,同时SQH引脚也会串行输出移位寄存器中的高位的值。当RCK产生上升沿时,移位寄存器的值将会被锁存到锁存器里,并从QAQ

19、H引脚输出。图4为SPI接13与74HC595的连接原理图。其中QAQH分别连接共阳LED数码管的8个段。在SPI输出1个字节的数据时,SSEL产生1个低电平,SPI主机串行地发该字节的各个位,各个位都依次被锁存在74HC595的移位寄存器内,当1个字节的数据传输完成后,SSEL由低电平变为高电平,从而使74HC595的移位寄存器的值被锁存到74Hc595的锁存器并从其QAQH引脚输出;在SPI输出1个字节数据的同时,74HC595移位寄存器之前的值也通过MISO引脚被SPI主机读回。3 软件设计软件设计包括:进行IO口初始化,设置SPI引脚连接,启用LPC2103的SPI0总线,设置GPIO

20、的P0.4、P0.5、P0.6、P0.7为SPl 0总线的SCK0、MIS00、MOSIO、SSELO特殊功能,置74HC595片选端的I/O口为输出功能。其代码如下:PINSEL0=0x00005500;/股置SPI引脚连接PINSELl=Ox00000000;IODIR=HC595_CS;/设置片选端I/O口为输出3.1 SPI总线操作初始化图5为SPI总线操作流程图。使用LPC2103的SPI总线主模式下实现对74HC595的数据传输,用来驱动外围LED数码管。设置SPI时钟。在SPI主模式下,SPCCR寄存器控制SCK的频率,SPI速率为Fpclk/SPCCR。通过SPCR控制寄存器设

21、置时钟相位、时钟极性、主模式控制、字节移动方向及SPI中断使能等。代码实现如下:Void MSpilni(void)SPI_SPCCR=0x52; /设置SPI时钟分频SPI_SPCR=(03) / CPHA=0,数据再从SCK的第一时钟沿采样(14) /CPOL=1,SCK为低有效(15) /STR=1,SPI处于主模式(06) / LSBF=0,SPI数据传输MSB(位71)在先(07); /SPIE=0,SPI中断被禁止3.2 SPI总线主模式下数据发送过程首先选择从机。设置片选。选择74HC595为从机,置片选端SSEL为低有效。将发送的数据写入SPDR。发送出去。等待SPIF置位,即

22、数据发送完毕。最后可从SPDR读取收到的数据。以下为发送函数:uint8 MSendData(uint8 data) IOCLR=HC595_CS;/片选端,由LPC2103指定的I/O口置位SPI_SPDR=data;while(0=(SPI_SPSR&Ox80); /等待SPIF置位,即等待数据发/完毕IOSET=HC595_CS; /片选置高无效,结束发送return(SPI_SPDR); /返回接收到的数据3.3控制LED数码管主函数主函数使用LPC2103的SPI接口输出给74HC595,用来控制LED数码管显示。DISP_TAB为LED显示0一F字模的16进制码表。MSendDat

23、a()实现每一字节数据的发送。#define HC595_CS Ox00000100 /P0.8口为74HC595的片选uint8 const DISP_TAB16I=0xC0,OxF9,0xA4,OxBO,0x99,0x92,Ox82,OxF8,0x80,0x90,0x88,0x83,0xC6,0xA l,0x86,Ox8E;int main(void) uint8 rcv_data;uint8 i;PINSEL0=0x00005500;/设置SPI引脚连接PINSELl=0x00000000;IODIR=HC595_CS;/设置LPC2103片选I/O口为输出功能MSpiIni();/初始化SPI接口while(1) for(i=0;i16;i+)rcv_data=MSendData(DISP_TABi); /发送显示数据DelayNS(50); /延时 return(O);基于SPI总线的数据通信技术已经广泛应用在MCU与各种外围设备的串行通信中。如存储系统、A/D转换系统、网络控制器和多MCU构成的分布式系统。本文给出了74HC595芯片驱动LED数码管显示的电路,采用SPI总线技术实现对LED显示的数据传输,方便快捷、准确性高、速度快。满足了复杂微控制系统对外围设备控制的要求。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1