;
2.2 PCI传输单元设计 为实现高速视频信号的实时记录,设计中利用了PCI总线技术,PCI控制芯片采用PLX9052,它与FIFO相结合可以实现最高数据传输速率120MBps数字量输入。
PLX9052符合PCI2.1规范,支持低成本从属适配器。内部包括一个64字节的写FIFO和一个32字节的读FIFO,通过读写FIFOs,可实现高性能的突发式数据传输;其局部总线与PCI总线的时钟相互独立,局部总线的时钟频率范围为0~40MHz,PCI的时钟频率范围为0~33MHz;可以通过串行EEPROM提供PCI总线和局部总线的部分重要配置信息。PLX9052支持突发式内存映射传输和单周期的内存或I/O映射传输,利用32字节的直接从设备读FIFO和64字节的直接从设备写FIFO,映射在PCI内存和I/O空间中的地址由PCI基址寄存器设置。而且,局部映射寄存/b器允许将PCI地址空间转换为局部地址空间。图6是PLX9052与FIFO相互连接的电路图,FIFO采用IDT公司的IDT72205。
2.3 控制单元设计 整个设计的时序控制单元均由CPLD完成,在光发射端主要提供40路信号的2?押1
复用、数据的锁存及系统工作的时序信号;在光接收端主要为
解复用、FIFO和PLX9052提供相应的时序逻辑。本设计选用Xilinx公司的XC9572作为控制单元的核心芯片,结合它的在线编程功能,完成整个系统的时序调试与设计。
结合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设备驱动程序。本设计包括以下几个方面: