//Logo Image
作者:謝佩均(2005-11-30)推薦:徐業良(2005-12-01)

利用PIC_SERVER擷取與傳輸TaiDoc公司TD-3018B血壓計量測之血壓數據

本文首先對血壓計量測血壓的原理做一簡單的介紹,接著以市售TaiDoc公司TD-3018B血壓計為應用範例,說明如何以PIC_SERVER當主控端,擷取TD-3018B血壓計量測之血壓數據,並傳輸至遠端網頁上。

1.     TD-3018B血壓計簡介

血壓量測可分為直接與間接量測法,也就是侵入式或非侵入式兩種方法。直接測量法是將動脈導管直接插入動脈血管中,再利用壓電轉換感測器的轉換而得到血壓;間接測量法大部份使用壓脈袋擠壓待量測血管,再利用聽診器或其他感測器來量得血壓,而依量測方法可分為聽診法、共振法、及紅外線法。

間接測量法中的共振法是市售血壓計較常採用的方法,其裝置包括手腕部或手臂用的壓脈袋、幫壓脈袋充氣加壓的馬達、洩氣閥與壓力感測器。量測方法先將壓脈袋內充氣加壓到一定壓力後阻止血液活動,再緩慢洩除壓脈袋壓力,當壓脈袋壓力接近收縮壓前,靈敏的壓力感測器,可感測壓脈袋與血管共振時所產生微小的壓力變化訊號。接著利用濾波、放大等程序擷取連續脈波的壓力感測器訊號,當壓脈袋內壓力等於平均壓時壓脈袋內壓力振幅最大,經過轉換後即可得到收縮壓、舒張壓、與平均壓。

1TaiDoc公司編號TD-3018B血壓計的外觀,使用手腕壓脈袋量測血壓,使用者只需將血壓計帶於手腕,壓下啟動按鈕,即可以感覺到充氣加壓馬達對手腕壓脈袋充氣,當充氣到一定程度時即開始洩氣,在量測的同時可以在血壓計的LCD上觀看到目前壓脈袋的壓力,與隨著量測到脈搏時血壓計會發出聲響,稍待一會兒,LCD即會顯示受測者的收縮壓、舒張壓與每分鐘脈搏數等訊號。

1. TaiDoc公司編號TD-3018B血壓計外觀

TD-3018B血壓計規格如表1所示,這部血壓計以電池供電,且大小方便使用者隨身攜帶,其可記錄352組量測後的收縮壓、舒張壓、與每分鐘脈搏數等資訊,且可以透過RS232傳輸線與PC連接,配合TaiDoc公司所附的血壓檢測軟體,可以對血壓計裡所記錄的資訊作統計與簡單的報表,方便受測者瞭解自己血壓的變化與趨勢。

1. TD-3018B血壓計規格

尺寸

76×64×29 mm3

重量

132 g (with batteries)

壓脈袋尺寸

13.5~19.5 cm

電源

21.5V4號電池)

外部輸出

標準PCRS232端子

量測範圍

壓力= 0 ~ 300 mmHg

加壓速率= 40 ~ 199 per minute

準確率

壓力= -3mmg ~ +3mmHg

記憶

352組測量結果

測量方式

使用壓力感測器

2.     利用PIC_SERVER擷取與傳輸血壓計量測之血壓數據

TD-3018B血壓計擁有透過RS232連接線與PC溝通的功能,作用方式如圖2所示,使用者由PC上的血壓檢測軟體(VB程式),點選讀取血壓計中紀錄資料的按鈕,程式即會透過RS232連接線由PC端輸出控制指令碼給血壓計,血壓計接收到所對應的相關控制指令碼後,也會將記憶體裡的資訊透過RS232連接線回傳給PC,程式接收到這些血壓資料(記憶數據碼)後,即可以做相關的後續處理。

2. 血壓計與PC連接示意圖

