《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于PCIe總線的顯微鏡圖像采集系統(tǒng)設計
基于PCIe總線的顯微鏡圖像采集系統(tǒng)設計
2015年電子技術應用第2期
王府北,王佳華,吳瓊水
武漢大學 電子信息學院,湖北 武漢430072
摘要: 為了實現(xiàn)實時快速傳輸高分辨率圖像,設計了x4通道的PCI Express圖像采集系統(tǒng),應用于顯微鏡自動對焦成像模塊的大數(shù)據(jù)量傳輸。采用了Altera公司型號為EP4CGX30CF23C8的FPGA,該芯片內部集成支持鏈式DMA傳輸功能的PCIE硬核。利用Jungo公司的Windriver軟件實現(xiàn)了鏈式DMA的上層應用設計。經(jīng)測試與驗證,該系統(tǒng)能很好地完成成像模塊圖像數(shù)據(jù)的實時采集并穩(wěn)定快速地傳送到上位機,無掉幀現(xiàn)象,性能穩(wěn)定。系統(tǒng)適用于顯微鏡自動對焦的高分辨率圖像模塊數(shù)據(jù)采集。
中圖分類號: TN91
文獻標識碼: A
文章編號: 0258-7998(2015)02-0042-03
Design of microscope image acquisition system based on PCI Express
Wang Fubei,Wang Jiahua,Wu Qiongshui
School of Electronic Information,Wuhan University,Wuhan 430072,China
Abstract: In order to realize real-time transmission of high-resolution images, the paper introduces the design of PCI Express image acquisition system in x4 channel. The system will be used in a large amount of data transmission of imaging module on Microscope.The system adopts a EP4CGX30CF23C8 FPGA of Altera company, and the chip integrates PCIE core which supports the function of chain DMA transmission. By using the Jungo company′s Windriver software, the paper has realized the design of the upper application of chain DMA. The system has been tested and verified that it can accomplish the acquisition of image data which comes from imaging module in real-time and transmitted rapidly and stably to upper monitor, with no frame dropping phenomenon and stable performance. This system is suitable for the data aquisition of the high-resolution and a large amount of data imaging module.
Key words : PCI Express;chain DMA;image acquisition

 

0 引言

  隨著圖像傳感器的快速發(fā)展,成像質量和圖像幀率得到快速提升,高分辨率的圖像給人們的生活帶來了極大的便利。但與此同時,快速、實時的傳輸圖像數(shù)據(jù)成了難題。傳統(tǒng)的顯微鏡系統(tǒng)主要使用人工操作,對操作人員的經(jīng)驗和知識量要求比較高,并且存在很多不定因素。采用自動對焦則大大解決了以上問題,目前國內外顯微鏡自動對焦在算法上都比較成熟,但圖像的分辨率并不是很高[1]。而提高圖像分辨率不僅提高了自動對焦的精準度,并且可以采集到樣品更多的細節(jié),給研究者提供更多的信息。鑒于以往顯微鏡圖像采集系統(tǒng)的不足,針對高分辨率圖像的數(shù)據(jù)采集,本文選擇了基于PCI Express(PCIe)總線的圖像采集系統(tǒng)實現(xiàn)顯微鏡圖像的采集。

  目前計算機使用最為廣泛的PCI總線接口最高工作頻率能達到66 MHz,峰值帶寬理論上可以達到532 MB/s,但這種并行總線的傳輸速度和帶寬已逐漸滿足不了高速傳輸?shù)囊蟆O啾葌鹘y(tǒng)的PCI總線,21世紀初提出的高速差分總線PCIe采用點對點串行連接、全雙工的傳輸方式大大提升了傳輸速度和帶寬。本文實現(xiàn)的1.0版本x4規(guī)格通道理論帶寬可達到2 GB/s,比USB3.0快,更是千兆以太網(wǎng)傳輸速度的8倍。

1 系統(tǒng)總體設計


001.jpg

  設計的整體結構如圖1所示,系統(tǒng)給PCIe采集系統(tǒng)提供5 V電源,F(xiàn)PGA正常工作后開始執(zhí)行芯片的固化程序。首先通過IIC對CMOS傳感器進行初始化,CMOS傳感器開始拍攝細胞的圖像,同時通過Cameralink接口將圖像數(shù)據(jù)送至系統(tǒng)數(shù)據(jù)緩存。FPGA將接收到的4對差分數(shù)據(jù)解析得到圖像數(shù)據(jù),接著以鏈式DMA傳輸方式將數(shù)據(jù)直接送至IP硬核,然后將數(shù)據(jù)打包送至上位機,上位機通過應用軟件將圖像顯示并保存。

