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