1.1 把iPhone变成一台心电图仪
今天,每个人都有一部手机,这部手机可能是iPhone,也可能是Android手机,还有可能是Windows手机。无论是哪一种智能手机,其实都是一款功能强大的开发平台,吸引了众多的软件应用开发者。面对这样一个平台,我们是否可以换个思路,不局限于设计各种软件应用,而是再添加一些硬件外设,做出更大胆的功能拓展。答案是肯定的!
图1-1展示iPhone心电图仪,只增加少量的硬件外设就把一部iPhone变成了一台心电图仪。
图1-1 iPhone心电图仪
下面我们来看看如何一步一步实现将一部iPhone变成便携式心电图仪。首先要考虑的问题是,增加的硬件外设如何与iPhone相连。iPhone提供给外界的接口是它独特的数据接口以及耳机接口,其他的手机一般可以提供USB接口和耳机接口。因此,实际上在手机上最通用的接口是耳机接口,而不是各种数据接口。
图1-2 iPhone耳机接口的定义
让我们看看手机上的耳机接口的定义,看看它能否完成硬件外设与手机通信的功能。耳机接口有4个信号线,分别是左声道、右声道、接地和麦克风,如图1-2所示。接口中各信号的方向是固定的,左声道和右声道用于驱动耳机,所以对于手机就是输出;麦克风是采集语音信号的,所以对于手机其方向为输入。总体上讲,手机耳机孔接口提供了两个输出通道和一个输入通道,可以满足手机和硬件外设的双向通信的要求。
如果使用耳机接口作为外设电路与iPhone之间唯一的连接,那么电路必须从耳机接口取电,也就是需要依靠音频芯片输出的能量来驱动电路。
iPhone的音频输出功率有多大呢?是否能够驱动外部电路呢?带着这些疑问,可以先测试iPhone手机一个声道的输出功率。图1-3是利用iPhone 3GS输出20~20KHz的信号在不同的负载阻抗下测试得到的输出电压有效值和输出电流以及输出功率的关系。其中抛物线形的曲线是输出电压与输出功率的关系,带圈的曲线是输出电流与输出电压的对应关系。输出功率在输出电压为240mV的时候达到峰值,这个时候输出功率达到15.6mW,输出电流约为66mA。
图1-3 iPhone 3GS单声道输出电压与输出电流及功率的关系
音频输出的最高功率达到15.6mW,如果能够设计出低功耗的电路,这个功率能够支撑电路工作。有了能量保障,采集心电信号需要哪些功能电路呢?
心电信号非常微弱,而且受到的干扰非常严重,直接采集会淹没在噪声之中,所以必须设计降噪放大电路完成心电信号的调理。心电信号从模拟域到数字域的转换,就需要数模转换器来完成。除此以外,还希望电路具备一定的数字处理能力,完成心电信号的预处理以及与iPhone的通信。综合以上这些要求,可以选择一款具备数模转换等功能的低功耗单片机。
提到低功耗单片机,就会让人想起一款经常使用水果电池供电做演示超低功耗单片机——MSP430单片机。MSP430单片机很长时间以来一直作为低功耗单片机的标杆产品,那么它的功耗到底有多低呢?
可以做一个计算,假如使用3V的银锌纽扣电池CR2032供电,电池的容量为200mAh。单片机使用MSP430F20xx系列,在看门狗工作的待机模式下其消耗电流为0.6μA,在CPU工作频率为1MHz的活动模式下消耗电流为300μA。在实际的低功耗应用中,单片机一般情况下处于待机模式,中断请求到达时被唤醒,处理完中断请求后再次进入待机模式。因此,单片机在大部分状态下都处于待机模式,下面分别以1%和0.1%的工作时间对其进行评估。
工作时间为1%的情况下,电流消耗的平均值为:
Iavg=06.μA×0.99+300μA×0.01=3.594μA
工作时间为:
工作时间为0.1%的情况下,电流消耗的平均值为:
Iavg=0.6μA×0.999+300μA×0.001=0.8994μA
工作时间为:
MSP430单片机在1%和0.1%的工作时间下,工作时间分别达到了6.34年和25年,其低功耗的特性也得到了充分体现。
MSP430单片机除了低功耗的特点,还有哪些特征呢?
MSP430经过多年的发展已经有超过450个型号,相互之间具备非常好的兼容性。MSP430大部分器件工作电压在1.8~3.6V,低的工作电压可以方便使用在单节电池供电的环境中。平均工作电流为200μA/MIPS,最高CPU工作频率可以达到25MHz。提供MCLK、SMCLK和ACLK3个时钟系统,具备5种低功耗模式。片上外设非常强大,具备数字和模拟两大类外设。数字外设包括数字I/O口,具备捕获和比较功能的定时器,支持UART、I2C和SPI的硬件串行接口,USB接口,DMA,硬件乘法器,看门狗,RTC等数字外设。模拟外设主要包括10位ADC、12位ADC、16位SD、24位SD、12位D/A、模拟比较器、电源监测BOR,运算放大器OPA等。可以根据具体应用选择所需要的外设,进而选取对应型号的MSP430单片机。
丰富的外设能够帮助简化电路的设计,但是会不会引起MSP430功耗的上升呢?在实际应用中可能用不到所有的外设,MSP430可以选择关闭不使用的外设,这样就避免了功耗上升的风险。
制作iPhone心电图仪的硬件外设选用了MSP430F1611单片机。有了低功耗的单片机,下面来看看整个外设电路如何实现。
第一步实现能量的采集,从图1-3中的曲线数据可以知道输出电压有效值为240mV时,音频输出功率最大,这个时候负载阻抗为240mV的电压较低,需要升压才能作为单片机的供电电压。但是240mV的电压还不足以让boost升压电路工作。必须使用一种有效的升压方式,音频信号为交流信号,因此可以采用如图1-4所示的变压器电路,利用1:20的变压器将音频信号升压。
图1-4 升压整流电路
为达到高效的能量传输,负载和音频源端输出阻抗匹配。已知源端阻抗为3.6Ω,变压器初级线圈的电感为25μH,就可以根据电感的感抗计算公式获得最佳的音频频率。
如图1-4所示使用右声道传输能量,那么最佳的音频频率为22.9KHz。由于变压器还有约为0.2Ω的直流电阻,升压后电压约为4.2V。然后经过MOS管组成的整流电路,将电压变为直流信号。采用MOS管做直流整流电路,原理上与常见的二极管全波整流电路相似,但是具备更低的管压降,所以效率更高。整流滤波后的直流信号约为4V,MSP430的供电电压可以选定为3V,所以最后还需要降压电路。该降压电路最好选用DC-DC降压电路,以取得较高的效率。
获得了电源,还要完成单片机电路和心电信号的调理电路,心电信号调理电路会在后面的章节中详细介绍。下面再看MSP430是如何完成与iPhone通信的。iPhone的耳机接口中右声道已经被用作供给能量,就剩下左声道和麦克风。左声道可以用作iPhone向MSP430传输数据,而麦克风可以用作MSP430向iPhone传输数据。MSP430和iPhone之间都是交流耦合,所以直接传输数字电平信号是行不通的。这里可以借用无线传输中的一种方式,通过FSK调制传输数据,简单来说就是将数字信号调制到一个更高的载波信号上,数字信号的0和1分别用不同频率的载波信号,根据接收到的载波频率可分为0和1。看似困难的调制与解调过程可以依赖于MSP430的片上外设轻松完成。
完成FSK调制,需要使用到MSP430的I/O口中断,通用异步、同步收发器UASRT,定时器的比较输出功能。整个过程除了一处简单的电路连接,其他的过程都可以编程实现。FSK的调制的实现过程如图1-5所示。
图1-5 MSP430实现FSK调制
单片机与iPhone之间完成的异步通信,可以将片上外设UASRT的配置为UART接口来实现,需要发送的数据直接写入UASRT既能够自动封装为符合串口标准的数据格式。接着将UASRT的输出管脚TXD输出的信号接至片上具备I/O口中断功能的I/O口管脚,P1端口和P2端口的各8个管脚都可以选用。I/O口管脚发现TXD管脚的电平变化就会发生中断,并在中断中修改定时器的定时周期,进而输出不同频率的PWM信号,输出的PWM信号如图1-6所示。
图1-6 FSK调制波形
由于iPhone和MSP430之间是交流耦合,所以PWM信号经过低通滤波并隔离直流分量,输出至麦克风接口被手机采集。手机具备很强的数值计算能力可以利用软件无线电算法处理采集到的FSK信号并解调出MSP430发送的数字信号。
由iPhone发往MSP430的调制信号,也可以充分利用片上外设解调,实现框图如图1-7所示。
图1-7 MSP430实现FSK解调
iPhone左声道传输的FSK信号也是交流信号,先使用电阻分压电路将该信号抬升至中点电平,即1/2VCC。利用MSP430片上的模拟电压比较器,将输入的信号与1/2VCC进行比较,比较后的信号交由定时器进行捕获计数,测量FSK信号的周期。最终CPU根据信号周期判决解调出数字信号,解调波形如图1-8所示。
图1-8 FSK解调波形
通过以上方法就可以解决供电和通信两大难题,再配合iPhone上的应用软件就能够成功地将一部手机转换为心电图仪。
从上面的介绍中可以看到大部分处理任务通过MSP430单片机片上外设就能完成,利用MSP430单片机强大的功能实现了单芯片解决方案。MSP430单片机是一款资源丰富的超低功耗单片机,在后面的章节中我们将逐步向大家介绍。