《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于XPLD的便攜式數(shù)字顯微鏡設計
基于XPLD的便攜式數(shù)字顯微鏡設計
曾 欣1,俞詩鯤2
1.深圳信息職業(yè)技術學院,廣東 深圳518029;2.美國德州儀器半導體技術有限公司,廣東 深圳51
摘要: 分析了目前市面上常見的數(shù)字顯微鏡設計方案的利弊,提出在嵌入式平臺上設計數(shù)字顯微鏡具有成本和性能優(yōu)勢。詳細闡述了利用XPLD芯片配合大容量的DDR SDRAM實現(xiàn)數(shù)字顯微鏡的方案。具體分析了設計中通過定制DDR控制器解決大容量存儲器和建立隨機存儲緩沖區(qū)的方法。
Abstract:
Key words :

摘  要: 分析了目前市面上常見的數(shù)字顯微鏡設計方案的利弊,提出在嵌入式平臺上設計數(shù)字顯微鏡具有成本和性能優(yōu)勢。詳細闡述了利用XPLD芯片配合大容量的DDR SDRAM實現(xiàn)數(shù)字顯微鏡的方案。具體分析了設計中通過定制DDR控制器解決大容量存儲器和建立隨機存儲緩沖區(qū)的方法。
 關鍵詞: XPLD;DDR控制器;高速圖像采集

  隨著數(shù)字多媒體技術的不斷發(fā)展,越來越多的模擬視頻設備被引入數(shù)字技術。傳統(tǒng)的應用于工業(yè)、醫(yī)療和教學的顯微鏡也可以借助數(shù)字技術來提升產(chǎn)品的性能和使用的舒適性。
  在大多數(shù)人的印象中,傳統(tǒng)的顯微鏡是一個純光學設備,觀測者通過目鏡觀測被放大顯微后的圖像。引入數(shù)字技術后,被觀測的圖像可以由圖像傳感器收集,然后通過高速數(shù)據(jù)總線發(fā)送的專用顯示屏上顯示,從而大大降低由長時間觀測帶來的疲勞感。另外,經(jīng)過數(shù)字化處理得到的圖像數(shù)據(jù)可以用于后臺分析,從而擴展了傳統(tǒng)顯微鏡的功能。
  數(shù)字顯微鏡是在傳統(tǒng)光學顯微鏡的基礎上,加裝一個數(shù)字采集模塊來替代目鏡。數(shù)字采集模塊中集成光學傳感器將光學圖像數(shù)字化后,經(jīng)高速數(shù)據(jù)總線傳輸?shù)綄S玫娘@示設備上(一般借助于電腦液晶顯示器)顯示出來。
  數(shù)字顯微鏡根據(jù)應用要求的不同可分為兩大類:一類是對圖像采集的速度沒有要求或要求不高,只需要對靜止的圖像進行分析,這類產(chǎn)品也可以稱為照相顯微鏡;另一類應用需要實時圖像數(shù)據(jù)用于后端處理,應用于各類工業(yè)監(jiān)控或識別認證。前一類產(chǎn)品設計比較容易,而后一類產(chǎn)品雖然實現(xiàn)上有一定的難度,但其應用范圍更為廣泛,而且可以兼容前一類產(chǎn)品的需求,是未來發(fā)展的趨勢。
  數(shù)字顯微鏡內(nèi)部的功能也可分成兩部分:數(shù)據(jù)采集和圖像處理。圖像處理根據(jù)應用的不同會采用不同的算法,由于后臺處理設備的差異,同一個算法的實現(xiàn)也不盡相同,在此不作詳細討論。而數(shù)據(jù)采集部分對于所有的數(shù)字顯微鏡系統(tǒng)本質(zhì)上都是一致的,而且往往是整個系統(tǒng)的瓶頸所在,本文將詳細討論。
