遠程家庭心電監(jiān)護終端
嵌入式Web服務(wù)器模塊
本文引用地址:http://www.ex-cimer.com/article/87010.htm考慮本系統(tǒng)定位于家庭使用,且系統(tǒng)需要連續(xù)長時間工作,又由于系統(tǒng)需要良好的人機交互環(huán)境、存儲大量數(shù)據(jù)以及支持網(wǎng)絡(luò)通信,所以要求處理器具有功耗低、成本低、豐富的接口和支持操作系統(tǒng)。本設(shè)計選用ARM9處理器S3C2410A,S3C2410A主要面向手持設(shè)備以及高性價比、低功耗的應(yīng)用上。其CPU內(nèi)核采用的是ARM公司的16/32位ARM920T RISC處理器。ARM920T實現(xiàn)了MMU、AMBA總線和Harvard高速緩存體系結(jié)構(gòu),該結(jié)構(gòu)具有獨立的16KB指令Cache和16KB數(shù)據(jù)Cache。S3C2410A集成的片上功能主要包括:1.8V/2.0V內(nèi)核供電,3.3V存儲器供電,3.3V外部I/O供電;外部存儲器控制器;LCD控制器提供1通道LCD專用DMA; 8通道10位ADC接口,轉(zhuǎn)換速率最大為500KSPS(Kilo Sample Per Second,千采樣點每秒);117位通用I/O口和24通道外部中斷源;電源控制模式包括正常、慢速、空閑和掉電4種模式;支持NAND Flash的啟動裝載。
對心電信號采樣精度的考慮主要出于對ST段異常分析處理的要求,ST段電平變化約為0.05mV,因此采樣精度至少為0.025mV。當采用10位A/D轉(zhuǎn)換器工作在正極性、滿刻度電壓為2.5V時,可分辨的最小輸入電壓為2.5mV,而信號調(diào)理電路放大倍數(shù)為1000倍,則輸入端的最小分辨率約為0.0025mV,故S3C2410A具有的10位A/D的精度完全滿足系統(tǒng)需求。
為了使用戶能夠直觀的觀察心電和便于控制設(shè)備,設(shè)計采用東華公司的TFT彩屏YL-LCD35套件用于人機交互界面。為滿足移植操作系統(tǒng)以及存儲心電信號、網(wǎng)頁等數(shù)據(jù)的要求,系統(tǒng)外擴了64M的NAND Flash(使用一片K9F1208UOB)和64M的SDRAM(使用兩片HY57V561620)。為滿足終端聯(lián)網(wǎng)的需求,選用CS8900A用于設(shè)計網(wǎng)絡(luò)適配器,CS8900A是一個真正的單芯片、全雙工的以太網(wǎng)解決方案產(chǎn)品,更方便的是在Linux內(nèi)核中提供有CS8900A適配器的驅(qū)動程序。
電源部分
為增加安全性、降低功耗、節(jié)省成本,設(shè)計采用9V堿性電池供電,通過電源轉(zhuǎn)換芯片AS1117-3.3將9V轉(zhuǎn)換為3.3V可供給放大器芯片和S3C2410使用。
軟件設(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)下載到目標系統(tǒng),至此移植完成。
Boa的移植和CGI程序設(shè)計
由于嵌入式設(shè)備資源有限,并且不需要同時響應(yīng)多用戶請求,因此一般使用一些專門的Web服務(wù)器用于嵌入式應(yīng)用設(shè)計。Boa是單任務(wù)web服務(wù)器,源代碼開放,性能高,支持CGI,能為CGI程序fork出一個進程來執(zhí)行,其設(shè)計目標是速度和安全,可執(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掛載到目標系統(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ù)注釋標記將對應(yīng)的數(shù)據(jù)填充到HTML文件中,生成新的HTML頁面經(jīng)Web服務(wù)器返回給瀏覽器。
為快速開發(fā)符合應(yīng)用要求的CGI程序,在設(shè)計時添加了CGIC庫和gd庫。CGIC是一個功能強大的支持CGI開發(fā)的開放源碼的標準C庫。Thomas Boutell編寫的gd庫是標準的C語言庫,具有基本的繪圖等功能。為實現(xiàn)在網(wǎng)頁上動態(tài)顯示心電波形,將每次采集的數(shù)據(jù)經(jīng)過功能程序處理后存儲的同時送給CGI程序,利用gd庫提供的函數(shù)來創(chuàng)建圖像。通過在網(wǎng)頁模塊上設(shè)定刷新時間(使用HTML語言的META標記),從而實現(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ù)器上,判斷認證信息是否正確等等;在處理A/D采集的數(shù)據(jù)這一過程中,首先要將采集后的心電信號進行濾波處理,主要是抑制心電信號中的50Hz工頻干擾,再完成濾波后,將數(shù)據(jù)送到本地的LCD上顯示,同時將當前的數(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ù)進行科研工作。
參考文獻:
1.姜永權(quán)、魏月、劉克巖,適合中國國情的遠程家庭醫(yī)療系統(tǒng)研究,中國醫(yī)療器械雜志,2001年25卷第6期
2.張唯真,生物醫(yī)學電子學,清華大學出版社,1990
3.徐英慧、馬忠梅、王磊、王琳,ARM9嵌入式系統(tǒng)設(shè)計—基于S3C2410與Linux,北京航空航天大學出版社,2007
4.李駒光、鄭耿、江澤明,嵌入式Linux開發(fā)詳解—基于EP93XX系列ARM,清華大學出版社,2006
5.Kate Gregory(著),徐丹,唐程杰等(譯),CGI程序設(shè)計自學通,機械工業(yè)出版社,1998
6.李亞鋒、歐文盛,ARM嵌入式Linux系統(tǒng)開發(fā)從入門到精通,清華大學出版社,2007
linux相關(guān)文章:linux教程
評論