《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 業(yè)界動態(tài) > X-Scan X射線線陣列探測器并行幀捕獲卡

X-Scan X射線線陣列探測器并行幀捕獲卡

2008-10-30
作者:張增輝 沈 激 陳子瑜
關(guān)鍵詞: 線陣 控制信號 上升沿 I/O 差分

  摘 要: 介紹了一個基于PCI總線的RS422并行幀捕獲卡,。該卡用于X-Scan X射線線陣" title="線陣">線陣列探測器高速14bit圖像數(shù)據(jù)的獲取,。簡要敘述了X射線線陣列探測器的輸出以及基于PCI總線的數(shù)據(jù)獲取理論和方法,,并介紹了所采用芯片的性能及應(yīng)用,、卡的硬件設(shè)計思想和結(jié)構(gòu)以及軟件設(shè)計,。
  關(guān)鍵詞: RS422接口 PCI總線 X射線 線陣列探測器 幀捕獲


1 X-ScanX射線線陣列探測器數(shù)據(jù)端口和幀捕獲卡
  X-Scan是芬蘭DT公司生產(chǎn)的X射線線陣列探測器,,用于安全,、工業(yè),、醫(yī)學(xué)和食品等領(lǐng)域的無損檢測或質(zhì)量控制中,。探測器由探測元件、探測電子學(xué)和微控制器組成,。探測器數(shù)據(jù)輸出采用RS422端口,,為14位數(shù)據(jù)并行平衡(差分" title="差分">差分)輸出[1]。端口信號十分容易理解:行使能信號LEN和同步信號PCLK(PCLK信號頻率為2.2MHz)之間的關(guān)系如圖1所示,。


  行使能信號LEN表明自上升沿" title="上升沿">上升沿后,,經(jīng)t2時間探測器發(fā)送數(shù)據(jù);PCLK信號的上升沿用于計算機(jī)接口進(jìn)行數(shù)據(jù)讀操作,。DT公司X-Scan平衡輸出定義為一對互為反相的TTL電平信號,。
  一行數(shù)據(jù)定義為一幀,其中包含的數(shù)據(jù)是大量的,,并且需要高速傳輸,,所以計算機(jī)接口應(yīng)該基于PCI總線。為此研制了基于PCI總線的幀捕獲(Frame Grabbing )卡,以滿足X-Scan應(yīng)用的需要,。
2 計算機(jī)接口設(shè)計
2.1 PCI總線
  PCI(Peripheral Component Interconnect)總線[2]是ISA/EISA總線之后的一種現(xiàn)今計算機(jī)中廣泛采用的局部總線,,支持外圍設(shè)備進(jìn)行突發(fā)通訊,32位總線數(shù)據(jù)傳輸速率峰值達(dá)132MB/s,,遠(yuǎn)遠(yuǎn)超過ISA/EISA總線5Mb/s的速度,,適合X-Scan與計算機(jī)高速數(shù)據(jù)傳輸?shù)囊蟆?BR>  與ISA/EISA總線不同,PCI 總線協(xié)議及接口邏輯十分復(fù)雜,,從而使得采用中小型規(guī)模器件開發(fā)接口電路的方法難以實現(xiàn),。鑒于此, 許多廠家推出了專用的PCI 總線控制芯片, 其中AMCC公司生產(chǎn)的S59XX系列芯片因其功能強(qiáng)大、開發(fā)方便而被廣泛應(yīng)用,。本方案采用AMCC公司的專用芯片S5933[2]來實現(xiàn)PCI協(xié)議的執(zhí)行,。
2.2 卡的組成
  卡由RS-422接口電平轉(zhuǎn)換、高速數(shù)據(jù)緩存,、PCI總線控制器及控制邏輯等功能模塊組成,。其結(jié)構(gòu)如圖2所示,。

2.2.1 電平轉(zhuǎn)換
  電平轉(zhuǎn)換的要求是將來自X-Scan RS422輸出端口的差分?jǐn)?shù)據(jù)和控制信號" title="控制信號">控制信號轉(zhuǎn)換成TTL信號。組成的單元電路采用MAXIM公司的MAX3095 RS422 四接收器, 其電氣特性如圖3所示,。MAX3095具有10Mbit/s的數(shù)據(jù)傳輸速率和90ns的傳輸延遲,滿足X-Scan 數(shù)據(jù)傳輸?shù)乃俾室?;還具有200mV的差分接收靈敏度以及15kV的靜電保護(hù)(ESD-Protected)措施,滿足X-Scan數(shù)據(jù)長線傳輸?shù)囊蟆?/P>