1 主流的圖像采集方式
  目前市面上的數(shù)字顯微鏡主要有兩大類。
  (1)使用專用的數(shù)據(jù)采集卡,通過通用的串行或并行接口和PC機相連接,使用PC機的顯示屏作為顯示終端。常用的數(shù)據(jù)接口有USB、firewire1394、PCI等。由于在大多數(shù)應用中數(shù)字模塊會安裝在小型顯微鏡上,考慮到設備的便攜性和接口的通用性,市場上見到最多的是采用USB接口的數(shù)據(jù)采集卡。
  該方案最大的優(yōu)勢在于借助PC平臺。因為PC機集成的各種通用數(shù)據(jù)總線具有比較高的數(shù)據(jù)傳輸率,可以用來高速接收采集卡采集的數(shù)據(jù),其內(nèi)置大量的內(nèi)存可以用作數(shù)據(jù)采集緩存,而且PC機具有豐富的通用外設(如顯示和存儲),因此在PC平臺上搭建的數(shù)字顯微鏡功能擴展相對容易,產(chǎn)品設計周期較短。
  然而,該方案的一個致命缺陷在于數(shù)據(jù)傳輸?shù)乃俣?。對于顯微鏡設備而言,為了能夠清晰地辨別圖像中的特征結(jié)構(gòu),圖像需要達到至少500dpi的分辨率,這就要求圖像解析度至少達到1 024×768,最好是1 280×1024(1.3 M)。如果要做到實時采集和處理(30 f/s),數(shù)據(jù)量將達到1 280×1 024×30×8=300 Mb/s。專用數(shù)據(jù)采集卡的采集速度不成問題,瓶頸在于采集卡到PC機的傳輸帶寬。PC機PCI總線的速率為32(bit)×66=2 112 Mb/s,USB2.0的數(shù)據(jù)傳輸峰值可以達到480 Mb/s,firewire也可以達到400 Mb/s的傳輸速率,似乎都能滿足要求。問題在于PC機的體系結(jié)構(gòu)決定了任何外設都只可能是從設備,只能請求總線資源,而不能主動占有。在Windows(或是Linux)實時多任務操作系統(tǒng)的調(diào)度下,即使在系統(tǒng)不運行其他應用程序時,系統(tǒng)時間片和系統(tǒng)資源也會被操作系統(tǒng)內(nèi)核和各類外設分享。以最常用的USB總線為例,理論速率是480 Mb/s,但是真正能用到的只有100 Mb/s左右。正因為如此,現(xiàn)在市面上基于PC的數(shù)據(jù)采集設備產(chǎn)品性能都不太理想,采集1.3 M像素圖像時只能達到每秒7或8幀的幀率,達不到實時性要求。另外,對PC機的依賴也限制了這類系統(tǒng)在小型便攜式設備上的應用,這也間接提高了系統(tǒng)成本。
  (1)此類產(chǎn)品基本上是在前一種方案上的改進。為了解決傳輸速率問題,這類方案采用定制的PC和主板,并使用自己開發(fā)的操作系統(tǒng),使總線專門用于數(shù)據(jù)傳輸,保證速度。這類產(chǎn)品的問題是開發(fā)和設計成本高,因此價格高昂,一般也不能用于便攜式的小型顯微設備中。
  隨著嵌入式處理器的不斷發(fā)展,性能不斷提高,使得在嵌入式平臺上設計高速采集處理系統(tǒng)成為可能。本文將介紹一種基于XPLD和DSP的便攜式數(shù)字顯微鏡方案。
2 嵌入式數(shù)字顯微鏡系統(tǒng)結(jié)構(gòu)
   一個成熟的系統(tǒng)體系結(jié)構(gòu)要求系統(tǒng)內(nèi)各部分分工明確,同時又具有一定的通用性和可移植性。嵌入式平臺上一般使用DSP芯片實現(xiàn)圖像處理。DSP芯片在數(shù)學運算方面有獨到優(yōu)勢,但數(shù)據(jù)搬移卻不是它的長項,因此需要另一個協(xié)處理器來完成繁瑣的數(shù)據(jù)采集搬移任務。一般有ARM或FPGA/CPLD兩種選擇。ARM采用通用的系統(tǒng)結(jié)構(gòu),設計相對簡單,但是數(shù)據(jù)接口(傳感器接口和存儲器接口)也相對固定,不夠靈活。FPGA/CPLD雖然設計較復雜,但是應用靈活??紤]到不同的顯微鏡可能會用到各種不同的傳感器,設計中選用了后者。另一方面,采集到的圖像數(shù)據(jù)需要大量的緩存區(qū),而DSP往往希望不受控地直接從緩存區(qū)中獲得數(shù)據(jù),這樣才能發(fā)揮它的最大處理性能。最理想的結(jié)構(gòu)是FPGA控制數(shù)據(jù)采集,然后把采集到的數(shù)據(jù)放到一個雙口RAM中緩存起來,而DSP可以直接從雙口RAM中取數(shù)據(jù)進行運算。但是雙口RAM比較貴,而且容量小,用來緩存圖像數(shù)據(jù)不現(xiàn)實,所們還需要用FPGA來實現(xiàn)數(shù)據(jù)緩存。
  基于以上分析,顯微鏡前端采集處理模塊結(jié)構(gòu)設計如圖1所示。

  圖像采集模塊的核心是一塊可編程邏輯器件XPLD,它負責連接圖像傳感器和后端處理設備,并實現(xiàn)自動的圖像采集和數(shù)據(jù)傳輸功能。由它控制的DDR SDRAM為后端的DSP提供了大量的圖像數(shù)據(jù)緩沖器。XPLD實現(xiàn)的另一個功能是驅(qū)動液晶顯示屏顯示圖像。
 DSP是系統(tǒng)的后端,負責實時處理采集到的圖像數(shù)據(jù),根據(jù)不同要求實現(xiàn)各種圖像運算和連接外部數(shù)據(jù)存儲設備。
