葉 勇,沈三民,郭 錚,崔 婧,蘇虎平,張雪蓮
(中北大學a.儀器科學與動態測試教育部重點實驗室;b.中北大學電子測試技術重點實驗室,山西太原 030051)
基于PCI總線的高速串口通信卡的設計
葉 勇,沈三民,郭 錚,崔 婧,蘇虎平,張雪蓮
(中北大學a.儀器科學與動態測試教育部重點實驗室;b.中北大學電子測試技術重點實驗室,山西太原 030051)
介紹了一種基于PCI總線的高速串口通信卡的設計,采用PLX公司的PCI9054作為PCI總線橋接芯片,FPGA作為本地總線的控制器和系統主控單元,選用LVPECL電平單模雙纖光收發一體模塊OCM3723為串口傳輸介質。最后介紹了利用visual C+++DDK進行設備驅動開發。該設計的高速串口通信卡,其通信速率可達80 Mbit/s,傳輸距離超過10 km。具有設計簡單、速率快、可靠性高、傳輸距離遠等特點,已經成功運用于某航天遙測系統。
PCI總線;高速串口通信;PCI9054
PCI總線標準是一種將系統外部設備連接起來的總線標準,它是PC機中最重要的總線。其他設備例如:USB總線、ISA總線等總線都掛接在PCI總線之上。如果時鐘采用33 MHz,它的傳輸速率可達132 Mbyte/s(PCI總線為32位),對于64位PCI總線,其吞吐率能達到264 Mbyte/s峰值[1];64位66 MHz PCI總線,數據吞吐率理論值為528 Mbyte/s。一般在PC機中,顯卡、網卡都被設計成PCI總線設備,插于PCI插槽,有利于方便更換已壞設備。
本文設計的基于PCI總線的高速串口通信卡,采用PLX公司的PCI9054作為PCI總線與本地總線的橋接芯片,控制方便,實現簡單。從硬件電路的設計,到軟件的編寫,再到驅動程序的撰寫,本文將一一予以探討。
基于PCI總線的高速串口通信卡的設計總體結構如圖1所示,整個通信卡可分為三部分:信號采集單元、中心控制邏輯單元和PCI橋接電路。此卡插于PCI擴展槽中,與PC機進行通信。

圖1 系統總體結構圖
信號收發單元包括光模塊與LVDS高速接口電路。LVDS高速接口可以確保數據傳輸的快速性,光模塊解決遙測系統的傳輸距離。本設計采用1對10位總線型低壓差分信號應用芯片組DS92LV1023(串行器)與DS92LV1224(解碼器)。其中DS92LV1023可以將10位并行CMOS或TTL數據轉換為具有內嵌時鐘的高速串行差分數據輸出;DS92LV1224則將輸入的差分數據轉換成并行10位數據輸出,同時內部鎖相環可從串行數據中重建并行時鐘。因LVDS芯片組的差分電壓擺幅為0.7 V,不能直接與1.5~2.3 V電壓差輸入的光模塊OCM3723直接相連,所以配合使用電纜驅動器CLC006與電纜均衡器CLC014。可將電壓擺幅提高到2 V,這樣能使信號良好地搭載在光模塊,使傳輸距離得到極大改善[2]。
PCI接口電路使用PLX公司的PCI9054,也是目前主流的PCI總線接口芯片之一,其邏輯控制簡單,無需復雜的固件編寫,且PLX公司提供官方的驅動程序作為參考,可以大大縮短開發周期。此卡通過PCI總線與上位機通信,可以實時進行監測和高速的數據存取。
中心控制邏輯單元采用一片Xilinx公司的XC3S400作為邏輯控制器,其主要作用是作為本地總線的邏輯控制單元與PCI總線通信、數據緩存及信號采集模塊的控制器,也是高速串口通信卡的主控芯片。FIFO存儲器作為數據緩存器,本設計采用XC3S400的內置塊RAM配置而成。系統采用40 MHz晶振,經FPGA內部的時鐘管理模塊倍頻得到80 MHz時鐘,使得傳輸數率可達80 Mbit/s。
進行串口通信時,數據流在信號線上傳輸必然產生信號的畸變,波特率與傳輸距離成為一對矛盾體。為此,本文提出LVDS+光模塊的設計,在一定程度上解決了傳輸速率與傳輸距離的瓶頸現象,可將高速通信距離提高到10 km以上。
LVDS是一種小振幅差分信號技術,使用低壓(約350 mV)差分信號傳輸數據。允許單個信道傳輸速率達到數百兆比特每秒,其特有的低振幅及恒流源模式驅動只產生極低的噪聲,消耗非常小的功率。其LVDS應用芯片組與電纜驅動器、電纜均衡器的連線圖如圖2所示。這里R5與R10為匹配電阻,大小為100 Ω。
而光模塊的使用,利用其良好的光電轉換作用,可以使傳輸距離提高到10 km以上。本設計選用LVPECL電平單模雙纖光收發一體模塊OCM3723,其特點為:1)SC/FC插拔式光接口;2)單+3.3 V/+5 V供電;3)接口電平兼容標準LVPECL電平;4)標準1×9管腳封裝,引腳配置與Multi-source協議兼容;5)發射器件可選用工作波長為1 310 nm的FP激光器或1 550 nm DFB激光器;6)接收采用平面結構InGaAsP PIN探測器。

