透過1-Wire技術簡化TWS耳機解決方案

作者:ADI 應用工程師Yi Xin


摘要

本設計將ADI獨有的1-Wire®技術首次運用到TWS耳機解決方案中,使用1-Wire雙向橋接器DS2488,在滿足能量傳輸和數據通訊要求的基礎上,具備低成本、低功耗、高精度、精巧尺寸、高效率等諸多優勢,是TWS耳機的理想解決方案。

簡介

TWS耳機最引人注目的特點是其無線佩戴的便捷性。相較於傳統的藍牙耳機,TWS耳機具備體積小、音質好、穩定性高等諸多優勢,還具有一定的防水性和智慧性,因而迅速吸引了消費者們的視線。目前,TWS耳機的出貨量和總體市場規模都在不斷擴大,是目前消費類電子的熱點研發領域。

系統架構

本文中介紹的1-Wire TWS耳機解決方案MAXREFDES1302包括充電盒和耳機兩個部分,系統整體硬體架構如圖1所示。

Figure 1. System architecture of 1-Wire TWS charging cradle and earbud.
圖1.1-Wire TWS充電盒和耳機系統架構。

充電盒使用3.7V 1500mAh的單節鋰電池給系統供電,採用支援USB Type-C協定的充電器MAX77651為鋰電池充電,用戶只需使用單根USB Type-C數據線便可對整機進行充電。在電源軌方面,充電盒採用MAX17224升壓模組將充電器的系統電壓升壓至5V電壓,該5V電壓透過MAX38640降壓模組產生3.3V電壓為微控制器MAX32655供電,同時,該5V電壓並透過1-Wire控制電路傳輸至耳機,作為耳機系統的充電電源。在電量監控方面,充電盒採用內建檢流電阻的電量計MAX17262對電池進行監控。該電量計將傳統的庫倫計數方法與創新的ModelGauge m5 EZ演算法相結合,無需電池特徵分析,配置彈性,使用簡便。在微控制器方面,充電盒採用具備BLE 5.2模組和內建SIMO電源模組的微處理器MAX32655,該處理器資源豐富,除了常用的通訊介面,其GPIO還可以被配置為1-Wire通訊介面,可對耳機側的DS2488進行讀寫控制,為1-Wire通訊和充電提供極大便利。充電盒的SWD介面可連接至MAX32625PICO下載器,既可為充電盒的MAX32655更新韌體,也可透過虛擬串口在電腦上顯示電池的資訊。電池的資訊也可以透過充電盒上的OLED螢幕顯示。

耳機使用3.7V 130mAh的單顆鋰電池為系統供電,使用DS2488雙向1-Wire橋接器實現耳機和充電盒的數據通訊,同時實現對源自充電盒的5V充電電源的控制。在控制器方面,耳機同樣使用MAX32655作為微控制器,該微控制器使用UART介面類比1-Wire時序對DS2488進行讀寫控制,同樣使用SWD介面連接MAX32625PICO下載器下載程式。在電源軌方面,耳機採用的充電器MAX77734自附的一路3.3V的LDO輸出為微控制器MAX32655供電,同時,該3.3V和MAX32655內建SIMO模組產生的1.8V和1.2V電源一起,組成音訊轉碼器MAX98050的電源軌。在電量監控方面,耳機同樣採用電量計MAX17262對電池進行監控。

圖2為1-Wire TWS充電盒和耳機的實物圖。充電盒的實際尺寸為10.20cm × 5.80cm,耳機的實際尺寸為10.20cm × 6.50cm,由於本設計為輔助客戶進行設計、測試和研究的樣機,在精簡測試點的情況下,現實產品的尺寸可以大幅壓縮,以滿足TWS耳機實際應用的尺寸要求。

Figure 2. 1-Wire TWS charging cradle and earbud prototype PCBA photo.
圖2.1-Wire TWS充電盒和耳機PCBA實物圖。

1-Wire數據通訊和能量傳輸

在TWS耳機應用中,用可靠便捷的方法實現充電盒與耳機之間的數據通訊和能量傳輸非常重要。目前市場上常見的TWS耳機通常使用3個或更多的觸點與充電盒連接,以實現數據通訊和能量傳輸的功能。但是,過多的觸點通常會導致系統成本的增加,這對低成本的可穿戴產品設計極為不利。另外,更多的觸點通常需要更大的空間,這和TWS耳機的小尺寸要求相互違背。此外,更多的觸點往往會增加故障發生的可能性。本設計採用為TWS方案設計的ADI專有的1-Wire雙向橋接器DS2488實現耳機與充電盒之間的能量傳輸和數據通訊。DS2488支援1-Wire匯流排協定,可用單導線實現通訊和充電的功能。由於系統需要額外一個觸點用於將耳機和充電盒的地相連,整體解決方案僅需要使用兩個觸點,可大幅提升系統可靠性,降低尺寸和成本。本設計採用的1-Wire通訊充電電路框圖如圖3所示。

