基于ARM核的ADμC7024在医疗电子中的应用
0 引言
随着信息技术的迅猛发展和人民生活水平的提高,极大地推动了医疗电子设备的发展,当今医疗电子设备的发展趋势是高精度、实时性、低功耗和小尺寸,作为医疗电子设备中核心地位的MCU(微处理器)也随着这一发展趋势向前不断衍变着。由早期的8位MCU发展到目前的32位RISC(精简指令集计算机)MCU。美国ADI公司根据市场的需要最新推出了一款基于ARM(高级精简指令集计算机)核的微处理器ADμC7024便是目前32位RISC MCU的杰出代表。ADμC7024卓越的处理能力、集成众多片上外围器件和芯片低功耗的特点,完全胜任目前医疗电子设备的需求及未来的发展目标。
本文以ADμC7024在医疗电子中监护产品脉搏血氧计的应用为例,重点介绍其在医疗电子行业中的实际用途。
1 ARM内核特点
英国ARM公司是嵌入式RISC处理器的IP(知识产权)供应商,它为ARM架构处理器提供ARM处理器内核(如ARM7TDMI、ARM9TDMI及ARM10TDMI等)。由各半导体公司在上述处理器内核基础上进行再设计,嵌入各种外围和处理部件,形成各种MCU。目前基于ARM内核的芯片在嵌入式处理器市场上占据75%的份额。
ARM作为嵌入式系统的处理器,具有低电压,低功耗和高集成度等特点,并具有开放性和可扩充性。事实上,ARM内核已成为嵌入式系统首选的处理器内核。而对于医疗电子设备而言,并不需要图像处理等方面更高的要求,因此,ARM7TDMI内核以0.9MIPS(百万条指令每秒)/MHz的高效处理能力足以满足应用需要。
ARM7TDMI内核是ARM核系列中32位通用内核中的一个产品,它采用三级流水线结构,指令的执行分成取指、译值和执行3个阶段。运算器能够实现32位整数运算。内核不但能够执行32位高效ARM指令,同时还支持简洁的16位Thumb指令集以提高代码密度。
ARM7TDMI名称的含义为:
a)ARM7:ARM系列具有32位运算能力的内核,它采用冯·诺依曼结构,数据长度可以是8位,16位和32位,而指令长度是32位。
b)T:内含16位压缩指令集Thumb,由于32位RISC型处理器的指令代码利用率较低,ARM为了弥补不足,在新型ARM架构(V4T版以上,成熟架构由V3版发展到V6版)定义了16位的Thumb指令集,Thumb指令集比通常的8位和16位CISC/RISC处理器具有更好的代码密度,而芯片面积只增加6%,可使程序存储器更小。
c)D:支持片内调试,该内核包含用于调试的硬件结构,可使CPU进入调试模块,可以方便地进行断点观察点设置、单步调试和多步调试
d)M:采用增强型乘法器。AARM7TDMI指令集包含2个32位×32位的乘法指令和2个乘法累加MAC指令,该结构使得指令的执行比其他类型的ARM7内核减小了许多机器周期。
e)I:内含嵌入式ICE宏单元,ARM架构的处理器芯片都嵌入了Embedded ICE-RT逻辑块,便于通过JTAG接口来仿真调试RAM架构芯片。
2 芯片内部结构及特点
美国ADI公司利用其在模拟电路领域的优势,综合基于8052-8位ADμC8xx的技术积累,将ARM7TDMI内核和ADC(A/D转换器),DAC(D/A转换器)等外围设备集成在一块芯片上,就是最近推向市场的拳头产品ADμC702x系列。其中ADμC7020、ADμC7021、ADμC7022、ADμC7026等芯片除了在片上Flash和SRAM容量大小、ADC和DAC通道数量、PWM(脉宽调制)相位数量有差别外,其他完全一致;而ADμC7026,ADμC7027具有外部扩展内存接口。
本文主要介绍其中具有代表性的一款--ADμC7024,工业级的ADμC7024工作于2.7V-3.6V电源电压,64引脚CSP封装的芯片面积仅为9mm×9mm,在1MHz时钟频率下芯片最高功耗为5mA,在最大时钟频率45MHz下芯片最高功耗为60mA。其原理框图如图1所示。
690)this.width=690;if(this.height>690)this.height=690;" border=0>
2.1 片上集成高性能的ADC和DAC
ADμC7024片上集成了10通道12位逐次逼近型ADC,能够在电源电压为2.7V-3.6V的范围正常工作,在系统时钟频率为45MHz下的最高采样率高达1MSPS(百万次采样每秒)。该ADC模块提供一个高精度、低漂移的片上2.5V基准电压VREF,该电压通过片上REFCON寄存器的软件配置也能作为输出,向外提供基准参考源。ADC能够工作于单端转换模式或者差分转换模式,在单端转换模式下的输入电压范围是0至VREF,在差分转换模式下输入电压范围是0至AVDD(AVDD通常情况下为3.3V)ADC单个或连续的转换能够被外部引脚CONVstar、片上PLA、定时器1或定时器2所触发。
通过ADC控制寄存器ADCCON,通道选择寄存器ADCCP和ADCCN软件配置好ADC后,转换结果将存储在寄存器ADCDAT位27至位16中,通过ADC状态寄存器ADCSTA的位0可以查看ADC转换是否完成,当ADC转换结束时,位0被置位;当读取ADC-DAT时,该位自动被清空。当ADC正在执行转换 *** 作时,片上引脚ADCBusy保持高电平,一旦转换结束,该引脚马上变为低电平。
还可以通过ADCRST寄存器将ADC模块中所有寄存器恢复至默认值;通过调整ADCOF和ADCGN寄存器的值可以调整ADC转换精度,不过,该寄存器出厂时已经过校准。
由于该ADC的是逐次逼近型结构,因此比较适合低功耗的产品应用。
ADμC7024片上还集成有2通道12位DAC。每个DAC都具有轨至轨的输出电压范围,驱动能力可达100pF或者5kΩ,每个DAC也能通过软件配置来选择输出范围0至VREF(内部基准电压)、0至DACref(外部基准电压)和0至AVDD,而DACref的取值范围是0V至AVDD。
DAC的使用十分简单,通过DAC控制寄存器DAC0CON或者DAC1CON来选择通道和配置DAC通道特性,然后通过向DAC0CON或DAC1CON的位27至位16写入数值,就可以在DAC引脚上得到所需要的模拟电压结果。
2.2 片上集成Flash寄存器和SRAM
ADμC7024片上集成了64KB的Flash存储器,其中低62KB的Flash存储器是用户可以编程的,剩下的高2kB区域是用户不可接触的固件程序,里面包含了在线串行下载程序及出厂配置默认方案。ADμC7024片上Flash存储器能够通过串行编程模式,JTAG编程模式或并行编程模式在系统中编程。
1)串行编程模式
当片上BM引脚芯片被拉低时,ADμC7024重启动将进入串行下载模式,通过标准的UART端口或IIC端口在线下载程序。
2)并行编程模式
并行编程协议使得片上Flash存储器能够通过工业级第三方编程器进行编程。
3)JTAG编程模式
ADμC7024片上Flash存储器完全遵守IEEE 1149.1规范,因而可以通过标准的JTAG接口来下载程序和进行调试代码,使得系统的开发十分简单易行。
而ADμC7024片上Flash存储器通过FEEPRO、FEEHIDE寄存器的软件设置可以防止程序通过JTAG接口或并行编程模式被读出,有效地保障了开发人员的劳动成果。
2.3 晶振和PLL
ADμC7024片上集成了一个32.768KHz晶振、一个时钟分频器和一个PLL(锁相环)。内部的PLL能够将晶振频率放大1376倍,即为系统提供一个稳定的45MHz。
为了降低系统功耗,可以通过软件设置时钟分频器的控制寄存器PLLCON和POWCON将经过PLL后输出的45MHz降频,最大可降低至352KHz,由于内部晶振有±3%的误差,因此,用户可以选择外接一个32.768kHz的晶振,通过软件设置PLLCON值使用外部晶振,使系统的性能稳定可靠。
ADμC7024提供30个通用型双向I/O引脚。所有的I/O引脚具有5V电压耐压能力,一些I/O引脚中与其他外围设备引脚复用。在默认情况下,所有的GPIO都是I/O模式,如果在实际中需要将I/O口复用成其他情况的,只需要按照I/O控制配置寄存器GPxCON的手册配置方案软件编程即可(这里x表示端口0,端口1,…,端口4,如1端口5引脚则是P1.5)。在配置成I/O情况下,可以通过置位数据寄存器GPxDAT中某些位的值使引脚输出"1";同时可以清除数据寄存器GPxDAT中的某些位的值使引脚输出"0";还可以读数据寄存器GPxDAT中某些位的值得到输入引脚的值(x同前面介绍,具体设置请参考ADμC7024手册)。
ADμC7024片上集成了2个标准的、全双工模式的异步串口UART(通用异步收发器),它们与16450串口标准所兼容。片上UART的波特率产生器中包含一个小数分频器,使得UART波特率的产生更加精确。同时,其中一个UART还支持网络寻址模式下的串口发送接收模式。UART的使用首先通过I/O的配置成UART端口引脚。然后通过软件配置UART配置寄存器及波特率设定寄存器就可以通过COMTX寄存器、COMRX寄存器分别发送和接收数据。
ADμC7024片上也集成了标准工业级同步串口SPI(串行外围接口),SPI接口可以同步接收和发送8位数据,最高速率可达5.6Mbit/s。该SPI能够被配置成主(Master)或者从(Slave)两种工作模式,关于SPI使能、选择工作模式、串行时钟相位及极性、先发送低有效位还是高有效位等多项设置,均是通过SPICON编程而得到,而主模式发送的串行时钟频率由SPIDIV来设定,从模式则不用设定串行时钟频率,因为串行时钟是由主模式的SPI来决定的,通过读取SPISTA中某些数据位的值,可以知道SPI是否发送结束或者接收结束。
ADμC7024还具有两个经Philips公司授权的IIC接口,IIC是Philips公司20世纪80年代开发的一个简单的两线总线,包括一条数据线和一条时钟线,速率有100kHz和400kHz两种方式,目前IIC已经成为重要的全球业界标准,被所有主要的集成电路厂商所认同和使用。它采用主-从通信方式,采用总线仲裁特性,使得在某一时刻只有两个器件进行通信,具体数据指标参考ADμC7024数据手册。
2.5 中断系统
中断系统是一个MCU在应用中的灵魂所在。ADμC7024片上中断控制器控制着24个中断源。这些中断源包括片上ADC中断、UART中断、2个外部中断请求XIRQ0和XIRQ1等,而ARM7TDMI内核仅仅将这些中断源分成两大类来识别,一类是IRQ,另一类是FIQ。所有中断源能够单独地被屏蔽。中断系统的控制和配置管理由9个关于中断方面的寄存器所控制,4个涉及到IRQ的寄存器、4个涉及到FIQ的寄存器,1个用来选择已编程的中断源寄存器SWICFG。虽然作为一个已编程的中断源是不能够被屏蔽掉的,但是它们可以被SWICFG来控制。
2.6 定时器
ADμC7024有4个通用定时器:定时器0、定时器1、定时器2和定时器3。这4个定时器在一般的 *** 作模式下均能按照默认值计数或者按照预设值寄存器TxLD(x表示0,1,2,和3中的某一个寄存器)中值来计算。在任意时刻可以通过读取TxVAL寄存器中的值了解定时器中的当前计数值。通过配置TxCON的值可以设置相应的定时器按照一定的方式开始计数。
定时器0是一个通用型16位倒计数定时器,该定时器的刻度尺频率来源是系统时钟,计数默认值可以是系统时钟频率、系统时钟频率的16分频和256分频。
定时器1是一个32位通用型累加定时器或者倒计时定时器。该定时器的刻度尺频率来源可以是32kHz晶振、系统时钟和外部GPIO三者之一。计数默认值可以是刻度尺频率、刻度尺频率的16分频、256分频和32768分频。定时器1可以被设置为标准的32位时间值,如Hours:Minutes:Seconds:Hundreths这样的格式。定时器1通过预设响应IRQ事件,可以比通常情况下定时器0响应IRQ中断请求要准确得多。它还可以用来触发ADC转换过程。
定时器2的系统刻度尺频率来源是内部集成的32.768kHz晶振,当系统时钟停止工作时,该定时器还可以继续运行,这一特性可以用来将处于休眠状态的系统内核恢复至正常工作状态。
定时器3由两种工作模式,一种通常模式与前面3个定时器一样,还有一种是看门狗模式。一旦程序跑飞时,可以利用该定时器看门狗模式来重启动处理器,令其恢复正常工作。
2.7 其他外围设备及特性
片上还集成有独立的比较器、电源监控模块、三相PWM(在ADμC7020、ADμC7021、ADμC7022是单相PWM)以及PLA(可编程逻辑阵列)。其中PLA的输入输出引脚与GPIO复用。
3 引脚定义
ADμC7024引脚定义见表1。
690)this.width=690;if(this.height>690)this.height=690;" border=0>
4 应用实例
该芯片卓越的数据处理能力、片上集成的高精度ADC及DAC等丰富的片上外围设备以及时钟频率可调节的特点,使得在要求低功耗、高精度、实时性等嵌入式微信号处理系统中的应用如鱼得水。现以脉搏血氧计为例,介绍其中一个广泛的应用领域。其系统框图如图2所示。
690)this.width=690;if(this.height>690)this.height=690;" border=0>
ADμC7024作为系统的核心MCU,负责控制和协调其他电路模块的正常工作,它将采集到的血氧信号经过数据处理后,通过SPI总线传送给LCD显示屏得以显示。
根据实际临床结果显示,ADμC7024已完全胜任设计血氧模块的任务,处理能力、采样率、采样精度、功耗、实时性要求等指标完全达到系统的要求,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)