| 项目类型 | 论文集;正文 |
|---|---|
| 作者 | Dong, Boning; Aguillar, Byron |
| 引用 | Dong, B., & Aguillar, B. (2021). Design of a Low-Cost Handheld Wireless Oscilloscope. International Telemetering Conference Proceedings, 56. |
| 出版商 | International Foundation for Telemetering |
| 期刊 | International Telemetering Conference Proceedings |
| 权利 | 版权©归作者所有;发行权归国际遥测基金会所有 |
| 下载日期 | 27/12/2025 09:31:13 |
| 项目许可 | http://rightsstatements.org/vocab/lnC/1.0/ |
| 版本 | 最终出版版本 |
| 项目链接 | http://hdl.handle.net/10150/666307 |
目前市面上的大多数示波器都存在操作复杂、体积庞大且价格昂贵的问题。使用示波器的其他挑战还包括设置时间长、布线杂乱以及界面不友好。为了解决这些问题,本文提出了一种原创解决方案——Scopen,这是一款精确且经济实惠的笔状无线示波器。通过无线传输捕获的信号并在软件端显示波形,Scopen 摆脱了对电缆的需求,实现了最大的灵活性。此外,无线传输功能允许我们在多个设备和平台上显示波形,增加了灵活性和易用性。本文介绍了 Scopen 的系统目标规格、包括定制印刷电路板在内的硬件设计以及软件架构。最后,我们将讨论这款无线示波器的功能和性能。
示波器是工程领域中最常用的可视化信号测量设备之一。市场上现有的示波器价格跨度极大,从 50 美元到 10 万美元不等。在这些产品中,性能通常决定价格,但不同价格范围内的产品形态几乎相同。尽管无线示波器已被证明是可行的 [1],但其中大多数仍是台式示波器,体积庞大且需要杂乱的导线连接。根据我们作为学生使用示波器的经验,性能并不是首要需求,因为大多数学生项目仅涉及低速电路。冗长的准备工作(如搭建工作台和连接大量电线)通常令人沮丧且耗时。
对于针对学生用户的低成本产品,易用性比性能更重要。本文提出的解决方案受到之前一些便携式示波器设计 [2,3] 的启发,旨在满足这一需求。通过在笔状外形中实现基本的示波器功能,并采用无线传输进行波形流传输,Scopen 实现了极高的便携性和灵活性。用户在探测电路时可以像握笔一样握住 Scopen,波形可以直接显示在他们的笔记本电脑、平板电脑甚至手机上。此外,Scopen 极小的尺寸使其具有高度便携性,学生可以将 Scopen 放在口袋里或带到现场进行调试。

(图1:系统框图)

我们的解决方案由几个模块组成:电源、模拟前端、缓冲发送系统以及手势触摸界面。这些模块旨在实现电气要求或我们希望提供的功能。具体而言,各模块的详细功能如下:
电源:为系统提供正确的电压和充足的电流,并管理锂离子电池的充放电单元。
模拟前端:在将输入信号送入采样模数转换器(ADC)之前对其进行正确缩放。
缓冲发送系统:将缩放后的输入信号转换为数字数据,将采样的电压数据存储在 SRAM 缓冲区中,并在存储器缓冲足够数据后传输这些样本。这部分主要涉及三个组件:微控制器的内部 ADC、存储器和 WiFi 模块。
手势触摸界面:通过允许用户在笔状笔身上进行滑动和点击等手势操作,为用户提供一种更改电压和时间量程的简便方法。
在本节中,我们将讨论硬件设计的细节。我们将主要集中在具有挑战性的模块上,排除相对简单的设计(如电源)。具体而言,我们将涵盖模拟前端、缓冲发送系统和手势触摸界面。最后,我们还将介绍 PCB 设计和布局的方法。

