0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

高速实时数据传输的接收、存储、处理系统设计

电子设计 来源:郭婷 作者:电子设计 2019-01-07 09:35 次阅读

引言

信息时代的日新月异,催促着各种各样的数据信息快马加鞭,人们在要求信息传输得越来越快的同时,还要求信息要来得更加及时,于是高速实时的数据传输就成为了电子信息领域里一个永远不会过时的主题。但是,可以清楚地看到,当今动辄成百上千兆的数据流一股脑的涌入,任何一个高速数据传输系统的稳定性和安全性等方方面面的问题都面临着极大的挑战,稍有考虑不周之处就会引起各种各样的问题,因此如何能安全高效的对高速数据进行实时接收、存储、处理和发送正是此次设计方案的目的。

2.设计方案的硬件选定

鉴于当前高速数据传输系统的设计方案大多是现场可编程门阵列(FPGA)加片外存储介质( SDRAM、SRAM、DDR等)的组合,于是本次设计方案同样采用这种组合方式,具体为一片 FPGA、三片静态存储器( SRAM)和一片高速数据传输芯片。 FPGA具有管脚多、内部逻辑资源丰富、足够的可用 IP核等优点,用作整个高速数据传输系统的控制模块极为合适,此次方案中选用 Altera公司的高性价比 Cyclone[2]系列 FPGA;静态存储器具有昀大的优点就是数据读取速度快,且控制信号简单易操作,昀适用于高速数据存储介质,方案选用 ISSI公司的 IS61LV51216型号的静态存储器 [3],其处理速度和存储容量满足系统设计的需要;TI公司的 TLK1501[4]是此次设计选用的高速数据传输芯片,其传输能力十分强大,不仅能满足当前设计的传输速度需要,还留有充分的带宽余量,为以后的系统改进提供了条件。上述三种芯片是此次高速数据传输系统所要用到的主要组成部件,其具体连接方式等问题不作讨论。

3.具体设计方案

实现整个数据流从接收、存储、转换直到发送的过程由图一可以看出,在接收端经由 DVI解码芯片传输的解码数据包含 24bit并行像素数据和三个同步信号——像素时钟 Pclk、数据使能信号 DE以及场同步信号 Vsy,fpga内部的写缓冲区控制器则会根据以上三个数据同步信号生成写缓冲区的写入地址,控制 24bit的像素数据信号存入写缓冲区中,并会在一段时间后向内存控制器发送读请求( wcache_rreq)以读出写缓冲区内的已写入数据,写缓冲区是由 fpga自带的 M4K块配置生成的双端口 RAM结构[2],采用乒乓操作,这样整个内存读取和缓冲区写入过程是各自独立进行的,保证所写入数据的完整性,内存控制器在接收写缓冲区控制器发送的读请求后,按照相应的写缓冲区地址读取数据,并将其写入片外静态存储器中,以上为像素数据的接收和存储过程;在发送端,帧同步产生及高速数据传输控制器通过 fpga自带的锁相环产生数据时钟 Dclk、帧同步 Fsy等信号,使读缓冲区控制器产生对读缓冲区的读取地址,读缓冲区控制器在产生读地址的同时,还会在一段时间间隔后向内存控制器发送写请求( rcache_wreq)以向被读过的读缓冲区部分写入新数据,同样读缓冲区也是双端口 RAM结构,采用乒乓操作,保证被发送数据的连续完整,被读出的 24bit数据经过一个 24bit/16bit数据转换器转换为 16bit并行数据之后才能输出给高速数据传输芯片,而内存控制器在接收读缓冲区控制器的写请求后在片外静态存储器中读出相应地址的数据写入读缓冲区中,这样整个数据的接收、存储、转换到发送的过程得以实现。

高速实时数据传输的接收、存储、处理系统设计

3.1 写缓冲区控制器的设计

由 DVI解码芯片输入给 fpga的像素时钟信号 Pclk、数据使能信号 DE以及场同步信号 Vsy表示 24bit并行像素数据的同步信息。例如: 1024×512显示分辨率的图像,则在每两个场同步信号 Vsy脉冲之间有 512个“DE=1”的数据有效信号,而在每个“ DE=1”的数据有效信号中有 1024个 Pclk像素时钟信号,如此可将输送的像素数据同步。