2 系統(tǒng)硬件設計

  2.1 CMOS成像模塊

  本系統(tǒng)的圖像傳感器采用Aptina公司生成的MT9-F002I12STCU芯片。FPGA通過IIC協(xié)議對CMOS芯片進行初始化,配置相關寄存器。初始化之后,圖像尺寸為4 096H×3 072V,每幀圖像大小為12 MB,每秒可生成15幀圖像。該模塊固定在顯微鏡上,單獨為其提供5 V電源,模塊內部可轉換2.8 V和1.8 V電壓為傳感器供電。CMOS傳感器的初始化程序以及圖像數(shù)據(jù)都是通過Cameralink傳輸。

  2.2 PCIe總線接口

  PCIe總線采用串行連接的方式,并使用數(shù)據(jù)包進行數(shù)據(jù)傳輸。數(shù)據(jù)報文首先在設備的核心層中產(chǎn)生,然后再經(jīng)過設備的事務層、數(shù)據(jù)鏈路層和物理層,最終發(fā)送出去,接收端的數(shù)據(jù)也需要通過物理層、物理鏈路層和事務層,并最終到達核心層。目前主流的PCIe總線接口方法有兩種,方法1:用PEX8311芯片,該方法實現(xiàn)了物理層、數(shù)據(jù)鏈路層和事務層的控制邏輯,簡單易實現(xiàn),但是缺乏靈活性和可配置性[2]。方法2:利用FPGA芯片內部集成IP硬核,IP硬核完成了物理層和數(shù)據(jù)鏈路層的協(xié)議,用戶需自行設計PCIe的應用層協(xié)議和TLP,開發(fā)難度較大,但可以根據(jù)需求合理配置[3]。本系統(tǒng)采用方法2,選用Altera公司的EP4CGX30CF23C8芯片,該芯片內部集成了IP硬核模塊,可以實現(xiàn)x4通道的PCIe接口。

3 系統(tǒng)軟件設計

  3.1 鏈式DMA傳輸設計

  圖像數(shù)據(jù)傳輸采用DMA技術保證其實時性[4],利用鏈式DMA技術提高DMA執(zhí)行效率并配合SGDMA技術解決計算機離散物理頁的DMA傳輸問題[5]。鏈式DMA區(qū)別于普通DMA的最大特點就是可以一次執(zhí)行多次DMA,因此執(zhí)行效率非常高,非常適合于上位機上物理分頁地址不連續(xù)的DMA數(shù)據(jù)傳輸。本系統(tǒng)中僅用到DMA寫模塊,數(shù)據(jù)由FPGA流向計算機。具體實現(xiàn)的方法是:在主機端開辟一塊內存區(qū)域,用來存儲描述符表。描述符表是用來描述在主機與外設之間數(shù)據(jù)傳輸有關的地址與長度信息的,它由一個表頭和多個描述符組成。數(shù)據(jù)傳輸前,用戶將控制參數(shù)、端點地址、內存物理地址寫入并啟功傳輸。鏈式DMA控制器會及時從內存中讀取描述符表來指揮DMA的傳輸過程。

  3.2 驅動程序設計

  驅動程序采用Jungo公司開發(fā)的Windriver軟件,并利用其特有的KernelPlugln(KP)技術實現(xiàn)高效的中斷數(shù)據(jù)采集服務。主要依靠3個函數(shù):KP_IntAtIrqt、KP_IntAtDpc、KP_Call。

  KP_IntAtIrqt:高優(yōu)先級中斷服務程序,硬件中斷產(chǎn)生時,該函數(shù)被調用。當返回值大于零時繼續(xù)調用KP_IntAtDpc。本項目中,數(shù)據(jù)采集的全部工作都在該函數(shù)里面完成。當一幅圖像采集完成后返回1以便繼續(xù)調用IntAtDpc低優(yōu)先級中斷。

  KP_IntAtDpc:低優(yōu)先級中斷服務程序,KP_IntAtIrqt返回值大于零時被調用,本項目中不做任何處理,返回值永遠大于零以調用用戶模式下的中斷服務程序。

  KP_Call:主要用于用戶模式與KP通信,本項目中用來傳遞數(shù)據(jù)緩沖區(qū)以及描述符表的地址,需要注意的是用戶應用程序與KP驅動程序擁有不同的虛擬地址系統(tǒng),因此應用程序的地址在驅動程序里不能直接使用,需要經(jīng)過地址轉換才能使用。

