《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于ARM和CPLD的無線內(nèi)窺系統(tǒng)設(shè)計
基于ARM和CPLD的無線內(nèi)窺系統(tǒng)設(shè)計
摘要: 設(shè)計并實(shí)現(xiàn)一種基于ARM7芯片AT9lR40008以及藍(lán)牙的無線內(nèi)窺系統(tǒng),。系統(tǒng)使用CPLD控制CMOS攝像頭采集實(shí)時圖像數(shù)據(jù),用ARM7進(jìn)行JPEG-LS壓縮,,通過藍(lán)牙傳輸給PC上的接收軟件,,對圖像進(jìn)行解碼顯示,。該系統(tǒng)演示了一個完整的數(shù)字化微型無線內(nèi)窺系統(tǒng),,是進(jìn)一步使集成芯片大規(guī)模推廣的基礎(chǔ),。
Abstract:
Key words :

  引 言

  目前微米,、納米技術(shù)的研究非?;钴S,,使得微小技術(shù)、微型機(jī)械電子系統(tǒng)(MEMS)技術(shù)得到迅速發(fā)展,,從而大大促進(jìn),,醫(yī)用器材的微型化、微觀化,,出現(xiàn)了醫(yī)用光電微傳感器(如無線內(nèi)窺鏡),。無線內(nèi)窺鏡以微機(jī)電系統(tǒng)為基礎(chǔ),由感知外界信息(力,、熱,、光、生,、磁,、化等)的微型傳感器、控制對象的執(zhí)行器、信號處理和控制電路,、通信接口和電源等部件組成,,將信息的獲取、處理和執(zhí)行集成在一起,,形成一體化的,、具有多種功能的微型系統(tǒng)。

  當(dāng)前,,醫(yī)用無線內(nèi)窺鏡已有產(chǎn)品問世,。以色列GI公司早在2001年5月即推出其M2A無線內(nèi)窺鏡產(chǎn)品,并獲得美國FDA認(rèn)證,。GI公司生產(chǎn)的膠囊型內(nèi)窺鏡長為26 mm,,直徑為11mm,重3.5g,;采用微功耗CMOS圖像傳感器,,可觀察視角為14O°,可看清0.lmm左右的物體,,采集速度為2幀/s,。日本RF公司也于2001年底研制出NORIKA3膠囊型內(nèi)窺鏡系統(tǒng)。該產(chǎn)品采用超小型CCD攝像頭,,含有8個鏡頭,,可觀察視角為360°,圖像幀率可達(dá)30幀/s,。“NORIKA3”利用位于藥丸內(nèi)的轉(zhuǎn)子線圈與產(chǎn)生磁場的體外定子線圈形成馬達(dá)結(jié)構(gòu)來實(shí)現(xiàn)藥丸系統(tǒng)姿態(tài)控制,。RF公司在其網(wǎng)站上發(fā)布了產(chǎn)品的設(shè)計模型。此外,,Gong和Park等人電獨(dú)立發(fā)表論文,描述了各自關(guān)于無線內(nèi)窺鏡的設(shè)計,。

  目前國內(nèi)尚無獨(dú)立制造該產(chǎn)品的能力,,而國外的產(chǎn)品價格昂貴,因此,,研發(fā)具有自主知識產(chǎn)權(quán)的無線內(nèi)窺鏡產(chǎn)品具有重要意義,。本文介紹無線內(nèi)窺系統(tǒng)的系統(tǒng)結(jié)構(gòu),圖像壓縮標(biāo)準(zhǔn)JPEG-LSARM7平臺上的實(shí)現(xiàn),,以及實(shí)現(xiàn)過程中所采用的調(diào)試方法,、優(yōu)化方法。

  1 系統(tǒng)組成與工作原理

  1.1 內(nèi)窺系統(tǒng)組成結(jié)構(gòu)

  如圖1所示,,無線內(nèi)窺鏡系統(tǒng)主要由主機(jī)和從機(jī)(無線內(nèi)窺鏡)組成,。從機(jī)由攝像頭采集原始圖像,經(jīng)過壓縮處理,通過無線方式把壓縮后的圖像數(shù)據(jù)傳輸給主機(jī),;主機(jī)通過USB連接藍(lán)牙適配器接收壓縮圖像,,并轉(zhuǎn)發(fā)給PC上的管理軟件,管理軟件將圖像解壓縮并顯示出來,。

