一種智能手機(jī)獲取監(jiān)測(cè)環(huán)境溫度、濕度的實(shí)現(xiàn)方法
4.1 耳機(jī)連接物理接口電路
本文引用地址:http://cafeforensic.com/article/274760.htm本方案兼容這兩種耳機(jī)接口標(biāo)準(zhǔn),通過(guò)如圖4電路,硬件自動(dòng)識(shí)別耳機(jī)接口并進(jìn)行對(duì)應(yīng)硬件配置,該麥克風(fēng)與地自動(dòng)判別自適應(yīng)電路包含地信號(hào)自適應(yīng)電路和麥克信號(hào)自適應(yīng)電路,當(dāng)該電路插入到手機(jī)耳機(jī)端口后,能根據(jù)所插入的耳機(jī)接口類型,自動(dòng)調(diào)整外設(shè)備端的麥克風(fēng)信號(hào)和地信號(hào)極性,達(dá)到適應(yīng)不同的手機(jī)耳機(jī)接口的目的。如圖4所示所述地信號(hào)自適應(yīng)電路,由分別接至麥克信號(hào)與地信號(hào)的MOS管Q3或Q4和偏置電阻R24或者R27所組成,該MOS管選用N溝道MOSFET 2N7002,利用手機(jī)地信號(hào)和麥克信號(hào)的特性來(lái)自動(dòng)調(diào)整相應(yīng)的地信號(hào)同設(shè)備地連接。所述的麥克信號(hào)自適應(yīng)電路,由兩個(gè)分別接于地信號(hào)和麥克信號(hào)上的二極管D6和D7組成,所述的兩個(gè)二極管的正極端分別接至地信號(hào)與麥克信號(hào),負(fù)極端與設(shè)備端MIC信號(hào)連接,利用手機(jī)麥克信號(hào)的直流偏置來(lái)自動(dòng)調(diào)整相應(yīng)的麥克信號(hào)同設(shè)備端麥克信號(hào)連接。
4.2 數(shù)據(jù)傳輸模塊的軟件設(shè)計(jì)
耳機(jī)外設(shè)溫濕度測(cè)量解決方案需要執(zhí)行兩個(gè)軟件程序:
● 運(yùn)行在智能手機(jī)上的應(yīng)用APP程序;
● 運(yùn)行在耳機(jī)外設(shè)EFM32ZG108F16微控制器上的嵌入式固件。
通信雙方的手機(jī)與耳機(jī)外設(shè)終端采用軟件方法實(shí)現(xiàn)。左聲道被用作手機(jī)至耳機(jī)外設(shè)裝置的數(shù)據(jù)傳輸。有效數(shù)據(jù)被封裝在一個(gè)小數(shù)據(jù)包,曼徹斯特線路便把被用于這些數(shù)據(jù)位的編碼。在耳機(jī)外設(shè)裝置上,EFM32內(nèi)置的比較器被用于將模擬數(shù)據(jù)轉(zhuǎn)換成數(shù)字?jǐn)?shù)據(jù)。EFM32用于解碼這些曼徹斯特編碼的比特?cái)?shù)據(jù)流并繼續(xù)處理,這些有效數(shù)據(jù)通過(guò)程序?qū)亩鷻C(jī)音頻輸出接口采集到的音頻信號(hào)進(jìn)行差分曼徹斯特解碼,解碼后的數(shù)據(jù)命令將指揮微控制器對(duì)環(huán)境溫濕度傳感器啟動(dòng)數(shù)據(jù)采集,并將數(shù)據(jù)存儲(chǔ)在微控制器RAM中,然后依次對(duì)這些采集數(shù)據(jù)再進(jìn)行差分曼徹斯特編碼,經(jīng)整形電路,并送到耳機(jī)音頻輸入MIC接口,發(fā)到手機(jī)端作解碼。程序由3個(gè)線程構(gòu)成,當(dāng)數(shù)據(jù)傳輸服務(wù)程序在手機(jī)上啟動(dòng)后形成3個(gè)線程:(1)創(chuàng)建一個(gè)音頻交流信號(hào)左聲道發(fā)送線程,負(fù)責(zé)設(shè)置輸出最大音量,生成固定頻率音頻交流信號(hào),并發(fā)送到音頻輸出線路上;(2)創(chuàng)建一個(gè)監(jiān)聽(tīng)音頻輸入接口數(shù)據(jù)的線程,負(fù)責(zé)對(duì)從音頻輸入接口采集到的音頻信號(hào),進(jìn)行差分曼徹斯特解碼,解碼輸出數(shù)據(jù)存放在接收數(shù)據(jù)緩存,然后調(diào)用外部業(yè)務(wù)程序執(zhí)行耳機(jī)外設(shè)的測(cè)量溫濕度的命令,上傳采集到的數(shù)據(jù);(3)主線程循環(huán)等待發(fā)送數(shù)據(jù)緩存中的數(shù)據(jù)存入事件,當(dāng)外部業(yè)務(wù)程序在數(shù)據(jù)要發(fā)送時(shí),將要發(fā)送的數(shù)據(jù)放入共享的發(fā)送數(shù)據(jù)緩存時(shí),所述的主線程取到要發(fā)送的數(shù)據(jù),進(jìn)行差分曼徹斯特編碼,再用操作系統(tǒng)的音頻控制接口函數(shù)發(fā)送到音頻輸出接口MIC通路上。
針對(duì)耳機(jī)設(shè)端的嵌入式軟件,主要運(yùn)行于free RTOS操作系統(tǒng),如圖5為耳機(jī)外設(shè)端軟件流程圖,其中底層數(shù)據(jù)傳送幀格式為:Stat byte+ n byte+ End byte,驅(qū)動(dòng)層將主要完成曼徹斯特(Manchester)數(shù)據(jù)收發(fā)編碼是關(guān)鍵,MCU將使用內(nèi)部的模擬比較器+定時(shí)器捕獲來(lái)作解碼;而數(shù)據(jù)編碼則通過(guò)MCU內(nèi)部的SPI+DMA 作編碼。
如圖6所示為智能手機(jī)應(yīng)用軟件流程圖,這里我們將提供運(yùn)行于Android操作系統(tǒng)下的App應(yīng)用程序節(jié)選例程,采用java編程,分為通過(guò)錄音把耳機(jī)外設(shè)發(fā)送上來(lái)的方波數(shù)據(jù)轉(zhuǎn)換為PCM數(shù)據(jù)。
5 結(jié)語(yǔ)
本方案設(shè)計(jì)并實(shí)現(xiàn)了利用耳機(jī)音頻接口傳輸,實(shí)現(xiàn)智能手機(jī)擴(kuò)展監(jiān)測(cè)環(huán)境溫濕度數(shù)據(jù)顯示,從實(shí)際測(cè)試狀況來(lái)看,基本達(dá)到了應(yīng)用需求,可兼容滿足2種不同耳機(jī)接口標(biāo)準(zhǔn)的智能手機(jī)拓展應(yīng)用,由此給智能手機(jī)拓展應(yīng)用帶來(lái)深遠(yuǎn)影響。
參考文獻(xiàn):
[1] Energymicro,EFM32ZG108_Datasheet_Rev1.0[EB/OL].www.energymicro.com,July.2,2014
[2] Sensirion_Humidity_SHT21_Datasheet_V4[EB/OL].www.sensirion.compdf, May 2014
[3] Energymicro,an0054_efm32_phone_audio_jack_interface_Rev1.0[EB/OL].www.energymicro.com,May,24,2013[4] Sonal Verma,Andrew Robinson,Prabal Dutta.AudioDAQ: Turning the Mobile Phone's Ubiquitous Headset Port into a Universal Data Acquisition Interface[J], Sensys'12: Proceedings of the 10th ACM Conference on Embedded Networked Sensor Systems, Nov 2012
[5] Ye-Sheng Kuo,Sonal Verma,Thomas Schmid, Hijacking Power and Bandwidth from the Mobile Phone's Audio Interface[J], First Annual Symposium on Computing for Development (DEV'10), Dec. 2010
評(píng)論