运用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月。
评论