一种基于PCI IP核的码流接收卡的设计

发布者:平凡幸福最新更新时间:2014-09-17 来源: eefocus关键字:PCI  IP核  码流接收卡  广播电视技术 手机看文章 扫描二维码
随时随地手机看文章

前言
    随着数字化广播电视技术的迅速发展和基于MPEG-2标准的图像压缩和复用技术的完善,利用PC对大容量信息的处理变得日益重要,如基于PC的软复用器的实现,使得通过PC接收DVB(数字视频广播)码流已逐渐成为一项不可替代的多媒体数据接收技术。因此,设计基于PC平台的DVB 码流接收卡是数字广播电视发展的需要。
由于DVB-ASI信号的平均传输速率为270 Mbps,而DVB传输流又要求保证接收的实时性,因此本文选择了PCI总线。33MHz、32位的PCI总线的数据传输速率最高可达133MBps, 完全可以满足高速实时传输的需求。选择了Altera公司的PCI编译器软件包来实现PCI接口控制电路。该软件包为PCI接口提供了一个完整的解决办法,包含了PCI控制电路的所有功能。用户可以通过修改参数生成所需的IP核模块,以设计自己的外部设备接口逻辑。本文选择了其生成的PCI_MT32功能模块。

系统硬件模块设计
    系统的硬件电路设计要求:能将传输速率为270 Mbps的串行DVB—ASI码流实时、无损地通过PCI接口传输到PC,以供PC上的应用程序做进一步处理。在操作和使用上要方便,在设计上要求结构紧凑、接口简单、性能可靠、易于升级。系统硬件框图如图1所示。

    从图中可以看出,由于使用了FPGA及PCI IP核,使整个硬件电路显得特别简洁。它主要由DVB码流输入模块和核心控制模块组成。串行DVB传输流经同轴电缆进入DVB码流输入模块,转换为8位并行输出。核心控制模块对并行数据进行缓存,并采用DMA方式传输给PCI总线,完成本地总线和PCI总线的可靠通信。

DVB码流输入模块
    本文选用ASI接口。ASI信号由同轴电缆经BNC接头输入,经过互感(用PE65508芯片)转换为PECL(正向发射极耦合逻辑)差分电平信号,再经过耦合电路,到达CY7B933的差分线输入端。 CY7B933是Cypress公司的一种用于点对点高速串行数据通信的接收芯片,它完成码流输入模块的核心功能。它有三种工作模式,这里选用它的解码模式对输入信号进行8B/10B解码和串并转换。最后输出经过字节对齐的8位并行TLL信号,输出的信号包括 MPEG-2传输流和作为同步字使用的逗号字符(在8B/10B传输码规则中定义为 K28.5专用字符),其输出速率恒定为27MBps。


图1 系统硬件框图

核心控制模块
    核心控制模块由FPGA控制电路和异步FIFO组成。主要完成对输入ASI信号的缓存和对PCI总线信号的控制的功能。其中最主要的部分是FPGA控制电路。基于整个系统的性能的考虑,选择Altera公司的EP1C12。这款芯片有12060个逻辑单元,52个RAM块等资源,完全可以支持本设计的要求。

    FPGA控制电路内部框图如图2所示,它是本设计的核心部分,对输入的ASI信号保留有效的DVB传输流,发送到FIFO输入端进行缓存。并将FIFO缓存后输出的数据用DMA传输方式通过PCI总线实现对PC内存的存取,同时利用FIFO的标志信号控制DMA传输过程。下面对FPGA控制电路的各模块进行介绍。

PCI_MT32功能模块
    本文在选择PCI接口芯片时,选择了Altera公司的PCI 编译器软件包,它可以参数化地生成用于PCI接口的IP核----MegaCore。这个可编译和综合的MegaCore有以下4种宏功能模块:PCI_MT64、PCI_MT32、PCI_T64和PCI_T32。它们都可以完成总线协议的转换,将复杂的、电气和时序要求高的PCI总线逻辑转换为易于操作的本地接口逻辑,遵循PCI总线协议2.2版,经过严格的工业级验证并支持多款优化FPGA。其中,PCI_MT32是支持33/66MHz工作频率、32位PCI总线、支持主/从模式的PCI IP功能模块。考虑到市场的需求,通常的PC主板都支持32位PCI,且在主模式下DMA控制器才能工作,因此选择了PCI_MT32。 本地信号都以l (local)开头,其中以lt_开头的是从控信号,以lm_开头的是主控信号。

    要使用PCI_MT32功能模块就要了解其配置寄存器,配置寄存器中的基址寄存器最为重要,PCI_MT32共提供了6个基址寄存器,可以映射6个存储器或I/O 空间。在操作系统启动前后,基址寄存器分别起到两个作用。在操作系统启动前,基址寄存器存放定义的空间长度。以使加电软件以确定在系统中有多少存储器以及系统中的 I/O 控制器要求多少地址空间,然后才可以把 I/O 控制器映射到合理的地址空间并引导系统。在操作系统启动后,基址寄存器又要起到存放基地址的作用,通过对要存取的基址寄存器用配置写操作写入基地址,再通过基地址加偏移量就可以访问想要存取的空间。