圖2 LVDS應用芯片組與電纜驅動器、電纜均衡器連線圖
PCI9054的操作方式有M,C,J這3種模式,本設計采用時序控制相對簡單的C模式。
PCI9054的工作方式有3種:主模式、從模式及DMA模式。本設計采用從模式的多周期傳輸方式。其中,主模式是由本地處理器作為主設備,發起PCI存儲器或I/O對訪問,PCI9054作為本地總線的目標設備;從模式是由PCI主設備發起整個數據傳輸,PCI總線可以對配置寄存器及本地總線內存進行訪問,PCI9054作為PCI總線的目標設備;DMA模式是一種快速的數據傳輸機制[1],由PCI9054的DMA控制器控制在不需要CPU的干預下,對本地總線的存儲器或I/O與PCI總線的存儲器或I/O之間的數據交換。考慮數據流不是非常大,使用從模式下的突發傳輸發式即可。
PCI9054的配置信息通過上電后從E2PROM中讀取。這里選用Microchip Technology公司的93LC56。93LC56的接線圖如圖3所示。為了便于調試用,在EEDI/DO引腳上設計有上下拉電阻,需要配合PCI9054調試時,焊接下拉電阻,正常工作時接上拉電阻。

圖3 93LC56的接線圖
中心控制邏輯單元控制著信號收發時序、搭建內部FIFO以及作為本地總線邏輯單元與PCI總線通信。這里選用XI-LINX公司的XC3S400,其具有4×105門的門電路,896個CLB和360 kbit的塊RAM。符合其設計要求。
1)內部FIFO的搭建
通過FIFO進行數據緩沖來解決數據匹配問題。因選用資源豐富的XC3S400,內部塊RAM可達360 kbit,可以在內部搭建FIFO以減少設計成本。
如圖4所示,采用8塊雙端口的塊RAM RAMB_16_S4_S4搭建為4 k×32位FIFO。塊RAM的A端口作為寫端口,B端口作為寫端口。它們的使能端都與VCC相連,不同的是,寫使能一個接VCC,一個接地。需要注意的是,對塊RAM讀寫操作時,不能同時進行,否則輸出將是不定值,造成輸出失敗。

圖4 塊RAM搭建FIFO結構圖
2)本地總線邏輯單元
在FPGA中實現PCI9054的讀寫,即對本地總線總裁。包括本地總線請求信號LHOLD和本地總線應答信號LHOLDA的處理。在很多的設計中,都是將PCI9054的LHOLD和LHOLDA兩個引腳直接相連接,或在FPGA/CPLD內部用連續賦值直接將LHOLD的值賦予LHOLDA,利用器件的引腳傳輸延遲配合總線仲裁電路來進行時序控制。因為當尖峰脈沖耦合進FPGA內部時會造成邏輯電路的誤觸發[4],所以采用這些方式將會導致計算機出現讀數錯誤、死機等現象。PCI本地總線通信仿真圖如圖5所示,PCI9054進行量7個長字的突發傳輸模式。

圖5PCI本地總線通信仿真圖(截圖)
PCI板卡插入PCI擴展槽,如果要正常工作,需要在Windows下撰寫驅動程序。驅動程序主要有以下幾個步驟:打開設備;設備初始化[5];設備讀寫;關閉設備。Windows系統下的驅動用的最多是DDK,driverstudio,windriver這機種工具。其中,DDK的效率最高,但編寫起來難度太大,多數技術人員使用driverstudio,windriver這兩種工具編寫出來的程序也稱為WDM(Windows Device Module)程序。本課題采用DriverStudio工具。
DriverStudio中的DriverWorks軟件為WDM驅動程序提供了完整的框架,本設計利用其DriverWizard生成驅動程序框架,然后添加各功能函數。這里利用類KMemoryR-ange實現對BU-61585內部存儲器的讀寫訪問,類KIoR-ange實現對其寄存器的訪問。下面是驅動程序中類實例KMemoryRange0的初始化及其對BU-61585內部存儲器的寫操作功能函數。


PCI總線滿足現代設備傳輸數率越來越高的要求,PCI9054為PCI總線接口技術提供了較為簡單的開發過程,其高速的傳輸數率將會被廣泛應用。本文設計的高速串口通信板,已成功應用于圖像數據的傳輸。當數據總線擴展到64位,數據傳輸模式采用DMA方式,對于數率的提高仍有較大的裕度。
:
[1]趙錫凱.PCI總線擴展技術研究[J].計算機工程與科學,1997(2):12-15.
[2]袁偉濤,張斌珍,劉文怡.箭載遙測變換器測試臺的設計與實現[J].測控技術與儀器儀表,2008(2):87-90.
[3]榮思遠,景新幸,陳用昌.基于PCI總線的視頻采集卡研究[J].電視技術,2006,30(11):32-35.
[4]蔡祁鵬,王宏遠.HDTV信號源中PCIDMA的WDM程序開發[J].電視技術,2001,25(4):17-20.
[5]何瑾,張燁君,于彤彥.基于PCI總線的數據采集卡的設計[J].現代電子技術,2006(17):109-110.
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,Ministry of Education;b.National Key Laboratory for Electronic Measurement Technology,North University of China,Taiyuan 030051,China)
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 OCM3723.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 distance transmission and other characteristics,is been successfully used in a space telemetry system.
PCI Bus;high-speed serial communication;PCI9054
TP274
A
【本文獻信息】葉勇,沈三民,郭錚,等.基于PCI總線的高速串口通信卡的設計[J].電視技術,2013,37(3).
國家自然科學基金重點項目(60871041)
葉 勇(1988— ),碩士生,主研電路系統和微系統集成。
責任編輯:時 雯
2012-06-07