內(nèi)窺系統(tǒng)組成結(jié)構(gòu)

  1.2 無線內(nèi)窺鏡組成結(jié)構(gòu)

  如圖2所示,,無線內(nèi)窺鏡采用CPLD芯片EPM7256-144,實(shí)現(xiàn)30萬像素CMOS攝像頭OV7660的圖像采集控制,,以及數(shù)據(jù)和地址總線的切換,。利用Atmel公司的ARM7芯片AT91R40008,實(shí)現(xiàn)JPEG-LS無損圖像壓縮與藍(lán)牙無線數(shù)據(jù)傳輸,,實(shí)現(xiàn)溫度,、壓力采集以及可控光源和系統(tǒng)控制。CPLD和ARM7之間的圖像數(shù)據(jù)交換通過8位數(shù)據(jù)總線實(shí)現(xiàn),,ARM7和CPLD之間的握手控制則通過I/O口線實(shí)現(xiàn),。由于圖像數(shù)據(jù)量較大,按640×480分辨率,、8位圖像的格式計算達(dá)幾十萬字節(jié),,故本系統(tǒng)外部擴(kuò)展了2片上作在乒乓方式的512KB的SRAM作數(shù)據(jù)緩存。

無線內(nèi)窺鏡組成結(jié)構(gòu)

  1.3 系統(tǒng)工作原理

  內(nèi)窺系統(tǒng)可以實(shí)現(xiàn)圖像的連續(xù)采集以及溫度,、濕度,、照明亮度等的控制。其中圖像采集是系統(tǒng)的核心,,其工作流程如下:

 ?、倌J(rèn)情況下,系統(tǒng)工作在休眠狀態(tài),。

 ?、诠ぷ魅藛T通過PC管理軟件發(fā)送命令開始采集圖像,軟件通過USB接口把命令發(fā)送給藍(lán)牙適配器,,然后發(fā)送給無線內(nèi)窺鏡,。

  ③內(nèi)窺鏡接收到圖像采集命令后,,ARM控制CPLD開始采集圖像數(shù)據(jù),。

  ④CPLD把采集到的一幀圖像數(shù)據(jù)寫入一塊SRAM中,,把ARM的總線切換到該SRAM上,,并通知ARM進(jìn)行壓縮;同時CPLD往另一塊SRAM中繼續(xù)采集下一幀圖像,,便于提高系統(tǒng)的吞吐率,。

 ?、軦RM通過藍(lán)牙模塊返回響應(yīng)命令,并返回采集JPEG-LS圖像的頭信息,。

 ?、轕C管理軟件發(fā)送命令接收下一行壓縮圖像,ARM壓縮該行原始圖像,,并發(fā)送壓縮數(shù)據(jù),;如果出錯,可以重新發(fā)送,。重復(fù)本步驟可以獲取整幀壓縮圖像,。

  ⑦PC軟件對壓縮圖像解碼并顯示,,并提供其他附加功能,,如圖像處理、保存等,。

 ?、嘀貜?fù)步驟②~⑦,獲取下一幀壓縮圖像,。

  由上述流程可以看出,,JPEG-LS壓縮以及無線信道傳輸決定整個系統(tǒng)的圖像傳輸速率。無線傳輸采用藍(lán)牙技術(shù),,其標(biāo)稱空中速率為1 Mbps,,不易提高;因此,,系統(tǒng)設(shè)計的核心是JPEG-LS的編碼效率,。

  2 ARM與攝像頭接口設(shè)計

  系統(tǒng)采用美國Omni Vision公司(簡稱為“OV公司”)開發(fā)的CMOS彩色圖像傳感器芯片。該芯片將CMOS光感應(yīng)核與外圍支持電路集成在一起,,具有可編程控制與視頻模/數(shù)混合輸出等功能,。

  (1)SSCB配置

  為使芯片正常上作,需要通過SCCB總線來完成配置工作,。SCCB總線是OV公司定義的一套串行總線標(biāo)準(zhǔn),,與I2C總線類似。配置時,,主要是寫OV7660的內(nèi)部寄存器,使芯片輸出格式正確的彩色圖像數(shù)據(jù),。OV7660共有100個左右的寄存器可以配置,,其數(shù)據(jù)手冊并未提供可用的配置值。系統(tǒng)調(diào)試過程中,,通過各種測試,,測出以下一系列配置數(shù)據(jù),可使OV7660輸出顏色豐富的圖像,如表l所列,。

