行動式、低功耗體電訊號採集儲存系統研究論文

行動式、低功耗體電訊號採集儲存系統研究論文

  摘要:介紹目前市場上最常見的幾種非易失低功耗靜態儲存介質,詳細說明Compact Flash Card軟、硬體介面;提出基於Compact Flash Card和TI公司的C24x、C28x系列DSP搭建體電訊號採集的硬體平臺的一種可行的低功耗、行動式實時體電訊號採集儲存系統的可行方案,說明其硬體連線和相關的程式例項。

  關鍵詞:資料採集與儲存 行動式 Compact Flash Card TMS320LF2407

  引言

  目前比較常見的臨床體電訊號採集及處理儀器是功能完備的微機系統,雖然能較快地分析和處理監測到的體電訊號,但往往只能被固定在病房裡使用,在移動的情況下則顯得笨重和不便。體電訊號採集往往需要長時間地採集、記錄海量資料,並進行進一步的訊號處理和分析,以便臨床病情的檢測和監護。目前,臨床體電儀器主要還是採用紙張、磁帶及普通硬碟來儲存體電訊號。儲存載體的體積和功耗的限制是臨床醫療儀器功耗、行動式發展的瓶頸。便攜的醫療裝置能夠極大地方便病人的使用、監護並降低醫療費用。近幾年,隨著Flash Memory非易失儲存技術的發展以及處理器(如微控制器和DSP)效能的不斷提高,使訊號採集儲存系統的耗電量和體積不斷減少,滿足行動式的要求。

  經過實際調研和效能比較,TI公司的C2000系列DSP晶片具有諸多優點,包括定點處理器C24X和C28X。C24X系列為16位定點處理器,運算速度為20~40MIPS,可用於低速資料採集;TMS320C28X DSP系列為32位定點處理器,運算速度高達400MIPS,可用於高速資料採集。C2000系列採用高效能的靜態CMOS技術,3.3V電壓供電,核心電壓為1.8V,片內程式空間整合Flash,可以將系統控制程式直接燒入DSP晶片內部而不用外擴Flash儲存晶片,減少系統的功耗和體積。C24X系列DSP內建2×8通道10位資料轉換(ADC),轉換時間約為500ns;C28X系列DSP內建2×8通道12位數模轉換(ADC),轉換時間為80ns。ADC的精度和速度幾乎可以滿足各種體電訊號採集,因此係統須使用獨立A/D轉換晶片,進一步減少系統的功耗和體積。

  Compact Flash Card(以下簡稱CF卡)是市場上最常見的基於Flash儲存晶片的低功耗移動儲存器,能與DSP晶片直接連線而用介面轉換晶片。由於CF卡的高速價比、大容量和系統的易實現性,首選作為訊號採集的儲存載體。

  下面以CF卡和DSP TMS320LF2407硬體平臺為例,具體介紹這種可行的低功耗、行動式體電訊號採集儲存系統的搭建和軟、硬體介面的實現,並給出程式例項。

  1 各類基於Flash的快閃記憶體卡簡介

  近幾年來,靜態儲存技術進步,誕生陳舊基於Flash儲存器非易失大容量多種型別閃爍儲存卡。PC(PCMCIA)、CF(CompactFlash)、SD(SecureDigital)、MMC(MultMedia)、SM(SmartMedia)、MS(Memory Stick)以及基於USB介面的快閃記憶體是如今流行的7大卡系,具有大容量和低功耗等優點。移動儲存器被廣泛應用於各種數碼產品中,如婁碼相機、媒體播放器和PDA等,同時也為低功耗、行動式體電訊號的採集儲存系統提供了理想的儲存介質。表1為這7種流行卡系的簡介與比較。

  表1 7種流行卡系統比較

  卡 系誕生時間/年體 積接 口目前最大容量PC卡199285.6mm×54.0mm×3.3mm型別I);

  85.6mm×54.0mm×5.0mm型別II);

  85.6mm×54.0mm×10.5mm型別III)68針5GBCF卡199443mm×36mm×3.3mm50針2~3GBSM卡199545mm×37mm×0.76mm22128MBMMC卡199732mm×24mm×1.4mm7針128MBSD卡199932mm×24mm×2.1mm7針128MBMS卡199750mm×21.5mm×0.28mm10針128MB基於USB介面的快閃記憶體盤1999型號不同,體積各異USB介面1GB

  經過詳細的調研和效能比較,綜合各種移動儲存卡的價效比、最大容量和易實現性,筆者最終選擇CF卡作為行動式體電訊號採集儲存系統的存量載體。CF卡容量大,最大容量可達2GB以上,完全滿足長時間體電訊號採集海量資料的要求;價效比高,同樣容量的卡價格是其它卡系的一半;易於系統的實現,CF卡提供了完整的ATA功能,而且透過TrueIDE工作模式相容IDE介面;耗電量低,支援在低電壓(3.3V)下工作,實際工作電流為30~50mA,睡眠時僅為600μA;資料吞吐量高,5V工作時吞吐量為20MB/s,3.3V工作時為6.6MB/s;可靠性高,平均無故障工作時間100萬小時。

  2 CF卡的物理和硬體介面特性

  CF卡可以工作在PC卡ATA I/O模式、PC卡ATA儲存模式和實IDE模式三種模式下,實IDE模式與IDE介面完全歉。CF卡遵從ATA協議,屬於塊儲存裝置,儲存單元是透過磁頭(head)、柱面(cylinder,也稱磁軌)和扇區(sector)組織起來的;在物理定址(CHS)方式下,每一組H/C/S引數唯一確定儲存卡中的一個扇區,通常一個扇區擁有512位元組的資料空間。一個驅動數格式化後的容量為磁頭數×柱面數×扇區數×512位元組。在物理定址模式下,扇區(S)是最低的地址單位,其次是磁頭(H),最後的柱面(C)為最高定址單位。此外,還有邏輯定址方式(LBA)。在這種定址方式下,CF卡按照以連續序列的邏輯扇區編號進行定址,主機不必知道CF卡的物理幾何結構。使用28個數據位來表示邏輯扇區的地址,可以定址2 28個扇區,理論上可以定址136GB的容量。下面給出物理定址方式與邏輯定址方式的對應關係。設NS為每磁軌扇區數,NH為磁頭數,C、H、S分別表示磁碟的柱面、磁頭和扇區編號,LBA表示邏輯扇區號,div為整除計算,mod為求餘計算,則:LBA=NH×NS×C+NC×H+S-1;C=(LBA div NS)div NH;H=(LBA div NS)mod NH;S=(LBA mod NS)+1。

  CF卡為50針介面。其中重要的訊號線16根資料線、11根地址線(在TureIDE模式下僅用3根地址線)、2根暫存器組選擇訊號線(CS0、CS1)、資料的讀寫線(IORD、IOWR)、1根中斷訊號請求線(INTRQ和1根復位線(RESET)。

  3 CF卡的軟體介面和命令

  CF內部控制器有多個暫存器,透過這些暫存器可以對CF卡內部的儲存空間進行控制和訪問。下面就實IDE模式下的暫存器組為例進行說明。

  在實IDE模式下,暫存器組透過暫存器組選擇訊號線(CS0、CS1)和低三位地址線(A0、A1、A2)進行訪問,具體功能和地址分配如表2所列。

  表2 CF卡實IDE模式下暫存器組具體功能和地址分配表

  CS1CS0A2A1A0IORD=0IOWR=0位數/位10000資料暫存器資料暫存器1610001錯誤暫存器特徵暫存器810010扇區數暫存器扇區數暫存器810011扇區號暫存器扇區號暫存器810100柱面號暫存器(低位元組)柱面號暫存器(低位元組)810101柱面號暫存器(高位元組)柱面號暫存器(高位元組)810110驅動器選擇/磁頭暫存器驅動器選擇/磁頭暫存器810111狀態暫存器命令暫存器801110可選狀態暫存器裝置控制暫存器801111驅動器地址暫存器保留8

  CF-ATA的基本命令有30餘條,主要有資料的傳輸命令,包括扇區、緩衝區的讀寫等命令;CF卡的定義命令,包括磁軌格式化、設定特徵引數等命令;電源管理命令,包括檢查電源管理模式、進入睡眠省電模式等命令;安全及許可權的設定命令,包括CF卡安全密碼的設定、安全許可權的鎖定與解鎖等命令。每執行一條命令都要向CF-ATA的暫存器組寫入引數和命令。下面以CF卡讀取一扇區資料為例,說明CF-ATA命令的執行過程。

  ①讀取CF卡狀態暫存器,檢測並等待當前CF卡是否空閒,若空閒,向下執行。

  ②填寫地址暫存器塊。地址暫存器塊包括扇區數暫存器、扇區號暫存器、柱面號暫存器(低和高位元組)、驅動器選擇/磁頭暫存器,選擇訪問的扇區地址。

  ③寫命令暫存器,將讀扇區命令寫入命令暫存器(20h或21h)。

  ④讀取CF卡狀態暫存器,檢測並等待CF卡的資料請求。有資料請求表示命令已被接收並處理,若長時間沒有資料請求,需要進行超時處理。

  ⑤讀資料暫存器。由於資料暫存器埠為16位,因此,讀一個扇區512

  位元組的資料僅需要連續執行256次訪問資料暫存器的操作。要注意的是,在CF卡中儲存的資料是低位元組在前,高位元組在後。在資料暫存器中,會產生高低位元組顛倒的問題。

  ⑥檢測執行結果。在執行命令後,需要檢視狀態暫存器的'D0位。若D0位為0,則表示命令執行成功,否則表示出錯。其相應的錯誤資訊在錯誤暫存器中可以查出。

  4 TMS320LF2407與CF卡的電路連線

  TMS320LF2407是TI公司C24X系列中功能最完整、資源最豐富的控制晶片DSP,提供了多種介面的最優數字控制,有最高的程式碼效率。C24X是其C2000系列新代16位定點處理器產生,核心CPU為低功耗、高效能TMS320TM構架的增強設計;最最佳化控制多個外設;有2個事件管理模組,用於資料控制、電源轉換,產生多種波形PWM;同步16通道高效能10位ADC,轉換時間為500ns;支援序列非同步通訊介面(SCI)、串行同步外設介面(SPI)、CAN匯流排2.0標準介面。TMS320LF2407總定址範圍192K字,其中包括64K字程式空間,64K字資料空間,64K字I/O空間,片內程式空間整合32K字Flash,資料空間整合2.5K字RAM,包括544字DARAM(其中256字與程式空間共享),2K字SARAM。圖1給出了TMS320LF2401與CF卡的一種電路連線方框圖。CF卡佔用TMS320LF2407的I/O空間地址,不需要任何中間介面轉換晶片。

  5 TI公司DSP彙編程式例項

  考慮到TI公司的DSP各系列晶片彙編指令的相容性例於跨平臺移植和組合語言程式碼的高效性,下面給出基於連線框圖將CF卡中一扇區資料(512位元組)讀到TMS320LF2407片內RAM中彙編程式。READ_A_SECT:

  W_CF_RDY: ;檢測CF卡是否空閒

  LDP #0h

  IN CF_IN,CFCOM_STAT

  ;讀狀態暫存器

  LALC CF_IN

  AND #00FFh

  XOR #0050h

  BZ END_WAIT_RDY

  B W_CF_RDY

  END_WAIT_RDY:

  SPLK #0000h,CF_OUT

  OUT CF_OUT,CFERR_FEA

  ;寫特片暫存器

  SPLK #0001h,CF_OUT

  OUT CF_OUT,CFSET_COU

  ;寫扇區數暫存器

  SAR AR3,CF_OUT

  OUT CF_OUT,CFSEC_NO

  ;寫扇區號暫存器

  SAR AR4,CF_OUT

  OUT CF_OUT,CFCYL_LOW

  ;寫柱面號暫存器(低位元組)

  SAR AR5,CF_OUT

  OUT CF_OUT,CFCYL_HIG

  ;寫柱面號暫存器(高位元組)

  SAR AR6,CF_OUT

  OUT CF_OUT,CF_CDH

  ;寫驅動器選擇/磁頭暫存器

  SPLK #0020h,CF_OUT

  OUT CF_OUT,CFCOM_STAT

  ;寫命令暫存器

  W_CF_DRQ:;檢測CF卡是否有資料請求

  IN CF_IN,CFCOM_STAT

  LACL CF_IN

  AND #00FFh

  XOR #0058h

  BZ END_WAIT_DRQ

  B W_CF_DRQ

  END_WAIT_DRQ:

  LAR AR2,#0FFh

  ;作256次迴圈讀取一扇區資料(512位元組)

  MAR *,AR1

  INLOOP:IN *+,CFDATA,AR2

  ;迴圈讀取資料暫存器

  BANZ INLOOP,*-,AR1

  RET

  程式說明:CFDATA為資料暫存器埠地址;CFCOM_STAT為狀態/命令暫存器埠地址;CFERR_FEA為特徵暫存器埠地址;CFSEC_COU為扇區數暫存器埠地址;CFSEC_NO為扇區號暫存器埠地址;CFCYL_LOW為柱面號暫存器(低位元組)埠地址;CFCYL_HIG為柱面號暫存器(高位元組)埠地址;AR1、AR3~AR6輔助暫存器為程式入口引數,其中AR1為RAM資料緩衝區的起始地址;AR3~AR6為CF卡各暫存器待賦的值;CF_IN和CF_OUT為變數。程式中沒超時處理,在迴圈讀取資料的過程中,最好禁用時間較長的中斷。這是因為CF卡在15ms內沒有接收到命令就會進入休眠(sleep),因此不論是讀還是寫扇區,在命令出後15ms內應將資料取出或填充上,否則會出錯。結語

  採用TI公司的C24X、C28X系列DSP與CF卡搭建體電訊號採集的硬體平臺,僅使用很少的外部邏輯。整個系統可以採用低電壓3.3V單一電壓供電,供電電路非常簡單。C24X、C28X系列DSP晶片對片內的各個模組獨立供電,工作時可以遮蔽掉沒有用到的模組,比如SCI、SPI、CAN匯流排介面等模組,減少系統的功耗。在系統軟體實現上,可以採用交替式雙快取機制,將採集到的資料先存入資料緩衝區中(1扇區佔512位元組為易)。當資料緩衝區寫滿時發出溢位中斷,對CF卡進行突發寫操作。寫操作完畢可以傳送命令,使CF卡立即進入休眠狀態,將功耗降至最低。這樣在資料採集系統工作的大部分時間,CF卡處於休眠狀態,工作電流僅為600μA。

  筆者TMS320LF2407與CF卡搭建建硬平臺,進行16路體電訊號採集,採集頻率為150Hz,CF卡容量為256MB。經實際測試,系統的功耗小於0.3W,使用3~4節乾電池或1~2手機鋰電池供電,可以連續工作10~20小時以上。該系統適於腦電、心電等體電訊號的採集與儲存工作,具有低功耗、攜帶方便、長時間監護、效能價格比高等特點。

最近訪問