Figure 3. Block diagram of 1-Wire communication and charging.
圖3.1-Wire通訊充電電路框圖。

DS2488工作原理

如圖3所示,DS2488為1-Wire雙向橋接器,具備IOA和IOB兩個1-Wire通訊接腳供兩側的微控制器控制,其中IOA由充電盒的微控制器控制,IOB由耳機的微控制器控制。IOA支援最高可達5.5V的輸入電壓,支援在1-Wire匯流排(IOA)上傳輸不同的通訊和充電位準。作為1-Wire元件,每個DS2488元件並具備唯一的64位元ROM ID,供用戶進行識別、認證。DS2488內部還具備8位元組的緩衝器,可供微控制器進行讀寫,以即時更新儲存兩側的電池資訊。在本設計中,緩衝器儲存的資訊如表1所示。

表1.DS2488緩衝器儲存的資訊
索引 訊息
Bit 7 保留
Bit 6 充電盒電池電量CAP(千位和百位)(mAh)
Bit 5 充電盒電池電量CAP(十位和個位)(mAh)
Bit 4 充電盒電池狀態SOC (%)
Bit 3 右側耳機電池電量CAP (mAh)
Bit 2 右側耳機電池狀態SOC (%)
Bit 1 左側耳機電池電量CAP (mAh)
Bit 0 左側耳機電池狀態SOC (%)

DS2488的TOKEN接腳指示DS2488的控制狀態:TOKEN為低指示充電盒的微控制器取得DS2488的控制許可權;TOKEN為高指示耳機側的微控制器取得DS2488的控制許可權。DS2488的CD/PIOC接腳控制充電盒是否為耳機充電:當1-Wire匯流排(IOA)上的電壓小於4V時,CD/PIOC為高阻態,電晶體關斷,充電停止;當1-Wire匯流排(IOA)上的電壓大於4V時,CD/PIOC為低,電晶體導通,1-Wire匯流排上(IOA)的電壓直接加到耳機的充電器上,充電開始。耳機充電和通訊的選擇邏輯主要由一個連接至5V的MOSFET實現,該MOSFET的通斷由充電盒的微控制器控制,充電盒與耳機的使用主要分為以下幾種情況。

耳機在充電盒中且充電盒蓋開啟

此時,充電盒的微控制器將MOSFET關斷,並取得DS2488的控制許可權,TOKEN為低,CD/PIOC為高阻態。充電盒透過IOA對DS2488的內部8位元組的緩衝器進行讀寫,讀取耳機電池的位元組資訊,並更新寫入充電盒電池的位元組資訊。此時充電停止,進行通訊。

耳機在充電盒中且充電盒蓋關閉

此時,充電盒的微控制器將MOSFET開啟,5V直接透過1-Wire匯流排(IOA)傳輸至耳機,此時TOKEN為高,CD/PIOC為低。充電盒的5V電壓被傳輸至耳機側,為耳機的鋰電池進行充電。同時,耳機的微控制器取得DS2488的控制許可權,透過IOB對DS2488的內部8位元組的緩衝器進行讀寫,更新寫入耳機電池的位元組資訊,並讀取充電盒電池的位元組資訊。此時通訊停止,進行充電。

耳機不在充電盒中或充電盒電池耗盡

此時,1-Wire匯流排(IOA)呈現高阻態,此時TOKEN為高,CD/PIOC為高阻態。此時,耳機的微控制器取得DS2488的控制許可權,通過IOB對DS2488的內部8位元組的緩衝器進行讀寫,並更新寫入耳機電池的位元組資訊。

DS2488 1-Wire數據通訊

如上文所述,本設計使用DS2488作為充電盒和耳機兩側的微控制器的橋接器,實現兩側微控制器之間的數據通訊。DS2488支援典型的1-Wire通訊協定,協定的時序分為重定與回應時序和讀寫時序,讀寫時序又分為寫0時隙、寫1時隙和讀時隙,如圖4和圖5所示。各時序高低位準階段的時間範圍的詳細數據可參考DS2488的數據手冊。

Figure 4. DS2488 1-Wire reset and presence timing.
圖4. DS2488 1-Wire復位和回應時序。
Figure 5. DS2488 1-Wire read/write timing.
圖5.DS2488 1-Wire讀寫時序。

