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

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

Info

Publication number
CN107168720B
CN107168720B CN201710418801.3A CN201710418801A CN107168720B CN 107168720 B CN107168720 B CN 107168720B CN 201710418801 A CN201710418801 A CN 201710418801A CN 107168720 B CN107168720 B CN 107168720B
Authority
CN
China
Prior art keywords
spi
fpga
module
interface
configuration
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.)
Active
Application number
CN201710418801.3A
Other languages
English (en)
Other versions
CN107168720A (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

Images

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

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 CN107168720A (zh) 2017-09-15
CN107168720B true 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)

Families Citing this family (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 (5)

* 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配置程序远程更新系统及其方法
CN102999363A (zh) * 2012-11-30 2013-03-27 北京遥测技术研究所 一种fpga/dsp嵌入式系统的启动方法
CN104050146A (zh) * 2014-05-23 2014-09-17 北京兆易创新科技股份有限公司 一种微控制单元mcu芯片

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9312887B2 (en) * 2011-05-09 2016-04-12 Bae Systems Information And Electronic Systems Integration Inc. Hardware abstraction layer (HAL) configuration for software defined radio (SDR) platforms
US10440121B2 (en) * 2015-04-09 2019-10-08 Web Sensing, Llc Endpoints for performing distributed sensing and control and methods of operating the same

Patent Citations (5)

* 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配置程序远程更新系统及其方法
CN102999363A (zh) * 2012-11-30 2013-03-27 北京遥测技术研究所 一种fpga/dsp嵌入式系统的启动方法
CN104050146A (zh) * 2014-05-23 2014-09-17 北京兆易创新科技股份有限公司 一种微控制单元mcu芯片

Also Published As

Publication number Publication date
CN107168720A (zh) 2017-09-15

Similar Documents

Publication Publication Date Title
US11106838B2 (en) Systems, methods, and apparatus to generate an integrated modular architecture model
US6434660B1 (en) Emulating one tape protocol of flash memory to a different type protocol of flash memory
US11294660B2 (en) Apparatus and method for configuring or updating programmable logic device
CN105808396A (zh) 一种芯片调试装置、调试方法及soc芯片系统
US20040078179A1 (en) Logic verification system
US8239708B2 (en) System on chip (SoC) device verification system using memory interface
CN103198042A (zh) Pci航空串行总线板卡及实现动态加载数据处理方法
CN101454746A (zh) 一种以多功能存储卡通讯的方法
CN106843983A (zh) 远程升级现场可编程门阵列的系统及方法
CN106878285B (zh) 一种应用于反熔丝器件编程及测试系统的通信方法
CN105159731A (zh) 一种fpga配置文件远程升级的装置
CN103793356A (zh) 用于配置及校准集成电路的技术和电路系统
KR20170130013A (ko) 바이너리 벡터 기반의 테스트 장치
CN107526614B (zh) Fpga开发板的通信方法
CN107168720B (zh) 一种基于fpga的spi接口配置方法
CN111512251B (zh) 用于促进控制系统测试和仿真的方法
Eck et al. In-circuit partial reconfiguration of rocketio attributes
CN104460490B (zh) 变频器的可编程逻辑控制处理方法、数字处理器及变频器
CN211015473U (zh) 一种升级配置逻辑电路、可编程逻辑器件及升级配置系统
CN114660383A (zh) 一种通用载荷管理器地检测试板卡
CN110401586B (zh) 一种总线通信方法、装置、设备及可读存储介质
CN113961176A (zh) 一种实现客户端版本规则判定兼容性的方法及装置
WO2000057273A1 (en) Vlsi emulator comprising processors and reconfigurable circuits
CN110704089A (zh) 多cpld在线升级方法和装置
CN111464398A (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

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.

CP03 Change of name, title or address
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

CP01 Change in the name or title of a patent holder