(图2:模拟前端)
受之前工作 [4] 的启发,模拟前端(AFE)由图 2 所示的模块组成。该子系统的目标是处理任意输入信号,使其与我们 ADC 的电压范围兼容。鉴于标准示波器应能在不失真的情况下接收任何任意信号(在电压限制和带宽范围内),这一级的设计必须尽可能减少噪声或失真的引入。AFE 由三个阶段组成:衰减器、可变增益放大器(VGA)和单端转差分转换器(SDC)。
衰减器正如其名,它接收输入信号并将其按比例缩小到我们 ADC 的输入电压范围内。在标准示波器中,用户可以更改测量量程;为了实现这一点,使用继电器来改变衰减/增益。在我们的设计中,衰减器的继电器根据用户输入在 0.03 衰减(针对 1.8Vpp 以上且 50Vpp 以下的电压)和 1 衰减(针对 1.8V 以下的电压)之间切换信号路径。我们必须确保该阶段具有高阻抗(1M 欧姆)、低噪声,且针对此设计至少有 10MHz 的带宽。高阻抗对于确保我们的示波器不会加载信号源是必要的,否则会改变被测电压。低噪声至关重要,以确保随后的增益级不会放大噪声从而导致测量不准。10 MHz 带宽是我们的设计目标,这是基于我们 ADC 的最大采样率。
VGA 的作用是接收衰减后的信号,并将其精确缩放到用户所需的电压/每格。VGA 组件的选择标准是具有高带宽、大动态范围、高压摆率以及符合我们规格的正确增益范围。
最后,为了最小化 AFE 输出与 ADC 之间信号路径中的噪声,我们选择让 ADC 以差分输入模式工作 [5-7]。此外,我们的 ADC 无法接收负电压。因此,我们的 AFE 必须将单端输入转换为差分信号,并将其提升到 ADC 电压范围(0V 到 1.8V 之间)的中点。为了实现这种转换,我们使用了差分输出运算放大器,该运放可配置为单位增益(以保持 VGA 阶段的增益)并可偏置在 1.8V 的中点。

(图3:缓冲发送系统)
紧随 AFE 之后的是缓冲发送子系统,如图 3 所示。来自前端的缩放信号被送入微控制器内部的四个 ADC。这四个 ADC 被配置为以轮询方式逐一触发和采样。我们使用四个 ADC 来提高潜在的采样率。这是因为当一个 ADC 仍在对采样电压进行数字化处理时,下一个 ADC 已经开始采样另一个数据点。一旦第四个 ADC 完成,第一个 ADC 就准备好再次采样。每个 ADC 的采样结果将通过微控制器的 DMA 传输到外部存储器模块。选择这种流水线是为了最小化采样和缓冲数据之间的延迟,从而最大化采样率。为了进一步优化该流水线,我们使用了两个 DMA 外设。我们使用 DMA1 的两个通道来传输 ADC1 和 ADC3 的结果,使用 DMA2 的两个通道来传输 ADC2 和 ADC4 的结果。由于 ADC 是顺序触发的,两个 DMA 按以下顺序运行:DMA1 ch.1、DMA2 ch.1、DMA1 ch.2、DMA2 ch.2。这种设计最小化了两个 DMA 通道的拥堵,并实现了最大吞吐量。
在系统积累了一定数量的样本(取决于用户的时间量程设置)后,采样过程将暂时停止,传输过程开始。这一过程涉及两个部分的工作。主微控制器首先将缓冲的采样数据传输给 WiFi 控制器。这种传输是通过 SPI 接口实现的,其时钟频率为 10MHz,以实现可观的吞吐量。随后,WiFi 控制器通过 WiFi 将接收到的数据转发给上位机软件(在用户的设备上)。
在该子系统中,我们使用了由 Azoteq 制造的专用手势控制芯片,该芯片通过 I2C 总线捕获手势事件并将其传输给主微控制器。由于芯片已经处理了手势检测,唯一的挑战在于电容电极的设计。

(图4:触摸区域布局)
如图 4 [8] 所示,触摸板需要具有菱形形状,其中红色代表接收(RX)通道,绿色代表发送(TX)通道。对于我们使用的芯片,有 3 个 TX 通道和 2 个 RX 通道,因此我们设计了如图 5 所示的电路板。