3 關鍵技術的實現(xiàn)
3.1 DDR控制器
  本設計首先面對的問題是需要大量的高速存儲器保存圖像數(shù)據(jù)。
  從光學傳感器采集的圖像數(shù)據(jù)是不能直接送到顯示器顯示的,因為光學傳感器和顯示器的圖像幀率是不同的。OV9630的圖像輸出幀率是30 f/s,而一般顯示器要求的幀率是60 f/s,這就要求系統(tǒng)有一個大容量的數(shù)據(jù)存儲區(qū)來緩沖一幀圖像。本設計選擇動態(tài)存儲器(DDR SDRAM)主要是考慮到價格因素:大容量動態(tài)存儲器的價格大概只有同樣大小靜態(tài)存儲器的五分之一。使用動態(tài)存儲器必須有相應的控制器來控制它的讀寫,目前有一些FPGA已經(jīng)集成了動態(tài)存儲器控制器或提供響應的庫支持,方案中為了盡可能節(jié)省成本,選用了LATTICE公司的XPLD系列產(chǎn)品,它沒有動態(tài)存儲器控制器的資源,所以要自行設計。
  動態(tài)存儲器的控制比靜態(tài)存儲器復雜得多。為了解決大容量存儲器地址總線寬度的問題,動態(tài)存儲器的地址分成了行和列兩部分復用到同一批管腳上。這樣在保持容量不變的條件下減小了數(shù)據(jù)總線的寬度,有利于減小芯片的尺寸,因此可以實現(xiàn)高密度、大容量的存儲,但同時也給操作帶來了麻煩:數(shù)據(jù)地址需要分兩次傳送,而且由于內(nèi)部地址譯碼的要求,行列地址傳送還需要有一定的間隔(CAS latency)。動態(tài)存儲器支持隨機讀寫(單字節(jié))或突發(fā)模式(一段連續(xù)的數(shù)據(jù))以適應不同長度的數(shù)據(jù)操作。另外,動態(tài)存儲器還需要通過定時充電放電(Reflesh)來保證信息不丟失。加上一些其他的錯誤恢復機制,一個完整的動態(tài)存儲器控制器設計起來非常復雜。
  對于本文的應用來說,只需要滿足圖像采集和暫存的要求,不需要實現(xiàn)所有的控制器功能,所以采用了如圖2所示的控制器模型。

  上電復位后進行控制器初始化,設定好控制器的工作模式,之后進入讀寫操作。本設計對于控制器的讀寫和刷新進行了極大的簡化。
  首先,所有的讀寫操作都是采用突發(fā)模式,并且設置成256 B的模式。因為顯微鏡應用中主要是采集和保存圖像數(shù)據(jù),這里碰到的都是連續(xù)的數(shù)據(jù)流,如對于130萬像素的圖像每行有1 280個連續(xù)像素點。使用最長的突發(fā)讀寫模式可以最大限度地提高讀寫效率,而且可以簡化控制器的設計(不要判斷是采用突發(fā)模式還是隨機模式)。
  其次,通用的DDR控制器都是接受系統(tǒng)的指令再進行相應的操作。而本文的應用要求相對固定:即接收從圖像傳感器發(fā)送過來的圖像數(shù)據(jù);輸出相應的數(shù)據(jù)給后端DSP處理和顯示器顯示。因為圖像輸入輸出數(shù)據(jù)的比例是固定的1:2(CMOS采集輸入30 f/s,顯示器輸出要求60 f/s),即每次寫操作對應2次讀操作,所以可以簡單地用一個狀態(tài)標識Status來規(guī)定下一次操作,如表1所示。

  Status設計成一個自動加“+”的2 bit的狀態(tài)標志,程序根據(jù)Status的標識進入到相應的狀態(tài)機實現(xiàn)讀、寫或是刷新的時序。這樣的結(jié)構(gòu)極大簡化了DDR控制器的邏輯設計,可以方便地在相對簡單和便宜的XPLD上實現(xiàn)。
  最后,對DDR控制器的運行速度也有一定的要求。速度越高數(shù)據(jù)傳輸?shù)难舆t也越小,但是過高的速度會增加系統(tǒng)功耗。在本設計中,DDR是用于圖像采集和圖像顯示之間的緩沖,DDR的數(shù)據(jù)吞吐速度必須要大于輸入和輸出數(shù)據(jù)的總和。輸入端的圖像傳感器運行速度是48 MB/s,輸出端的圖像顯示要求108 MB/s,因此DDR的操作速率要大于156 MB/s,考慮到各種開銷,選擇了192 MB/s的操作速率。
