1 引言
在测试系统中,常需要对多台仪器设备进行集中控制,并对它们的数据进行统一分析处理。测试系统智能化和自动化程度的提高对测试设备间的数据交换提出了更高的要求,这里,分布式控制成为一种十分有效的方式[1]。在分布式测试系统中,数据交换主要在主处理机与各智能控制单元间进行,根据测试系统的特点,其通信系统应具有良好的可靠性、通用性、扩展能力和简单的连接方式,并应能适应长距离传输的需要,在系统通信方式及其协议的制定中应充分考虑以上特点,以使其适应不同测试应用的需要。
2 物理层协议与接口设计
为适应多控制节点和长距离通信的需要,本文采用RS—485半双工串行通信协议作为本测试控制网络的通信标准。由于采用了平衡驱动、差分接收方式,有效地减小了共模干扰等影响,从而使其传输距离和带负载能力等都较RS—232C有很大提高[2]。
由于目前的PC机都配有RS—232C接口,故设计了一种RS—485接口,它可以安放在普通的转接头内,直接插到PC机的串口上,把PC机的RS—232C输出转换为RS—485输出,其结构如图1所示。与其它方法相比,这一方法具有接口方式简单、通用性强、体积小、成本低等优点。另外,我们还可在这一接口中加入智能控制单元,以适应与常规仪器设备通信的需要。
图1 串行接口适配器
3 数据传输协议与软件设计
分布式测试系统中,各测试设备主要与主处理机间进行数据通信,根据这一特点,本文决定采用较为明确的主从式通信作为系统通信方式[3],以保持系统功能的统一性并同时满足其余节点间通信的需要。
3.1 信息帧格式
系统中数据与命令的传输均采用打包方式,数据帧格式如图2所示。其中,地址字节最高位规定为0,用以标志帧起始;采用可变长数据域,数据长度范围为1~255字节;采用两个字节进行数据校验;尾标志规定为0FFH,用以标志帧结束。字节传输格式规定为11位,即8位数据位,1位地址/数据标志位,1位起始位和1位停止位。为便于实现多机通信,把传输字节划分为地址类码与数据类码,地址类码第9位标志为1,可为所有处于听者状态的下位机接收;数据类码第9位标志为0,只能被指定的下位机接收。
通信中,主机发送的命令和数据可分为针对指定下位机的址令和针对所有下位机的通令。为此,我们规定地址7FH为通令地址,发向该地址的命令可为所有下位机接收。为保证数据传输可靠,均采取应答方式进行通信,下位机接收到主机发出的数据后,立即回送状态信息。若超过指定时间仍未收到应答信息,则进行超时报警。本系统中约定用4个字节分别表示系统的通信和工作状态。其中,两个字节代表通信状态,两个字节代表控制器当前工作状态,可根据具体应用进行调整。这里,采用CRC方式进行数据校验,当发现数据传输错误时,主机采用自动反馈重发方法进行纠正。
图2 数据通信帧格式
3.2 基于中断的通信软件设计
为了保证主处理机进行数据处理等工作的时间,通信过程应尽量减小其影响,故在软件设计时,主要过程均采用中断驱动。发送信息时,只需将数据写入缓冲区,其后的过程即由中断接管;同样,接收过程也完全由中断管理,使主机在进行其它处理过程中无需任何等待。为适应不同的通信任务,特别是大数据量通信的需要,接收及发送部分均采用了环形缓冲区结构。为充分利用硬件资源,主要过程采用汇编语言编写,采用嵌入式汇编与汇编调用相结合的方法编写C语言通信函数,以实现与高层程序的接口。另外,各主要通信过程均构成独立的通信函数,可在任何采用该协议的通信网络中使用。图3所示为其中的串口中断处理流程。这里,数据的发送及接收均采取逐字节方式进行,以避免集中占用主机工作时间。
采用以上通信协议和软件,基于总线型网络,我们方便地实现了PC机之间以及PC机与智能仪器间的数据通信,实验证明它们具有良好适应性。
图3 串口中断处理流程
4 网络式通信在检测系统中的应用
在综合性测试系统中,往往需要对其中的多种传感器和执行机构进行集中统一控制。此外,主机主要用于数据处理及分析计算,控制过程不应对以上过程产生影响。一般而言,系统应能控制尽可能多的节点并应具备一定的扩展能力,以便于加入新的测试设备。
对以上控制要求,目前常采取硬件集中方式,即由硬件电路组成集中控制器控制传感器等执行机构的动作,它具有功能集中、速度快等优点,但也有逻辑关系复杂、灵活性差、故障不易排除等许多不足。由前述可见,此类系统可视为由多个传感测试单元及执行机构组成的分布式系统。采用以上网络通信的设计思想,我们可将系统控制功能分散到各测试单元及执行机构,从而构成以系统主处理机兼作主控机的基于半双工通信的分布式测试控制系统。
图4 应用进程与主要通信模块间关系
采用上面所述的通信协议和软件,在约定了本控制系统特定的一套命令码后,即可由主机对各执行机构进行控制。由于采用了全部基于中断驱动的设计方式,系统通信过程不会对主机处理工作产生影响。系统主处理进程与部分通信模块间的关系示于图4。实际应用表明,与原有方法相比,控制系统的性能可得到很大提高。
5 结论
本文旨在研究一种具有较为广泛适应性的数据通信方式并建立一套相应的通信协议,从而为我们今后进行检测过程和检测仪器的自动控制等工作打下基础。实践证明,与传统的集中式硬件控制相比,本文所介绍的基于RS—485的数据通信网络及其协议具有可靠性高、灵活性大、适应性好、故障诊断方便等优点,尤其适用于对智能化测试单元的控制。事实上,只要对图1所示的串行接口稍作改动,即可用于目前许多配有外部通信接口,特别是RS—232C接口的测试仪器,从而实现对仪器设备的远程集中控制。
为测试通信系统的可靠性,将其置于强干扰环境中,经实验,在67.5Kbps波特率、100m传输距离下,完全可以保证数据的可靠传输。