2.5 人机接口设计
本装置通过4个按键组合可用来设定控制参数,如电压上下限,功率因数上下限,电流互感器变比等,还可用来选择手动运行方式还是自动运行方式。液晶显示器选用RT12864,可显示4排汉字,小巧精致、美观。液晶显示模块在工作时显示三相实时功率因数,通过按键翻阅还可以显示三相实时电压,有功功率,无功功率等参数。
3 软件设计
采用模块化的软件设计,将软件分成若干相对的独立的功能模块,并为各模块安排适当的入口和出口参数,使得模块之间的相互连接,组合灵活方便。智能传感器的的软件由数据采集模块、输出控制模块、CAN总线通信模块等组成,各模块在监控系统的程序调度下协调工作。CAN总线通信模块由3部分组成:初始化程序、发送数据程序和接受终端程序3部分组成。由于系统中任意时刻均可主动与其他节点通信,所以,各节点的通信程序相同。基于AT89C52和SJA1000的CAN接口模块通过CAN总线建立通信。SJA1000的应用程序可以被分为初始化程序、报文发送程序和报文接收程序。
3.1 CAN控制器SJA1000初始化设计
节点的初始化主要是指系统上电后对微处理器AT89C52和CAN控制器SJA1000进行的初始化,以确定工作主频、波特率和输出特性等。对AT89C52的初始化可结合其监控任务进行,主要是对中断允许与屏蔽、中断优先级、定时器的使用与设置等,由于SJA1000内部无微处理器,故其初始化仍要通过AT89C52对其进行编程实现。初始化程序流程如图3所示。
图3 初始化程序流程图
SJA1000的初始化应在复位模式下进行,所以在SJA1000初始化程序中首先要将工作方式置为复位模式,之后要设置验收滤波方式、验收屏蔽寄存器(AMR)和验收代码寄存器(ACR)、波特率参数和中断允许寄存器(IER)等。CAN协议物理层中的同步跳转宽度和通信波特率的大小由定时寄存器BTR0、BTR1的内容决定。需要指出的是:对于一个系统中的所有节点,这两个寄存器的内容必须相同,否则将无法进行通信。初始化设置完成后,将复位请求位置“0”,SJA1000就可以进入工作状态,执行正常的通信任务。
3.2 CAN总线发送和接受数据程序设计
对SJA1000进行初始化建立CAN总线通信后,模块就可以通过CAN总线发送和接收CAN数据包。消息的发送由CAN控制器SJA1000根据CAN规则自动完成,主控制器必须把要发送的信息送到SJA1000的发送缓冲器中,并设置“发送请求标识位”于命令寄存器中。模块向总线上发送数据包是主动的,如果一次发送不成功,可以再次发送。
CAN控制器SJA1000根据规则自动接收消息,接收到的消息放入接收缓冲器,此时接收缓冲器状态标识RBS置为1,此时表示接收缓冲器中有接收到的消息。主控制器必须将消息保存到程序设置的消息缓冲器中,同时释放接收缓冲器并对消息内容做出反应。接收过程可以通过SJA1000的中断请求或查询SJA1000的标志位来进行。
4 结束语
本文介绍的通信设计方法应用于电网在线无功补偿控制系统中,其采用的短帧结构,数据传输速度快,受干扰概率低;不同的检测设备节点同时传输数据时,优先级高的节点先传输;采用多主式的数据传输方式,网络上任何一个节点出错都不会影响其它节点的正常运行的特性,从总体设计上可以看出,基于CAN总线无功补偿装置突出的优点是使整个系统减少了引出线,使设备简洁,易于扩展,同时也便于安装、检修和维护。
本文德主要创新点:将CAN现场总线技术用于低压电网无功动态补偿,使用标准协议的通讯方式扩展了系统的通讯结构。采用先进的总线技术使系统结构简洁,效率高,网络上任何一个节点出错都不会影响,大大提高了系统的可靠性和适应能力。