在自适应光学系统设计中,波前校正器作为光学系统的一个重要组成部分发展起来,它与波前传感器和波前控制部分相结合,使光学系统具有克服外界动态干扰的能力,这是传统光学技术难以做到的。在众多类型的波前校正器中,分立压电式连续镜面变形镜以其变形量大、表面变形没有间断点等优点而被广泛的采用。变形镜的结构有基板、驱动器和薄镜面组成,在基板上固定若干个压电驱动器,驱动器前在固定一个薄的光学镜面,施加电压给驱动器,压电陶瓷即可产生正的或负的变形,从而推动薄反射镜表面产生变形,起到改变光学波前并校正波前误差的作用。为了防止压电驱动器输出电压出现异常,导致系统出现故障,需要及时了解各路压电驱动器输出电压情况,并且工程中要求监测上千路压电驱动器的输出电压,所以设计压电驱动器输出电压监测显示系统成为一个亟需解决的课题。
本设计的主要工作是利用20路电压测量模块采集到压电陶瓷驱动器的输出电压,通过ModBus RTU通讯协议,经RS485接口将电压数据传送到高速单片机,并在LCD液晶屏上实时显示各路压电驱动器的输出电压值,20路电压监测系统框图如图1所示。
图1 20路电压监测系统框图
1 20路电压测量模块介绍
1.1 20路电压测量模块功能与特点
20路电压测量模块是一智能型的数据采集模块,可以测量20路电压号,输入信号为直流。其输出为RS485,通讯协议符合ModBus RTU协议。此模块可以广泛应用于各种工业测控系统。其主要的功能特点如下:
采用最新电子技术,以高速信号处理器、微处理器为核心的数字式智能型数据采集模块;可测量20路0~500 V直流电压信号;并且量程可以根据需要选择;配有光电隔离的RS-485通讯接口,ModBus RTU通讯规约,可以与具有ModBus兼容协议的监控系统进行信息数据的有效传送。
20路电压测量模块的技术指标如下:
测量精度能够达到0.2级,在利用模块进行组网时,地址范围是0~255,并且波特率可选,默认值为9 600b/s。
工作条件:温度范围是-30~70℃,湿度范围是10%~90%RH;存储条件:温度范围是-40~80℃,湿度范围是10%~90%RH。
1.2 ModBus通讯规约
在各种不同的系统通信中,Modbus协议是一种在工业领域被广泛应用的、真正开放的、标准的网络通信协议,通过该协议控制器之间、控制器与其它设备之间都可以实现通信。由于设计所用的20路电压测量模块采用ModBus通讯协议,作为主机的单片机也应该采用此协议,才能实现主机与从机的通信。在编程实现主机功能之前,需要理解协议的规约。
主机查询信息包括从设备地址、功能代码、所有要发送的数据、错误校验。从机回应信息包括确认要行动的域、任何要返回的数据、错误校验。
主机和从机的通信方式符合查询-回应的方式,主机发送的查询消息中的功能代码告诉从机要执行何种功能,数据段中包含了从机要执行功能的附加信息以及寄存器的起始地址和数量,错误校验为从机提供了一种验证消息内容是否正确的方法。从机产生回应是建立在读取指令未发生错误的前提下,在回应消息中的功能代码是查询消息的回应,数据段包含了从机收集的数据。如果中间过程发生错误,功能代码将被修改,并且数据段包含描述错误信息的代码,错误校验允许主机确认消息是否可用。
1.3 20路电压测量模块组网
因为20路电压测量模块的输出为标准RS485,所以以RS485为接口的20路电压测量模块可以进行组网。通常RS485网络节点数最多为32个,通过中继器可以提高RS485接口的带负载能力,最多可达到驱动256个模块的能力,从而可以将多个20路电压测量模块组成网络,满足实时监测几百路甚至上千路电压的需要,最终达到监测显示多路压电驱动器输出电压的要求。
2 系统部分硬件设计
2.1 RS485通信接口
由于20路电压测量模块支持RS485串行通信,为了实现单片机与电压测量模块的数据通信,必须设计RS485通信接口。主机可以通过RS485接口将查询信息传送给从机,同时从机可以将采集的实时电压数据回应给主机。采用RS485信号收发专用芯片MAX485实现信号的转换,在设计电路时要充分考虑MAX485芯片同相端、反相端的电平对应关系。由于从机回应数据帧的初始位-低电平使主机产生接受中断,所以只有MAX485芯片同相端A的初始电平大于反相端B的初始电平时,才能保证主控制器单片机打开接收中断时不会产生误中断,而造成接到错误的数据帧,RS485接口电路原理图如图2所示。
图2 RS485接口电路原理图
2.2 LCD液晶显示模块
LCD液晶显示模块-LM320160CCW是320x160全图形点阵的液晶显示模块,该模块支持并口通信,内置升压电路,5 V供电;模块显示屏由内置的主控芯片S1D13700控制,可靠性高,指令简单,易于操作;此外,液晶模块使用高亮度LED背光,实现极佳对比显示,蓝底白字或白底黑字,显示效果可选。液晶模块的以上特点适合本设计选用的C8051F120主控制器,LCD液晶显示范围也可以满足本设计信息显示的需要。对于内置控制芯片的液晶显示模块,在电路设计时,只需把液晶的控制电路信号分清就可以方便的使用。由于LM320160CCW液晶模块中配备液晶控制单元,所以在接口电路设计不需加入更多控制芯片就可实现图形或字符的显示。
2.3 LCD与控制器接口电路设计
在接口电路设计中,由于LM320160CCW液晶显示模块为5 V供电,而单片机为3.3 V供电,所以不能简单的彼此连接在一起,需要做电平处理。本次设计中选用741S245作为总线驱动器,并在单片机引脚加入5 V上拉电阻,这样即可保证信号的驱动能力,接口电路原理图如图3所示,其中P3和P7为单片机的I/O端口,RV1为可调电阻,用于调节液晶模块背光对比度。
图3 LCD接口电路原理图
3 系统软件设计
系统上电复位后,液晶模块需要系统初始化、写入指令代码、写入数据3个步骤才能正常工作。在指令、数据写入的过程中要注意时序问题,如果时序过短,会导致指令、数据无法正确写入液晶模块,而造成信息无法显示或出现花屏现象。由于主控制器单片机采用C语言编程,因此,单片机程序和液晶模块显示程序都具有很强的移植性、可操作性。
3.1 液晶模块指令、数据的写入
液晶模块在正常工作之前,首先进行模块初始化,写入系统设置命令将使液晶模块退出电源模式,并且启动模块内部时钟,经过一定的延时将初始化液晶模块的内部状态。然后设置液晶模块的显示模式,包括打开显示、设置游标、设置图形模式等。所有指令的写入都可以通过公用的指令函数实现。写指令程序如下:
LCD320160CCW写显示数据程序包括清屏、图形界面、符号和汉字等数据信息,数据的写入是建立在指令正确写入的基础上。因为该LCD模块为图形点阵式,所以可以将显示信息转换为相应的点阵数组,在需要显示信息时只需调用点阵数组即可,写数据程序如下:
3.2 控制器主程序设计
图4为单片机主程序流程图,在系统及LCD初始化完成后,主机计算查询信息的错误校验CRC码,并且将其附加在发送信息的末端,低字节在前,高字节在后;查询信息通过定时器2实现定时发送,由于设定的UAWT波特率为9 600 b/s,查询信息的字节数为8个,从机正确回应信息的字节数为35个,那么一次发送、接受过程字节总数为43个,需要的时间为T=43x8x1 s/9 600x1 000=35.8 ms,所以确定定时器2的定时间为50 ms.一次定时间隔内除发送、接收的时间外,其余时间用于LCD液晶显示,由于压电驱动器电压变化速率相对与定时器定时频率比较大,因此可以认为监控、显示具有较好的实时性,并且在程序中按照这样的顺序安排任务调度能够满足实际工程中实时性的要求。
图4 单片机主程序流程图
4 结论
本文中通过对20路电压测量模块以及ModBus协议进行介绍,在此基础上搭建基于高速单片机C8051F120的硬件连接,通过编写控制器程序实现了单片机与电压测量模块的数据通信和电压的LCD液晶实时显示。实践结果表明,该设计硬件结构简单,运行稳定可靠,开发周期短,满足实时监测显示自适应光学系统中各路压电驱动器输出电压值的需要,具体实物如图5所示。
图5 电压监测、实时显示系统实物图