你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于CMSIS-DAP的无线仿真器方案完工

[复制链接]
wuxxb930f9 发布时间:2019-9-23 00:35
支持JTAG/SWD协议
; O) H( v5 w$ a+ g5 D9 P0 [1 w支持虚拟串口7 |9 `! J* X, O: b
支持5V/3.3V
* ^+ t' X: G$ x2 Z" L" v" P. Z/ }" ]6 O3 O+ `1 K2 H6 p
这个小产品前前后后大概做了三个月左右,有些细节还是经过仔细反复推敲过的,整体方案自我还是比较满意的。原理其实比较简单,实际上就是透传USB HID报文:DAP协议通信是应答式的,HOST发送请求过来,DAP这边返回请求就可以了,对于USB全速设备来说,每次来回传输64字节。
; S: l1 m) {+ I$ ~: B! V! ?  E
1 g$ l8 U$ H/ b5 x3 @0 f  o2 L0 x
关键要点在于以下几点:9 V+ e1 J# E# u) b( _2 W" N8 t; g

5 ?- H5 w5 P- v/ \. N, a1. 无线模块很关键,直接关系到调试下载的速度,无线肯定是比有线慢一些的,但不能太慢,如果太慢则上位机认为已经失去连接会直接断开(keil发出的usb hid请求必须在1-2秒之内回复,否则便会断开),一开始设计的是使用不带PA的NRF24l01模块,这个模块的问题是只能半双工通信,通信通信距离和性能都很低,而且抗干扰性很差,我使用的是国产的si24r1,可以pin2pin替代nrf24l01,据说性能比nrf24l01还是有点差距,实际测试下来无线传输速度只有4KB/s,这个性能不管是下载或者调试,基本上是难以忍受的,而且实际测试中抗干扰性很差,加上PA或许会稍有改善,然而性能始终是个无法解决的问题。稍作考虑之后决定用ESP8266作为无线模块,WiFi的稳定性和通信速度基本上是可以保证的,实际测试下来通信速度可以达到40KB/s,这个速度还是不错的,而且以ESP8266的性能后面还有很大优化空间,根据http://iot-bits.com/esp8266-tcp-server-speed-test/这里的测试结论,8266纯发射数据速率可以达到Mbps级别的。
/ m: H' M7 ^& I( H( l; [  L; `8 U/ x7 t+ O2 Q  h* F

7 f, F8 ^0 [' ?0 k, s' E3 o2. 虚拟串口实现,CMSIS-DAP是自带CDC的虚拟串口的,这个功能配合调试一起还是比较方便的,考虑到性能的缘故,串口和DAP协议数据都复用在了同一个socket里传输(用两个socket会增加系统负担,性能会慢),串口数据封装成了一条自定义的DAP命令,host端仍然使用DAP数据包,将host发出的串口数据作为请求,target则将收到的串口数据作为应答,使用tlv格式来指示有效的数据,以此来实现实现双向的串口传输。还是那句话,这一切都需要系统有足够的性能,如果无线传输性能只有4KB/s的话,连115200的串口波特率都无法实现有效传输。: N8 G9 n! ^0 a3 l* ~
3. 由于使用ESP8266 SDK开发,底层无线传输使用LWIP协议栈,使用TCP协议传输DAP数据包和串口数据,一般来说,传输层可以选择可靠的TCP协议和非可靠的UDP协议,UDP协议开销相对要小一些,性能也会更好一些,然而在简单测试了一下UDP协议之后,我立马放弃了UDP协议,丢包有点频繁,尤其在wifi信号比较多的场景,丢包概率会更高,串口数据或许还可以允许部分的丢包,而DAP通信是不允许任何一个包丢失的。所以使用TCP实现比较靠谱,双工通信,带数据确认,丢包重传,可有效提高传输的稳定性和可靠性。
' {5 {. D7 L' `3 r4. 无需安装驱动,也无需做任何额外的配置,只需要把发射机和接收机上电,等待双方的蓝灯从闪烁变为常亮之后,即可开始正常调试。而且支持重新配对,单个发射机可以和任意一个接收机重新建立配对,只需要将接收机短接nRST和GND并上电,便可实现重新配对。原理也很简单:发射机作为AP模式,SSID以固定的前缀nanoDAP-wl-[chipid]开头(由于带上了chipid,所以不同的发射机SSID都是不一样的),接收机上电会搜索以这个前缀开头的SSID,重新建立连接即可。而且理论上支持N对发射机/接收机同时工作,互不干扰。& A  n* T& T* S6 N6 d
4 o- g6 t2 r! ^5 h+ L3 M
后续可以继续优化的地方
9 [9 ~0 ]8 d; f7 v9 ?' Q1. 支持固件升级,当前固件升级需要使用其他仿真器进行升级,后续可以移植DAPLink 的MSD bootloader,将固件拖拽到U盘中即可实现升级,这个应该是最简单最方便的固件升级方式,通常的固件升级还需要再PC端安装厂商提供的升级软件,稍微麻烦一些,而且不同的windows系统上还可能存在兼容性问题。, g' U, c' n& C/ V4 u4 K
2. 性能仍然可以继续提升,后续考虑修改LWIP底层协议栈实现性能提升,因为我们只需要TCP协议,其他协议都可以砍掉,这应该可以省掉很多判断和循环。$ W8 X6 R  S  f# R- k% C* g
* s# [9 f: P1 b4 h: _. Y7 z
微信图片_20190922232832.jpg
微信图片_20190923002133.jpg
微信图片_20190922232849.jpg
收藏 3 评论12 发布时间:2019-9-23 00:35

举报

12个回答
maxtch 回答时间:2019-9-23 11:18:22
如果是基于 Wi-Fi 的无线仿真器,某些别的协议可能会更合适一些。
radio2radio 回答时间:2019-9-23 11:38:36
有意思,实时调试无人机时可用。 也还可以用在需要供电隔离的场合。% c5 m! m/ \0 f+ d+ @$ A

! k' ^9 M+ ~' K. M( ?; ^# ~不知道这种WiFI模组,可靠的直线传输距离是多少, 楼主测试结果怎么样。
radio2radio 回答时间:2019-9-23 11:41:40
与ESP8266WiFI模组相比,蓝牙BLE也可以考虑吗?
香醋 回答时间:2019-9-23 13:51:38
顶一下下~~~~!
wuxxb930f9 回答时间:2019-9-23 18:53:03
radio2radio 发表于 2019-9-23 11:38
* n% f1 H6 A: p9 E, \: [# u有意思,实时调试无人机时可用。 也还可以用在需要供电隔离的场合。/ P, _, V* }; s0 N6 S
7 Q8 S! u& _  @7 W8 m
不知道这种WiFI模组,可靠的直线传输 ...
+ L9 @3 y* G6 i" O: E
目前测试十米内调试都是没问题的,空旷场地的话可以更远距离,根据这里的测试 http://www.areresearch.net/2016/ ... 6-range-tester.html,空旷场地300m还能保持连接并正常传输数据。
wuxxb930f9 回答时间:2019-9-23 18:57:17
radio2radio 发表于 2019-9-23 11:41
" T( ^- _3 s/ p, V- ?9 w4 |8 S6 T2 O9 @与ESP8266WiFI模组相比,蓝牙BLE也可以考虑吗?

9 J4 b" e6 I1 x: v6 z3 y* NBLE速度不行,一般ble的phy只能达到1Mbps,刨去协议本身的各种开销,速度就更低了。而且据我一个做蓝牙的朋友讲信号稳定性比较一般,和WiFi肯定比不了。
wuxxb930f9 回答时间:2019-9-23 19:53:09
radio2radio 发表于 2019-9-23 11:38* Q2 Z- N) M1 f2 E5 k$ n
有意思,实时调试无人机时可用。 也还可以用在需要供电隔离的场合。! j. f$ F' X8 e. L4 i! e! m

1 X4 |6 y$ p& q# a不知道这种WiFI模组,可靠的直线传输 ...

8 K/ E# X( q& u) U. I0 q5 D测试室内10m内都没什么问题,室外的空旷场地可以更远距离.根据这里的测试http://www.areresearch.net/2016/ ... 6-range-tester.html 空旷的野外400m还可以保持连接并且正常传输数据
Kevin_G 回答时间:2019-9-24 15:27:02
顶一下
pkoko 回答时间:2019-10-21 23:31:35
牛,顶一个
909958846 回答时间:2019-11-4 17:11:51
想问一下,哪里可以买到?
xiaonihao444-20 回答时间:2020-8-10 16:19:11
牛啊,好想要一个
pkoko 回答时间:2020-8-11 15:27:27
有意思的产品

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版