写缓冲区控制器直接接收输入的 DVI数据同步信号,在每个 Vsy脉冲来时将写缓冲区写入地址清零,然后在“DE=1”时写缓冲区控制器内的地址计数器计数有效,在每个 Pclk上升沿进行计数加 1操作,这样在每个 DE有效时会产生一行的像素数据地址,再到下一个DE有效时地址计数器又会重新计数,如此循环,而写缓冲区会按照对应的地址将输入的 24bit并行像素数据同步写入缓冲区内。写缓冲区控制器会在地址计数器计数到半行数据地址的时候,向内存控制器发送写缓冲区读请求信号( wcache_rreq)和相应缓冲区地址,要求内存控制器对已写入的半行像素数据以 48bit并行数据格式进行读取,由于内存控制器的等效操作时钟远远高于写缓冲区的写入时钟,因此内存控制器会迅速的将已写入的半行数据读出并停止读数,等待下一个 wcache_rreq的到来,如此便形成了对写缓冲区的乒乓操作,保证了输入像素数据的正确和连续接收,避免产生像素数据漏接和不同步的现象。读缓冲区控制器的设计思路同上,不再赘述。

3.2 内存控制器的设计

内存控制器里包含主状态机和内存控制模块,如图二所示,主状态机负责对两个缓冲区和片外静态存储器的读写状态控制,共有四个状态——空闲状态、写缓冲区读取状态、读缓冲区写入状态和读写交替状态,用于控制状态机状态转移的信号包括:写缓冲区读请求信号(wcache_rreq)、写缓冲区读取完成信号( r_over)、读缓冲区写请求信号( rcache_wreq)以及读缓冲区写入完成信号 (w_req)。状态机在没有任何操作请求下处于空闲状态,而当其接收到“wcache_rreq”信号时,状态就会随之变为写缓冲区读取状态并进行相应操作,而当读取操作完成后会有“ r_over”信号传入状态机,状态机又会转入空闲状态等待下一信号进入,而当状态机处于写缓冲区读取状态时接收到了“ rcache_wreq”信号,则状态机转入读写交替状态,此时会对写缓冲区和读缓冲区进行交替操作,一旦有一个缓冲区操作完成时会输入相应的操作完成信号,此时状态机即转入对另一缓冲区的单独操作直至操作完成再次进入空闲状态。整个状态转移过程保证了对读写缓冲区操作请求的及时响应,杜绝了由于状态冲突导致的漏操作现象。

高速实时数据传输的接收、存储、处理系统设计

系统选用的片外静态存储器的地址总线为 19 位,数据总线为16 位,经公式(1)计算 可知采用三片内存的总容量正好可以存储两场1024×512 显示分辨率的图像,这样可以对存 储器进行乒乓操作,在存储器内写入一场数据,读取另一场数据,两者交替独立进行。

内存控制模块负责对片外存储器进行控制,其控制信号是两个低电平有效信号[3]:nWE 和nCS。nCS 为片选信号,当为高电平时存储器处于非工作状态,此时不能对存储器进行任 何操作,低电平时为正常工作状态,可以进行读写操作;nWE 为存储器写入信号,当置为 低电平时可以对存储器执行写入操作,置为高电平时则可以对存储器执行读取操作。内存控 制模块按照主状态机的当前状态来设定两个控制信号的高低电平对片外存储器进行控制。图 三为在QuartusII 硬件开发平台上通过逻辑分析仪实际采样出来的片外静态存储器工作时序 波形图[6],以中图为例,存储器由写入状态转为读取状态,存储器的地址总线信号和数据总 线信号的变化就可看出存储器状态的变化,在写入状态时地址总线按时钟周期发生变化,同 时会有48bit 并行数据写入相应内存地址中,而在存储器进入读取状态后,地址总线则变为 读取地址,存储器则会在延迟地址总线一个时钟周期后将48bit 数据经由数据总线读出。

高速实时数据传输的接收、存储、处理系统设计

3.3 24bit/16bit数据转换器的设计 [5] [6]

