運用1-Wire技術簡化TWS耳機解決方案
TWS耳機最引人注目的特點在于無線佩戴的便捷性。相較于傳統的藍牙耳機,TWS耳機具備體積小、音質好、穩定性高等諸多優勢,還具有一定的防水性和智慧性,因而迅速吸引了消費者們的視線。目前,TWS耳機的出貨量和整體市場規模都在不斷擴大,是目前消費類電子的熱點研發領域。
系統架構
本文中介紹的1-Wire TWS耳機解決方案MAXREFDES1302包括充電盒和耳機兩個部分,系統整體硬件架構,如圖一所示。
圖一 : 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對電池進行監控。
圖二為1-Wire TWS充電盒和耳機的實物圖。充電盒的實際尺寸為10.20cm × 5.80cm,耳機的實際尺寸為10.20cm × 6.50cm,由于本設計為輔助客戶進行設計、測試和研究的樣機,在精簡測試點的情況下,現實產品的尺寸可以大幅壓縮,以滿足TWS耳機實際應用的尺寸要求。
圖二 : 1-Wire TWS充電盒和耳機PCBA實物圖
1-Wire數據通訊和能量傳輸
在TWS耳機應用中,用可靠便捷的方法實現充電盒與耳機之間的數據通訊和能量傳輸非常重要。目前市場上常見的TWS耳機通常使用3個或更多的觸點與充電盒連接,以實現數據通訊和能量傳輸的功能。但是,過多的觸點通常會導致系統成本的增加,這對低成本的可穿戴產品設計極為不利。由于更多的觸點通常需要更大的空間,這和TWS耳機的小尺寸要求相互違背。此外,更多的觸點往往會增加故障發生的可能性。
本設計采用為TWS方案設計的ADI專有的1-Wire雙向網橋DS2488,實現耳機與充電盒之間的能量傳輸和數據通訊。DS2488支持1-Wire總線協議,可用單導線實現通訊和充電的功能。由于系統需要額外一個觸點用于將耳機和充電盒的地相連,整體解決方案僅需要使用兩個觸點,可大幅提升系統可靠性,降低尺寸和成本。本設計采用的1-Wire通訊充電電路框圖,如圖3所示。
圖三 : 1-Wire通訊充電電路框圖
DS2488工作原理
如圖三所示,DS2488為1-Wire雙向網橋,具備IOA和IOB兩個1-Wire通訊接腳供兩側的微控制器控制,其中IOA由充電盒的微控制器控制,IOB由耳機的微控制器控制。IOA支持最高可達5.5V的輸入電壓,支持在1-Wire總線(IOA)上傳輸不同的通訊和充電位準。作為1-Wire組件,每個DS2488組件并具備唯一的64位ROM ID,供用戶進行識別、認證。DS2488內部還具備8字節的緩沖器,可供微控制器進行讀寫,以實時更新儲存兩側的電池信息。在本設計中,緩沖器儲存的信息如表一所示。
表一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時隙和讀時隙,如圖四和圖五所示。各時序高低位準階段的時間范圍的詳細數據可參考DS2488的數據手冊。
圖四 : DS2488 1-Wire復位和回應時序
圖五 : DS2488 1-Wire讀寫時序
所有1-Wire組件內部均是由狀態機組成的,其狀態轉移圖如圖六所示。如圖四所示,當微控制器向DS2488組件發送復位訊號后,1-Wire總線將被拉低48μs到80μs,隨后總線被上拉電阻拉高釋放。如果總線上連接有DS2488,DS2488將響應該復位訊號,在總線被釋放48μs之后再次將1-Wire總線拉低6μs到10μs。此時微控制器可以檢測總線上的位準變化,即透過檢測到總線是否被再次拉低來判斷是否有DS2488連接至1-Wire總線。
圖六 : 1-Wire組件的狀態轉移圖
當DS2488響應復位訊號后,微控制器將發送ROM功能命令(ROM Function Command)。所有1-Wire組件的ROM功能命令都相同,一些常用的ROM功能命令如表二所示。
由于TWS耳機設計中,充電盒內通常需要容納兩個耳機,所以1-Wire總線(IOA)上通常會掛接兩個DS2488。本設計首先采用Read ROM命令(0x33)和Match ROM命令(0x55)分別讀取1-Wire總線(IOA)上兩個DS2488的ROM ID和匹配特定ROM ID的DS2488組件,實現左右耳機的身份識別和選擇。
表二 常用的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而言,一些常用的裝置功能命令如表三所示。本設計采用Write Buffer命令(0x33)和Read Buffer命令(0x44)對DS2488內部的8字節緩沖器進行讀寫,實現充電盒和耳機電池信息的交互。
表三 常用的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進行通訊,如圖三所示。微控制器透過配置特定的UART波特率和發送特定的碼形即可實現這一功能。
以圖四所示的復位與回應時序為例,當波特率為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能量傳輸
如圖三所示,充電盒的微控制器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輸出,每路均可透過緩存器配置輸出不同的電壓。
韌體設計
充電盒的韌體流程圖如圖七所示。上電后,充電盒的微控制器將初始化GPIO,并配置電量計MAX17262和OLED模塊。然后,微控制器對充電盒倉蓋的狀態進行輪詢。如果充電盒蓋關閉,微控制器將禁用 1-Wire 模塊,并將 5V 的充電電壓加到1-Wire總線(IOA)上為耳機充電。
在這種狀態下,如果微處理器檢測到充電盒電池的剩余電量小于5%,則充電會停止。如果充電盒蓋打開,則微控制器將禁用 5V 充電電壓,并啟用 1-Wire 模塊讀寫 DS2488 的緩沖器。充電盒和耳機的電池信息透過OLED模塊或者虛擬串行端口顯示。
圖七 : 充電盒韌體流程圖
耳機的韌體流程圖如圖八所示。上電后,耳機的微控制器將初始化GPIO,配置電量計MAX17262和充電器MAX77734。然后,微控制器輪詢充電器的輸入電壓是否有效。如果輸入電壓有效且大于4V,則微控制器啟用充電器,開始充電。此時,微控制器輪詢TOKEN的狀態,如果TOKEN為低,則充電盒擁有DS2488的讀寫權限。如果 TOKEN 為高,則耳機擁有DS2488的讀寫權限,此時微控制器將耳機的電池信息寫入 DS2488 的緩沖器,供充電盒讀取。
圖八 : 耳機韌體流程圖
測試結果
充電盒和耳機的電源軌的設計要求和測試結果如表四和表五所示。可見本設計能夠滿足系統的設計要求。
表四 充電盒電源軌的設計要求與測試結果
參數 | 符號 | 測量值 | 設計要求 |
電池電壓 | 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 |
表五 耳機電源軌的設計要求與測試結果
參數 | 符號 | 測量值 | 設計要求 |
電池電壓 | 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 |
充電盒蓋關閉時和充電盒蓋開啟時的測試結果如圖九和圖十所示。可見本設計能夠實時顯示充電盒和耳機電池的信息,并讀取顯示耳機上DS2488的ROM ID。
圖十 : 充電盒倉蓋打開時的測試結果
結論
對于工程師而言,在易用性、低成本、可移植性和穩定性之間取得平衡,從而對TWS耳機進行原型設計通常是一項巨大的挑戰。DS2488 1-Wire雙向網橋為以更小的空間和更低的成本實現低功耗、高穩定性、高性能的TWS耳機解決方案鋪路。MAXREFDES1302以DS2488為基礎,包括硬件和韌體設計,僅透過兩個接觸點即可進行電力傳輸和數據通訊,是一款易用的TWS耳機原型。
(本文作者Yi Xin為ADI 應用工程師)
參考電路
[1] 方良、賈寧,基于MAXIM PLC技術的TWS解決方案。電子產品世界,2021年5月。
[2] MAX32655用戶指南。Maxim Integrated,2021年3月。
評論