CN104133963B - 基于串行高速总线的fpga硬件抽象层及其实现方法 - Google Patents
基于串行高速总线的fpga硬件抽象层及其实现方法 Download PDFInfo
- Publication number
- CN104133963B CN104133963B CN201410366166.5A CN201410366166A CN104133963B CN 104133963 B CN104133963 B CN 104133963B CN 201410366166 A CN201410366166 A CN 201410366166A CN 104133963 B CN104133963 B CN 104133963B
- Authority
- CN
- China
- Prior art keywords
- data
- address
- devices
- modules
- write
- 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
Links
Landscapes
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种基于串行高速总线的FPGA硬件抽象层,以FPGA厂家提供的串行高速总线的IP核为对外接口,对内提供统一的接口给用户或是通信组件使用,包含如下功能模块:IRESP模块、IREQ模块、DATA_CTRL模块、TREQ模块。本发明还公开了FPGA硬件抽象层的实现方法。用户或是通信组件就可以通过使用硬件抽象层提供的统一的接口来方便的进行系统内通信,并可以在不同型号和规格的FPGA间任意移植程序,解决了基于串行高速总线的软件无线电系统中,FPGA的应用软件移植性、操作性和可重用性差的问题。
Description
技术领域
本发明涉及串行高速总线架构下硬件平台的硬件抽象层设计方法,尤其涉及其中基于FPGA(现场可编程逻辑阵列)的硬件抽象层(以下简称MHAL)的实现方法。
背景技术
无线通信中不同的通信模式和功能采用不同的工作频段、调制方式、通信协议和加密方式等,这些差异限制了不同通信设备间的连通,带来了不便。软件无线电的思想就是以一个通用、标准、模块化的硬件平台为依托,通过软件编程来实现无线电台的各种功能。
MHAL介于硬件平台和软件之间,它为了屏蔽硬件差异将硬件的实现抽象出来,负责处理软硬件差异,并完成相关接口功能。同时,软件无线电的硬件平台间通常通过高速总线连接。其中串行高速总线使用广泛,它是一种针对高性能嵌入式系统芯片间和板间互连而设计的总线技术,具有协议简单、软件开销小、延时小和打包效率高等优点,现今主流的FPGA厂商均各自设计了相应的IP核。
在现有的无线电通信系统中,较常用的硬件平台有PowerPC、FPGA和DSP等,未采用MHAL的传统方法是在不同硬件平台上设计不同的应用软件,使用不同的接口规范,且相同硬件平台也存在多样的型号、技术体制和原理,所以软件和接口规范也有差异。以这种方式在硬件平台上设计应用软件有如下弊端:
(1)移植性差。由于不同的系统有不同的接口,每次程序代码移植到新的系统中时,接口都需做相应改变。
(2)操作性差。不同的软件设计方法使得用户的使用方法也不同,造成使用上的不方便。
(3)可重用性差。在不同的硬件平台上各自采用不同的程序架构和接口,导致只能用于特定的硬件平台上,不能复用在其它硬件平台上。
发明内容
本发明的目的是提供一种基于串行高速总线的FPGA上MHAL的设计方法,当基于串行高速总线的软件无线电系统中的所有FPGA硬件平台都使用该MHAL,用户或是通信组件(以下简称HC)就可以通过使用MHAL提供的统一的接口来方便的进行系统内通信,并可以在不同型号和规格的FPGA间任意移植程序,解决了基于串行高速总线的软件无线电系统中,FPGA的应用软件移植性、操作性和可重用性差的问题。
本发明的目的通过以下技术方案来实现:
图2为MHAL的整体设计框图。以FPGA厂家提供的串行高速总线的IP核为对外接口,对内提供统一的接口给HC使用。各个模块的功能如下:
1)IRESP模块:负责处理IP核向IRESP接口发送的HC请求回应的消息,该设计中用于配置本地器件地址后请求获取当前器件地址,以验证回应的地址与之前配置的地址是否一致;
2)IREQ模块:负责控制IP核的IREQ接口,向IP核发送由DATA_CTRL模块发来的HC的请求,包括配置本地器件地址(以下简称MAINTENANCE事务)的请求和发送数据包(以下简称NWRITE事务)的请求;
3)DATA_CTRL模块:根据HC的请求类型向IREQ模块传输配置器件地址的信息,以及从TX_FIFO中取出要发送的数据,按照发送数据所需格式打包发送给IREQ模块进行发送;
4)TREQ模块:负责处理通过IP核的TREQ接口接收的,由通信系统内其它硬件平台发送过来的数据,从发来信息的包头解析出器件地址,并将接收到的数据写入相应RX_FIFO中。
MHAL给HC留的统一接口如下:
1)SET_ID_DONE:由IRESP模块通过判断回应的器件地址是否为之前配置的器件地址后拉高或拉低,若配置地址正确则为高电平,错误为低电平;
2)DEVICE_ID_EN:配置本地器件地址使能,高电平时写入要配置器件地址;
3)DEVICE_ID:要配置的器件地址;
4)FULL:TX_FIFO满信号,当TX_FIFO不满时写入数据,反之不能写入;
5)TX_WRITE_EN:写使能,高电平的同时写入要发送的数据;
6)TX_WRITE_DATA:发送数据的接口;
7)DEST_ID:数据发送的目标器件地址;
8)FLAG:当其为高电平时,说明接收到了数据;
9)RX_READ_EN:接收数据使能,高电平时接收数据;
10)RX_DATA:接收数据的接口。
MHAL实现如图3、图4、图5所示的器件地址配置、数据发送和数据接收3个功能。下面分别进行详细的介绍。
1)器件地址配置
软件无线电通信架构中需要对各个硬件平台及组件进行地址的编排,这样系统资源调度者无需关心底层如何通信和处理,只需根据器件地址找到并使用该资源即可。其具体实现步骤如下:
a.拉高DEVICE_ID_EN信号,并在DEVICE_ID接口写入要配置器件地址;
b.DATA_CTRL模块将器件地址传递给IREQ模块;
c.IREQ模块根据MAINTENANCE事务时序将数据传输给串行高速总线串行高速总线的IP核;
d.串行高速总线的IP核将器件地址配置进寄存器中;
e.IREQ模块向IP发出读取当前器件地址请求;
f.IP核通过IRESP接口反馈当前的器件地址信息至MHAL,由IRESP模块将其与之前要配置的器件地址比较;
g.若器件地址与要配置的地址相同,则表明地址配置成功,MHAL将SET_ID_DONE接口拉高反馈给HC,反之拉低。若配置不成功则重复b~g步骤,直至成功。
2)数据发送
串行高速总线的协议规定最大的数据包为256字节,但实际应用的数据包往往超过256字节,所以需要一个发送缓冲区即TX_FIFO来存储要发送的数据。HC使用MHAL需要对外发送数据时,先向TX_FIFO写入数据。DATA_CTRL模块只要发现TX_FIFO中有数据就从TX_FIFO取出数据,首先取出数据包头(数据包头含数据长度信息),判断要发送数据的长度,若长度大于256字节则每次取出256字节,直到全部取出,反之则一次全部取出,与目的器件地址一起传递给IREQ模块,采用NWRITE事务时序发送给IP核,由IP核将数据发送出去。具体步骤如下:
a.判断MHAL的FULL信号是否拉高,拉高则说明FIFO满不能发送,继续等待,不满则可以发送;
b.HC拉高TX_WRITE_EN引脚,将数据写入FIFO,并在DEST_ID写入发送目的地址;
c.DATA_CTRL模块一旦发现TX_FIFO中有数据,就通过数据包头判断数据长度,若数据长度大于256字节则每次从TX_FIFO中取出最大256字节数据一包发送给IREQ模块,直至全部取出;若数据长度小于256字节,则一次取出给IREQ模块;
d.IREQ模块每收到一包数据,就将数据根据NWRITE事务时序将发送给IP核;
e.IP核将数据发送出去到指定器件地址的器件上。
3)数据接收
当FPGA接收到数据时,IP核通过TREQ接口将数据发送到TREQ模块,TREQ模块将数据解析出来发送到接收缓冲区即RX_FIFO中,HC通过MHAL的FLAG信号来判断是否接收到数据,并将数据从RX_FIFO中取出。具体实现步骤如下:
a.IP核将接收到的数据发送给TREQ模块;
b.TREQ模块将数据发送给RX_FIFO;
c.HC判断FLAG,若为高,则拉高RX_READ_EN引脚,从RX_FIFO中取出数据;若为低则等待;
附图说明
图1是MHAL通信系统框架示意图。
图2是本发明MHAL的整体框架示意图。
图3是本发明中MHAL配置器件地址流程图。
图4是本发明中MHAL发送数据流程图。
图5是本发明中MHAL接收数据流程图。
图6是实施例中基于串行高速总线的FPGA的MHAL实施方案系统框图。
具体实施方式
下面给出一种本发明的实施方式和步骤。
图6为实例的系统组成框图。整个系统主要包括两块分别有一片XC5VFX70T的FPGA和光模块的FPGA开发板以及收发共两根光纤线。用两根光纤线将两块板的光模块的收发端口分别互连,每个FPGA中都加载MHAL程序。下面用这两块FPGA通过MHAL进行串行高速总线的相互通信,通过Xilinx的ChipScope软件来监控FPGA的所有端口。
第一步,配置器件地址:
1)用户程序拉高MHAL的DEVICE_ID_EN接口,并通过DEVICE_ID接口写入器件地址0x53;
2)通过ChipScope软件监控MHAL的SET_ID_DONE的引脚是否为高,高则表明器件地址写入成功;
3)重复上述1)和2)步骤,将另外一个FPGA的器件地址配置为0x63。
第二步,收发数据:
1)器件地址配置为0x53的FPGA拉高TX_WRITE_EN接口,通过TX_WRITE_DATA接口写入数据2000字节长度的任意数据,DEST_ID接口写入目标器件地址0x63;
2)在器件地址配置为0x63的FPGA判断FLAG接口是否为高,当FLAG拉高时则拉高RX_READ_EN引脚,从RX_DATA接口接收数据;
3)观察接收到的数据以及数据长度是否与发送的数据以及数据长度相同,相同则证明收发数据功能正常;
4)重复以上1)~4)步骤20次,验证功能正常;
5)转换收发双方,从器件地址配置为0x63的FPGA上发送数据至地址为0x53的FPGA上,重复以上1)~5)。
以上所述,仅为本发明的一个具体实例,所涉及到芯片不仅局限于这1款,任何FPGA芯片都可应用于本发明中,所以本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明所述的技术范围内,所做的变化或替换,都应涵盖在本发明的保护范围内。因此,本发明的保护范围应以权利要求书的保护范围为准。
Claims (2)
1.一种基于串行高速总线的FPGA硬件抽象层,以FPGA厂家提供的串行高速总线的IP核为对外接口,对内提供统一的接口给用户或是通信组件使用,包含如下功能模块:
1)IRESP模块:负责处理IP核向IRESP接口发送的用户或是通信组件请求回应的消息,以及配置本地器件地址后请求获取当前器件地址,以验证回应的当前器件地址与之前配置的地址是否一致;
2)IREQ模块:负责控制IP核的IREQ接口,向IP核发送由DATA_CTRL模块发来的用户或是通信组件的请求,包括配置本地器件地址的请求和发送数据包的请求;
3)DATA_CTRL模块:根据用户或是通信组件的请求类型向IREQ模块传输配置器件地址的信息,以及从发送缓冲区中取出要发送的数据,按照发送数据所需格式打包发送给IREQ模块进行发送;
4)TREQ模块:负责处理通过IP核的TREQ接口接收的,由通信系统内其它硬件平台发送过来的数据,从发来信息的包头解析出器件地址,并将接收到的数据写入接收缓冲区中;
所述的对内提供统一的接口包含如下:
1)SET_ID_DONE:由IRESP模块通过判断回应的器件地址是否为之前配置的器件地址后拉高或拉低,若配置地址正确则为高电平,错误为低电平;
2)DEVICE_ID_EN:配置本地器件地址使能,高电平时写入要配置器件地址;
3)DEVICE_ID:要配置的器件地址;
4)FULL:发送缓冲区满信号,当发送缓冲区不满时写入数据,反之不能写入;
5)TX_WRITE_EN:写使能,高电平的同时写入要发送的数据;
6)TX_WRITE_DATA:发送数据的接口;
7)DEST_ID:数据发送的目标器件地址;
8)FLAG:当其为高电平时,说明接收到了数据;
9)RX_READ_EN:接收数据使能,高电平时接收数据;
10)RX_DATA:接收数据的接口。
2.根据权利要求1所述一种基于串行高速总线的FPGA硬件抽象层的应用方法,包含如下步骤:
1)器件地址配置,实现步骤如下:
a.拉高DEVICE_ID_EN信号,并在DEVICE_ID接口写入要配置器件地址;
b.DATA_CTRL模块将器件地址传递给IREQ模块;
c.IREQ模块根据配置本地器件地址时序将数据传输给串行高速总线的IP核;
d.串行高速总线的IP核将器件地址配置进寄存器中;
e.IREQ模块向IP核发出读取当前器件地址请求;
f.IP核通过IRESP接口反馈当前的器件地址信息至硬件抽象层,由IRESP模块将其与之前要配置的器件地址比较;
g.若器件地址与要配置的地址相同,则表明地址配置成功,硬件抽象层将SET_ID_DONE接口拉高反馈给用户或是通信组件,反之拉低;若配置不成功则重复b~g步骤,直至成功;
2)数据发送,实现步骤如下:
a.通过FULL接口判断发送缓冲区是否为满,满则不能发送,继续等待,不满则可以发送;
b.用户或是通信组件拉高TX_WRITE_EN引脚,将数据写入发送缓冲区,并在DEST_ID接口写入发送目的地址;
c.DATA_CTRL模块一旦发现发送缓冲区中有数据,就通过数据包头判断数据长度,若数据长度大于规定字节则每次从发送缓冲区中取出允许的最大字节数据打包发送给IREQ模块,直至全部取出;若数据长度小于规定的字节,则一次取出给IREQ模块;
d.IREQ模块每收到一包数据,就将数据根据发送数据包时序发送给IP核;
e.IP核将数据发送出去到指定器件地址的器件上;
3)数据接收,实现步骤如下:
a.IP核将接收到的数据发送给TREQ模块;
b.TREQ模块将数据发送给接收缓冲区;
c.用户或通信组件判断FLAG,若为高,则拉高RX_READ_EN引脚,从接收缓冲区中取出数据;若为低则等待。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410366166.5A CN104133963B (zh) | 2014-07-29 | 2014-07-29 | 基于串行高速总线的fpga硬件抽象层及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410366166.5A CN104133963B (zh) | 2014-07-29 | 2014-07-29 | 基于串行高速总线的fpga硬件抽象层及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104133963A CN104133963A (zh) | 2014-11-05 |
CN104133963B true CN104133963B (zh) | 2017-03-22 |
Family
ID=51806639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410366166.5A Active CN104133963B (zh) | 2014-07-29 | 2014-07-29 | 基于串行高速总线的fpga硬件抽象层及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104133963B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106610905A (zh) * | 2015-12-04 | 2017-05-03 | 中视迪威激光显示技术有限公司 | 辅助选择局域网接口系统及其通信方法 |
CN108984324B (zh) * | 2018-07-18 | 2021-05-11 | 湖南理工学院 | Fpga硬件抽象层 |
CN109408419B (zh) * | 2018-10-11 | 2020-11-13 | 湖南理工学院 | Dsp硬件抽象层和dsp处理器 |
CN109547367B (zh) * | 2018-11-09 | 2021-07-16 | 中国航空无线电电子研究所 | 基于sca的软件无线电平台 |
CN110545158B (zh) * | 2019-07-23 | 2022-05-10 | 国网福建省电力有限公司 | 一种光数字测试仪多种接口的虚拟化与自适应通信系统及其通信方法 |
CN115292220A (zh) * | 2022-07-11 | 2022-11-04 | 上海介方信息技术有限公司 | 基于共享内存机制的gpp硬件抽象层设计方法、系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063332A (zh) * | 2011-01-12 | 2011-05-18 | 中国电子科技集团公司第七研究所 | 一种软件通信体系结构的逻辑设备组件及其操作方法 |
CN103617021A (zh) * | 2013-12-03 | 2014-03-05 | 中国航空无线电电子研究所 | 软件通信体系架构中通用处理器硬件抽象层通信系统与方法 |
Family Cites Families (1)
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 |
-
2014
- 2014-07-29 CN CN201410366166.5A patent/CN104133963B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063332A (zh) * | 2011-01-12 | 2011-05-18 | 中国电子科技集团公司第七研究所 | 一种软件通信体系结构的逻辑设备组件及其操作方法 |
CN103617021A (zh) * | 2013-12-03 | 2014-03-05 | 中国航空无线电电子研究所 | 软件通信体系架构中通用处理器硬件抽象层通信系统与方法 |
Non-Patent Citations (3)
Title |
---|
"SCA规范下FPGA的硬件抽象层设计";张晓波等;《电子元器件应用》;20100215;第12卷(第2期);第73-76页 * |
"THE DEVELOPMENT OF A HARDWARE ABSTRACTION LAYER GENERATOR FOR SYSTEM-ON-CHIP FUNCTIONAL VERIFICATION";Tiago Lins等;《Programmable Logic Conference(SPL),2010 VI Southern》;20100326;第41-46页 * |
"一种基于SCA的FPGA硬件抽象层设计方法";余贵水等;《海军工程大学学报》;20091215;第21卷(第6期);第72-75页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104133963A (zh) | 2014-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104133963B (zh) | 基于串行高速总线的fpga硬件抽象层及其实现方法 | |
CN105230036B (zh) | 适于ehf无接触通信的物理层和虚拟化物理层 | |
CN110971586B (zh) | 网络接口设备和网络接口设备中的方法 | |
US11086810B2 (en) | Intelligent controller and sensor network bus, system and method including multi-layer platform security architecture | |
CN107920001A (zh) | RapidIO通信中间件的调试装置 | |
SE0103535D0 (sv) | A system of intelligent devices, a method for providing such a system and a computer data signal | |
WO2015014175A1 (zh) | 一种调测的方法、主控板和业务板 | |
Wu | Felix: the new detector interface for the atlas experiment | |
CN107135200A (zh) | 基于fpga的高速串行总线数据发送方法 | |
CN102104427B (zh) | 基于fpga的核磁共振数据通信实现装置和方法 | |
CN108683590A (zh) | 工业物联网及其中的智能网关、智能网关的数据传输方法 | |
CN109446143A (zh) | 一种基于fpga的数据串行传输控制系统及方法 | |
CN108134645A (zh) | 雷达信号同步系统 | |
CN109831546A (zh) | Plc交互信号转换方法、移动终端及存储介质 | |
CN106302071A (zh) | 一种适配器、网络设备以及端口配置的方法 | |
WO2022193624A1 (zh) | 一种跨不同本国系统的专用传输模块适配方法、装置 | |
CN110058900B (zh) | 基于可插拔组件框架的数据传输服务系统 | |
CN105512005B (zh) | 控制/远程节点与总线监控节点同步工作的电路及方法 | |
US20060195645A1 (en) | Interface for prototyping integrated systems | |
CN109217900A (zh) | 一种用于就地化元件保护双向冗余环网通信测试的损伤仪及其实现方法 | |
CN107181702B (zh) | 一种实现RapidIO和以太网融合交换的装置 | |
CN110287141B (zh) | 一种基于多种接口的fpga重构方法和系统 | |
CN107517222A (zh) | 一种基于usb接口的单向传输装置和方法 | |
WO2023104054A1 (zh) | 网络处理模块、数据处理方法、网络节点和存储介质 | |
CN106571847A (zh) | 一种基于zynq的测试仪表通信装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |