CN112732603A - 一种多通道vdma控制方法及其应用 - Google Patents
一种多通道vdma控制方法及其应用 Download PDFInfo
- Publication number
- CN112732603A CN112732603A CN201910973037.5A CN201910973037A CN112732603A CN 112732603 A CN112732603 A CN 112732603A CN 201910973037 A CN201910973037 A CN 201910973037A CN 112732603 A CN112732603 A CN 112732603A
- Authority
- CN
- China
- Prior art keywords
- data
- channel
- write
- module
- read
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000012544 monitoring process Methods 0.000 claims abstract description 20
- 239000000872 buffer Substances 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 22
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 15
- 230000003139 buffering effect Effects 0.000 description 9
- 238000012360 testing method Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种多通道VDMA控制方法,具有写通道和读通道,包括:经由VDMA接口写入和读取数据流;所述VDMA接口控制地址序列产生器为所述数据流产生指令队列;由FIFO控制对所述数据流的FIFO进行实时监控,控制所述数据流的写入和读取;由数据整理模块将所述数据流组合成所需要的数据队列;仲裁器通过预设的优先索引,对所述指令队列和所述数据队列进行扫描。本方案节省了逻辑资源,并且数据总线的复用一定程度上提高了存取效率。
Description
技术领域
本发明涉及一种视频直接内存存取(Video Direct Memory Access,VDMA)控制。更具体地,涉及一种多通道VDMA控制方法及其应用。
背景技术
AXI VDMA是Xilinx提供的IP核,用于将AXI Stream格式的数据流转换为MemoryMap格式或将Memory Map格式的数据转换为AXI Stream数据流,从而实现与DDR进行通信。许多视频类应用都需要帧缓存来处理帧率变化或者进行图像的缩放、裁剪等尺寸变换操作。AXI VDMA设计的初衷就是用于高效地实现AXI4-Stream视频流接口和AXI4接口之间的数据传输。
图1是Xilinx官方公布的VDMA架构。从框图中可以看出,VDMA主要由控制和状态(Control and Status),寄存器(Registers)、数据搬运模块(DataMover)、行缓冲(LineBuffer)这四部分构成,其资源使用量偏大。
目前都是利用厂商提供的IP核(诸如图1所示)作为基础进行搭建。图2是利用现有VDMA架构作为基础进行搭建的多通道DMA方案的示意图,如图2所示,主要包括总线转换、VDMA、控制总线仲裁器和数据总线仲裁器电路。由于每一个通道均需要占用一个总线转换和VDMA。VDMA又包括了控制和状态(Control and Status),寄存器(Registers)、数据搬运模块(DataMover)、行缓冲(Line Buffer)4部分,其占用资源耗费大,在需要多路复用时,其中的各个模块不能共享,在一定程度上增加了存储器与逻辑资源开销。
发明内容
为了解决现有技术的上述问题,本发明提供一种多通道VDMA控制方法及其应用。
本申请的第一个方面是提供一种多通道VDMA控制方法,具有写通道和读通道,包括:
经由VDMA接口写入和读取数据流;
所述VDMA接口控制地址序列产生器为所述数据流产生指令队列;
由FIFO控制对所述数据流的FIFO进行实时监控,控制所述数据流的写入和读取;
由数据整理模块将所述数据流组合成所需要的数据队列;
仲裁器通过预设的优先索引,对所述指令队列和所述数据队列进行扫描。
本申请的第二个方面是提供一种多通道VDMA控制器,具有写通道和读通道,包括:
VDMA接口模块,用于向所述写通道写入或从所述读通道读取数据;
数据处理模块,用于对所述读取或写入的视频流数据进行处理;
通道仲裁器模块,用于对所述读取和写入的视频流数据进行扫描输入和输出,其中:
所述VDMA接口模块分别与视频流和所述数据处理模块连接;
所述数据处理模块分别与所述VDMA接口模块和所述数据通道仲裁器模块连接;
所述通道仲裁器模块分别与所述数据处理模块和所述总线驱动控制模块连接。
本申请提供的一种多通道VDMA控制方法及应用,基于所述多通道VDMA控制器作为基础进行搭建,省略了如图2所示的总线转换,使得多个视频源可以同时进入多通道VDMA,从而节省了逻辑资源。此外,数据总线的复用一定程度上提高了存取效率,例如在同一种FPGA平台下(诸如XILINX-zynq7020),现有方案单通道占用约1.5K逻辑资源,而本案占用约0.35K,资源节省约3/4,而读写效率两者比较相差无几。在平台(microsime-M2S060)上测试精简了约1/2资源,与intel-ep4ce40上测试也同样精简了约1/2资源。
除此之外,本发明的多通道VDMA控制器有别于现行多通道DMA控制器优势在于:第一,本发明的VDMA涉及图像视频的DMA,而现行多通道DMA不针对某个领域,仅仅是数据的直接内存存取;第二,本发明的VDMA的数据符合视频流格式,在设定好图像大小以及缓冲帧数,并开启以后,MCU无需额外控制参数,数据即可自行在视频端口与DDR间传递,后续均无需再行干预,而现行的DMA没有固定数据格式,每次DMA操作均需要MCU计算起始地址、设定突发长度等等操作,才能启动DMA,而且每次DMA操作前均需要再次干预。
附图说明
图1是Xilinx官方公布的VDMA架构;
图2是利用现有VDMA架构作为基础进行搭建的示意图;
图3是本申请一示例性实施例的多通道VDMA控制方法的流程示意图;
图4是本申请一示例性实施例提供的写通道仲裁器的处理通道选择的流程示意图;
图5是本申请一示例性实施例提供的写通道仲裁器的指令队列拆分的流程示意图;
图6是本申请一示例性实施例提供的读通道仲裁器的处理通道选择的流程示意图;
图7是本申请一示例性实施例提供的读通道仲裁器的指令队列拆分的流程示意图;以及
图8是本申请一示例性实施例提供的多通道VDMA控制器的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。本申请中的各实施方式既可以单独实施,也可以在不冲突的前提下结合实施。
图3是本申请一示例性实施例的多通道VDMA控制方法的流程示意图。该多通道VDMA控制方法可以包括:
步骤一、经由VDMA接口写入和读取多个通道的数据流。
本实施例中,所述数据流符合AXIS基本协议,即包含tdata,tvalid,tid,tready等信号。
VDMA接口包括写通道VDMA接口和读通道VDMA接口。
需要注意,写通道为从设备,而读通道为主设备,主从设备的通道类型不可以更换。
步骤二、由VDMA接口控制地址序列产生器为所述数据流产生VDMA数据指令队列 (以下简称为“指令队列”)。
本实施例中,所述指令队列包含但不限定于以下参数:突发首地址、突发长度、突发请求、通道ID、队列有效。
步骤三、由FIFO控制对数据流的FIFO进行实时监控,控制数据流的写入与读取。
在这个步骤中,FIFO控制包括写通道FIFO控制和读通道FIFO控制的流程是不同的。
在写通道中,FIFO控制接收外部设备传入的写数据,由FIFO进行时钟域转换。FIFO控制对FIFO实时监控,控制数据的流入与流出,数据量大于预设数Mw时,停止通道写入,数据量小于预设数Nw时,开启通道写入。其中,Mw的取值范围:FIFO深度>Mw>一行数据容量;Nw的取值范围:(FIFO深度-一行数据容量)>Nw≧0。
在写通道中,FIFO控制对所述写数据的FIFO实时监控,控制所述写通道ready信号的触发。当所述写数据的量大于所述AXIS预设的突发长度时,产生ready信号,否则ready信号为0。
在读通道中,FIFO控制接收数据整理电路读回的整理好的数据,由FIFO进行时钟域转换。FIFO控制对FIFO实时监控,控制数据的流入与流出,数据量大于Nr时,开启通道读出,数据量小于Nr时,关闭通道读出,其中N的取值范围为:Nr>FIFO深度。
本实施例中,FIFO容量可以大于一行数据容量,写通道输入时钟为本地时钟,输出时钟为总线时钟;读通道输入时钟为总线时钟,输出时钟为本地时钟。
步骤四、由数据整理模块将数据流组合成所需要的数据序列。
在这个步骤中,写通道数据整理模块和读通道数据整理模块的流程是不同的。
写通道中,写通道数据整理模块通过预设的数据排列方式,将通过写通道FIFO控制写入的数据组合成写通道仲裁器需要的数据队列。
读通道中,读通道数据整理模块通过预设的数据排列方式,将读通道仲裁器传出的数据序列整理成读通道所需的数据队列,然后进入读通道FIFO控制。
需要注意,写通道仲裁器和读通道仲裁器所需的数据队列必须包含位宽、突发长度,并且这两项参数可以根据时序要求更改。
进一步需要注意,无论是写通道还是读通道中,当数据溢出或者数据为空时,FIFO控制均发送错误信息并通过控制总线将错误信息传送给MCU,从而重新复位或开启VDMA控制器。
步骤五、仲裁器通过预设的优先索引,对所述指令队列或数据队列进行扫描。
具体地,对写通道的指令队列/数据队列进行扫描选择输出,对读通道的指令队列/数据队列进行扫描选择读入。
本步骤中,仲裁器包括写通道仲裁器和读通道仲裁器。
此外,仲裁器包括匹配总线,用于匹配总线驱动控制模块中所需总线。总线驱动控制模块所需总线与存储器控制器的总线一致。包含并不局限于AXI/OPB等总线。
后面将会结合图4-图7详细描述写通道仲裁器和读通道仲裁器对指令队列/数据队列的扫描选择输出和读入,在此不赘述。
步骤六、由总线驱动控制模块将内部数据流封装成存储器外部设备所需总线。
示例性地,如果使用DDR3存储器,存储器外部挂载了一个AXI总线的DDR3控制器。VDMA控制器通过AXI总线与该DDR3控制器连接,实施对DDR3的读写。
本步骤中,总线驱动控制模块包括:写指令缓冲、写数据缓冲、读指令缓冲、读数据缓冲和总线驱动电路。其中,
1)写指令缓冲和写数据缓冲用于写通道。
写指令缓冲用于缓冲写通道仲裁器输出的指令队列,在存储器空闲时,将指令队列送入存储器控制器,同时根据指令队列中的突发长度控制写数据缓冲的放出数量。
2)读指令缓冲和读数据缓冲用于读通道。
读指令缓冲用于缓冲读通道仲裁器输出的指令队列,在存储器空闲时,将指令队列送入存储器控制器,同时由读数据缓冲接收控制器读回的数据,并比较是否对应指令队列中的突发长度。
3)总线驱动控制模块还实时监测各个缓冲区是否存在溢出或者空读的状态,告知微控制单元(Microcontroller Unit;MCU)进行异常处理。
本实施例中,总线驱动控制模块至存储器控制器的总线协议不限,视控制器而定,可以为AXI,AXI-lite,AXI-STREAM,AHB,OPB等。
需要注意的是,贯穿整个多通道VDMA控制方法的流程,控制总线可以连接到VDMA控制器内部的各个模块,并且MCU通过控制总线对整个VDMA控制器内部的参数进行配置。例如包括:
1)配置读通道和写通道的帧缓冲数量、数据位宽、地址位宽、数据排列方式、分辨率大小、冗余填充方式、行缓冲大小等;
2)配置仲裁器中的优先级索引、数据突发方式、通道延迟等;配置总线驱动控制模块的缓冲区大小、总线突发方式、地址位宽、数据位宽等。
3)可选的,控制总线至MCU的总线协议不限,可为AXI,AXI-lite,PCI等。
本实施例提供的多通道VDMA控制方法,可以省略如图2所示的总线转换,多个视频源可以同时进入多通道VDMA,节省了逻辑资源。此外,也在一定程度上提高了数据总线的复用存取效率,例如在同一种FPGA平台下(诸如XILINX-zynq7020),现有方案单通道占用约1.5K逻辑资源,而本案占用约0.35K,资源节省约3/4,而读写效率两者比较相差无几,在平台(microsime-M2S060)上测试精简了约1/2资源,与intel-ep4ce40上测试也同样精简了约1/2资源。
如前面记载的步骤五所述,写通道仲裁器通过预设的优先索引,对各个写通道扫描选择输出。现参照图4和图5对写通道仲裁器的操作进行描述。
图4是根据本发明的实施例的写通道仲裁器的处理通道选择的操作流程图。如图4所示,写通道仲裁器的处理通道选择可以包括如下步骤:
步骤S401,读取预设的优先索引;
步骤S402,抽取优先列表Pi;
步骤S403,根据优先列表Pi进行映射,指定下一个需要处理的通道Wi;
步骤S404,扫描通道Wi的ready信号,如果ready为真,执行步骤S405,否则执行步骤S409;
步骤S405,仲裁器切换选中通道Wi的地址、数据总线;
步骤S406,开启通道Wi的地址与数据输出使能;
步骤S407,监控通道Wi的数据输出,判断是否完毕,如果是,执行步骤S408,否则继续执行步骤S406;
步骤S408,关闭通道Wi的地址与数据输出使能;
步骤S409,判断i是否为通道允许最大值N,是则设置i=0,否则i=i+1,然后执行步骤S402。
图5是根据本发明的实施例的写通道仲裁器的指令队列拆分的操作流程图。如图5所示,写通道仲裁器的指令队列拆分可以包括如下步骤:
步骤S501,系统启动后进入待机等待状态,初始化循环值n=0;
步骤S502,步骤S407执行完毕时执行步骤S503,否则等待于此状态;
步骤S503,通道初始化,获取通道Wi的起始地址;
步骤S504,锁存该地址与数据写入总量BN;
步骤S505,根据存储器控制总线的最大突发burst要求,生成BN与burst的商N:
步骤S506,判断循环值n是否等于N,是执行步骤S511,否则执行步骤S507;
步骤S507,生成起始地址;
步骤S508,依次输出突发数据;
步骤S509,监控数据是否输出完毕,未完继续执行步骤S508,否则执行步骤S510;
步骤S510,循环值n=n+1,并执行步骤S506;
步骤S511,根据BN与burst的余数生成起始地址;
步骤S512,计算冗余填充量burst-(BN%burst);
步骤S513,依次输出数据包尾包突发数据;
步骤S514,监控数据是否输出完毕,未完继续执行步骤S513,否则执行步骤S502。
如前面记载的步骤五所述,读通道仲裁器通过预设的优先索引,对各个读通道扫描选择读入。现参照图6和图7对读通道仲裁器的操作进行描述。
图6是根据本发明的实施例的读通道仲裁器的处理通道选择的操作流程图。如图6所示,读通道仲裁器的处理通道选择可以包括如下步骤:
步骤S601,读取预设的优先索引;
步骤S602,抽取优先列表Pi;
步骤S603,根据优先列表Pi进行映射,指定下一个需要处理的通道Ri;
步骤S604,扫描通道Ri的ready信号,如果ready为真,执行步骤S605,否则执行步骤S609;
步骤S605,仲裁器切换选中通道Ri的地址、数据总线;
步骤S606,开启通道Ri的地址与数据输出使能;
步骤S607,监控通道Ri的数据输出是否完毕,直到完毕后执行步骤S608;
步骤S608,关闭通道Ri的地址与数据输出使能;
步骤S609,判断i是否为通道允许最大值N,是则设置i=0,否则i=i+1,然后执行步骤S602。
图7是根据本发明的实施例的读通道仲裁器的指令队列拆分的操作流程图。如图7所示,读通道仲裁器的指令队列拆分可以包括如下步骤:
步骤S701,系统启动后进入待机等待状态,初始化循环值n=0;
步骤S702,步骤S407执行完毕时执行步骤S703,否则等待于此状态;
步骤S703,通道初始化,获取通道Wi的起始地址;
步骤S704,锁存该地址与数据写入总量BN;
步骤S705,根据存储器控制总线的最大突发burst要求,生成BN与burst的商N:
步骤S706,判断循环值n是否等于N,是执行步骤S711,否则执行步骤S707;
步骤S707,生成起始地址;
步骤S708,依次输出突发数据;
步骤S709,监控数据是否输出完毕,未完继续执行步骤S708,否则执行步骤S710;
步骤S710,循环制n=n+1,并执行步骤S706;
步骤S711,根据BN与burst的余数生成起始地址;
步骤S712,计算冗余填充量burst-(BN%burst);
步骤S713,依次输出数据包尾包突发数据;
步骤S714,监控数据是否输出完毕,未完继续执行步骤S713,否则执行步骤S702。
图8是根据本发明实施例的多通道VDMA控制器的结构示意图。参照图8所示,本实施例提供一种多通道VDMA控制器用于实现如图3-7所示的控制方法。该多通道VDMA控制器包括:
1、VDMA接口模块。
用于向多个通道写入或从多个通道读取数据,分别与视频流和数据处理模块连接。
根据本实施例,VDMA接口模块包括:
VDMA写通道接口,用于向写通道写入所述数据流;
VDMA读通道接口,用于从读通道读取所述数据流。
2、数据处理模块。
用于对读取或写入的视频流数据进行处理,分别与VDMA接口模块和数据通道仲裁器模块连接。
根据本实施例,数据处理模块包括:
地址序列产生器,配置为生成所述读取或写入的数据流的地址序列,并将所述地址序列发送至所述通道仲裁器模块;
数据整理模块,配置为基于预设的队列排列方式整理接收的收据,生成下一步骤所需的数据队列;
FIFO控制模块,配置为用于对视频流数据进行FIFO控制。
3、通道仲裁器模块。
用于对读取和写入的视频流数据进行扫描输入和输出,分别与数据处理模块和总线驱动控制模块连接。
根据本实施例,通道仲裁器模块包括:
写通道仲裁器模块,配置为通过预设的优先索引,对各个写通道扫描选择输出。
读通道仲裁器模块,配置为通过预设的优先索引,对各个读通道扫描选择输入。
进一步地,通道仲裁器模块还包括匹配总线模块,配置为用于匹配总线驱动数据控制模块中所需要的总线。
本发明中,总线驱动控制模块所需的总线与存储器控制器的总线一致。
4、总线驱动控制模块。
用于实时监测和封装数据流,分别与数据通道仲裁模块和存储器控制器连接。
总线驱动控制模块将内部数据流封装成存储器外部设备所需总线。例如,如果使用DDR3存储器,存储器外部挂载了一个AXI总线的DDR3控制器。VDMA控制器通过AXI总线与该DDR3控制器连接,实施对DDR3的读写。
总线驱动控制模块包括写指令缓冲、读指令缓冲、写数据缓冲、读数据缓冲和总线驱动电路。写指令缓冲和写数据缓冲用于写通道,读指令缓冲和读数据缓冲用于读通道。写指令缓冲用于缓冲写通道仲裁器输出的指令队列,在存储器空闲时,将指令队列送入存储器控制器,同时根据指令队列中的突发长度控制写数据缓冲的放出数量。读指令缓冲用于缓冲读通道仲裁器输出的指令队列,在存储器空闲时,将指令队列送入存储器控制器,同时由读数据缓冲接收控制器读回的数据,并比较是否对应指令队列中的突发长度。
总线驱动控制模块实时监测各个缓冲区是否存在溢出或者空读的状态,告知微控制单元(Microcontroller Unit;MCU)进行异常处理。
总线驱动控制模块至存储器控制器的总线协议不限,视控制器而定,可以为AXI,AXI-lite,AXI-STREAM,AHB,OPB等。
5、控制总线解析模块。
MCU经由所述控制总线解析模块对流程所需的参数进行设置。
需要注意,控制总线可以与VDMA控制器内部的其他各个模块电性连接。
MCU通过控制总线解析模块对整个VDMA控制器内部的参数进行设置。包括:
1)配置读通道和写通道的帧缓冲数量、数据位宽、地址位宽、数据排列方式、分辨率大小、冗余填充方式、行缓冲大小等;
2)配置仲裁器中的优先级索引、数据突发方式、通道延迟等;
3)配置总线驱动控制模块的缓冲区大小、总线突发方式、地址位宽、数据位宽等。
控制总线解析模块与MCU的总线协议不限,可以是AXI,AXI-lite,PCI等。
本实施例提供的多通道VDMA控制器可以用于实现图3-7所示的控制方法,其实现原理与前述实施例原理相似,在此不再赘述。
以上所述,仅是本发明的较佳实施例而已,并非是对发明做其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
Claims (25)
1.一种多通道VDMA控制方法,具有写通道和读通道,包括:
经由VDMA接口写入和读取数据流;
所述VDMA接口控制地址序列产生器为所述数据流产生指令队列;
由FIFO控制对所述数据流的FIFO进行实时监控,控制所述数据流的写入和读取;
由数据整理模块将所述数据流组合成所需要的数据队列;
仲裁器通过预设的优先索引,对所述指令队列和所述数据队列进行扫描。
2.如权利要求1所述的控制方法,其特征在于还包括:
由总线驱动控制模块将内部的所有数据流封装成存储器控制器所需要的总线,
MCU通过控制总线解析模块对整个流程所需的参数进行配置。
3.如权利要求1所述的控制方法,其特征在于所述数据流符合AXIS基本协议。
4.如权利要求1所述的控制方法,其特征在于所述指令队列包含但不限定于以下参数:突发首地址、突发长度、突发请求、通道ID、队列有效。
5.如权利要求1所述的控制方法,其特征在于所述FIFO控制包括写通道FIFO控制和读通道FIFO控制,所述写通道FIFO控制和所述读通道FIFO控制处理的流程不同。
6.如权利要求5所述的控制方法,其特征在于所述写通道FIFO控制还包括:
所述写通道FIFO控制接收写数据,由所述写通道FIFO进行时钟域转换;
所述写通道FIFO控制对所述写数据的FIFO实时监控,控制所述写数据的流入与流出;
所述写通道FIFO控制对所述写数据的FIFO实时监控,控制所述写通道ready信号的触发。
7.如权利要求6所述的控制方法,其特征在于所述控制所述写数据的流入和流出还包括:
当所述写数据的量大于预设数Mw时,停止通道写入;
当所述写数据的量小于预设数Nw时,开启通道写入,其中:
Mw的取值范围为:FIFO深度>Mw>一行数据容量;
Nw的取值范围:(FIFO深度-一行数据容量)>Nw≧0。
8.如权利要求5所述的控制方法,其特征在于:
写通道输入时钟为本地时钟,输出时钟为总线时钟;
读通道输入时钟为总线时钟,输出时钟为本地时钟。
9.如权利要求5所述的控制方法,其特征在于所述由数据整理模块将数据流组合成所需要的数据序列进一步包括:
所述数据整理模块包括写通道数据整理模块和读通道数据整理模块。
10.如权利要求9所述的控制方法,进一步包括:
所述写通道数据整理模块通过预设的数据排列方式,将通过所述写通道FIFO控制写入的数据组合成写通道仲裁器需要的数据队列;
所述读通道数据整理模块通过预设的数据排列方式,将读通道仲裁器传出的数据序列整理成所述读通道FIFO控制所需的数据队列,然后进入所述读通道FIFO控制。
11.如权利要求10所述的控制方法,其特征在于:
所述写通道仲裁器和所述读通道仲裁器所需要的所述数据队列包含:
位宽和突发长度,并且所述位宽和所述突发长度可以根据时序要求更改。
12.如权利要求2所述的控制方法,其特征在于进一步包括:
当所述数据流溢出或者所述数据流为空时,所述FIFO控制发送错误信息,并通过所述控制总线将所述错误信息传送给所述MCU,以重新复位或重启多通道VDMA控制器。
13.如权利要求1所述的控制方法,其特征在于所述仲裁器对所述指令队列和所述数据队列进行扫描,进一步包括:
所述仲裁器包括写通道仲裁器和读通道仲裁器,
所述写通道仲裁器对写通道的所述指令队列/所述数据队列进行扫描以选择输出,
所述读通道仲裁器对读通道的所述指令队列/所述数据队列进行扫描选择读入。
14.如权利要求13所述的控制方法,进一步包括所述写通道仲裁器处理通道选择输出,通过以下步骤来实现:
步骤S401,读取预设的优先索引;
步骤S402,抽取优先列表Pi;
步骤S403,根据优先列表Pi进行映射,指定下一个需要处理的通道Wi;
步骤S404,扫描通道Wi的ready信号,如果ready为真,执行步骤S405,否则执行步骤S409;
步骤S405,仲裁器切换选中通道Wi的地址、数据总线;
步骤S406,开启通道Wi的地址与数据输出使能;
步骤S407,监控通道Wi的数据输出,判断是否完毕,如果是,执行步骤S408,否则继续执行步骤S406;
步骤S408,关闭通道Wi的地址与数据输出使能;
步骤S409,判断i是否为通道允许最大值N,是则设置i=0,否则i=i+1,然后执行步骤S402。
15.如权利要求14所述的控制方法,进一步包括所述写通道仲裁器对所述指令队列拆分,通过以下步骤来实现:
步骤S501,系统启动后进入待机等待状态,初始化循环值n=0;
步骤S502,步骤S407执行完毕时执行步骤S503,否则等待于此状态;
步骤S503,通道初始化,获取通道Wi的起始地址;
步骤S504,锁存该地址与数据写入总量BN;
步骤S505,根据存储器控制总线的最大突发burst要求,生成BN与burst的商N:
步骤S506,判断循环值n是否等于N,是执行步骤S511,否则执行步骤S507;
步骤S507,生成起始地址;
步骤S508,依次输出突发数据;
步骤S509,监控数据是否输出完毕,未完继续执行步骤S508,否则执行步骤S510;
步骤S510,循环值n=n+1,并执行步骤S506;
步骤S511,根据BN与burst的余数生成起始地址;
步骤S512,计算冗余填充量burst-(BN%burst);
步骤S513,依次输出数据包尾包突发数据;
步骤S514,监控数据是否输出完毕,未完继续执行步骤S513,否则执行步骤S502。
16.如权利要求13所述的控制方法,进一步包括所述读通道仲裁器的处理通道选择,通过以下步骤来实现:
步骤S601,读取预设的优先索引;
步骤S602,抽取优先列表Pi;
步骤S603,根据优先列表Pi进行映射,指定下一个需要处理的通道Ri;
步骤S604,扫描通道Ri的ready信号,如果ready为真,执行步骤S605,否则执行步骤S609;
步骤S605,仲裁器切换选中通道Ri的地址、数据总线;
步骤S606,开启通道Ri的地址与数据输出使能;
步骤S607,监控通道Ri的数据输出是否完毕,直到完毕后执行步骤S608;
步骤S608,关闭通道Ri的地址与数据输出使能;
步骤S609,判断i是否为通道允许最大值N,是则设置i=0,否则i=i+1,然后执行步骤S602。
17.如权利要求16所述的控制方法,进一步包括所述读通道仲裁器对指令队列拆分,通过以下步骤来实现:
步骤S701,系统启动后进入待机等待状态,初始化循环值n=0;
步骤S702,步骤S407执行完毕时执行步骤S703,否则等待于此状态;
步骤S703,通道初始化,获取通道Wi的起始地址;
步骤S704,锁存该地址与数据写入总量BN;
步骤S705,根据存储器控制总线的最大突发burst要求,生成BN与burst的商N:
步骤S706,判断循环值n是否等于N,是执行步骤S711,否则执行步骤S707;
步骤S707,生成起始地址;
步骤S708,依次输出突发数据;
步骤S709,监控数据是否输出完毕,未完继续执行步骤S708,否则执行步骤S710;
步骤S710,循环制n=n+1,并执行步骤S706;
步骤S711,根据BN与burst的余数生成起始地址;
步骤S712,计算冗余填充量burst-(BN%burst);
步骤S713,依次输出数据包尾包突发数据;
步骤S714,监控数据是否输出完毕,未完继续执行步骤S713,否则执行步骤S702。
18.一种多通道VDMA控制器,包括写通道和读通道,用于实现如权利要求1-17任何一项所述的方法,其特征在于,包括:
VDMA接口模块,用于向所述写通道写入或从所述读通道读取数据;
数据处理模块,用于对所述读取或写入的视频流数据进行处理;
通道仲裁器模块,用于对所述读取和写入的视频流数据进行扫描输入和输出,其中:
所述VDMA接口模块分别与视频流和所述数据处理模块连接;
所述数据处理模块分别与所述VDMA接口模块和所述数据通道仲裁器模块连接;
所述通道仲裁器模块分别与所述数据处理模块和所述总线驱动控制模块连接。
19.如权利要求18所述的控制器,进一步包括:
总线驱动控制模块,用于实时监测和封装所述数据流;
控制总线解析模块,MCU经由所述控制总线解析模块对流程所需的参数进行设置,其中:
所述总线驱动控制模块分别于所述数据通道仲裁模块和存储器控制器连接;
所述控制总线解析模块与MCU以及其余模块均相连接。
20.如权利要求17所述的控制器,其特征在于所述VDMA接口模块还包括:
VDMA写通道接口,用于向写通道写入所述数据流;
VDMA读通道接口,用于从读通道读取所述数据流。
21.如权利要求17所述的控制器,其特征在于所述数据处理模块还包括:
地址序列产生器,配置为生成所述读取或写入的数据流的地址序列,并将所述地址序列发送至所述通道仲裁器模块;
数据整理模块,配置为基于预设的队列排列方式整理接收的收据,生成下一步骤所需的数据队列;
FIFO控制模块,配置为对所述数据流进行FIFO控制。
22.如权利要求17所述的控制器,其特征在于所述通道仲裁器模块还包括:
匹配总线模块,配置为用于匹配所述总线驱动数据控制模块中所需要的总线;
写通道仲裁器模块,配置为通过预设的优先索引,对写通道扫描选择输出;
读通道仲裁器模块,配置为通过预设的优先索引,对读通道扫描选择输入。
23.如权利要求19所述的控制器,其特征在于所述总线驱动控制模块还包括:
写指令缓冲和写数据缓冲,用于所述写通道;
读指令缓冲和读数据缓冲,用于读通道;
总线驱动电路。
24.如权利要求19所述的控制器,其特征在于所述MCU经由所述控制总线解析模块对流程所需的参数进行设置进一步包括以下但不限定于:
配置所述读通道和所述写通道的帧缓冲数量、数据位宽、地址位宽、数据排列方式、分辨率大小、冗余填充方式、行缓冲大小;
配置所述仲裁器模块中的优先级索引、数据突发方式、通道延迟;
配置所述总线驱动控制模块的缓冲区大小、总线突发方式、地址位宽、数据位宽。
25.如权利要求6所述的控制方法,其特征在于所述控制所述写通道ready信号的触发还包括:
当所述写数据的量大于所述AXIS预设的突发长度时,产生ready信号,否则ready信号为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910973037.5A CN112732603B (zh) | 2019-10-14 | 2019-10-14 | 一种多通道vdma控制方法及其应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910973037.5A CN112732603B (zh) | 2019-10-14 | 2019-10-14 | 一种多通道vdma控制方法及其应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732603A true CN112732603A (zh) | 2021-04-30 |
CN112732603B CN112732603B (zh) | 2024-08-27 |
Family
ID=75588479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910973037.5A Active CN112732603B (zh) | 2019-10-14 | 2019-10-14 | 一种多通道vdma控制方法及其应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732603B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994010641A1 (en) * | 1992-11-02 | 1994-05-11 | The 3Do Company | Audio/video computer architecture |
JPH0916160A (ja) * | 1995-06-29 | 1997-01-17 | Seiko Epson Corp | コンピュータシステム |
EP0893766A2 (en) * | 1997-07-25 | 1999-01-27 | Canon Kabushiki Kaisha | Bus manager and control apparatus for multifunction device having said bus manager |
KR20050073265A (ko) * | 2004-01-09 | 2005-07-13 | 삼성전자주식회사 | 화상 변환 장치, 화상 변환을 위한 직접 메모리 액세스장치 및 화상 변환을 지원하는 카메라 인터페이스 |
CN1719427A (zh) * | 2004-07-09 | 2006-01-11 | 上海奇码数字信息有限公司 | 存储器直接存取装置及其数据传输方法 |
JP2006072832A (ja) * | 2004-09-03 | 2006-03-16 | Nec Access Technica Ltd | 画像処理システム |
CN101499245A (zh) * | 2008-01-30 | 2009-08-05 | 深圳安凯微电子技术有限公司 | 异步先入先出存储器、液晶显示控制器及其控制方法 |
CN101552916A (zh) * | 2009-05-05 | 2009-10-07 | 北京红旗胜利科技发展有限责任公司 | 视频yuv数据的dma传输方法、装置及dma控制器 |
CN101789228A (zh) * | 2010-03-30 | 2010-07-28 | 无锡致新电子科技有限公司 | 视频定标器 |
CN201904076U (zh) * | 2010-03-30 | 2011-07-20 | 无锡致新电子科技有限公司 | 视频定标器 |
CN102243526A (zh) * | 2010-05-14 | 2011-11-16 | 炬力集成电路设计有限公司 | 双倍数据速率内存的内存控制器及其控制方法 |
CN104219505A (zh) * | 2014-09-29 | 2014-12-17 | 济南中维世纪科技有限公司 | 一种基于PCIe的多路高清模拟音视频采集系统 |
CN104599227A (zh) * | 2013-10-30 | 2015-05-06 | 南京理工大学 | 用于高速ccd数据存储的ddr3仲裁控制器及方法 |
CN106961608A (zh) * | 2017-04-07 | 2017-07-18 | 山东师范大学 | 高清解码器数字显示混合格式码流自适应处理系统及方法 |
CN109299030A (zh) * | 2018-09-10 | 2019-02-01 | 南京莱斯电子设备有限公司 | 基于ZYNQ的cameralink转帕尔制的方法 |
-
2019
- 2019-10-14 CN CN201910973037.5A patent/CN112732603B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994010641A1 (en) * | 1992-11-02 | 1994-05-11 | The 3Do Company | Audio/video computer architecture |
JPH0916160A (ja) * | 1995-06-29 | 1997-01-17 | Seiko Epson Corp | コンピュータシステム |
EP0893766A2 (en) * | 1997-07-25 | 1999-01-27 | Canon Kabushiki Kaisha | Bus manager and control apparatus for multifunction device having said bus manager |
KR20050073265A (ko) * | 2004-01-09 | 2005-07-13 | 삼성전자주식회사 | 화상 변환 장치, 화상 변환을 위한 직접 메모리 액세스장치 및 화상 변환을 지원하는 카메라 인터페이스 |
CN1719427A (zh) * | 2004-07-09 | 2006-01-11 | 上海奇码数字信息有限公司 | 存储器直接存取装置及其数据传输方法 |
JP2006072832A (ja) * | 2004-09-03 | 2006-03-16 | Nec Access Technica Ltd | 画像処理システム |
CN101499245A (zh) * | 2008-01-30 | 2009-08-05 | 深圳安凯微电子技术有限公司 | 异步先入先出存储器、液晶显示控制器及其控制方法 |
CN101552916A (zh) * | 2009-05-05 | 2009-10-07 | 北京红旗胜利科技发展有限责任公司 | 视频yuv数据的dma传输方法、装置及dma控制器 |
CN101789228A (zh) * | 2010-03-30 | 2010-07-28 | 无锡致新电子科技有限公司 | 视频定标器 |
CN201904076U (zh) * | 2010-03-30 | 2011-07-20 | 无锡致新电子科技有限公司 | 视频定标器 |
CN102243526A (zh) * | 2010-05-14 | 2011-11-16 | 炬力集成电路设计有限公司 | 双倍数据速率内存的内存控制器及其控制方法 |
CN104599227A (zh) * | 2013-10-30 | 2015-05-06 | 南京理工大学 | 用于高速ccd数据存储的ddr3仲裁控制器及方法 |
CN104219505A (zh) * | 2014-09-29 | 2014-12-17 | 济南中维世纪科技有限公司 | 一种基于PCIe的多路高清模拟音视频采集系统 |
CN106961608A (zh) * | 2017-04-07 | 2017-07-18 | 山东师范大学 | 高清解码器数字显示混合格式码流自适应处理系统及方法 |
CN109299030A (zh) * | 2018-09-10 | 2019-02-01 | 南京莱斯电子设备有限公司 | 基于ZYNQ的cameralink转帕尔制的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112732603B (zh) | 2024-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951388B (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
US8719476B2 (en) | Communication system, master device and slave device, and communication method, configured to handle plural concurrent requests | |
CN109788214B (zh) | 一种基于fpga的多路视频无缝切换系统和方法 | |
JP5194014B2 (ja) | データワードストリーム処理装置 | |
CN111931442B (zh) | Fpga内嵌flash控制器及电子装置 | |
CN107491267B (zh) | 一种基于lvds接口的高速图像数据存储装置 | |
KR20120040535A (ko) | 버스 시스템 및 그것의 동작 방법 | |
US7590146B2 (en) | Information processing unit | |
CN109600532B (zh) | 无人机多路视频无缝切换系统和方法 | |
CN110647494A (zh) | 多处理器通信方法及装置 | |
WO2000039685A1 (en) | Flexible memory channel | |
CN116830520A (zh) | 通信装置、通信系统和通信方法 | |
KR20230056665A (ko) | 통신 장치, 통신 시스템 및 통신 방법 | |
CN112732603B (zh) | 一种多通道vdma控制方法及其应用 | |
CN115632903B (zh) | 一种虚拟外设通信总线控制方法、装置及计算机设备 | |
US9160338B2 (en) | Adaptive interface for coupling FPGA modules | |
US10127180B2 (en) | Bus interface unit and operating method therefor | |
US10621122B1 (en) | Systems and methods for transferring data with a dual-line first-in-first-out (FIFO) memory array | |
JP2002183692A (ja) | Icカードおよびicカードシステム | |
EP4322451A1 (en) | Communication device, communication system, and communication method | |
RU175049U1 (ru) | УСТРОЙСТВО КОММУНИКАЦИОННЫХ ИНТЕРФЕЙСОВ SpaceWire | |
JP2008112413A (ja) | データ転送装置および画像処理装置 | |
CN109918325A (zh) | 基于Avalon总线的接口转换桥、接口转换方法及系统 | |
US8427955B2 (en) | Method and apparatus for transferring data | |
CN102984599A (zh) | 基于RapidIO协议网络的视频采集传输装置及方法 |
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 |