基于ARM核的ADμC7024在醫(yī)療電子中的應(yīng)用
0 引言
隨著信息技術(shù)的迅猛發(fā)展和人民生活水平的提高,極大地推動了醫(yī)療電子設(shè)備的發(fā)展,當(dāng)今醫(yī)療電子設(shè)備的發(fā)展趨勢是高精度、實時性、低功耗和小尺寸,作為醫(yī)療電子設(shè)備中核心地位的mcu(微處理器)也隨著這一發(fā)展趨勢向前不斷衍變著。由早期的8位mcu發(fā)展到目前的32位risc(精簡指令集計算機)mcu。美國adi公司根據(jù)市場的需要最新推出了一款基于arm(高級精簡指令集計算機)核的微處理器adμc7024便是目前32位risc
mcu的杰出代表。adμc7024卓越的處理能力、集成眾多片上外圍器件和芯片低功耗的特點,完全勝任目前醫(yī)療電子設(shè)備的需求及未來的發(fā)展目標(biāo)。
本文以adμc7024在醫(yī)療電子中監(jiān)護產(chǎn)品脈搏血氧計的應(yīng)用為例,重點介紹其在醫(yī)療電子行業(yè)中的實際用途。
1 arm內(nèi)核特點
英國arm公司是嵌入式risc處理器的ip(知識產(chǎn)權(quán))供應(yīng)商,它為arm架構(gòu)處理器提供arm處理器內(nèi)核(如arm7tdmi、arm9tdmi及arm10tdmi等)。由各半導(dǎo)體公司在上述處理器內(nèi)核基礎(chǔ)上進行再設(shè)計,嵌入各種外圍和處理部件,形成各種mcu。目前基于arm內(nèi)核的芯片在嵌入式處理器市場上占據(jù)75%的份額。
arm作為嵌入式系統(tǒng)的處理器,具有低電壓,低功耗和高集成度等特點,并具有開放性和可擴充性。事實上,arm內(nèi)核已成為嵌入式系統(tǒng)首選的處理器內(nèi)核。而對于醫(yī)療電子設(shè)備而言,并不需要圖像處理等方面更高的要求,因此,arm7tdmi內(nèi)核以0.9mips(百萬條指令每秒)/mhz的高效處理能力足以滿足應(yīng)用需要。
arm7tdmi內(nèi)核是arm核系列中32位通用內(nèi)核中的一個產(chǎn)品,它采用三級流水線結(jié)構(gòu),指令的執(zhí)行分成取指、譯值和執(zhí)行3個階段。運算器能夠?qū)崿F(xiàn)32位整數(shù)運算。內(nèi)核不但能夠執(zhí)行32位高效arm指令,同時還支持簡潔的16位thumb指令集以提高代碼密度。
arm7tdmi名稱的含義為:
a)arm7:arm系列具有32位運算能力的內(nèi)核,它采用馮·諾依曼結(jié)構(gòu),數(shù)據(jù)長度可以是8位,16位和32位,而指令長度是32位。
b)t:內(nèi)含16位壓縮指令集thumb,由于32位risc型處理器的指令代碼利用率較低,arm為了彌補不足,在新型arm架構(gòu)(v4t版以上,成熟架構(gòu)由v3版發(fā)展到v6版)定義了16位的thumb指令集,thumb指令集比通常的8位和16位cisc/risc處理器具有更好的代碼密度,而芯片面積只增加6%,可使程序存儲器更小。
c)d:支持片內(nèi)調(diào)試,該內(nèi)核包含用于調(diào)試的硬件結(jié)構(gòu),可使cpu進入調(diào)試模塊,可以方便地進行斷點觀察點設(shè)置、單步調(diào)試和多步調(diào)試
d)m:采用增強型乘法器。aarm7tdmi指令集包含2個32位×32位的乘法指令和2個乘法累加mac指令,該結(jié)構(gòu)使得指令的執(zhí)行比其他類型的arm7內(nèi)核減小了許多機器周期。
e)i:內(nèi)含嵌入式ice宏單元,arm架構(gòu)的處理器芯片都嵌入了embedded ice-rt邏輯塊,便于通過jtag接口來仿真調(diào)試ram架構(gòu)芯片。
2 芯片內(nèi)部結(jié)構(gòu)及特點
美國adi公司利用其在模擬電路領(lǐng)域的優(yōu)勢,綜合基于8052-8位adμc8xx的技術(shù)積累,將arm7tdmi內(nèi)核和adc(a/d轉(zhuǎn)換器),dac(d/a轉(zhuǎn)換器)等外圍設(shè)備集成在一塊芯片上,就是最近推向市場的拳頭產(chǎn)品adμc702x系列。其中adμc7020、adμc7021、adμc7022、adμc7026等芯片除了在片上flash和sram容量大小、adc和dac通道數(shù)量、pwm(脈寬調(diào)制)相位數(shù)量有差別外,其他完全一致;而adμc7026,adμc7027具有外部擴展內(nèi)存接口。
本文主要介紹其中具有代表性的一款--adμc7024,工業(yè)級的adμc7024工作于2.7v-3.6v電源電壓,64引腳csp封裝的芯片面積僅為9mm×9mm,在1mhz時鐘頻率下芯片最高功耗為5ma,在最大時鐘頻率45mhz下芯片最高功耗為60ma。其原理框圖如圖1所示。
2.1 片上集成高性能的adc和dac
adμc7024片上集成了10通道12位逐次逼近型adc,能夠在電源電壓為2.7v-3.6v的范圍正常工作,在系統(tǒng)時鐘頻率為45mhz下的最高采樣率高達1msps(百萬次采樣每秒)。該adc模塊提供一個高精度、低漂移的片上2.5v基準(zhǔn)電壓vref,該電壓通過片上refcon寄存器的軟件配置也能作為輸出,向外提供基準(zhǔn)參考源。adc能夠工作于單端轉(zhuǎn)換模式或者差分轉(zhuǎn)換模式,在單端轉(zhuǎn)換模式下的輸入電壓范圍是0至vref,在差分轉(zhuǎn)換模式下輸入電壓范圍是0至avdd(avdd通常情況下為3.3v)adc單個或連續(xù)的轉(zhuǎn)換能夠被外部引腳convstar、片上pla、定時器1或定時器2所觸發(fā)。
通過adc控制寄存器adccon,通道選擇寄存器adccp和adccn軟件配置好adc后,轉(zhuǎn)換結(jié)果將存儲在寄存器adcdat位27至位16中,通過adc狀態(tài)寄存器adcsta的位0可以查看adc轉(zhuǎn)換是否完成,當(dāng)adc轉(zhuǎn)換結(jié)束時,位0被置位;當(dāng)讀取adc-dat時,該位自動被清空。當(dāng)adc正在執(zhí)行轉(zhuǎn)換操作時,片上引腳adcbusy保持高電平,一旦轉(zhuǎn)換結(jié)束,該引腳馬上變?yōu)榈碗娖健?
還可以通過adcrst寄存器將adc模塊中所有寄存器恢復(fù)至默認(rèn)值;通過調(diào)整adcof和adcgn寄存器的值可以調(diào)整adc轉(zhuǎn)換精度,不過,該寄存器出廠時已經(jīng)過校準(zhǔn)。
由于該adc的是逐次逼近型結(jié)構(gòu),因此比較適合低功耗的產(chǎn)品應(yīng)用。
adμc7024片上還集成有2通道12位dac。每個dac都具有軌至軌的輸出電壓范圍,驅(qū)動能力可達100pf或者5kω,每個dac也能通過軟件配置來選擇輸出范圍0至vref(內(nèi)部基準(zhǔn)電壓)、0至dacref(外部基準(zhǔn)電壓)和0至avdd,而dacref的取值范圍是0v至avdd。
dac的使用十分簡單,通過dac控制寄存器dac0con或者dac1con來選擇通道和配置dac通道特性,然后通過向dac0con或dac1con的位27至位16寫入數(shù)值,就可以在dac引腳上得到所需要的模擬電壓結(jié)果。
2.2 片上集成flash寄存器和sram
adμc7024片上集成了64kb的flash存儲器,其中低62kb的flash存儲器是用戶可以編程的,剩下的高2kb區(qū)域是用戶不可接觸的固件程序,里面包含了在線串行下載程序及出廠配置默認(rèn)方案。adμc7024片上flash存儲器能夠通過串行編程模式,jtag編程模式或并行編程模式在系統(tǒng)中編程。
1)串行編程模式
當(dāng)片上bm引腳芯片被拉低時,adμc7024重啟動將進入串行下載模式,通過標(biāo)準(zhǔn)的uart端口或iic端口在線下載程序。
2)并行編程模式
并行編程協(xié)議使得片上flash存儲器能夠通過工業(yè)級第三方編程器進行編程。
3)jtag編程模式
adμc7024片上flash存儲器完全遵守ieee 1149.1規(guī)范,因而可以通過標(biāo)準(zhǔn)的jtag接口來下載程序和進行調(diào)試代碼,使得系統(tǒng)的開發(fā)十分簡單易行。
而adμc7024片上flash存儲器通過feepro、feehide寄存器的軟件設(shè)置可以防止程序通過jtag接口或并行編程模式被讀出,有效地保障了開發(fā)人員的勞動成果。
2.3 晶振和pll
adμc7024片上集成了一個32.768khz晶振、一個時鐘分頻器和一個pll(鎖相環(huán))。內(nèi)部的pll能夠?qū)⒕д耦l率放大1376倍,即為系統(tǒng)提供一個穩(wěn)定的45mhz。
為了降低系統(tǒng)功耗,可以通過軟件設(shè)置時鐘分頻器的控制寄存器pllcon和powcon將經(jīng)過pll后輸出的45mhz降頻,最大可降低至352khz,由于內(nèi)部晶振有±3%的誤差,因此,用戶可以選擇外接一個32.768khz的晶振,通過軟件設(shè)置pllcon值使用外部晶振,使系統(tǒng)的性能穩(wěn)定可靠。
2.4 復(fù)用i/o及標(biāo)準(zhǔn)的uart、spi、iic
adμc7024提供30個通用型雙向i/o引腳。所有的i/o引腳具有5v電壓耐壓能力,一些i/o引腳中與其他外圍設(shè)備引腳復(fù)用。在默認(rèn)情況下,所有的gpio都是i/o模式,如果在實際中需要將i/o口復(fù)用成其他情況的,只需要按照i/o控制配置寄存器gpxcon的手冊配置方案軟件編程即可(這里x表示端口0,端口1,…,端口4,如1端口5引腳則是p1.5)。在配置成i/o情況下,可以通過置位數(shù)據(jù)寄存器gpxdat中某些位的值使引腳輸出"1";同時可以清除數(shù)據(jù)寄存器gpxdat中的某些位的值使引腳輸出"0";還可以讀數(shù)據(jù)寄存器gpxdat中某些位的值得到輸入引腳的值(x同前面介紹,具體設(shè)置請參考adμc7024手冊)。
adμc7024片上集成了2個標(biāo)準(zhǔn)的、全雙工模式的異步串口uart(通用異步收發(fā)器),它們與16450串口標(biāo)準(zhǔn)所兼容。片上uart的波特率產(chǎn)生器中包含一個小數(shù)分頻器,使得uart波特率的產(chǎn)生更加精確。同時,其中一個uart還支持網(wǎng)絡(luò)尋址模式下的串口發(fā)送接收模式。uart的使用首先通過i/o的配置成uart端口引腳。然后通過軟件配置uart配置寄存器及波特率設(shè)定寄存器就可以通過comtx寄存器、comrx寄存器分別發(fā)送和接收數(shù)據(jù)。
adμc7024片上也集成了標(biāo)準(zhǔn)工業(yè)級同步串口spi(串行外圍接口),spi接口可以同步接收和發(fā)送8位數(shù)據(jù),最高速率可達5.6mbit/s。該spi能夠被配置成主(master)或者從(slave)兩種工作模式,關(guān)于spi使能、選擇工作模式、串行時鐘相位及極性、先發(fā)送低有效位還是高有效位等多項設(shè)置,均是通過spicon編程而得到,而主模式發(fā)送的串行時鐘頻率由spidiv來設(shè)定,從模式則不用設(shè)定串行時鐘頻率,因為串行時鐘是由主模式的spi來決定的,通過讀取spista中某些數(shù)據(jù)位的值,可以知道spi是否發(fā)送結(jié)束或者接收結(jié)束。
adμc7024還具有兩個經(jīng)philips公司授權(quán)的iic接口,iic是philips公司20世紀(jì)80年代開發(fā)的一個簡單的兩線總線,包括一條數(shù)據(jù)線和一條時鐘線,速率有100khz和400khz兩種方式,目前iic已經(jīng)成為重要的全球業(yè)界標(biāo)準(zhǔn),被所有主要的集成電路廠商所認(rèn)同和使用。它采用主-從通信方式,采用總線仲裁特性,使得在某一時刻只有兩個器件進行通信,具體數(shù)據(jù)指標(biāo)參考adμc7024數(shù)據(jù)手冊。
2.5 中斷系統(tǒng)
中斷系統(tǒng)是一個mcu在應(yīng)用中的靈魂所在。adμc7024片上中斷控制器控制著24個中斷源。這些中斷源包括片上adc中斷、uart中斷、2個外部中斷請求xirq0和xirq1等,而arm7tdmi內(nèi)核僅僅將這些中斷源分成兩大類來識別,一類是irq,另一類是fiq。所有中斷源能夠單獨地被屏蔽。中斷系統(tǒng)的控制和配置管理由9個關(guān)于中斷方面的寄存器所控制,4個涉及到irq的寄存器、4個涉及到fiq的寄存器,1個用來選擇已編程的中斷源寄存器swicfg。雖然作為一個已編程的中斷源是不能夠被屏蔽掉的,但是它們可以被swicfg來控制。
2.6 定時器
adμc7024有4個通用定時器:定時器0、定時器1、定時器2和定時器3。這4個定時器在一般的操作模式下均能按照默認(rèn)值計數(shù)或者按照預(yù)設(shè)值寄存器txld(x表示0,1,2,和3中的某一個寄存器)中值來計算。在任意時刻可以通過讀取txval寄存器中的值了解定時器中的當(dāng)前計數(shù)值。通過配置txcon的值可以設(shè)置相應(yīng)的定時器按照一定的方式開始計數(shù)。
定時器0是一個通用型16位倒計數(shù)定時器,該定時器的刻度尺頻率來源是系統(tǒng)時鐘,計數(shù)默認(rèn)值可以是系統(tǒng)時鐘頻率、系統(tǒng)時鐘頻率的16分頻和256分頻。
定時器1是一個32位通用型累加定時器或者倒計時定時器。該定時器的刻度尺頻率來源可以是32khz晶振、系統(tǒng)時鐘和外部gpio三者之一。計數(shù)默認(rèn)值可以是刻度尺頻率、刻度尺頻率的16分頻、256分頻和32768分頻。定時器1可以被設(shè)置為標(biāo)準(zhǔn)的32位時間值,如hours:minutes:seconds:hundreths這樣的格式。定時器1通過預(yù)設(shè)響應(yīng)irq事件,可以比通常情況下定時器0響應(yīng)irq中斷請求要準(zhǔn)確得多。它還可以用來觸發(fā)adc轉(zhuǎn)換過程。
定時器2的系統(tǒng)刻度尺頻率來源是內(nèi)部集成的32.768khz晶振,當(dāng)系統(tǒng)時鐘停止工作時,該定時器還可以繼續(xù)運行,這一特性可以用來將處于休眠狀態(tài)的系統(tǒng)內(nèi)核恢復(fù)至正常工作狀態(tài)。
定時器3由兩種工作模式,一種通常模式與前面3個定時器一樣,還有一種是看門狗模式。一旦程序跑飛時,可以利用該定時器看門狗模式來重啟動處理器,令其恢復(fù)正常工作。
2.7 其他外圍設(shè)備及特性
片上還集成有獨立的比較器、電源監(jiān)控模塊、三相pwm(在adμc7020、adμc7021、adμc7022是單相pwm)以及pla(可編程邏輯陣列)。其中pla的輸入輸出引腳與gpio復(fù)用。
3 引腳定義
adμc7024引腳定義見表1。
4 應(yīng)用實例
該芯片卓越的數(shù)據(jù)處理能力、片上集成的高精度adc及dac等豐富的片上外圍設(shè)備以及時鐘頻率可調(diào)節(jié)的特點,使得在要求低功耗、高精度、實時性等嵌入式微信號處理系統(tǒng)中的應(yīng)用如魚得水?,F(xiàn)以脈搏血氧計為例,介紹其中一個廣泛的應(yīng)用領(lǐng)域。其系統(tǒng)框圖如圖2所示。
adμc7024作為系統(tǒng)的核心mcu,負(fù)責(zé)控制和協(xié)調(diào)其他電路模塊的正常工作,它將采集到的血氧信號經(jīng)過數(shù)據(jù)處理后,通過spi總線傳送給lcd顯示屏得以顯示。
根據(jù)實際臨床結(jié)果顯示,adμc7024已完全勝任設(shè)計血氧模塊的任務(wù),處理能力、采樣率、采樣精度、功耗、實時性要求等指標(biāo)完全達到系統(tǒng)的要求,arm體系架構(gòu)使得醫(yī)療電子的穩(wěn)定性得到極大保障。最后,采用第三方keil公司μvision開發(fā)工具,用c語言作為開發(fā)語言,利用gnu的arm-elf-gcc等工具作為編譯器及鏈接器,易學(xué)易用,它的調(diào)試仿真工具也是keil公司開發(fā)的ulink仿真器,調(diào)試簡單,縮短上市時間,便于移植。
可以預(yù)料,在不久的將來,adμc7024以其獨樹一幟的性能必將在醫(yī)療電子行業(yè)中發(fā)揮越來越大的作用。
評論