基于ARM9處理器的家用遠程醫(yī)療監(jiān)護終端結(jié)構(gòu)功能及應(yīng)用
軟件設(shè)計
軟件設(shè)計主要包括Linux的移植,嵌入式Web Server-Boa的移植,CGI(通用網(wǎng)關(guān)接口)程序的設(shè)計,功能程序的設(shè)計。
圖6 系統(tǒng)軟件框圖
Linux的移植
本設(shè)計采用linux-2.4.18內(nèi)核。正確進行Linux移植的前提是具備一個與Linux配套、易于使用的BootLoader,它能夠正確完成硬件系統(tǒng)的初始化和Linux的引導(dǎo)。本系統(tǒng)中采用vivi,它是由韓國MIZI公司提供的一款針對S3C2410芯片的BootLoader。
Linux內(nèi)核的目錄/arch中包含了所有與硬件體系結(jié)構(gòu)相關(guān)的內(nèi)核移植代碼,目錄/arch中的每個子目錄代表了一種Linux支持的處理器。移植Linux到S3C2410平臺主要是修改/arch/arm目錄及其子目錄下相關(guān)的makefile文件和配置文件。例如:修改內(nèi)核根目錄下的Makefile文件,指明要移植的硬件平臺為ARM:ARCH:=arm,指明使用的交叉編譯器CROSS_COMPILE=/opt/host/armv41/bin/armv41-unknown-linux-;修改arm/arm目錄下的config.in文件,配置S3C2410的相關(guān)信息;為初始化處理器,還需在arch/arm/boot/compressed目錄下添加head-s3c2410.s文件。內(nèi)核修改完成后,用命令make menuconfig配置Linux,再用make zImage命令編譯內(nèi)核,編譯通過后則在目錄arch/arm/boot下生成zImage內(nèi)核文件,還需利用工具軟件MKCRAMFS制作cramfs文件系統(tǒng)。最后,在minicom終端的vivi命令行下利用load命令將內(nèi)核和文件系統(tǒng)下載到目標(biāo)系統(tǒng),至此移植完成。
Boa的移植和CGI程序設(shè)計
由于嵌入式設(shè)備資源有限,并且不需要同時響應(yīng)多用戶請求,因此一般使用一些專門的Web服務(wù)器用于嵌入式應(yīng)用設(shè)計。Boa是單任務(wù)web服務(wù)器,源代碼開放,性能高,支持CGI,能為CGI程序fork出一個進程來執(zhí)行,其設(shè)計目標(biāo)是速度和安全,可執(zhí)行代碼只有約60KB。移植Boa的過程如下:從sourceforge.net上下載 boa-0.94.13,在其解壓目錄下生成并修改makefile文件,然后運行make得到可執(zhí)行程序,利用命令armv4l-unknown-linux-strip將調(diào)試信息剝?nèi)?,然后修改Boa的配置文件boa.conf,使其能支持CGI程序的運行。最后將生成的可執(zhí)行程序Boa掛載到目標(biāo)系統(tǒng),若能成功訪問靜態(tài)HTML網(wǎng)頁和運行測試用的CGI程序,則表明配置成功。
通用網(wǎng)關(guān)接口CGI可將Web服務(wù)器連接到外部應(yīng)用程序,它主要完成兩件事情:一是收集從Web瀏覽器發(fā)送給Web服務(wù)器的信息,并將這些信息提供給外部程序利用;二是對提出請求的Web瀏覽器發(fā)送程序的輸出。CGI具有平臺獨立性、語言獨立性和層次感等優(yōu)點。利用CGI程序則可以實時執(zhí)行并輸出動態(tài)信息,且其占用資源少。CGI程序的執(zhí)行過程為:瀏覽器將表單數(shù)據(jù)以POST方法提交給Web服務(wù)器,服務(wù)器根據(jù)收到的數(shù)據(jù)設(shè)置環(huán)境變量,并新開一子進程來執(zhí)行CGI程序,CGI程序從環(huán)境變量中讀取所需要的數(shù)據(jù),通過調(diào)用用戶自定義的外部功能函數(shù)完成數(shù)據(jù)處理后,再讀取相應(yīng)的HTML模板文件,根據(jù)注釋標(biāo)記將對應(yīng)的數(shù)據(jù)填充到HTML文件中,生成新的HTML頁面經(jīng)Web服務(wù)器返回給瀏覽器。
為快速開發(fā)符合應(yīng)用要求的CGI程序,在設(shè)計時添加了CGIC庫和gd庫。CGIC是一個功能強大的支持CGI開發(fā)的開放源碼的標(biāo)準(zhǔn)C庫。Thomas Boutell編寫的gd庫是標(biāo)準(zhǔn)的C語言庫,具有基本的繪圖等功能。為實現(xiàn)在網(wǎng)頁上動態(tài)顯示心電波形,將每次采集的數(shù)據(jù)經(jīng)過功能程序處理后存儲的同時送給CGI程序,利用gd庫提供的函數(shù)來創(chuàng)建圖像。通過在網(wǎng)頁模塊上設(shè)定刷新時間(使用HTML語言的META標(biāo)記),從而實現(xiàn)在網(wǎng)頁上心電波形的動態(tài)顯示。
主程序設(shè)計
主程序首先完成對系統(tǒng)的初始化,然后阻塞監(jiān)聽網(wǎng)絡(luò)接口是否有連接請求,一旦客戶端發(fā)出連接請求,則在服務(wù)器端產(chǎn)生中斷;讀取網(wǎng)絡(luò)數(shù)據(jù),然后對網(wǎng)絡(luò)數(shù)據(jù)進行解析,這一步主要是解析HTTP協(xié)議,需要判斷連接請求是否符合服務(wù)器規(guī)定的請求格式,判斷是連接請求的請求方法,判斷請求的文件是否存在服務(wù)器上,判斷認(rèn)證信息是否正確等等;在處理A/D采集的數(shù)據(jù)這一過程中,首先要將采集后的心電信號進行濾波處理,主要是抑制心電信號中的50Hz工頻干擾,再完成濾波后,將數(shù)據(jù)送到本地的LCD上顯示,同時將當(dāng)前的數(shù)據(jù)以網(wǎng)頁數(shù)據(jù)的格式發(fā)送到網(wǎng)口。
結(jié)語
本系統(tǒng)的設(shè)計定位于家庭醫(yī)療監(jiān)護,通過在用于生理特征信息監(jiān)測的嵌入式系統(tǒng)中集成Web服務(wù)器實現(xiàn)Internet的接入,從而實現(xiàn)用于遠程家庭醫(yī)療的監(jiān)護系統(tǒng)。其意義在于:設(shè)計出一套價格低且易于推廣的遠程家庭醫(yī)療監(jiān)護系統(tǒng),改變目前我國家庭醫(yī)療監(jiān)護落后的狀況;有效提高中老年人群心血管等慢性疾病的監(jiān)護水平,有利于提高中老年人群突發(fā)疾病患者的整體救治率;為醫(yī)療機構(gòu)提供大量有價值的我國中老年人群疾病的原始數(shù)據(jù)進行科研工作。
評論