来源:信息化研究•作者:焦雄 , 贾玉兰
引言
随着信息技术的迅猛发展和人民生活水平的提高,极大地推动了医疗电子设备的发展,当今医疗电子设备的发展趋势是高精度、实时性、低功耗和小尺寸,作为医疗电子设备中核心地位的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所示。
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值使用外部晶振,使系统的性能稳定可靠。
2.4 复用I/O及标准的UART、SPI、IIC
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。
4 、应用实例
该芯片卓越的数据处理能力、片上集成的高精度ADC及DAC等丰富的片上外围设备以及时钟频率可调节的特点,使得在要求低功耗、高精度、实时性等嵌入式微信号处理系统中的应用如鱼得水。现以脉搏血氧计为例,介绍其中一个广泛的应用领域。其系统框图如图2所示。
ADμC7024作为系统的核心MCU,负责控制和协调其他电路模块的正常工作,它将采集到的血氧信号经过数据处理后,通过SPI总线传送给LCD显示屏得以显示。
根据实际临床结果显示,ADμC7024已完全胜任设计血氧模块的任务,处理能力、采样率、采样精度、功耗、实时性要求等指标完全达到系统的要求,ARM体系架构使得医疗电子的稳定性得到极大保障。最后,采用第三方Keil公司μVision开发工具,用C语言作为开发语言,利用GNU的ARM-ELF-GCC等工具作为编译器及链接器,易学易用,它的调试仿真工具也是Keil公司开发的Ulink仿真器,调试简单,缩短上市时间,便于移植。
可以预料,在不久的将来,ADμC7024以其独树一帜的性能必将在医疗电子行业中发挥越来越大的作用。