PAR &AP 【本文献信息】叶勇,沈三民,郭铮,等.基于PCI总线的高速串口通信卡的设计[J].电视技术,2013,37(3) 篓 基于PCI总线的高速串口通信卡的设计 叶勇,沈三民,郭铮,崔婧,苏虎平,张雪莲 (中北大学a.仪器科学与动态测试教育部重点实验室.b.中北大学电子测试技术重点实验室,山西太原030051) 【摘要】介绍了一种基于PCI总线的高速串口通信卡的设计,采用PLX公司的PCI9054作为PCI总线桥接芯片,FPGA作为本 地总线的控制器和系统主控单元,选用LVPECL电平单模双纤光收发一体模块0CM3723为串口传输介质。最后介绍了利用vis— ual c+++DDK进行设备驱动开发。该设计的高速串口通信卡,其通信速率可达80 Mbit/s,传输距离超过10 km。具有设计简 单、速率快、可靠性高、传输距离远等特点,已经成功运用于某航天遥测系统。 【关键词】PCI总线;高速串口通信;PCI9054 【中图分类号】TP274 【文献标志码】A Design of High-speed Serial Communication Based on PCI Bus YE Yong,SHEN Sanmin,GUO Zheng,CUI Jing,SU Huping,ZHANG Xuelian (a.Key Laboratory of Instrumentation Science&Dynamic Measurement,Ministyr fo Education; b.National Key Laboratoyforr Electronic Measurement Technology,North University fChoina,Taiyuan 030051,chia)n 【Abstract】A kind of high—speed data transmission system based on PCI bus is presented,which exploits a PCI bridge chip PCI9054 which produced by PLX company,FPGA as local bus controller and system control unit,data transmission with the external system through duplex fiber single mode PECL transceiver 0CM3723.At last.the use of visual C++&DDK for equipment driver development is introduced.Design of high-speed data transmission system,its communication rate of up to 80 Mbit/s,the transmission distance more than 10 km.It is simple in design,speed,high reliability,long distnce atransmission and other characteristics,is been successfully used in a space telemetry system. 【Key words】PCI Bus;high—speed seirla communication;PCI9054 PCI总线标准是一种将系统外部设备连接起来的总 线标准,它是Pc机中最重要的总线。其他设备例如:USB 总线、ISA总线等总线都挂接在PCI总线之上。如果时钟 采用33 MHz,它的传输速率可达132 Mbyte/s(PCI总线为 32位),对于64位PCI总线,其吞吐率能达到264 Mbyte/s 峰值…;64位66 MHz PCI总线,数据吞吐率理论值为 1青号收发单兀 —— 一 PCI接口 电路 PCI 插 槽 FPGA逻辑控制} == 中心控制逻辑单兀 PcI援口电路 上位机 图1 系统总体结构图 信号收发单元包括光模块与LVDS高速接口电路。 528 Mbyte/s。一般在PC机中,显卡、网卡都被设计成 LVDS高速接口可以确保数据传输的快速性,光模块解决 PCI总线设备,插于PCI插槽,有利于方便更换已坏 遥测系统的传输距离。本设计采用1对10位总线型低压 设备。 差分信号应用芯片组DS92LV1023(串行器)与 本文设计的基于PCI总线的高速串口通信卡,采用 DS92LV1224(解码器)。其中DS92LV1023可以将10位并 PLX公司的PCI9054作为PCI总线与本地总线的桥接芯 行CMOS或TrL数据转换为具有内嵌时钟的高速串行差 片,控制方便,实现简单。从硬件电路的设计,到软件的编 分数据输出;DS92LV1224则将输入的差分数据转换成并 写,再到驱动程序的撰写,本文将一一予以探讨。 行10位数据输出,同时内部锁相环可从串行数据中重建 l 系统硬件逻辑设计 并行时钟。因LVDS芯片组的差分电压摆幅为0.7 V,不 能直接与1.5~2.3 V电压差输入的光模块0CM3723直 基于PCI总线的高速串口通信卡的设计总体结构如 接相连,所以配合使用电缆驱动器CLC006与电缆均衡器 图1所示,整个通信卡可分为三部分:信号采集单元、中心 CLC014。可将电压摆幅提高到2 V,这样能使信号良好地 控制逻辑单元和PCI桥接电路。此卡插于PCI扩展槽中, 搭载在光模块,使传输距离得到极大改善 。 与Pc机进行通信。 PCI接口电路使用PLX公司的PCI9054,也是目前主 基金项目:国家自然科学基金重点项目(60871041) 82 《电视技术》第37卷第3期(总第404期)l投稿网址http:Ilwww.VideoE.on 墼 的固件编写,且PLX公司提供官方的驱动程序作为参考, 10 km以上。ARTS&APPLI C 应用蕤&器ATl |-■ ONS 流的PCI总线接口芯片之一,其逻辑控制简单,无需复杂 输速率与传输距离的瓶颈现象,可将高速通信距离提高到 可以大大缩短开发周期。此卡通过PCI总线与上位机通 信,可以实时进行监测和高速的数据存取。 LVDS是一种小振幅差分信号技术,使用低压(约 350 mV)差分信号传输数据。允许单个信道传输速率达 中心控制逻辑单元采用一片Xilinx公司的XC3S400 到数百兆比特每秒,其特有的低振幅及恒流源模式驱动只 作为逻辑控制器,其主要作用是作为本地总线的逻辑控 产生极低的噪声,消耗非常小的功率。其LVDS应用芯片 制单元与PCI总线通信、数据缓存及信号采集模块的控 组与电缆驱动器、电缆均衡器的连线图如图2所示。这里 制器,也是高速串口通信卡的主控芯片。FIFO存储器 与R 。为匹配电阻,大小为100 n。 作为数据缓存器,本设计采用XC3S400的内置块RAM 而光模块的使用,利用其良好的光电转换作用,可以 配置而成。系统采用40 MHz晶振,经FPGA内部的时 使传输距离提高到10 km以上。本设计选用LVPECL电 钟管理模块倍频得到80 MHz时钟,使得传输数率可 平单模双纤光收发一体模块0CM3723,其特点为:1)SC/ 达80 Mbit/s。 Fc插拔式光接口;2)单+3.3 v/+5 V供电;3)接口电平 1.1信号收发单元 兼容标准LVPECL电平;4)标准1×9管脚封装,引脚配置 进行串口通信时,数据流在信号线上传输必然产生 与Multi—source协议兼容;5)发射器件可选用工作波长为 信号的畸变,波特率与传输距离成为一对矛盾体。为此, 1 310 nm的FP激光器或1 550 nm DFB激光器;6)接收采 本文提出LVDS+光模块的设计,在一定程度上解决了传 用平面结构InGaAsP PIN探测器。 a DS92LV1023与CLCO06连接图 b DS92LV1224与CLC014连接图 图2 LVDS应用芯片组与电缆驱动器、电缆均衡器连线图 投稿网址http://www.VideoE.cnl《电视技术》第37卷第3期(, ̄4o4期) 83 li PA &AP霞 1.2 PCI接口电路 嘲糊擞穗 i d'e o n t t ri n PCI9054的操作方式有M,c,J这3种模式,本设计采 用时序控制相对简单的c模式。 PCI9054的工作方式有3种:主模式、从模式及DMA 模式。本设计采用从模式的多周期传输方式。其中,主模 式是由本地处理器作为主设备,发起PCI存储器或I/O对 访问,PCI9054作为本地总线的目标设备;从模式是由PCI 主设备发起整个数据传输,PCI总线可以对配置寄存器及 本地总线内存进行访问,PCI9054作为PCI总线的目标设 备;DMA模式是一种快速的数据传输机制u J,由PCI9054 的DMA控制器控制在不需要CPU的干预下,对本地总线 图4块RAM搭建FIFO结构图 的存储器或I/O与PCI总线的存储器或I/O之间的数据 2)本地总线逻辑单元 在FPGA中实现PCI9054的读写,即对本地总线总 交换。考虑数据流不是非常大,使用从模式下的突发传输 发式即可。 裁。包括本地总线请求信号LHOLD和本地总线应答信 9054 PCI9054的配置信息通过上电后从E PROM中读取。 号LHOLDA的处理。在很多的设计中,都是将PCI的LHOLD和LHOLDA两个引脚直接相连接,或在FPGA/ 这里选用Microchip Technology公司的93LC56。93LC56 的接线图如图3所示。为了便于调试用,在EEDI/DO引 CPLD内部用连续赋值直接将LHOLD的值赋予LHOL—脚上设计有上下拉电阻,需要配合PCI9054调试时,焊接 DA,利用器件的引脚传输延迟配合总线仲裁电路来进行 时序控制。因为当尖峰脉冲耦合进FPGA内部时会造成 下拉电阻,正常工作时接上拉电阻。 3 3 V V 逻辑电路的误触发 ,所以采用这些方式将会导致计算 机出现读数错误、死机等现象。PCI本地总线通信仿真图 如图5所示,PCI9054进行量7个长字的突发传输模式。 c e“ls I洲} j nE ‘0O J 蜡蚰 ・} % J : ns ∞ns 0 “m ,曲 4 4lI’; z j二: :: 主至! j 寰: j÷ 蔓蔓:芝Il奎量蔓 曼量 …Ⅲ¨ ……一 …一 一÷一一一一一 一 — …_ …一2■一七 一………一一一………一……… … …一 生 … ..1一;一 …………………~…… 一……一—— —— 二二 一 l二£l 图3 93LC56的接线图 一二二 二 二二 二: ÷ !…一『n一} ——一— 一 ……~……………一一一一 :2 ̄… 4da…ta[31…0]~r一 =王垂重 =三愆 篓 图5 PCI本地总线通信仿真图(截图) …一一 ~ ; 1.3中心控制逻辑单元 羔三 二二 中心控制逻辑单元控制着信号收发时序、搭建内 部FIFO以及作为本地总线逻辑单元与PCI总线通信。 这里选用XI—LINX公司的XC3S400,其具有4×10 门的门 2设备驱动开发 PCI板卡插入PCI扩展槽,如果要正常工作,需要在 电路,896个CLB和360 kbit的块RAM。符合其设计 要求。 1)内部FIFO的搭建 Windows下撰写驱动程序。驱动程序主要有以下几个步 骤:打开设备;设备初始化 ;设备读写;关闭设备。Win- dows系统下的驱动用的最多是DDK,driverstudio,windriv— 通过FIFO进行数据缓冲来解决数据匹配问题。因 选用资源丰富的XC3S400,内部块RAM可达360 kbit,可 以在内部搭建FIFO以减少设计成本。 如图4所示,采用8块双端口的块RAM RAMB一16一 s4_S4搭建为4 k×32位FIFO。块RAM的A端口作为写 端口,B端口作为写端口。它们的使能端都与 相连,不 同的是,写使能一个接 ,一个接地。需要注意的是,对 er这机种工具。其中,DDK的效率最高,但编写起来难度 太大,多数技术人员使用driverstudio,windriver这两种工 具编写出来的程序也称为WDM(Windows Device Module) 程序。本课题采用DriverStudio工具。 DriverStudio中的DriverWorks软件为WDM驱动程序 提供了完整的框架,本设计利用其DriverWizard生成驱动 程序框架,然后添加各功能函数。这里利用类KMemoryR— ange实现对BU一61585内部存储器的读写访问,类KIoR— 块RAM读写操作时,不能同时进行,否则输出将是不定 值,造成输出失败。 84 《电视技术》第37卷第3期(总第404期)I投稿网址hRp:Ilwww.VideoE.cn 爨 ——节数 return status; PA &APP器LI件CA与TIO应N用S |i ange实现对其寄存器的访问。下面是驱动程序中类实例 KMemoryRange0的初始化及其对Bu一61585内部存储器 的写操作功能函数。 NTSTATUS PcitestjDevice::OnStartDevice(Klrp I) NTSTATUS status:STATUSSUCCESS; _} 3 结束语 PCI总线满足现代设备传输数率越来越高的要求, PCI9054为PCI总线接口技术提供了较为简单的开发过 status=m_MemoryRange0.Initialize ( pResListTranslated, pResListRaw, 程,其高速的传输数率将会被广泛应用。本文设计的高速 串口通信板,已成功应用于图像数据的传输。当数据总线 扩展到64位,数据传输模式采用DMA方式,对于数率的 提高仍有较大的裕度。 参考文献: [1]赵锡凯.PCI总线扩展技术研究[J].计算机工程与科学,1997(2):12-15. [2]袁伟涛,张斌珍,刘文怡.箭载遥测变换器测试台的设计与实现 [J].测控技术与仪器仪表,2008(2):87-90. PciConfig.BaseAddresslndexToOrdinal(0) ); if(!NT_SUCCESS(status)) { Invalidate(); l"eturn status; }NTSTATUS PcitestjDevice::PCITESTJ—IOCTL—WriteData—Handler (Klrp I) { NTSTATUS status:STATUS SUCCESS; unsigned short }inputdata; [3]荣思远,景新幸,陈用昌.基于PCI总线的视频采集卡研究[J].电 视技术,2006,30(11):32—35. [4]蔡祁鹏,王宏远.HDTV信号源中PCIDMA的WDM程序开发[J]. 电视技术,2001,25(4):17-20. ULONGi; inputdata=(unsined shortg )I.IoctlBuffer(); [5]何瑾,张烨君,于彤彦.基于PCI总线的数据采集卡的设计[J].现 代电子技术,2006(17):109—11O. for(i=0;i<2 inputdata[2];i十=2) { mMemoryRange0.outw(inputdata[0],inputdata[1]); 作者简介: 叶勇(1988一),硕士生,主研电路系统和微系统集成。 雯 收稿日期:2012-06--07 inputdata[0]+=2; inputdata[1]+ ; } 责任编辑:时I.Information():2 inputdata[2];//向驱动程序返回的实际字 (上接第16 页) 在运动较为缓慢时,其小部分区域会被检测为背景(如图 参考文献:2b中的白色汽车车身),但这部分漏检的宏块信息易于得 到,且往往不属于目标的重要区域,对公安的实际监控应 用并无影响。 [1]THOMASW,GARY J S,GISLE B,et a1.Overview ofthe H.264/AVC video coding stndard ̄J].IEEE Trans.Ciracuits Syst.Video Techno1., 2003,13:704-706. 本算法目前已在实际的公安监控系统进行了应用测 试,其可靠性和正确性得到验证。 [2]毕厚杰,王健.新一代视频压缩编码标准——H 264/AVC[M].2版. 北京:中国广播电视出版社,2009. [3]LINO F,LUIS C,PEDRO A.H.264/SVC ROI encoding with spatila 4 小结 本文针对公安监控中的需求,提出一种基于ROI的 scalability[C]//Proc.Intenrational Cofnerence Oil Sinagl Processing and Multimedia Applications.[s.1.]:INSTICC Press,2008:212-215. [4]向科炳,于鸿洋,张萍.可分级视频编码的MPEG-2传输流封装及其 应用[J].电视技术,2011,35(21):25-28. [5]袁嘉晟,方志军,叶金财.基于运动矢量可分级的视频编码方法[J]. 电视技术,2010,34(4):19-21. [6]孙立,王健,郭春辉,等.基于CUDA的H.264去方块滤波的设计与实 自适应编码算法,通过均值法背景建模技术提取ROI后, 针对不同的空间区域采用不同级别的编码策略。同时为 减小ROI宏块漏检率和降低因采用分级编码策略而产生 的块效应,本文采用一种基于邻居宏块的性能补偿方案。 实验结果表明,该算法在保证ROI编码质量的前提下,能 现[J].电视技术,2010,34(5):44_46. 够有效降低系统码率。 责任编辑:时雯 收稿日期:2012--07-23 投稿网址http://www.VideoE.cnl《电视技术》第37卷第3期(总第4o4期)85