CN107168720A - 一种基于fpga的spi接口配置方法 - Google Patents

一种基于fpga的spi接口配置方法 Download PDF

Info

Publication number
CN107168720A
CN107168720A CN201710418801.3A CN201710418801A CN107168720A CN 107168720 A CN107168720 A CN 107168720A CN 201710418801 A CN201710418801 A CN 201710418801A CN 107168720 A CN107168720 A CN 107168720A
Authority
CN
China
Prior art keywords
spi
fpga
ancillary equipment
interface
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710418801.3A
Other languages
English (en)
Other versions
CN107168720B (zh
Inventor
苏岚
张磊
陈付齐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CICT Mobile Communication Technology Co Ltd
Original Assignee
Wuhan Hongxin Telecommunication Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Hongxin Telecommunication Technologies Co Ltd filed Critical Wuhan Hongxin Telecommunication Technologies Co Ltd
Priority to CN201710418801.3A priority Critical patent/CN107168720B/zh
Publication of CN107168720A publication Critical patent/CN107168720A/zh
Application granted granted Critical
Publication of CN107168720B publication Critical patent/CN107168720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Logic Circuits (AREA)

Abstract

本发明提供一种基于FPGA的SPI接口配置方法,用于在没有上位机的情况下完成SPI接口的配置,并支持在线修改SPI配置参数,包括设置JTAG下载器连接JTAG接口,JTAG接口通过配置连线连接FPGA,FPGA通过SPI总线连接到SPI器件;FPGA包括依次连接的ROM模块、SPI Ctrl模块和SPI接口模块,SPI模块通过SPI总线连接到SPI器件;对外围设备的初始配置包括将外围设备的配置脚本文件转换二进制编码文件,例化FPGA 内部的ROM模块,对ROM模块进行初始化,FPGA 通过SPI Ctrl模块配置的状态机,从ROM模块中将二进制编码命令传到SPI接口模块上,FPGA的SPI接口模块形成符合外围设备的SPI接口命令,对外围设备进行串行通信配置。

Description

一种基于FPGA的SPI接口配置方法
技术领域
本发明属于SPI接口配置技术领域,更具体的是一种基于FPGA的SPI接口配置方法。
背景技术
现场可编程阵列(FPGA)具有灵活性、时效性等优点,通过灵活的编程可以设计成为很多通用接口。
SPI(串行外设接口)总线系统是一种同步串行外设接口,用于处理主设备与各种外围设备以串行方式进行通信信息交换。它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。分别是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。SDI为主设备数据输入,从设备数据输出;SDO是主设备数据输出,从设备数据输入;SCLK是时钟信号,由主设备产生;CS是从设备使能信号,由主设备控制。
通常实现中FPGA与外围设备的SPI通信具有准实时的交互性,多数情况下需要上位机进行配合,增加交互用的串口、网口或是增加CPU器件的参与。不论哪一种都既增加开发难度,又需要增加开发人员,进而增加了开发周期及开发成本。
相关术语:
SPI Serial Peripheral Interface 串行外设接口
FPGA Filed Programmable Gate Array 现场可编程门阵列
ROM Read-only Memory 只读存储器
CPU Central Processing Unit 中央处理器
JTAG Joint Test Action Group 联合测试工作组
发明内容
本发明提出了一种基于FPGA的SPI接口配置方法,可以在没有上位机的情况下完成SPI接口的配置。并在线修改SPI配置参数,实现准实时交互性。
本发明技术方案提供一种基于FPGA的SPI接口配置方法,用于在没有上位机的情况下完成SPI接口的配置,并支持在线修改SPI配置参数,实现如下,
设置JTAG下载器连接JTAG接口,JTAG接口通过配置连线连接FPGA,FPGA通过SPI总线连接到作为外围设备的SPI器件;
FPGA包括依次连接的ROM模块、SPI Ctrl模块和SPI接口模块,SPI模块通过SPI总线连接到SPI器件;
所述ROM模块用于存储二进制编码文件;
所述SPI Ctrl模块,用于从ROM模块中读取数据,并转化成SPI接口接受的命令格式;
SPI接口模块用于产生SPI接口信号,输出SPI接口信号给外围设备;
对外围设备的初始配置包括以下步骤,
步骤1,将外围设备的配置脚本文件转换成FPGA内部的ROM模块能够存储并识别的二进制编码文件;
步骤2,例化FPGA内部的ROM模块,ROM模块的存储大小由步骤1生成的二进制编码文件大小决定;用步骤1生成的二进制编码文件对ROM模块进行初始化;
步骤3,FPGA通过SPI Ctrl模块配置的状态机,从ROM模块中将二进制编码命令传到SPI接口模块上;所述二进制编码命令是用步骤1生成的二进制编码文件对ROM模块进行初始化的结果;
步骤4,FPGA的SPI接口模块形成符合外围设备的SPI接口命令,对外围设备进行串行通信配置。
而且,当需要对外围设备重新配置时,在线修改ROM模块中的二进制编码文件,FPGA复位释放后,实现对外围设备的重新配置。
而且,采用以下方式实现对外围设备的重新配置。
首先,在应用中根据实际需要,确定要修改的外围设备SPI接口的地址和数据值;
然后,加载用于ROM模块初始化的二进制编码文件;找到相应的SPI地址,填入确定要修改的数据值;
最后,FPGA芯片复位,在FPGA内部重复运行步骤3和步骤4;修改后的值被重新配置到外围设备。
而且,使用FPGA编程软件实现加载用于ROM模块初始化的二进制编码文件;找到相应的SPI地址,填入确定要修改的数据值。
本发明提出的一种基于FPGA的SPI接口配置方法,没有采用串口、网口等需要CPU参与的交互方式。两者相比,本发明实现节省了开发难度及开发人员投入,节约了开发成本,适于通信公司大规模应用,具有重要的经济意义和市场价值。
附图说明
图1为本发明实施例中硬件模块连接框图。
图2为本发明实施例中FPGA实现模块框图。
图3为本发明实施例中配置流程图。
图4为本发明实施例中二进制编码文件结构示意图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
本发明实施例,提出一种基于FPGA的SPI接口配置方法。无需开发上位机软件,节省了开发难度及开发人员投入,节约了开发成本。FPGA的内部ROM模块存储外围设备需要配置的SPI寄存器命令。通过状态机控制将存储在ROM中的命令,生成SPI接口信号对外围设备进行配置。在线修改ROM中的内容实现对外围设备的重新配置。
本发明采用的FPGA芯片是Intel公司的FPGA芯片,FPGA的开发综合软件是QutursII。
图1为整个硬件模块的连接图,FPGA JTAG下载器连接JTAG接口,JTAG接口通过配置连线连接FPGA,FPGA通过SPI总线连接到作为外围设备的SPI器件。电路板上电,通过FPGAJTAG下载器,将编程好的FPGA文件下载到FPGA芯片。FPGA开始运行后,从内部的ROM取出数据通过SPI接口对外围设备进行配置。
图2为FPGA内部实现框图,包括依次连接的ROM模块、SPI Ctrl模块和SPI接口模块(图中记为SPI),SPI模块通过SPI总线连接到SPI器件。ROM模块用于存储二进制编码文件。SPI Ctrl模块(串行外设接口控制模块)用于从ROM模块中读取数据,并转化成SPI接口接受的命令格式。SPI接口模块用于产生SPI接口信号,输出SPI接口信号给外围设备。具体实施时,本领域技术人员可以采用FPGA软件技术实现模块化。
参见图3,本发明实施例的具体实现如下:
对外围设备的初始配置包括以下步骤:步骤1,将外围设备配置脚本文件转换成FPGA内部的ROM模块可以存储并可识别的二进制编码文件。
实施例中,先将外围器件AD9361的配置脚本转换成二进制编码文件。二进制编码结构如图4。每个二进制编码位宽为20位,由3部分组成:2位读写操作(W/R),第18、19位;10位SPI地址(SPI Addr),第8~17位和8位数据(SPI data),第0~7位。写操作,二进制编码的最高2位编码为11;读操作,二进制编码的最高2位编码为10。AD9361配置脚本中的等待命令,二进制编码的最高2位编码为01。在控制状态机中如果读到等待命令,FPGA会等待一段时间,不操作SPI接口。
步骤2,例化FPGA内部的ROM模块,ROM模块的存储大小由步骤1生成的二进制编码文件大小决定。并用步骤1生成的二进制编码文件对ROM进行初始化。
例化FPGA中的ROM模块,ROM模块的存储位宽和深度由步骤1生成的二进制编码文件决定。实施例中设置的ROM位宽为20位,存储深度为4096。ROM模块用步骤1生成的二进制编码文件对进行初始化。
步骤3,FPGA通过SPI Ctrl模块配置的状态机,从ROM模块中将二进制编码命令传到SPI接口模块上。所述二进制编码命令是用步骤1生成的二进制编码文件对ROM模块进行初始化的结果。
FPGA中的SPI Ctrl模块控制从ROM中读出数据,转换成SPI模块可以执行的SPI命令。实施例中SPI Ctrl模块的状态机具体设置为,如读到的二进制编码命令最高2位为11,则SPI串行接口中的读写位置1,进行写操作;如读到的二进制编码命令最高2位为11,则SPI串行接口中的读写位置0,进行读操作。如读到的二进制编码命令最高2位为01,则SPI串行接口不进行读或是写操作,等待外围设备(本实施例中是AD9361芯片)进行内部的校准/锁相环锁定等操作。
步骤4,FPGA的SPI接口模块形成符合外围设备的SPI接口命令,对外围设备进行串行配置。
FPGA中的SPI接口模块将得到的SPI读写、寄存器地址和写入数据等命令,形成外围设备可识别的SPI接口信号。与外围设备进行串行通信。
进一步地,当需要对外围设备的重新配置时,使用FPGA编程软件,在线修改ROM中的二进制编码命令文件,FPGA复位释放后,实现对外围设备的重新配置。
实施例实现如下:
首先,在应用中根据实际需要,确定要修改的外围设备SPI接口的地址和数据值。例如,根据实际需要调整AD9361的发送端内部衰减值,即对应的SPI寄存器地址为0x073或是0x075的衰减值。
然后,打开FPGA芯片的Quturs II软件的In‐System Memory Content Editor工具加载用于ROM初始化的二进制编码文件。找到相应的SPI地址,填入确定的修改值。例如,在In‐System Memory Content Editor工具里加载ROM初始化二进制编码文件,找到AD9361发送端内部衰减寄存器0x73或是0x75所在的位置。修改二进制编码中的8位数据部分,填入所需要的数值。
最后,FPGA芯片复位,在FPGA内部重复运行步骤3和步骤4。修改后的值被重新配置到外围设备。例如,AD9361发送端内部衰减会变成实际需要的值,使发送端输出信号满足实际需求。
具体实施时,本领域技术人员可以采用FPGA软件技术实现上述方法的自动运行。
本发明中所描述的具体实施例仅仅是对本发明进行举例说明。任何熟悉该技术的技术人员在本发明做揭露的技术范围内,都可轻易得到其变化或替换,因此本发明保护范围都应涵盖在由权利要求书所限定的保护范围之内。

Claims (4)

1.一种基于FPGA的SPI接口配置方法,其特征在于:用于在没有上位机的情况下完成SPI接口的配置,并支持在线修改SPI配置参数,实现如下,
设置JTAG下载器连接JTAG接口,JTAG接口通过配置连线连接FPGA,FPGA通过SPI总线连接到SPI器件;
FPGA包括依次连接的ROM模块、SPI Ctrl模块和SPI接口模块,SPI模块通过SPI总线连接到作为外围设备的SPI器件;
所述ROM模块用于存储二进制编码文件;
所述SPI Ctrl模块,用于从ROM模块中读取数据,并转化成SPI接口接受的命令格式;
SPI接口模块用于产生SPI接口信号,输出SPI接口信号给外围设备;
对外围设备的初始配置包括以下步骤,
步骤1,将外围设备的配置脚本文件转换成FPGA内部的ROM模块能够存储并识别的二进制编码文件;
步骤2,例化FPGA内部的ROM模块,ROM模块的存储大小由步骤1生成的二进制编码文件大小决定;用步骤1生成的二进制编码文件对ROM模块进行初始化;
步骤3,FPGA通过SPI Ctrl模块配置的状态机,从ROM模块中将二进制编码命令传到SPI接口模块上;所述二进制编码命令是用步骤1生成的二进制编码文件对ROM模块进行初始化的结果;
步骤4,FPGA的SPI接口模块形成符合外围设备的SPI接口命令,对外围设备进行串行通信配置。
2.根据权利要求1所述基于FPGA的SPI接口配置方法,其特征在于:当需要对外围设备重新配置时,在线修改ROM模块中的二进制编码文件,FPGA复位释放后,实现对外围设备的重新配置。
3.根据权利要求2所述基于FPGA的SPI接口配置方法,其特征在于:采用以下方式实现对外围设备的重新配置。
首先,在应用中根据实际需要,确定要修改的外围设备SPI接口的地址和数据值;
然后,加载用于ROM模块初始化的二进制编码文件;找到相应的SPI地址,填入确定要修改的数据值;
最后,FPGA芯片复位,在FPGA内部重复运行步骤3和步骤4;修改后的值被重新配置到外围设备。
4.根据权利要求3所述基于FPGA的SPI接口配置方法,其特征在于:使用FPGA编程软件实现加载用于ROM模块初始化的二进制编码文件;找到相应的SPI地址,填入确定要修改的数据值。
CN201710418801.3A 2017-06-06 2017-06-06 一种基于fpga的spi接口配置方法 Active CN107168720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710418801.3A CN107168720B (zh) 2017-06-06 2017-06-06 一种基于fpga的spi接口配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710418801.3A CN107168720B (zh) 2017-06-06 2017-06-06 一种基于fpga的spi接口配置方法

Publications (2)

Publication Number Publication Date
CN107168720A true CN107168720A (zh) 2017-09-15
CN107168720B CN107168720B (zh) 2020-09-08

Family

ID=59825581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710418801.3A Active CN107168720B (zh) 2017-06-06 2017-06-06 一种基于fpga的spi接口配置方法

Country Status (1)

Country Link
CN (1) CN107168720B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542478A (zh) * 2018-11-09 2019-03-29 中电科仪器仪表有限公司 一种更新SPI Flash内FPGA程序的系统及方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343470B1 (en) * 2003-09-26 2008-03-11 Altera Corporation Techniques for sequentially transferring data from a memory device through a parallel interface
CN102360302A (zh) * 2011-10-13 2012-02-22 福建星网锐捷网络有限公司 一种fpga配置文件在线升级方法及装置
CN102609286A (zh) * 2012-02-10 2012-07-25 株洲南车时代电气股份有限公司 一种基于处理器控制的fpga配置程序远程更新系统及其方法
US20120290823A1 (en) * 2011-05-09 2012-11-15 Cuiffo George A Core abstraction layer interface
CN102999363A (zh) * 2012-11-30 2013-03-27 北京遥测技术研究所 一种fpga/dsp嵌入式系统的启动方法
CN104050146A (zh) * 2014-05-23 2014-09-17 北京兆易创新科技股份有限公司 一种微控制单元mcu芯片
US20160301671A1 (en) * 2015-04-09 2016-10-13 Web Sensing, Llc System-on-chip data security appliance and methods of operating the same

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343470B1 (en) * 2003-09-26 2008-03-11 Altera Corporation Techniques for sequentially transferring data from a memory device through a parallel interface
US20120290823A1 (en) * 2011-05-09 2012-11-15 Cuiffo George A Core abstraction layer interface
CN102360302A (zh) * 2011-10-13 2012-02-22 福建星网锐捷网络有限公司 一种fpga配置文件在线升级方法及装置
CN102609286A (zh) * 2012-02-10 2012-07-25 株洲南车时代电气股份有限公司 一种基于处理器控制的fpga配置程序远程更新系统及其方法
CN102999363A (zh) * 2012-11-30 2013-03-27 北京遥测技术研究所 一种fpga/dsp嵌入式系统的启动方法
CN104050146A (zh) * 2014-05-23 2014-09-17 北京兆易创新科技股份有限公司 一种微控制单元mcu芯片
US20160301671A1 (en) * 2015-04-09 2016-10-13 Web Sensing, Llc System-on-chip data security appliance and methods of operating the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542478A (zh) * 2018-11-09 2019-03-29 中电科仪器仪表有限公司 一种更新SPI Flash内FPGA程序的系统及方法

Also Published As

Publication number Publication date
CN107168720B (zh) 2020-09-08

Similar Documents

Publication Publication Date Title
CN103559053B (zh) 一种板卡系统及通信接口卡fpga在线升级方法
US20060052994A1 (en) Simulation system, simulation method and simulation program for verifying logic behavior of a semiconductor integrated circuit
CN107918545A (zh) 一种基于zynq的远程升级系统及其实现方法
CN105144114A (zh) Fpga块具有混合协议引擎的测试器
CN104407882B (zh) 一种板卡装置
CN107066746B (zh) 基于i2c接口通过cpld来实现pca9555功能的方法
CN201374060Y (zh) 一种iic总线扩展系统结构
CN107704285A (zh) 现场可编程门阵列多版本配置芯片、系统和方法
CN105229481A (zh) 具有存储器上的加速以及用于fpga块内自动模式生成的加速的测试器
CN105808396A (zh) 一种芯片调试装置、调试方法及soc芯片系统
CN107907814B (zh) 一种提高芯片量产测试效率的方法
CN106680698A (zh) 一种fpga测试用的多工位快速配置装置及其配置方法
CN105378494A (zh) 具有用于独立测试多个dut的多个基于fpga的硬件加速器块的测试体系架构
KR101460665B1 (ko) 메모리 인터페이스를 사용한 SoC 디바이스 검증 모델
CN102262604B (zh) 一种并发访问方法、系统及接口装置
CN105159731A (zh) 一种fpga配置文件远程升级的装置
CN104572384A (zh) 一种芯片多fpga验证方法及系统
CN108664264A (zh) 一种基于cpu通过jtag方式远程更新fpga的装置和方法
US20020108094A1 (en) System and method for designing integrated circuits
CN103676911A (zh) 一种设备控制系统及控制方法
CN107168720A (zh) 一种基于fpga的spi接口配置方法
CN207264382U (zh) 现场可编程门阵列多版本配置的芯片及系统
CN201518128U (zh) 一种软件升级及调试工具
US20020023250A1 (en) Parameterized designing method of data driven information processor employing self-timed pipeline control
CN206039399U (zh) 一种具有调试功能的嵌入式硬件系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 430205 Hubei city of Wuhan province Jiangxia Hidden Dragon Island Tan lake two Road No. 1

Patentee after: CITIC Mobile Communication Technology Co., Ltd

Address before: 430073 Hubei province Wuhan Dongxin East Lake high tech Development Zone, Road No. 5

Patentee before: Wuhan Hongxin Telecommunication Technologies Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 430205 No.1 tanhu 2nd Road, Canglong Island, Jiangxia District, Wuhan City, Hubei Province

Patentee after: CITIC Mobile Communication Technology Co.,Ltd.

Address before: 430205 No.1 tanhu 2nd Road, Canglong Island, Jiangxia District, Wuhan City, Hubei Province

Patentee before: CITIC Mobile Communication Technology Co., Ltd