以下則敘述如何利用PIC_SERVER控制與擷取血壓計中的數據,進而傳輸、顯示在遠端網頁上。

2.1  監看與解碼了解控制與擷取的數據碼

為了使用PIC_SERVER控制與擷取血壓計中的數據,首先透過RS232終端機程式監看RS232的資訊,了解VB程式所傳送出的控制指令碼,接者由RS232終端機程式模擬VB程式傳送控制指令碼給血壓計,進一步接收血壓計回傳的記憶數據碼,經過實驗與解碼可以得知血壓計所量測到的相關數據(收縮壓、舒張壓、與每分鐘脈搏數)之格式。

2為控制指令碼與記憶數據碼,其中要讀取所量測到的第一筆數據,即是透過RS232連接線傳送512204040000A3512206040000A3段控制指令碼。當傳送第一段控制指令碼時,血壓計也會回傳一段記憶數據碼,例如51220404PP00A5PP即為血壓計所量測到的收縮壓數值的16進位值,如PP7C時轉換成10進位即124,也就是收縮壓為124mmHg;當傳送第二段控制指令碼時,血壓計也會回傳另一段記憶數據碼,如51220604QQRRA5QQ即為血壓計量測到的舒張壓數值的16進位值、RR為血壓計量測到的每分鐘脈搏數的16進位值,一樣將此兩數值轉換成10進位,即可得知所量測到的相關數值,清除全部記憶只需傳送控制指令碼給血壓計即可。

有了控制指令碼與記憶數據碼,即可轉由PIC_SERVER來控制與擷取血壓計所量測到的資訊,在前述實驗中,原本是利用RS232終端機程式模擬VB程式傳輸控制程式碼,改成利用PIC_SERVERRS232輸出、接收PORT傳輸控制指令碼與擷取記憶數據碼,即可控制與擷取相關數據。

2. 相關控制指令碼與記憶數據碼

功能

控制指令碼

記憶數據碼

讀取第一筆數據

512204040000A3

51220404PP00A5

512206040000A3

51220604QQRRA5

清除全部記憶

51323800FF00A3

 

51323A000000A3

51323C00FF00A3

51323E00FF00A3

2.2  PIC_SERVER控制與擷取血壓計程式副程式

首先PIC_SERVER與血壓計有相同的每秒傳送位元速率與設定(buad=9600,8,n,1)才能溝通兩者,其副程式程式碼如圖3與圖4所示,圖5為讓相關數據對應在網頁上的副程式。

3. 控制與擷取相關數據的read()副程式程式碼

4. 控制清除全部記憶的del()副程式程式碼

5. 將相關數據對應在網頁上副程式程式碼

3為控制擷取血壓資訊的(read())副程式,程式最主要是依序送兩段程式指令碼,如在圖中38~42行是定義第一段指令碼、52~55是定義第二短指令碼,4357即是依序傳出控制指令碼。在傳出控制指令碼後,緊接著讀取血壓計回傳的記憶數據碼,如圖中行4559行是依序接收記憶數據碼。且4861、與62行,進一步將擷取之數據存成變數以讓PIC_SERVER使用,與4963行將數據轉換成10進位值顯示於PIC_SERVER上的LCD。且在65行多加一標記當收縮壓與舒張壓其中一項超過設定值時,即會啟動標記(warning=1)

4為清除全部記憶的控制指令碼副程式(del()),其主要是要送出四組控制指令碼給血壓計,血壓計接收到這四段指令碼即會將記憶清除。圖5為將相關數據對應在網頁上的副程式程式碼,圖中178~180行是讓網頁顯示相關對應數值,在182183行即是判斷read()副程式中定義的標記,由不同的標記對應網頁上顯示不同的圖案。使用者可以透過網頁瀏覽器連進PIC_SERVER以了解血壓資訊,如圖6即為顯示之網頁,血壓過高時網頁在相關血壓數據下方的會變成幽靈圖。

6. PIC_SERVER所顯示之網頁