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