一种对MUXIO接口处理的方法技术

技术编号:38103097 阅读:9 留言:0更新日期:2023-07-06 09:22
本发明专利技术属于数据传输的技术领域,更具体地,涉及一种对MUXIO接口处理的方法,所述方法包括;数据源端将数据传输至FPGA,所述FPGA准备好数据并通过MUXIO接口向所述MCU进行写数据,再通过USB接口传输至目的端;或,数据源端通过USB接口将数据传输至MCU,所述MCU准备好数据,FPGA作为目的端通过MUXIO接口从所述MCU中读数据;所述写数据包括低速写、高速写。本发明专利技术解决了现有技术中由于MUXIO指示数据空满的信号无法指示将空和将满,执行连续读/写的动作时必然会出现写爆或空读的情况出现的问题。作时必然会出现写爆或空读的情况出现的问题。作时必然会出现写爆或空读的情况出现的问题。

【技术实现步骤摘要】
一种对MUXIO接口处理的方法


[0001]本专利技术属于数据传输的
,更具体地,涉及一种对MUXIO接口处理的方法。

技术介绍

[0002]MUXIO接口是由方寸微电子科技有限公司(下称方寸)提出一种类FIFO的接口,特点是时序简单,操作方便。同时除去常规的数据通路还提供了一个方便扩展的命令通路。
[0003]但因为MUXIO时序比较简单,所以对实际应用中,特别是对视频数据的“包”的概念显得有些力不从心。例如,MUXIO的接口中,只有数据或命令的空/满信号,导致在FPGA在进行连续读/写的时候,必然会出现写满或空读的情况,同时,在传输过程中,也不好分辨数据包传输结束,对后续的传输造成困扰。
[0004]经检索,中国专利文献CN107491009A公开了一种轴角传感器信号同步采集方法,实现该方法的电路由轴角信号转换器、SDRAM存储器、FPGA、数字隔离器组成,可以对多通道、不同类型轴角传感器的模拟信号进行并行输入采集;每个通道输入的轴角传感器信号通过轴角信号转换器转换成数字信号送入FPGA;同步采集信号通过数字隔离器传送至FPGA,由FPGA中设计的FIFO接口连接SDRAM,实现采集数据和时标信息的实时存储和读取。此专利技术具有采用新型轴角信号转换器,转换分辨率高达19位,采集通道4路,信号电压范围5~90V;采集数据和时间信息实现并行同步存储和读取,实时性强,读写速度可达128Mbps等优点。
[0005]综上,现有技术并无法解决数据空满的信号无法指示将空和将满,执行连续读/写的动作时必然会出现写爆或空读的情况出现。

技术实现思路