推薦OV7660的配置表

  (2)圖像數(shù)據(jù)訪問

  AT91R40008不帶攝像頭接口,,因此系統(tǒng)增加了一塊CPLD實(shí)現(xiàn)CMOS攝像頭的時序,如圖3所示,。ARM只須訪問SRAM就可以訪問圖像數(shù)據(jù),。CPLD確保ARM的總線每次都只掛接一塊有完整圖像的SRAM。

ARM與CPLD接口設(shè)計

  3 ARM與藍(lán)牙接口設(shè)計

  藍(lán)牙是無線數(shù)據(jù)和語音傳輸?shù)拈_放式標(biāo)準(zhǔn),。它將各種通信設(shè)備,、計算機(jī)及其終端設(shè)備、各種數(shù)字系統(tǒng),,甚至家用電器,,采用無線方式連接起來。為了優(yōu)化系統(tǒng)設(shè)計,,我們采用性價比高的CSR BC2實(shí)現(xiàn)藍(lán)牙無線串口,。CSRBC2是一款高度整合的模塊級藍(lán)牙芯片,主要包括:基帶控制器,、2.4~2.5GHz的數(shù)字智能無線電和程序數(shù)據(jù)存儲器,。通過該模塊,系統(tǒng)可以提供無線標(biāo)準(zhǔn)UART接口,,支持多種波特率(如9.6 kbps,、19.2 kbps、38.4 kbps,、57.6kbps,、115.2 1kbps、230.4 kbps,、460.8 kbps,、92l.6 kbps)。本系統(tǒng)經(jīng)過測試發(fā)現(xiàn),,當(dāng)速率為460.8 kbps時,,藍(lán)牙芯片能夠正常工作;而在921.6kbps時,,會有很高的誤碼率,。藍(lán)牙模塊接口電路如圖4所示。

藍(lán)牙模塊接口電路

  4 JPEG-LS圖像編碼

  系統(tǒng)采集的原始圖像相關(guān)性大,、數(shù)據(jù)量大,,需要進(jìn)行圖像壓縮。醫(yī)學(xué)圖像要求將圖像質(zhì)量放在首位,,因此必須采用無損壓縮算法,。本系統(tǒng)采用靜態(tài)圖像無損壓縮技術(shù)JPEG-LS,,它是目前無損壓縮算法中性能較好的一種算法。JPEG-LS是ISO/ITU組織提出的最新的連續(xù)靜態(tài)圖像近無損壓縮標(biāo)準(zhǔn),。該標(biāo)準(zhǔn)采用LOCO-I(Low Complexity Lossless Compression for Images)核心算法,,建立簡單的上下文模型,在低復(fù)雜度的情況下實(shí)現(xiàn)了高壓縮率,;同時,,算法對圖像逐行進(jìn)行壓縮,降低了系統(tǒng)對圖像緩沖區(qū)的要求,。

  4.1 JPEG-LS工作原理簡介

  如圖5所示,,JPEG-LS的編碼過程主要包括預(yù)測、上下文建模和熵編碼,。核心算法LOCO-I采用鄰域非線性預(yù)測和Golomb熵編碼,。

JPEG-LS的編碼過程

點(diǎn)擊看原圖

 

 

  上下文建模是JPEG-LS編碼的基礎(chǔ),使用的建模方法是基于對上下文的認(rèn)識,。上下文首先根據(jù)圖5中a,、b、c,、d處像素值決定對x處像素足采用常規(guī)模式編碼還是采用游程模式編碼,。當(dāng)從上下文估計的連續(xù)像素在近似無失真編碼要求的容限內(nèi)幾乎完全相同時,選擇游程模式,;否則,,選擇常規(guī)模式。

  常規(guī)模式下首先完成預(yù)測,。預(yù)測器對位于a,、b、c等3個鄰近像素的重建組值Ra,、Rb,、Rc進(jìn)行綜合,形成x像素的預(yù)測值Px,,即:

