X-Scan X射頻線陣列探測器并行幀捕獲卡
出處:xukaiguo 發(fā)布于:2007-04-28 04:50:54
摘要:介紹了一個基于PCI總線的RS422并行幀捕獲卡。該卡用于X-Scan X射線線陣列探測器高速14bit圖像數(shù)據(jù)的獲取。簡要敘述了X射線線陣列探測器的輸出以及基于PCI總線數(shù)據(jù)獲取理論和方法,并介紹了所采用芯片的性能及應(yīng)用、卡的硬件設(shè)計思想和結(jié)構(gòu)以及軟件設(shè)計。
關(guān)鍵詞:RS422接口 PCI總線 X射線 線陣列探測器 幀捕獲
1 X-Scan X射線線陣列探測器數(shù)據(jù)端口和幀捕獲卡
X-Scan是芬蘭DT公司生產(chǎn)的X射線線陣列探測器,用于安全、工業(yè)、醫(yī)學(xué)和食品等領(lǐng)域的無損檢測或質(zhì)量控制中。探測器由探測元件、探測電子學(xué)和微控制器組成。探測器數(shù)據(jù)輸出采用RS422端口,為14位數(shù)據(jù)并行平衡(差分)輸出。端口信號十分容易理解:行使能信號LEN和同步信號PCLK(PCLK信號頻率為2.2MHz)之間的關(guān)系如所示。
行使能信號LEN表明自上升沿后,經(jīng)t2時間探測器發(fā)送數(shù)據(jù);PCLK信號的上升沿用于計算機接口進行數(shù)據(jù)讀操作。DT公司X-Scan平衡輸出定義為一對互為反相的TTL電平信號。
一行數(shù)據(jù)定義為一幀,其中包含的數(shù)據(jù)是大量的,并且需要高速傳輸,所以計算機接口應(yīng)該基于PCI總線。為此研制了基于PCI總線的幀捕獲(Frame Grabbing)卡,以滿足X-Scan應(yīng)用的需要。
2 計算機接口設(shè)計
2.1 PCI總線
PCI(Peripheral Component Interconnect)總線是ISA/EISA總線之后的一種現(xiàn)今計算機中廣泛采用的局部總線,支持外圍設(shè)備進行突發(fā)通訊,32位總線數(shù)據(jù)傳輸速率峰值達132MB/s,遠遠超過ISA/EISA總線5Mb/s的速度,適合X-Scan與計算機高速數(shù)據(jù)傳輸?shù)囊蟆?br> 與ISA/EISA總線不同,PCI總線協(xié)議及接口邏輯十分復(fù)雜,從而使得采用中小型規(guī)模器件開發(fā)接口電路的方法難以實現(xiàn)。鑒于此,許多廠家推出了專用的PCI總線控制芯片,其中AMCC公司生產(chǎn)的S59XX系列芯片因其功能強大、開發(fā)方便而被廣泛應(yīng)用。本方案采用AMCC公司的專用芯片S5933來實現(xiàn)PCI協(xié)議的執(zhí)行。
2.2 卡的組成
卡由RS-422接口電平轉(zhuǎn)換、高速數(shù)據(jù)緩存、PCI總線控制器及控制邏輯等功能模塊組成。其結(jié)構(gòu)如所示。
2.2.1 電平轉(zhuǎn)換
電平轉(zhuǎn)換的要求是將來自X-Scan RS422輸出端口的差分?jǐn)?shù)據(jù)和控制信號轉(zhuǎn)換成TTL信號。組成的單元電路采用MAXIM公司的MAX3095 RS422四接收器,其電氣特性如所示。MAX3095具有10Mbit/s的數(shù)據(jù)傳輸速率和90ns的傳輸延遲,滿足X-Scan數(shù)據(jù)傳輸?shù)乃俾室?;還具有200mV的差分接收靈敏度以及15kV的靜電保護還具有200mV的差分接收靈敏度以及15kV的靜電保護(ESD-Protected)措施,滿足X-Scan數(shù)據(jù)長線傳輸?shù)囊蟆?br>
2.2.2 PCI總線控制器S5933
S5933是符合PCI規(guī)范2.1版本的32位控制芯片,它提供三種物理接品:PCI總線接口、外接(Add-On)總線接口和外接配置存儲器(非易失存儲器)接口(見),其中,PCI總線接口與PCI總線相連,配置存儲器接口與非易失存儲器連接(在系統(tǒng)初始化時用來對S5933進行配置),外接(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進行數(shù)據(jù)傳輸是S5933數(shù)據(jù)傳輸方式中主要的一種(其余還有兩種方式:MAILBox方式和PASS_THrμ方式)。FIFO方式控制邏輯簡單,易于實現(xiàn),是本卡采用的方式。本卡中,數(shù)據(jù)傳遞只有ADD-ON到PCI單一方向,所應(yīng)用FIFO的狀態(tài)信號及控制信號只需VRFULL(滿/非滿)和WRFIFO(寫入)信號。
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)的IDT32V235高速先進先出存儲器(FIFO),100MHz存取速率,18位數(shù)據(jù)輸入和18位數(shù)據(jù)輸出,容量為2048×18 bit。其結(jié)構(gòu)見。
高速流入的數(shù)據(jù)先在外部FIFO中緩存,內(nèi)部FIFO非滿時再作傳送。由于X-Scan是以幀為單位高速傳送數(shù)據(jù)的,而幀與幀之間又有足夠的間隙時間,2K容量的外部FIFO足以防止數(shù)據(jù)的丟失。
IDT72V235可以單片使用,也可以緩聯(lián)或擴展使用,本卡中IDT72V235是單片使用的。
數(shù)據(jù)輸入端由寫時鐘(WCLK)和寫使能(WEN)控制。當(dāng)WEN有效且FIFO非滿時(滿標(biāo)志FF為高),數(shù)據(jù)在寫時鐘WCLK的上升沿被寫入。輸出端由讀時鐘(RCLK)和讀使能端(REN)控制,當(dāng)REN有效且FIFO非空時(空標(biāo)志EF為高),數(shù)據(jù)在讀時鐘RCLK的上升沿讀入輸出寄存器,并在輸出使能(OE)為低時輸出到端口。讀時鐘與寫時鐘可以同步,也可以異步。本卡中時鐘異步,讀時鐘信號S5933 33MHz的BPCLOCK提供;寫時鐘信號由RS422端口提供,它們決定了數(shù)據(jù)寫入速率為2.2MHz,讀出速率為33MHz。
復(fù)位(RS為低)時FIFO讀取擴展邏輯控制信號FL、RXI和WXI。這些信號定義了FIFO的八種工作模式,本卡中它們接地,F(xiàn)IFO定義在非同步IDT標(biāo)準(zhǔn)模式,時序圖見。其中,讀出延遲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)系如所示。
使能信號EN有效,而FIFO IDT72V235中有數(shù)據(jù)(EF/OR=1)且S5933 FIFO未滿(WREFULL=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空間需求)、中斷引腳和中斷編號兩個寄存器以及延時計數(shù)寄存器Min-Gnt和Max-Lat(用來設(shè)置DMA)等。
設(shè)備依賴區(qū)域包括位于PCI總線一側(cè)和擴充總線接口一側(cè)的兩組操作寄存器,用于監(jiān)測S5933的狀態(tài)并控制其運行。本卡用到的操作寄存器有:MWTC(主控寫計數(shù))、MWAR(主控寫地址)、MCSR(主控控制/狀態(tài))和INTCSR(中斷控制/狀態(tài))等寄存器。
配置空間數(shù)據(jù)編程在與S5933連接的一片非易失存儲器(nvRAM)中進行,系統(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ū)動程序進行,所以需要開發(fā)卡的驅(qū)動程序。
采用Jungo公司提供的WinDriver設(shè)備驅(qū)動程序開發(fā)工具包來開發(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ū)動程序流程圖如所示。生成的驅(qū)動程序可獲得令人滿意的探測數(shù)據(jù)。
此卡為X-Scan X射線線陣列探測器數(shù)據(jù)獲取而研制。探測器通過RS-422數(shù)據(jù)接口給捕獲卡提供14位數(shù)字圖像數(shù)據(jù),數(shù)據(jù)是逐幀連續(xù)發(fā)出的,幀信號有效后,以2.2MHz時鐘并行連續(xù)輸出768個14Bits的數(shù)據(jù)(一幀數(shù)據(jù))。實際應(yīng)用表明,該卡滿足探測器逐幀、連續(xù)、高速捕獲數(shù)據(jù)的需要。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 物聯(lián)網(wǎng)邊緣計算網(wǎng)關(guān)技術(shù)特性與部署運維指南2026/1/6 10:44:20
- 物聯(lián)網(wǎng)云平臺技術(shù)架構(gòu)與選型運維指南2025/12/30 10:05:07
- 工業(yè)級物聯(lián)網(wǎng)網(wǎng)關(guān)技術(shù)參數(shù)與選型及運維指南2025/12/23 9:51:05
- 什么是IIoT,IIoT的知識介紹2025/6/3 17:22:31
- 物聯(lián)網(wǎng)領(lǐng)域:新興薄膜技術(shù)的潛力與挑戰(zhàn)2025/5/12 15:18:17