片外高速数据传输芯片为 16位输入数据总线 [4],而由 fpga内部读缓冲区读出的是 24位并行数据,因此需要将 24bit数据转换成 16bit数据再输出。考虑到传送 12个 16bit数据可以等效为 8个 24bit数据,故将数据输出时钟 Dclk用一个 0~11的计数器进行计数,然后取其中的 8个连续时钟读取 24bit数据,这样就解决了 16bit数据和 24bit数据在传输上时钟不匹配的问题。读取的 24bit数据随后被分成两个 12bit数据依次装入 16个 12bit移位寄存器中,再由 Dclk一位一位打出并拼装成 16bit数据,发送给帧同步产生及高速传输芯片控制器进行码头加载,将自己编写的 16bit数据头校验码以及其他一组信息码插入数据流中输出给高速数据传输芯片,完成整个数据转换和发送过程。

4.实际测试结果

用 TLK1501高速数据传输芯片集成的数据接收端口接收其发送端传输的高速串行数据流,在芯片内部自解码之后再恢复成 16bit数据传给 fpga,通过比对发送数据和接收数据的一致性就可以对逻辑设计、时序等方面进行验证,以保证设计正确。在实际测试时,用一组设计好的 24bitDVI数据取代实际传输的像素信号,而其他同步信号则仍为实际 DVI同步信号,这样做的目的就是可以对发送数据进行控制,方便与接收数据进行比对,设计的发送数据为一串依次加“1”的规律 24bit数,因此如果接收回的数据信号仍为依次加 “1”的 24bit数,则说明逻辑设计和时序方面没有问题,设计方案可以用于实际操作中。

高速实时数据传输的接收、存储、处理系统设计

图四上为发送数据波形图,图六下为接收数据波形图。由图中对比可以看出,接收数据同发送数据均为依次加“1”的 24bit数据,实际测试结果证实整个高速实时数据传输系统设计满足设计要求,可以用于实际操作中。

5.结语

本系统在实际测试中,发送端数据时钟为 40MHz,由于高速数据传输芯片——TLK1501[4]可以传输 20倍频的串行数据流,因此实际在信道中传输的数据速度可以达到 800MHz,如此高的传输速度可以满足一般情况下的工程要求,而且本系统由于所选片外存储器的容量和操作速度上限制,没能将 TLK1501高速传输的特点充分发挥出来,相信在系统改进之后,传输速度达到 1G甚至更高的实时数据应该可以实现!

本文作者创新点:提出了一种片外 sram地址空间转换模式,将一维的存储空间抽象为二维存储,可以使视频象素点与存储空间一一对应;提出了一种 24bit/16bit转换模块设计方式。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1626

    文章

    21674

    浏览量

    601936
  • 芯片
    +关注

    关注

    454

    文章

    50438

    浏览量

    421913
  • 存储器
    +关注

    关注

    38

    文章

    7454

    浏览量

    163613