002.jpg

  圖2是中斷數(shù)據(jù)采集的流程圖。為提高數(shù)據(jù)采集效率,采用兩片緩沖區(qū)交替緩沖機制,應用程序首先申請兩片數(shù)據(jù)緩沖區(qū),并且對其初始化。然后通過KP_Call函數(shù)將緩沖區(qū)的地址及其頁表信息等傳入驅動程序內核模式下的KernelPlugln,用于鏈式DMA描述符表的更新。圖像采集卡每采集到3行圖像數(shù)據(jù)發(fā)送一次中斷,中斷服務程序立刻響應中斷。首先讀取BAR2空間偏移地址0x40處的32 bit狀態(tài)寄存器,根據(jù)其值判斷當前數(shù)據(jù)位于圖像的奇數(shù)行或偶數(shù)行。中斷程序維護兩個鏈式DMA描述符表,然后根據(jù)狀態(tài)寄存器的值判斷啟動對應的鏈式DMA以及更新下次將要使用的鏈式DMA描述符表,圖像采集卡將根據(jù)描述符表將數(shù)據(jù)寫入相應數(shù)據(jù)緩沖區(qū)的對應地址。最后,再次根據(jù)狀態(tài)寄存器的值判斷一幅圖像是否采集完成,若完成則通知應用程序并繼續(xù)等待下一次中斷,否則直接等待下一次中斷。

4 實驗結果分析

  采集圖像之前先通過Altera公司設計的PCIe測速軟件在1小時內對采集系統(tǒng)進行了6次測試,測試得到的結果如表1所示。

005.jpg

  由表1的測試結果可以看出,DMA寫的速度已經(jīng)達到理論帶寬的80%以上,DMA讀的速度大約為580 MB/s。經(jīng)過分析,測試速度較理論速度偏低大致有以下3個原因:(1)DMA讀取為非轉發(fā)事務,所以讀的速度比寫的要慢;(2)中斷響應和配置DMA寄存器延時造成速度降低;(3)計算機本身硬件條件導致傳輸速度偏低。相比于成像模塊每秒產(chǎn)生15幀12 MB的圖像,采集系統(tǒng)能夠很好地完成實時采集成像模塊生成的圖像。

003.jpg

  將采集系統(tǒng)應用于顯微鏡自動對焦圖像采集,經(jīng)過長時間的采集測試,未出現(xiàn)丟幀現(xiàn)象,采集系統(tǒng)正常工作。圖3是采集的未經(jīng)解碼的原始圖像數(shù)據(jù)。圖4是通過快速插值解碼之后的彩色的圖像。兩幅圖中的黑點是鏡頭未清潔干凈導致。實驗結果表明,本系統(tǒng)能夠很好地采集顯微鏡自動對焦成像模塊生成的高分辨率圖像,性能穩(wěn)定,適用于大數(shù)據(jù)量的實時快速采集。

004.jpg

5 結束語

  本文詳細介紹了基于PCI Express的圖像采集系統(tǒng),為大數(shù)據(jù)量的實時快速傳輸提供了有效的方案。并通過測試證明了該系統(tǒng)能很好地應用于顯微鏡自動對焦成像模塊的圖像采集,實現(xiàn)了高分辨率圖像的實時顯示。相對于熱門的USB3.0以及千兆以太網(wǎng),本設計在傳輸速度上有明顯的優(yōu)勢,并且當傳輸速度有更高的要求時,還可以將x4通道擴展成x8或x16通道,得到更高的傳輸速度。

  參考文獻

  [1] 張磊.顯微鏡用數(shù)碼相機硬件結構及其視頻流算法實現(xiàn)與應用[D].杭州:浙江大學,2011.

  [2] 安駿.基于橋接芯片PEX8111的PCIE總線接口設計[J].科技資訊,2010(3):23-24.

  [3] 沈輝,張萍.FPGA在PCI Express總線接口中的應用[J].計算機應用技術,2010,33(14):109-111.

  [4] 李木國,黃影,劉于之.基于PCIe總線的高速數(shù)據(jù)采集卡設計與實現(xiàn)[J].測控技術,2013,32(7):19-22.

  [5] 黃世中,金志剛.利用WinDriver實現(xiàn)鏈式DMA[J].電子設計工程,2013,21(8):6-9.


此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。