所有1-Wire元件內部均是由狀態機組成的,其狀態轉移圖如圖6所示。如圖4所示,當微控制器向DS2488元件發送重定訊號後,1-Wire匯流排將被拉低48μs到80μs,隨後匯流排被上拉電阻拉高釋放。如果匯流排上連接有DS2488,DS2488將響應該重定訊號,在匯流排被釋放48μs之後再次將1-Wire匯流排拉低6μs到10μs。此時微控制器可以檢測匯流排上的位準變化,即透過檢測到匯流排是否被再次拉低來判斷是否有DS2488連接至1-Wire匯流排。

Figure 6. State transition diagram of 1-Wire devices.
圖6.1-Wire元件的狀態轉移圖。

當DS2488回應重定訊號後,微控制器將發送ROM功能命令(ROM Function Command)。所有1-Wire元件的ROM功能命令都相同,一些常用的ROM功能命令如表2所示。由於TWS耳機設計中,充電盒內通常需要容納兩個耳機,所以1-Wire匯流排(IOA)上通常會掛接兩個DS2488。本設計首先採用Read ROM命令(0x33)和Match ROM命令(0x55)分別讀取1-Wire匯流排(IOA)上兩個DS2488的ROM ID和匹配特定ROM ID的DS2488元件,實現左右耳機的身份識別和選擇。

表2.常用的1-Wire ROM功能命令
ROM功能命令 代碼 描述
Search ROM 0xF0 讀取匯流排上所有元件的ROM ID
Read ROM 0x33 讀取匯流排上唯一元件的ROM ID
Match ROM 0x55 選擇匯流排上特定ROM ID的元件
Skip ROM 0xCC 選擇匯流排上的唯一元件

當發送ROM功能命令後,微控制器將發送裝置功能命令(Device Function Command)對元件進行進一步的操作。不同1-Wire元件的裝置功能命令各不相同,對DS2488而言,一些常用的裝置功能命令如表3所示。本設計採用Write Buffer命令(0x33)和Read Buffer命令(0x44)對DS2488內部的8位元組緩衝器進行讀寫,實現充電盒和耳機電池資訊的交互。

表3.常用的DS2488裝置功能命令
裝置功能命令 代碼 描述
Write Configuration 0x11 寫入DS2488配置
Read Configuration 0x22 讀取DS2488配置
Write Buffer 0x33 寫入DS2488緩衝器
Read Buffer 0x44 讀取DS2488緩衝器
Read Status 0x55 讀取DS2488狀態

充電盒的微控制器MAX32655的兩組GPIO(P0.6與P0.7,P0.18與P0.19)可被配置為1-Wire模組的OWM_IO接腳和OWM_PE接腳,分別實現與DS2488之間的通訊和5V的傳輸。本設計將MAX32655的OWM_IO接腳連接至DS2488的IOA接腳,實現充電盒和DS2488之間的1-Wire通訊功能。

與此不同的是,考慮到市面上部分微控制器並不具備1-Wire介面,為使用者設計方便起見,耳機的微控制器MAX32655採用UART介面類比1-Wire時序,透過IOB對DS2488進行通訊,如圖3所示。微控制器透過配置特定的UART串列傳輸速率和發送特定的碼形即可實現這一功能。以圖4所示的復位與回應時序為例,當串列傳輸速率為115200時,UART收發每一位元數據的時間長度約為8.68μs。因此,1個位元組(8位元)的數據的時間長度約為69.44μs,而0xE0(二進位:11100000)(UART先發送低位元數據)則剛好對應1-Wire重定訊號的時序。此時,若微控制器透過TX發送0xE0(重定訊號),1-Wire匯流排(IOB)上的DS2488將響應此重定訊號並將匯流排拉低6μs至10μs,此時RX上收到的訊號應為0xC0(二進位:11000000)或0x80(二進位:10000000)。微控制器透過收發不同的碼形,並將接收和發送的訊號相互比較,即可實現透過UART模擬1-Wire時序的功能。

DS2488 1-Wire能量傳輸

如圖3所示,充電盒的微控制器MAX32655的OWM_PE接腳控制MOSFET的通斷,當MOSFET關斷時,系統進行1-Wire通訊;當MOSFET導通時,5V電壓透過1-Wire匯流排(IOA)傳輸至耳機側,此時DS2488檢測到5V,CD/PIOC接腳變為低位準使電晶體導通,將5V電壓傳至充電器給耳機的鋰電池充電。

電池管理與電源配置

