CN115203091A - 非同源时钟数据传输系统的数据恢复方法 - Google Patents
非同源时钟数据传输系统的数据恢复方法 Download PDFInfo
- Publication number
- CN115203091A CN115203091A CN202210814401.5A CN202210814401A CN115203091A CN 115203091 A CN115203091 A CN 115203091A CN 202210814401 A CN202210814401 A CN 202210814401A CN 115203091 A CN115203091 A CN 115203091A
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- channel
- writing
- reading
- 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.)
- Withdrawn
Links
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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Communication Control (AREA)
Abstract
本发明公开了非同源时钟数据传输系统的数据恢复方法,发送端将多路并行数据封装为串行数据并通过光纤传输至接收端,其特征在于,接收端执行至少如下步骤:步骤S1:获取串行数据;步骤S2:将串行数据解包分发为多路并行数据;步骤S3:在每个并行通道中,将数据逐帧写入缓存;步骤S4:以本地时钟为基准逐帧读取缓存数据;步骤S5:并行输出所有通道数据。采用本发明技术方案,在接收端设置本地时钟来恢复数据流,并通过优化缓存策略来降低发送端与接收端时钟存在偏差的影响,无需增加额外硬件资源,大大降低了系统的复杂度和成本。
Description
本发明申请是中国专利申请(申请号为:2020108459389,发明名称:非同源时钟数据传输系统,申请日:20200820)的分案申请。
技术领域
本发明涉及数据通讯技术领域,尤其涉及一种非同源时钟数据传输系统的数据恢复方法。
背景技术
随着数据通信系统的传输速率的上升,对通信线缆的要求也越来越高,特别是对于一些长距离的数据通信系统,一般使用光纤进行远距离传输,通常光纤只传输数据,并不传输时钟信号。而通信线缆中增加一个参考时钟频率信道,对于整个系统而言,是一个较大的成本消耗。
上述通讯系统中,由于接收端并没有接收到发送信号的时钟信号,为了解决这个技术问题,现有技术通常做法是在接收端进行时钟信号恢复,也就是根据接收到的串行数据提取时钟信号,再利用这个时钟对串行数据进行处理,恢复接收端的数字信号。然而,在高速数据传输时,比如高速视频信号传输,对视频信号同步的要求很高,对接收端恢复发送端时钟的精度要求大大提高,往往很难达到应用要求,一旦时钟存在偏差,接收端视频播放就会产生不流畅现象;另外,现有技术采用硬件实现时钟信号恢复,也大大增加了系统的复杂度。
故,针对现有技术的缺陷,亟待一种解决方案,能够处理非同源时钟数据传输系统的数据同步恢复,同时可以降低系统的复杂性和成本。
发明内容
有鉴于此,确有必要提供一种非同源时钟数据传输系统的数据恢复方法,在接收端设置本地时钟来恢复数据流,并通过优化缓存策略来降低发送端与接收端时钟存在偏差的影响,无需增加额外硬件资源,大大降低了系统的复杂度和成本。
为了解决现有技术存在的技术问题,本发明的技术方案如下:
非同源时钟数据传输系统的数据恢复方法,发送端将多路并行数据封装为串行数据并通过光纤传输至接收端,接收端执行至少如下步骤:
步骤S1:获取串行数据;
步骤S2:将串行数据解包分发为多路并行数据;
步骤S3:在每个并行通道中,将数据逐帧写入缓存;
步骤S4:以本地时钟为基准逐帧读取缓存数据;
步骤S5:并行输出所有通道数据;
其中,每个通道的缓存至少开辟三帧缓存空间,并设置如下读写机制:在地址切换时,写地址永远切到未被读写地址指向的区域,读地址永远切到上一次写入的区域。
作为进一步的改进方案,至少包括发送端和接收端,发送端用于将串行数据并通过光纤传输至接收端,所述接收端至少包括串行数据获取单元、通道处理单元以及输出单元,其中,
所述串行数据获取单元用于获取光纤上传输的串行数据;
所述通道处理单元用于同步该通道的数据;
所述输出单元用于输出同步后的通道数据;
所述通道处理单元至少包括数据写入控制单元、数据读出控制单元、缓存单元、本地时钟和通道输出单元,其中,
所述缓存单元用于至少开辟三帧数据空间以缓存通道数据;
所述数据写入控制单元用于将通道数据逐帧写入缓存;所述数据读出控制单元用于以本地时钟为基准从缓存单元中逐帧读取数据;其中,数据写入控制单元和数据读出控制单元同时对缓存单元执行数据写入操作和数据读出操作,并设置如下读写机制:在地址切换时,数据写入控制单元控制写地址切到未被读写地址指向的缓存区域,数据读出控制单元控制读地址切到上一次写入的缓存区域。
作为进一步的改进方案,所述本地时钟采用与发送端同型同频的晶振。
作为进一步的改进方案,所述发送端设置并串转换单元,所述并串转换单元用于将多路并行数据封装为串行数据。
作为进一步的改进方案,所述接收端还设置数据解包单元,所述数据解包单元用于将接收到的串行数据解包分发为多路并行数据至每个数据通道。
作为进一步的改进方案,每个数据通道独立设置一通道处理单元。
作为进一步的改进方案,各个数据通道共享同一通道处理单元。
作为进一步的改进方案,每个数据通道采用同一本地时钟。
作为进一步的改进方案,还包括存储单元,各个通道的缓存单元为开辟在所述存储单元不同区域的存储空间。
作为进一步的改进方案,所述存储单元采用DRAM。
作为进一步的改进方案,所述数据写入控制单元和数据读出控制单元集成设置在CPU中。
与现有技术相比较,本发明采用本地晶振实现数据恢复,并通过优化缓存策略,去除了误差的积累,保证了读出数据连续。本发明可以采用软件实现数据同步,无需增加硬件资源,大大降低了系统的复杂度和成本。
附图说明
图1为非同源时钟数据传输系统的原理示意图。
图2为本发明中接收端的原理示意图。
图3为本发明中通道处理单元的原理示意图。
图4为本发明中读写地址切换的示意图。
图5为本发明中读速率快于写速率时读写地址切换的示意图。
图6为本发明中写速率快于读速率的读写地址切换示意图。
图7为本发明非同源时钟数据传输系统中接收端数据恢复的流程框图。
如下具体实施例将结合上述附图进一步说明本发明。
具体实施方式
以下将结合附图对本发明提供的技术方案作进一步说明。
参见图7,所示为本发明还公开的非同源时钟数据传输系统的数据恢复方法的流程框图,发送端将多路并行数据封装为串行数据并通过光纤传输至接收端,接收端执行至少如下步骤:
步骤S1:获取串行数据;
步骤S2:将串行数据解包分发为多路并行数据;
步骤S3:在每个并行通道中,将数据逐帧写入缓存;
步骤S4:以本地时钟为基准逐帧读取缓存数据;
步骤S5:并行输出所有通道数据;
其中,每个通道的缓存至少开辟三帧缓存空间,并设置如下读写机制:在地址切换时,写地址永远切到未被读写地址指向的区域,读地址永远切到上一次写入的区域。
采用上述技术方案,本发明正是通过优化存储策略,利用读写机制消除了误差的积累,当输入输出不同步时,通过重复输出一帧数据或覆盖一帧数据的方式,有效保证了读出数据连续。以下结合系统框图详细描述本发明方法的具体工作原理。
参见图1,所示为本发明提供实现本发明方法的非同源时钟数据传输系统的原理示意图,至少包括发送端和接收端,发送端用于将串行数据并通过光纤传输至接收端,通常还设置备份光纤,当主光纤故障时,有效保障系统正常通讯。在一种优选实施方式中,传输的是高速视频数据,比如用于实现4K高清视频传输的12G-SDI(Serial DigitalInterface)标准数据,通常发送端设置并串转换单元,该并串转换单元用于将多路并行数据封装为串行数据,比如将3路并行的3G-SDI封装为一路串行的12G-SDI。在高速视频数据传输应用中,需要保证数据的连续输出,否则会出现视频抖动或者卡顿等现象,这就对输出数据同步提出了更高的要求。本发明的目的就是在不增加硬件资源的情况下解决上述技术问题。
参见图2,所示为接收端的原理示意图,至少包括串行数据获取单元、通道处理单元以及输出单元,其中,串行数据获取单元用于获取光纤上传输的串行数据;通道处理单元用于同步该通道的数据;输出单元用于输出同步后的通道数据。
在一种优选实施方式中,为了实现多路并行数据输出,接收端还设置数据解包单元,数据解包单元用于将接收到的串行数据解包分发为多路并行数据至每个数据通道。其中,各个数据通道可以共享同一通道处理单元,可以通过高速开关切换实现各个数据通道共享同一通道处理单元;也可以在每个数据通道独立设置一通道处理单元,以提高并行输出效果。进一步的,每个数据通道采用同一本地时钟。
参见图3,所示为本发明中通道处理单元的原理示意图,通道处理单元至少包括数据写入控制单元、数据读出控制单元、缓存单元、本地时钟和通道输出单元,其中,缓存单元用于至少开辟三帧数据空间以缓存通道数据;数据写入控制单元用于将通道数据逐帧写入缓存;数据读出控制单元用于以本地时钟为基准从缓存单元中逐帧读取数据;其中,数据写入控制单元和数据读出控制单元同时对缓存单元执行数据写入操作和数据读出操作,并设置如下读写机制:在地址切换时,数据写入控制单元控制写地址切到未被读写地址指向的缓存区域,数据读出控制单元控制读地址切到上一次写入的缓存区域。
为了让发送端数据和接收端数据尽可能的同步,接收端本地时钟采用与发送端同型同频的晶振。但是晶振总会存在偏差,也就是说,发送端和接收端晶振不可能完全相同,即便两者误差小于20ppm,假设晶振频率为148.5MHz,那么最短需要经过约277.78小时进行一次同步,否则随着误差的积累,接收端输出的视频会存在严重的时差,将会导致数据不能稳定输出。
为了保证数据稳定输出,现有技术通常采用增大缓存空间,然后不管采用多大的缓存空间,由于写入和读出速率不同必将导致内部存储器写满或读空,从而导致数据断流,仍然会导致误差积累。
参见图4,所示为本发明同步策略的原理示意图,以三帧缓冲为例介绍该策略的实现过程。首先缓存单元开辟三块内存区域,分别为单元A、单元B和单元C,用于缓存单个通道中的三帧数据。本发明对三缓冲机制作如下设置,首先对三个缓存单元的读操作和写操作是同时进行的,缓存的写入速度就是发送端的速度;缓存的读出速度由本地时钟决定,该时钟通常无限接近发送端时钟。同时,在读写地址切换时,数据写入控制单元控制写地址切到未被读写地址指向的缓存区域,数据读出控制单元控制读地址切到上一次写入的缓存区域。具体的,数据写入控制单元控制将一帧数据写入单元A。完成一帧数据写入操作之后,写地址切换到单元B,此时,数据读出控制单元控制读地址指向单元A(上一次写入的缓存区域),并执行读操作读出上一次写入的数据帧。单元B写操作完成后,写地址切换到单元C(写地址切到未被读写地址指向的缓存区域)。单元A读操作完成后,读地址切换到单元B,以此往复。
由于写入和读出速率不同,必然会存在误差,本发明正是采用上述机制消除了误差的积累,保证了读出数据连续。具体原理如下:
当读出速率比写入速率更快时,参见图5所示,当对单元A的读操作完成时,对单元B的写操作还未完成,此时,上一次写入的区域仍然是单元A,读操作会再次对单元A进行读出,也即对同一帧数据读出了两次。因此,当读出速率快于写入速率时,采用重复输出一帧数据的方式来消除时钟速率偏差造成的不同步问题。当写入速率比读出速率更时,由于存在速度差,误差不断积累,总在某一时刻会出现图6的情况,对单元A的读操作未完成时,写操作连续对单元B和C进行写入,而此时,读地址指向单元A,写地址指向单元C,由于读地址迟迟未切换,虽然单元B的数据未被读出,但写地址永远切到未被读写地址指向的区域,写地址被切换到单元B对该单元的数据进行覆盖。也即,当写入速率快于读出速率时,覆盖一帧数据的方式来消除误差的积累,使输入输出重新同步。
在一种优选实施方式中,还包括存储单元,存储单元采用DRAM,各个通道的缓存单元为开辟在所述存储单元不同区域的存储空间,采用直接内存存取技术实现数据缓存。
在一种优选实施方式中,数据写入控制单元和数据读出控制单元集成设置在CPU中。
以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.非同源时钟数据传输系统的数据恢复方法,发送端将多路并行数据封装为串行数据并通过光纤传输至接收端,其特征在于,接收端执行至少如下步骤:
步骤S1:获取串行数据;
步骤S2:将串行数据解包分发为多路并行数据;
步骤S3:在每个并行通道中,将数据逐帧写入缓存;
步骤S4:以本地时钟为基准逐帧读取缓存数据;
步骤S5:并行输出所有通道数据;
其中,每个通道的缓存至少开辟三帧缓存空间,并设置如下读写机制:在地址切换时,写地址永远切到未被读写地址指向的区域,读地址永远切到上一次写入的区域。
2.根据权利要求1所述的非同源时钟数据传输系统的数据恢复方法,其特征在于,所述接收端至少包括串行数据获取单元、通道处理单元以及输出单元,其中,
所述串行数据获取单元用于获取光纤上传输的串行数据;
所述通道处理单元用于同步该通道的数据;
所述输出单元用于输出同步后的通道数据;
所述通道处理单元至少包括数据写入控制单元、数据读出控制单元、缓存单元、本地时钟和通道输出单元,其中,
所述缓存单元用于至少开辟三帧数据空间以缓存通道数据;
所述数据写入控制单元用于将通道数据逐帧写入缓存;所述数据读出控制单元用于以本地时钟为基准从缓存单元中逐帧读取数据;其中,数据写入控制单元和数据读出控制单元同时对缓存单元执行数据写入操作和数据读出操作,并设置如下读写机制:在地址切换时,数据写入控制单元控制写地址切到未被读写地址指向的缓存区域,数据读出控制单元控制读地址切到上一次写入的缓存区域;
所述本地时钟采用与发送端同型同频的晶振;
所述发送端设置并串转换单元,所述并串转换单元用于将多路并行数据封装为串行数据。
3.根据权利要求2所述的非同源时钟数据传输系统的数据恢复方法,其特征在于,所述接收端还设置数据解包单元,所述数据解包单元用于将接收到的串行数据解包分发为多路并行数据至每个数据通道。
4.根据权利要求3所述的非同源时钟数据传输系统的数据恢复方法,其特征在于,每个数据通道独立设置一通道处理单元。
5.根据权利要求3所述的非同源时钟数据传输系统的数据恢复方法,其特征在于,各个数据通道共享同一通道处理单元。
6.根据权利要求4所述的非同源时钟数据传输系统的数据恢复方法,其特征在于,每个数据通道采用同一本地时钟。
7.根据权利要求4所述的非同源时钟数据传输系统的数据恢复方法,其特征在于,还包括存储单元,各个通道的缓存单元为开辟在所述存储单元不同区域的存储空间。
8.根据权利要求7所述的非同源时钟数据传输系统的数据恢复方法,其特征在于,所述存储单元采用DRAM。
9.根据权利要求2所述的非同源时钟数据传输系统的数据恢复方法,其特征在于,所述数据写入控制单元和数据读出控制单元集成设置在CPU中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210814401.5A CN115203091A (zh) | 2020-08-20 | 2020-08-20 | 非同源时钟数据传输系统的数据恢复方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210814401.5A CN115203091A (zh) | 2020-08-20 | 2020-08-20 | 非同源时钟数据传输系统的数据恢复方法 |
CN202010845938.9A CN112052204B (zh) | 2020-08-20 | 2020-08-20 | 非同源时钟数据传输系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010845938.9A Division CN112052204B (zh) | 2020-08-20 | 2020-08-20 | 非同源时钟数据传输系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115203091A true CN115203091A (zh) | 2022-10-18 |
Family
ID=73600108
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010845938.9A Active CN112052204B (zh) | 2020-08-20 | 2020-08-20 | 非同源时钟数据传输系统 |
CN202210814401.5A Withdrawn CN115203091A (zh) | 2020-08-20 | 2020-08-20 | 非同源时钟数据传输系统的数据恢复方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010845938.9A Active CN112052204B (zh) | 2020-08-20 | 2020-08-20 | 非同源时钟数据传输系统 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN112052204B (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7475187B2 (en) * | 2005-09-15 | 2009-01-06 | Infineon Technologies Ag | High-speed interface circuit for semiconductor memory chips and memory system including the same |
CN101236528A (zh) * | 2008-02-20 | 2008-08-06 | 华为技术有限公司 | 一种乒乓控制的方法及装置 |
CN104021097A (zh) * | 2013-03-01 | 2014-09-03 | 中兴通讯股份有限公司 | 数据传输方法、装置及直接存储器存取 |
US9367286B2 (en) * | 2013-08-28 | 2016-06-14 | Imagination Technologies Limited | Crossing pipelined data between circuitry in different clock domains |
CN106301746A (zh) * | 2015-05-28 | 2017-01-04 | 深圳市中兴微电子技术有限公司 | 时钟恢复方法及装置 |
CN106301659B (zh) * | 2015-06-05 | 2018-05-15 | 华东师范大学 | 一种磁共振多通道数字传输系统及其数据传输方法 |
CN108063616B (zh) * | 2018-01-24 | 2024-05-03 | 上海先基半导体科技有限公司 | 一种基于过采样的非同源时钟数据恢复系统 |
CN111400205B (zh) * | 2020-02-29 | 2022-05-24 | 华南理工大学 | 一种先进先出地址轮询缓存读写方法、系统及装置 |
CN213069802U (zh) * | 2020-08-20 | 2021-04-27 | 浙江树人学院(浙江树人大学) | 非同源时钟数据传输系统 |
-
2020
- 2020-08-20 CN CN202010845938.9A patent/CN112052204B/zh active Active
- 2020-08-20 CN CN202210814401.5A patent/CN115203091A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
CN112052204A (zh) | 2020-12-08 |
CN112052204B (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7251714B2 (en) | Method and system for capturing and bypassing memory transactions in a hub-based memory system | |
EP0870303B1 (en) | High performance universal multi-port internally cached dynamic random access memory system, architecture and method | |
CN112104819B (zh) | 一种基于fpga的多路视频同步切换系统及方法 | |
CN105553636B (zh) | 一种余度模式fc发送通道帧同步电路及方法 | |
CN109446132A (zh) | 一种接口总线装置及数据通信协议 | |
CN104978150A (zh) | 存储器装置的控制方法、存储器装置和存储器系统 | |
JP2001222465A (ja) | ネットワーク・プロセッサのためのdramデータ記憶及び移動 | |
US6119243A (en) | Architecture for the isochronous transfer of information within a computer system | |
CN115103208A (zh) | 一种视频数据的行缓存方法、行读取方法及处理系统 | |
CN102497544B (zh) | 一种对视频信号的存取进行控制的装置 | |
CN213069802U (zh) | 非同源时钟数据传输系统 | |
US7027547B1 (en) | Method and apparatus for matching transmission rates across a single channel | |
CN112052204B (zh) | 非同源时钟数据传输系统 | |
JP2023547185A (ja) | Serdesインタフェース回路 | |
CN108134912A (zh) | 一种视频流转换方法 | |
CN110705195A (zh) | 一种基于fpga的跨时钟域深度自行配置fifo系统 | |
CN102497514B (zh) | 一种三通道视频转发设备和转发方法 | |
US20040133710A1 (en) | Dynamic configuration of a time division multiplexing port and associated direct memory access controller | |
US7248663B2 (en) | Apparatus and method for transforming data transmission speed | |
CN115037847A (zh) | 一种基于数据包交换的视频数据交换方法及系统 | |
CN111970499B (zh) | 一种基于rgif vdma的多路3g-sdi光端机数据解复用方法 | |
CN114449178A (zh) | 视频信号传输控制方法及视频信号传输系统 | |
CN107608654B (zh) | 多路异步信息的传输控制装置及方法 | |
US7899955B2 (en) | Asynchronous data buffer | |
US8312208B2 (en) | Memory access controller and method implementing packet processing |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20221018 |