您现在的位置是:首页 > 电源

大功率开关电源系统通信模块设计

2019-12-21 18:01:46

摘    要: 介绍了一种多台大功率开关电源装置与计算机通信的实现方案,并采用了RS-232C和RS-485双串行通信总线标准接口,实现了计算机可以实时采样和设置电源输出电压、输出电流和各个开关量的状态。
引言
近年来,开关电源的技术得到了迅猛发展,对开关电源的智能化要求也越来越高。电源监控系统作为实现电源系统智能化要求的一部分,也越来越得到广泛的应用。电源监控系统的主要功能是通过电源与计算机的通信模块完成与监控中心的信息交换,接收监控中心的各种监测与遥控命令,并将电源的各种状态信息反馈给监控中心。本文所介绍的通信模块实际中用于笔者所研制的多台12V,5000A电镀用开关电源与计算机的通信,实现了对多台电镀电源的远程集中控制。该通信模块与计算机通信的主要特点是实现了计算机与电源的主从总线1:N通信方式,并且采用了RS-232C和RS-485双串行通信总线标准接口。


图1 通信模块电路结构图



图2  主从总线1:N通信方式示意图



图3  请求命令包格式


通信模块电路设计
该通信模块采用的控制芯片是MCS-51系列单片机80C52,通信模块电路结构框图如图1所示。计算机通过该通信模块完成与电源间的通信,可以实时读取电源的输出电压、输出电流值以及输出过压、输入过压、输入欠压、过流、过温、运行/停止等8路开关量的状态值,并可以在输出值允许的范围内任意设置电源的输出电压、输出电流值和复位、合闸、分闸、机控/本控4路开关量的状态值。从通信模块电路结构框图可以看出,如果计算机需要读取电源模块的输出电压、输出电流值和开关量的状态时,单片机收到请求命令后启动A/D转换芯片MAX182对电源的输出电压、输出电流两路模拟量进行转换,转换后的数据送入单片机进行数据处理。同时表征电源运行状态的8路开关量从双总线收发器74LS245读入送至单片机寄存器存贮。单片机将所有处理后的数据按预定数据传送格式发送给计算机输出显示。计算机需要设置电源的输出电压、输出电流值和4路开关量的状态时,计算机将设置好的数据按预定格式发送给单片机。单片机接收处理后启动D/A转换芯片MAX532和输出锁存器74LS573将处理后的输出电压、输出电流值和开关量状态值输出给电源。通信模块从而实现了计算机对电源的实时监测和遥控。为了保证设计人员的安全和防止通信模块受电源影响而损坏,电源与通信模块之间的信号传递均通过光耦隔离。
为了确保电源与计算机在不同应用场合的准确通信,该通信模块采用了RS-232C和RS-485双串行通信总线标准接口。RS-232C适于短距离或带调制解调器的通信场合,其逻辑电平对地是对称的,与TTL、MOS逻辑电平完全不同。逻辑0电平规定为+5V~+15V之间,逻辑1电平为-5V~-15V之间,模块中采用了MAX232驱动芯片进行电平转换。RS-232C标准接口的主要缺点是数据传输速率慢、传送距离短,抗干扰能力差。模块配备RS-232C标准接口使得任何含有串行通信口的计算机均可以实现和电源的通信,具有广泛的适应性。RS-485标准接口为差分驱动结构,它通过传输线驱动器把逻辑电平变换为电位差,完成信号的传递。RS-485具有传输速率快、传送距离长、抗干扰能力强等优点,模块中采用了MAX485驱动芯片进行电平转换。MAX485输出的差分信号需经RS-232与RS-485转换模块转换后才能送至计算机,所以所有使用RS-485与电源进行通信的计算机必须安装232/485转换接口卡。本模块配备的RS-485通信总线标准接口使得通信模块可以适用于环境干扰比较大的工业现场的长距离通信。


图4  通信模块程序框图


主从总线1:N通信方式
要实现计算机与电源间的正常通信,必须制定正确的通信协议。该模块设定的通信协议优点是实现了一台计算机可以同时监控多台电源的主从总线1:N通信方式。在总线结构上有一个主站、即计算机,N个电源做为总线结构上的从站。
主从总线1:N通信方式可以采用多种通信协议实现总线使用权的分配,本系统使用地址查询方式,主从总线1:N通信方式示意图如图2所示。系统给每个电源分配唯一的一个地址号,计算机分配一个固定的地址号。当计算机需要和某台电源建立通信时,计算机发出一个含有该电源地址号的请求命令包。挂在总线上的所有电源一直处于等待接收数据状态,计算机所发出的请求命令包将被所有的电源所接收。每个电源将接收到的请求命令包中所包含的电源地址号与本模块的地址号相比较,只有地址号与计算机所发出的请求命令包中所包含的地址号相同的电源才与计算机建立通信,响应计算机所发出的请求命令。其它地址号不相同的电源将拒绝响应计算机的请求命令,继续保持接收数据状态,等待响应计算机发出的下一个请求命令包。系统中的这种地址查询方式实现了任何时候总线上最多只有一台电源与计算机通信,其它电源处于等待接收数据状态,从而有效的避免了总线使用权的冲突。
计算机请求命令包格式如图3所示,该命令包采用的是异步通讯格式。4个字节的起始符和结束符分别用来表征命令包的开始和结束,目的站地址就是计算机所希望建立通信的电源地址号,源地址是计算机地址号。命令码是计算机对电源所发出的命令信息,用来表征计算机发出的命令是希望读取电源的输出电压、输出电流值以及开关量的状态值还是希望设置电源的输出电压、输出电流值以及开关量的状态值。校验码和信息长度是用来检验数据传输是否正确、有无数据丢失的信息量。数据信息是命令包的主要部分,包含命令包所要传送的输出电压、输出电流值和开关量的状态值等数据信息(仅设置电源状态命令包含有此项,读取电源状态命令包不含此项)。当电源接收到计算机发出的请求命令包后,执行完计算机命令的相关操作后必须返回计算机一个应答数据包。电源响应计算机的应答数据包也采用相同的数据包格式,只不过目的站地址和源站地址分别为计算机地址号和电源自身的地址号。

软件设计
该通信模块采用的控制芯片是MCS-51系列单片机80C52,采用汇编语言对单片机进行程序设计,实现了数据采集、处理和与计算机通信等功能。
软件设计采用中断查询方式。程序在执行过程中由于外界的随机原因而被中间打断的情况即称为“中断”。通信模块在未与计算机建立通信之前,主程序处于等待接收数据状态,不断查询外部串行口中断。一旦计算机发出请求命令包,所有通信模块接收到数据包后均进入串行口中断程序进行判断识别,只有地址号与数据包中所包含的目的站地址相同的电源才与计算机建立通信关系并解读请求命令数据包,根据命令产生相应的启动A/D、D/A或读取开关量、设置开关量等操作,并返回与请求命令数据包格式相同的响应数据包给计算机。通信模块程序框图如图4所示。

结语
本通信模块已经安装于笔者自行研制的多台12V,5000A电镀用开关电源中,通过在现场与计算机的通信试验,实际监测和设置的各项参数均达到了设计指标,达到了集中监控和遥测多台电源的预定要求,运行情况良好,具有推广应用价值。