fpga的spi控制器设计
现如今,专用集成电路(ASIC)设计技术正在不断进步,超大规模集成电路(VLSI)工艺的技术也发展十分迅速,他们所适用的范围也越来越广泛,然而其价格却在逐步减少,因此想要实现例如SPI的通信接口也可采用可编程逻辑器件编程的硬件组合逻辑电路去设计实现,并且相对软件实现来说,具有一些更好的优点。SPI接口是现在信息技术中应用比较广泛的一种标准类型接口,该接口方便易用,并且该接口只占用4条信号线,比较节省系统资源,所以许多器件都兼容这个接口。应用SPI接口的外围设备有很多,主要在FLASH,实时时钟,EEPROM,AD转换器,还有数字信号处理器和数字信号解码器之间等等。本文首先对该课题的研究背景,研究的目的和意义做了介绍,接着展望了其应用前景。随后介绍了SPI的原理,工作模式及其协议内容,还有对FPGA的背景和原理进行了简要的讲述,最后对本次设计进行一系列的验证。本次设计就是在一种较为简单通用的SPI协议的基础上来进行设计,使用VHDL语言实现设计,软件使用了Quartus II开发工具,并在该软件上进行设计仿真,之后再下载到Cyclone II开发板上,并使用Quartus II软件内置的硬件调试工具进行板上采样调试,验证并观察结果,完成实现功能,并添加一些拓展性的设计。关键词:现场可编程门阵列 ;高速整合电子硬件描述语言;通信;串行外设接口协议;Quartus II目录
第一章 绪论 1
1.1 课题研究背景 1
1.2 SPI研究目的及意义 2
1.3 SPI的应用前景 3
1.3 本章小结 3
第二章 SPI原理分析 4
2.1 SPI介绍 4
2.2 SPI工作模式 5
2.3 SPI传输模式 6
2.4 SPI协议详解 8
2.5 本章小结 10
第三章FPGA基本原理介绍 12
3.1 FPGA工作原理 12
3.3 FPGA的背景 14
3.4本次设计所用FPGA介绍 14
3.5 本章小结 15
第四章 方案实现与结果验证 16
4.1 SPI逻辑时序实现 16
4.1.1 SPI仿真分析以及
*好棒文|www.hbsrm.com +Q: ^3^5^1^9^1^6^0^7^2^*
/> 2.5 本章小结 10
第三章FPGA基本原理介绍 12
3.1 FPGA工作原理 12
3.3 FPGA的背景 14
3.4本次设计所用FPGA介绍 14
3.5 本章小结 15
第四章 方案实现与结果验证 16
4.1 SPI逻辑时序实现 16
4.1.1 SPI仿真分析以及开发板上调试验证分析 18
4.1.2 硬件联机采样 19
4.1.3 开发板上检测测试 20
4.1.4 软件时序仿真 22
4.1.5 硬件联机采样 23
4.1.6 开发板上检测测试 24
4.2 SPI时序的应用,SPI ADC应用 24
4.2.1软件仿真分析 28
4.2.2 硬件联机采样 29
4.2.3 开发板板上检测测试 31
4.3 本章小结 33
第五章 论文总结 34
致 谢 35
参考文献 36
第一章 绪论
1.1 课题研究背景
数据传输方式有两种,即并行传输方式和串行传输方式。最早的时候,并行传输方式的传输速度相比较串行传输方式要更快,因此数据传输领域很长的一段时间都采用了并行传输方式。应用并行传输方式的外围设备或集成电路有很多很多,像MCU、CPU、内存等等,甚至某些打印机使用这样的传输方式。
从两种方式的原理来说,串行的方式只需要一条数据线,按位一位一位传输的方式。比如说:想要传输一串八位的(即一个字节)数据,是从这个字节的最高的一位数据开始按位传输,最后传输最低的一位。
而并行传输方式则是一次性将8位信号同时发送出去。这样的话,自然至少需要8根信号线来进行传输。
假如是按照每次传输的数据流量来看的话,串行传输方式的速度要远远不如并行传输方式的传输速度,在计算机技术发展初期,因为数据传输的速率还没有很快,所以并行方式在当时的传输速度是比较快的。
然而并行传输也是有它的缺点的:
(1)干扰问题之前也已经有人提到过。其根本原因恰恰是由于它的传输速率太快,通常情况下会大于100M,因此数据线上信号传输的频率也会大于100MHz,试想一下,我们常用的调频收音机的频率也不过在88MHz到108MHz之间,也就是说,如果是用并行传输方式工作,将需要八根天线,先不说其美观和成本问题,单说这么多线在一起发送信号,本身就非常容易发生干扰的情况。但其实也是可以继续增大传输速率的,只是那就需要加强屏蔽,来减小信号线之间可能会发生的耦合电容。但是这必然会导致信号线更粗,截面积更大,使用更多金属,使成本提高很多,这会变得不太现实,也不太实用。不过这并不是不能解决的一个问题。
(2)信号如何同步是并行传输方式提速的最大的阻力。使用并行方式进行数据传输,8位的信号是同时被发送到端口上的,虽然电信号的传输速度近似于光速,但仍然难免会有延迟,所以这8位信号并不是严格的同时到达接收端的,这种到达时间上的不同步不会在每一个字节在信号线上的持续时间比较长的时候表现的很明显,但是随着传输速率的逐步加快,每一个字节信号在线上存在时间与接收到8位信号时间差相比,也就变得短了很多,渐渐的出现使得前一个字节的尾部信号与后一个字节的头部信号在同一时刻被接收端接收,这也将造成传输失败的现象,不仅如此,当信号线的加长的时候,这种现象还会更加的明显,直至信号完全错误,无法使用。这是并行传输方式的一个致命缺点。
相比较而言,串行传输的方式由于只有一位信号在信号线上,所以不存在位不同步到达的问题,因此数据传输的频率还是可以继续提高的,现如今,数据传输速率已达到1Gb/s(1024M)以上,并且还在不断的提升,而并行传输的速率仅仅达到将近100Mb/s便已经很难再提升了,可以想象,串行数据传输方式的速度将会越来越高于并行传输的方式的速度。 也因为这样,大部分的厂家都在生产的外设上采用了串行通信接口。Motorola公司在这一背景下开发出了SPI这样一个接口,并还在不断的优化改进,由于其占用线的资源少,并且数据传输稳定可靠,该总线接口比较常用于在和一些数据交换较慢的外设器件的通信上,如模/数转换器,设备驱动以及内存,闪存等等 。现在很多单片机及各种芯片开发板等都留有SPI模块用来连接外围设备,从而使主机和外设相互传输数据更加方便。
1.2 SPI研究目的及意义
SPI是三线同步总线的一种同步串行的通讯方式,是现在信息技术中应用比较广泛的一种标准类型接口,该接口方便易用,并且该接口只占用4根线,比较节约系统资源,所以很多器件都兼容了该接口方式。兼容SPI接口的外围设备有许多,比如闪存,实时时钟,电子可擦除式只读存储器,模/数转换器等等,还有数字信号处理器跟数字信号解码器通信也可使用该接口。当然,串行通信方式也还有其他的接口标准,从和UART接口比较来看,SPI接口需要额外一根同步时钟信号线,在不严格要求通讯双方时序的时候,比较方便不同设备之间的相互结合,而且通信速度也比较快。比较常用于如存储模块等器件内部模块之间的数据量较大较快的通信上。这也就凸现SPI通信方式的好处。
因此,认识SPI接口,会更加方便我们认识外围器件之间的数据传输方式,并其定义的基础之上的适当的优化,强化功能,使其更加可靠。
SPI接口的扩展方式有两种,有硬件方式扩展和软件编程实现。相比较而言,使用软件扩展的方法更加的简单方便,然而硬件扩展的方法速度却更具有潜力。如今数字系统正朝着高速且功能繁杂的方向发展,因此软件扩展的方法显然是无法跟得上时代的要求的,也因此应用硬件的方法设计可行性更高。同时,硬件实现SPI接口也可使与SPI相关的软件变得更加简单,也将使CPU节约很多资源
第一章 绪论 1
1.1 课题研究背景 1
1.2 SPI研究目的及意义 2
1.3 SPI的应用前景 3
1.3 本章小结 3
第二章 SPI原理分析 4
2.1 SPI介绍 4
2.2 SPI工作模式 5
2.3 SPI传输模式 6
2.4 SPI协议详解 8
2.5 本章小结 10
第三章FPGA基本原理介绍 12
3.1 FPGA工作原理 12
3.3 FPGA的背景 14
3.4本次设计所用FPGA介绍 14
3.5 本章小结 15
第四章 方案实现与结果验证 16
4.1 SPI逻辑时序实现 16
4.1.1 SPI仿真分析以及
*好棒文|www.hbsrm.com +Q: ^3^5^1^9^1^6^0^7^2^*
/> 2.5 本章小结 10
第三章FPGA基本原理介绍 12
3.1 FPGA工作原理 12
3.3 FPGA的背景 14
3.4本次设计所用FPGA介绍 14
3.5 本章小结 15
第四章 方案实现与结果验证 16
4.1 SPI逻辑时序实现 16
4.1.1 SPI仿真分析以及开发板上调试验证分析 18
4.1.2 硬件联机采样 19
4.1.3 开发板上检测测试 20
4.1.4 软件时序仿真 22
4.1.5 硬件联机采样 23
4.1.6 开发板上检测测试 24
4.2 SPI时序的应用,SPI ADC应用 24
4.2.1软件仿真分析 28
4.2.2 硬件联机采样 29
4.2.3 开发板板上检测测试 31
4.3 本章小结 33
第五章 论文总结 34
致 谢 35
参考文献 36
第一章 绪论
1.1 课题研究背景
数据传输方式有两种,即并行传输方式和串行传输方式。最早的时候,并行传输方式的传输速度相比较串行传输方式要更快,因此数据传输领域很长的一段时间都采用了并行传输方式。应用并行传输方式的外围设备或集成电路有很多很多,像MCU、CPU、内存等等,甚至某些打印机使用这样的传输方式。
从两种方式的原理来说,串行的方式只需要一条数据线,按位一位一位传输的方式。比如说:想要传输一串八位的(即一个字节)数据,是从这个字节的最高的一位数据开始按位传输,最后传输最低的一位。
而并行传输方式则是一次性将8位信号同时发送出去。这样的话,自然至少需要8根信号线来进行传输。
假如是按照每次传输的数据流量来看的话,串行传输方式的速度要远远不如并行传输方式的传输速度,在计算机技术发展初期,因为数据传输的速率还没有很快,所以并行方式在当时的传输速度是比较快的。
然而并行传输也是有它的缺点的:
(1)干扰问题之前也已经有人提到过。其根本原因恰恰是由于它的传输速率太快,通常情况下会大于100M,因此数据线上信号传输的频率也会大于100MHz,试想一下,我们常用的调频收音机的频率也不过在88MHz到108MHz之间,也就是说,如果是用并行传输方式工作,将需要八根天线,先不说其美观和成本问题,单说这么多线在一起发送信号,本身就非常容易发生干扰的情况。但其实也是可以继续增大传输速率的,只是那就需要加强屏蔽,来减小信号线之间可能会发生的耦合电容。但是这必然会导致信号线更粗,截面积更大,使用更多金属,使成本提高很多,这会变得不太现实,也不太实用。不过这并不是不能解决的一个问题。
(2)信号如何同步是并行传输方式提速的最大的阻力。使用并行方式进行数据传输,8位的信号是同时被发送到端口上的,虽然电信号的传输速度近似于光速,但仍然难免会有延迟,所以这8位信号并不是严格的同时到达接收端的,这种到达时间上的不同步不会在每一个字节在信号线上的持续时间比较长的时候表现的很明显,但是随着传输速率的逐步加快,每一个字节信号在线上存在时间与接收到8位信号时间差相比,也就变得短了很多,渐渐的出现使得前一个字节的尾部信号与后一个字节的头部信号在同一时刻被接收端接收,这也将造成传输失败的现象,不仅如此,当信号线的加长的时候,这种现象还会更加的明显,直至信号完全错误,无法使用。这是并行传输方式的一个致命缺点。
相比较而言,串行传输的方式由于只有一位信号在信号线上,所以不存在位不同步到达的问题,因此数据传输的频率还是可以继续提高的,现如今,数据传输速率已达到1Gb/s(1024M)以上,并且还在不断的提升,而并行传输的速率仅仅达到将近100Mb/s便已经很难再提升了,可以想象,串行数据传输方式的速度将会越来越高于并行传输的方式的速度。 也因为这样,大部分的厂家都在生产的外设上采用了串行通信接口。Motorola公司在这一背景下开发出了SPI这样一个接口,并还在不断的优化改进,由于其占用线的资源少,并且数据传输稳定可靠,该总线接口比较常用于在和一些数据交换较慢的外设器件的通信上,如模/数转换器,设备驱动以及内存,闪存等等 。现在很多单片机及各种芯片开发板等都留有SPI模块用来连接外围设备,从而使主机和外设相互传输数据更加方便。
1.2 SPI研究目的及意义
SPI是三线同步总线的一种同步串行的通讯方式,是现在信息技术中应用比较广泛的一种标准类型接口,该接口方便易用,并且该接口只占用4根线,比较节约系统资源,所以很多器件都兼容了该接口方式。兼容SPI接口的外围设备有许多,比如闪存,实时时钟,电子可擦除式只读存储器,模/数转换器等等,还有数字信号处理器跟数字信号解码器通信也可使用该接口。当然,串行通信方式也还有其他的接口标准,从和UART接口比较来看,SPI接口需要额外一根同步时钟信号线,在不严格要求通讯双方时序的时候,比较方便不同设备之间的相互结合,而且通信速度也比较快。比较常用于如存储模块等器件内部模块之间的数据量较大较快的通信上。这也就凸现SPI通信方式的好处。
因此,认识SPI接口,会更加方便我们认识外围器件之间的数据传输方式,并其定义的基础之上的适当的优化,强化功能,使其更加可靠。
SPI接口的扩展方式有两种,有硬件方式扩展和软件编程实现。相比较而言,使用软件扩展的方法更加的简单方便,然而硬件扩展的方法速度却更具有潜力。如今数字系统正朝着高速且功能繁杂的方向发展,因此软件扩展的方法显然是无法跟得上时代的要求的,也因此应用硬件的方法设计可行性更高。同时,硬件实现SPI接口也可使与SPI相关的软件变得更加简单,也将使CPU节约很多资源
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/2330.html