首頁>技術中心>技術資訊>基于CF卡的無線膠囊內窺鏡體外接收存儲系統*
基于CF卡的無線膠囊內窺鏡體外接收存儲系統*
發布時間:2017-11-22
引言
對于消化道疾病的診斷,目前最常用的方法是采用內窺鏡,但傳統內窺鏡使用插入導管的方式,存在著諸多弊端,例如操作困難;屬于有創檢測,給病人帶來很大的肉體痛苦;診察范圍有限,僅限于診斷上消化道及大腸的病變,而對小腸疾病的診斷存在很大的盲區等[1]。鑒于此,近10年來,世界各國有不少科研機構在從事人體消化道無創檢測設備的研究開發工作,而本文所提到的無線膠囊內窺鏡系統就是其中有代表性的設備之一。
本論文重點介紹了一種無線膠囊內窺鏡診斷系統體外接收器的原理與結構。該系統采用雙片高速單片機(silicon laboratory 8051F130)與FPGA、FIFO相結合的架構,成功實現了將體內膠囊內窺鏡傳輸出的圖像數據實時接收存儲的功能。
在數據存儲上則采用了Sandisk公司的4 G大容量高速CF卡SDCFH-4096對采集的數據信號進行存儲,滿足了實時非壓縮數據信號對大容量存儲空間的要求。
1體外無線接收存儲系統的組成
無線膠囊內窺鏡體外接收存儲系統的接口框圖如圖1所示。整個系統可以分為數據接收與同步模塊和數據存儲模塊兩大基本模塊。
1?1數據接收與同步模塊
數據接收與同步模塊包括模擬射頻接收器、低通濾波器、箝位電路、視頻放大器、同步檢測器、模數轉換器、信號處理器MCU1等。
從模擬射頻接收器接收的幀模擬信號經過低通濾波器濾掉高頻干擾分量。低通濾波器采用無源三階巴特沃斯濾波器實現。射頻接收器輸出的是交流耦合信號,經低通濾波器后仍為交流耦合信號,為了恢復信號的直流分量,必須對通過箝位電路對其進行箝位。經箝位電路后,信號的直流分量將為0. 38 V。視頻放大器的作用是對箝位電路輸出的信號進行適當的放大,一方面提高信號的幅值,便于行模數轉換,另一方面,可以提高驅動能力,帶動后級負載。同步檢測器的功能是從輸入的信號中分離出幀同步和行同步信號,使得可以采用模數轉換器轉換圖像數據。同步檢測采用對信號幅值進行比較的方法實現,其具體結構是一個電壓比較器。信號處理器MCU1的作用在于通過檢測同步檢測器的輸出信號判定幀同步信號與行同步信號,據此控制AD轉換器的CLK信號,向后續的數據存儲模塊提供相應的同步標志位SYNC,同時控制數據存儲模塊的部分電路。
1?2數據存儲模塊
數據存儲模塊包括CF控制器MCU2、FIFO、FPGA、CF卡等部分,詳細結構及原理過程將在第3部分作進一步介紹。
2CF卡簡介
2?1CF卡結構與工作模式
CF卡是體外接收存儲系統的存儲介質,其結構如圖2所示。CF卡全稱Compact Flash卡,由控制器與Flash存儲器兩大部分組成。控制器主要用來實現與主機的接口并控制數據在存儲模塊中的傳輸, Flash存儲器主要負責數據的存儲。控制器通過協議轉換,將外設對FlashMemory的讀寫轉化成對控制器的訪問,統一了讀寫訪問的標準(符合PC機內存卡國際聯合會PCMCIA和ATA接口規范),從而保證了不同CF卡的兼容性[2]。同時CF卡采用了緩沖區結構,使CF卡與外界通信的同時可以對內部Flash Memory進行操作,提高了數據傳輸的速率。
CF卡支持包含Memory Mapped、I/O Card和TrueIDE在內的3種訪問模式。本系統采用的是True IDE模式。上電時,將OE腳置為低電平,則CF卡進入TrueIDE模式。上電時, OE為高電平, CF進入PCMCIA模式,即Memory Mapped模式或I/O Card模式。然后可以通過配置選項寄存器進入相應的模式。
2?2CF卡的操作方式
CF卡與硬盤類似,采用柱面/磁道/扇區的方式組織存放數據[3]。其扇區尋址方式有邏輯尋址(LBA)和物理尋址(CHS) 2種。物理尋址方式(CHS)使用柱面、磁頭、扇區號來表示一個特定的扇區;邏輯尋址方式(LBA)將整塊CF卡進行同一尋址,在訪問連續的扇區時,操作速度比物理尋址方式要快,而且也簡化了對磁盤的訪問。文中使用邏輯尋址方式(LBA)。二者的換算關系為邏輯LBA地址= (柱面號×磁頭數+磁頭號)×扇區數+扇區號-1。
3數據存儲模塊的結構及工作原理
3?1FIFO與FPGA、MCU2協同工作流程
作為該體外接收存儲系統接收信號的發射源,無線膠囊內窺鏡使用的是由Omnivision公司提供的OV6650微型圖像傳感器。其輸出圖像大小設定為CIF格式(352×288),圖像格式為Raw RGB[4]。為降低功耗,膠囊內窺鏡采用輸出一幀圖像后即進入休眠狀態的工作方式。每幀圖像的持續時間約為63 ms,兩幀之間的休眠時間約為430 ms。單幀圖像的數據量在90 K左右。圖像數據的每幀數據量大,傳輸速率快,在圖像傳感器的PCLK管腳輸入為2 MHz的情況下,每個像素點的傳輸時間為500 ns。考慮到今后提高傳輸速率的需要,采用在膠囊工作時用MCU1控制FIFO,直接將一幀圖像數據緩存,在膠囊休眠期間將FIFO中的圖像寫入CF卡的解決方案。另外考慮到以后擴展的方便,在設計中采用了FPGA作為FIFO與高速單片機MCU2 (8051F130)之間的讀操作時鐘源,完成單片機對FIFO的讀時序控制。
數據存儲模塊的具體電路連接圖如圖3所示。該部分結構對應于圖1的虛線框。FIFO采用Cypress公司的CY7C4291V。該低電壓FIFO芯片的緩存為128 K×9[5]。AD轉換芯片采用TI公司的ADS931。MCU采用SiliconLaboratory公司的8051F130,經過倍頻后可達到100MIPS的處理速率,可為以后系統升級預留足夠的空間。
濾波箝位后的模擬幀數據信號在MCU1產生的時鐘信號CLKIN的控制下,經過ADS931轉換為8位數據。MCU1同時向CY7C4291V提供WCLK、/WEN1、WEN2引腳的輸入控制,將模數轉換后的圖像數據緩存入FIFO。在檢測到SYNC _ IN管腳輸入的一幀結束標志后, MCU1停止向ADS931及FIFO輸出時鐘,并向FPGA的SYNC管腳提供一個脈沖。此時對FIFO的控制權轉交給FPGA。在FPGA產生的RCLK, /REN1, /REN2, ADCLK1的時序控制下, MCU2將FIFO中所緩存一幀圖像以較低的速率讀入,并寫入CF卡緩存,達到了與CF Card寫入周期的匹配[6]。FPGA各引腳時序圖如圖4所示。
3?2向CF中存儲數據
對CF卡的操作只需讀寫任務寄存器即可。CF卡共有30條指令,數據讀寫的最小單位為一個扇區。8位格式訪問時對應1個扇區數據量為512 B, 16位格式訪問是對應一個扇區數據量為256字。連續存取字節兩次則依次存取數據寄存器的偶字節和奇字節。本系統中采用8位模式進行操作。在MCU2對CF卡進行寫入操作之前,先向命令寄存器寫入0Efh,將默認的16位模式改為8位模式。每次執行CF卡命令前,需要讀取狀態寄存器(偏移量為07H)來確定當前CF卡所處的狀態。狀態寄存器D7位為零,表示控制空閑; D6, D4均為1,表示CF卡準備好接收下一條指令。執行命令前,程序要寫7個寄存器,其中前6個為參數,最后一個為命令碼[7]。讀扇區命令字為20H或21H,寫扇區命令字為: 30H或31H。其中扇區讀寫流程如圖5所示。
在實際的程序運行過程中,在FIFO存儲完一幀圖像數據后, FPGA開始向MCU2提供ADCLK1時鐘。在MCU2檢測到第1個時鐘下降沿時,向CF卡任務寄存器寫入寫卡指令,之后讀CF卡狀態寄存器,當返回值為58H時,表明CF卡已進入等待數據寫入狀態。在之后的每個ADCLK1的下降沿,對應一個像素點的8位數據從FIFO讀入MCU2,隨后即時送入CF卡的緩存。當一個扇區的數據,即512 B的數據寫入緩存后, CF卡需要一定的響應時間等待寫扇區指令的執行。所以FPGA在產生連續512個周期為200μs的ADCLK1后將產生一個800μs的延時,從而保證CF卡有足夠時間寫入一個扇區的數據,避免丟失數據的情況發生。在此同時,程序查詢狀態寄存器的值,若為50H,說明一個扇區的數據已被寫入CF卡。此時FPGA繼續產生ADCLK1時鐘, MCU2則繼續在時鐘下降沿查詢FIFO的輸入,并將其寫入CF數據緩存,如此重復寫入數扇區,直至一幀圖像數據完全寫入CF卡為止。
4實驗結果與結論
采用4 G的CF卡(SDCFH-4096)實現了連續6?2 h的圖像錄制,與膠囊內窺鏡系統在人體內由SR69W氧化銀電池供能條件下可連續工作時間(7 h左右)相近,基本滿足了實時存儲內窺鏡圖像的要求。在對膠囊端的工作頻率進行提高后,有望達到更高的圖像接收速率。圖6為使用該系統接收的一幀CIF格式8位色RawRGB圖像數據在PC上還原得到的圖像,圖像質量較為理想。這說明接收器可以正確接收同步圖像信號并正確寫入CF卡。
由于受模擬傳輸干擾的影響,接收圖像會隨機出現同步位錯誤造成的圖像失真,如圖7所示,具體出現概率主要取決于接收器的接收頻率是否準確,總體上對接收圖像的影響不大。
經過實驗證明,按此種方案設計的無線膠囊內窺鏡體外接收存儲系統可以滿足實時接收并存儲WCE(wireless capsule endoscopy)模擬圖像數據的要求。
摘自:中國計量測控網