基于FPGA的并行数据转SPI接口设计

2012-06-25 03:31陈金鹰
电视技术 2012年5期
关键词:低电平寄存器时钟

刘 敏,陈金鹰,唐 伟,李 菊

(成都理工大学信息科学与技术学院,四川 成都 610059)

当在两个电路间进行8或16位数据传输时,需要8或16要数据线进行连接,如果两个电路相距较远,采用并行传输则不经济,也不可靠,故常用串行方式进行数据传输。由此带来的问题是传输速率将变为原来的1/8或1/16。本文提出一种改进的传输设计方案,即将并行数据传输到FPGA[1],由FPGA以并行数据位数倍的速率按改进的SPI标准进行传输,从而实现并行数据的远程传输而保持原来的高速传输速率。

1 系统工作原理

并行数据转改进型SPI输出接口系统结构如图1所示。并行数据datain从外部输入到数据移位寄存器datars中,也可串行从sdi输入到数据移位寄存器datars中[2]。来自sdi的数据可用来进行收发两端传输过程的握手,检验对方是否正确收到数据。例如,如有必要,对方可将收到数据串行通过sdi发回到datars中,如果该数据与原datain数据相同,则表明发送正确。接收到的sdi数据可从数据缓冲寄存器databuf得到。当datain数据发送完毕,发送完毕标志信号bf置1。当复位信号reset为1时,bf变为低电平,并使nss为低电平,通知对方准备接收数据[3]。

图1 系统结构

系统工作时钟为clk,并通过sck为对方提供驱动时钟。当数据移位寄存器datars中的数据被全部移出时,移完标志信号bf置1,并使串行输出端口sdo输出为低电平,否则sdo输出为datain数据。这里称之为改进型SPI,其主要特点是在无数据传输时,SDI,SDO为低电平以省电,在数据传输方式上任采用SPI思想,因此当将该设计电路与现有标准SPI进行接口时,需要注意这种区别,界时可将无数据传输时的电平修改一下即可。如果不与其他原SPI标准通信,两个该系统电路即可完成高速通信。

2 程序流程

系统工作流程如图2所示。如以发送端为主设备,接收端为从设备,则系统开始工作时,先通过nss输出低电平使从设备获得一个选通信号,进入工作状态,并向从设备发送系统工作时钟sck,使主、从设备能同步传输数据。此外还使发送完毕标志信号bf置0。

图2 系统工作流程

系统有两种数据输入方式:

1)当复位信号reset为1时,将并行数据锁存输入主设备,此后在reset为0时进行数据的串行输出[4]。

2)当复位信号reset为0时,不能从并行输入端口输入数据,但可从串行端口输入数据,使该系统不仅具有与并行输出设备进行通信的能力,同时具有与串行设备通信的能力。

串行接收的数据通过并行输出端口databuf从数据缓冲寄存器读出。系统的端口设置的VHDL语言程序如下:

3 程序仿真

在Xilinx公司软件ISE10.1环境下运行程序,从运行程序综合后得到的顶层模块如图3所示中,可清楚地看到系统与并行设备和串行设备之间进行双向数据传输的接口引脚。

图3 系统顶层模块的对外引脚

图4中为从并行端口输入两位十六进制数据B1(10110001b)后,再从串口输入110000111b后的输入输出波形图。从sdo和databuf输出引脚可见数据在时钟sck驱动下的输出情况[5]。表1则反映了在时钟驱动下,寄存器中数据和输入输出端口上信号的变化过程。

表1 寄存器和输入输出端口上信号的变化过程

从表1中可见本改进型SPI串行接口的特点:当数据串行从输出端口移出时,同时也在串行从输入端口移入,并冲掉移位寄存器中原有的数据。完成从sdi端口接收一个字节数据,需要在数据传输完成标志bf为高电平后的下一个时钟才能完成[6]。图4为仿真程序运行结果。

图4 仿真程序运行结果(截图)

4 结束语

随着电子技术的广泛应用,不同设备间进行通信变得越来越频繁和重要,常会遇到不同设备间由于标准不一致,而造成通信困难。该设计可用于解决高速数据的并行传输转SPI方式的串行输出,其数据传输速率与两个电子设备自身内部的工作频率无关。数据传输时,只需发信方将数据送到该系统,再发送一个复位信号reset,数据便可通过该系统传到对方。此外,还可在发送数据的同时,通过sdi接收对方数据,并从databuf端口取出,实现双向通信。

[1]刘庆丰,陈金鹰,王舟兵,等.基于FPGA的DVB-S调制器系统设计[J]. 电视技术,2010,34(1):37-39.

[2]王巍,陈金鹰,郑恭明.基于ZigBee标准的FPGA设计无线收发系统[J]. 数字通信世界,2008(9):43-44.

[3]陈培均.基于 FPGA的802.11b设计[D].成都:成都理工大学,2009.

[4]陈卓.基于FPGA的软件无线电DDC设计[D].成都:成都理工大学,2008.

[5]陈金鹰,孙旭,李灿平.高精度频率测定的ASIC实现[J].成都理工大学学报:自然科学版,2004,34(4):390-394.

[6]徐国栋,陶安利,徐士敏,等.基于FPGA的DDS函数发生器的设计与实现[J]. 机械制造与自动化,2010,39(5):91-94.

猜你喜欢
低电平寄存器时钟
STM32和51单片机寄存器映射原理异同分析
别样的“时钟”
古代的时钟
Lite寄存器模型的设计与实现
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
浅谈物理电路与数字电路
有趣的时钟
15-MeV电子直线加速器的低电平系统
时钟会开“花”
集成电路静态参数测试