Communication 版 (精华区)

发信人: wjn (山东季风), 信区: Communication
标  题: SPI协议
发信站: BBS 哈工大紫丁香站 (Tue Nov  8 09:39:18 2005)

SPI协议是以主从方式工作的,这种模式通常有一个主设备和一个或多个从设备,其接口包
括以下四种信号:
(1)串行数据输入(也称为主进从出,或MISO);
(2)串行数据输出(也称为主出从进,或MOSI);
(3)串行移位时钟(也称为SCK);
(4)从使能信号(也称为SS)。
该接口在工作时,主设备通过提供移位时钟和从使能信号来控制信息的流动。从使能信号
是一个可选的高低电平,它可以激活从设备(在没有时钟提供的情况下)的串行输入和输
出。在没有专门的从使能信号的情况下,主从设备之间的通信则由移位时钟的有无来决定
,在这种连接方式下,从设备必须自始至终保持激活状态,而且从设备只能是一个,不能
为多个。

5402提供的时钟停止模式可用于SPI协议通信。当McBSP被配置为时钟停止模式时,发送器
和接收器在内部是同步的,即可将发送数据帧时钟(BFSX)用作从器件使能(即),而将发送
数据位时钟(BCLKX)用作SPI协议中SCK。由于接收数据位时钟(BCLKR)和接收数据帧时钟(B
FSR)在内部分别与BFSX和BCLKX相连,因此,该引脚不能用于SPI模式。
 

ISD4004工作于SPI串行接口。SPI协议是一个同步串行数据传输协议,协议假定微控制器的
SPI移位寄存器在SCLK的下降沿动作,因此对ISD4004而言,在时钟止升沿锁存MOSI引脚的数
据,在下降沿将数据送至MISO引脚。协议的具体内容为:
    1.所有串行数据传输开始于SS下降沿。
    2.SS在传输期间必须保持为低电平,在两条指令之间则保持为高电平。
    3.数据在时钟上升沿移入,在下降沿移出。
    4.SS变低,输入指令和地址后,ISD才能开始录放操作。 
    5.指令格式是(8位控制码)加(16位地址码)。
    6.ISD的任何操作(含快进)如果遇到EOM或OVF,则产生一个中断,该中断状态在下一个S
PI周期开始时被清除。
    7.使用"读"指令使中断状态位移出ISD的MISO引脚时,控制及地址数据也应同步从MOSI
端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个SPI
周期里,同时执行读状态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)。

    8.所有操作在运行位(RUN)置1时开始,置0时结束。
    9.所有指令都在SS端上升沿开始执行。

  以下是通过68HC08系列单片机软件仿真SPI的一段程序:
  
    
 
 

SPIOUT : SETB P1. 1 ;        使P1. 1(时钟) 输出为1
CLR P1. 2 ;          选择从机
MOV R1 , # 08H ;     置循环次数
MOV A ,R0 ;         8 位数据送累加器ACC
SPIOUT1 : CLR P1. 1 ;         使P1. 1(时钟) 输出为0
NOP ;              延时
NOP
RLC A ;           左移至累加器ACC 最高位至C
MOV P1. 0 ,C ;      进位C送从机输入SPISI 线上
SETB P1. 1 ;         使P1. 1(时钟) 输出为1
DJNZ R1 ,SPIOUT1 ;     判是否循环8 次(8 位数据)
RET

--
笑着面对生活,不管一切如何
--------山东季风 






※ 来源:·哈工大紫丁香 http://bbs.hit.edu.cn·[FROM: 202.118.230.57]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.952毫秒