前言

目前市面上DAPLink的高速版本比较少,有几种基于基于CMSIS-DAP做的的高速DAP,不过ARM Mbed社区已经停止对CMSIS-DAP的支持了,目前官方社区一直在力推DAPLink的方案(https://github.com/ARMmbed/DAPLink)。DAPLink相当于CMSIS-DAP的升级版,支持更多更强的的功能。DAPLink的WebUSB和拖拽烧录功能确实比较实用,尤其是在板载仿真器、或者儿童教育开发板如Micro-Bit之类的场景,用户侧可以不需要安装任何IDE和驱动即可完成芯片的编程。

背景

关于DAPLink的前世今生请见这篇文章

痞子衡嵌入式:飞思卡尔Kinetis开发板OpenSDA调试器那些事(上)- 背景与架构

原理

对于使用USB中断传输的DAP协议,USB High Speed 可在1ms内传递8个microframe,而每个micriframe又包含3个packet,每个packet最大可为1024Bytes,传输速度为
(1000 * 3 * 8 * 1024) / 1024= 23.4375MB/s,而USB全速设备则只能在1ms内传输64Bytes,传输速度为62.5KB/s,而DAP协议又是应答式的通信,host发送请求数据包 -> DAP回复数据包,所以烧录flash的话速度还得打个对折,极限仅为31.25KB/s。
对于USB High Speed来说,实际上此时的编程瓶颈已经不再受限于USB传输速度了,已经完全取决于目标芯片的flash编程速度,以及使用的烧录算法了。

方案

这是基于官方DAPLink实现的方案,芯片使用Atmel SAM3U2C,USB High Speed,内置USB高速phy,主频为96Mhz。目前官方DAPLink支持USB High Speed的方案有SAM3U2C,K26F,LPC4322,综合调研了一下,成本上考虑,SAM3U2C应该是最合适的。

测评

初步测试了一下速度,包含擦除、编程、验证,烧录STM32F4 928KB的镜像,总共时间在27s左右。当前来看,比目前市面上大多数DAP速度都要快一些。

下面是一个和DPALink普通版对比的测评视频

https://www.bilibili.com/video/av71037093​www.bilibili.com

目前方案正在众筹,欢迎感兴趣的朋友加入众筹QQ群940182296一起讨论~!