一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多通道数据流配置方法、电路架构、装置、介质及终端

2022-10-29 04:30:24 来源:中国专利 TAG:


1.本发明涉及集成电路芯片设计领域,特别是涉及一种多通道数据流配置方法、电路架构、装置、介质及终端。


背景技术:

2.近年来,随着高新信息科技的发展,人工智能、计算机视觉、自动驾驶、安防监控和移动设备等领域对摄像头传感器分辨率的要求日益提高。基于mipi(mobile industry processor interface,移动产业处理器接口)协议的csi-2(camera serial interface 2)高清摄像头,解决了高清图像(视频)传输的高带宽要求与传统接口的低速率之间的矛盾,同时为整个行业提供统一的标准,进而缩短产品的开发周期,增强不同厂商产品的兼容性。如今,csi-2高清摄像头被广泛应用于各种嵌入式图像设备中,如智能手机、电视、可穿戴设备、虚拟现实技术产品、adas系统等。由于应用场景的复杂度与日俱增,对于传输速率和极低功耗的要求越来越高,设计复杂度不断提高,给传统mipi csi-2接口设计和数据量灵活输送带来了非常严峻的挑战。
3.根据mipi csi-2协议规范,mipi电路架构可基本划分为应用层、组包层、协议层和通道管理层。mipi组包模块根据协议的要求,完成高速数据的重组、打包和发送,在数据链路上发挥了重要的作用。它与其他模块之间有着非常紧密的互动,作为mipi数字模块的前端完成接收和衔接作用,同时也按照一定的协议要求做到了将零散的数据打包生成符合协议规范的数据。由于最后的mipi输出有可能是一条通道,也有可能是多条通道,如果是多条通道时需要按照一定的次序为每条通道分配数据,当通道数目发生变化时需要灵活的去适应;除此之外因为传输来的每行数据个数多种多样,存在各种各样的数据格式,比如四条通道时,传输到最后很可能剩下的不是四个byte的整数倍信号,最后可能剩下三个byte或者两个byte或者一个byte,这时同样需要适应不同个数数据和不同通道配给所造成的不同发送需求,因此在设计过程中如何巧妙的做好规划以及和其他模块的握手交互是一个亟待解决的问题。
4.早期基于专用集成电路(asic)和现场可编程门阵列(fpga)的mipi接口实现主要集中在功能层面的实现和单通道速率的提升上面,对于通道数目的灵活配置以及零散数据流的打包发送并无相关研究。而且,由于现有成熟的mipi csi-2ip核最多支持4通道数据传输,尤其在通道数较少的情况下,面临的通道配置和零散数据流问题并不复杂,但随着通道数目增多,到8通道甚至16通道,这类问题复杂度会大幅提高,合理设计mipi组包层电路架构对整个协议非常重要。


技术实现要素:

