串口软件Vofa+,超好用。可用于高速采集数据直观化显示动态
(上一次写的不够完整,有好多人还会遇到问题,我再回来完善下)
使用背景:
在调试无感的无刷直流电机的应用中,需要高速采集3路驱动电压,用于检测反电动势的“过零点”。
(其实后来接触控制领域,发觉高速采样模拟信号是非常常见的事情,动辄10k、100k的采样率——2021/06/02)
【因为无刷电机一般转速都比较高。比如每分钟12万转,即2000转/S。而如果无刷电机1个机器周期有3个电气周期,则转速相当于有6000转/S。采样率按信号的十倍算,所以采样率得60k,即采样16.7uS采集一次。而我一次采集3个路,一路数据1Byte(我使用8Bit,没有用10bit、12bit,因为考虑到数据量的问题),即数据量为:60k*3*8=1080000bit,超过了1M/S】
我需要把以上那么多的数据通过数据协议发出来,并且实时直观的显示,这样能查看验证采集到的数据是什么情况,通过什么方法来进行算法处理,就像这样
所算需要传输速度快,而且是大约每16.7uS发送一次,一次发3个byte的有效数据。找了些工具:J-Link Scope/ STM Studio/ SerialChart.exe,但是都由于速度不够不能使用。
最终在群友的帮助下,找到了“Vofa+”这个串口软件。
软件说明:
Vofa支持3种数据流方式:分别为:RawData、firewater、justfloat。
RawData:协议适用于不需要解析数据,仅仅查看字节流的需求。【可以直接当串口助手使用】
意思是发什么,显示什么,可以字符串显示,可以Hex显示,就跟一般常见的下面图片这个一样
firewater:本协议是CSV风格的字符串流,直观简洁,编程像printf简单。但由于字符串解析消耗更多的运算资源(无论在上位机还是下位机),建议仅在通道数量不多、发送频率不高的时候使用。
justfloat:本协议是小端浮点数组形式的字节流协议,纯十六进制浮点传输,节省带宽。此协议非常适合用在通道数量多、发送频率高的时候。
使用情况:
我使用以上说的第三种数据格式:justfloat。根据上位机所需要的协议,数据格式为:浮点数,浮点数……End(32bit)。比如说仅让上位机显示一个点,数值为1,那么以内存中存放的数据看起来就是发送:“0x3F80 0000,0x7f80 0000”。以上0x7f80 0000为协议固定需要的尾。
我需要发送3个数据,所以我的数据格式为:float Chan1,float Chan2,float Chan3,uint32_t End。Chan1,Chan2,Chan3分别是我要发的3个数据(把定点数需要转为浮点数),End为协议所需要的尾。这样把我的3个8Bit数据,通过4个32Bit数据传输到PC上位机。
软件代码编写:通过如下把代码实现传输
uint8_t AdcGetVal[3]; //为定义的3个电压采集值
float tempFloat[3]; //定义的临时变量
uint8_t tempData[16]; //定义的传输Buffer
tempFloat[0] = (float)AdcGetVal[0]; //转成浮点数
tempFloat[1] = (float)AdcGetVal[1];
tempFloat[2] = (float)AdcGetVal[2];
memcpy(tempData, (uint8_t *)tempFloat, sizeof(tempFloat));//通过拷贝把数据重新整理
tempData[12] = 0x00; //写如结尾数据
tempData[13] = 0x00;
tempData[14] = 0x80;
tempData[15] = 0x7f;HAL_UART_Transmit_IT(&huart6, (uint8_t *)tempData, 16); //通过串口传输16个数据
而由于把8Bit加载在32Bit数据进行传输,导致数据量变大4倍。所以我设计的16.7uS采集发送一次带宽不够。
最终我调试串口波特率为:3Mbps,每60uS发送一次数据。
我所使用的USB转串口为FT232芯片,最高支持3M波特率。
效果显示:
在网站:VOFA+ | VOFA+进行下载软件(可下载免安装的),并进行设置。
以下是我设置后显示的波形。发送数据周期为60uS,相当于是:16.6k的速度。
问题1:有些人说自己不显示波形?
回答:我给个提议:1、先使用RawData格式,查看是否收到了数据;2、检查收到数据是否符合协议格式(最后一个结尾的数据是固定的);3、查看自己是否按照我上面图片设置了显示波形。
问题2:怎么增加波形数?
回答:先把一个波形能显示了之后,发送数据的时候多发一个浮点数数据,再加End。比如说一个波形的数据为:float,end;2个波形的数据就为:float,float,end。
在下一篇文章中,介绍使用VOFA+调试PID算法
使用VOFA+工具用于调试PID算法_一个做底层的码农的博客-CSDN博客本文介绍使用VOFA+工具用于调试PID算法(重点是实现使用此工具用于调试,而非介绍算法,我也不确定以下算法的正确性,大家参考即可)。一、首先验证发的数据正确性。当我配置发送“0”和“0”数据时,上位机收到数据如图。00 00 80 7F为帧尾。当我配置发送“1”和“2”数据时,上位机收到数据如图。00 00 80 7F为帧尾。如果收到数据不是以上情况,则说明串口发送数据的格式不正确。定时器中断中调用,控制算法和发送函数均在一个函数中实现。//定时器中,1Ms调用一次,固定https://blog.csdn.net/weixin_42316458/article/details/121502912
以上完结。
本人新建了个QQ群,如想进一步沟通可添加:947187213。
串口软件Vofa+,超好用。可用于高速采集数据直观化显示动态相关推荐
- 三星970PRO用于高速采集存储系统
三星970PRO用于高速采集存储系统 背景和挑战 很多高速采集卡客户都需要实时采集存储模式(FIFO),很多应用需要高速实时采集,像单通道1GS/s 14bit采集时,每秒种产生的数据就高达2GB/s ...
- VMWare 认证软件存在SSRF漏洞,可用于访问用户数据
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 VMware 认证软件多个版本中存在一个服务器端请求伪造 (SSRF) 漏洞 (CVE-2021-22056),可导致攻击者获得管理员 JSON ...
- 怎么把word里面的彩色图转化为灰度图,直接在word里面操作,无需转其他软件,超简单!(位图和矢量图都可以)
怎么把word里面的彩色图转化为灰度图,直接在word里面操作,无需转其他软件,超简单!(位图和矢量图都可以) Microsoft Office Word是微软公司的一个文字处理器应用程序.它最初是由 ...
- 基于c#的串口设备通讯c#项目工程含虚拟串口软件与串口通信工具(C#源码)
利用pc与串口通讯,在工业领域使用的很多: 串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在 ...
- 虚拟串口软件+三菱仿真调试神器
虚拟串口软件+三菱仿真调试神器 手上没有三菱PLC也能玩plc?没关系,有了神器,一切都不是问题. 此软件可在PC上虚拟出一对串口,可用于两个软件之间进实现虚拟串口通讯. 有了这个媒介,三菱plc可以 ...
- 什么是故事板?(故事图、Storyboard)(软件显示效果的视觉草图,用于视频创作和广告设计,表达作者的创意)
故事板是软件显示效果的视觉草图,用于视频创作和广告设计,表达作者的创意.20世纪90年代以来,电脑绘制软件渐渐取代了过去的手绘故事板,许多大制作的商业影片,都在拍摄之前用电脑动画模拟的方式创建故事板, ...
- 都是虚拟串口软件惹的祸
调试了半天,原来是虚拟串口软件的限制,最大只能发送1024个字节的数据,换了个虚拟串口软件,问题解决!
- 土方工程量计算表格excel_工程造价算量表+工程量软件,超多表格可套用,高清下载...
工程造价算量表+工程量软件,超多表格可套用,高清下载 工程预算,其实没什么高深的技术,能看懂图纸,能把科学计算器用熟的话,那工作就更简单了.预算员很好做,特别是从技术口转到预算口,那就更容易了.做预算 ...
- A_A03_007 CH32串口软件安装与CH32程序串口下载
A_A03_007 CH32串口软件安装与CH32程序串口下载 一. 软件下载 二.相关链接 三.交流学习 四. 软件安装 五. 软件使用 六.注意事项 一. 软件下载 网盘链接 提取码:1bfv 二 ...
最新文章
- python websocket异步高并发_Python3.5异步和多个websocket服务器
- python中变量的作用域有几种_Python中变量的作用域(variable scope)
- jedis ShardedJedisPool的 HASH一致性算法(一)从String 的hashcode说起
- 自定义ORM系列(三)工具雏形及基本用法
- java编程能做什么_学习Java编程能做什么工作?
- java 能重写构成函数_java函数重载和函数重写
- VS各种工程文件说明
- 七类常见的兼职骗局,你需要知道
- 服务器哪种系统最好,云服务器哪种系统好用
- spring.profiles.active和spring.profiles.include的使用与区别
- 重写需要注意哪些方面?
- 八、Android性能优化之电量优化(二)
- 网站服务器80,443端口一直被恶意攻击怎么办?
- 【DDRNet】DDRNet项目使用单GPU、自己的数据集训练、得到测试图像
- 腾讯地图api_腾讯位置服务JavaScript API GL正式版发布 免费向开发者开放
- java计算机毕业设计网上快捷购物系统源码+系统+数据库+lw文档+mybatis+运行部署
- 【解决方案】Command failed due to signal: Segmentation fault: 11
- 3 种保护您的网站免受恶意攻击的方法
- PaddleOCR的表格结构识别演示
- html网页设计期末大作业——酒庄网页设计实例(5页)
热门文章
- php文字链接下划线怎么取消,html超链接怎么去掉下划线
- ubuntu 外接显示器设置
- OpenGL3.3transform feedback再理解
- 【笨木头Unity】入门之旅003:HelloWorld
- 计算机基础知识与公文写作,公文写作与计算机基础知识.doc
- 中国降低京沪高铁票价和速度
- 通过shell脚本消耗cpu与内存
- chrome 报错connection is not private. NET::ERR_CERT_COMMON_NAME_INVALID Provisional headers warning
- TNF抑制剂相关的肿瘤风险:阿达木单抗、依那西普和英夫利昔单抗随机对照试验的荟萃分析...
- Java查找一个字符串中某字符出现的次数