【超好用】串口软件Vofa+,可用于高速采集数据直观化显示动态

【超好用】串口软件Vofa+,可用于高速采集数据直观化显示动态

文章来源
https://blog.csdn.net/weixin_42316458/article/details/114254766
https://blog.csdn.net/qq_37434641/article/details/115233919

官方下载链接

https://www.vofa.plus/

前言

使用背景:
在调试无感的无刷直流电机的应用中,需要高速采集3路驱动电压,用于检测反电动势的“过零点”。

(其实后来接触控制领域,发觉高速采样模拟信号是非常常见的事情,动辄10k、100k的采样率——2021/06/02)

【因为无刷电机一般转速都比较高。比如每分钟12万转,即2000转/S。而如果无刷电机1个机器周期有3个电气周期,则转速相当于有6000转/S。采样率按信号的十倍算,所以采样率得60k,即采样16.7uS采集一次。而我一次采集3个路,一路数据1Byte(我使用8Bit,没有用10bit、12bit,因为考虑到数据量的问题),即数据量为:60k38=1080000bit,超过了1M/S】

我需要把以上那么多的数据通过数据协议发出来,并且实时直观的显示,这样能查看验证采集到的数据是什么情况,通过什么方法来进行算法处理。
所算需要传输速度快,而且是大约每16.7uS发送一次,一次发3个byte的有效数据。找了些工具:J-Link Scope/ STM Studio/ SerialChart.exe,但是都由于速度不够不能使用。

最终在群友的帮助下,找到了“Vofa+”这个串口软件。

软件说明:
Vofa支持3种数据流方式:分别为:RawData、firewater、justfloat。

RawData:协议适用于不需要解析数据,仅仅查看字节流的需求。【可以直接当串口助手使用】

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波特率。

效果显示:
在网站:https://www.vofa.plus/进行下载软件(可下载免安装的),并进行设置。
在这里插入图片描述

以下是我设置后显示的波形。发送数据周期为60uS,相当于是:16.6k的速度。
在这里插入图片描述
问题1:有些人说自己不显示波形?

回答:我给个提议:1、先使用RawData格式,查看是否收到了数据;2、检查收到数据是否符合协议格式(最后一个结尾的数据是固定的);3、查看自己是否按照我上面图片设置了显示波形。

问题2:怎么增加波形数?

回答:先把一个波形能显示了之后,发送数据的时候多发一个浮点数数据,再加End。比如说一个波形的数据为:float,end;2个波形的数据就为:float,float,end。

VOFA+ 的三种通信协议

RawData: 最基本的通信协议,接收到什么,便打印什么,不做数据的解析处理,仅用于查看字节流数据。

JustFloat: 本协议是小端浮点数组形式的字节流协议,纯十六进制浮点传输,节省带宽。此协议非常适合用在通道数量多、发送频率高的时候。

FireWater: 本协议是CSV风格的字符串流,直观简洁,编程像printf简单。但由于字符串解析消耗更多的运算资源(无论在上位机还是下位机),建议仅在通道数量不多、发送频率不高的时候使用。
在这里插入图片描述
在这里插入图片描述

  • 12
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果您是试验人员,您是否正为买了硬件设备却没有好的配套软件进行数据采集而痛骂? 如果您是硬件厂商、销售人员,您是否正为没有配套软件而影响硬件产品销售而焦急? 如果您是科研人员,您是否正为如何将采集频率不同的多套采集数据统一到同一时间序列而烦恼? 如果您是研究生,您是否正为老板交代的试验数据采集分析任务而抓狂? 通用型多串口数据采集分析系统主要用于串口数据采集和分析,操作简单,通用性强,支持多个串口同时采集。 主要功能 1、读取串口数据,并在软件界面上以记录和解析两种模式进行显示。 2、保存数据到磁盘文件。 3、根据实际需要,对采集到的数据进行重新采样。 主要特点 1、满足基本条件的所有串口通信设备数据采集均可采用本系统完成,通用性强。 2、数据采样及文件记录采用多线程方式,保证互不冲突。 3、自动记录用户设定的选项,下次使用时直接调用,无需重复配置。 4、提供多种插值采样方式,确保重新采样数据能够较准确地反映真实情况。 5、数据采样记录精确到毫秒,确保数据具有较高精度。 6、采用时间、串口号、各类标识自动命名文件夹、数据文件,保证采样数据组织得更清晰明了。 7、支持多个串口同时采集,请将数据置于同一位置,无需打开多个程序,简单快捷。同时界面串口数可手动配置,非常灵活。 适用范围 适用于任何包含以下2条特征的任意串口通信设备数据采集,如GPS、姿态仪、全站仪、电子秤、水准仪等。 1、串口数据以回车符作为每条数据分隔。 2、串口数据采用ASCII字符编码,而非十六进制编码。 3、本软件仅适用于微软操作系统,包括Windows XP/2000/Vista/2008/Win7操作系统。
您好!要通过 MSP430F5529 向 VOFa+ 发送数据,您需要使用 MSP430F5529 的串口模块和适当的通信协议(如 UART)。下面是一个基本的示例代码,演示了如何在 MSP430F5529 上配置串口并发送数据。 首先,您需要包含相应的头文件和定义必要的变量: ```c #include <msp430.h> #define UART_TXD BIT2 // UART发送引脚 unsigned char TXData; // 要发送的数据 ``` 然后,在主函数中进行串口初始数据发送: ```c void main(void) { WDTCTL = WDTPW + WDTHOLD; // 停用看门狗定时器 P3SEL |= UART_TXD; // 配置UART引脚为外设功能 UCA0CTL1 |= UCSWRST; // 复位UART模块 UCA0CTL0 = 0; // 8位数据,无校验位,1个停止位 UCA0BR0 = 104; // 设置波特率为9600(时钟频率为1MHz) UCA0BR1 = 0; UCA0MCTL = UCBRS_1; // 以微调方式设置波特率 UCA0CTL1 &= ~UCSWRST; // 启用UART模块 TXData = 'H'; // 要发送的数据 while(1) { UCA0TXBUF = TXData; // 将数据放入发送缓冲区 __delay_cycles(1000000); // 延迟一段时间等待发送完成 } } ``` 这个示例代码将在 MSP430F5529 上配置 UART,然后将数据 'H' 发送到 VOFa+。您可以根据需要修改波特率、发送的数据等。 请注意,这只是一个基本的示例,您可能需要根据具体情况进行适当的修改和调整。同时,请确保您已经正确连接了 MSP430F5529 和 VOFa+ 之间的串口通信线路。 希望对您有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值