资料介绍
描述
- 使用计算机的声卡
Arduino Zero/MKR 具有一个 350kSps 12 位 ADC。考虑到它,这是很棒的规格。然而,释放这种能力是另一回事。托管在 Arduino Zero/MKR 中的 SAMD21G18 提供 USB2.0 全速。
因此,访问 350kSps ADC 需要示波器解决方案来捕获这些样本,通过 USB2.0 线路传输它们并以 60Hz 的速率将它们投射到屏幕上,即在 16ms 的时间范围内。此外,为了允许准确定时采样,ADC 读数需要伴随时间测量。
该项目继续寻求破解这一挑战!
下图列出了该应用程序的主要功能:
数字挑战:
每帧 60hz 或 16ms vs ADC:350kSps
=> 每 16 毫秒 5600 个样本,
1 个样本 = 开销字节(至少完整性)+ 12/16/8 位样本 + 12/16/8 位时间戳 = 3 到 6 个字节
=> 5600 x 3 到 6 字节每 16 毫秒 = 16 800 到 33 600 字节每 16 毫秒
USB2.0 全速提供:
- 在 USB 批量传输中:每毫秒 64 字节 ~ 每 16 毫秒 1024 字节 --> 很少!!
- 在 USB 同步传输中:1023bytes per ms ~ 16 368bytes per 16ms --> OK
以上(错误地)假设 USB 传输可以与 ADC 捕获并行发生。
=> 跨行实现多线程是可能的,因为有必要尽可能接近我们的目标。
openGL 要求:
- 将 ADC 读数和时间戳数据转换为 {-1;1} 数据。我们想在另一个线程中的 CPU(判断为最快)上执行此操作。
- 屏幕的建设。由 OpenGL 在 GPU 上完成
上述示例(假设读数准确)显示:
我们以 270kSps 采样(当我们采样时,请记住 Arduino 板上的 USB 传输也需要处理器时间)。
通过 USB 线收集和发送 1023 字节数据的时间大约需要 6.7 毫秒:这里的 1023 字节数据等于:1023 x 8 / (12 + 12 + 7) = 264 个样本重复 4 次以获得 1024 个样本(理论上它会只需 4 毫秒)。
这些数据在 15ms+.35ms+1.6ms ~2.1ms 内进行转换、构建和绘制。
openGL 的总帧速率为 9.2 毫秒(让程序尽可能快地运行)。因此,我们可以尝试将样本读数增加到 2048,而不会牺牲太多的屏幕刷新率。
正如我们上面所写的,我们需要实现多个线程以尽可能地允许并行处理。
该应用程序具有 3 个线程:
1) C#图形用户界面
(从其他线程中分离出来,让相对较慢的 UI 至少尽可能地干扰主任务,即捕获 USB 并在屏幕上投影)
2) C++ DLL OpenGL。用于包装 OpenGL 窗口的本机 C DLL。好处是代码易于移植到其他平台/ UI。OpenGL 是开源的,并且是目前最快的之一。
3) C++ DLL USB。用于包装 winUSB 驱动程序的本机 C DLL。选择的原因是 winUSB.sys USB 驱动程序安装在每台 Windows 计算机上,它支持同步数据传输。同步数据传输用于流数据。它为速度留下了数据完整性检查。通过这种方式,您可以每毫秒传输 1023 字节。
通过实施多线程方案,屏幕可以在另一个线程从 USB 线捕获新数据时构建,同时用户将鼠标悬停在用户界面上。
安装应用程序:
该应用程序不是那么用户友好的使用:
1) Arduino 板(或任何其他 ADC/USB 捕获设备)需要实现同步 USB 数据传输。默认情况下,ArduinoCore 不支持此功能。在本项目提供的草图中,我提供了 Arduino 代码,以使用等时 USB 接口扩展 ArduinoCore(同时不会失去仍然使用Serial.print功能的可能性)。该扩展可在常规 Arduino IDE 中使用(因此无需更改 ArduinoCore 本身)。
2) WinUSB.inf驱动文件需要在测试模式下运行Windows安装。这是因为没有驾驶证。
3) 目前我在 Github 上留下了未编译的 YetAnotherUSB 示波器软件。这是为了邀请用户进入代码并自行调整、编译和构建。
未来的改进:
YetAnotherUSB 示波器软件是在 VS 2019 上使用最新的 .NET 框架开发的,并在 64 位上进行了测试。换句话说,该应用程序相对未经测试且开发不足,无法在多个平台(32 位或 linux)上运行。
此外,多线程还没有变得超级健壮。(在极端情况下可能会出现无限循环,例如在读取时拔下 USB 等)
仍然缺少一些功能,即。FFT 分析、触发和记忆能力。
我希望这对您有所启发,并且您可以使用/借用代码进行自己的(进一步)开发。
继续制作!
- 使用Arduino MKR1000通过WiFi进行HID攻击
- 如何使用Arduino MKR GSM 1400的蜂窝定位
- Arduino MKR WAN 1300 LoRa现场网关客户端
- 通过Telstra窄带网络的Arduino MKR NB 1500
- 如何将Arduino MKR和Portenta安装到机柜中
- Arduino MKR1000的大负载
- 基于Arduino MKR ZERO的天气数据记录器 0次下载
- 使用Arduino MKR1000构建温度传感设备
- 在Raspberry Pi上使用Arduino MKR ENV Shield
- Arduino MKR1000通用Remonster
- 使用Arduino Mkr Wifi 1010和Thincloud构建连接灯的过程
- 带有Arduino MKR1010和MKR RGB Shield的Otto Biped
- 使用MKR IoT载体的Arduino灯控制器
- Arduino MKR GSM 1400和DTMF开源
- 使用Grove Sensor的Arduino MKR1010和阿里云IoT
- 模拟示波器和数字示波器的区别 1349次阅读
- 混合示波器与数字示波器的区别 534次阅读
- 数字示波器和模拟示波器的区别 1436次阅读
- DeepSpeed里面和Zero相关技术教程 3423次阅读
- 如何利用树莓派zero实现AirPlay扬声器的设计 4151次阅读
- 浅谈泰克示波器鲜为人知的10个特异功能 3903次阅读
- dfrobot树莓派ZERO外壳简介 1526次阅读
- dfrobotZero/Zero W microUSB Hub分线器简介 1822次阅读
- 香橙派Orange Pi Zero Plus2技术分析 3956次阅读
- 示波器应该如何使用示波器的使用方法详细介绍 7.2w次阅读
- 简评FPGA——Arduino MKR Vidor 4000 6807次阅读
- 示波器带宽是什么_示波器带宽如何选择 3.2w次阅读
- arduino是什么以及arduino能干什么 4.4w次阅读
- 示波器怎样使用_示波器选用_示波器怎么测量 5385次阅读
- 模拟示波器与数字示波器的区别 7565次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多