在现代EDA外围电子器件的接口中,存在着多种标准协议,一些接口协议存在速度慢、协议复杂等问题,而SPI总线能够克服上述问题。
与其他总线接口相比,SPI具有全双工模式、协议易于实现、占用I/O资源少等优点,常被应用于多种电路系统,实现处理器与外围设备的通信,因此,SPI总线接口的实现方法也成为近年来研究和讨论的热点之一。
SPI接口的扩展可分为硬件和软件两种方式,利用软件来扩展SPI接口,方法虽然简单但速度有限制,显然无法满足高速系统的要求,因此,本设计采用硬件的方法来实现功能。
1.2.4 FPGA技术
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,是在PAL、GAL、CPLD等可编程器件的基础上进一步发展而来的产物。
但是FPGA的规模较大,在需要应用到时序、组合等逻辑电路的场合它是较理想的应用,应用FPGA可以做成一个系统级的芯片,它具有可重复编程性。简单来说,FPGA就是“可反复编程的逻辑器件”,相对于售后无法再进行修改的ASIC和ASSP等产品来说,可反复编程是FPGA所特有的一个优势。也正由于FPGA 可编程的灵活性,FPGA正在向着高集成,高性能,低功耗,低价格的方向发展,也因此,在各种电子及通信设备里得到了很广泛的应用。
FPGA的另一大特点就是能够有效缩短开发所需的时间,使用FPGA进行开发设计,能够让开发时间减少三分之一甚至一半,因此,想要实现“少量多品种”以及“产品周期短”市场,FPGA是不可缺少的器件之一。
1.3 论文的主要内容和章节安排
本论文研究的工作主要有,深入了解掌握SPI接口的工作原理,学习硬件描述语言VHDL的使用,设计了一个基于FPGA的SPI通信接口,针对目前SPI接口相关技术的现状,采用以FPGA实现SPI通信接口硬件电路,以VHDL语言编写实现SPI通信接口各功能模块的方法。论文主要讲述了基于FPGA的SPI通信接口的总体方案设计和论证,包括硬件部分和软件部分,最后进行仿真结果的阐述。整个设计在Quartus II环境下完成。
论文的第1章主要介绍研究目的、意义以及相关技术的发展现状;第2章介绍SPI接口的工作原理;第3章介绍基于FPGA的SPI通信接口的总的设计方案和设计思想;第4章介绍各个子模块的具体设计,并编写出程序进行编译调试;第5章进行仿真验证,最后进行总结。
1.4 本章小结
本章从研究的背景着手,介绍了IP核的概念和数据传送的相关知识,分析了本次设计所涉及到的FPGA和接口等相关技术的发展现状,而后说明了本次设计采用FPGA的方式实现SPI通信接口设计的研究目的及意义,初步介绍了一下本次设计的主要内容。
2 SPI介绍
2.1 SPI通信原理
SPI的通信原理其实很简单,SPI是以主从方式工作的,这种工作模式通常会有一个主设备和一个或多个从设备,完成数据交换需要至少4根线,分别是:
(1)MOSI– SPI总线主机输出/ 从机输入(SPI Bus Master Output/Slave Input)
(2)MISO– SPI总线主机输入/ 从机输出(SPI Bus Master Input/Slave Output)
(3)SCLK –时钟信号,由主设备产生
(4)CS – 从设备使能信号,由主设备控制(Chip select)
其中CS是从设备使能信号,用来控制芯片是否被选中,当片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效,否则该芯片不被选中,这就使得在同一总线上连接多个SPI设备成为可能。
剩下来的3根线是负责通讯的,SPI是串行通讯协议,也就是说,数据是一位一位传输从而完成整个数据交换的。这就是SCLK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。 VHDL+FPGA的SPI通信接口设计(3):http://www.751com.cn/tongxin/lunwen_13593.html