(图5:触摸板顶层布局)

(图6:触摸板底层布局)
在电路板的第一次迭代中,我们观察到了地偏移现象 [9]。我们意识到,当笔由电源线供电时,触摸传感器工作完美;但如果我们断开电源线由电池供电,触摸传感器就会变得非常不稳定。地偏移现象可以通过增加触摸板与局部地之间的寄生电容来抵消,这样即使移除了大地,寄生电容也不会发生大的变化。具体而言,这可以通过在每个菱形区域下方放置一个局部地来实现,如图 6 所示。
由于我们的目标是制作笔状示波器,整个系统必须包装在紧凑的外形中。最终,通过采用 6 层 PCB 设计,我们成功地将整个系统封装在口香糖大小的 PCB 板上。

(图7:主 PCB 布局)

(图8:PCB 顶层渲染图)

(图9:PCB 底层渲染图)
为了进一步缩小电路板尺寸,我们在电路板两侧都布置了组件,将电阻和电容等被动组件放置在主动芯片下方。总的来说,电路板可以分为三个区域。左侧最密集的区域是电源管理和模拟前端。中间部分被主微控制器占据,右侧部分包括触摸传感器连接器、WiFi 控制器和天线。完成后的电路板渲染图如图 8 和图 9 所示。
系统中有两个部分需要编程。一个是主 STM32 微控制器,负责处理采样逻辑并响应用户交互/输入。另一个是 ESP32 WiFi 控制器,负责管理 WiFi 协议栈并充当 STM32 与上位机软件之间的桥梁。在本节中,我们将概述固件架构并介绍采样触发方法的细节。
如图 10 所示,STM32 固件栈位于左侧,ESP32 固件栈位于右侧。对于 STM32 栈,我们的项目主要基于 STM32 HAL 库,该库为大多数片上外设提供了底层驱动。对于那些我们需要 HAL 库不直接支持的特殊功能的外设,我们基于 STM32 底层库(LL 库)编写了自己的驱动程序,LL 库作为寄存器的封装层。例如,我们需要 I2C 的重启功能来高效地与触摸传感器通信。因此,我们编写了一个基于 STM32 LL I2C 库的定制 I2C 库来处理我们的触摸传感器 IC。

(图10:固件架构) 在中间,三个较小的矩形代表外部传感器的驱动程序,它们是基于上述底层驱动程序开发的。由于我们的项目需要控制器同时处理用户输入和数据传输,因此需要多线程。出于这个原因,在中间层,我们使用了实时操作系统——FreeRTOS。通过这种方式,我们可以将编程模式从在 while 循环中运行多个函数(轮询模式)更改为在不同线程中运行不同任务(线程模式)。
从顶层看,STM32 控制器上运行着五个线程。这些线程分为两组:处理事件的线程和通信线程。三个通信线程还可以进一步分为两类:上行和下行。上行包括指令发送线程和数据发送线程。顾名思义,一个用于向上位机软件发送控制指令,另一个用于传输来自 ADC 的采样数据。下行组仅包括用于接收上位机软件发送的控制指令的指令接收线程。

