一种智能手机获取监测环境温度、湿度的实现方法
时间:12-03
来源:互联网
点击:
摘要:本文介绍一种利用智能手机耳机接口音频传输,来实现智能手机拓展监测环境温度、湿度的应用设计与实现方案,同时提出了可兼容2种不同耳机接口标准的解决方案,增强了智能手机拓展应用价值。
随着移动终端操作系统应用软件功能日益强大,如Android和iOS智能操作系统,智能手机的应用已远超出通话的原始功能,各种移动应用的开发更充分体现了智能化、开放式的趋势。这里介绍一种如何利用智能手机的耳机音频接口,来实现随时获取外界环境温度湿度参数的方法。
1 技术应用背景
目前智能手机等移动通讯终端,通常都带有4脚3.5mm立体声耳机接口,这就给智能手机带来通用接口扩展应用的可能性,或许有人会想到PC上通用的USB接口,然而我们发现在智能手机不断演进发展过程中,尽管逐步过渡到支持micro USB接口,但是仅局限于USB device接口功能,虽然支持USB OTG功能的手机也有不少,但并不能保证市面所有的手机都支持。而智能手机支持耳机接口,却是绝对所需必配,因此研究通过手机耳机接口作拓展应用,似乎是必然之路。
2 系统组成与原理
本智能手机侦测环境温、湿度参数系统,如图1所示系统由来自耳机端口环境温湿度侦测外设和智能手机所组成,其中耳机端口外设主要由耳机端口MIC与GND自动侦测与自动切换电路,电池供电开关电路,耳机输出L声道信号整形电路,MIC信号整形发送电路,低功耗32位MCU单片机电路,专业级温度、湿度传感器等组成。
3 工作原理
耳机端口外设装置将负责完成环境温、湿度参数测量采集,在相应的智能手机APP程序支持下,智能手机显示屏将可直接显示环境温度、湿度曲线。为了达此目的,这就需要建立耳机端口外设与智能手机数据通讯机制:数据传输的具体方式中,外设装置通过插入手机外置话筒音频输入接口或音频线路输人接口的连接线发送数据信号给手机,外设装置通过插入手机的外置耳机音频接口或音频线路输出接口的连接插线,接收手机发送出的数据信号。很显然手机耳机端口只能直接传输音频信号,耳机线传输一般是1250Hz~9600Hz之间的交流音频信号。要进行数据传输,信号就需要进行编码调制发送,接收时解调解码频率为9600Hz和4800Hz的音频信号。本方案则采用标准的曼彻斯特(Manchester) 线路编码,来进行数据传输,如果把耳机接口终端作为主导装置,则由其产生位时钟信号、命令选择信号和数据。外设装置通过耳机音频输入/输出接口与智能手机进行数据通信,数据信号在主控模块中进行编解码处理,再通过控制装置读取、写入外部介质,并存储数据。实现的主控模块电路可选用低功耗的ARM微控制器,内部有可编程工作寄存器,可以方便地与主机通信,但要有自己的数据协议,主控模块对双向信号进行编解码处理的过程:(1)主控电路模块将读写装置需传送的曼彻斯特编码数据信息解码成国标数据,再编码为差分曼彻斯特编码数据信号,送到连接手机MIC接口或线路音频输入接口的传输线上。(2)主控电路模块从连接手机耳机接口或线路音频输出接口如输出L声道的传输线上,接收差分曼彻斯特编码数据信号,解码成国标数据,再编码为标准曼彻斯特编码数据信息,送入MCU内置的读写装置。该读写装置将负责完成环境温度、湿度数据采集。
本耳机外设解决方案使用曼彻斯特编码来实现智能手机和EFM32ZG108微控制器间的通讯。不进行载波调制与解调,直接在音频线路上传输数据编码信号。具体协议机制如下:基于音频输入/输出的数据传输方法是一种串行通讯方法,参考标准同步串行通讯协议,采用差分曼彻斯特编码,曼彻斯特编码总会在每一位的中点产生一个边沿跳变,在每一位的开始位置也可能会有一个边沿跳变(这决定于传输的数据)。在每一位中点的跳变方向表明数据。在位传输的边沿所产生的跳变并不表明数据信息。它们的存在只是让信号处于正确的状态以便允许每一位中点的跳变。存在有保证的跳变允许信号能自同步,并且允许接收者能正确地匹配数据;如果数据不匹配,接收者能通过识别每一位中点,即在每一位的周期里不会一直有一个跳变,如图2所示,数据传输是双工方式,从手机输出数据的传输使用音频输出线路,进人手机的数据传输使用音频输入线路,发送数据前让总线空闲准备,提示接收方做好接收准备。
4 智能手机与耳机外设数据传输的软硬件设计
从硬件外观体积设计得小巧出发,整个环境温湿度侦测耳机外设将有采用3.0V/50mAh CR1225 钮扣电池供电,内置的电路设计具有不插入智能手机耳机,电池将不耗电;插入耳机后,手机APP激活后,电池才会对整个耳机外设系统供电。为了能做到系统长时间待机续航使用,主控MCU(微控制器)特意选用了超低功耗微控制器EFM32ZG108F16,它是基于ARM Cortex-M0+ CPU 内核,低成本32-bit MCU,CPU频率能达到24MHz。由于EFM32ZG108F16低功耗的性能,deep sleep(深度睡眼)模式0.9mA,此时内部的模拟电压比较器与CPU均仍然工作;Stop 模式0.5mA;Shut off模式20nA,EFM32ZG108F16是耳机外设解决方案理想的微控制器,微控制器负责处理所有的硬件接口和软件协议处理,通过智能手机标准的3.5mm音频接口实现了智能手机与微控制器之间的通讯,该微处理器软件运行固件使用内部12MHz RC (IRC) 振荡器作为时钟源,基于数据传输速率只有1.4kbps,程序实际运行可工作于1MHz,微控制器耗电仅为114mA;一旦手机APP发出退出测量模式命令,耳机外设主控可进入深度睡眠模式(内部32.768kHz RC 振荡器作为时钟源),耗电只有0.9mA。
针对环境温度、湿度参数检测,这里将选用瑞士Sensirion AG全资子公司——盛思锐温湿度传感器SHT21,SHT21内部由电容式相对湿度传感器、带隙温度传感器、运放、A/D转换器、OTP 存储及数字处理单元所组成、支持I2C总线接口输出,工作时功耗较低:3.2mW(8位测量,1次/秒),3V供电时,测量耗电只有300mA,SHT21相对湿度工作范围为湿度0-100%;温度工作范围:-40 - +125℃ (-40 - +257°F);湿度响应时间为8秒(tau63%)。
如图3所示主控制器与温湿度传感器以I2C总线进行数据采集通讯。
4.1 耳机连接物理接口电路
本方案兼容这两种耳机接口标准,通过如图4电路,硬件自动识别耳机接口并进行对应硬件配置,该麦克风与地自动判别自适应电路包含地信号自适应电路和麦克信号自适应电路,当该电路插入到手机耳机端口后,能根据所插入的耳机接口类型,自动调整外设备端的麦克风信号和地信号极性,达到适应不同的手机耳机接口的目的。如图4所示所述地信号自适应电路,由分别接至麦克信号与地信号的MOS管Q3或Q4和偏置电阻R24或者R27所组成,该MOS管选用N沟道MOSFET 2N7002,利用手机地信号和麦克信号的特性来自动调整相应的地信号同设备地连接。所述的麦克信号自适应电路,由两个分别接于地信号和麦克信号上的二极管D6和D7组成,所述的两个二极管的正极端分别接至地信号与麦克信号,负极端与设备端MIC信号连接,利用手机麦克信号的直流偏置来自动调整相应的麦克信号同设备端麦克信号连接。
4.2 数据传输模块的软件设计
耳机外设温湿度测量解决方案需要执行两个软件程序:
● 运行在智能手机上的应用APP程序;
● 运行在耳机外设EFM32ZG108F16微控制器上的嵌入式固件。
通信双方的手机与耳机外设终端采用软件方法实现。左声道被用作手机至耳机外设装置的数据传输。有效数据被封装在一个小数据包,曼彻斯特线路便把被用于这些数据位的编码。在耳机外设装置上,EFM32内置的比较器被用于将模拟数据转换成数字数据。EFM32用于解码这些曼彻斯特编码的比特数据流并继续处理,这些有效数据通过程序对从耳机音频输出接口采集到的音频信号进行差分曼彻斯特解码,解码后的数据命令将指挥微控制器对环境温湿度传感器启动数据采集,并将数据存储在微控制器RAM中,然后依次对这些采集数据再进行差分曼彻斯特编码,经整形电路,并送到耳机音频输入MIC接口,发到手机端作解码。程序由3个线程构成,当数据传输服务程序在手机上启动后形成3个线程:(1)创建一个音频交流信号左声道发送线程,负责设置输出最大音量,生成固定频率音频交流信号,并发送到音频输出线路上;(2)创建一个监听音频输入接口数据的线程,负责对从音频输入接口采集到的音频信号,进行差分曼彻斯特解码,解码输出数据存放在接收数据缓存,然后调用外部业务程序执行耳机外设的测量温湿度的命令,上传采集到的数据;(3)主线程循环等待发送数据缓存中的数据存入事件,当外部业务程序在数据要发送时,将要发送的数据放入共享的发送数据缓存时,所述的主线程取到要发送的数据,进行差分曼彻斯特编码,再用操作系统的音频控制接口函数发送到音频输出接口MIC通路上。
针对耳机设端的嵌入式软件,主要运行于free RTOS操作系统,如图5为耳机外设端软件流程图,其中底层数据传送帧格式为:Stat byte+ n byte+ End byte,驱动层将主要完成曼彻斯特(Manchester)数据收发编码是关键,MCU将使用内部的模拟比较器+定时器捕获来作解码;而数据编码则通过MCU内部的SPI+DMA 作编码。
如图6所示为智能手机应用软件流程图,这里我们将提供运行于Android操作系统下的App应用程序节选例程,采用java编程,分为通过录音把耳机外设发送上来的方波数据转换为PCM数据。
随着移动终端操作系统应用软件功能日益强大,如Android和iOS智能操作系统,智能手机的应用已远超出通话的原始功能,各种移动应用的开发更充分体现了智能化、开放式的趋势。这里介绍一种如何利用智能手机的耳机音频接口,来实现随时获取外界环境温度湿度参数的方法。
1 技术应用背景
目前智能手机等移动通讯终端,通常都带有4脚3.5mm立体声耳机接口,这就给智能手机带来通用接口扩展应用的可能性,或许有人会想到PC上通用的USB接口,然而我们发现在智能手机不断演进发展过程中,尽管逐步过渡到支持micro USB接口,但是仅局限于USB device接口功能,虽然支持USB OTG功能的手机也有不少,但并不能保证市面所有的手机都支持。而智能手机支持耳机接口,却是绝对所需必配,因此研究通过手机耳机接口作拓展应用,似乎是必然之路。
2 系统组成与原理
本智能手机侦测环境温、湿度参数系统,如图1所示系统由来自耳机端口环境温湿度侦测外设和智能手机所组成,其中耳机端口外设主要由耳机端口MIC与GND自动侦测与自动切换电路,电池供电开关电路,耳机输出L声道信号整形电路,MIC信号整形发送电路,低功耗32位MCU单片机电路,专业级温度、湿度传感器等组成。
3 工作原理
耳机端口外设装置将负责完成环境温、湿度参数测量采集,在相应的智能手机APP程序支持下,智能手机显示屏将可直接显示环境温度、湿度曲线。为了达此目的,这就需要建立耳机端口外设与智能手机数据通讯机制:数据传输的具体方式中,外设装置通过插入手机外置话筒音频输入接口或音频线路输人接口的连接线发送数据信号给手机,外设装置通过插入手机的外置耳机音频接口或音频线路输出接口的连接插线,接收手机发送出的数据信号。很显然手机耳机端口只能直接传输音频信号,耳机线传输一般是1250Hz~9600Hz之间的交流音频信号。要进行数据传输,信号就需要进行编码调制发送,接收时解调解码频率为9600Hz和4800Hz的音频信号。本方案则采用标准的曼彻斯特(Manchester) 线路编码,来进行数据传输,如果把耳机接口终端作为主导装置,则由其产生位时钟信号、命令选择信号和数据。外设装置通过耳机音频输入/输出接口与智能手机进行数据通信,数据信号在主控模块中进行编解码处理,再通过控制装置读取、写入外部介质,并存储数据。实现的主控模块电路可选用低功耗的ARM微控制器,内部有可编程工作寄存器,可以方便地与主机通信,但要有自己的数据协议,主控模块对双向信号进行编解码处理的过程:(1)主控电路模块将读写装置需传送的曼彻斯特编码数据信息解码成国标数据,再编码为差分曼彻斯特编码数据信号,送到连接手机MIC接口或线路音频输入接口的传输线上。(2)主控电路模块从连接手机耳机接口或线路音频输出接口如输出L声道的传输线上,接收差分曼彻斯特编码数据信号,解码成国标数据,再编码为标准曼彻斯特编码数据信息,送入MCU内置的读写装置。该读写装置将负责完成环境温度、湿度数据采集。
本耳机外设解决方案使用曼彻斯特编码来实现智能手机和EFM32ZG108微控制器间的通讯。不进行载波调制与解调,直接在音频线路上传输数据编码信号。具体协议机制如下:基于音频输入/输出的数据传输方法是一种串行通讯方法,参考标准同步串行通讯协议,采用差分曼彻斯特编码,曼彻斯特编码总会在每一位的中点产生一个边沿跳变,在每一位的开始位置也可能会有一个边沿跳变(这决定于传输的数据)。在每一位中点的跳变方向表明数据。在位传输的边沿所产生的跳变并不表明数据信息。它们的存在只是让信号处于正确的状态以便允许每一位中点的跳变。存在有保证的跳变允许信号能自同步,并且允许接收者能正确地匹配数据;如果数据不匹配,接收者能通过识别每一位中点,即在每一位的周期里不会一直有一个跳变,如图2所示,数据传输是双工方式,从手机输出数据的传输使用音频输出线路,进人手机的数据传输使用音频输入线路,发送数据前让总线空闲准备,提示接收方做好接收准备。
4 智能手机与耳机外设数据传输的软硬件设计
从硬件外观体积设计得小巧出发,整个环境温湿度侦测耳机外设将有采用3.0V/50mAh CR1225 钮扣电池供电,内置的电路设计具有不插入智能手机耳机,电池将不耗电;插入耳机后,手机APP激活后,电池才会对整个耳机外设系统供电。为了能做到系统长时间待机续航使用,主控MCU(微控制器)特意选用了超低功耗微控制器EFM32ZG108F16,它是基于ARM Cortex-M0+ CPU 内核,低成本32-bit MCU,CPU频率能达到24MHz。由于EFM32ZG108F16低功耗的性能,deep sleep(深度睡眼)模式0.9mA,此时内部的模拟电压比较器与CPU均仍然工作;Stop 模式0.5mA;Shut off模式20nA,EFM32ZG108F16是耳机外设解决方案理想的微控制器,微控制器负责处理所有的硬件接口和软件协议处理,通过智能手机标准的3.5mm音频接口实现了智能手机与微控制器之间的通讯,该微处理器软件运行固件使用内部12MHz RC (IRC) 振荡器作为时钟源,基于数据传输速率只有1.4kbps,程序实际运行可工作于1MHz,微控制器耗电仅为114mA;一旦手机APP发出退出测量模式命令,耳机外设主控可进入深度睡眠模式(内部32.768kHz RC 振荡器作为时钟源),耗电只有0.9mA。
针对环境温度、湿度参数检测,这里将选用瑞士Sensirion AG全资子公司——盛思锐温湿度传感器SHT21,SHT21内部由电容式相对湿度传感器、带隙温度传感器、运放、A/D转换器、OTP 存储及数字处理单元所组成、支持I2C总线接口输出,工作时功耗较低:3.2mW(8位测量,1次/秒),3V供电时,测量耗电只有300mA,SHT21相对湿度工作范围为湿度0-100%;温度工作范围:-40 - +125℃ (-40 - +257°F);湿度响应时间为8秒(tau63%)。
如图3所示主控制器与温湿度传感器以I2C总线进行数据采集通讯。
4.1 耳机连接物理接口电路
本方案兼容这两种耳机接口标准,通过如图4电路,硬件自动识别耳机接口并进行对应硬件配置,该麦克风与地自动判别自适应电路包含地信号自适应电路和麦克信号自适应电路,当该电路插入到手机耳机端口后,能根据所插入的耳机接口类型,自动调整外设备端的麦克风信号和地信号极性,达到适应不同的手机耳机接口的目的。如图4所示所述地信号自适应电路,由分别接至麦克信号与地信号的MOS管Q3或Q4和偏置电阻R24或者R27所组成,该MOS管选用N沟道MOSFET 2N7002,利用手机地信号和麦克信号的特性来自动调整相应的地信号同设备地连接。所述的麦克信号自适应电路,由两个分别接于地信号和麦克信号上的二极管D6和D7组成,所述的两个二极管的正极端分别接至地信号与麦克信号,负极端与设备端MIC信号连接,利用手机麦克信号的直流偏置来自动调整相应的麦克信号同设备端麦克信号连接。
4.2 数据传输模块的软件设计
耳机外设温湿度测量解决方案需要执行两个软件程序:
● 运行在智能手机上的应用APP程序;
● 运行在耳机外设EFM32ZG108F16微控制器上的嵌入式固件。
通信双方的手机与耳机外设终端采用软件方法实现。左声道被用作手机至耳机外设装置的数据传输。有效数据被封装在一个小数据包,曼彻斯特线路便把被用于这些数据位的编码。在耳机外设装置上,EFM32内置的比较器被用于将模拟数据转换成数字数据。EFM32用于解码这些曼彻斯特编码的比特数据流并继续处理,这些有效数据通过程序对从耳机音频输出接口采集到的音频信号进行差分曼彻斯特解码,解码后的数据命令将指挥微控制器对环境温湿度传感器启动数据采集,并将数据存储在微控制器RAM中,然后依次对这些采集数据再进行差分曼彻斯特编码,经整形电路,并送到耳机音频输入MIC接口,发到手机端作解码。程序由3个线程构成,当数据传输服务程序在手机上启动后形成3个线程:(1)创建一个音频交流信号左声道发送线程,负责设置输出最大音量,生成固定频率音频交流信号,并发送到音频输出线路上;(2)创建一个监听音频输入接口数据的线程,负责对从音频输入接口采集到的音频信号,进行差分曼彻斯特解码,解码输出数据存放在接收数据缓存,然后调用外部业务程序执行耳机外设的测量温湿度的命令,上传采集到的数据;(3)主线程循环等待发送数据缓存中的数据存入事件,当外部业务程序在数据要发送时,将要发送的数据放入共享的发送数据缓存时,所述的主线程取到要发送的数据,进行差分曼彻斯特编码,再用操作系统的音频控制接口函数发送到音频输出接口MIC通路上。
针对耳机设端的嵌入式软件,主要运行于free RTOS操作系统,如图5为耳机外设端软件流程图,其中底层数据传送帧格式为:Stat byte+ n byte+ End byte,驱动层将主要完成曼彻斯特(Manchester)数据收发编码是关键,MCU将使用内部的模拟比较器+定时器捕获来作解码;而数据编码则通过MCU内部的SPI+DMA 作编码。
如图6所示为智能手机应用软件流程图,这里我们将提供运行于Android操作系统下的App应用程序节选例程,采用java编程,分为通过录音把耳机外设发送上来的方波数据转换为PCM数据。
Android USB 电路 MCU 单片机 传感器 ARM 总线 Cortex 电压 比较器 振荡器 电容 温度传感器 电阻 MOSFET 二极管 嵌入式 相关文章:
- 基于Android的多传感器信息融合技术应用(02-14)
- RIGOL 示波器 “comparo”彰显出Smarter System之先进(05-06)
- MIMO及其对无线局域网产品生产测试的影响(09-04)
- 移动技术在测量测试系统中的应用(12-16)
- 智能手机的耗电特征及APP耗电量测试的两种方法(01-07)
- 教你将Android手机变成蓝牙无线示波器(01-04)