高速视频信号的光纤传输系统设计

http://tech.ddvip.com   2007年09月27日    社区交流 收藏本文

内容摘要:针对1000帧/秒高速摄影传输系统需实现数据输出速率600MBps的长距离传输难题,提出了采用CIMT编码方式的光纤数字化传输设计方案。整个系统主要包括数字信号的多路复用、解复用以及PCI数据传输卡三部分。详细阐述了系统的原理及硬软件实现方法,设计实现了两路高速视频数字化信号的15公里远距离传输和计算机实时显示。

  结合Verilog语言与原理图(sch)方法,较好地实现了整个系统时序的设计。以下是40路数字信号8?押1复用Verilog语言设计代码。

  Module parrelserial (Data, clock, EN, OutData);
   input [0:8] Data ;input clock ;input EN;
   output OutData ;reg [0:8]Data;
   reg [0:3]count;reg OutData;
   always @(posedge clock)
   begin
     if(EN)
       count=0;
     else
       begin
        OutData=Data[count];
        count=count+1;
        if(count>8)count=0;
       end
     end
   endmodule

   3 软件设计

  整个系统软件主要包括PCI传输单元的驱动程序和系统应用程序设计。

  Windows下的PCI驱动程序不仅仅包括物理设备的驱动程序,也包括为文件系统等非物理设备编写的虚拟设备驱动程序。在设计中主要针对Windows2000下PCI驱动程序设计。由于Windows 2000禁止用户模式的程序访问I/O端口(Windows 95/98则允许用户程序直接访问I/O端口),直接控制物理设备的驱动程序均为内核模式。而本设计的PCI驱动程序要求对各种硬件资源访问,所以应该选择工作在零级的驱动程序模式。

  开发设备驱动采用的主要开发工具是JUNGO公司提供的软件包Windriver。这个软件包提供开发PLX9052有关设备的文档、编译需要的头文件和库文件、调试工具和程序范例。利用其内部定义的可以调用的系统底层服务,如DMA服务、中断服务、内存管理服务、可安装文件系统服务等,结合VC++完成整个PCI设备驱动程序。本设计包括以下几个方面:

  (1)PCI设备初始化

  PCI设备驱动程序首先实现识别PLX9052器件、寻址PLX9052器件的资源和对PLX9052器件中断的服务。主要调用Windirver软件包内以下函数:

   WD_Open(hWD);
    PCI_Get_WD_handle(&hWD);
    PLX_LocateAndOpenBoard(0x10b5, 0x9052, UseInt);

   (2)PCI端口地址操作

  PCI总线是32位的总线标准,在进行I/O操作时通常要进行双字(DWORD)操作,而在Windows 2000下,系统不允许处于优先级3的用户程序和用户模式驱动程序直接使用I/O指令。任何对I/O的操作都需要借助内核模式驱动来完成。笔者主要调用Windirver软件包内两个函数来完成。

  IO_ReadByteString(DWORD dwIOAddr, PBYTE pBuf, DWORD dwBytes);

  IO_WriteByteString(DWORD dwIOAddr, PBYTE pBuf, DWORD dwBytes);

  (3)内存的读写

  PLX9052与计算机进行数据通信主要采取DMA方式,在Windriver中提供了相应内存读取两个函数,通过对它的调用可实现PLX9052与计算机内存的数据交换。

  IO_Read32BitRegister(DWORD dwAddr);

  IO_Write32BitRegister(DWORD dwAddr, DWORD dwData)?鸦

  整个系统的应用程序研制都基于微软公司的VC++开发设计,可用于Windows 2000 操作系统下。

  整个光纤传输系统利用复用、解复用,结合PCI技术实现了高速视频数字化信号远距离传输及控制、实时显示等功能,传输距离15km,可记录数据量为128K字节。目前已将设计用到相关的测试项目中,并将进一步改进扩大数据的容量及稳定性。

作者:阮林波 李斌康 郭明安 郝文析    责编:豆豆技术应用

正在加载评论...