基于AMBA总线的SPI协议IP核的设计与验证

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘 要 : 基于 AMBA 总线接口 ,设计了一个可灵活配置为 Master/ Slave 模式 、可设置传输速率并能适用于 4 种时钟 模式的 SPI 协议 IP 核 。详细说明了该 IP 核的系统构架 、接口信号和子模块设计 ,使用 Verilog HDL 实现硬件设计 , 通过 FP GA 时序仿真 ,验证了该设计在实际工程应用中的有效性 。 关键词 : SPI 协议 ; IP 核 ;AMBA 总线 ;Verilog HDL ; FP GA 中图分类号 : TN919 文献标识码 : A
Register Block 存储控制寄存器 、状态寄存器和数据寄 存器的数据 。其中控制寄存器 SCR0 ,SCR1 可以设置 4 种 SPI 时序 ,并设定模块为 SPI Master/ Slave 模式 ;数据寄存 器 SDR 保存发送/ 接收数据 。 2. 3. 3 时钟分频模块
当模块被配置为 SPI Master 时 ,时钟分频模块 Clock prescaler 将 A PB 总线时钟 PCL K 分频 ,产生内部时钟信 号 CL KDIV 。分频功能利用倒数计数器实现 ,计数初值保 存在寄存器 CPSR 。CL KDIV 经过收发逻辑模块 ,产生频 率为其一半的 CL KOU T 信号 ,该信号是 SPI 通信的主时
0 引 言
可复用 IP 核的设计是 SOC 设计的关键 ,也是 FP GA 开发的重要环节 。而 SPI 串行通讯总线具有结构简单 、通 讯速度快等显著优点 ,在嵌入式系统中应用日趋广泛 ,例 如基于 SPI 总线的数据采集系统[1] ,基于 SPI 接口的 DSP 的 Flash 扩展方案[2] ,以及利用 SPI 总线连接 DSP 和单片 机[3] 等 。实现 SPI 协议的 IP 核已经成为业界的设计热点 之一 , 但 现 有 设 计 功 能 不 够 完 善 。文 献[425] 设 计 了 SPI Master 模块 ,没有实现 SPI Slave 功能 ;文献[6] 介绍一种基 于 AMBA 总线的 SPI 协议 IP 核设计 ,但其重点说明 IP 核 设计的规范流程和方法 ,对于 SPI 模块本身的特性叙述不 多 。为了给 SOC 设计和 FP GA 开发提供最大的灵活性 , 有必要设计一种可配置为 Master 或 Slave 模式 ,可设置通 信速率并能适用于不同传输模式的 SPI 模块 。本文设计 的基于 AMBA 总线的 SPI 协议 IP 核具备上述优点 。选择 AMBA 总线作为接口的原因是它方便灵活 ,且完全免费 , 在基于 ARM ,SPA RC 等处理器系统级芯片设计中已经成
·75 ·
第 33 卷
电 子 测 量 技 术
该信号无用 。 CL KIN :SPI Slave 时钟输入信号 。若配置为 Master 则该 信号无用 。 FSSOU T :SPI Master 帧控制信号 ,当数据传输开始时变 为低电平 ,结束后回复高电平 。若配置为 Slave 则该信号 无用 。可作为 SPI 从机选择信号 SS 输出端 。 FSSIN :SPI Slave 帧控制输入信号 ,若配置为 Master 则该 信号无用 。可作为 SPI 从机选择信号 SS 输入端 。 2. 3 各模块设计
个完整的 CL KOU T 周期 , CL KOU T 的频率是 CL KDIV 的一半 。字节传输完毕后 ,若 Tx 数据未准备好则判定为 帧结束 ,FSSOU T 恢复至高电平 ,并回到空闲状态 ; 若 Tx 准备好则判定为连续字节传输过程 ,转移到发送第一位状 态开始新字节的传输 。
分析 SPI 协议时序 , 将数据传输过程分解为若干阶 段 ,每个阶段用有限状态机的一个状态描述 。主模式下数 据传输有限状态机如图 3 所示 。
图 3 主模式下数据传输的有限状态机
初始状态为空闲状态 。Tx 发送数据准备好后 ,在下 个 CL KDIV 上升沿进入桢开始状态 ,并将桢控制输出信号 FSSOU T 置为低电平 。之后从发送第一位数据状态开始 数据传输 ,状态转换由 CL KDIV 上升沿触发 。发送状态和 接收状态相互交替 ,每个状态发送或接收一位数据 ,持续 一个 CL KDIV 周期 。发送和接收状态下将 SPI 时钟输出 信号 CL KOU T 置为相反电平 ,因此收发一位数据构成一
复制到 RxFIFO , 直 到 A PB 总 线 将 其 读 出 。发 送 缓 存
TxFIFO 同样位宽为 8 ,深度为 8 。发送数据将缓存在此直
到被复制到发送移位寄存器 。
2. 3. 5 中断控制模块 本 SPI 模块可产生 4 个独立的可屏蔽中断信号 :发送
请求 、接收请求 、接收溢出以及接收超时 。中断控制模块
·74 ·
为 SOC 的总线标准[7] 。
1 SPI 协议简介
SPI( serial perip heral interface) 是 Motorola 公司推出 的一种同步 、高速 、全双工的串行通信总线 ,主要用于嵌入 式 CPU 与各种外围设备的通信 。SPI 的信号线为同步串 行时钟 SPICL K、主机输出从机输入 MOSI、主机输入从机 输出 MISO 、从机选择 SS。协议规定了主 、从两种工作模 式 ,工作在主模式的器件负责输出通讯时钟 SPICL K ,并初 始化数据传输 。
Interrupt generation logic 产生一个综合中断信号 ,为以上 4 个信号的或函数 。 2. 3. 6 发送和接收逻辑模块
Transmit/ Receive Logic 主要负责 SPI 协议时序控 制 ,在每个 SPI 时钟周期传送一位数据 。为了能配置为 Master/ Slave 模 式 , 设 计 两 个 独 立 的 数 据 收 发 模 块 M TxRxCntl 和 STxRxCntl , 分别实现在 Master 和 Slave 模式下的时序控制功能 。在控制寄存器中设置 M/ S 选择 位作为 Master 和 Slave 模块的片选信号 ,同一时刻只选通 其中一个模块 。
赵 杰 等 :基于 AMBA 总线的 SPI 协议 IP 核的设计与验证
第1期
图 1 SPI 协议的 4 种数据传输时序[8]
2 SPI 协议 IP 核的设计
本 IP 核可以通过 SPI 总线和其他设备通信 ,并通过 A PB 总线连接 A PB Ho st ( 例如 A RM CPU , 或 SPA RC
钟信号 。分频公式为 :
CL KD I V
=
1Leabharlann Baidu
PCL K + CPS R
CL KOU T
=
PCL K 2 ×(1 + CPS R)
2. 3. 4 接收缓存和发送缓存
由于 A PB 总线时钟速度和 SPI 的传输速度不匹配 ,设
计了收发缓存模块 。接收缓存 RxFIFO 是数据位宽为 8 ,
深度为 8 的先进先出缓存 ,接收数据从接收移位寄存器被
采用自顶向下的设计方法划分出子模块 ,主要子模块 实现的功能及设计方法如下 。 2. 3. 1 AMBA A PB 接口模块
AMBA A PB interface 主要负责地址解码以及读写寄 存器 。实现方法是将各寄存器的地址保存为常量数组 ,当 片选信号 PSEL 有效时 ,将地址总线 PADDR[ 5 :2 ]的值和 这些地址常量一一对比 ,如果和某个地址常量相符 ,则对 相应的寄存器进行读写操作 。 2. 3. 2 寄存器模块
输的数据 。 PRDA TA[ 7 :0 ] :读取数据信号 。可读取寄存器的值或接 收到的数据 。 PCL K:A PB 总线时钟 。
以上为 A PB 总线接口信号 。下面是和 SPI 串行通信 相关的信号 。 RX : 串行数据输入信号 。 TX : 串行数据输出信号 。 CL KOU T :SPI Master 时钟输出信号 。若配置为 Slave 则
协议规定了 4 种传输时序 ,其共同点是每位数据的发 送/ 接收需要 1 个 SPICL K 周期 ,每次可传输若干个 8 位数 据 。4 种时序由时钟极性 CPOL 和时钟相位 CP HA 的不 同取值来区分 。CPOL = 0 代表 空 闲 状态 为 低 电 平 , 而 CPOL = 1 代表空闲状态为高电平 ; CP HA = 0 和 CP HA = 1 决定了数据在不同的 SPICL K 边沿有效 。4 种传输时序 如图 1 所示 。
虚拟仪器技术
电 子 测 量 技 术 EL EC TRON IC M EASU R EM EN T TEC HNOLO GY
第 33 卷 第 1 期 2010 年 1 月
基于 AMBA 总线的 SPI 协议 IP 核的设计与验证
赵 杰 曹 凡 冮殿亮
(中国科学技术大学物理系微电子实验室 合肥 230026)
Abstract :Nowadays t he application of SPI Bus is keep growing , and IP core of SPI p rotocol has become a hot spot in IC design field. However , t he f unctio nality of t he designs already p resented is not ample. U sually t hey couldnπt f unctio n as SPI Slave , or co uldnπt t ransmit and receive data in all four clock modes. Based on AMBA Bus , we designed an IP co re of SPI p rotocol , which could be co nfigured as SPI Master or SPI Slave , could set different t ransmission speed , and co uld work in any one of t he fo ur clock modes. This article int roduces t he st ruct ure , interface and implementation of t he IP co re using Verilog HDL in detail. A simulation example of FP GA timing analysis is p resented to show t he validity of t his design in engineering applications. Keywords : SPI p rotocol ; IP core ;AMBA Bus ;Verilog HDL ; FP GA
Design and verif ication of IP core of SPI protocol based on AMBA Bus
Zhao Jie Cao Fan Gang Dianliang
(Lab of Microelect ronics Physics Depart ment Universit y of Science and Technology of China Hefei 230026)
等) 。A PB Ho st 通过 A PB 总线接口对 SPI 模块进行状态 控制 、数据读写 、中断处理等操作 。 2. 1 系统模块结构图
系统模块结构图如图 2 所示 。
图 2 系统模块结构图
2. 2 接口说明 PR ESETn :复位信号 ,有效时模块回到初始状态 。 PSEL :片选信号 ,有效时选中模块 ,方可进行操作 。 PENABL E :操作使能信号 。读写操作需该信号有效 。 PWRITE :写入使能信号 。当 PSEL 有效且该信号为高电 平 ,表示写入操作 ; PSEL 有效且该信号为低电平表示读取 操作 。 PADDR[ 5 :2 ] :地址信号 。指定操作的目标寄存器 。 PWDA TA [ 7 :0 ] :写入数据信号 。可写入控制命令或待传
相关文档
最新文档