基于TCPIP协议的高精度多路超声信号采集系统
0VC5509A可以在200 MHz的主频下稳定工作,具有128 KB的片上RAM,同时可以扩展4 M×16 bit的片外SDRAM,具有支持SD模式和DMA传输的SD卡控制器,有利于系统的集成,减小系统的体积。网络通信接口的设计与数据采集节点相同。 3.2 数据采集节点软件设计 3.2.2 数据采集节点工作流程 通过采集到的波形可以明显看出,经过长距离的传输后,MPS-140801数据采集卡采集的数据混入了较多的噪声。计算得出本文设计的数据采集系统信噪比比MPS-140801数据采集卡的信噪比提高了近20 dB,从而验证了本系统较传统的数据采集卡具有较高的精度。
3 系统软件设计
3.1 中心控制节点软件设计
中心控制节点的软件设计主要包括两点,一是控制数据采集节点的开始与停止,二是接收并保存数据采集节点发送的数据。由于系统的通信采用的是基于面向无连接的UDP数据报协议,并且系统所挂的分支数据采集节点数是可选择的,所以为了确保数据的正确传输和确定系统所挂的分支节点数,在工作开始的阶段增加了一个握手的过程。首先数据采集节点在上电初始化后向中心节点发送建立连接请求,中心节点在接收到连接请求后保存该节点的IP地址,并检测是否有足够的内存资源,若内存够,则向相应节点发送连接成功数据报,若内存资源不够,则发送连接失败数据报。握手过程进行后中心控制节点发送开始采集广播报,随后各个数据采集节点开始数据采集。为了及时接收数据采集节点的数据,中心节点将接收子程序放入中断中,在非中断期间进行SD卡的写操作。中心控制节点的软件流程图如图5所示。为了保证系统的实时性,在对SD卡的操作中并未应用文件系统,而是将DSP中各个缓冲区的内容依次写入SD卡的相邻地址中,这样若系统所挂的数据采集节点为N个,则第i个节点的两帧数据中间相隔N-1个数据帧。在读取SD的上位机中编写相应的软件便可正确读取每一个数据采集节点的数据。
3.2.1 数据格式的设计
每一个采样点的数据采用32位长整形来存储,包括24 bit的A/D采样转换结果,4 bit的放大阶码,其余位用0填充。UDP报除去数据链路层的包头,有效的负载为46~1 500 B,再除去UDP的首部8 B和IP的首部20 B,这样一个UDP帧的有效最大负载为1 472 B。因为在中心节点写入SD卡的过程中没有采用文件系统,所以需要在数据帧中添加必要的辅助信息,为此在每个包后附加一个8 bit的节点号信息和和一个24 bit的数据包号信息,这样除每个数据采集节点发送的第一帧为避免冲突而采用不同的帧长度外,每一个UDP帧发送45个采样点的数据,具体的数据格式如图6所示。
数据采集节点的软件设计主要包括按照中心控制节点的命令进行采集以及将采集到的数据进行封装并发送到中心控制节点。首先在上电初始化后,和中心节点进行握手,握手成功后,等待开始采集命令,接到开始采集命令后开始采集,在A/D转换完成中断中进行转换数据和放大阶码的读取,在非中断期间发送数据到中心控制节点。由于A/D转换芯片输出两次转换数据的时间间隔较小,并不能保证在这段时间中数据被完全发送,新的转换数据可能会覆盖掉未发送的数据。因此采用“乒乓”操作技术,在分支节点的DSP中开辟两个发送缓冲区,当一个发送缓冲区满的时候将A/D转换数据写入另一个数据缓冲区,同时发送此缓冲区中的数据。这样,数据只要在两个缓冲区同时写满之前发送完成就不会造成数据的丢失。具体的流程图如图7所示。
4 实验结果及结论
为了验证本系统的性能,对已知的正弦波信号源进行采集,并和MPS-140801多路数据采集卡进行对比。MPS-140801采集卡在一块板卡上集成了八路数据采集通路,将远端传感器的模拟信号引到近端经过放大后进行采集。
实验时数据传输的距离为50 m。测试信号是峰值为2 V,频率为20 kHz的正弦波。
图8为本文设计的数据采集系统的采集结果,图9为MPS-140801数据采集卡的采集结果。
本文设计的基于TCP/IP协议的数据采集系统实现了数据采集和传输的全程数字化,同时采用基于预采样的自动增益处理技术,大大提高了系统的精度,从而具有较高的实用价值。
- 工业以太网在八钢小型厂自动化领域中的应用(12-21)
- 基于DSP嵌入式系统的数字电视信号传输采集系统(12-21)
- 基于TCP/IP协议实现上位机对UR机器人的远程控制(12-19)
- RS485与TCP/IP通信方式的比较(12-14)
- 485转tcp/ip的系统结构(12-13)
- 利用stm32的lwip TCP/IP协议栈的通信的思路(12-03)