陳宇珂,鄭理華,張興安,袁 凱,竇建洪,覃健全
ATMEL AVR單片機(jī)SPI大容量Flash Rom擴(kuò)展的實(shí)現(xiàn)
陳宇珂,鄭理華,張興安,袁 凱,竇建洪,覃健全
目的:通過適合小型嵌入式智能化醫(yī)療設(shè)備的大容量Flash Rom擴(kuò)展,實(shí)現(xiàn)運(yùn)行過程數(shù)據(jù)的實(shí)時(shí)記錄和漢字點(diǎn)陣庫(kù)擴(kuò)展。方法:利用具備SPI接口的ATmega128單片機(jī)和AT45DB161大容量Flash Rom,設(shè)計(jì)根據(jù)靜脈麻醉目標(biāo)濃度實(shí)時(shí)計(jì)算給藥注射速率的智能化靜脈麻醉控制系統(tǒng),完成大容量Flash Rom的硬件擴(kuò)展和基于C語(yǔ)言的模塊式Flash Rom讀寫程序編寫。結(jié)果:利用單片機(jī)SPI接口外接大容量存儲(chǔ)芯片,完成了各種實(shí)時(shí)數(shù)據(jù)的快速可靠傳輸和存儲(chǔ),同時(shí)該系統(tǒng)可實(shí)現(xiàn)全中文人機(jī)交互界面。結(jié)論:Flash Rom擴(kuò)展系統(tǒng)在大屏幕靜脈麻醉控制系統(tǒng)中的應(yīng)用表明,整個(gè)系統(tǒng)在復(fù)雜電磁環(huán)境下運(yùn)行穩(wěn)定,滿足了智能醫(yī)療系統(tǒng)可靠性高、抗干擾能力強(qiáng)、體積小、故障率低的要求,具有較好的讀寫性能和實(shí)用價(jià)值。
靜脈麻醉;目標(biāo)控制注射;嵌入式系統(tǒng);藥代動(dòng)力學(xué)
隨著單片機(jī)微電子生產(chǎn)工藝的進(jìn)步以及大容量數(shù)據(jù)存儲(chǔ)和網(wǎng)絡(luò)連接功能的高度集成,嵌入式系統(tǒng)已經(jīng)廣泛滲透到移動(dòng)通信、網(wǎng)絡(luò)工程、軍事裝備、醫(yī)療設(shè)備以及信息家電等涉及人們?nèi)粘I畹姆椒矫婷妗F(xiàn)有設(shè)備通過嵌入式技術(shù)升級(jí)改造可以使之具備更多的智能化功能[1]。由AT89LV52擴(kuò)展的AT45DB041B,在海洋表面氣象參數(shù)存儲(chǔ)中保證了大容量數(shù)據(jù)的安全[2]。另外,在便攜式心電儀、血糖儀[3]、胎心監(jiān)測(cè)[4]、網(wǎng)絡(luò)化平戰(zhàn)心電信息系統(tǒng)[5]、中藥熬藥機(jī)[6]等多種醫(yī)療設(shè)備中引入微處理器和大容量存儲(chǔ)芯片,特別是基于串行外圍設(shè)備接口(serial peripheral interface,SPI)的存儲(chǔ)芯片,可以減小設(shè)備體積,提高抗干擾能力和信號(hào)檢測(cè)靈敏度,有效降低整機(jī)功耗。
目前,臨床靜脈麻醉具有方法簡(jiǎn)單,不需要大型麻醉機(jī)、專用揮發(fā)器,不依靠肺來(lái)運(yùn)送麻醉藥,患者術(shù)后惡心、嘔吐發(fā)生率低,麻醉患者血流動(dòng)力學(xué)穩(wěn)定性好等優(yōu)點(diǎn)。但靜脈麻醉藥物有效安全范圍窄,給藥速率的精確控制對(duì)于合理用藥、減少毒副作用、提高用藥的安全性至關(guān)重要。為此,基于臨床提高靜脈麻醉控制水平的需求,結(jié)合最新嵌入式系統(tǒng)技術(shù),開發(fā)了以ATmega128為控制核心、以臨床藥代動(dòng)力學(xué)研究成果為基礎(chǔ)的智能化三通道靜脈麻醉輸注系統(tǒng)。系統(tǒng)通過調(diào)節(jié)血漿或效應(yīng)室目標(biāo)藥物濃度控制麻醉深度,實(shí)現(xiàn)靜脈麻醉科學(xué)給藥[7]。
結(jié)合三通道靜脈麻醉控制系統(tǒng)的設(shè)計(jì)要求,為給臨床提供更好的人機(jī)交互界面,采用320點(diǎn)陣× 240點(diǎn)陣大屏幕液晶顯示屏。但是在LCD顯示系統(tǒng)中涉及到各種點(diǎn)陣字母、符號(hào)、漢字和圖像的顯示,而ATmega128內(nèi)帶128 KB Flash,系統(tǒng)程序僅可寫入英文字符及少量漢字。由于靜脈麻醉控制系統(tǒng)人機(jī)交互界面欲采用全中文,為臨床麻醉醫(yī)師提供更多信息,同時(shí)系統(tǒng)運(yùn)行時(shí)各種信息的存儲(chǔ)也需要較大空間,而單片機(jī)ATmega128內(nèi)帶Flash空間無(wú)法滿足存儲(chǔ)需要,為此,通過ATmega128的SPI擴(kuò)展大容量外部Flash Rom——AT45DB161D,解決中文字模庫(kù)和實(shí)時(shí)數(shù)據(jù)存儲(chǔ)容量不足的問題。
1.1 ATmega128 AVR單片機(jī)的結(jié)構(gòu)特點(diǎn)
美國(guó)ATMEL公司推出的ATmega128單片機(jī)是一款基于精簡(jiǎn)指令集(reduced instruction set computer,RISC)結(jié)構(gòu)的低功耗CMOS 8 bit單片機(jī),通過局部寄存器和單體高速輸入、輸出方案實(shí)現(xiàn)在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行一條指令,性能達(dá)到了1 Mips/MHz。AVR單片機(jī)內(nèi)核有32個(gè)工作寄存器,這些工作寄存器都同算術(shù)邏輯單元(arithmetic and logic unit,ALU)直接連接在一起,同時(shí)通過豐富的優(yōu)化指令集,允許在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行的單條指令同時(shí)訪問內(nèi)核中2個(gè)獨(dú)立的寄存器,這樣獨(dú)特的硬件結(jié)構(gòu)可以有效地提高代碼效率,相比普通復(fù)雜指令集(complex instruction set computer,CISC)單片機(jī),可以提高將近10倍的機(jī)器性能。ATmega128單片機(jī)內(nèi)部嵌有可串行下載和自我編程的Flash程序存儲(chǔ)器、E2PROM,為系統(tǒng)軟件的不斷升級(jí)提供了方便;ATmega128單片機(jī)的53個(gè)通用I/O口都具有真實(shí)的讀、寫和修改功能,各管腳的輸入、輸出方向都可以根據(jù)實(shí)際需要獨(dú)立地選擇。根據(jù)外部擴(kuò)展的需要,ATmega128單片機(jī)的A、C口既可以作為通用輸入、輸出口,又可以組合起來(lái)作為外部存儲(chǔ)器的高8 bit(C口)和低8 bit(A口)地址線,這樣組成的16 bit地址使得可以尋址的片外存儲(chǔ)器達(dá)到64 KB。而且AVR單片機(jī)具有降低功耗抗干擾的Idle Power-Save和Power-Down等休眠運(yùn)行模式,為設(shè)計(jì)高性能、低功耗、小體積的應(yīng)用系統(tǒng)提供了硬件保證。
同時(shí),ATMEL公司為AVR單片機(jī)軟件開發(fā)提供一個(gè)免費(fèi)的匯編級(jí)集成環(huán)境AVR STUDIO,在該集成開發(fā)環(huán)境中可實(shí)現(xiàn)匯編語(yǔ)言的編輯、純軟件仿真、目標(biāo)代碼生成等功能。同時(shí)該開發(fā)環(huán)境還集成有AVRGCC編譯器,方便程序員運(yùn)用C語(yǔ)言編程。運(yùn)用這一開發(fā)軟件,程序員可以隨時(shí)進(jìn)行程序的修改、編譯、仿真、調(diào)試。結(jié)合ATMEL公司推出的JTAG接口仿真器——JTAG ICE,將JTAG ICE和AVR STUDIO構(gòu)成集成調(diào)試系統(tǒng),除了實(shí)現(xiàn)AVR STUDIO的原有功能外,還可實(shí)現(xiàn)對(duì)目標(biāo)硬件系統(tǒng)的片上仿真調(diào)試以及對(duì)芯片的快速擦寫。因此,由于ATmega128單片機(jī)功能可靠、片上資源豐富和開發(fā)環(huán)境友好的優(yōu)點(diǎn),選擇其作為智能靜脈麻醉控制系統(tǒng)的主控芯片。
1.2 ATmega128串行外圍接口SPI的特點(diǎn)
ATmega128單片機(jī)具有豐富的外部接口,其中片內(nèi)集成有SPI,這種串行外圍接口采用硬件的方式實(shí)現(xiàn)了面向字節(jié)的全雙工三線同步通信。根據(jù)SPI相關(guān)協(xié)議和標(biāo)準(zhǔn),ATmega128支持主機(jī)、從機(jī)2種模式以及2種不同極性的SPI時(shí)序,串行數(shù)據(jù)通信速率可以有7種不同的選擇,作為主機(jī)方式時(shí)的最高速率可為1/2系統(tǒng)時(shí)鐘,作為從機(jī)方式時(shí)最高速率可為1/4系統(tǒng)時(shí)鐘。ATmega128的SPI具有相應(yīng)硬件接口管腳和傳輸完成硬件中斷申請(qǐng),在進(jìn)行SPI模塊軟件設(shè)計(jì)時(shí)可以采用高效的中斷、數(shù)據(jù)緩存模式,提高數(shù)據(jù)傳輸、處理效率和準(zhǔn)確性。在SPI驅(qū)動(dòng)軟件模塊設(shè)計(jì)中對(duì)SPI初始化時(shí)一定要注意正確選擇、設(shè)置主機(jī)或從機(jī)模式,確定工作模式時(shí)序極性,設(shè)置好數(shù)據(jù)傳輸率;同時(shí)注意數(shù)據(jù)傳輸時(shí)傳送字節(jié)的順序是低位優(yōu)先(LSB First)還是高位優(yōu)先(MSB First);硬件初始化時(shí)在軟件對(duì)硬件接口的設(shè)置上,要正確設(shè)置MOSI和MISO接口的輸入、輸出方向;同時(shí)盡量設(shè)置使用芯片內(nèi)部的輸入引腳上拉電阻,以節(jié)省總線上的上拉電阻[8]。
1.3 AT45DB161D芯片特點(diǎn)
AT45DB系列閃存芯片供電電壓可以為2.5~2.7 V,具有較低功耗,并具備SPI,在數(shù)據(jù)語(yǔ)音、圖像、程序代碼數(shù)據(jù)存儲(chǔ)中得到廣泛應(yīng)用[9]。AT45DB161D芯片包含有17、301、504個(gè)數(shù)據(jù)位,被組織成4096頁(yè),每頁(yè)含512B或528B。AT45DB161D芯片中除了包含主存儲(chǔ)器外,還包括2個(gè)靜態(tài)隨機(jī)存儲(chǔ)器(static random access memory,SRAM)作為數(shù)據(jù)緩沖區(qū),這2個(gè)緩沖區(qū)每個(gè)為512或528 B。這樣主存儲(chǔ)器正在編程讀寫數(shù)據(jù)時(shí),緩沖區(qū)可以同時(shí)接收數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的不間斷流式寫入。采用SPI的閃存芯片與并行Flash儲(chǔ)存器不同,不需要大量的外部地址線,減少了外部引腳數(shù)量,同時(shí)也提高了整個(gè)系統(tǒng)的可靠性,降低了開關(guān)噪聲,縮小了整個(gè)系統(tǒng)的體積,特別適合醫(yī)療、工業(yè)等需要高密度、低引腳數(shù)、低電壓與低功耗的應(yīng)用場(chǎng)合。
ATmega128通過AT45DB161D芯片#CS片選接口使能選中相關(guān)存儲(chǔ)芯片,然后通過三線接口(SI、SO、SCK)進(jìn)行高速數(shù)據(jù)通信。芯片的讀寫操作通過單片機(jī)中軟件模塊相關(guān)讀寫指令完成,一個(gè)有效的指令由#CS的下降沿指示開始,緊隨其后的數(shù)據(jù)是一個(gè)有意義的8 bit操作碼和緩存區(qū)或主存儲(chǔ)器的地址。當(dāng)#CS保持低電平時(shí),由時(shí)鐘SCK引腳控制數(shù)據(jù)輸入,SI引腳寫入操作碼和緩存區(qū)或主存儲(chǔ)區(qū)地址。在程序編寫中要注意,所有的指令、地址與數(shù)據(jù)在傳輸時(shí)都是高位在前。
1.4 硬件設(shè)計(jì)
ATmega128內(nèi)部包含SPI電路,直接使用其SPI接口與AT45DB161相應(yīng)管腳連接,其電路如圖1所示。
圖1AT45DB161外圍電路
1.5 軟件設(shè)計(jì)
系統(tǒng)軟件采用C語(yǔ)言編寫,AT45DB161操作程序模塊主要包括初始化、SPI的讀寫等。
(1)AT45DB161的初始化程序:
void df_init(void)
{
//MISO設(shè)置為輸入,上拉電阻關(guān)閉,其他默認(rèn)為1
DDRB&=~BIT(FLASH_MISO);
PORTB|=BIT(FLASH_MISO);
PORTB|=BIT(FLASH_SCK)|BIT(FLASH_MOSI)| BIT(FLASH_CS);
//SCK,MOSI和CS端口對(duì)應(yīng)腳設(shè)置為輸出
DDRB|=BIT(FLASH_SCK)|BIT(FLASH_MOSI)| BIT(FLASH_CS);
//SPI中斷禁止,SPI使能
SPCR=BIT(SPE)|BIT(MSTR)|BIT(CPHA)|BIT (CPOL);
}
(2)AT45DB161的字節(jié)輸出子程序:
//從SPI輸出一字節(jié)數(shù)據(jù)
static INT8U spi_write(INT8U data)
{
SPDR=data;
while(!(SPSR&BIT(SPIF)));
return SPDR;
}
(3)檢測(cè)并等待器件忙狀態(tài)子程序:
static void df_wait_busy(void)
{
SEL_FLASH=0;
spi_write(STATUS_REGISTER);
while(1)
{
if(spi_write(0)&0x80)//讀取的最高位0時(shí)器件忙
break;
}
SEL_FLASH=1;
}
根據(jù)AT45DB161數(shù)據(jù)手冊(cè),其操作指令分為三大類:一是從主存儲(chǔ)器和緩存讀取數(shù)據(jù);二是向主存儲(chǔ)器和緩存寫入數(shù)據(jù);三是主存儲(chǔ)器和緩存之間的數(shù)據(jù)傳輸和比較。根據(jù)實(shí)際編程和應(yīng)用發(fā)現(xiàn)需要注意以下2點(diǎn):
(1)ATmega128在通過SI、SO引腳與AT45DB161通信期間,必須保持#CS片選信號(hào)為低電平,但涉及到芯片內(nèi)部主存與緩存之間的數(shù)據(jù)傳輸和比較、頁(yè)的擦除和塊擦除等操作時(shí),則是在芯片內(nèi)部自帶時(shí)序電路控制下自動(dòng)完成,不需要單片機(jī)額外控制。同時(shí)考慮到由于這些相關(guān)操作需要相對(duì)較長(zhǎng)的時(shí)間,在程序設(shè)計(jì)時(shí)有必要加入一定的延時(shí),以防止數(shù)據(jù)丟失。
(2)ATmega128單片機(jī)可直接從AT45DB161主存頁(yè)面的某個(gè)存儲(chǔ)單元讀取數(shù)據(jù),但是不能夠直接向某個(gè)存儲(chǔ)單元寫入數(shù)據(jù)。這個(gè)時(shí)候如果需要向主存儲(chǔ)器寫入數(shù)據(jù)可以采取以下方法:①先將數(shù)據(jù)寫入緩存,然后采用芯片自帶擦除方式將緩存中的數(shù)據(jù)寫入主存儲(chǔ)器;②直接通過緩存將數(shù)據(jù)寫入主存儲(chǔ)器。
利用ATmega128單片機(jī)SPI接口擴(kuò)展外部存儲(chǔ)器2 MB AT45DB161后,智能化三通道靜脈麻醉輸注系統(tǒng)所采用的圖形液晶顯示器可以展示出豐富的內(nèi)容。首先根據(jù)系統(tǒng)運(yùn)行中需要用到的漢字、數(shù)字、字母和圖形,設(shè)定其點(diǎn)陣數(shù)目為16×16、24×24、48× 48,通過取模工具取出相應(yīng)點(diǎn)陣的數(shù)據(jù),在確定片外存儲(chǔ)器存儲(chǔ)起始地址后,按順序分組通過寫入子程序?qū)⒆帜?kù)存入AT45DB161對(duì)應(yīng)存儲(chǔ)空間。程序在需要顯示這些漢字、數(shù)字和圖形信息時(shí),直接通過讀取子程序從對(duì)應(yīng)存儲(chǔ)位置調(diào)用字模數(shù)據(jù),放入液晶控制器的顯示內(nèi)存中,隨即在LCD上顯示出來(lái)。LCD顯示的內(nèi)容有注射藥物名、注射時(shí)間、注射劑量、清醒時(shí)間、目標(biāo)藥物濃度設(shè)定值、血漿藥物濃度計(jì)算值、效應(yīng)室藥物濃度計(jì)算值,在系統(tǒng)探測(cè)到各種報(bào)警信息時(shí)顯示報(bào)警內(nèi)容和處理方法。
針對(duì)智能醫(yī)療系統(tǒng)要求可靠性高、抗干擾能力強(qiáng)、體積小、故障率低、人機(jī)界面友好、便于調(diào)試的特點(diǎn),本文基于國(guó)人靜脈麻醉藥代動(dòng)力學(xué)模型,通過
(????)(????)ATmega128的SPI接口擴(kuò)展大容量外部FlashRom——AT45DB161D,解決中文字模庫(kù)存儲(chǔ)容量不足的問題,并成功實(shí)現(xiàn)了根據(jù)靜脈麻醉目標(biāo)濃度實(shí)時(shí)計(jì)算給藥注射速率的智能化靜脈麻醉控制系統(tǒng)。實(shí)驗(yàn)表明,該系統(tǒng)在復(fù)雜電磁環(huán)境下運(yùn)行穩(wěn)定,具有較好的讀寫性能和實(shí)用價(jià)值。
[1] 樓智翔,沈浩,孫杰.基于ARM的振動(dòng)及溫濕度監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2011,24(4):41-44.
[2] 張光宇,吳敏波,劉劍豪.基于AT45DB041B存儲(chǔ)器的手持?jǐn)?shù)據(jù)接收系統(tǒng)設(shè)計(jì)[J].信息化縱橫,2009(17):8-11.
[3] 潘佚,邱蕾.國(guó)產(chǎn)便攜式血糖儀功能改進(jìn)及低功耗設(shè)計(jì)[J].現(xiàn)代儀器與醫(yī)療,2013,19(1):38-40.
[4] 孟倩,鄭利星,郭紅蕊,等.胎心聲音存儲(chǔ)回放系統(tǒng)設(shè)計(jì)[J].生物醫(yī)學(xué)工程與臨床,2013,17(2):184-186.
[5] 吳北江,王洋,孫文橋,等.網(wǎng)絡(luò)化平戰(zhàn)兩用數(shù)字心電信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].醫(yī)療衛(wèi)生裝備,2010,31(6):48-50.
[6] 向逾,張瀟瀟,朱彬,等.基于AVR單片機(jī)的家用中藥熬藥機(jī)的設(shè)計(jì)與開發(fā)[J].醫(yī)療衛(wèi)生裝備,2013,34(1):22-24.
[7] 侯芝綺,張興安.異丙酚藥動(dòng)學(xué)與其靶控輸注系統(tǒng)的準(zhǔn)確性評(píng)估[J].中國(guó)藥房,2011,22(10):924-927.
[8] 耿德根,宋建國(guó),馬潮,等.AVR高速嵌入式單片機(jī)原理與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2003.
[9] 翟瑞永,張文棟,周兆英,等.SPI串行Data Flash在MEMS姿態(tài)測(cè)量系統(tǒng)中的應(yīng)用[J].電子技術(shù)應(yīng)用,2013,39(8):37-39.
(收稿:2014-05-15 修回:2014-08-20)
Realization of high-capacity Flash Rom extension for ATMEL AVR MICU SPI
CHEN Yu-ke1,ZHENG Li-hua1,ZHANG Xing-an1,YUAN Kai2,DOU Jian-hong1,QIN Jian-quan3
(1.General Hospital of Guangzhou Military Area Command,Guangzhou 510010,China; 2.Guangzhou Infumedi Medical Instrument Co.,LTD.,Guangzhou 510643,China; 3.Shenzhen Sino Mdt Medical Instrument Co.,LTD.,Shenzhen 518053,Guangdong Province,China)
ObjectiveTo realize real-time recording and running operational process data and extension of Chinese character library by high-capacity Flash Rom extension fit for miniature embedded intelligent medical equipment. MethodsATmega128 MICU with SPI interface and AT45DB161 high-capacity Flash Rom were used to develop an intelligent control system for intravenous anesthesia,which could regulate administration velocity based on target concentration.Hardware extension was completed for high-capacity Flash Rom,and modular Flash Rom R/W program was developed based on C language.ResultsMICU SPI interface with external high-capacity memory chip made the system implement rapid transmission and storage of real-time data as well as man-machine interaction in Chinese. ConclusionLarge-screen intravenous anesthesia control system involving Flash Rom extension system runs stably in complex electromagnetic environment,with high reliability,high anti-interference ability,low failure rate,high R/W performance and practical values.[Chinese Medical Equipment Journal,2015,36(4):19-21,68]
intravenous anesthesia;target-controlled infusion;embedded system;pharmacokinetics
R318;R197.39;TP311.13
A
1003-8868(2015)04-0019-04
10.7687/J.ISSN1003-8868.2015.04.019
廣東省科技計(jì)劃項(xiàng)目(2012A032200023);廣州經(jīng)濟(jì)技術(shù)開發(fā)區(qū)科技項(xiàng)目(2010Q-P306)
陳宇珂(1971—),男,博士,副主任,主要從事嵌入式設(shè)備在醫(yī)療儀器中的應(yīng)用方面的研究工作,E-mail:yukechen@qq.com。
510010廣州,廣州軍區(qū)廣州總醫(yī)院(陳宇珂,鄭理華,張興安,竇建洪);510643廣州,廣州市億福迪醫(yī)療器械有限公司(袁 凱);518053廣東深圳,深圳圣諾醫(yī)療設(shè)備有限公司(覃健全)