图2 FPGA控制电路内部框图

主控逻辑模块
    当PCI_MT32作为PCI总线主设备进行主模式操作时,主控逻辑模块对PCI_MT32本地侧信号进行控制以执行PCI主模式写事务,将FIFO的数据传送给从设备。同时还为DMA引擎提供PCI总线所处的状态,如总线是否处于数据阶段,是否有从设备终止等。

    模块的主要设计思路:当PCI总线仲裁器允许PCI_MT32成为总线主设备时,PCI_MT32功能模块在本地侧输出lm_adr_ackn信号,表明地址阶段开始,此时主控逻辑模块应在l_adi线提供PCI地址,并在l_cbeni线提供PCI命令。在接下来的数据阶段,如果本地侧数据已准备好,就使lm_rdyn(本地侧主设备准备好)信号有效,并在l_adi线提供数据,在l_cbeni线提供字节使能。如果从设备被选中且准备好,数据传输就开始了。最后,通过通知PCI总线当前周期是本地侧最后的数据阶段,在完成这次数据传输后就进入总线空闲状态,PCI_MT32不再是总线主设备,一次数据传输也就结束了。

从控逻辑模块
    当PCI_MT32作为PCI总线从设备进行目标事务操作时,从控逻辑模块对PCI_MT32本地侧信号进行控制。PC通过读本地侧相应寄存器,了解当前状态,通过对相应DMA寄存器的写操作,来启动DMA引擎。由于对寄存器的读写只用到目标单周期事务,且大部分信号由主机控制,从控逻辑相对简单。主要是保证在要存取的目标地址命中,且frame信号有效时,trdyn(从设备准备好)信号有效。


图3  DMA状态机流程图


DMA引擎模块
    DMA引擎模块由DMA寄存器、DMA状态机等模块构成,当PCI_MT32作为PCI总线主设备进行主模式写操作时,它与主控逻辑模块共同将FIFO缓存输出的数据通过DMA操作发送到PCI_MT32本地信号侧。 其中,DMA寄存器的地址直接映射到PCI的地址空间,其基地址由PCI_MT32中的配置寄存器Bar0决定。主机通过访问这些寄存器来控制DMA操作。寄存器包括控制状态寄存器、PCI地址寄存器和中断状态寄存器。DMA状态机模块流程如图3所示。

    以下对DMA状态机进行简要描述:状态机无数据传输时默认停留在空闲状态。当PC写控制状态寄存器中的启动位,就启动状态机,进入装载寄存器状态。自动装载PCI地址寄存器后进入等待请求状态。如果FIFO中的数据已经半满,进入请求状态申请占用PCI总线,接着进入等待允许状态,等待PCI设备获得总线的控制权。当PCI设备成为总线主设备,就进入准备状态。判断PCI总线的地址阶段结束将要进入数据阶段,则进入传输状态,进行数据传输。此时,如果从设备提出终止,则返回寄存器有效状态,根据情况重新申请总线的控制权;如果本次DMA数据传输结束或出现PCI异常中断、PCI系统错误、PCI奇偶校验错误、FIFO满等错误时,则分别进入结束状态或错误状态,写中断状态寄存器的相应位,同时发出中断信号。PC收到中断后,读中断状态寄存器确定中断类型,以进行下一步操作。最后返回空闲状态,并清除中断。


图4 PCI DMA传输仿真波形图


FIFO逻辑控制模块
    FIFO逻辑控制模块根据CY7B933输出的状态信号,删除同步字K28.5,只将有效的数据读入,并将数据送入异步FIFO缓存。当FIFO空、半满、满时,对相应寄存器进行操作或通知DMA引擎模块,以防止数据的溢出或空读。

    异步FIFO在核心控制模块中,主要起到两个作用。一是数据缓存,在系统进行DMA操作,将数据从ASI接口写入PC内存时,DVB-ASI数据仍在源源不断地输入系统,FIFO可以将这些数据缓存,以防止数据丢失。二是时钟隔离作用,输入的ASI信号时钟是27MHz,而PCI时钟达到33MHz,这就要求对两个频率不同的时钟进行同步,异步FIFO的数据输入和输出分别使用不同的时钟,从而实现时钟的隔离和无缝拼接。由于本设计对FIFO容量的要求较大,因此不采用Megafunction技术构造,而使用专门的高速FIFO芯片。

