



摘要:本文介紹一種利用智能手機耳機接口音頻傳輸,來實現(xiàn)智能手機拓展監(jiān)測環(huán)境溫度、濕度的應(yīng)用設(shè)計與實現(xiàn)方案,同時提出了可兼容2種不同耳機接口標(biāo)準(zhǔn)的解決方案,增強了智能手機拓展應(yīng)用價值。本文網(wǎng)絡(luò)版地址:http://www.eepw.com.cn/article/274760.htm
關(guān)鍵詞:智能手機;耳機接口DOI:10.3969/j.issn.1005-5517.2015.5.019
隨著移動終端操作系統(tǒng)應(yīng)用軟件功能日益強大,如Android和10S智能操作系統(tǒng),智能手機的應(yīng)用已遠超出通話的原始功能,各種移動應(yīng)用的開發(fā)更充分體現(xiàn)了智能化、開放式的趨勢。這里介紹一種如何利用智能手機的耳機音頻接口,來實現(xiàn)隨時獲取外界環(huán)境溫度濕度參數(shù)的方法。
1 技術(shù)應(yīng)用背景
目前智能手機等移動通訊終端,通常都帶有4腳3.5mm立體聲耳機接口,這就給智能手機帶來通用接口擴展應(yīng)用的可能性,或許有人會想到PC上通用的USB接口,然而我們發(fā)現(xiàn)在智能手機不斷演迸發(fā)展過程中,盡管逐步過渡到支持micro USB接口,但是僅局限于USB device接口功能,雖然支持USB OTG功能的手機也有不少,但并不能保證市面所有的手機都支持。而智能手機支持耳機接口,卻是絕對所需必配,因此研究通過手機耳機接口作拓展應(yīng)用,似乎是必然之路。
2 系統(tǒng)組成與原理
本智能手機偵測環(huán)境溫、濕度參數(shù)系統(tǒng),如圖1所示系統(tǒng)由來自耳機端口環(huán)境溫濕度偵測外設(shè)和智能手機所組成,其中耳機端口外設(shè)主要由耳機端口MIC與GND自動偵測與自動切換電路,電池供電開關(guān)電路,耳機輸出L聲道信號整形電路.MIC信號整形發(fā)送電路,低功耗32位MCU單片機電路,專業(yè)級溫度、濕度傳感器等組成。
3 工作原理
耳機端口外設(shè)裝置將負責(zé)完成環(huán)境溫、濕度參數(shù)測量采集,在相應(yīng)的智能手機APP程序支持下,智能手機顯示屏將可直接顯示環(huán)境溫度、濕度曲線。為了達此目的,這就需要建立耳機端口外設(shè)與智能手機數(shù)據(jù)通訊機制:數(shù)據(jù)傳輸?shù)木唧w方式中,外設(shè)裝置通過插入手機外置話筒音頻輸入接口或音頻線路輸人接口的連接線發(fā)送數(shù)據(jù)信號給手機,外設(shè)裝置通過插入手機的外置耳機音頻接口或音頻線路輸出接口的連接插線,接收手機發(fā)送出的數(shù)據(jù)信號。很顯然手機耳機端口只能直接傳輸音頻信號,耳機線傳輸一般是1250Hz—9600Hz之間的交流音頻信號。要進行數(shù)據(jù)傳輸,信號就需要進行編碼調(diào)制發(fā)送,接收時解調(diào)解碼頻率為9600Hz和4800Hz的音頻信號。本方案則采用標(biāo)準(zhǔn)的曼徹斯特(Manchester)線路編碼,來進行數(shù)據(jù)傳輸,如果把耳機接口終端作為主導(dǎo)裝置,則由其產(chǎn)生位時鐘信號、命令選擇信號和數(shù)據(jù)。外設(shè)裝置通過耳機音頻輸入/輸出接口與智能手機進行數(shù)據(jù)通信,數(shù)據(jù)信號在主控模塊中進行編解碼處理,再通過控制裝置讀取、寫入外部介質(zhì),并存儲數(shù)據(jù)。實現(xiàn)的主控模塊電路可選用低功耗的ARM微控制器,內(nèi)部有可編程工作寄存器,可以方便地與主機通信,但要有自己的數(shù)據(jù)協(xié)議,主控模塊對雙向信號進行編解碼處理的過程:(1)主控電路模塊將讀寫裝置需傳送的曼徹斯特編碼數(shù)據(jù)信息解碼成國標(biāo)數(shù)據(jù),再編碼為差分曼徹斯特編碼數(shù)據(jù)信號,送到連接手機MIC接口或線路音頻輸入接口的傳輸線上。(2)主控電路模塊從連接手機耳機接口或線路音頻輸出接口如輸出L聲道的傳輸線上,接收差分曼徹斯特編碼數(shù)據(jù)信號,解碼成國標(biāo)數(shù)據(jù),再編碼為標(biāo)準(zhǔn)曼徹斯特編碼數(shù)據(jù)信息,送入MCU內(nèi)置的讀寫裝置。該讀寫裝置將負責(zé)完成環(huán)境溫度、濕度數(shù)據(jù)采集。
本耳機外設(shè)解決方案使用曼徹斯特編碼來實現(xiàn)智能手機和EFM32ZG108微控制器間的通訊。不進行載波調(diào)制與解調(diào),直接在音頻線路上傳輸數(shù)據(jù)編碼信號。具體協(xié)議機制如下:基于音頻輸入/輸出的數(shù)據(jù)傳輸方法是一種串行通訊方法,參考標(biāo)準(zhǔn)同步串行通訊協(xié)議,采用差分曼徹斯特編碼,曼徹斯特編碼總會在每一位的中點產(chǎn)生一個邊沿跳變,在每一位的開始位置也可能會有一個邊沿跳變(這決定于傳輸?shù)臄?shù)據(jù))。在每一位中點的跳變方向表明數(shù)據(jù)。在位傳輸?shù)倪呇厮a(chǎn)生的跳變并不表明數(shù)據(jù)信息。它們的存在只是讓信號處于正確的狀態(tài)以便允許每一位中點的跳變。存在有保證的跳變允許信號能自同步,并且允許接收者能正確地匹配數(shù)據(jù):如果數(shù)據(jù)不匹配,接收者能通過識別每一位中點,即在每一位的周期里不會一直有一個跳變,如圖2所示,數(shù)據(jù)傳輸是雙工方式,從手機輸出數(shù)據(jù)的傳輸使用音頻輸出線路,進人手機的數(shù)據(jù)傳輸使用音頻輸入線路,發(fā)送數(shù)據(jù)前讓總線空閑準(zhǔn)備,提示接收方做好接收準(zhǔn)備。
4 智能手機與耳機外設(shè)數(shù)據(jù)傳輸?shù)能浻布O(shè)計
從硬件外觀體積設(shè)計得小巧出發(fā),整個環(huán)境溫濕度偵測耳機外設(shè)將有采用3.OV/50mAh CR1225鈕扣電池供電,內(nèi)置的電路設(shè)計具有不插入智能手機耳機,電池將不耗電;插入耳機后,手機APP激活后,電池才會對整個耳機外設(shè)系統(tǒng)供電。為了能做到系統(tǒng)長時間待機續(xù)航使用,主控MCU(微控制器)特意選用了超低功耗微控制器EFM32ZG108F16,它是基于ARM Cortex-MO+CPU內(nèi)核,低成本32-bit MCU,CPU頻率能達到24MHz。由于EFM32ZG108F16低功耗的性能,deep sleep(深度睡眼)模式o.9uA,此時內(nèi)部的模擬電壓比較器與CPU均仍然工作:Stop模式0.5uA; Shut off模式20nA,EFM32ZG108F16是耳機外設(shè)解決方案理想的微控制器,微控制器負責(zé)處理所有的硬件接口和軟件協(xié)議處理,通過智能手機標(biāo)準(zhǔn)的3.5mm音頻接口實現(xiàn)了智能手機與微控制器之間的通訊,該微處理器軟件運行固件使用內(nèi)部12MHz RC (IRC)振蕩器作為時鐘源,基于數(shù)據(jù)傳輸速率只有1.4kbps,程序?qū)嶋H運行可工作于1MHz,微控制器耗電僅為114uA; -旦手機APP發(fā)出退出測量模式命令,耳機外設(shè)主控可進入深度睡眠模式(內(nèi)部32.768kHz RC振蕩器作為時鐘源),耗電只有0.9uA。
針對環(huán)境溫度、濕度參數(shù)檢測,這里將選用瑞士Sensirion AG全資子公司——盛思銳溫濕度傳感器SHT21,SHT21內(nèi)部由電容式相對濕度傳感器、帶隙溫度傳感器、運放、A/D轉(zhuǎn)換器、OTP存儲及數(shù)字處理單元所組成、支持I2C總線接口輸出,工作時功耗較低:3.2uW(8位測量,1次/秒),3V供電時,測量耗電只有300uA,SHT21相對濕度工作范圍為濕度0-100%:溫度工作范圍:-40-+125℃(-40-+257°F);濕度響應(yīng)時間為8秒(tau63%)。
如圖3所示主控制器與溫濕度傳感器以I2C總線進行數(shù)據(jù)采集通訊。4.1耳機連接物理接口電路
本方案兼容這兩種耳機接口標(biāo)準(zhǔn),通過如圖4電路,硬件自動識別耳機接口并進行對應(yīng)硬件配置,該麥克風(fēng)與地自動判別自適應(yīng)電路包含地信號自適應(yīng)電路和麥克信號自適應(yīng)電路,當(dāng)該電路插入到手機耳機端口后,能根據(jù)所插入的耳機接口類型,自動調(diào)整外設(shè)備端的麥克風(fēng)信號和地信號極性,達到適應(yīng)不同的手機耳機接口的目的。如圖4所示所述地信號自適應(yīng)電路,由分別接至麥克信號與地信號的MOS管Q3或Q和偏置電阻R24或者R27所組成,該MOS管選用N溝道MOSFET 2N7002,利用手機地信號和麥克信號的特性來自動調(diào)整相應(yīng)的地信號同設(shè)備地連接。所述的麥克信號自適應(yīng)電路,由兩個分別接于地信號和麥克信號上的二極管D6和D7組成,所述的兩個二極管的正極端分別接至地信號與麥克信號,負極端與設(shè)備端MIC信號連接,利用手機麥克信號的直流偏置來自動調(diào)整相應(yīng)的麥克信號同設(shè)備端麥克信號連接。
4.2 數(shù)據(jù)傳輸模塊的軟件設(shè)計
耳機外設(shè)溫濕度測量解決方案需要執(zhí)行兩個軟件程序:
●運行在智能手機上的應(yīng)用APP程序:
● 運行在耳機外設(shè)EFM32ZG108F16微控制器上的嵌入式固件。
通信雙方的手機與耳機外設(shè)終端采用軟件方法實現(xiàn)。左聲道被用作手機至耳機外設(shè)裝置的數(shù)據(jù)傳輸。有效數(shù)據(jù)被封裝在一個小數(shù)據(jù)包,曼徹斯特線路便把被用于這些數(shù)據(jù)位的編碼。在耳機外設(shè)裝置上,EFM32內(nèi)置的比較器被用于將模擬數(shù)據(jù)轉(zhuǎn)換成數(shù)字數(shù)據(jù)。EFM32用于解碼這些曼徹斯特編碼的比特數(shù)據(jù)流并繼續(xù)處理,這些有效數(shù)據(jù)通過程序?qū)亩鷻C音頻輸出接口采集到的音頻信號進行差分曼徹斯特解碼,解碼后的數(shù)據(jù)命令將指揮微控制器對環(huán)境溫濕度傳感器啟動數(shù)據(jù)采集,并將數(shù)據(jù)存儲在微控制器RAM中,然后依次對這些采集數(shù)據(jù)再進行差分曼徹斯特編碼,經(jīng)整形電路,并送到耳機音頻輸入MIC接口,發(fā)到手機端作解碼。程序由3個線程構(gòu)成,當(dāng)數(shù)據(jù)傳輸服務(wù)程序在手機上啟動后形成3個線程:(1)創(chuàng)建一個音頻交流信號左聲道發(fā)送線程,負責(zé)設(shè)置輸出最大音量,生成固定頻率音頻交流信號,并發(fā)送到音頻輸出線路上;(2)創(chuàng)建一個監(jiān)聽音頻輸入接口數(shù)據(jù)的線程,負責(zé)對從音頻輸入接口采集到的音頻信號,進行差分曼徹斯特解碼,解碼輸出數(shù)據(jù)存放在接收數(shù)據(jù)緩存,然后調(diào)用外部業(yè)務(wù)程序執(zhí)行耳機外設(shè)的測量溫濕度的命令,上傳采集到的數(shù)據(jù);(3)主線程循環(huán)等待發(fā)送數(shù)據(jù)緩存中的數(shù)據(jù)存人事件,當(dāng)外部業(yè)務(wù)程序在數(shù)據(jù)要發(fā)送時,將要發(fā)送的數(shù)據(jù)放入共享的發(fā)送數(shù)據(jù)緩存時,所述的主線程取到要發(fā)送的數(shù)據(jù),進行差分曼徹斯特編碼,再用操作系統(tǒng)的音頻控制接口函數(shù)發(fā)送到音頻輸出接口MIC通路上。
針對耳機設(shè)端的嵌入式軟件,主要運行于free RTOS操作系統(tǒng),如圖5為耳機外設(shè)端軟件流程圖,其中底層數(shù)據(jù)傳送幀格式為:Stat byte+n byte+End byte,驅(qū)動層將主要完成曼徹斯特(Manchester)數(shù)據(jù)收發(fā)編碼是關(guān)鍵,MCU將使用內(nèi)部的模擬比較器+定時器捕獲來作解碼;而數(shù)據(jù)編碼則通過MCU內(nèi)部的SPI+DMA作編碼。
如圖6所示為智能手機應(yīng)用軟件流程圖,這里我們將提供運行于Android操作系統(tǒng)下的App應(yīng)用程序節(jié)選例程,采用j ava編程,分為通過錄音把耳機外設(shè)發(fā)送上來的方波數(shù)據(jù)轉(zhuǎn)換為PCM數(shù)據(jù)。
5 結(jié)語
本方案設(shè)計并實現(xiàn)了利用耳機音頻接口傳輸,實現(xiàn)智能手機擴展監(jiān)測環(huán)境溫濕度數(shù)據(jù)顯示,從實際測試狀況來看,基本達到了應(yīng)用需求,可兼容滿足2種不同耳機接口標(biāo)準(zhǔn)的智能手機拓展應(yīng)用,由此給智能手機拓展應(yīng)用帶來深遠影響。