5.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种多通道数据流配置方法、电路架构、装置、介质及终端,解决传统mipi csi-2协议的数据通道配置灵活性不足的技术问题。
6.为实现上述目的及其它相关目的,本发明的第一方面提供一种多通道数据流配置方法,应用于mipi csi-2协议,所述方法包括:获取待配置数据流;将所述待配置数据流按序存储以构建循环缓存矩阵;基于当前数据通道的数量利用多个读指针读取所述循环缓存矩阵中的数据。
7.于本发明的第一方面的一些实施例中,所述循环缓存矩阵的构建方式包括:对所述待配置数据流的写入操作进行控制,以将所述待配置数据流按序写入存储单位构成缓存矩阵;并令读地址的第一位指向所述缓存矩阵的第一行,依次类推,直到读地址的最后一位指向所述缓存矩阵的最后一行,且最后一行包括第一行的第一个存储单位,以获取循环缓存矩阵。
8.于本发明的第一方面的一些实施例中,所述循环缓存矩阵的读取方式包括:基于数据通道数量设置所述读指针的数量,且各个读指针的地址对应所述数据通道的数量均匀设置并随着数据的读取同步叠加。
9.于本发明的第一方面的一些实施例中,所述多通道数据流配置方法包括:在当前数据通道的数量低于预设值的情况下,所述多个读指针中的部分读指针发挥作用,控制读出操作;所述多个读指针中的部分读指针不发挥作用,不控制读出操作。
10.为实现上述目的及其它相关目的,本发明的第二方面提供一种多通道数据流配置的电路架构,包括:切割模块,用于将待配置数据流进行切割;打包模块,用于整理切割后的数据流并将其向外输送;封装模块,用于将所述打包模块输出的数据与其对应的包头信息和包尾信息进行封装;读写控制模块,用于将所述封装模块封装后的数据按照一定顺序构成一个缓存矩阵,并基于当前的数据通道数量输出数据。
11.于本发明的第二方面的一些实施例中,所述读写控制模块包括:写控制模块、缓存矩阵模块和读控制模块;其中,写控制模块将封装好的数据流按序写入存储单位;缓冲矩阵模块写控制模块发送的数据整合打包,并构建一个缓存矩阵;读控制模块来控制数据的读取。
12.于本发明的第二方面的一些实施例中,所述多通道数据流配置的电路架构还包括:包头生成模块:生成包头信息并发送给所述封装模块;循环冗余校验模块:接收所述打包模块发送的数据,并生成对应的包尾信息发送至所述封装模块;所述包尾信息包括用于数据校验的循环冗余校验序列;先进先出堆栈模块:将预存的数据流输出至所述切割模块。
13.为实现上述目的及其它相关目的,本发明的第三方面提供一种多通道数据流配置装置,包括:数据获取模块,用于获取待配置数据流;数据存储模块,用于将所述待配置数据流按序存储以构建循环缓存矩阵;数据读取模块,基于当前数据通道的数量利用多个读指针读取所述循环缓存矩阵中的数据。
14.为实现上述目的及其它相关目的,本发明的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述多通道数据流配置方法。
15.为实现上述目的及其它相关目的,本发明的第五方面提供一种电子终端,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行所述多通道数据流配置方法。
16.如上所述,本发明涉及的多通道数据流配置方法、电路架构、装置、介质及终端,具
有以下有益效果:针对传统mipi csi-2协议设计中灵活性差、可配置能力不足的问题,本发明引入额外的读写控制逻辑和存储矩阵,并且采用多个读指针的控制方式,灵活实现了数据流的分割,同时很好地适应了不同通道数的变化和不同数据格式带来的发送需求,保证了数据发送的连续性和完整性;针对协议设计中采用的缓冲寄存器组,本发明通过数据流打包和循环缓冲区的搭建,在有效提高mipi电路的灵活性和配置功能的同时并未引入更多存储单元,在运算速度和资源消耗上面取得了平衡;提出一种面向mipi csi-2协议的组包层电路设计架构,通过流水线架构、读写控制模块和循环缓冲区,提高读出数据流的灵活性、连续性和正确性。
附图说明
17.图1显示为本发明一实施例中一种面向mipi协议的多通道数据流配置方法的流程示意图。
18.图2显示为本发明一实施例中一种mipi csi-2组包层的电路架构示意图。
19.图3显示为本发明一实施例中一种读写控制模块的电路结构示意图。
20.图4显示为本发明一实施例中一种缓存矩阵结构示意图。
21.图5显示为本发明一实施例中一种数据流的读取流程示意图。
22.图6显示为本发明一实施例中一种多通道数据流配置装置的结构示意图。
23.图7显示为本发明一实施例中电子终端的结构示意图。
具体实施方式
24.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其它优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
25.需要说明的是,在下述描述中,参考附图,附图描述了本发明的若干实施例。应当理解,还可使用其它实施例,并且可以在不背离本发明的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本发明的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本发明。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、“下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。
26.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”、“固持”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
27.再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特
征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其它特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“a、b或c”或者“a、b和/或c”意味着“以下任一个:a;b;c;a和b;a和c;b和c;a、b和c”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
28.本发明提出一种多通道数据流配置方法、电路架构、装置、介质及终端,解决传统mipi csi-2协议的数据通道配置灵活性不足的技术问题。
29.为了使本发明的目的、技术方案及优点更加清楚明白,通过下述实施例并结合附图,对本发明实施例中的技术方案进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
30.实施例一
31.如图1所示,本实施例提出一种面向mipi协议的多通道数据流配置方法,以适应不同数据长度或不同数据通道配给下不同的发送需求。该面向mipi协议的多通道数据流配置方法的具体步骤包括步骤s11~s13,可阐述如下:
32.步骤s11.获取待配置数据流。数据流是一组有序、有起点和终点的字节的数据序列,包括输入流、输出流和缓冲流,也可按其读写数据的类型分为字节流和字符流。数据的性质、格式不同,则对数据流的处理方式也不同。本实施例面向mipi csi-2协议,因此所述待配置数据流一般为视频数据流(图像数据流)。
33.在本实施例较佳实施方式中,所述待配置数据流的获取方式包括:对原始视频数据进行预处理获得原始fifo(先进先出堆栈)数据流;将原始fifo数据流做一定分割;将分割后的数据进行循环冗余校验(crc)产生对应的包尾信息,并生成对应的包头信息;将分割后的数据以及对应生成的包头信息和包尾信息做封装处理获得待配置数据流。
34.步骤s12.将所述待配置数据流按序存储以构建循环缓存矩阵,其中的顺序一般即数据流的时间顺序,由数据流本身传输的持续性特征决定。具体的,对所述待配置数据流的写入操作进行控制,以将所述待配置数据流按序写入存储单位构成缓存矩阵;并令读地址的第一位指向所述缓存矩阵的第一行,依次类推,直到读地址的最后一位指向所述缓存矩阵的最后一行,且最后一行包括第一行的第一个存储单位,以获取循环缓存矩阵。优选的,循环缓冲区首尾相连并尺寸固定,避免数据反复存储造成不必要的空间浪费和信息冗余。
35.步骤s13.基于当前数据通道的数量利用多个读指针读取所述循环缓存矩阵中的数据。具体的,通过读使能信号和读地址对数据的读取操作进行控制,设置与数据通道数量适配的读指针,且各个读指针的地址对应所述数据通道的数量均匀设置并随着数据的读取同步叠加。
36.在本实施例较佳的实施方式中,根据当前的数据通道数量灵活对指针进行调配,在当前数据通道的数量低于预设值的情况下,所述多个读指针中的部分读指针发挥作用,控制读出操作;所述多个读指针中的部分读指针不发挥作用,不控制读出操作,从而适应当前数据通道的数量,灵活控制数据的读取、输出。
37.例如,当数据通道有八条时,可设置两个读指针(读指针1和读指针2);当数据通道为十六条时,可设置四个读指针。又例如,当八条数据通道一次读出八比特数据时,读指针2的地址为读指针1加四,每读出一个数据,两个读指针一次增加四,共读出两组数据也就是
两组四个缓冲寄存器数据,两个最高位byte数据分别对应通道八和通道四,然后依次向下递减;当四条通道一次读出四byte或者两条通道一次读出两byte时,读指针2不再发挥作用,仅读指针1控制读出操作,两条通道时,读指针一次增加二,四条通道时一次增加四。
38.在一些实施方式中,所述方法可应用于控制器,所述电控单元例如为arm(advanced risc machines)控制器、fpga(field programmable gate array)控制器、soc(system on chip)控制器、dsp(digital signal processing)控制器、或者mcu(microcontroller unit)控制器等等。在一些实施方式中,所述方法也可应用于包括存储器、存储控制器、一个或多个处理单元(cpu)、外设接口、rf电路、音频电路、扬声器、麦克风、输入/输出(i/o)子系统、显示屏、其它输出或控制设备,以及外部端口等组件的计算机;所述计算机包括但不限于如台式电脑、笔记本电脑、平板电脑、智能手机、智能电视、个人数字助理(personal digital assistant,简称pda)等个人电脑。在另一些实施方式中,所述方法还可应用于服务器,所述服务器可以根据功能、负载等多种因素布置在一个或多个实体服务器上,也可以由分布的或集中的服务器集群构成。
39.实施例二
40.如图2所示,本实施例提出一种基于流水线结构的mipi csi-2组包层的整体电路架构的示意图,其中,实线框内表示组包层的内部模块;实线箭头代表数据通路;虚线框内代表与组包层交互的模块,例如,header模块(包头生成模块)、循环冗余校验(crc)模块、先进先出堆栈(fifo)模块等,其中,header模块用于为协议模块生成包头信息,循环冗余校验模块用于接收打包模块发送的数据,并对应生成附加在包尾的用于数据校验的crc序列,fifo模块主要用来输出前段模块处理过的数据流。
41.组包层包括四个功能模块:slicing模块(切割模块)、packet模块(打包模块)、packaging模块(封装模块)和读写控制模块(w/r_ctl),其中,slicing模块用于将fifo模块输入的异步fifo数据流进行切割;packet模块用来整理切割后的数据流并将其输送给其它模块,例如对于格式为yuv的10bit像素数据流,需要将40bit的原始数据分为4份,4份中的每份取低两位合成一个8bit数据,每份剩下8bit数据各为一份;packaging模块将接收的包头信息、包尾信息与packet模块整理的数据进行结合;w/r_ctl模块是其中最重要的部分,它将packaging模块加了包头信息和包尾信息的数据按照一定顺序构成一个循环缓存矩阵,充分考虑了行数的不同和通道数不同对于数据读出的影响来读取数据。
42.如图3所示,本实施例提出一种读写控制模块的电路结构示意图,包括:写控制模块(wr_ctrl)、缓冲矩阵模块和读控制模块(rd_ctrl),其具体工作流程如下:
43.wr_ctrl模块:受写使能信号wr_en和写地址信号wr_addr控制,将打包好的连续数据流(如byte0、byte1、byte2、byte3、byte4)按照一定的次序写入存储单位(如f0-f31,三十二个八比特的存储单位)。
44.缓存矩阵模块:将wr_ctrl模块发送的数据通过package进行整合打包,并构建一个循环缓存矩阵。如图4所示,本实施例以f0-f31三十二个八比特的存储单位存储的数据为例,给出一种缓存矩阵结构示意图,其中,读地址信号(read_addr)第一位5’d0:rd_dat指向f0-f3四个八比特缓存器,依次类推,直到最后一位5’d31:rd_dat指向f31-f2四个八比特缓存器,从而构建一个循环,实现类似于循环缓冲区(ring buffer)的功能。构建缓冲矩阵时不需要将每个八比特数据反复存储四遍,该循环缓冲区首尾相连并且尺寸固定,仅需要额
外引入读指针去控制读取数据的范围。
45.rd_ctrl模块:为了适应不同的数据形式、长度、不同的通道数量,rd_ctrl模块受使能信号rd_en和读地址信号read_addr控制,采用两个读指针(第一读指针a1和第二读指针a2)来控制数据的读取。如图5所示,本实施例给出一种数据流的读取流程示意图,以图3构建的缓存矩阵为例,当八条通道(data_lane0,data_lane1,```,data_lane6,data_lane7)一次读出八比特数据时,第二读指针a2的地址为第一读指针a1加四,每读出一个数据,两个读指针一次增加四,共读出两组数据也就是两组四个缓冲寄存器数据,两个最高位比特数据分别对应通道8和通道4,然后依次向下递减对应通道7、6、5或3、2、1;当四条通道一次读出四比特或者两条通道一次读出两比特时,第二读指针a2不再发挥作用,仅第一读指针a1控制读出操作,两条通道时,第一读指针a1每读出一个数据后一次增加二;四条通道时,第一读指针a1每读出一个数据后一次增加四;后续数据模块也根据八个通道的激活情况作相应的处理。
46.综上,本实施例中读写控制模块将松散的数据流按照一定次序写入多个缓存寄存器里,以适应数据通道的数量变化,最后按照这种变化将数据读出,每次读出时按照读地址信号read_addr的要求指向预设分组的缓存寄存器,读出的每组数据与各个当前的数据通道一一对应,从而实现数据的灵活、连续且准确地读取,从而实现多通道数据流的灵活配置
47.实施例三
48.如图6所示,本实施例提出一种多通道数据流配置装置,包括:数据获取模块61,用于获取待配置数据流;数据存储模块62,用于将所述待配置数据流按序存储以构建循环缓存矩阵;数据读取模块63,基于当前数据通道的数量利用多个读指针读取所述循环缓存矩阵中的数据。
49.需要说明的是,本实施例提供的模块与上文中提供的方法、实施方式类似,故不再赘述。另外需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,数据读取模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上数据读取模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
50.例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,简称asic),或,一个或多个微处理器(digital signal processor,简称dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,简称fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。
51.实施例四
52.本实施例提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前文所述多通道数据流配置方法。
53.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
54.实施例五
55.如图7所示,本发明实施例提供一种电子终端的结构示意图。本实施例提供的电子终端,包括:处理器71、存储器72、通信器73;存储器72通过系统总线与处理器71和通信器73连接并完成相互间的通信,存储器72用于存储计算机程序,通信器73用于和其它设备进行通信,处理器71用于运行计算机程序,使电子终端执行如上多通道数据流配置方法的各个步骤。
56.上述提到的系统总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其它设备(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(random access memory,简称ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
57.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
58.综上所述,本发明提供多通道数据流配置方法、电路架构、装置、介质及终端,针对传统mipi csi-2协议设计中灵活性差、可配置能力不足的问题,本发明引入额外的读写控制逻辑和存储矩阵,并且采用两个读指针的控制方式,灵活实现了数据流的分割,同时很好地适应了不同通道数的变化和不同数据格式带来的发送需求,保证了数据发送的连续性和完整性;针对协议设计中采用的缓冲寄存器组,本发明通过数据流打包和循环缓冲区的搭建,在有效提高mipi电路的灵活性和配置功能的同时并未引入更多存储单元,在运算速度和资源消耗上面取得了平衡;提出一种面向mipi csi-2协议的组包层电路设计架构,通过流水线架构、读写控制模块和循环缓冲区,提高读出数据流的灵活性、连续性和正确性。所以,本发明有效克服了现有技术中的种种缺点而具有高度产业利用价值。
59.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献