SPI详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

APB总线读时序
从机必须 在ENABLE 周期的上 升沿送出 数据,总 线上数据 的采样发 生在 ENABLE周 期的下一 个周期的 上升沿。
Register Definition
• 在SPI接口中共有四个寄存器地址???(为 什么这么说)
– spcr ( serial peripheral interface control register) 控制 寄存器 – spscr(serial peripheral interface state and control register)状态寄存器 – treg(transmit register)数据发送寄存器 – rreg( receive register)数据接收寄存器 共用一个地址 – shift移位寄存器 – sper (serial peripheral interface extension register) 可 扩展寄存器
Bandwidth 8 8
paddr b00 b 01
8 8 8
b 10 b 10 b 11
spcr
spie spe reserved(0) spmstr cpol cpha spr[1] spr[0]
• • • • • • •
默认值8’h14 spie: SPI interrupt enable bit, 为1时才可以发起中断。 spe: SPI enable bit, 为1时才能工作。 spmstr: SPI master mode bit, 为1时为master 模式。 cpol: clock polarity bit,0,空闲时mater时钟为0;1,为1。 cpha: clock phase(一会我们看时序图) spr: SPI clock rate bit, spr[1:0] decides 串行发送时钟是主时钟的几倍 (周期)
Treg、 rreg、 shift、 sper
• 发送数据寄存器treg和接收数据寄存器rreg, 分别是8位的数据寄存器。
• 可扩展寄存器,升级程序中可能会用到。 Reserved 8’h00; we don’t use it actually.
TIMING
CPHA = 0,SPI工作时序
SPI Master Design
• (1)What is SPI ? • (2)SPI Protocol
– Protocol Description – Register Definition – Timing
• (3)SPI Modular Design • (4)SPI Test
(1)What is SPI?
• spif: SPI interrupt flag, 当接收寄存器满并且发送寄 存器空时, 或者有写冲突发生时,中断标志为1, 如果允许发中断,则会像cpu发起中断请求。 • wcol: Write collision bit, 写冲突位,当发送正在进 行时往发送寄存器里写数据会造成该位置1,CPU要写 入的数据不会写入,CPU如果响应写冲突中断,应 该将wcol位清除。通过写该位将wcol位清除。(请 思考,可否CPU写入时,写入数据) • sprf: treg, SPI receive register满时为1,空时为0。 • spte: rreg, SPI tramsmit register空时为1,满时为0。 cpu可以根据该寄存器的状态得知SPI master的当前 状态,采取相应的读写或者修改状态位的操作。
Register name spcr spscr
treg rreg sper
Write/Read w/r R, the sixth bit can be written. Spte, when there’s a write treg operation, this bit will be set from 1 to 0, when the transmission is finished, and this bit will be set to be 1 again. Sprf, when getting a byte this bit will be set to be 1, and this time if a read rreg operation is set, this bit will be cleared to be 0. w r w/r
• APB总线有三种状态:IDLE、SETUP 和 ENABLEIDLE • IDLE状态为APB总线的默认状态。
– 在IDLE状态下,总线处于空闲,没有数据的传 输。
• SETUP
– 当有传输请求时,APB总线转到SETUP状态, 在SETUP状态下PSELx信号变为高。总线的 SETUP状态将保持一个时钟周期,在下一个时 钟的上升沿转到ENABLE状态。
spi_miso
Spi_ssn
移位寄存器
SPI MASTER
பைடு நூலகம்
SPI SLAVE
(4)TEST
• ENABLE
– 在ENABLE状态下,使能信号PENABLE变为高。 从SETUP状态到ENABLE状态地址线、片选信 号线以及读写线都一直保持稳定。ENABLE状 态只持续一个时钟周期。如果没有传输请求, 总线在下一个时钟的上升沿转到IDLE状态。否 则,它会直接转到SETUP状态。
APB总线写时序
SPI Master Design and Test
2010年08月21日
自我介绍
• NAME:Penny Pan • SPECIALITY:
– Logic Design ( Not Circuit Design) – Verilog HDL (顺便问一下大家都知道HDL的全 称吗?)
Hardware Design Language
同步传输
• 同步传输是以同步的时钟节拍来发送数据 信号的,因此在一个串行的数据流中,各 信号码元之间的相对位置 都是固定的(即 同步的)。
(2)SPI Protocol
• SPI接口是在CPU和外围低速器件之间进行同步串行 数据传输 • SPI以全双工模式工作,这意味着,数据可同时双向 传输。SPI最常用于中央处理单元(CPU)跟外围设 备之间的通信系统,也可使用SPI连接两个微处理 (MCU)。外围设备包括FLASH、RAM、A/ D 转换 器、LCD显示驱动器、网络控制器等 • 在主器件的移位脉冲下,数据按位传输,高位在前,低 位在后,为全双工通信,数据传输速度总体来说比I2C 总线要快,速度可达到几Mbps • SPI接口是以主从方式工作的,这种模式通常有一个 主器件(Master)和一个或多个从器件(Slave)
单工、半双工、全双工
接口定义:
• SPI总线系统可直接与各个厂家生产的多种 标准外围器件直接接口,该接口一般使用4 条线:
– 串行时钟线(SCK) – 主机输入/从机输出数据线MISO – 主机输出/从机输入数据线MOSI(有的SPI接口 芯片没有主机输出/从机输入数据线MOSI)。 – 低电平有效的从机选择线SS – 有的SPI接口芯片带有中断信号线INT或INT
异步传输
• 通常,异步传输是以字符为传输单位,每个字符都要附加 1 位起始位和 1 位 停止位,以标记一个字符的开始和结束,并以此实现数据传输同步。所谓异 步传输是指字符与字符(一个字符结束到下一个字符开始)之间的时间间隔是 可变的,并不需要严格地限制它们的时间关系。起始位对应于二进制值 0, 以低电平表示,占用 1 位宽度。停止位对应于二进制值 1,以高电平表示, 占用 1~2 位宽度。一个字符占用 5~8位,具体取决于数据所采用的字符集。 例如,电报码字符为 5 位、ASCII码字符为 7 位、汉字码则为8 位。此外, 还要附加 1 位奇偶校验位,可以选择奇校验或偶校验方式对该字符实施简单 的差错控制。发送端与接收端除了采用相同的数据格式(字符的位数、停止位 的位数、有无校验位及校验方式等)外,还应当采用相同的传输速率。典型的 速率有:9 600 b/s、19.2kb/s、56kb/s等。 异步传输又称为起止式异步通信方式,其优点是简单、可靠,适用于面向字 符的、低速的异步通信场合。例如,计算机与Modem之间的通信就是采用这 种方式。它的缺点是通信开销大,每传输一个字符都要额外附加2~3位,通 信效率比较低。例如,在使用Modem上网时,普遍感觉速度很慢,除了传输 速率低之外,与通信开销大、通信效率低也密切相关。
name sck Mosi(Master output slave input) Miso(Master input slave output ) ss
Bit Width 1 1 1 1
I/O specification O O I O SPI synchronous clock to the slave SPI master data output SPI master data in SPI slave select signal, 0 is valid
• SPI :Serial Peripheral Interface
– 串行外围设备接口 – 最早由Motorola 公司提出,在其MC68HCXX系 列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信 号处理器和数字信号解码器与MCU之间 – 同步串行外围接口 – 允许在两种设备(一个称master另一个称slave) 之间进行串行(每次一位)数据交换的接口
有人按下表定义四线
SPI接口的优缺点
• 在点对点的通信中,SPI接口不需要进行寻址 操作,且为全双工通信,显得简单高效 • SPI接口的一个缺点:没有指定的流控制,没 有应答机制确认是否接收到数据
SPI的本质
• 移位寄存器,MSB先传输
SPI MASTER 和 SLAVE 的链接
APB TIMING
• 在系统时钟的上升 沿,地址线、数据 线、写信号及片选 信号发生变化,则 发起新的传输。数 据传输的第一个时 钟周期称为SETUP 周期,即如图 所示 的(T2—>T3周期)。 在第二个时钟周期 的上升沿PENABLE 变为高电平,这个 周期称为ENABLE周 期。传输在这个周 期结束后完成, PENABLE信号随之 变低。
外围设备包括flashrama转换器lcd显示驱动器网络控制器等在主器件的移位脉冲下数据按位传输高位在前低位在后为全双工通信数据传输速度总体来说比ispi接口是以主从方式工作的这种模式通常有一个主器件master和一个或多个从器件slave单工半双工全双工spi总线系统可直接与各个厂家生产的多种标准外围器件直接接口该接口一般使用4主机输出从机输入数据线mosi有的spi接口芯片没有主机输出从机输入数据线mosi
注意CPHA的作用
CPHA = 1,SPI工作时序
(3)模块化设计和实现
• 先设计一个master(大家看一下以下这个结构是什么的结构, 是master 还是 slave)
SPI_INT SPR[1:0] SPCR、SPSCR、 Treg、 rreg、sper
spi_sck产生器 spi_sck APB APB接口 /RegFile 控制状态机 spi_mosi
Spr[1:0] 00 01 10 11 主时钟周期的倍数 4 16 64 128
请思考
• 若,spr[1:0]=2’b01,主时钟是32MHz,那么 数据传输速率将接近多少?
32MHz/16=2MHz,也就是每秒2M bits
spscr
spif wcol reserved(0) reserved(0) sprf spte reserved(0) reserved(0)
相关文档
最新文档