基于USB接口的数据采集系统总体结构解析

图3 正弦波采集测试结果图

1)测试信号为正弦波,峰峰值约为12 V,频率为100Hz.

2)系统以1000Hz的采集频率连续对8个通道进行采集。

3)单片机晶振频率为12MHz.

4)采集系统的数据缓冲区设置为128字节。

5)采集数据记录在SD卡中。

3.2 测试结果分析

由3.1的正弦波采集测试结果图可以得出如下两点结论:

1)采集的正弦波的峰峰值约为12 V,一个周期有10个数据点,根据采集频率1000Hz可知采集到的正弦波的频率为100Hz.

2)在30 ms的时候,正弦波发生畸变,可见采集数据在USB传输过程中发生丢失。

第一点结论说明了本采集系统能准确地进行数据采集,而对于第二点结论所表现出的不完整性分析如下。

1)设V1是有效数据的传输速度,V2是协议开销的传输速度,N为采集数据的通道数目,M为每通道采集的字节数,H为采集频率,K为缓冲区大小,U为传输的协议开销字节数。USB数据帧的组成包括有效数据和协议开销两个部分,其中传输协议的开销包括同步字段、包标识符、地址信息、端点信息和CRC校验,所以数据采集系统要求的USB传输速度可根据公式(1)计算得到。本文设计的数据采集系统共有8个通道,每通道有2个字节的数据,采集频率为1 000 Hz,根据公式(2)可得有效数据的传输速度约为16 kB/s.一个完整的数据帧的传输需要11个字节的协议开销,本文设计的数据传输过程分为4个步骤:发送传输请求,发送接收控制命令,接收请求应答,开始接收数据,每个步骤均需传输一个完整的USB数据帧,因此进行一次传输的协议开销为44个字节,根据公式(3)可计算出协议开销的传输速度。以缓冲区的大小为横坐标,数据采集系统要求的USB传输速度为纵坐标绘出图4所示的关系图,分析该图可得:缓冲区越大,所要求的USB传输速度越少。测试中较少的128字节缓冲区使得在一次传输中有效数据过少,约5.5 kB/s的额外开销传输速度约占总速度的25%,过高的额外传输开销导致数据来不及传输,从而发生数据丢失的情况。

基于USB接口的数据采集系统总体结构解析

基于USB接口的数据采集系统总体结构解析

图4 缓存区大小与USB传输速度关系图

2)另外,由于应用程序要在SD卡这类低速设备上记录数据,所以记录数据的时候来不及获取USB设备中的数据也会导致实际的传输速度变慢,导致新采集的数据溢出缓冲区并覆盖来不及传输的旧数据,从而造成数据丢失。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查