3.2 圖像數(shù)據(jù)緩存
  雖然解決了大容量存儲器的問題,還仍不能實現(xiàn)所需要的顯示和數(shù)據(jù)處理功能。從顯示的要求看,需要連續(xù)的1 280個圖像數(shù)據(jù),而直接從DDR中讀出的數(shù)據(jù)每次最多256個,所以需要另一個緩沖區(qū)緩存至少1 280個數(shù)據(jù)。從DSP處理的角度看,如前文所述,也不希望被動接收256個連續(xù)數(shù)據(jù),最好是能方便地從一塊緩沖區(qū)中取出數(shù)據(jù)運算。所以設計一個容量相對較大、又可以方便隨機讀寫的緩存區(qū)是實現(xiàn)本文設計的關鍵。
  因為緩沖區(qū)可以從DDR控制器和DSP/顯示控制單元兩個方面來操作,所以必須是雙口RAM。從成本的角度考慮,使用外部雙口RAM的方案不現(xiàn)實。XPLD內(nèi)部提供了16塊多功能模塊MFB(Mul-Function Block),其結(jié)構(gòu)簡圖如3所示。這16塊多功能模塊可以隨意配置成TURE DPRAM(真雙口RAM)、PESUDO DPRAM(偽雙口RAM)、SRAM(單口RAM)、FIFO、CAM(查找表)和LOGIC多種模式。如果配置成本設計所需要的偽雙口RAM(單向讀,單向?qū)?,每塊MFB可以配成2 KB,16塊總共是32 KB,完全可以滿足要求。

  利用XPLD內(nèi)部的偽雙口RAM,設計出如圖4所示的緩沖結(jié)構(gòu)。

  本設計中建立了3塊512 B的雙口RAM用于緩沖,其邏輯功能表述如下:
  (1)雙口RAM1、雙口RAM2和DDR SDRAM共同組成圖像采集的大容量高速緩沖。圖像數(shù)據(jù)由傳感器輸出經(jīng)過雙口RAM1緩存后以頁操作的模式寫入DDR SDRAM;同時DDR控制器以前文所述的邏輯用頁模式將數(shù)據(jù)從DDR SDRAM中讀到雙口RAM2中用于顯示。這里需要注意的是雙口RAM的大小。原則上說,因為圖像的格式是1 280×1 024,每塊雙口RAM需要緩沖2行1 280×2的數(shù)據(jù)來保證舊的數(shù)據(jù)不會被新來的數(shù)據(jù)覆蓋掉。但是因為前文設計的DDR控制器效率極高,且DDR的傳輸速率(大于200 MB/s)遠大于圖像傳感器(48 MB/s)和顯示器(108 MB/s)要求的數(shù)據(jù)速率。因此雙口RAM1和雙口RAM2只需要512 B,滿足DDR兩頁輪換的要求,就可以保證沒有數(shù)據(jù)丟失或被覆蓋掉。
      (2)雙口RAM3是專門供DSP使用的,它的設置相對靈活,需要根據(jù)后端算法的不同設置大小和更新機制。本文設計的系統(tǒng)圖像處理功能較少,所以留出512 B即可。
  從以上設計的結(jié)構(gòu)可以看出,整個系統(tǒng)基于嵌入式平臺,其核心部件是一顆簡單的XPLD可編程邏輯器件,它獨立完成了圖像采集、數(shù)據(jù)存儲和圖像顯示功能,在采集130萬像素圖像時實時顯示幀率達到30 f/s,以低廉的成本實現(xiàn)了高速數(shù)字顯微鏡的基本功能。而且整個實現(xiàn)過程沒有占用DSP的處理資源,并且還給后端的DSP預留出一塊高速的隨機讀寫緩沖區(qū)。該方案稍加修改,便可以應用到各種不同的應用中,移植性極佳。
參考文獻
[1] 劉德良,姚春蓮,李煒,等.多分辨率圖像實時采集系統(tǒng)的FPGA邏輯設計.電子設計應用,2003(10).
[2] 李博文,楊學友,李慧娟.VHDL在高速圖像采集系統(tǒng)中的應用設計.單片機與嵌入式系統(tǒng)應用,2003(10).
[3] 俞詩鯤.基于單片DSP的指紋識別系統(tǒng)研究與實現(xiàn).武漢大學碩士論文,2003.
[4] Lattice CPLD.http://www.latticesemi.com.
[5] TI DSP.http://www.ti.com.
[6] DDR SDRAM.http://www.samsung.com/Products/Semicon-ductor/common.
[7] ICM110U 3MP CMOS sensor.http://www.ic-media.com.
 

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