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