2.2.2 PCI總線控制器S5933
  S5933[3]是符合PCI 規(guī)范2.1版本的32 位控制芯片,,它提供三種物理接口:PCI 總線接口,、外接(Add-On)總線接口和外接配置存儲器(非易失存儲器)接口(見圖4 ),其中,,PCI 總線接口與PCI 總線相連,,配置存儲器接口與非易失存儲器連接(在系統(tǒng)初始化時用來對S5933進(jìn)行配置),外接(Add-On)總線接口與用戶數(shù)據(jù)設(shè)備的連接是卡設(shè)計者最需要關(guān)注的地方,。


  S5933中有兩個獨立的FIFO(8×32bit),,用于PCI到ADD-ON和ADD-ON到PCI兩個方向的數(shù)據(jù)傳輸,F(xiàn)IFO的空滿狀態(tài)信號及讀寫控制信號可供外加接口使用,。利用FIFO進(jìn)行數(shù)據(jù)傳輸是S5933數(shù)據(jù)傳輸方式中主要的一種(其余還有兩種方式:MAILBox方式和PASS_THrμ方式),。FIFO方式控制邏輯簡單,易于實現(xiàn),,是本卡采用的方式,。本卡中,數(shù)據(jù)傳送只有ADD-ON到PCI單一方向,,所應(yīng)用FIFO的狀態(tài)信號及控制信號只需WRFULL(滿/非滿)和-(寫入)信號,。
  S5933 既可以作為 PCI總線的主設(shè)備接口,也可作為從設(shè)備接口,。此卡設(shè)計中,,S5933 采用主控模式,由它發(fā)起DMA操作,。
2.2.3 高速數(shù)據(jù)緩存
  由于S5933中FIFO 深度不足,,來自探測器的大量數(shù)據(jù)直接流入,就會使得FIFO 瞬間寫滿而S5933仍然不能獲得PCI總線控制權(quán)以及出現(xiàn)溢出和丟失數(shù)據(jù),。為此,,在S5933 Add-On接口與MAX3095之間插入數(shù)據(jù)緩存。這里采用了IDT公司生產(chǎn)的IDT72V235高速先進(jìn)先出存儲器(FIFO),,100MHz存取速率,,18位數(shù)據(jù)輸入和18位數(shù)據(jù)輸出,容量為2048×18 bit,。其結(jié)構(gòu)見圖5。


  高速流入的數(shù)據(jù)先在外部FIFO中緩存,,內(nèi)部FIFO非滿時再作傳送,。由于X-Scan是以幀為單位高速傳送數(shù)據(jù)的,,而幀與幀之間又有足夠的間隙時間,2K容量的外部FIFO足以防止數(shù)據(jù)的丟失,。
  IDT72V235可以單片使用,,也可以級聯(lián)或擴(kuò)展使用,本卡中IDT72V235是單片使用的,。
  數(shù)據(jù)輸入端由寫時鐘(WCLK)和寫使能()控制,。當(dāng)有效且FIFO非滿時(滿標(biāo)志為高),數(shù)據(jù)在寫時鐘WCLK的上升沿被寫入,。輸出端由讀時鐘(RCLK)和讀使能端()控制,,當(dāng)有效且FIFO非空時(空標(biāo)志為高),數(shù)據(jù)在讀時鐘RCLK的上升沿讀入輸出寄存器,,并在輸出使能()為低時輸出到端口,。讀時鐘與寫時鐘可以同步,也可以異步,。本卡中時鐘異步,,讀時鐘信號由S5933 33MHz的BPCLOCK提供;寫時鐘信號由RS422端口提供,,它們決定了數(shù)據(jù)寫入速率為2.2MHz,,讀出速率為33MHz。
  復(fù)位(為低)時FIFO讀取擴(kuò)展邏輯控制信號,、,。這些信號定義了FIFO的八種工作模式,本卡中它們接地,,F(xiàn)IFO定義在非同步IDT標(biāo)準(zhǔn)模式,,時序圖見圖6。其中,,讀出延遲tA和寫入滿到出現(xiàn)滿標(biāo)志延遲tWFF都是最大6.5ns,。


2.2.4 數(shù)據(jù)傳輸控制
  數(shù)據(jù)控制用于S5933與FIFO,以及FIFO與外部設(shè)備之間的傳輸控制,。采用Lattice公司的可編程邏輯芯片ispLSI1016作為邏輯控制器,,其性能指標(biāo)為:最高頻率110MHz;10ns傳輸延遲,。ispLSI1016編程后,,與S5933及IDT72V235之間的邏輯關(guān)系如圖7所示。


  使能信號EN有效,,而FIFO IDT72V235中有數(shù)據(jù)(/=1)且S5933 FIFO未滿(WRFULL=0)時,,IDT72V235將數(shù)據(jù)驅(qū)動到輸出寄存器上;在下一個BPCLK周期,將IDT72V235輸出寄存器中的數(shù)據(jù)寫入S5933 FIFO,。
3 編程與程序設(shè)計
  編程與程序設(shè)計包括ispLSI1016芯片的編程,、S5933寄存器編程以及驅(qū)動程序的開發(fā)。ispLSI1016芯片的編程是利用ispDesignEXPERT開發(fā)系統(tǒng)及VHDL語言實現(xiàn)的,,這里不再贅述,。
