电子与电气工程系
课程设计、专题(综合)实验报告
课题名称__串行接口IP核的设计与验证(spi)_
专 业____ 电子信息工程________ 班 级_____ 08电子1班__________ 学 号__0806012103_ 0806012104_ 姓 名___ 高江柯____吴冠雄__ ______ 成 绩________________________ 指导教师_______袁江南____________
2011年 6 月 15 日
串行接口IP核的设计与验证(SPI)
(FPGA作为主机) 一、 实验目的:
通过本实验的学习,使学生掌握使用VHDL 设计一个实用数字系统的能力,以及单片机串行接口编程等知识,训练 VHDL以及单片机的编程与综合使用能力,培养工程设计的基本技能,为今后毕业设计以及实际工作奠定基础。
二、 实验原理
SPI 接口是在 CPU 和外围低速器件之间进行同步串行数据传输,在主器件
的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信,数据传输速度总体来说比I2C 总线要快,速度可达到几Mbps。
SPI 接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从 器件,其接口包括以下四种信号:
(1)MOSI –主器件数据输出,从器件数据输入 (2)MISO –主器件数据输入,从器件数据输出 (3)SCLK – 时钟信号,由主器件产生
(4)/CS –从器件使能信号,由主器件控制
在点对点的通信中,SPI 接口不需要进行寻址操作,且为全双工通信,显得简单高效。
SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。下图所示,在 SCLK 的下降沿上数据改变,同时一位数据被存入移位寄存器。
三、 实验步骤:
1、
2、 3、 4、 5、 6、
查找关于SPI的资料,认识理解SPI。
根据SPI传输数据的时序图构建出SPI的框图。
利用自顶向下的方法根据框图分模块进行程序的编写。 把各模块连接构成完整的SPI传输系统。 进行仿真验证。
在康芯开发板上验证此SPI系统收发及中断功能是否正常。(由于时间原因其步未能完成)
四、 设计过程:
模块1:
输入说明:
data7[7..0] : FPGA写数据到RAM的输入口。 enable : 为输入使能。 reset : 复位。 clk : 输入时钟。
contr_addr[5..0]: FPGA写数据到RAM的地址的最大值,即写入RAM
中数据的个数。
feedback : SPI系统发送完数据的反馈,提示FPGA又可以重
新写数据到RAM,然后发送。
输出说明:
wr_en : 控制RAM写使能。
wr_addr : 写数据到RAM的地址控制,写一数据地址加一。 wr_clock : RAM写数据时钟,上升沿有效。 fullflag : RAM写满的标志。 data_out[7..0] : RAM中写入的数据。
模块说明:
FPGA通过SPI发送数据,数据必须要有个缓存阶段。此设计中是利用RAM作为缓存。该模块就是数据写入RAM的控制器,并提示FPGA开始发送数据及发送多少个数据。SPI发送完数据后提示FPGA重新写数据到RAM继续发送。
仿真时序图:
模块2: