一种基于多路串口通信的电阻快速测量系统设计
2020-06-11周政尹
文/周政尹
(无锡市第五人民医院 江苏省无锡市 214001)
1 引言
TRMD 是一款成熟的电阻测量模块,上位机可通过RS232 接口实时读取电阻测量值。在一种实际工业应用中,需要快速测量12 路被测体,要求在探针接触被测体的200 毫秒时间内至少读取4次电阻值。串口通信在速率和并行处理方面都有一定局限性,本文对多路串口的并行处理进行了研究,并设计开发了相应的上位机软件进行试验,达到了预期的测量效果。
2 测量原理
本系统硬件部分采用12 个TRMD 电阻测量模块,上位机采WINFORM 程序读取测量值。在电阻测量过程中,被测体在流水线上定时滚动,测量探针通过机械装置同频率按压被测体,测量模块即在按压过程中检测到相应的电阻值。由于电阻值会受探针和被测体接触面的影响,因此在按压过程中监测到的电阻值是波动的。显然,在探针刚接触被测体的时候接触面比较小,测到的电阻值会偏大,同理,在探针离开被测体的时候存在同样的问题,理论上在探针稳定按压在被测体上的时候,测量值是最准确的。因此在一次按压过程中,要求电阻测量模块快速读取到多次电阻值,经测算,从探针按压被测体的200 毫秒时间内,假如能读取4 次以上的值,我们认为可以测量到相对准确的值,我们取其中最小的值作为最佳测量值。
一次测量过程如图1 所示。
3 物理设计
基于上述测原理。我们利用12 个TRMD 模块来分别测量12路被测体,多路串口并发处理一般考虑用RS232 转485 接口后接到上位机,然后通过WINFORM 程序读取。由于485 接口是串行处理的,在读取12 路电阻值的时候,程序必须通过排队的方式依次读取。TRMD 模块的理论读取速度是40 次/秒,亦即每次耗时25ms,12 路的读取时间为300ms,加上数据处理时间,则一次耗时在300ms 以上,显然满足不了实际应用的速度。为此,考虑采用多路串口独立连接上位机进行并行处理的模式。
如图2 所示,每个TRMD 模块通过RS232 转USB 转接线独立连接上位机的USB 集线器,这样上位机(多核处理器)可以并行读取每一路的电阻值。
4 通信设计
图1:一次测量过程
图2:物理架构图
图3:快速读取过程
如上所述,在一次测量中探针从接触被测体到离开被测体,由于接触面积的变化,测量到的电阻值会变化,在这个过程中我们要求尽可能快速读取多次电阻值,并取其中的最小值,这样的测量结果就更精确。因此通信过程的设计目标是在200ms 左右的探针接触被测体时间内既能保证通信质量,有要提高读取速度。这里我们采用“即到即发”的原则,即一旦接收到上一次数据则立即发送指令读取下一个数据。
如图3 所示,首次发送读取指令后,DataReceive 事件监测数据接收情况,一旦接收到数据则立即发送读取指令。为防止通信中断或异常,在数据接收超时的情况下通过计时器进行补发指令。经实验测试,每一路每秒可接收25 个左右数据包,且数据包未出现质量异常(长度符合协议规定长度,CRC 校验正常)。
5 软件实现
基于上述物理设计和通信设计,我们设计了相应的软件模块。针对多路独立的测量通道,我们用独立的软件读取模块负责收发数据,然后传递给主程序进行数据处理。
如图4 所示,各个子程序独立连接相应的TRMD 数据通道,快速读取被测体电阻值后发送给主程序。主程序负责异步接收来自各个子程序的测量数据,主程序的核心任务就是解析并处理这些数据,主要分两个环节:计算最小值和判断测量间隔。在程序中,我们定义两个数组CURRENT[12]和LOWEST[12],分别用于保存当前电阻值和最小电阻值。定义电阻无效值为IVAL,保存标志位SAVED,以下伪代码描述了这两个环节的处理过程:
接收到来自第N 路数据;
在实际开发过程中,我们将基于Windows 句柄的消息传递作为主程序和子程序之间的桥梁,两者通过消息传递测量数据,主程序通过消息控制子程序的通信情况。
6 实验结果
按照上述设计开发了相应的WINFORM 程序,并且对12 路的测量数据进行了1 小时的数据监测,分别接收到如图5 所示的数据包数量,平均值超过88200 个,即每秒读取电阻值>24.5 次,在探针接触被测体的200 毫秒内理论测量次数为4.9 次,显然满足测量速度要求。
进而我们对20 组被测样品进行试验,分别测得测量值,后用标准万用表经手工测得相应的标准值,经对比,两者之间误差在10 毫欧以内,误差率<5%,符合测量要求。如图6 所示。
7 结论
图4:软件程序架构
图5:一小时内各路接收到的数据包
图6:测量误差对比
串口作为一种常用的串行通讯接口,由于其标准发布时间早、使用简单,使其在工控和测量设备以及部分通信设备中有着广泛的应用。但是串口的低速率和串行处理的特性给一些应用带来了局限性,研究表明,只要合理制定通信机制和软件处理流程,借助现今多核CPU 上位机的并行处理性能,仍可发挥串行通信设备的优势。