3.1 S5933寄存器編程
  PCI總線規(guī)范定義了256字節(jié)的配置空間,分為預(yù)定義頭域和設(shè)備依賴區(qū)域兩部分,。
  頭域包括設(shè)備制造商標(biāo)識ID,、設(shè)備ID、版本ID,、分類代碼三個寄存器(用于識別設(shè)備及其功能),、基地址寄存器BADR(用來確定該設(shè)備的存儲和I/O" title="I/O">I/O空間需求)、中斷引腳和中斷編號兩個寄存器以及延時計數(shù)寄存器Min-Gnt和Max-Lat(用來設(shè)置DMA)等,。
  設(shè)備依賴區(qū)域包括位于PCI總線一側(cè)和擴(kuò)充總線接口一側(cè)的兩組操作寄存器,,用于監(jiān)測S5933的狀態(tài)并控制其運(yùn)行。本卡用到的操作寄存器有: MWTC(主控寫計數(shù)),、MWAR(主控寫地址),、MCSR(主控控制/狀態(tài))和INTCSR(中斷控制/狀態(tài))等寄存器。
  配置空間數(shù)據(jù)編程在與S5933連接的一片非易失存儲器(nvRAM)中進(jìn)行,,系統(tǒng)加電或復(fù)位后, S5933將從nvRAM下載銷售商標(biāo)識符VID和設(shè)備標(biāo)識符DID,,如果合法,則下載基地址單元BADR的內(nèi)容,,其值必須是C1H/C0H/C2H/FFH/E8H/10H,。如果都正確,便依次讀入配置數(shù)據(jù),,決定I/O或存儲器空間的大小,。然后將每個區(qū)域的起始地址寫回到BADR中,區(qū)域的起始地址必須是區(qū)域大小的倍數(shù),。每一個BADR都是物理地址(PCI設(shè)備自己不能單獨確定存儲器或I/O的地址,,所有的地址影射都必須由系統(tǒng)來完成,而不是應(yīng)用程序),。
3.2 驅(qū)動程序設(shè)計
  Windows系統(tǒng)下對設(shè)備的訪問需要通過設(shè)備驅(qū)動程序進(jìn)行,,所以需要開發(fā)卡的驅(qū)動程序。
  采用Jungo公司提供的WinDriver設(shè)備驅(qū)動程序開發(fā)工具包[4]來開發(fā)設(shè)備驅(qū)動程序,。開發(fā)時可以有兩種方法可供選擇:一是利用 WinDriver Winzard,;二是利用WinDriver提供的用戶態(tài)函數(shù)庫,后者要求程序員熟悉WinDriver的用戶態(tài)函數(shù)以及PCI設(shè)備的控制過程,,相對的難度較大,。但這兩種方法產(chǎn)生的驅(qū)動程序結(jié)構(gòu)基本上沒有什么區(qū)別,大體結(jié)構(gòu)如下:
  打開WinDriver設(shè)備;查找所要訪問的PCI設(shè)備,;枚舉該設(shè)備的資源(內(nèi)存,、I/O、中斷等),;鎖定該設(shè)備的資源,避免其它的程序調(diào)用,;訪問板卡上的資源,;解鎖資源;關(guān)閉WinDriver設(shè)備,。
  本卡采用第一種方法,,步驟如下:
  (1)安裝好PCI數(shù)據(jù)采集卡;
  (2)利用WinDriver Winzard檢測采集卡,;
  (3)測試硬件,,生成驅(qū)動程序代碼;
  (4)修改代碼,,加入定制的功能,;
  (5)在用戶態(tài)執(zhí)行與調(diào)試代碼;
  (6)將性能苛刻部分插入到核心態(tài),。
  驅(qū)動程序流程圖如圖8所示,。生成的驅(qū)動程序可獲得令人滿意的探測數(shù)據(jù)。


  此卡為X-Scan X射線線陣列探測器數(shù)據(jù)獲取而研制,。探測器通過RS-422數(shù)據(jù)接口給捕獲卡提供14位數(shù)字圖像數(shù)據(jù),,數(shù)據(jù)是逐幀連續(xù)發(fā)出的,幀信號有效后,,以2.2MHz時鐘并行連續(xù)輸出768個14 Bits的數(shù)據(jù)(一幀數(shù)據(jù)),。實際應(yīng)用表明,該卡滿足探測器逐幀,、連續(xù),、高速捕獲數(shù)據(jù)的需要。
參考文獻(xiàn)
1 User’s Manual of X-ray Linear Array Detector.Detection Technology Inc. Finland,2002
2 PCI Local Bus Specification Revision 2.0.PCI SIG,1993
3 AMCC PCI Products Data Book.San Diego:Applied Micro Circuits Corporation,1998
4 KernelDriver v6.11 User’s Guide.Jungo Ltd,1997~2003

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。