收藏 人收藏

    评论

    相关推荐

    如何使实时数据采集处理系统保持数据高速传输

    当前,越来越多的设计应用领域要求具有高精度的A/D转换和实时处理功能。在实时数据采集处理系统设计中,一般需要考虑数据采集以及对采集数据
    的头像 发表于 12-17 09:10 6719次阅读
    如何使<b class='flag-5'>实时数据</b>采集<b class='flag-5'>处理系统</b>保持<b class='flag-5'>数据</b>的<b class='flag-5'>高速</b><b class='flag-5'>传输</b>

    实时视频数据传输接收端缓存区的设计

    【作者】:盖晓娜;陈名松;曾欣旖;【来源】:《电子设计工程》2010年02期【摘要】:研究基于RTP/RTCP协议的实时视频数据传输系统。对接收端视频切帧
    发表于 04-24 09:31

    [每周一练]USB高速数据实时传输与显示存储系统(0106-0112)

    本帖最后由 sushu 于 2014-1-6 00:31 编辑 高速数据实时传输与显示存储系统1、功能简介上位机软件通过USB总线获取基于FPGA的
    发表于 01-04 19:40

    基于FPGA的高速LVDS数据传输

    22.4Gbps(Kintex-7).2. 1对LVDS接收时钟+16对LVDS接收数据.本人可以提供FPGA源代码.同时还可以在Xilinx评估板ML555/ML605/KC705上演示验证.如有
    发表于 03-01 18:47

    基于FPGA+USB3.0接口的高速数据传输系统设计

    1 引言高速数据传输系统在通信系统、测试仪器等电子系统中有着广泛应用,人们对数据传输
    发表于 08-09 14:18

    实时数据处理系统有什么特点?

    ,传统的单一DSP的架构已经不能完全满足人们的需求。实时数据处理系统的出现势在必行,那大家知道其有什么特点吗?
    发表于 07-31 07:53

    基于FPGA高速实时数据传输系统设计方案

    DVI[1]接口标准作为新一代的数字显示技术通讯标准,以全数字化的数据码流在传输信道上传输,本文针对DVI 接口标准提出了一种基于FPGA 的高速
    发表于 09-22 10:12 15次下载

    基于FPDP的高速数据传输系统设计

    基于FPDP的高速数据传输系统设计 随着电子技术的高速发展,越来越多的信号处理系统,需要高速
    发表于 12-01 09:41 2142次阅读
    基于FPDP的<b class='flag-5'>高速</b><b class='flag-5'>数据传输</b><b class='flag-5'>系统</b>设计

    基于PCI总线和DSP的实时图像采集与处理系统

    摘要:以开发的实际系统为背景,论述了基于PCI总线和DSP的实时图像采集与处理系统的硬件及软件设计方案和实现方法。系统以数字CCD相机为图像采集设备,利用PCI总线的
    发表于 02-25 23:24 40次下载

    SOPC实现的PCI总线高速数据传输系统

    本文提出一种采用可编程片上系统SOPC实现侦察接收机PCI总线高速数据传输系统的设计方案。
    发表于 02-10 11:20 1469次阅读
    SOPC实现的PCI总线<b class='flag-5'>高速</b><b class='flag-5'>数据传输</b><b class='flag-5'>系统</b>

    一种反射内存网实时数据传输协议

    为了解决铁鸟试验台飞机仿真试验中多系统间的数据共享问题,使数据传输过程中具有更强的实时性、高效性和异常诊断性,提出了一种反射内存网
    发表于 11-10 10:05 11次下载
    一种反射内存网<b class='flag-5'>实时数据传输</b>协议

    基于C8051F060和USBl00模块实现高速实时数据传输和采集系统的设计

    模块进行各种操作。由于有些工业现场需要对现场的模拟量进行高速A/D数据采集,目前常用的数据传输网络(如RS232/RS485,CAN等)已经不能满足大量采集数据
    发表于 07-31 15:59 1231次阅读
    基于C8051F060和USBl00模块实现<b class='flag-5'>高速</b><b class='flag-5'>实时数据传输</b>和采集<b class='flag-5'>系统</b>的设计

    基于Cyclone系列FPGA和片外存储介质的高速数据传输系统的设计

    清楚地看到,当今动辄成百上千兆的数据流一股脑的涌入,任何一个高速数据传输系统的稳定性和安全性等方方面面的问题都面临着极大的挑战,稍有考虑不周之处就会引起各种各样的问题,因此如何能安全高
    发表于 08-19 16:32 835次阅读
    基于Cyclone系列FPGA和片外<b class='flag-5'>存储</b>介质的<b class='flag-5'>高速</b><b class='flag-5'>数据传输</b><b class='flag-5'>系统</b>的设计

    基于DSP+FPGA+ARM的架构实现高速多路数据传输系统的设计

    随着集成电路技术的发展,FPGA和DSP以及ARM以其体积小、速度快、功耗低、设计灵活、利于系统集成、扩展升级等优点,被广泛地应用于高速数字信号传输数据处理,以DSP+FPGA+AR
    的头像 发表于 04-24 09:04 5316次阅读
    基于DSP+FPGA+ARM的架构实现<b class='flag-5'>高速</b>多路<b class='flag-5'>数据传输</b><b class='flag-5'>系统</b>的设计

    波特率对实时数据传输的影响

    在现代通信系统中,实时数据传输是至关重要的。无论是工业自动化、远程医疗、在线游戏还是物联网(IoT)应用,都需要快速、可靠的数据传输来保证系统的正常运行和用户体验。 波特率的定义 波特
    的头像 发表于 11-22 10:03 113次阅读