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

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

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

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

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

  Status設(shè)計成一個自動加“+”的2 bit的狀態(tài)標志,,程序根據(jù)Status的標識進入到相應(yīng)的狀態(tài)機實現(xiàn)讀、寫或是刷新的時序,。這樣的結(jié)構(gòu)極大簡化了DDR控制器的邏輯設(shè)計,,可以方便地在相對簡單和便宜的XPLD上實現(xiàn)。
  最后,,對DDR控制器的運行速度也有一定的要求,。速度越高數(shù)據(jù)傳輸?shù)难舆t也越小,但是過高的速度會增加系統(tǒng)功耗,。在本設(shè)計中,,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ù)運算,。所以設(shè)計一個容量相對較大、又可以方便隨機讀寫的緩存區(qū)是實現(xiàn)本文設(shè)計的關(guā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多種模式,。如果配置成本設(shè)計所需要的偽雙口RAM(單向讀,單向?qū)?,,每塊MFB可以配成2 KB,,16塊總共是32 KB,完全可以滿足要求,。

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

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