一种串行交互式传输扩展接口设计方法与流程

文档序号:23418249发布日期:2020-12-25 11:38阅读:123来源:国知局
一种串行交互式传输扩展接口设计方法与流程

本发明属于电子工程和计算机科学领域,具体涉及一种串行交互式传输扩展接口设计方法。



背景技术:

当前,在计算机系统或嵌入式系统内部总线的数据交互应用中,软件系统与可编程逻辑硬件之间,基本采用的都是通过8、16、32位寄存器直接进行数据交互。针对产品功能及其复杂度,功能越多,功能内容越复杂,数据交互资源——寄存器的用量就越大。寄存器在计算机系统或嵌入式系统的内部地址映射空间有限,大量的寄存器映射将直接影响系统资源的损耗,而且在功能实现时,多数情况下需要反复对多个寄存器进行读写操作才能实现一个功能应用,这将会导致数据交互存在不可控的时延。



技术实现要素:

为了解决上述技术问题,本发明提供一种串行交互式传输扩展接口设计方法,包括设计串行交互缓冲区单元和串行交互包单元,能够在一定程度上解决soc中fpga与软核间基于寄存器的数据交互方式带来的资源紧张、时延大等不足。

本发明解决其技术问题是采取以下技术方案实现的:一种串行交互式传输扩展接口设计方法,包括:

(1)设计串行交互缓冲区单元,该单元由soc中的fpga设计实现,包括通用消息fifo模块、中断消息fifo模块和中断向量fifo模块,具体实现如下:

①基于fpga中的fifo设计串行交互缓冲区单元,该单元包括三组相互独立的fifo,即通用消息fifo模块、中断消息fifo模块和中断向量fifo模块;向soc中的软核开放串行交互缓冲区单元的控制、数据访问能力;

②通用消息fifo模块具备同时读写功能,用于soc中fpga与软核间通用功能访问与数据交互(比如功能配置、状态查询、数据传输等);采用“命令+应答”数据交互方式,即软核提交给fpga的每个命令,都必须有一个应答;

③中断消息fifo模块具备同时读写功能,用于优先处理因fpga功能中断触发而产生的临时快速信息交互;中断消息fifo模块的优先级高于通用消息fifo模块;采用“命令+应答”数据交互方式,即软核提交给fpga的每个命令,都必须有一个应答;最多可存储1个串行交互包单元;软核通过中断消息fifo模块向fpga发出命令后,在超时时间未到达前,必须等待fpga的应答,期间不可以处理其它事务;

④中断向量fifo模块不具备同时读写功能,只能由fpga写入、软核读取,用于按序存储fpga中断消息;

(2)设计串行交互包单元,该单元是soc中fpga与软核间数据交互的基本元素,具体实现如下:

①串行交互包单元由15个32bit数据组成,由包头字段、长度字段、控制字字段、数据字字段、校验和字段、包尾字段组成,其中包头字段固定为十六进制559966aa、包尾字段固定为十六进制aa669955、长度字段为整个串行交互包的字节数,控制字字段的内容因fpga与软核间数据交互的功能不同而不同,包括数据传输、指令下达、状态反馈、中断、错误判定与处理等;数据字字段长度为10个32bit数据,其具体内容因控制字字段不同而不同;校验和字段为控制字字段与数据字字段内容之和的低32bit数据;

②fpga与软核在使用串行交互包单元进行数据交互时,采取主从模式,即fpga始终处于从模式,等待软核发送的串行交互包,并根据串行交互包的不同做出不同的回应;软核始终处于主模式,主动发起与fpga间的数据交互;

③软核通过dma读写和直接读写两种方式访问串行交互缓冲区单元,当软核从串行交互缓冲区单元中直接读写一个串行交互包的时间大于等于软核从串行交互缓冲区单元中dma读写一个串行交互包的时间(包括dma配置、dma开启、dma传输、dma结束所需时间之和),此时软核采用dma读写方式访问串行交互缓冲区单元,否则,采用直接读写方式。

本发明设计的一种串行交互式传输扩展接口设计方法,该方法适用于xilinx公司zynq-7000soc芯片。

有益效果:

本发明与现有技术相比的优点在于:能够解决传统基于寄存器方式的soc中fpga与软核间数据交互带来的资源紧张;能够避免为实现某一复杂功能而反复读写有限寄存器带来的数据交互大时延问题。

附图说明

图1为本发明的系统结构框图;

图2为本发明的串行交互式传输框图;

图3为本发明的串行交互包单元帧格式框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。

本发明涉及一种串行交互式传输扩展接口设计方法,针对传统的基于8、16、32位寄存器直接进行数据交互而带来的寄存器用量大、系统资源消耗多、数据交互时延大等不足,本发明提供一种串行交互式传输扩展接口设计方法,能够在一定程度上解决soc中fpga与软核间基于寄存器的数据交互方式带来的资源紧张、时延大等不足。

