摘 要:以S3C2440為平臺(tái),實(shí)現(xiàn)了S3C2440單板機(jī)對(duì)智能模擬人的控制箱,按壓和通氣功能的控制,以及S3C2440與上位機(jī)通信功能,通過對(duì)內(nèi)核的裁剪和驅(qū)動(dòng)及控制程序的編寫,不僅可以實(shí)現(xiàn)各種控制箱的操作,而且也可以對(duì)模擬人的按壓和通氣模擬操作功能進(jìn)行控制,產(chǎn)生與之對(duì)應(yīng)的各種模擬反應(yīng)。最后,提出了用設(shè)置加權(quán)系數(shù)的辦法解決按壓和通氣控制條反應(yīng)速率過緩問題。
關(guān)鍵詞:S3C2440; ARM9; VC; 控制箱; 按壓; 通氣
中圖分類號(hào):TN710-34文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2010)21-0158-04
Control of Intelligent Simulator Based on S3C2440
WU Yan, ZHANG Zi-ming, SHI Yuan-zheng, SU Wen-juan, TIAN Da-jun
(College of Electronic Information and Control Engineering, Beijing University of Technology 100124, China)
Abstract: A control box for intelligent simulator based on the platform of S3C2440, the control of the CPR and ventilation, and the communication function between S3C2440 and PC are realized. It not only can realize the compilation of the control box, but also can operate the CPR and ventilation control operation function for the intelligent simulator and the various simulation reaction through the cutting of kernel and drive and control procedures. A set of weighting coefficients and the solution to CPR and ventilation control over slow reaction rate are proposed.
Keywords: S3C2440; ARM9; VC; control box; CPR; ventilation
0 引 言
醫(yī)學(xué)模擬教學(xué)是利用各種模擬手段,再現(xiàn)臨床醫(yī)學(xué)的工作場景,為學(xué)習(xí)者提供一個(gè)無風(fēng)險(xiǎn)的學(xué)習(xí)臨床知識(shí)和技能的條件與環(huán)境。醫(yī)學(xué)模擬教學(xué)以其對(duì)病人無創(chuàng)、方便、操作可重復(fù)、低成本等優(yōu)勢已經(jīng)成為現(xiàn)代醫(yī)學(xué)教學(xué)的主導(dǎo)方式之一。我國在臨床醫(yī)學(xué)模擬教學(xué)設(shè)備還處于比較低層次上,高端的教學(xué)設(shè)備多數(shù)還以進(jìn)口為主,自主研發(fā)并實(shí)際應(yīng)用很少。智能模擬人系統(tǒng)正是在這種情況下填補(bǔ)了現(xiàn)在國內(nèi)市場的空白,滿足我國臨床醫(yī)學(xué)高層次實(shí)踐教學(xué)需求[1]。
智能綜合模擬人系統(tǒng)采用目前國際醫(yī)學(xué)模擬教學(xué)中比較流行的觸覺感知技術(shù),可以逼真地模擬各種醫(yī)療過程,并對(duì)各個(gè)過程進(jìn)行實(shí)時(shí)監(jiān)控。本文主要介紹醫(yī)學(xué)教學(xué)和臨床教學(xué)中常用的除顫,CPR和Ventilation的操作實(shí)現(xiàn)方法,它們?cè)卺t(yī)學(xué)教學(xué)和臨床教學(xué)中起到了橋梁作用,使受訓(xùn)者的理論和臨床實(shí)踐很好地結(jié)合起來,極大地提高了受訓(xùn)者的應(yīng)變能力和現(xiàn)場處理能力。
1 S3C2440介紹
由于所需完成的功能眾多,對(duì)體積、功耗和性能諸多方面要求較高,如果用傳統(tǒng)的MCU處理,顯然不能滿足需要,所以這里采用S3C2440作為平臺(tái)搭建系統(tǒng),三星公司推出的16/32位RISC微處理器S3C2440,采用ARM920T的內(nèi)核,0.13 μm的CMOS標(biāo)準(zhǔn)宏單元和存儲(chǔ)器單元,采用了新的總線架構(gòu)——AMBA。為手持設(shè)備和一般類型應(yīng)用提供了低價(jià)格,低功耗,高性能小型微處理器的解決方案,滿足了系統(tǒng)搭建的要求[2]。
1.1 S3C2440的功能
S3C2440的杰出特點(diǎn)是其核心處理器(CPU),是一個(gè)由Advanced RISC Machines有限公司設(shè)計(jì)的16/32位ARM920T的RISC處理器。ARM920T實(shí)現(xiàn)了MMU,AMBA BUS和Harvard高速緩沖體系結(jié)構(gòu)。這一結(jié)構(gòu)具有獨(dú)立的16 KB指令Cache和16 KB數(shù)據(jù)Cache。每個(gè)都是由具有8字長的行組成。通過提供一套完整的通用系統(tǒng)外設(shè),S3C2440減少了整體系統(tǒng)成本和無需配置額外的組件[3]。
綜合對(duì)芯片的功能描述,總共有以下17種功能:
(1) 1.2 V內(nèi)核供電,1.8 V/2.5 V/3.3 V存儲(chǔ)器供電,3.3 V外部I/O供電,具備16 KB的I-Cache和16 KB DCache/MMU微處理器。
(2) 外部存儲(chǔ)控制器(SDRAM控制和片選邏輯)。
(3) LCD控制器(最大支持4K色STN和256色TFT)提供1通道LCD專用DMA。
(4) 4通道DMA并有外部請(qǐng)求引腳。
(5) 3通道UART。
(6) 2通道SPI。
(7) 1通道I2S-BUS音頻編解碼器接口。
(8) 1通道I2C-BUS接口(多主支持)。
(9) AC97解碼器接口。
(10) 兼容SD主接口協(xié)議1.0版和MMC卡協(xié)議2.11兼容版。
(11) 2端口USB主機(jī)/1端口USB設(shè)備(1.1版)。
(12) 8通道10比特ADC和觸摸屏接口。
(13) 具有日歷功能RTC。
(14) 相機(jī)接口(最大4 096×4 096像素的投入支持)。
(15) 130個(gè)通用I/O口和24通道外部中斷源。
(16) 具有普通、慢速、空閑和掉電模式。
(17) 具有PLL片上時(shí)鐘發(fā)生器。
1.2 S3C2440的主要特性
S3C2440相對(duì)于MCU有許多不同的特性,主要應(yīng)用于智能模擬人系統(tǒng)功能的特性包括以下幾方面[4]:
(1) 體系結(jié)構(gòu):加強(qiáng)的ARM體系結(jié)構(gòu)MMU用于支持Linux。
(2) 系統(tǒng)管理器:支持高速總線模式和異步總線模式,尋址空間每BANK 128 MB(總共1 GB),支持掉電時(shí)SDRAM自刷新模式。
(3) RTC(實(shí)時(shí)時(shí)鐘):32.768 kHz工作,具有報(bào)警中斷和節(jié)拍中斷。
(4) 通用I/O端口:24個(gè)外部中斷端口,130個(gè)多功能輸入/輸出口。
(5) UART:3通道UART,可以基于DMA模式或中斷模式工作。
(6) A/D轉(zhuǎn)換和觸摸屏接口:8通道多路復(fù)用ADC,最大500 KSPS。
(7) 工作電壓:輸入/輸出3.3 V,同時(shí)有5 V供電電壓接口。
2 智能模擬人功能實(shí)現(xiàn)
2.1 控制箱功能的實(shí)現(xiàn)
模型人信息采集模塊是整個(gè)系統(tǒng)正常工作的保證,信息采集的精度、可靠度決定了整個(gè)系統(tǒng)的性價(jià)比。模型人的信息采集分為數(shù)字量信息采集和模擬量信息采集兩部分。
數(shù)字量信息采集主要是采集模型人身上的開關(guān)量,主要包括對(duì)模擬人體生命體征監(jiān)護(hù)儀信息、氣管插管術(shù)信息、模擬靜脈給藥信息、模擬胎兒監(jiān)護(hù)儀信息采集、模擬血壓儀的信息和模擬脈搏氧飽和度信息采集。主控制器實(shí)時(shí)掃描感應(yīng)器終端,拾取感應(yīng)器信息,經(jīng)處理后通過通信系統(tǒng)傳給上位機(jī)。系統(tǒng)采取了系統(tǒng)擴(kuò)展I/O口和主控制器I/O并行與位置傳感器終端相連采取位置感應(yīng)器信息[5]。
具體體現(xiàn)在智能模擬人的控制箱功能包括:APEX,AED,ECG,BP,TEP,SIP的控制,總共需要14個(gè)I/O口進(jìn)行配置相應(yīng)的操作,通過GPIO驅(qū)動(dòng)定義S3C2440的外設(shè)引腳功能,當(dāng)對(duì)I/O口進(jìn)行上電操作時(shí)[3],通過UART向上位機(jī)發(fā)送14位相對(duì)應(yīng)的數(shù)據(jù),從而使相應(yīng)的功能實(shí)現(xiàn),具體表現(xiàn)是上位機(jī)的控制箱界面的相應(yīng)功能按鈕將會(huì)顯示綠色,否則,表示未啟動(dòng)功能(此時(shí)狀態(tài)為紅色),具體表現(xiàn)是上位機(jī)的控制箱界面信號(hào)燈不顯示,如圖1所示。
圖1 ADC信號(hào)采集電路圖
2.2 按壓和通氣功能的實(shí)現(xiàn)
2.2.1 按壓和通氣功能的特點(diǎn)
模擬量信息采集主要是指心肺復(fù)蘇術(shù)信息采集,模型人心肺模擬采用氣囊方式,所以心肺復(fù)蘇術(shù)信息采集采用了氣體壓力傳感器的方式進(jìn)行。系統(tǒng)采用了MPX2010型雙通道壓力傳感器和LM358運(yùn)算放大器組成的信息轉(zhuǎn)化電路分別對(duì)CPR中的按壓和通氣的信息進(jìn)行采集。
智能綜合模擬人系統(tǒng)采用了MPX2010型雙通道壓力傳感器和LM358運(yùn)算放大器組成的信息轉(zhuǎn)化電路分別對(duì)CPR中的按壓和通氣的信息進(jìn)行采集。
MPX2010能提供一個(gè)精確的直接與外加壓力成正比的線性電壓輸出,此類傳感器將應(yīng)變計(jì)和薄膜電阻網(wǎng)絡(luò)集成在同一硅片上,用激光修正技術(shù)實(shí)現(xiàn)精確的量程校正、零位偏差校正和溫度補(bǔ)償。系統(tǒng)利用運(yùn)算放大器將壓力傳感器輸出的微小電壓信號(hào)放大至與單片機(jī)內(nèi)部的A/D轉(zhuǎn)換器相容的電平,使傳感器與單片機(jī)接口匹配。MPX2010特點(diǎn)有:
溫度補(bǔ)償范圍在0~+85 ℃;
電源電壓成比例;
微分和規(guī)范操作;
主要應(yīng)用于呼吸診斷、航空運(yùn)動(dòng)控制、控制器、壓開關(guān)。
LM358包括有兩個(gè)高增益、獨(dú)立的、內(nèi)部頻率補(bǔ)償?shù)倪\(yùn)放,適用于電壓范圍很寬的單電源,而且也適用于雙電源工作方式,它的應(yīng)用范圍包括傳感放大器、直流增益模塊和其他所有可用單電源供電的使用運(yùn)放的地方使用。LM358的特點(diǎn)如下:
內(nèi)部頻率補(bǔ)償;
低輸入偏流;
低輸入失調(diào)電壓和失調(diào)電流;
直流電壓增益高(約100 dB);
單位增益頻帶寬(約1 MHz);
電源電壓范圍寬:單電源(3~30 V);
CPR信息采集采用了MPX2010型雙通道壓力傳感器,經(jīng)過LM358進(jìn)行線性放大后傳給MCU的A/D采集控制器進(jìn)行采集,電路圖如圖2所示。
圖2 ADC信號(hào)采集電路圖
在完成之上所述的信號(hào)采集后,選用S3C2440自帶的UART串口完成ARM與上位機(jī)軟件的串口通信。
串行接口是S3C2440與外部設(shè)備的主要通信接口之一。只需要1條信號(hào)線就可以進(jìn)行單向數(shù)據(jù)傳送。由于線路簡單,價(jià)格相對(duì)較低,得到了廣泛應(yīng)用[6]。PC機(jī)與下位機(jī)串口連接如圖3所示。
圖3 PC機(jī)與下位機(jī)串口連接圖
一般情況下,串口通信采用兩種方法:一種方法是利用Windows的通信API函數(shù);另一種方法是利用Visual C++的ActivateX 控件。Windows 的API 函數(shù)使用起來比較靈活,實(shí)現(xiàn)通信的效率也是最高,所以系統(tǒng)采用利用Windows 的API 函數(shù)進(jìn)行串口通信的開發(fā)。程序中thread_com類對(duì)串口操作的Windows API 函數(shù)進(jìn)行了封裝,此類實(shí)現(xiàn)了對(duì)串口同步接收、異步接收以及線程監(jiān)控模式異步接收。thread_com類的成員函數(shù)如表1所示。
表1 thread_com類的公共成員函數(shù)
成員函數(shù)功能描述
open打開設(shè)備
set_dcb設(shè)置串口通信方式
set_buf設(shè)置緩沖區(qū)大小
close關(guān)閉串口
is_open檢測是否有串口打開
read讀數(shù)據(jù)
write寫數(shù)據(jù)
set_hwnd設(shè)置線程監(jiān)控發(fā)送
2.2.2 通氣和按壓功能的實(shí)現(xiàn)
根據(jù)上面所說的情況,可以完成CPR中通氣和按壓功能的實(shí)現(xiàn),將ADC驅(qū)動(dòng)燒錄至S3C2440進(jìn)行壓力傳感器的信號(hào)采集和轉(zhuǎn)換,由于采用的雙路信號(hào),就需要將壓力傳感器的取值范圍分為兩段,取中值后,設(shè)定大于中值時(shí),完成按壓功能響應(yīng);小于中值時(shí),完成通氣功能響應(yīng);在不對(duì)傳感器操作的時(shí)候,不響應(yīng)[3]。在采集到壓力信號(hào)的同時(shí),向上位機(jī)發(fā)送8位UART數(shù)據(jù),進(jìn)行按壓和通氣顯示條的操作[7],具體表現(xiàn)為:當(dāng)按壓或者通氣值滿足系統(tǒng)設(shè)定的條件時(shí)(初始狀態(tài)為藍(lán)色),按壓或通氣條顯示綠色,否則為紅色。具體如圖4所示。
圖4 上位機(jī)按壓和通氣進(jìn)度條
3 功能實(shí)現(xiàn)過程中遇到的問題
用S3C2440可以很好地滿足設(shè)計(jì)功能需求,顯示效果也比較滿意,但是在具體實(shí)現(xiàn)過程中,遇到很多問題,比如,S3C2440內(nèi)核自帶的ADC驅(qū)動(dòng)的中斷號(hào)和編寫的ADC驅(qū)動(dòng)的中斷號(hào)沖突的問題[8];一些外擴(kuò)的I/O口已經(jīng)被占用的問題;與上位機(jī)通信過程中,數(shù)據(jù)包的傳輸問題;按壓和同期進(jìn)度條顯示速率的問題等。通過以下步驟可以很容易地解決這些問題:
(1) 根據(jù)用戶手冊(cè),重新燒錄Bootload時(shí),要對(duì)I/O口進(jìn)行重新配置,使之滿足智能模擬人控制箱的配置需要;
(2) 如果不需要使用觸摸屏的話,可以對(duì)S3C2440進(jìn)行裁剪,卸載ADC觸摸屏驅(qū)動(dòng);如果仍需要使用觸摸屏,可以改用查詢方式完成功能;
(3) 對(duì)上位機(jī)和下位機(jī)設(shè)置同樣的波特率,并建立鏈表[9],在滿足條件的情況下,再進(jìn)行數(shù)據(jù)的傳輸,避免傳輸數(shù)據(jù)有誤造成的功能顯示問題;
(4) 對(duì)按壓和通氣進(jìn)度條的傳輸數(shù)據(jù)進(jìn)行參數(shù)調(diào)整,同時(shí)結(jié)合上位機(jī)的參數(shù)進(jìn)行調(diào)試[4],設(shè)置加權(quán)系數(shù),可以完善進(jìn)度條顯示速率問題。
4 結(jié) 語
主要討論了用S3C2440開發(fā)智能模擬人控制箱和按壓通氣功能的實(shí)現(xiàn),并介紹了上位機(jī)與下位機(jī)的通信,對(duì)在此過程中遇到的中斷號(hào)沖突,進(jìn)度條顯示速率過慢等問題,也提出了相應(yīng)的解決的方法。
參考文獻(xiàn)
[1]萬學(xué)紅,姚巡,卿平.現(xiàn)代醫(yī)學(xué)模擬教學(xué)的發(fā)展及其對(duì)醫(yī)學(xué)教育的影響[J].中國循證醫(yī)學(xué)雜志,2008,8(6):413-415.
[2]楊將軍,王永波.基于S3C2420的串口通信實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2007,30(18):40-45.
[3]楊水清,張建.ARM嵌入式Linux系統(tǒng)開發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2008.
[4]鄭靈翔.嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2006.
[5]楊水清,張劍,施云非,等.ARM嵌入式Linux系統(tǒng)開發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2008.
[6]宏林張,現(xiàn)勇李.精通Visual C++串口通信技術(shù)與工程實(shí)踐[M].北京:人民郵電出版社,2008.
[7]陳竟,劉玉,熊祖彪.PC與ARM嵌入式系統(tǒng)間串口通信功能實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2005,21(26):111-113.
[8]王黎明,陳雙橋.ARM9嵌入式系統(tǒng)開發(fā)與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2009.
[9]譚浩強(qiáng).C程序設(shè)計(jì)[M].2版.北京:清華大學(xué)出版社,2003.
[10]孫瓊.嵌入式Linux應(yīng)用程序開發(fā)詳解[M].北京:人民郵電出版社,2006.