设计结果
    在Quartus-II中进行了vhdl源程序仿真。图4是用DMA方式进行PCI传输结果的仿真波形图。其中ASI_D为模拟输入的8位ASI码流,在对相应的DMA寄存器进行操作后,启动DMA引擎,图中①处PCI_MT32通过拉低reqn信号发出总线占用请求信号,②处PCI总线仲裁器通过拉低gntn信号允许PCI_MT32成为主设备。③处进入地址阶段,PCI_MT32在ad线上提供地址,在cben线上提供总线命令。在接下来的多个数据阶段(图中④处),PCI_MT32在ad线和cben线上分别提供ASI_D输入的数据和字节使能,由于输入ASI信号是8位,而ad线为32位,因此利用ad信号的低8位来传输数据,可见,输出数据与ASI_D输入的数据相同。由于DMA传输长度的关系,本图最后通过模拟从设备断开(图中⑤处),终止了这次传输。由于DMA传输没有结束,在终止后,DMA状态机根据判断状态,还会自动继续传输。从图中可以看出,framen、irdyn、trdyn、devseln等接口控制信号完全符合PCI时序的要求。实现了将ASI信号通过PCI总线与PC进行实时数据传输的目的。图中32位ad信号的高位没有得到充分利用,如果需要,可以很方便地利用它们将电路升级为两路或4路的多路DVB-ASI码流接收卡。如果使用支持64位PCI总线的PCI_MT64功能模块,则最多可以实现8路ASI信号的接收。

结语
    本系统采用FPGA加PCI IP核的模式实现对高速、大容量DVB传输流的实时传输,实现了系统设计的目标。选择PCI总线可以保证在足够的带宽下进行数据传输。FPGA的应用易于在线升级电路,扩充平台的功能。IP核的使用使硬件电路更为简洁、可靠。经过验证,本文设计的系统可以很好地实现DVB-ASI信号的接收功能,同时,也可以作为其它DVB-ASI应用的基础平台,有着良好的应用前景。

关键字:PCI  IP核  码流接收卡  广播电视技术 引用地址:一种基于PCI IP核的码流接收卡的设计

上一篇:科技狂人把手改造成智能开关:有图有真相
下一篇:基于FPGA和MV-D1024E相机的图像采集系统

推荐阅读最新更新时间:2024-05-02 23:11

PCI设备WINDOWS驱动程序的开发
本文主要介绍了在Windows9x操作系统下开发PCI设备驱动程序的方法。 关键词:PCI设备 驱动程序 PCI设备概述 近几年来,随着诸如图形处理、图像处理、三维动画技术的发展,计算机与外设通信需要处理的数据量迅速增加,基于ISA总线的通信方式已经不能满足高速数据传输的要求,PCI局部总线的引用就是为了打破高速数据传输的瓶颈。PCI总线的英文全称是:Peripheral Component Interconnect Special Interest Group,简称PCISIG,即外部器件互连。PCI是先进的高性能局部总线,可同时支持多组外围设备,具体表现在: (1) 以33MHz的时钟频率操作,(2) 采用32位数据总线,
[模拟电子]
基于Wishbone总线的UART IP核的设计
     随着集成电路与嵌入式技术的发展与广泛应用,许多嵌入式系统都需要进行串行通信,因此在片上嵌入式系统芯片中集成uART(通用异步接发装置)的IP核已成为一种趋势。   在基于IP核复用技术的集成电路设计中,片上总线的选取是最为关键的问题。目前,许多厂商已经开发了适用于各自片上总线标准的UART IP核,例如基于AMBA总线的UART IP核、基于CoreCONnect总线的UART IP核等。如果用户要使用这些商业化的UART核,则需要得到授权。因此从成本、性能、开放性的角度来看,采用开源、易于实现的Wishbone总线标准设计出的UART IP核将会拥有广泛的市场。    1 UART IP核的设计原理   1