(图11:采样算法)
我们在开发系统时面临的一个关键挑战是如何设计四个 ADC 的触发器。我们的目标是以固定的时间间隔进行采样,以实现硬件部分描述的高采样率系统。由于我们使用了四个 ADC,我们无法利用 ADC 的主/从模式 [5],因为该模式仅限于两个 ADC。我们也无法使用中断,因为中断上下文切换需要时间,且确切耗时是不可预测的。我们的解决方案是使用高分辨率定时器(HRTIM) [5, 6, 10] 作为触发源,以控制 ADC 何时开始采样。每次采样完成后,DMA 将结果从 ADC 结果寄存器移动到外部 SRAM。图 11 展示了这一设计。
HRTIM 加载了三个比较值。这些值以 Tmax / 4 的间隔等距分布。每当计数器值匹配这些值时,就会发生一次触发事件,并触发一个 ADC。结合计数器溢出事件(在计数器值归 0 时触发 ADC4),四个 ADC 触发以固定的时间间隔发生。这种触发不会触发 CPU 中断,因此不涉及上下文切换时间,这意味着触发时间的准确性得到了保证。
我们还开发了一个用于显示样本的电脑端软件原型。我们遵循 MVC 设计模式。视图层基于 Java Swing 库开发。它被设计为具有示波器风格的用户界面,包括电压/时间旋钮等组件。模型层主要由两个类组成。一个是用于管理硬件连接的 CommManager,另一个是接收/传输并解码/编码控制指令的 CmdManager。控制器充当视图层和模型层之间的桥梁,并管理软件的状态机。在视图层发生的用户交互将向下传递,并由模型层类发送到 Scopen 硬件。同样,模型层接收到的数据/指令将向上转发,并最终显示在用户界面上。用户界面如图 12 所示。

(图12:用户界面)
到目前为止,我们成功构建了第一个原型,并开始了第二个原型的制作,以修复微小错误并进一步优化性能。我们的项目成功证明了实现便携式笔状无线示波器的想法。我们甚至成功展示了可以与智能手机通信并流式传输数据。凭借这些结果,我们有信心我们的笔状示波器有潜力成为学生、爱好者甚至专业工程师的有价值且易于使用的工具。
作者感谢 Cesar Gonzalez 协助构建和测试原型。同时,感谢高通公司(Qualcomm)对本项目的赞助。
[1] M. V. Paulet and O. M. Neacsu, "Oscilloscope with pc interface to save and wireless transmission of data," in 2012 International Conference and Exposition on Electrical and Power Engineering, pp. 801-804, 2012.
[2] M. Min, C. Wenli, H. Haixun, and Z. Yijiu, “The method of 300mhz isolated handheld oscilloscope design,” in 2019 14th IEEE International Conference on Electronic Measurement Instruments (ICEMI), pp. 72–78, 2019.
[3] I. A. Karim, “A low cost portable oscilloscope based on arduino and glcd,” in 2014 International Conference on Informatics, Electronics Vision (ICIEV), pp. 1–4, 2014.
[4] J. Xiaochang and W. Jie, "An analog front end design for gsps oscilloscope," in 2019 14th IEEE International Conference on Electronic Measurement Instruments (ICEMI), pp. 286-291, 2019.
[5] STMicroelectronics, STM32G4 Series advanced Arm-based 32-bit MCUsV6.0, 2021. (Available on-line at https://www.st.com/resource/en/reference_manual/dm00355726-stm32g4-series-advanced-armbased-32bit-mcus-stmicroelectronics.pdf).
[6] STMicroelectronics, Arm® Cortex®-M4 32-bit MCU+FPU, 170 MHz/213 DMIPS, 128 KB SRAM, rich analog, math acc, 184 ps 12 chan Hi-res timerV5.1, 2021. (Available on-line at https://www.st.com/resource/en/datasheet stm32g474cb.pdf).
[7] STMicroelectronics, How to get the best ADC accuracy in STM32 microcontrollersV6.0, 2020. (Available on-line at https://www.st.com/resource/en/applicationnote/cd00211314-how-to-get-the-best-ADC-accuracy-in-stm32-microcontrollers-stmicroelectronics.pdf).
[8] Azoteq, Trackpad Design Guide. A comprehensive Design Guide is available on special request, 2021. (Available on-line at https://www.azoteq.com/images/stories/pdf/azd068-trackpad/design_guide.pdf).
[9] Texas Instrument, Ground Shifting in Capacitive Sensing Applications, 2016. (Available online at https://www.ti.com/lit/an/snoa952/snoa952.pdf).
[10] STMicroelectronics, HRTIM cookbookV4.0, 2021. (Available on-line at https://www.st.com/resource/en/application-note/dm00121475-hrtim-cookbook-stmicroelectronics.pdf).