基於ARM7的無線內窺系統設計

2020-12-19 電子產品世界

  引 言

本文引用地址:http://www.eepw.com.cn/article/80831.htm

  目前微米、納米技術的研究非常活躍,使得微小技術、微型機械電子系統(MEMS)技術得到迅速發展,從而大大促進,醫用器材的微型化、微觀化,出現了醫用光電微傳感器(如無線內窺鏡)。無線內窺鏡以微機電系統為基礎,由感知外界信息(力、熱、光、生、磁、化等)的微型傳感器、控制對象的執行器、信號處理和控制電路、通信接口和電源等部件組成,將信息的獲取、處理和執行集成在一起,形成一體化的、具有多種功能的微型系統。

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

  目前國內尚無獨立製造該產品的能力,而國外的產品價格昂貴,因此,研發具有自主智慧財產權的無線內窺鏡產品具有重要意義。本文介紹無線內窺系統的系統結構,圖像壓縮標準JPEG-LS在ARM7平臺上的實現,以及實現過程中所採用的調試方法、優化方法。

  1 系統組成與工作原理

  1.1 內窺系統組成結構

  如圖1所示,無線內窺鏡系統主要由主機和從機(無線內窺鏡)組成。從機由攝像頭採集原始圖像,經過壓縮處理,通過無線方式把壓縮後的圖像數據傳輸給主機;主機通過USB連接藍牙適配器接收壓縮圖像,並轉發給PC上的管理軟體,管理軟體將圖像解壓縮並顯示出來。

  

 

  1.2 無線內窺鏡組成結構

  如圖2所示,無線內窺鏡採用CPLD晶片EPM7256-144,實現30萬像素CMOS攝像頭OV7660的圖像採集控制,以及數據和地址總線的切換。利用Atmel(代理商:聚興科技)公司的ARM7晶片AT91R40008,實現JPEG-LS無損圖像壓縮與藍牙無線數據傳輸,實現溫度、壓力採集以及可控光源和系統控制。CPLD和ARM7之間的圖像數據交換通過8位數據總線實現,ARM7和CPLD之間的握手控制則通過I/O口線實現。由於圖像數據量較大,按640×480解析度、8位圖像的格式計算達幾十萬字節,故本系統外部擴展了2片上作在桌球方式的512KB的SRAM作數據緩存。

  

 

  1.3 系統工作原理

  內窺系統可以實現圖像的連續採集以及溫度、溼度、照明亮度等的控制。其中圖像採集是系統的核心,其工作流程如下:

  ①默認情況下,系統工作在休眠狀態。

  ②工作人員通過PC管理軟體發送命令開始採集圖像,軟體通過USB接口把命令發送給藍牙適配器,然後發送給無線內窺鏡。

  ③內窺鏡接收到圖像採集命令後,ARM控制CPLD開始採集圖像數據。

  ④CPLD把採集到的一幀圖像數據寫入一塊SRAM中,把ARM的總線切換到該SRAM上,並通知ARM進行壓縮;同時CPLD往另一塊SRAM中繼續採集下一幀圖像,便於提高系統的吞吐率。

  ⑤ARM通過藍牙模塊返迴響應命令,並返回採集JPEG-LS圖像的頭信息。

  ⑥PC管理軟體發送命令接收下一行壓縮圖像,ARM壓縮該行原始圖像,並發送壓縮數據;如果出錯,可以重新發送。重複本步驟可以獲取整幀壓縮圖像。

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

  ⑧重複步驟②~⑦,獲取下一幀壓縮圖像。

  由上述流程可以看出,JPEG-LS壓縮以及無線信道傳輸決定整個系統的圖像傳輸速率。無線傳輸採用藍牙技術,其標稱空中速率為1 Mbps,不易提高;因此,系統設計的核心是JPEG-LS的編碼效率。

  2 ARM與攝像頭接口設計

  系統採用美國Omni Vision公司(簡稱為「OV公司」)開發的CMOS彩色圖像傳感器晶片。該晶片將CMOS光感應核與外圍支持電路集成在一起,具有可編程控制與視頻模/數混合輸出等功能。

  (1)SSCB配置

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

  

 

  (2)圖像數據訪問

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

  

   3 ARM與藍牙接口設計

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

   4 JPEG-LS圖像編碼

  系統採集的原始圖像相關性大、數據量大,需要進行圖像壓縮。醫學圖像要求將圖像質量放在首位,因此必須採用無損壓縮算法。本系統採用靜態圖像無損壓縮技術JPEG-LS,它是目前無損壓縮算法中性能較好的一種算法。JPEG-LS是ISO/ITU組織提出的最新的連續靜態圖像近無損壓縮標準。該標準採用LOCO-I(Low Complexity Lossless Compression for Images)核心算法,建立簡單的上下文模型,在低複雜度的情況下實現了高壓縮率;同時,算法對圖像逐行進行壓縮,降低了系統對圖像緩衝區的要求。

  4.1 JPEG-LS工作原理簡介

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

  

  上下文建模是JPEG-LS編碼的基礎,使用的建模方法是基於對上下文的認識。上下文首先根據圖5中a、b、c、d處像素值決定對x處像素足採用常規模式編碼還是採用遊程模式編碼。當從上下文估計的連續像素在近似無失真編碼要求的容限內幾乎完全相同時,選擇遊程模式;否則,選擇常規模式。

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

   預測誤差是x像索的實際值和預測值的差分。通過一個與上下文有關的項對預測誤差進行修正,以補償預測中的系統偏移。如果採用近無損編碼,則要對預測誤差進行量化,所允許的最大誤差用一個「NEAR"參數表示。對已修正的預測誤差進行Golomb編碼。Golomb編碼相當於幾何分布下的Huffman編碼。它依賴於上下文,而前面編碼的預測誤差也是以相同的上下文為基礎。

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

  4.2 JPEG-LS的移植問題

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

  ①裁減不必要的功能,如原始開發包中對多圖像編碼的支持。

  ②針對系統設計移植後的接口,如本模塊移植後,只提供以下幾個接口:

  jls_global_init,全局初始化函數,計算查詢表等,只需要啟動時調用一次;

  jls_image_init,每幀圖像開始壓縮時都要調用一次的初始化;

  jls_encode_one_line,壓縮一行圖像。

  ③對原開發包中使用的動態內存分配需要移植,解決的方案有2個:

  開發一個簡單的內存管理模塊;

  手動分配內存。

  考慮到源碼包中使用的動態內存不多,系統採用第2種方案。在移植過程中,建議先在PC上分配好一大塊內存,然後,給開發包中需要分配的地方手動分配。在PC上調試通過之後,就可以直接在ARM上面使用了。

  5 調試及優化方法

  5.1調試方法

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

  本系統的調試工作分為3個部分。

  (1)藍牙無線鏈路層調試

  藍牙無線鏈路層的調試可以直接藉助PC上很多現有的串口工具來實現。

  (2)CMOS攝像頭調試

  CMOS攝像頭的調試有兩個部分:SCCB配置時序、RGB圖像數據時序。

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

  RGB圖像數據時序由CPLD產生,此時的調試需要ARM來配合。本系統在調試時,在PC上編寫了一個簡單的串口接收程序,ARM把SRAM中的圖像數據通過串口發送給該PC,PC上的程序把這些原始的RGB數據插值並顯示出來,從而可以得知CPLD的時序是否正確。當然,調試時序時,示波器仍然是必不可少的工具。

  (3)JPEG-LS算法調試

  JPEG-LS算法的調試分為兩個步驟:PC上的算法驗證和目標板上的調試。

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

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

  5.2 優化方法

  為提高圖像傳輸的幀率,本系統主要採用了2種優化方法。

  (1)硬體優化

  硬體優化主要是在CPLD採集數據時,使用雙緩衝,使得連續採集下一幀圖像和傳輸上一幀圖像可以並行,從而提高系統的吞吐率。

  (2)軟體優化

  軟體優化的作用在本系統的調試過程中效果明顯;本系統的第一個版本,圖像採集速率僅為3 s/幀;通過軟體優化後,達到了最終的O.3 s/幀。其優化如下:

  ①循環外移,避免在循環中重複運算;

  ②頻繁使用的變量申明為寄存器變量;

  ③把所有的JPEG-LS編碼函數代碼拷貝到RAM中執行。

  默認情況下,所有的代碼都存放在Flash中。ARM運行時,從Flash中讀取指令並且執行。眾所周知,Flash的訪問速度相對RAM而言,相差一個數量級,因此,如果把關鍵代碼放在RAM中,執行速率將會大大提高。而AT9lR40008內部自帶512 KB的RAM,足夠本系統使用,因此,這個方法可行。

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

  __ramfunc void encode_oneline(vcrid)

  通過使用該方法,系統的運行效率提高了約lO倍。

  結語

  本系統以ARM為核心,實現了JPEG-LS無損圖像壓縮算法,並日結合CPLD實現了CMOS攝像頭的時序控制。通過藍牙傳輸,實現了數位化的無線內窺系統。

  本系統具有良好的擴充性,可以使得系統更加微型化。首先,如果採用CSR公司更新的BC3系列晶片,則將融合ARM核以及藍牙功能,可以更加減小內窺鏡的體積。最重要的是,如果發展自主產權的內窺鏡晶片,那麼以現有的SOPC技術,可以將ARM核、CPLD邏輯門以及藍牙通信功能集成在一起,形成無線內窺鏡的集成解決方案,從而使其產業化成為可能。

  本系統在實現過程中,完成了一系列的調試工具,積累了調試以及優化經驗。我國現有的醫療設備開發技術相對比較落後,在此分享,希望對同類型的產品設計以及晶片生產能有一些參考價值。