充電盒的電池管理和電源配置系統由USB Type-C充電器MAX77751、電量計MAX17262、升壓DC/DC轉換器MAX17224和降壓DC/DC轉換器MAX38640組成。通常,單節鋰電池的充電終止電壓為4.2V,因此選擇MAX77751CEFG+作為具體的充電器型號。該充電器的充電電流由連接至IFAST接腳和ITOPOFF接腳的電阻配置,考慮到實際需要,選擇500mA的快充電流和100mA的終止電流,對應的電阻分別為2.4kΩ和8.06kΩ。電量計MAX17262具備ModelGauge m5 EZ演算法,在配置電池容量、終止電流、充電電壓門限等電池參數後即可自動對電池進行測量,無需額外的電池建模。升壓DC/DC轉換器MAX17224和降壓DC/DC轉換器MAX38640的輸出電壓均由連接至SEL接腳和RSEL接腳的電阻配置,這裡選擇0Ω和56.2kΩ的電阻以分別輸出5V和3.3V。

耳機的電池管理和電源配置系統由充電器MAX77734和電量計MAX17262組成,微控制器MAX32655的SIMO輸出也同時為系統提供1.8V和1.2V的電源軌。由於只需要一路3.3V的LDO輸出,因此選擇充電器的具體型號為MAX77734GENP+。該充電器還可透過I2C配置成出廠運輸模式、關斷模式和待機模式,從而延長電池壽命。微控制器MAX32655提供四路SIMO輸出,每路均可透過暫存器配置輸出不同的電壓。

韌體設計

充電盒的韌體流程圖如圖7所示。上電後,充電盒的微控制器將初始化GPIO,並配置電量計MAX17262和OLED模組。然後,微控制器對充電盒倉蓋的狀態進行輪詢。如果充電盒蓋關閉,微控制器將禁用 1-Wire 模組,並將 5V 的充電電壓加到1-Wire匯流排(IOA)上為耳機充電。在這種狀態下,如果微處理器檢測到充電盒電池的剩餘電量小於5%,則充電會停止。如果充電盒蓋打開,則微控制器將禁用 5V 充電電壓,並啟用 1-Wire 模組讀寫 DS2488 的緩衝器。充電盒和耳機的電池資訊透過OLED模組或者虛擬串口顯示。

Figure 7. Flowchart of cradle firmware.
圖7.充電盒韌體流程圖。

耳機的韌體流程圖如圖8所示。上電後,耳機的微控制器將初始化GPIO,配置電量計MAX17262和充電器MAX77734。然後,微控制器輪詢充電器的輸入電壓是否有效。如果輸入電壓有效且大於4V,則微控制器啟用充電器,開始充電。此時,微控制器輪詢TOKEN的狀態,如果TOKEN為低,則充電盒擁有DS2488的讀寫許可權。如果 TOKEN 為高,則耳機擁有DS2488的讀寫許可權,此時微控制器將耳機的電池資訊寫入 DS2488 的緩衝器,供充電盒讀取。

Figure 8. Flowchart of earbud firmware.
圖8.耳機韌體流程圖。

測試結果

充電盒和耳機的電源軌的設計要求和測試結果如表4和表5所示。可見,本設計能夠滿足系統的設計要求。

表4. 充電盒電源軌的設計要求與測試結果
參數 符號 測量值 設計要求
電池電壓 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
表5.耳機電源軌的設計要求與測試結果
參數 符號 測量值 設計要求
電池電壓 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

充電盒蓋關閉時和充電盒蓋開啟時的測試結果如圖9和圖10所示。可見,本設計能夠即時顯示充電盒和耳機電池的資訊,並讀取顯示耳機上DS2488的ROM ID。

Figure 9. Test result for closed cradle.
圖9.充電盒倉蓋關閉時的測試結果。
Figure 10. Test result for open cradle.
圖10.充電盒倉蓋打開時的測試結果。

結論

對於工程師而言,在易用性、低成本、可攜性和穩定性之間取得平衡,從而對TWS耳機進行原型設計通常是一項巨大的挑戰。DS2488 1-Wire雙向橋接器為以更小的空間和更低的成本實現低功耗、高穩定性、高性能的TWS耳機解決方案鋪路。MAXREFDES1302以DS2488為基礎,包括硬體和韌體設計,僅透過兩個接觸點即可進行電力傳輸和數據通訊,是一款易用的TWS耳機原型。

參考電路

基於MAXIM PLC技術的TWS解決方案。方良、賈寧,電子產品世界,2021年5月。

MAX32655使用者指南。Maxim Integrated,2021年3月。