[嵌入式]
基于ARM的IEEE802.11bMAC层协议IP核设计
摘要:介绍了IEEE 802.11b MAC层协议IP核设计,提出了基于32位微处理器ARM7DMI的系统设计方案,阐述了系统硬件平台的设计、结构及主要模块单元的功能;给出了利用形式描述语言SDL进行MAC层协议设计开发的完整设计流程;阐述了软件的层次结构,并针对设计中遇到的代码生成器的选择、设计优化、与实时操作系统(RTOS)的集成和环境函数编写等问题进行了深入讨论。 关键词:ARM 802.11, IP 目前各种协议的设计实现,大多数是基于微处理器、微控制器或DSP的嵌入式系统。ARM是ARM公司推出的高性能32位RISC微处理器,具有业界领先的体系结构,被广泛6应用于各种系统设计中。基于ARM的开发通常使用C、C++或
[应用]
一种基于CPLD的单片机与PCI接口设计解决方案
   0 引言   8位单片机在嵌入式系统中应用广泛,然而让它直接与PCI总线设备打交道却有其固有缺陷。8位单片机只有16位地址线,8位数据端口,而PCI总线2.0规范中,除了有32位地址数据复用AD 外,还有FRAME、IRDY、TRDY等重要的信号线。让单片机有限的I/O端口来直接控制如此众多的信号线是不可能的。一种可行的方案就是利用CPLD作为沟通单片机与PCI设备间的桥梁,充分利用CPLD中I/O资源丰富、用户可自定制逻辑的优势,来帮助单片机完成与PCI设备间的通信任务。   1 PCI接口设计原理   1.1 PCI总线协议简介   这里只讨论PCI总线2.0协议,其它协议仅仅是在2.0的基础上作了一些扩展
[嵌入式]
用0.18um CMOS设计2.5Gb/s收发器的复用器电路
   1 引言   近年来,随着传统电信业务和互联网业务的迅猛发展,它们对网络带宽提出了越来越高的要求,由此导致了高速串行接口的出现。目前国内关于2.5 Gb/s超高速串行收发器CMOS芯片及IP核研究开发尚处于起步阶段。设计开发具有自主知识产权的高性能串行收发器芯片及IP核,打破国外对高端路由器、交换器芯片的垄断,不仅能够直接大幅度降低通信、网络设备成本,产生显著的经济效益,还能带来巨大的社会效益。本文所设计的复用器,应用在2.5Gb/s收发器系统中,该收发器的系统框图如图1所示。 图1 Transceiver结构示意图   众所周知在高速的数据传输系统中,收发器对于实现整个系统的功能起着至关重要的作用。而在收发器系
[模拟电子]
PCI总线的组成结构
如上文所述,PCI总线作为处理器系统的局部总线,是处理器系统的一个组成部件,讲述PCI总线的组成结构不能离开处理器系统这个大环境。在一个处理器系统中,与PCI总线相关的模块如图1‑1所示。    如图1‑1所示在一个处理器系统中,与PCI总线相关的模块包括,HOST主桥、PCI总线、PCI桥和PCI设备。PCI总线由HOST主桥和PCI桥推出,HOST主桥与主存储器控制器在同一级总线上,PCI设备可以方便地通过HOST主桥访问主存储器,即进行DMA操作。 值得注意的是,PCI设备的DMA操作需要与处理器系统的Cache进行一致性操作,当PCI设备通过HOST主桥访问主存储器时,Cache一致性模块将进行地址监听,并根据监
[嵌入式]
安捷伦推出增强的PCI Express® 3.0接收机特性测试解决方案
2013 年 2 月 1日,北京――安捷伦科技公司(NYSE:A)在 DesignCon上展示增强的PCI Express® 3.0 接收机特性测试解决方案。 Agilent PCIe® 3.0 接收机特性测试解决方案可以提供完整、精确的接收机容限测试结果,同时最大程度地减轻研发人员的工作量。新型 J-BERT 软件(版本 7.40)在对 PCIe 3.0 接收机设计进行测试时,可以调整 128b/130b 编码后的填充符的长度(又称为 SKP 有序集,用于补偿收发端的时钟差异)。 借助安捷伦测试仪,半导体和计算机领域中的设计与测试工程师能够精确地表征和验证在 ASIC、插卡和主板中的 PCIe 接收机端口是否符合标准。 自
[测试测量]
PCI-PCI桥在线读写EEPROM的技巧
PCI-PCI桥启动时,一般需要从EEPROM预读取配置数据。更改EEPROM中的数据一般需要专用的烧结器,这给调试过程带来不便。尤其是采用表贴封装的EEPROM。本文以Intel公司的Dec21554PCI-PCI桥为例,介绍一种在线读写EEPROM的方法。 EEPROM选用的是ATMEL公司生产的AT93LC66,4Kbit,按512×8bit组织。AT93LC66与Dec21554的硬件连线如图1所示。 Dec21554提供了一组寄存器,用于访问外接的串行ROM。寄存器位于CSR(控制状态寄存器组)空间中,基地址是PCI配置头部Secondary BAR2寄存器的值,文中定义为base。寄存器包括: ①
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved