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