程序

  預(yù)測誤差是x像索的實(shí)際值和預(yù)測值的差分,。通過一個與上下文有關(guān)的項對預(yù)測誤差進(jìn)行修正,以補(bǔ)償預(yù)測中的系統(tǒng)偏移,。如果采用近無損編碼,,則要對預(yù)測誤差進(jìn)行量化,所允許的最大誤差用一個“NEAR"參數(shù)表示,。對已修正的預(yù)測誤差進(jìn)行Golomb編碼,。Golomb編碼相當(dāng)于幾何分布下的Huffman編碼。它依賴于上下文,,而前面編碼的預(yù)測誤差也是以相同的上下文為基礎(chǔ),。

  為進(jìn)一步提高數(shù)據(jù)壓縮效率,JPEG-LS引入了游程模式,。此時編碼過程直接跳過預(yù)測和誤差編碼程序:編碼器從x處開始對像素值和a處像素重建值相同的一系列連續(xù)像素進(jìn)行計數(shù),,即統(tǒng)計游程的長度。當(dāng)遇到一個具有不同值的像素或當(dāng)前行的行尾時,,游程終止,。該游程長度經(jīng)過一個專門的性能更好、更適用的Golomb編碼擴(kuò)展程序來編碼,。

  4.2 JPEG-LS的移植問題

  本系統(tǒng)使用HP實(shí)驗室提供的開源JPEG-LS開發(fā)包,。完整的JPEG-LS開發(fā)包支持多種顏色模型,如多平面壓縮,、逐行或者逐點(diǎn)等壓縮方式,。本系統(tǒng)考慮到ARM系統(tǒng)資源的限制,只裁減了其中的逐行單文件壓縮方式,。原始開發(fā)包運(yùn)行在Linux或者Windows平臺上,,移植過程最主要的工作包括3點(diǎn)。

 ?、俨脺p不必要的功能,,如原始開發(fā)包中對多圖像編碼的支持。

 ?、卺槍ο到y(tǒng)設(shè)計移植后的接口,,如本模塊移植后,只提供以下幾個接口:

  • jls_global_init,,全局初始化函數(shù),,計算查詢表等,只需要啟動時調(diào)用一次,;
  • jls_image_init,,每幀圖像開始壓縮時都要調(diào)用一次的初始化;
  • jls_encode_one_line,,壓縮一行圖像,。

  ③對原開發(fā)包中使用的動態(tài)內(nèi)存分配需要移植,,解決的方案有2個:

  • 開發(fā)一個簡單的內(nèi)存管理模塊,;
  • 手動分配內(nèi)存。

  考慮到源碼包中使用的動態(tài)內(nèi)存不多,,系統(tǒng)采用第2種方案,。在移植過程中,建議先在PC上分配好一大塊內(nèi)存,,然后,,給開發(fā)包中需要分配的地方手動分配,。在PC上調(diào)試通過之后,就可以直接在ARM上面使用了,。

  5 調(diào)試及優(yōu)化方法

  5.1調(diào)試方法

  嵌入式系統(tǒng)的調(diào)試是一個很繁瑣而復(fù)雜的過程,。在調(diào)試之前劃分好模塊,可以大大提高調(diào)試效率,;另外為了調(diào)試,,還需要添加一些計劃項目之外的調(diào)試工具。

 

  本系統(tǒng)的調(diào)試工作分為3個部分,。

  (1)藍(lán)牙無線鏈路層調(diào)試

  藍(lán)牙無線鏈路層的調(diào)試可以直接借助PC上很多現(xiàn)有的串口工具來實(shí)現(xiàn),。

  (2)CMOS攝像頭調(diào)試

  CMOS攝像頭的調(diào)試有兩個部分:SCCB配置時序、RGB圖像數(shù)據(jù)時序,。

  一般的處理器都不帶SCCB接口,,因此要用處理器的口線模擬SCCB時序。此時的調(diào)試一般都是通過示波器觀察模擬的時序,,看足否符合芯片手冊上的要求,。為了驗證是否正確,一般可先讀一個指定的寄存器(這些寄存器都有出廠默認(rèn)值),;然后寫一個數(shù)據(jù),,讀取出來驗證是否吻合。

  RGB圖像數(shù)據(jù)時序由CPLD產(chǎn)生,,此時的調(diào)試需要ARM來配合,。本系統(tǒng)在調(diào)試時,在PC上編寫了一個簡單的串口接收程序,,ARM把SRAM中的圖像數(shù)據(jù)通過串口發(fā)送給該P(yáng)C,,PC上的程序把這些原始的RGB數(shù)據(jù)插值并顯示出來,從而可以得知CPLD的時序是否正確,。當(dāng)然,,調(diào)試時序時,示波器仍然是必不可少的工具,。

  (3)JPEG-LS算法調(diào)試

  JPEG-LS算法的調(diào)試分為兩個步驟:PC上的算法驗證和目標(biāo)板上的調(diào)試,。

  PC上的算法驗證使用VC6.O模擬目標(biāo)板上的運(yùn)行環(huán)境,測試目標(biāo)板上的各個功能接口,。本部分的驗證代碼可供下載,。

  目標(biāo)板上調(diào)試時,還是要借助串口,,把壓縮的圖像和原始圖像通過串口發(fā)送至PC,。Pc上的JPEG-LS解碼程序解碼壓縮圖像,然后與原始圖像對比,從而找出算法中的錯誤,。

  5.2 優(yōu)化方法

  為提高圖像傳輸?shù)膸?,本系統(tǒng)主要采用了2種優(yōu)化方法。

  (1)硬件優(yōu)化

  硬件優(yōu)化主要是在CPLD采集數(shù)據(jù)時,,使用雙緩沖,,使得連續(xù)采集下一幀圖像和傳輸上一幀圖像可以并行,從而提高系統(tǒng)的吞吐率,。

  (2)軟件優(yōu)化

  軟件優(yōu)化的作用在本系統(tǒng)的調(diào)試過程中效果明顯;本系統(tǒng)的第一個版本,,圖像采集速率僅為3 s/幀,;通過軟件優(yōu)化后,達(dá)到了最終的O.3 s/幀,。其優(yōu)化如下:

 ?、傺h(huán)外移,避免在循環(huán)中重復(fù)運(yùn)算,;

 ?、陬l繁使用的變量申明為寄存器變量;

 ?、郯阉械腏PEG-LS編碼函數(shù)代碼拷貝到RAM中執(zhí)行,。

  默認(rèn)情況下,所有的代碼都存放在Flash中,。ARM運(yùn)行時,,從Flash中讀取指令并且執(zhí)行。眾所周知,,F(xiàn)lash的訪問速度相對RAM而言,,相差一個數(shù)量級,因此,,如果把關(guān)鍵代碼放在RAM中,,執(zhí)行速率將會大大提高。而AT9lR40008內(nèi)部自帶512 KB的RAM,,足夠本系統(tǒng)使用,,因此,這個方法可行,。

  解決的方法有兩個,,一是寫一個啟動程序,在啟動時,,把系統(tǒng)所有的代碼都拷貝到RAM中,,這樣系統(tǒng)速度會提高。然而,,該方法實(shí)現(xiàn)起來較麻煩,,且如果程序擴(kuò)展,,可能會超過RAM的512 KB限制。因此,,本系統(tǒng)采用另外一個簡單方法,。采用IAR Embedded Workbench開發(fā)環(huán)境,通過閱讀其編譯器手冊發(fā)現(xiàn),,在函數(shù)之前添加一個__ramfunc偽指令,,那么鏈接器在生成啟動代碼時,會將該函數(shù)拷貝到RAM中,,從而提高運(yùn)行效率,。其使用例子如下:

  __ramfunc void encode_oneline(vcrid)

  通過使用該方法,系統(tǒng)的運(yùn)行效率提高了約lO倍,。

  結(jié)語

  本系統(tǒng)以ARM為核心,,實(shí)現(xiàn)了JPEG-LS無損圖像壓縮算法,并日結(jié)合CPLD實(shí)現(xiàn)了CMOS攝像頭的時序控制,。通過藍(lán)牙傳輸,,實(shí)現(xiàn)了數(shù)字化的無線內(nèi)窺系統(tǒng)。

  本系統(tǒng)具有良好的擴(kuò)充性,,可以使得系統(tǒng)更加微型化,。首先,如果采用CSR公司更新的BC3系列芯片,,則將融合ARM核以及藍(lán)牙功能,,可以更加減小內(nèi)窺鏡的體積。最重要的是,,如果發(fā)展自主產(chǎn)權(quán)的內(nèi)窺鏡芯片,,那么以現(xiàn)有的SOPC技術(shù),可以將ARM核,、CPLD邏輯門以及藍(lán)牙通信功能集成在一起,,形成無線內(nèi)窺鏡的集成解決方案,從而使其產(chǎn)業(yè)化成為可能,。

  本系統(tǒng)在實(shí)現(xiàn)過程中,,完成了一系列的調(diào)試工具,積累了調(diào)試以及優(yōu)化經(jīng)驗,。我國現(xiàn)有的醫(yī)療設(shè)備開發(fā)技術(shù)相對比較落后,,在此分享,希望對同類型的產(chǎn)品設(shè)計以及芯片生產(chǎn)能有一些參考價值,。

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