CMSIS-DAP是由ARM主导开发的调试器项目,主要为了便于进行ARM芯片寄存器级的在线调试(因为采用JTAG实际上也可以用于RISC-V等处理器架构的调试),最初名称叫CMSIS-DAP v1,该版本调试器采用USB-HID免驱动协议,直接连接PC端配合IDE(IAR、KEIL等)即可实现微控制器的在线调试,由于USB-HID在全速设备中最快中断传输时间间隔为1ms,故调试速度上稍慢于JLINK等商业调试器。
鉴于上述缺点后续CMSIS-DAP进行了协议升级,升级为CMSIS-DAP v2也叫DAP-LINK。DAP-LINK采用BULK传输,可以以更快的速率与调试接口交互(USB速度可以与JLINK-OB等全速设备持平),DAP-LINK同样采用免驱的WINUSB协议(针对WIN8.1以上)。由于DAP-LINK需要WIN8.1以上操作系统支持故兼容性不如CMSIS-DAP v1,在旧操作系统上如WIN7则只能使用USB-HID协议。另外KEIL从5.29才开始支持CMSIS-DAP v2,而IAR则从8.32版本才支持CMSIS-DAP v2。总之CMSIS-DAP v2速度更快但兼容性不如CMSIS-DAP v1。
CMSIS-DAP标准由ARM制定并随CMSIS库将源代码提供给用户,用户可以自由移植该调试接口库。通过CMSIS-DAP库也衍生了很多开源调试器。目前市面上多数DAP-LINK调试器是通过移植ARM的CMSIS-DAP库实现的。
目前市面上的DAP-LINK调试器多采用有线USB连接,本文介绍并开发了一种使用无线wifi的DAP-LINK调试器,通过wifi连接目标MCU和PC端,实现调试器的无线连接。由于在传输层面上多增加了一层wifi传输协议,将不可避免的导致调试速度的降低,这是无线调试的一项缺点,但是在某些特殊需求下可能获得的优势大于其缺点。下面介绍无线wifi调试器的设计方法和成品特性。
对于无线调试器其适用的范围如下:
- 替换JLINK等调试器
- 需要电气隔离的调试场合
- 有高压电击危险的调试场合
- 空间受限或机械伤人的调试场合
- 需要无线USB转串口通信的场合
无线DAP-LINK需要使用wifi协议,目前成本较低wifi-soc可选择ESP32系列。ESP32具备完善的wifi协议层且运行速度较快,适合作为调试器的承载方案。无线DAP-LINK的硬件结构较为简单如图1所示:
硬件ESP32部分的设计原理如图2所示:
整体硬件原理较为简单,实际上以上电路可以即可实现有线DAP-LINK调试器,因为ESP32自带一个全速的USB接口。
下面介绍软件设计,区别于有线DAP-LINK,无线DAP-LINK的主要变更点在于软件的接口设计,需要在USB和DAP协议中间穿插一层wifi协议。传统的有线方式软件结构如图3所示:
无线方式在数据传输层使用Socket代理,软件结构如图4所示:
所以,对于软件层面,主要工作只是在USB数据收发函数中增加一层Socket服务端和客户端应用即可,另外增加部分连接状态管理功能即可成功实现无线DAP-LINK。
基于以上思路,博主使用ESP32成功设计了一款使用wifi的无线调试器。为提高资源使用效率,博主设计的DAP-LINK调试器可使用有线模式和无线模式,无线模式需要两个调试器配合使用,其中一个作为客户端另一个作为服务端即可。当不使用无线模式时,可以得到两个相同的有线调试器。设计成品如图5所示:
博主打样时还有好几块剩余,如有需要可点击
使用过程中欢迎提出BUG及优化意见,以便博主进一步优化。
感谢网友“微触的冰凉”反馈调试器使用过程中的问题,调试器已经优化稳定性并测试。稳定性测试如图6所示:
文章来源:https://www.toymoban.com/news/detail-658741.html
文章来源地址https://www.toymoban.com/news/detail-658741.html
到了这里,关于一种wifi无线DAP-LINK调试器的设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!