本发明的系统结构框图如图1所示,soc中的fpga与软核采用主从模式进行数据交互,其中串行交互包单元为数据交互的基本元素,串行交互缓冲区单元中的通用消息fifo模块、中断消息fifo模块和中断向量fifo模块彼此独立,且均在fpga中设计实现;通用消息fifo模块负责fpga与软核间通用功能访问与数据交互(比如功能配置、状态查询、数据传输等)、中断消息fifo模块用于优先处理因fpga功能中断触发而产生的临时快速信息交互、中断向量fifo模块保存fpga硬件中断消息,并按序将中断消息写入中断消息fifo模块。本发明的串行交互式传输框图如图2所示、本发明的串行交互包单元帧格式框图如图3所示,具体实施方式如下:

(1)设计串行交互缓冲区单元,如图1所示,该单元由soc中的fpga设计实现,由通用消息fifo模块、中断消息fifo模块和中断向量fifo模块组成,具体实现如下:

①基于fpga中的fifo设计串行交互缓冲区单元,该单元由三组相互独立的fifo构成,即通用消息fifo模块、中断消息fifo模块和中断向量fifo模块;向soc中的软核开放串行交互缓冲区单元的控制、数据访问能力;

②通用消息fifo模块具备同时读写功能,用于soc中fpga与软核间通用功能访问与数据交互(比如功能配置、状态查询、数据传输等);采用“命令+应答”数据交互方式,即软核提交给fpga的每个命令,都必须有一个应答;

③中断消息fifo模块具备同时读写功能,用于优先处理因fpga功能中断触发而产生的临时快速信息交互;中断消息fifo模块的优先级高于通用消息fifo模块;采用“命令+应答”数据交互方式,即软核提交给fpga的每个命令,都必须有一个应答;最多可存储1个串行交互包单元;软核通过中断消息fifo模块向fpga发出命令后,在超时时间未到达前,必须等待fpga的应答,期间不可以处理其它事务;

④中断向量fifo模块不具备同时读写功能,只能由fpga写入、软核读取,用于按序存储fpga中断消息;

(2)设计串行交互包单元,如图3所示,该单元是soc中fpga与软核间数据交互的基本元素,具体实现如下:

①串行交互包单元由15个32bit数据组成,由包头字段、长度字段、控制字字段、数据字字段、校验和字段、包尾字段组成,其中包头字段固定为十六进制559966aa、包尾字段固定为十六进制aa669955、长度字段为整个串行交互包的字节数,控制字字段的内容因fpga与软核间数据交互的功能不同而不同,包括数据传输、指令下达、状态反馈、中断、错误判定与处理等;数据字字段长度为10个32bit数据,其具体内容因控制字字段不同而不同;校验和字段为控制字字段与数据字字段内容之和的低32bit数据;soc中的fpga与软核进行数据交互前可自行协商不同功能(如数据传输、指令下达、状态反馈、中断、错误判定与处理等)时的控制字字段的帧格式;待协商好控制字字段帧格式后,fpga与软核在发送各自串行交互包单元时,需根据不同的控制字字段,填充相对应的数据字字段,该数据字字段也即fpga与软核进行数据交互的有效载荷数据;

②如图2所示,fpga与软核在使用串行交互包单元进行数据交互时,采取主从模式,即fpga始终处于从模式,等待软核发送的串行交互包,并根据串行交互包的不同做出不同的回应;软核始终处于主模式,主动发起与fpga间的数据交互。具体步骤如下:

步骤1、软核生成串行交互包单元,并向串行交互缓冲区单元写入串行交互包单元,然后处于等待状态;

步骤2、fpga读取串行交互缓冲区单元中的串行交互包单元,并分解串行交互包单元,并完成相应任务处理工作;

步骤3、fpga生成串行交互包单元,并发送到串行交互缓冲区单元,以此作为对软核的回应,然后处于等待状态;

步骤4、软核读取串行交互缓冲区单元中的串行交互包单元,并分解串行交互包单元,并完成相应任务处理工作,最后处于等待状态;

③软核通过dma读写和直接读写两种方式访问串行交互缓冲区单元,当软核从串行交互缓冲区单元中直接读写一个串行交互包的时间大于等于软核从串行交互缓冲区单元中dma读写一个串行交互包的时间(包括dma配置、dma开启、dma传输、dma结束所需时间之和),此时软核采用dma读写方式访问串行交互缓冲区单元,否则,采用直接读写方式。

综上所述,本发明公开了一种串行交互式传输扩展接口设计方法,包括设计串行交互缓冲区单元和串行交互包单元,能够在一定程度上解决soc中fpga与软核间基于寄存器的数据交互方式带来的资源紧张、时延大等不足。

本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1