相關焦點

  • ARM7嵌入式系統中啟動程序的實現
    在我們研製開發基於ARM7的嵌入式系統過程中,發現技術難點主要在於系統啟動程序的編寫,為此本文詳細論述了在arm7基礎上開發嵌入式系統
  • ARM7、ARM9、ARM11、ARM-Cortex系列的關係
    ARMv4架構的ARM7TDMI),Cortex-M比ARM7的架構高了3代,性能也有較大提升,所以新的設計推薦使用Cortex-M,關於從ARM7到Cortex-M的移植詳見ARM官網指導 ARM7處理器系列。
  • 基於ZigBee的無線紅外防盜報警系統設計
    ZigBee技術無線紅外防盜報警系統的硬體設計和軟體開發,解決了現有無線報警系統存在的誤報警,成本高等問題。經過對系統的硬體軟體電路調試,驗證了系統預期的功能。關鍵詞:無線紅外防盜報警;ZigBee;CC2430;系統設計 目前報警系統的信號傳輸主要是有線和無線兩種。
  • 基於LoRa的無線火災報警系統方案介紹
    基於LoRa的無線火災報警系統方案介紹 媒體投稿 發表於 2021-01-01 09:22:00 消防安全是社會頭等大事,既關乎國計民生和社會安定,又實實在在關係到每個社區、單位、每個家庭和我們每個人。
  • 基於ZigBee無線網絡的電源電壓監控系統
    傳統電源監控系統多採用有線連接方式。當監控節點較多時,就存在著安裝困難、布線繁瑣及維護不便等問題。採用基於ZigBee 技術的無線傳感器網絡來組建這種電源監控系統,即可解決上述種種問題。
  • 基於MCU和nRF24L01的無線通信系統
    有線模式下的數據通訊系統,由於受時空、環境等因素的制約,不能完全滿足所有條件下任務的執行,而通過無線數據傳輸方式代替有線數據傳輸,則能很好地解決此類問題。綜上論述,文中提出一種基於高性能MCU和nRF24L01的網絡化無線通信系統的解決方案,穩定可靠地實現數據傳輸,滿足各種條件的需要。
  • 基於物聯網的嬰兒實時監控系統的設計
    基於物聯網的嬰兒實時監控系統的設計 莫偉健等 發表於 2015-12-02 11:16:58   隨著社會的發展,父母越來越重視孩子在嬰幼兒時期的成長發育,在照看嬰兒方面需要投入更多的時間和精力
  • 基於ZigBee的室內智能照明系統設計
    為了改進傳統室內照明系統存在的布線複雜、節能效果差、不易智能控制等缺點,分析了基於ZigBee技術的室內照明系統的設計和實現方法。
  • 基於胎壓差分法的車輛自載重檢測系統設計
    摘要:針對車輛超載檢測系統精度不高、效率低的現狀,本文研究一種基於胎壓差分的測量方法,並在此基礎上利用傳感技術、無線收發技術、嵌入式硬體技術等,集成開發車輛載重檢測系統,實現胎壓變化的監測與記錄。通過準確性試驗得出該系統的相對誤差在±5%以內;由穩定性實驗得出最大相對誤差為3.8%。因此該測量系統具有較高的理論價值和實用價值。
  • 基於Arduino的ZigBee無線傳感節點的硬體設計
    摘要:針對傳統無線傳感節點的成本高、可擴展性差等不足,提出一種基於Arduino開源平臺及ZigBee協議的無線傳感節點硬體系統。考慮到系統設計需求,首先給出該傳感節點硬體系統的總體框架,然後對硬體系統中的處理器模塊、傳感器模塊、無線通信模塊、電源模塊的設計給出了具體的方案。該無線傳感節點硬體系統能夠實現高性能、低成本、低功耗的無線環境數據採集,較傳統方法更具有研究和應用價值。
  • 基於MSP430和CC3000的無線智能控制系統
    1 系統結構及總體設計 本系統的結構框圖如圖1所示。系統總共分為5部分,分別是:無線路由器、智慧型手機、CC3000 Wi—Fi模塊、MSP430單片機電路和直流電機驅動電路。 2 硬體設計 2.1 CC3000 Wi-Fi模塊 系統無線通信部分採用TI公司的Simple LinkCC3000 Wi—Fi,它是一款自成一體的無線解決方案,可大幅簡化網際網路連接的實施過程
  • 基於Zigbee無線通信協議的智能燈光控制系統設計
    摘要:文章以樓宇自動化中教室照明系統為對象,介紹了以ZigBee為無線通信協議,以STM32W108為處理器,開發的一種基於ZigBee無線通信協議的智能燈光控制系統。
  • 基於STM32的重力感應無線智能遙控小車設計
    目前,遙控智能車輛大多採用無線傳輸方式,而無線傳輸逐漸取代有線傳輸不僅是因為「無線」,更因為在安裝、增減節點方面都比有線方式方便、快捷,因此得到了廣泛的應用。 本設計首先採集手持遙控端的傾角信息並進行處理、生成指令,然後無線發送給智能小車,賦予智能小車更靈活的運動狀態和更寬廣的運動範圍。
  • 基於CAN總線和無線技術的輸液網絡監控系統
    隨著無線技術、網絡技術和計算機技術的迅速發展,為輸液採用無線、網絡監控帶來了便利條件。目前已有一些相關輸液的研究成果,實現了輸液監視、控制、報警等功能,但主要是單臺設備獨立使用,未能實現網絡監控。文獻設計了一種基於RS485總線的輸液網絡化監控系統,但採用RS485總線和有線監控在許多方面存在不足。
  • 基於物聯網的照明控制系統―ARM客戶端軟體設計
    基於物聯網的照明控制系統以ZigBee、單片機、傳感器、C#和PHP程序設計為主要技術手段,包括照明控制單元、ZigBee無線傳輸層(含網關)、PC展示及控制層3個層次的現場控制單元、CC2430無線傳輸網絡、ARM網關硬體單元、ARM網關客戶端軟體、基於C#的服務端軟體、基於PHP的展示軟體等6個子系統,用於實現一套模擬城市照明控制系統。
  • 基於ARM9的電力負控終端系統的設計
    >的整體設計方案。1 系統組成及工作原理 基於GPRS的負荷控制管理系統,以公共GPRS移動通信網絡為載體,輔以現場RS485總線等通訊方式,將變電站、大用戶、公用配變、居民戶等為主要控制管理對象,實現從變電站到供電線路再到電力用戶的綜合供用電監測、控制和管理。其工作流程如圖1所示。
  • ARM7嵌入式系統中Bootloader分析與設計
    本文在基於ARM7-uClinux嵌入式系統的硬體平臺和軟體平臺基礎上,描述了系統引導程序Bootloader的設計原理,闡述了設計時應考慮的因素和需解決的技術難點並給出了一套可行的引導程序流程。在我們的Bootloader設計中我們同時支持這兩種工作模式,採用的方法是:一開始啟動時處於正常的啟動加載模式,但並不立即啟動進入uClinux內核,而是提示延時5秒,等待終端用戶如果按下某一特定按鍵,則切換到下載模式,否則繼續啟動uCLinux 內核。
  • 簡易無線充電系統DIY設計方案
    打開APP 簡易無線充電系統DIY設計方案 程朝陽 蔣緒海 顧 發表於 2014-09-11 12:43:26   1、原理簡介   無線充電系統主要利用電磁感應原理。
  • MIT CSAIL最新研究:Network Dissection可全自動內窺神經網絡活動...
    雷鋒網AI科技評論按:據外媒TechCrunch最新報導,MIT CSAIL(麻省理工學院計算機科學與人工智慧實驗室)發明了一種可以全自動內窺神經網絡活動的系統MIT計算機科學與人工智慧實驗室之前發明過一種內窺神經網絡揭示它們是如何做決策的方法。據外媒報導,該方法最近又有了新改進,相比研究團隊兩年前提出的方案,這次升級為全自動版本系統,效果可以和之前僱傭人工觀察得到的相媲美。
  • 基於ZigBee和紅外技術的病房監護系統設計【介紹】
    比如病房裡的呼叫系統都是通過有線的方式連接到護士監控中心,呼叫按鈕裝置在病房的牆上,緊急情況下病人可能無法按動呼叫按鈕而引發危險事故。  尤其是人工測量患者體溫,不但增加了醫護人員的工作量,還影響病房病人的恢復休息,也不便於對病人生命體徵信息的統計。所以研製開發低成本、低功耗、高可靠性、易擴展、配置靈活的無線病房監護系統就具有普遍的意義和現實的價值。