運(yùn)用1-Wire技術(shù)簡(jiǎn)化TWS耳機(jī)解決方案
TWS耳機(jī)最引人注目的特點(diǎn)在于無(wú)線佩戴的便捷性。相較于傳統(tǒng)的藍(lán)牙耳機(jī),TWS耳機(jī)具備體積小、音質(zhì)好、穩(wěn)定性高等諸多優(yōu)勢(shì),還具有一定的防水性和智慧性,因而迅速吸引了消費(fèi)者們的視線。目前,TWS耳機(jī)的出貨量和整體市場(chǎng)規(guī)模都在不斷擴(kuò)大,是目前消費(fèi)類(lèi)電子的熱點(diǎn)研發(fā)領(lǐng)域。
系統(tǒng)架構(gòu)
本文中介紹的1-Wire TWS耳機(jī)解決方案MAXREFDES1302包括充電盒和耳機(jī)兩個(gè)部分,系統(tǒng)整體硬件架構(gòu),如圖一所示。
圖一 : 1-Wire TWS充電盒和耳機(jī)系統(tǒng)架構(gòu)
充電盒使用3.7V 1500mAh的單節(jié)鋰電池給系統(tǒng)供電,采用支持USB Type-C協(xié)議的充電器MAX77651為鋰電池充電,用戶只需使用單根USB Type-C數(shù)據(jù)線便可對(duì)整機(jī)進(jìn)行充電。
在電源軌方面,充電盒采用MAX17224升壓模塊將充電器的系統(tǒng)電壓升壓至5V電壓,該5V電壓透過(guò)MAX38640降壓模塊產(chǎn)生3.3V電壓為微控制器MAX32655供電,同時(shí),該5V電壓并透過(guò)1-Wire控制電路傳輸至耳機(jī),作為耳機(jī)系統(tǒng)的充電電源。在電量監(jiān)控方面,充電盒采用內(nèi)建檢流電阻的電量計(jì)MAX17262對(duì)電池進(jìn)行監(jiān)控。該電量計(jì)將傳統(tǒng)的庫(kù)倫計(jì)數(shù)方法與創(chuàng)新的ModelGauge m5 EZ算法相結(jié)合,無(wú)需電池特征分析,配置彈性,使用簡(jiǎn)便。
在微控制器方面,充電盒采用具備BLE 5.2模塊和內(nèi)建SIMO電源模塊的微處理器MAX32655,該處理器資源豐富,除了常用的通訊接口,其GPIO還可以被配置為1-Wire通訊接口,可對(duì)耳機(jī)側(cè)的DS2488進(jìn)行讀寫(xiě)控制,為1-Wire通訊和充電提供極大便利。充電盒的SWD接口可連接至MAX32625PICO下載器,既可為充電盒的MAX32655更新韌體,也可透過(guò)虛擬串行端口在計(jì)算機(jī)上顯示電池的信息。電池的信息也可以透過(guò)充電盒上的OLED屏幕顯示。
耳機(jī)使用3.7V 130mAh的單顆鋰電池為系統(tǒng)供電,使用DS2488雙向1-Wire網(wǎng)橋?qū)崿F(xiàn)耳機(jī)和充電盒的數(shù)據(jù)通訊,同時(shí)實(shí)現(xiàn)對(duì)源自充電盒的5V充電電源的控制。在控制器方面,耳機(jī)同樣使用MAX32655作為微控制器,該微控制器使用UART接口模擬1-Wire時(shí)序?qū)S2488進(jìn)行讀寫(xiě)控制,同樣使用SWD界面連接MAX32625PICO下載器下載程序。在電源軌方面,耳機(jī)采用的充電器MAX77734自附的一路3.3V的LDO輸出為微控制器MAX32655供電,同時(shí),該3.3V和MAX32655內(nèi)建SIMO模塊產(chǎn)生的1.8V和1.2V電源一起,組成音訊編解碼器MAX98050的電源軌。在電量監(jiān)控方面,耳機(jī)同樣采用電量計(jì)MAX17262對(duì)電池進(jìn)行監(jiān)控。
圖二為1-Wire TWS充電盒和耳機(jī)的實(shí)物圖。充電盒的實(shí)際尺寸為10.20cm × 5.80cm,耳機(jī)的實(shí)際尺寸為10.20cm × 6.50cm,由于本設(shè)計(jì)為輔助客戶進(jìn)行設(shè)計(jì)、測(cè)試和研究的樣機(jī),在精簡(jiǎn)測(cè)試點(diǎn)的情況下,現(xiàn)實(shí)產(chǎn)品的尺寸可以大幅壓縮,以滿足TWS耳機(jī)實(shí)際應(yīng)用的尺寸要求。
圖二 : 1-Wire TWS充電盒和耳機(jī)PCBA實(shí)物圖
1-Wire數(shù)據(jù)通訊和能量傳輸
在TWS耳機(jī)應(yīng)用中,用可靠便捷的方法實(shí)現(xiàn)充電盒與耳機(jī)之間的數(shù)據(jù)通訊和能量傳輸非常重要。目前市場(chǎng)上常見(jiàn)的TWS耳機(jī)通常使用3個(gè)或更多的觸點(diǎn)與充電盒連接,以實(shí)現(xiàn)數(shù)據(jù)通訊和能量傳輸?shù)墓δ?。但是,過(guò)多的觸點(diǎn)通常會(huì)導(dǎo)致系統(tǒng)成本的增加,這對(duì)低成本的可穿戴產(chǎn)品設(shè)計(jì)極為不利。由于更多的觸點(diǎn)通常需要更大的空間,這和TWS耳機(jī)的小尺寸要求相互違背。此外,更多的觸點(diǎn)往往會(huì)增加故障發(fā)生的可能性。
本設(shè)計(jì)采用為T(mén)WS方案設(shè)計(jì)的ADI專(zhuān)有的1-Wire雙向網(wǎng)橋DS2488,實(shí)現(xiàn)耳機(jī)與充電盒之間的能量傳輸和數(shù)據(jù)通訊。DS2488支持1-Wire總線協(xié)議,可用單導(dǎo)線實(shí)現(xiàn)通訊和充電的功能。由于系統(tǒng)需要額外一個(gè)觸點(diǎn)用于將耳機(jī)和充電盒的地相連,整體解決方案僅需要使用兩個(gè)觸點(diǎn),可大幅提升系統(tǒng)可靠性,降低尺寸和成本。本設(shè)計(jì)采用的1-Wire通訊充電電路框圖,如圖3所示。
圖三 : 1-Wire通訊充電電路框圖
DS2488工作原理
如圖三所示,DS2488為1-Wire雙向網(wǎng)橋,具備IOA和IOB兩個(gè)1-Wire通訊接腳供兩側(cè)的微控制器控制,其中IOA由充電盒的微控制器控制,IOB由耳機(jī)的微控制器控制。IOA支持最高可達(dá)5.5V的輸入電壓,支持在1-Wire總線(IOA)上傳輸不同的通訊和充電位準(zhǔn)。作為1-Wire組件,每個(gè)DS2488組件并具備唯一的64位ROM ID,供用戶進(jìn)行識(shí)別、認(rèn)證。DS2488內(nèi)部還具備8字節(jié)的緩沖器,可供微控制器進(jìn)行讀寫(xiě),以實(shí)時(shí)更新儲(chǔ)存兩側(cè)的電池信息。在本設(shè)計(jì)中,緩沖器儲(chǔ)存的信息如表一所示。
表一DS2488緩沖器儲(chǔ)存的信息
索 引 | 訊 息 |
Bit 7 | 保留 |
Bit 6 | 充電盒電池電量CAP(千位和百位)(mAh) |
Bit 5 | 充電盒電池電量CAP(十位和個(gè)位)(mAh) |
Bit 4 | 充電盒電池狀態(tài)SOC (%) |
Bit 3 | 右側(cè)耳機(jī)電池電量CAP (mAh) |
Bit 2 | 右側(cè)耳機(jī)電池狀態(tài)SOC (%) |
Bit 1 | 左側(cè)耳機(jī)電池電量CAP (mAh) |
Bit 0 | 左側(cè)耳機(jī)電池狀態(tài)SOC (%) |
DS2488的TOKEN接腳指示DS2488的控制狀態(tài):TOKEN為低指示充電盒的微控制器取得DS2488的控制權(quán)限;TOKEN為高指示耳機(jī)側(cè)的微控制器取得DS2488的控制權(quán)限。DS2488的CD/PIOC接腳控制充電盒是否為耳機(jī)充電:當(dāng)1-Wire總線(IOA)上的電壓小于4V時(shí),CD/PIOC為高阻態(tài),晶體管關(guān)斷,充電停止;當(dāng)1-Wire總線(IOA)上的電壓大于4V時(shí),CD/PIOC為低,晶體管導(dǎo)通,1-Wire總線上(IOA)的電壓直接加到耳機(jī)的充電器上,充電開(kāi)始。耳機(jī)充電和通訊的選擇邏輯主要由一個(gè)連接至5V的MOSFET實(shí)現(xiàn),該MOSFET的通斷由充電盒的微控制器控制,充電盒與耳機(jī)的使用主要分為以下幾種情況。
耳機(jī)在充電盒中且充電盒蓋開(kāi)啟
此時(shí),充電盒的微控制器將MOSFET關(guān)斷,并取得DS2488的控制權(quán)限,TOKEN為低,CD/PIOC為高阻態(tài)。充電盒透過(guò)IOA對(duì)DS2488的內(nèi)部8字節(jié)的緩沖器進(jìn)行讀寫(xiě),讀取耳機(jī)電池的字節(jié)信息,并更新寫(xiě)入充電盒電池的字節(jié)信息。此時(shí)充電停止,進(jìn)行通訊。
耳機(jī)在充電盒中且充電盒蓋關(guān)閉
此時(shí),充電盒的微控制器將MOSFET開(kāi)啟,5V直接透過(guò)1-Wire總線(IOA)傳輸至耳機(jī),此時(shí)TOKEN為高,CD/PIOC為低。充電盒的5V電壓被傳輸至耳機(jī)側(cè),為耳機(jī)的鋰電池進(jìn)行充電。同時(shí),耳機(jī)的微控制器取得DS2488的控制權(quán)限,透過(guò)IOB對(duì)DS2488的內(nèi)部8字節(jié)的緩沖器進(jìn)行讀寫(xiě),更新寫(xiě)入耳機(jī)電池的字節(jié)信息,并讀取充電盒電池的字節(jié)信息。此時(shí)通訊停止,進(jìn)行充電。
耳機(jī)不在充電盒中或充電盒電池耗盡
此時(shí),1-Wire總線(IOA)呈現(xiàn)高阻態(tài),此時(shí)TOKEN為高,CD/PIOC為高阻態(tài)。此時(shí),耳機(jī)的微控制器取得DS2488的控制權(quán)限,通過(guò)IOB對(duì)DS2488的內(nèi)部8字節(jié)的緩沖器進(jìn)行讀寫(xiě),并更新寫(xiě)入耳機(jī)電池的字節(jié)信息。
DS2488 1-Wire數(shù)據(jù)通訊
如上文所述,本設(shè)計(jì)使用DS2488作為充電盒和耳機(jī)兩側(cè)的微控制器的網(wǎng)橋,實(shí)現(xiàn)兩側(cè)微控制器之間的數(shù)據(jù)通訊。DS2488支持典型的1-Wire通訊協(xié)議,協(xié)議的時(shí)序分為復(fù)位與回應(yīng)時(shí)序和讀寫(xiě)時(shí)序,讀寫(xiě)時(shí)序又分為寫(xiě)0時(shí)隙、寫(xiě)1時(shí)隙和讀時(shí)隙,如圖四和圖五所示。各時(shí)序高低位準(zhǔn)階段的時(shí)間范圍的詳細(xì)數(shù)據(jù)可參考DS2488的數(shù)據(jù)手冊(cè)。
圖四 : DS2488 1-Wire復(fù)位和回應(yīng)時(shí)序
圖五 : DS2488 1-Wire讀寫(xiě)時(shí)序
所有1-Wire組件內(nèi)部均是由狀態(tài)機(jī)組成的,其狀態(tài)轉(zhuǎn)移圖如圖六所示。如圖四所示,當(dāng)微控制器向DS2488組件發(fā)送復(fù)位訊號(hào)后,1-Wire總線將被拉低48μs到80μs,隨后總線被上拉電阻拉高釋放。如果總線上連接有DS2488,DS2488將響應(yīng)該復(fù)位訊號(hào),在總線被釋放48μs之后再次將1-Wire總線拉低6μs到10μs。此時(shí)微控制器可以檢測(cè)總線上的位準(zhǔn)變化,即透過(guò)檢測(cè)到總線是否被再次拉低來(lái)判斷是否有DS2488連接至1-Wire總線。
圖六 : 1-Wire組件的狀態(tài)轉(zhuǎn)移圖
當(dāng)DS2488響應(yīng)復(fù)位訊號(hào)后,微控制器將發(fā)送ROM功能命令(ROM Function Command)。所有1-Wire組件的ROM功能命令都相同,一些常用的ROM功能命令如表二所示。
由于TWS耳機(jī)設(shè)計(jì)中,充電盒內(nèi)通常需要容納兩個(gè)耳機(jī),所以1-Wire總線(IOA)上通常會(huì)掛接兩個(gè)DS2488。本設(shè)計(jì)首先采用Read ROM命令(0x33)和Match ROM命令(0x55)分別讀取1-Wire總線(IOA)上兩個(gè)DS2488的ROM ID和匹配特定ROM ID的DS2488組件,實(shí)現(xiàn)左右耳機(jī)的身份識(shí)別和選擇。
表二 常用的1-Wire ROM功能命令
ROM 功能命令 | 代碼 | 描述 |
Search ROM | 0xF0 | 讀取總線上所有組件的ROM ID |
Read ROM | 0x33 | 讀取總線上唯一組件的ROM ID |
Match ROM | 0x55 | 選擇總線上特定ROM ID的組件 |
Skip ROM | 0xCC | 選擇總線上的唯一組件 |
當(dāng)發(fā)送ROM功能命令后,微控制器將發(fā)送裝置功能命令(Device Function Command)對(duì)組件進(jìn)行進(jìn)一步的操作。不同1-Wire組件的裝置功能命令各不相同,對(duì)DS2488而言,一些常用的裝置功能命令如表三所示。本設(shè)計(jì)采用Write Buffer命令(0x33)和Read Buffer命令(0x44)對(duì)DS2488內(nèi)部的8字節(jié)緩沖器進(jìn)行讀寫(xiě),實(shí)現(xiàn)充電盒和耳機(jī)電池信息的交互。
表三 常用的DS2488裝置功能命令
裝置功能命令 | 代碼 | 描述 |
Write Configuration | 0x11 | 寫(xiě)入DS2488配置 |
Read Configuration | 0x22 | 讀取DS2488配置 |
Write Buffer | 0x33 | 寫(xiě)入DS2488緩沖器 |
Read Buffer | 0x44 | 讀取DS2488緩沖器 |
Read Status | 0x55 | 讀取DS2488狀態(tài) |
充電盒的微控制器MAX32655的兩組GPIO(P0.6與P0.7,P0.18與P0.19)可被配置為1-Wire模塊的OWM_IO接腳和OWM_PE接腳,分別實(shí)現(xiàn)與DS2488之間的通訊和5V的傳輸。本設(shè)計(jì)將MAX32655的OWM_IO接腳連接至DS2488的IOA接腳,實(shí)現(xiàn)充電盒和DS2488之間的1-Wire通訊功能。
與此不同的是,考慮到市面上部分微控制器并不具備1-Wire接口,為用戶設(shè)計(jì)方便起見(jiàn),耳機(jī)的微控制器MAX32655采用UART接口模擬1-Wire時(shí)序,透過(guò)IOB對(duì)DS2488進(jìn)行通訊,如圖三所示。微控制器透過(guò)配置特定的UART波特率和發(fā)送特定的碼形即可實(shí)現(xiàn)這一功能。
以圖四所示的復(fù)位與回應(yīng)時(shí)序?yàn)槔?,?dāng)波特率為115200時(shí),UART收發(fā)每一位數(shù)據(jù)的時(shí)間長(zhǎng)度約為8.68μs。因此,1個(gè)字節(jié)(8位)的數(shù)據(jù)的時(shí)間長(zhǎng)度約為69.44μs,而0xE0(二進(jìn)制:11100000)(UART先發(fā)送低位數(shù)據(jù))則剛好對(duì)應(yīng)1-Wire復(fù)位訊號(hào)的時(shí)序。此時(shí),若微控制器透過(guò)TX發(fā)送0xE0(復(fù)位訊號(hào)),1-Wire總線(IOB)上的DS2488將響應(yīng)此復(fù)位訊號(hào)并將總線拉低6μs至10μs,此時(shí)RX上收到的訊號(hào)應(yīng)為0xC0(二進(jìn)制:11000000)或0x80(二進(jìn)制:10000000)。微控制器透過(guò)收發(fā)不同的碼形,并將接收和發(fā)送的訊號(hào)相互比較,即可實(shí)現(xiàn)透過(guò)UART模擬1-Wire時(shí)序的功能。
DS2488 1-Wire能量傳輸
如圖三所示,充電盒的微控制器MAX32655的OWM_PE接腳控制MOSFET的通斷,當(dāng)MOSFET關(guān)斷時(shí),系統(tǒng)進(jìn)行1-Wire通訊;當(dāng)MOSFET導(dǎo)通時(shí),5V電壓透過(guò)1-Wire總線(IOA)傳輸至耳機(jī)側(cè),此時(shí)DS2488檢測(cè)到5V,CD/PIOC接腳變?yōu)榈臀粶?zhǔn)使晶體管導(dǎo)通,將5V電壓傳至充電器給耳機(jī)的鋰電池充電。
電池管理與電源方案
充電盒的電池管理和電源方案系統(tǒng)由USB Type-C充電器MAX77751、電量計(jì)MAX17262、升壓DC/DC轉(zhuǎn)換器MAX17224和降壓DC/DC轉(zhuǎn)換器MAX38640組成。通常,單節(jié)鋰電池的充電終止電壓為4.2V,因此選擇MAX77751CEFG+作為具體的充電器型號(hào)。該充電器的充電電流由連接至IFAST接腳和ITOPOFF接腳的電阻配置,考慮到實(shí)際需要,選擇500mA的快充電流和100mA的終止電流,對(duì)應(yīng)的電阻分別為2.4kΩ和8.06kΩ。
電量計(jì)MAX17262具備ModelGauge m5 EZ算法,在配置電池容量、終止電流、充電電壓門(mén)限等電池參數(shù)后即可自動(dòng)對(duì)電池進(jìn)行測(cè)量,無(wú)需額外的電池建模。升壓DC/DC轉(zhuǎn)換器MAX17224和降壓DC/DC轉(zhuǎn)換器MAX38640的輸出電壓均由連接至SEL接腳和RSEL接腳的電阻配置,這里選擇0Ω和56.2kΩ的電阻以分別輸出5V和3.3V。
耳機(jī)的電池管理和電源方案系統(tǒng)由充電器MAX77734和電量計(jì)MAX17262組成,微控制器MAX32655的SIMO輸出也同時(shí)為系統(tǒng)提供1.8V和1.2V的電源軌。由于只需要一路3.3V的LDO輸出,因此選擇充電器的具體型號(hào)為MAX77734GENP+。該充電器還可透過(guò)I2C配置成出廠運(yùn)輸模式、關(guān)斷模式和待機(jī)模式,從而延長(zhǎng)電池壽命。微控制器MAX32655提供四路SIMO輸出,每路均可透過(guò)緩存器配置輸出不同的電壓。
韌體設(shè)計(jì)
充電盒的韌體流程圖如圖七所示。上電后,充電盒的微控制器將初始化GPIO,并配置電量計(jì)MAX17262和OLED模塊。然后,微控制器對(duì)充電盒倉(cāng)蓋的狀態(tài)進(jìn)行輪詢。如果充電盒蓋關(guān)閉,微控制器將禁用 1-Wire 模塊,并將 5V 的充電電壓加到1-Wire總線(IOA)上為耳機(jī)充電。
在這種狀態(tài)下,如果微處理器檢測(cè)到充電盒電池的剩余電量小于5%,則充電會(huì)停止。如果充電盒蓋打開(kāi),則微控制器將禁用 5V 充電電壓,并啟用 1-Wire 模塊讀寫(xiě) DS2488 的緩沖器。充電盒和耳機(jī)的電池信息透過(guò)OLED模塊或者虛擬串行端口顯示。
圖七 : 充電盒韌體流程圖
耳機(jī)的韌體流程圖如圖八所示。上電后,耳機(jī)的微控制器將初始化GPIO,配置電量計(jì)MAX17262和充電器MAX77734。然后,微控制器輪詢充電器的輸入電壓是否有效。如果輸入電壓有效且大于4V,則微控制器啟用充電器,開(kāi)始充電。此時(shí),微控制器輪詢TOKEN的狀態(tài),如果TOKEN為低,則充電盒擁有DS2488的讀寫(xiě)權(quán)限。如果 TOKEN 為高,則耳機(jī)擁有DS2488的讀寫(xiě)權(quán)限,此時(shí)微控制器將耳機(jī)的電池信息寫(xiě)入 DS2488 的緩沖器,供充電盒讀取。
圖八 : 耳機(jī)韌體流程圖
測(cè)試結(jié)果
充電盒和耳機(jī)的電源軌的設(shè)計(jì)要求和測(cè)試結(jié)果如表四和表五所示。可見(jiàn)本設(shè)計(jì)能夠滿足系統(tǒng)的設(shè)計(jì)要求。
表四 充電盒電源軌的設(shè)計(jì)要求與測(cè)試結(jié)果
參數(shù) | 符號(hào) | 測(cè)量值 | 設(shè)計(jì)要求 |
電池電壓 | BAT | 4.08 V | 3.1 V 至 4.6 V |
USB輸入電壓 | CHGIN | 4.94 V | 4.8 V 至 5.2 V |
升壓模塊5V輸出 | 5 V | 5.16 V | 4.8 V 至 5.2 V |
降壓模塊3.3V輸出 | 3V3 | 3.30 V | 3.2 V 至 3.4 V |
表五 耳機(jī)電源軌的設(shè)計(jì)要求與測(cè)試結(jié)果
參數(shù) | 符號(hào) | 測(cè)量值 | 設(shè)計(jì)要求 |
電池電壓 | VBAT | 3.71 V | 3.3 V 至 4.6 V |
充電器3.3V輸出 | VCC_3.3 | 3.32 V | 3.2 V 至 3.4 V |
微控制器1.8V輸出 | VCC_1.8 | 1.82 V | 1.7 V 至 1.9 V |
微控制器1.2V輸出 | VCC_1.2 | 1.12 V | 1.1 V 至 1.3 V |
充電盒蓋關(guān)閉時(shí)和充電盒蓋開(kāi)啟時(shí)的測(cè)試結(jié)果如圖九和圖十所示??梢?jiàn)本設(shè)計(jì)能夠?qū)崟r(shí)顯示充電盒和耳機(jī)電池的信息,并讀取顯示耳機(jī)上DS2488的ROM ID。
圖十 : 充電盒倉(cāng)蓋打開(kāi)時(shí)的測(cè)試結(jié)果
結(jié)論
對(duì)于工程師而言,在易用性、低成本、可移植性和穩(wěn)定性之間取得平衡,從而對(duì)TWS耳機(jī)進(jìn)行原型設(shè)計(jì)通常是一項(xiàng)巨大的挑戰(zhàn)。DS2488 1-Wire雙向網(wǎng)橋?yàn)橐愿〉目臻g和更低的成本實(shí)現(xiàn)低功耗、高穩(wěn)定性、高性能的TWS耳機(jī)解決方案鋪路。MAXREFDES1302以DS2488為基礎(chǔ),包括硬件和韌體設(shè)計(jì),僅透過(guò)兩個(gè)接觸點(diǎn)即可進(jìn)行電力傳輸和數(shù)據(jù)通訊,是一款易用的TWS耳機(jī)原型。
(本文作者Yi Xin為ADI 應(yīng)用工程師)
參考電路
[1] 方良、賈寧,基于MAXIM PLC技術(shù)的TWS解決方案。電子產(chǎn)品世界,2021年5月。
[2] MAX32655用戶指南。Maxim Integrated,2021年3月。
評(píng)論