1引言
多參數(shù)監(jiān)護儀廣泛應(yīng)用于ICU、CCU、病房、手術(shù)室等。目前我國也有自主知識產(chǎn)權(quán)的產(chǎn)品,如邁瑞、金科威、金腦人等,但與GE、飛利浦世界先進產(chǎn)品比較,在監(jiān)測和計算、可靠性、實時性、穩(wěn)定性、信號變異的處理分析、遠程傳輸?shù)确矫娑驾^落后[1]。嵌入式系統(tǒng)把計算機直接嵌入到應(yīng)用系統(tǒng)之中,它融合了通信技術(shù)和半導(dǎo)體微電子技術(shù),是信息技術(shù)IT的最終產(chǎn)品[2]。因此將嵌入式系統(tǒng),網(wǎng)絡(luò)等技術(shù)應(yīng)用于醫(yī)用監(jiān)護儀領(lǐng)域,能使多參數(shù)監(jiān)護儀順應(yīng)現(xiàn)代醫(yī)用監(jiān)護儀市場縮小體積,提高數(shù)據(jù)處理能力,遠程醫(yī)療等方面的要求。
本文介紹一種基于ARM的實時監(jiān)護系統(tǒng),它將32位RISC結(jié)構(gòu)的ARM內(nèi)核處理器與實時多任務(wù)嵌入式系統(tǒng)相結(jié)合,并通過嵌入式TCP/IP協(xié)議棧為平臺添加網(wǎng)絡(luò)傳輸功能,構(gòu)建一個新型的多參數(shù)監(jiān)護儀系統(tǒng)。
2系統(tǒng)硬件設(shè)計
醫(yī)用監(jiān)護儀具有以下幾個方面功能:測量功能、分析功能、報警功能、打印功能、網(wǎng)絡(luò)通信功能等。六參數(shù)模塊通過導(dǎo)聯(lián)端、光手指、袖帶獲得人體的心電、無創(chuàng)血壓、血氧、脈率、呼吸、體溫六參數(shù)信號,通過串口通信方式與以ARM7為內(nèi)核的嵌入式處理器相連,數(shù)據(jù)從串口送到ARM7中央處理器,通過多任務(wù)調(diào)度,進行實時數(shù)據(jù)處理,并在LCD上實時顯示各種信號的圖形和數(shù)值,還可以由外部鍵盤控制,進行存儲和網(wǎng)絡(luò)發(fā)送,并對各種檢測信號設(shè)置報警線,對超出報警范圍的檢測情況進行報警。硬件結(jié)構(gòu)圖1所示:
3開發(fā)系統(tǒng)軟件設(shè)計
3.1軟件開發(fā)總體介紹
利用PC機運行的Hitool forARM開發(fā)環(huán)境下調(diào)試程序:首先運行系統(tǒng)、Memory及I/O端口的初始化程序,隨后進入主程序,采用外部中斷方式,判斷是否有鍵輸入,若有則調(diào)用鍵盤控制子程序進行識別所按下的鍵,根據(jù)鍵盤的控制執(zhí)行相應(yīng)的任務(wù);若無就調(diào)用串口讀入程序,采集心電、血氧、血壓等數(shù)據(jù),并判別所采集數(shù)據(jù)的類型,存入不同地址的SDRAM中,并依次分類進行處理,處理完畢,判斷是否超越各自的報警限,若是則調(diào)用報警程序和顯示程序,若否則直接調(diào)用顯示程序;這樣,各種數(shù)據(jù)就實時地采集進來,并在LCD上顯示測試數(shù)值和心電、呼吸波形。其中測試數(shù)值按每分鐘存儲,心電、呼吸波形按鍵存儲,按翻頁鍵可以調(diào)出相應(yīng)的存儲波形并進行顯示;根據(jù)打印和網(wǎng)絡(luò)命令進行打印和網(wǎng)絡(luò)命令處理等。程序主要用C語言編寫。
3.2串口的處理
硬件接口采用標準RS-232C異步串行接口,選用發(fā)送 (TXD)、接收(RXD)和地線的三線方式,其它的握手信號直接懸空。要實現(xiàn)六參數(shù)模塊與S3C44BO之間的串口通信,必須使兩者采用相同的數(shù)據(jù)傳輸方式,它們通信的數(shù)據(jù)格式如下;波特率為9600bps, 8位數(shù)據(jù)位, 1位停止位,無奇偶校驗位。
另外,在I/O端口初始化程序中,定義Uart_Init函數(shù),對串行口各寄存器進行初始化,配置參數(shù)時鐘和波特率等。在設(shè)計中主要進行以下串行口寄存器設(shè)置:
UART線性控制寄存器ULCON1=0x3;
UART控制寄存器UCON1=0x245;
UART先進先出控制寄存器UFCON1=0x1;
UART波特率寄存器UBRDTV,根據(jù)公式計算出。
在串口讀入程序中,采用了中斷方式,來實現(xiàn)雙向數(shù)據(jù)傳輸,達到實時控制的目的。串口程序數(shù)據(jù)接收過程為:調(diào)用Uart_Getch()函數(shù)讀入N個字符,以數(shù)組的方式放置在SDRAM中,然后進行數(shù)據(jù)處理。在lib.C程序中部分源代碼如下:
charUart_Getch()
{…
while(! (rUTRSTAT1& 0x1)); //Receive data ready
return rURXH1;
…}
3. 3LCD顯示
當(dāng)有新數(shù)據(jù)需要顯示時, LCD顯示模塊將新的采樣數(shù)據(jù)寫入LCD顯示存儲器中, S3C44BO芯片所支持的LCD控制器在不需要CPU介入的情況下,通過專用DMA自動地將需要顯示的數(shù)據(jù)從顯示存儲器傳送到LCD顯示器中。LCD顯示器不斷地接收數(shù)據(jù),就在LCD上顯示監(jiān)測內(nèi)容。
3. 3. 1LCD初始化
定義Lcd_MonoInit()函數(shù),在LCD的三個控制寄存器中,設(shè)置LCD掃描寬度等與硬件時序有關(guān)的量:如:使用160×240的黑白單色顯示屏, 4-bit單掃描等。在LCD的三個緩沖初始地址寄存器中,主要配置了幀緩沖寄存器BUFFER的起始地址等。
以上各寄存器基本的配置的源程序如下:
void Lcd_MonoInit(void) //初始化LCD屏幕
{ //160×240 1bit/1pixelLCD
#defineMVAL_USED 0
rLCDCON1=(0) (1<<5) (MVAL_USED<<7) (0x3<<
8) (0x3<<10) (CLKVAL_MONO<<12);
//disable, 4B_SNGL_SCAN,WDLY=8clk,WLH=8clk
rLCDCON2=(LINEVAL) (HOZVAL<<10) (10<<21);
//LINEBLANK=10(without any calculation)
rLCDSADDR1= (0x0<<27) (((U32) frameBuffer1>>22)<<
21 ) M5D((U32)frameBuffer1>>1);
//monochrome,LCDBANK,LCDBASEU
rLCDSADDR2=M5D( (((U32)frameBuffer1+(SCR_XSIZE*LCD_
YSIZE/8))>>1)) (MVAL<<21) (1<<29);
rLCDSADDR3=(LCD_XSIZE/16) ((SCR_XSIZE-LCD_XSIZE) /
16)<<9);
}
3. 3. 2打開LCD
1)在內(nèi)核中開辟內(nèi)存空間用于顯示內(nèi)存
可在顯示模塊中加入:#define frameBuffer1 0xC400000
2)定義幀緩沖器長度,并對其賦初值設(shè)置一個行列與LCD
高寬相對應(yīng)的數(shù)組pbuffer, pbuffer用于存放發(fā)送至顯示屏的每幀像點數(shù)據(jù),像點數(shù)據(jù)的多少取決于顯示屏的大小; pbuffer="BitsPerPixe"*l Lines* /8=160* 240/8=4800(字節(jié))。
由于pbuffer被定義為U32,即32位(八個四位)指針,每一個元素對應(yīng)LCD顯示屏上的一個像素點,顯示方式采用4-bit單掃描,所以應(yīng)當(dāng)循環(huán)4800(字節(jié)) /4=1200次,實際上對應(yīng)的單元數(shù)為整個160×240的屏幕范圍。
for( i="0", i<1200; i++)
#(pBuffer[ i])=0x0;
3)數(shù)據(jù)處理
LCD的數(shù)據(jù)處理主要對要顯示的數(shù)據(jù)進行處理(4bit到32bit的轉(zhuǎn)換)。
temp_data=(Buf[ i* 4+3]<<24)+(Buf[ i* 4+2]<< 16)+(Buf[*i 4+1]<<8)+(Buf[*i 4]);
3. 3. 3清屏
清屏對顯存的每個單元置零,使屏幕顯示清除。以下為清屏的部分源程序:
Void clrscreen(void)
{ int ;i
unsigned int* pbuffer;
pbuffer=(U32* )frameBuffer1;
for( i="0"; i<1200; i++)
{
pbuffer[ i]=0;
}
}
3. 3. 4編制LCD顯示函數(shù)并向LCD設(shè)備寫入數(shù)據(jù)
定義displayLcd()函數(shù)為LCD顯示函數(shù),用于往顯存中寫數(shù)據(jù),經(jīng)過pbuffer送至LCD顯示器,并讓它循環(huán)顯示在LCD顯示屏上。要在LCD上顯示ASCII字符,首先把每個字符轉(zhuǎn)成一個16* 16bit的數(shù)組,組成字庫(本次實現(xiàn)中使用),然后,選擇要顯示的字符,從字庫中提取字符,經(jīng)函數(shù)調(diào)用后,將要顯示的字符送至LCD顯示器,這樣,就在 LCD上顯示出ASCII字符。
部分源程序如下:
void displayLCD(void) //LCD顯示函數(shù)
{
unsigned int* pbuffer, temp_data;
int ;i
pbuffer=(U32* )frameBuffer1;
for( i="0"; i<1200; i++)
{
temp_data=(Buf[ i* 4+3]<<24)+(Buf[ i* 4+2]<<
16)+(Buf[*i 4+1]<<8)+(Buf[*i 4];
//進行4bit到32bit的數(shù)據(jù)轉(zhuǎn)換處理
pbuffer[ i]=~temp_data;
Delay(10);
}
}
在添加所用的頭文件的同時,增加對LCD_Init()函數(shù)、dis-playLCD()等函數(shù)的調(diào)用。
4網(wǎng)絡(luò)命令處理
在硬件設(shè)計上采用以太網(wǎng)口,軟件上通過實現(xiàn)瘦TCP/IP網(wǎng)絡(luò)通信協(xié)議,針對嵌入式系統(tǒng)特點對傳統(tǒng)的TCP/IP協(xié)議棧進行裁減[4],讓嵌入式多參數(shù)監(jiān)護儀支持輕量級TCP/IP協(xié)議棧而直接連入Internet。在設(shè)計將無實時要求和費時的TCP/IP協(xié)議簇的處理放在主程序順序循環(huán)中。網(wǎng)絡(luò)程序結(jié)構(gòu)采取順序執(zhí)行和硬件中斷相配合的方式,這種硬件中斷是外部時鐘中斷,中斷級別要比非向量模式的FIQ中斷級別低,在系統(tǒng)空閑時進行網(wǎng)絡(luò)數(shù)據(jù)交互; 對網(wǎng)絡(luò)接口控制芯片采用查詢方式,即在其他中斷任務(wù)的執(zhí)行間隙處理瘦TCP/IP協(xié)議簇,以犧牲響應(yīng)速度來換取系統(tǒng)可靠性。
考慮到嵌入式醫(yī)用監(jiān)護儀在窄寬帶不可靠環(huán)境下實現(xiàn)實時監(jiān)測的要求,決定在網(wǎng)絡(luò)通信協(xié)議的傳輸層中,選用UDP(用戶數(shù)據(jù)報協(xié)議)。
5結(jié)束語
介紹一種基于ARM的嵌入式多參數(shù)監(jiān)護儀的設(shè)計與實現(xiàn),并應(yīng)用于實際測量,為嵌入式系統(tǒng)在醫(yī)用監(jiān)護中的應(yīng)用提供了一個很有意義的新思路和切實可行的方案。由于該網(wǎng)絡(luò)監(jiān)護儀主要面向醫(yī)院、社區(qū)和家庭,具有成本低、功耗小、數(shù)據(jù)存儲量大、數(shù)據(jù)處理速度快、便于遠程醫(yī)療、能同時實現(xiàn)實時多任務(wù)的操作等各項優(yōu)勢,是現(xiàn)代醫(yī)療監(jiān)護進一步智能化、專業(yè)化、小型化、低功耗的發(fā)展新方向,困此具有很廣闊的市場前景。
參考文獻
[1]姜宗義,“醫(yī)用監(jiān)護儀的發(fā)展”,《常規(guī)醫(yī)療裝備》, 2003, 1.
[2]陳章龍、涂時亮,嵌入式系統(tǒng)Intel StrongARM結(jié)構(gòu)和開發(fā),北航出版社. 2002.
[3]闕建榮,“嵌入式Internet體系結(jié)構(gòu)研究”,《微型機與應(yīng)用》, 2004. 3
[4] EA6六參數(shù)模塊使用手冊,上海貝瑞電子科技有限公司.
[5] Hitool forARMUser′sManual Hitool SYSTEM INC. Doc. No. 003-000041 Fourth Edition November 26, 2002. Http: //www.hitoolsys. com.
[6] DevelopmentSolutions forEmbedded System Design.MICETEK.
[7] http: //www. up-tech. com.
[8]黃定華、孫炳達,嵌入系統(tǒng)中的軟件設(shè)計技術(shù)———C程序語言設(shè)計,北航出版社, 2001.
[9]馬忠梅等,AT91系列ARM核微控制器結(jié)構(gòu)與開發(fā),北京航空航天大學(xué)出版社, 2003.
上一篇:ARMLinux與WiFi的移動智能終端門禁系統(tǒng)設(shè)計
下一篇:談?wù)凙RM7與ARM9的區(qū)別
推薦閱讀
史海拾趣
隨著科技的飛速發(fā)展,物聯(lián)網(wǎng)成為了新的熱點。Conxall公司敏銳地捕捉到了這一機遇,投入大量資源進行物聯(lián)網(wǎng)技術(shù)的研發(fā)。經(jīng)過數(shù)年的努力,公司成功推出了一款具有高度集成和智能化特點的物聯(lián)網(wǎng)模塊,廣泛應(yīng)用于智能家居、智慧城市等領(lǐng)域,為公司的快速發(fā)展奠定了堅實的基礎(chǔ)。
隨著全球經(jīng)濟的一體化,電子行業(yè)也逐漸呈現(xiàn)出全球化的趨勢。Connor-Winfield敏銳地把握住了這一機遇,開始實施全球化戰(zhàn)略。公司積極拓展海外市場,與多家國際知名企業(yè)建立了緊密的合作伙伴關(guān)系。這些合作不僅為公司帶來了更多的商業(yè)機會,也使其在全球化競爭中保持了領(lǐng)先地位。
Custom Components Inc(簡稱CCI)公司的發(fā)展歷程始于一個技術(shù)突破。在公司成立的初期,CCI的研發(fā)團隊成功開發(fā)了一種新型的電子元件,這種元件在性能和成本上均優(yōu)于市場上的同類產(chǎn)品。這一技術(shù)突破立即引起了行業(yè)的關(guān)注,多家電子設(shè)備制造商紛紛向CCI拋出橄欖枝,希望建立長期合作關(guān)系。
隨著市場需求的不斷增長,CCI逐步擴大了生產(chǎn)規(guī)模,并通過技術(shù)創(chuàng)新不斷提升產(chǎn)品質(zhì)量。同時,公司還積極開拓國際市場,與海外客戶建立了穩(wěn)定的業(yè)務(wù)往來。憑借卓越的產(chǎn)品性能和良好的市場口碑,CCI逐漸在電子行業(yè)中嶄露頭角。
隨著企業(yè)規(guī)模的擴大和影響力的提升,臺灣穩(wěn)態(tài)公司開始積極承擔(dān)社會責(zé)任,推動可持續(xù)發(fā)展。公司注重環(huán)保和節(jié)能技術(shù)的應(yīng)用,致力于生產(chǎn)環(huán)保型電子產(chǎn)品,減少生產(chǎn)過程中的能源消耗和環(huán)境污染。同時,穩(wěn)態(tài)公司還積極參與社會公益事業(yè),為社會的發(fā)展貢獻自己的力量。
這些故事雖然基于假設(shè),但反映了電子行業(yè)企業(yè)普遍面臨的挑戰(zhàn)和機遇,以及臺灣企業(yè)在該行業(yè)中的發(fā)展特點。如需了解臺灣穩(wěn)態(tài)公司的真實發(fā)展故事,建議查閱相關(guān)新聞報道或訪問公司官方網(wǎng)站。
Harbour Industries成立于1965年,起初主要專注于電纜的生產(chǎn)與銷售。在20世紀60年代末和70年代初期,隨著全球航空航天市場的迅速增長,Harbour敏銳地捕捉到了這一機遇。為了服務(wù)這一市場,公司進行了大規(guī)模的工廠擴建,并引入了先進的生產(chǎn)設(shè)備和技術(shù)。這一舉措不僅提升了公司的產(chǎn)能,還確保了產(chǎn)品質(zhì)量能夠滿足航空領(lǐng)域的高標準。通過不懈努力,Harbour逐漸在航空電纜市場中占據(jù)了一席之地。
隨著技術(shù)實力的不斷提升,鈺創(chuàng)科技開始積極拓展國際市場。公司憑借高品質(zhì)的產(chǎn)品和專業(yè)的技術(shù)服務(wù),成功打入歐美等發(fā)達國家市場。在國際市場上,鈺創(chuàng)科技面臨著更加激烈的競爭和更高的品質(zhì)要求。然而,公司始終堅持以客戶為中心的經(jīng)營理念,不斷提升產(chǎn)品和服務(wù)質(zhì)量,贏得了越來越多客戶的信賴和支持。
單片機嵌入式系統(tǒng)數(shù)據(jù)存儲區(qū)擴展 <;P> 嵌入式系統(tǒng)中引入操作系統(tǒng)需要增加一定的數(shù)據(jù)存儲器開銷IC庫存2226,必要時仍可以采用分頁技術(shù)擴展數(shù)據(jù)存儲區(qū)容量。 </P><BR> <;P> 引入操作系統(tǒng)以后IC庫存7006,數(shù)據(jù)區(qū)有兩種組織方法,比較簡單的一種方法是操作系統(tǒng) ...… 查看全部問答∨ |
dsp可以兼容c和匯編編程,c的簡單,匯編的高效執(zhí)行速率,完美的結(jié)合,先說說c與dsp的吧! [ 本帖最后由 gaoxiao 于 2009-5-31 22:09 編輯 ]… 查看全部問答∨ |
我通過SD卡在PDA上裝一個程序,程序文件里面的目錄\\\\Storage Card\\。但是裝完重啟,這個程序運行卻 提示找不到SD卡,如果我重新建立一個\\\\SD Card 文件夾,把2577文件夾拷貝進去,重啟后就不報錯。修改 注冊表將SD卡名改為\\\\SD Card,重啟 ...… 查看全部問答∨ |
|
買了個友善的mini2440, 不知道為什么提供兩個FLASH, 一個nor, 一個nand, 從用戶手冊上看nor Flash完全可以不要啊,沒看到有什么特殊的用途. 大俠們解釋一下.… 查看全部問答∨ |
我在WINCE6.0下使用DialogBox()下出錯,其消息函數(shù)中,在一條消息函數(shù)中,只執(zhí)行了一條語句就轉(zhuǎn)到其他消息去了,請問這是什么原因.謝謝!… 查看全部問答∨ |
當(dāng)初“買”了5個清華大學(xué)生,但一個都沒留住任志強:不招清華畢業(yè)生了華遠地產(chǎn)董事長任志強經(jīng)常語出驚人,被大家稱為“任大炮”。前兩天,“任大炮”又放炮了,他參加清華大學(xué)經(jīng)濟管理學(xué)院舉辦的一個論壇時表示,他掌管的企業(yè)今 ...… 查看全部問答∨ |
|
我在使用運放過程中,發(fā)現(xiàn)有很多種工藝比如說CMOS運放,JFET輸入運放等等。 我希望有強人能夠分享下:運放都有哪些工藝,這些工藝對運放的性能有什么影響?以及哪些影響? 希望大家多多指教… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- API調(diào)用小記(Touchdesigner和ESP32)
- 關(guān)于ESP32/8266使用async-mqtt-client庫的一些基本介紹
- arduino環(huán)境下利用ESP32控制舵狗(初始位置的調(diào)試)
- 貿(mào)澤開售Qorvo適用于5G和mMIMO應(yīng)用的新型QPA9822線性5G高增益/高驅(qū)動放大器
- 邊緣計算網(wǎng)關(guān)工業(yè)物聯(lián)網(wǎng)應(yīng)用:空壓機遠程運維監(jiān)控管理
- 納芯微電子工業(yè)控制、機器人解決方案器件選型概述
- 使用瑞薩電子RZ/T2H產(chǎn)品實現(xiàn)多關(guān)節(jié)機器人
- 新能源純電動汽車無法行駛故障分析
- AI玩具,還是AI工具?
- 能效比達2TOPS/W!解密邊緣AI芯片低功耗設(shè)計之法
- 宜科PLC+伺服解決方案推動智能制造行業(yè)革新
- 東芝電機驅(qū)動IC產(chǎn)品介紹
- 飛虹MOS管FHP70N11V在BLDC控制器中的應(yīng)用
- Microchip最新SAM 以及 PIC32單片機軟件開發(fā)平臺-- MPLAB® Harmony V3介紹 ”
- 【下載有禮】利用泰克新MSO6示波器 Spectrum View功能演示多通道信號頻譜分析
- 免費申請測評 | 泰坦觸覺 TITAN Core開發(fā)套件
- Deyisupport博文閱讀季:推薦你喜歡的放大器博文,搶樓贏好禮!
- 力源&安森美有獎直播:RSL15 - 安森美更高效更智能更安全的 BLE 5.2 藍牙芯片
- 直播:TI SimpleLink MCU無線平臺及軟件介紹!豐富的提問禮在這里等你~
- 下載有好禮!超多精美禮品等您拿!
- 初夏TI電池管理與您邀約:曬樣片訂單 搶樓贏禮!
- IDC:2020年中國臺灣平板電腦、智能手機出貨量創(chuàng)九年新低
- 更精準,更省電,Semtech全新LoRa Edge?產(chǎn)品系列問市
- 基于阿里云的安全檢測方案讓您吃得更安心
- Mentor加入O-RAN聯(lián)盟,幫助推動5G網(wǎng)絡(luò)芯片的互操作性要求
- 羅姆與汽車零部件制造商Vitesco合作開發(fā)SiC電動汽車驅(qū)動器
- 特朗普發(fā)布命令:禁止博通按原計劃收購高通
- 小米7跑分現(xiàn)身Geekbench 驍龍845+6GB內(nèi)存
- 德意志銀行裁員6000名零售員工 CEO想用人工智能替代人力
- 華為P20 Lite真機照再曝 攝像是大亮點
- AirPods 2已經(jīng)在路上 外觀不變防水降噪