[0006]本专利技术旨在克服上述现有技术的至少一种缺陷,提供一种对MUXIO接口处理的方法。
[0007]本专利技术详细的技术方案如下:
[0008]本专利技术为了解决上述技术问题,提供了一种对MUXIO接口处理的方法,以解决现有技术中由于MUXIO指示数据空满的信号无法指示将空和将满,执行连续读/写的动作时必然会出现写爆或空读的情况出现等问题。本专利技术为了解决这些问题和痛点,使用MUXIO特有的命令通道,通过与MCU预先设定好的命令,来通知FPGA将满,将空和包结束。FPGA通过命令通道接收命令的方式来进行对自己的流控。同时,也会通过命令通道发送命令来通知MCU接下来要进行哪种形式的写,或者接收MCU接下来的读。具体方法如下:
[0009]一种对MUXIO接口处理的方法,其特征在于,应用于MCU,所述方法包括;数据源端将数据传输至FPGA,所述FPGA准备好数据并通过MUXIO接口向所述MCU进行写数据,再通过USB接口传输至目的端;或,数据源端通过USB接口将数据传输至MCU,所述MCU准备好数据,FPGA作为目的端通过MUXIO接口从所述MCU中读数据;
[0010]所述写数据包括低速写、高速写:
[0011]所述低速写包括:所述FPGA准备好数据,MCU内部的cyrto DMA先将数据从MUXIO的数据FIFO中拉取到MCU内部的ram中,然后USB
·
DMA再将MCU内部ram中的数据拉取到USB
·
FIFO中;
[0012]所述高速写包括:所述FPGA准备好数据,USB
·
DMA直接将数据从MUXIO的数据FIFO直接拉取到USB
·
FIFO中;
[0013]所述FPGA进行写数据时包括发送流控命令,所述流控命令包括:
[0014]所述MUXIO的数据FIFO的大小为固定阈值(8kb),当所述MUXIO的数据FIFO中数据超过预设值(4kb)后,会通过命令通路向所述FPGA发送一个停止命令;所述FPGA在每写一个固定值(2kb)的数据后,会检查命令通路是否有命令,若检查到的是停止命令则阻止所述FPGA继续向所述MCU写数据,直到所述MCU的数据FIFO的数据小于开始阈值(根据muxio频率和MCU内部总线的频率来定,一般都是经验值)时,所述MCU会通过命令通路向所述FPGA发送一个开始命令,所述FPGA在接收到开始命令之后会重新开始发送。
[0015]为了尽量提高带宽,FPGA在每写固定值的数据后,会检查命令通路是否有命令;按照最差的情况来计算,如FPGA写4KB数据后,MCU将命令放到命令通路内,此时FPGA继续写了固定值的数据,再检查命令通路后,发现其中已经有了一个命令,取出后发现是停止命令,FPGA就不会再向MCU写数据;此时MCU内部只有6KB数据,也不会被写满。这样,就避免了MCU的数据FIFO被写爆的情况。
[0016]所述FPGA准备好数据进行低速写时,其状态包括:IDLE、RFIFO、WDATA、WCMD、RCMD、RCMD_WAIT、DECODE、STOP、RESTART、WLOG_START、WLOG_STOP、WCMD_SELG、END,所述低速写过程的具体FPGA状态迁移如下所述:
[0017]IDLE:初始空闲状态;当IDLE不空时,首先跳转RCMD状态读取MCU的命令FIFO,直到MCU的命令FIFO为空;当MCU的命令FIFO为空时,且MUXIO的数据FIFO不空或MCU的数据FIFO不满时,跳转RFIFO状态,低速写模式开始工作;否则状态保持不变;
[0018]RFIFO:读MUXIO的数据FIFO状态,预读一拍数据;下一拍跳转WDATA状态;
[0019]WDATA:写数据状态,将数据从MUXIO的数据FIFO读出并写入MCU的数据FIFO,当整包数据传输结束,或者每发送完固定值的数据,则跳转到WCMD状态;
[0020]WCMD:写命令状态,在写之前先判断MCU的命令FIFO是否写满;
[0021]不满则继续写入,满则等待;
[0022]将小包数据长度和地址写入MCU的命令FIFO;若整包数据传输结束,则跳转END状态;
[0023]若整包数据传输未结束,则需判断MCU的命令FIFO是否为空;
[0024]非空则跳转RCMD状态,空则跳转RFIFO状态;
[0025]RCMD:读MCU的命令FIFO状态,下一拍跳转RCMD_WAIT状态;
[0026]RCMD_WAIT:读MCU的命令FIFO的等待状态,读取到命令,延时两拍后跳转到DECODE状态;
[0027]DECODE:命令解析状态,解析收到的命令,并根据命令决定下一状态:
[0028](1)当命令为私有命令时,跳转到WCMD_SELF状态;
[0029](2)当命令为日志命令时,跳转到WLOG_START状态
[0030](3)当命令为STOP时,跳转到STOP状态;
[0031](4)当命令为RESTART时,跳转RESTART状态;
[0032](5)当命令为START时,若命令是在低速写模式开始前读取的,即IDLE状态下读取的,则跳转回IDLE状态;命令是在低速写模式开始后读取的,即WCMD状态下读取的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对MUXIO接口处理的方法,其特征在于,应用于MCU,所述方法包括;数据源端将数据传输至FPGA,所述FPGA准备好数据并通过MUXIO接口向所述MCU进行写数据,再通过USB接口传输至目的端;或,数据源端通过USB接口将数据传输至MCU,所述MCU准备好数据,FPGA作为目的端通过MUXIO接口从所述MCU中读数据;所述写数据包括低速写、高速写:所述低速写包括:所述FPGA准备好数据,MCU内部的cyrto
·
DMA先将数据从MUXIO的数据FIFO中拉取到MCU内部的ram中,然后USB
·
DMA再将MCU内部ram中的数据拉取到USB
·
FIFO中;所述高速写包括:所述FPGA准备好数据,USB
·
DMA直接将数据从MUXIO的数据FIFO直接拉取到USB
·
FIFO中。2.根据权利要求1所述的一种对MUXIO接口处理的方法,其特征在于,所述FPGA进行写数据时包括发送流控命令,所述流控命令包括:所述MUXIO的数据FIFO的大小为固定阈值,当所述MUXIO的数据FIFO中数据超过预设值后,则通过命令通路向所述FPGA发送一个停止命令;所述FPGA在每写一个固定值的数据后,检查命令通路是否有停止命令;若检查到的是停止命令则阻止所述FPGA继续向所述MCU写数据,直到所述MCU的数据FIFO的数据小于开始写入阈值(根据muxio频率和MCU内部总线的频率计算,一般为经验值)时,所述MCU通过命令通路向所述FPGA发送一个开始命令,所述FPGA在接收到开始命令之后重新开始向所述MCU写入数据。3.根据权利要求1所述的一种对MUXIO接口处理的方法,其特征在于,所述FPGA准备好数据进行低速写时,其状态包括:IDLE、RFIFO、WDATA、WCMD、RCMD、RCMD_WAIT、DECODE、STOP、RESTART、WLOG_START、WLOG_STOP、WCMD_SELG、END,所述低速写过程的具体FPGA状态迁移如下所述:IDLE:初始空闲状态;当IDLE不空时,首先跳转RCMD状态读取MCU的命令FIFO,直到MCU的命令FIFO为空;当MCU的命令FIFO为空时,且MUXIO的数据FIFO不空或MCU的数据FIFO不满时,跳转RFIFO状态,低速写模式开始工作;否则,初始空闲状态保持不变;RFIFO:读MUXIO的数据FIFO状态,预读一拍数据;下一拍跳转WDATA状态;WDATA:写数据状态,将数据从MUXIO的数据FIFO读出并写入MCU的数据FIFO,当整包数据传输结束,或者每发送完固定值的数据,则跳转到WCMD状态;WCMD:写命令状态,在写之前先判断MCU的命令FIFO是否写满;不满则继续写入,满则等待;将小包数据长度和地址写入MCU的命令FIFO;若整包数据传输结束,则跳转END状态;若整包数据传输未结束,则需判断MCU的命令FIFO是否为空;非空则跳转RCMD状态,空则跳转RFIFO状态;RCMD:读MCU的命令FIFO状态,下一拍跳转RCMD_WAIT状态;RCMD_WAIT:读MCU的命令FIFO的等待状态,读取到命令,延时两拍后跳转到DECODE状态;DECODE:命令解析状态,解析收到的命令,并根据命令决定下一状态:(1)当命令为私有命令时,跳转到WCMD_SELF状态;
(2)当命令为日志命令时,跳转到WLOG_START状态(3)当命令为STOP时,跳转到STOP状态;(4)当命令为RESTART时,跳转RESTART状态;(5)当命令为START时,若命令是在低速写模式开始前读取的,即IDLE状态下读取的,则跳转回IDLE状态;命令是在低速写模式开始后读取的,即WCMD状态下读取的,则跳转回DFIFO状态;(6)当为其他命令时,若命令是在低速写模式开始前读取的,即IDLE状态下读取的,则跳转回IDLE状态;命令是在低速写模式开始后读取的,即WCMD状态下读取的,则跳转回DFIFO状态;STOP:停止状态,此状态下MUXIO停止工作,直到收到START命令;当检测MCU的命令FIFO不为空时,跳转RCMD状态;RESTART:重启状态,此状态下MUXIO将FIFO读空,并将数据丢弃;当MUXIO的数据FIFO为空时,跳转IDLE状态;WLOG_START:写START命令日志状态,将START日志写入MUXIO的命令FIFO;完成后下一拍跳转到WLOG_STOP状态;写命令前要判断MCU的命令FIFO是否写满,不满则继续写,满则需要等待;WLOG_STOP:写STOP命令日志状态,将STOP日志写入MUXIO的命令FIFO;完成后下一拍跳转到IDLE状态;写命令前要判断MCU的命令FIFO是否写满,不满则继续写,满则需要等待;WCMD_SELG:写私有命令状态,将读到的命令写回到MUXIO的命令FIFO;完成后下一拍跳转到IDLE状态;写命令前要判断MCU的命令FIFO是否写满,不满则继续写,满则需要等待;END:结束状态,下一拍跳转IDLE状态。4.根据权利要求1所述的一种对MUXIO接口处理的方法,其特征在于,所述FPGA在高速写数据之前,将待传输数据对应的通道、待传输的数据量通过命令通道给到MCU;所述FPGA准备好数据进行高速写时,其状态包括:IDLE、RFIFO、WDATA、WCMD、RCMD、RCMD_WAIT、DECODE、STOP、RESTART、WLOG_START、WLOG_STOP、WCMD_SELG、END,所述高速写过程的具体FPGA状态迁移如下所述:IDLE:初始空闲状态;当MCU的命令FIFO不空时,跳转RCMD状态;当MCU的命令FIFO为空时,MUXIO的数据FIFO非空、MCU的数据FIFO不满时,跳转WCMD状态,开始高速IN数据传输过程;否则状态保持不变;WCMD:写命令状态;写命令前先判断MCU的命令FIFO是否写满;不满则继续写,满则等待;将地址和包长度信息写入MCU的命...

【专利技术属性】
技术研发人员:张贇祺杨洪杰刘超
申请(专利权)人:山东方寸微电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1