基于单片机的双电源自动切换开关控制器
武彦飞,童峥嵘,邢文华,王俊峰
(天津理工大学 计算机与通信工程学院,天津 300384)
随着社会科技的发展与进步,生活水平的日益提高,人们对电的依赖性逐渐加强,电力系统的连续可靠性成为保障正常生活的重要指标。特别是一些重要用电场所(医院、机场、大型生产线、银行等),电力系统出现故障时,如果不能及时供电,将会带来巨大损失[1]。自动转换开关(Automatic Transfer Switching Equipment,ATSE)便是为了确保供电连续而设计的。ATSE 由开关主体和其他必需的电器组成,设有监测电源电路对电源进行故障检测,并且能够自动将一个或几个负载电路从一个电源转换至另一个电源[2]。1992年在上海金茂大厦的设计中我国首次引入ATSE,此后在我国的建筑工程等领域,这种开关装置得到了普遍应用[3]。国际电工委员会标准将ATSE分为CB级和PC级。CB级ATSE结构复杂、体积大、切换时间长且可靠性较差,故随着ATSE技术的不断进步,其应用领域逐渐缩小。PC级ATSE结构简单、体积小、切换时间短且安全可靠,近年来逐渐占据了ATSE的主流市场[4]。
本文设计了一种以STC单片机为控制核心的双电源自动转换开关控制器。系统设有常用与备用两个电源,正常情况下常用电源供电;设有电压检测模块对常用、备用电源电压进行实时监测;设有单片机控制模块对采集电压进行处理与判断,并根据判断结果发出相应控制命令;设有电机与电闸切换模块响应单片机的控制命令,快速进行电源切换动作。当系统判断常用电源出现故障(如欠压、过压、断相)时,各模块协同运作,自动切换到备用电源供电;当系统判断常用电源恢复正常时,再自动切换回常用电源供电。STC单片机具有体积小、数据处理速度快、抗干扰性强和功耗低的特点[3],保障该控制器的有效性。相较于传统的以单片机为基础的双电源自动转换开关控制器,为了提高本控制器的抗干扰能力,在电压检测电路中加入光电隔离电路和滤波电路,有效隔离环境、电磁场等因素的干扰;软件采用C语言及其内核函数编程,语法灵活;用内部逻辑关系代替实际的硬件连接,避免大量中间连线的干扰,保障该控制器的可靠性。
1系统总体设计
系统主要由电压检测模块(常用电检测和备用电检测)、电机模块、电闸模块、按键控制模块以及故障报警模块组成,结构框图如图1所示。电源模块在常用电源与备用电源之间选择一路为单片机供电[5];电压检测模块
对常用电源与备用电源各个相的电压进行检测,检测结果作为采样值送入单片机。单片机对接收到的信号进行处理与判断,当检测出常用电源有任意一相电压信号不正常时,单片机对继电器与电机发出控制命令,使电机反转,备用电闸闭合,控制面板上备用电源指示灯亮,备用电源供电;当检测出常用电源恢复正常后,单片机对继电器与电机发出控制命令,使电机正转,备用电闸断开,常用电闸闭合,从备用电源切换到常用电源供电,控制面板上常用电源指示灯亮。同时设计故障报警模块和按键控制模块,便于及时进行故障检修以及人工切换电源。
系统实现的主要功能如表1所示。状态1表示继电器控制电机,保持常用电闸闭合,系统使用常用电源。状态2表示继电器控制电机,使备用电闸闭合,系统使用备用电源,系统向外报警,常用电故障。状态3表示继电器控制电机,保持常用电闸闭合,系统使用常用电源,系统向外报警,备用电源故障。状态4表示系统不工作。
2硬件设计
2.1实时电压检测
电压检测电路对常用电源与备用电源输入的三相交流电压(NA、NB、NC)进行检测,系统采集三相电压值作为常用电源与备用电源正常的标志。当检测到其中任何一相电压不正常时,表明电源发生故障。通过STC204D2单片机A/D模块编程把所采集到的信号模拟量转换为数字量,判断常用电源是否供电正常,进而控制继电器,驱动电机切换电源。在电压信号检测电路中加入光电耦合电路和滤波电路,增强控制器硬件抗干扰能力。
STC204D2单片机内部A/D转换采用均方根算法,电压的公式可以表示为:
式中:U为模拟量转换为数字量的电压值;T为采样时间;uL(t)为采样电压瞬时值。
由于采集到的都是不连续的点,所以将公式离散后进行数字化。离散后的公式为:
式中:N为每个周期的采样点个数;uLj为第j个电压采样值。
常用电源火线NA作为电源部分为系统供电,如图2所示。经过变压器后输出12 V交流电,在R2与R3之间进行分压。变压器输出为正电压时,NA点为正常分压;变压器输出为负电压时,由于二极管D1的钳位电压作用,NA将固定在-0.7 V。最终将检测值输出到单片机A14口。系统采集NA的值作为常用电正常的标志之一。
对图2电路进行仿真,NA点输出波形如图3所示。输入为220 V 50 Hz交流电,测得NA点电压值约为1.94 V。
常用电火线NB与NC一同检测,如图4所示。NB信号经过R4、R5、R6分压,经过第一个光电耦合器U1输出,作为第二个光电耦合器U2的集电极输入。其中C4的作用是使第二个光电耦合器输入电压稳定,C5与R10的作用是将信号转变为高电平输出给单片机。NB与NC间存在相位差,同时有电时NBC处能够检测到直流信号,最终输出给单片机A13口。NBC电压作为常用电的标志之一。
对图4电路进行仿真,第一个光电耦合器输出NB点与NBC点的输出波形如图5。第一个光电耦合器导通,输出电压降低,为C4充电,两个光电耦合器依次导通,为NBC逐渐充到高电平的电压,输入为220 V 50 Hz交流电,仿真得到NBC点电压值约为4.3 V。检测时间为0.2 s。
2.2常用、备用电源切换的硬件实现
系统存在常用、备用两路电源,各由一个电闸控制。两个电闸间设计一个由电机控制的切换装置,电机正转时, 图6电机控制电闸示意图
常用电闸闭合,常用电源供电。电机反转时,备用电闸闭合,备用电源供电,如图6。
单片机通过cont0、cont1、cont2三个端口控制继电器J3、J1、J2,实现电机供电选择、电机旋转方向选择的功能[6],最终控制电机进行常用、备用电源切换,如图7。cont2驱动J2在常用电与备用电之间选择一路电为电机供电;cont0驱动J3控制电机的正转与反转。若J2直接同时接入常用电与备用电,则切换时电流较大,容易产生火花,比较危险,故设计cont1驱动J1控制备用电的接入,在J2接入备用电之前对备用电进行断开处理,仅当常用电不正常需要备用电时再去接通。
3软件设计
软件设计部分包括显示程序与控制程序。显示程序用来显示检测到的实时电压值,供人工查询;控制程序用来实现单片机对继电器与电机的控制,完成常用、备用电源之间的转换。图8为控制程序流程图。软件程序采用C语言及其内部特定的内核函数编写,提高了程序运行效率;采用“指令冗余”技术,多编写单字节指令,在双字节、三字节指令后面加两条单字节指令NOP,增强了控制器软件抗干扰能力[7]。
首先,对单片机以及继电器进行初始化设置。然后,对常用电源电压值进行判断。如果常用电源三相电压值均正常,则继续对备用电源输入电压值进行判断:备用电源正常,重新初始化进行新一轮判断;备用电源不正常,则备用报警,持续检测备用电源直至其正常为止。如果常用电源有任一相电压不正常,则常用报警,备用合闸,使备用电源供电,之后持续对常用电源进行检测直至其恢复正常,备用断闸,常用合闸,常用电源重新供电,初始化进行新一轮判断。
系统软件与硬件相结合,经过调试后,能够使单片机双电源自动切换开关控制器正常运行,完成电源切换的功能。
对控制器进行测试,测试内容如下:
测试条件:常用电正常,然后断路(NA、NB、NC全为0 V),备用电正常。
测试结果:常用报警,备用电合闸,由备用电供电,切换时间约1 s。
结果分析:在信号采集阶段,图4中NB、NC经两个光电耦合在NBC处得到稳定电压值约用时0.2 s,电闸动作0.8 s。
4结论
本文设计了一种以单片机为核心的双电源自动转换开关控制器,并对其硬件与软件设计进行了深入讨论。该控制器的电压检测模块能够实时检测常用、备用电源的供电状况;系统能够自动判断电源出现的各种故障(如断相、欠压、过压等),并快速进行电源切换;控制面板能够显示当前供电状态供人工查询。与此同时,系统信号采集采用均方根算法,保证了数据的精确性与可靠性;软件编程采用C语言,语法灵活、运行速度快、效率高;在系统的硬件与软件设计中均采取了抗干扰措施,显著提高了控制器的可靠性。
参考文献
[1] 王舜尧,姚建军,王汝文.一种多功能双电源转换智能控制器[J].低压电器,2002(4) : 2931.
[2] GB/T14048.112008.低压开关设备和控制设备[S].2008.
[3] 陈众励.ATSE应用中需关注的几个问题[J].电气应用,2006(5):155157.
[4] 康洪富,张兴波.基于STC系列单片机的智能温度控制器设计[J].电子技术应用,2013,39(5):8688.
[5] 赵荣康.智能型双电源开关控制器的设计 [J].微型机与应用,2010,29(15):2224.
[6] 苏和,时述有.SSR控制的电动机正反转电路设计[J].电子技术应用,2009,35(12):6566.
[7] 杨开宇,柯慧,高印寒,等.智能压装力单片机测控系统的抗干扰设计[J].计算机测量与控制,2013,21(11):29262928.
多个单片机的通信方式
一技在手天下我有!如您觉得本文对您有用烦请收藏转发加关注哟~笔芯
下面简述常用单片机之间的通信方式
1. 采用硬件UART进行异步串行通信。 这是一种占用口线少,有效、可靠的通信方式;但遗憾的是许多小型单片机没有硬件UART,有些也只有1个UART,如果系统还要与上位机通信的话,硬件资源是不够的。这种方法一般用于单片机有硬件UART且不需与外界进行串行通信或采用双UART单片机的场合。2. 采用片内SPI接口或I2C总线模块串行通信形式。 SPI/I2C接口具有硬件简单、软件编程容易等特点,但目前大多数单片机不具备硬件SPI/I2C模块。
3. 利用软件模拟SPI/I2C模式通信 ,这种方式很难模拟从机模式,通信双方对每一位要做出响应,通信速率与软件资源的开销会形成一个很大的矛盾,处理不好会导致系统整体性能急剧下降。这种方法只能用于通信量极少的场合。
4. 口对口并行通信,利用单片机的口线直接相连,加上1~2条握手信号线。 这种方式的特点是通信速度快,1次可以传输4位或8位,甚至更多,但需要占用大量的口线,而且数据传递是准同步的。在一个单片机向另一个单片机传送1个字节以后,必须等到另一个单片机的接收响应信号后才能传送下一个数据。一般用于一些硬件口线比较富裕的场合。
5. 利用双口RAM作为缓冲器通信。 这种方式的最大特点就是通信速度快,两边都可以直接用读写存储器的指令直接操作;但这种方式需要大量的口线,而且双口RAM的价格很高,一般只用于一些对速度有特殊要求的场合。
从上面几种方案来看,各种方法对硬件都有很大的要求与限制,特别是难以在功能简单的单片机上实现,因此寻求一种简单、有效的,能在各种单片机之间通信的方法具有重要的意义。③、④方案中,双方单片机要传递的每一位或每一个字节做出响应,通信数据量较大时会耗费大量的软件资源,这在一些实时性要求高的地方是不允许的。
针对这一问题,假设在单片机之间增加1个数据缓冲器,大批数据先写入缓冲区,然后再让对方去取,各个单片机对数据缓冲器都是主控模式,这样必然会大大提高通信效率。谈到数据缓冲,我们马上会想到并行RAM,但是并行RAM需要占用大量的口线(数据线+地址线+读写线+片选线+握手线),一般在16条以上。这是一个让人望而生畏的数字,而且会大大增加PCB面积并给布线带来一定的困难,极少有人采用这种方式。串行接口的RAM在市场上很少见,不但难以买到而且价格很高。移位寄存器也可以做数据缓冲器,但目前容量最大的也只128位,因为是“先进先出”结构,所以不管传递数据多少,接收方必须移完整个寄存器,灵活性差而且大容量的移位寄存器也是少见难买的。一种被称为“铁电存储器”芯片的出现,给我们带来了解决方法。
利用铁电存储器作为数据缓冲器的通信方式 铁电存储器是美国Ramtran公司推出的一种非易失性存储器件,简称FRAM。与普通EEPROM、Flash-ROM相比,它具有不需写入时间、读写次数无限,没有分布结构可以连续写放的优点,因此具有RAM与EEPROM的双得特性,而且价格相对较低。
现在大多数的单片机系统配备串行EEPROM(如24CXX、93CXX等)用来存储参数。如果用1片FRAM代替原有EEPROM,使它既能存储参数,又能作串行数据通信的缓冲器。2个(或多个)单片机与1片FRAM接成多主-从的I2C总线方式,增加几条握手线,即可得到简单高效的通信硬件电路。在软件方面,只要解决好I2C多主-从的控制冲突与通信协议问题,即可实现简单、高效、可靠的通信了。
实例(双单片机结构,多功能低功耗系统)(1)硬件 W78LE52与EMC78P458组成一个电池供电、可远程通信的工业流量计。78P458采用32.768kHz晶振,工作电流低,不间断工作,实时采集传感器的脉冲及温度、压力等一些模拟量;W78LE52采11.0592MHz晶振,由于它的工作电流较大,采用间断工作,负责流量的非线性校正、参数输入、液晶显示、与上位机通信等功能,它的UART用于远程通信。2个单片机共用1片I2C接口的FRAM(FM24CL16)组成二主一从的I2C总线控制方式,W78LE52的P3.5、P3.2分别与78P458的P51、P50连接作握手信号线A与B。我们把握手线A(简称A线)定义为总线控制、指示线,主要用于获取总线控制权与判别总线是否“忙”;握手线B(简称B线)定义为通知线,主要用于通知对方取走数据。
(2)I2C总线仲裁 由于我们采用的是二主一从的I2C总线方式,因此防止2个主机同时去操作从机(防冲突)是一个非常重要的问题。带有硬件I2C模块的器件一般是这样的,器件内部有1个总线仲裁器与总线超时定时器:当总线超时定时器超时后指示总线空闲,这时单片机可以发出获取总线命令,总线仲裁器通过一系列操作后确认获取总线成功或失败;超时定时器清零,以后的每一个SCL状态变化对总线所有主机的超时定时器进行清零,以防止它溢出,指示总线正处于“忙”状态,直到一个主机对总线控制结束不再产生SCL脉冲;超时定时器溢出,总线重新回到“空闲”状态。但是目前大多数单片机没有配备硬件I2C模块,而且当2个主机的工作频率相差较大时,超时定时器定时值只能设为较大的值,这样也会影响总线的使用效率。
下面介绍一种用软件模拟I2C总线仲裁的方式(I2C读写操作程序的软件模拟十分多见,这里不再多述):用1条握手线A,当A线高电平时,指示总线空闲;当其中一个主机要获取总线控制权时,先查询总线是否空闲,“忙”则退出,空闲则向A线发送一个测试序列(如:1000101011001011),在每次发送位“1”后读取的A线状态。如果读取状态为“0”,马上退出,说明有其它器件已经抢先获取总线;如果一个序列读取的A线状态都正确,则说明已成功获得总线控制权,这时要拉低A线以指示总线“忙”,直到读写高A线,使总线回到“空闲”状态。不同的主机采用不同的测试序列,或产生随机测试序列,测试序列长度可以选得长一些,这样可以增加仲裁的可靠性。
(3)通信协议 一个可靠通信体系,除了好的硬件电路外,通信协议也至关重要。在单片机系统RAM资源与执行速度都非常有限的情况下,一个简捷有效的协议是非常重要的。下面具体介绍一种比较适用于单片机通信的协议,数据以包的形式传送。数据包结构:
①包头——指示数据包的开始,有利于包完整性检测,有时可省略;
②地址——数据包要传送的目标地址,若只有双机通信或硬件区分地址可以省略;
③包长度——指示整个数据包的长度;
④命令——指示本数据包的作用;
⑤参数——需要传送的数据与参数;
⑥校验——验证数据包的正确性,可以是和校验、异或校验、CRC校验等或者是它们的组合;
⑦包尾——指示数据包的结尾,有利于包完整性检测,有时可省略。
(4)通信流程 首先,要在FRAM里划分好各个区域,各个单片机的参数区、数据接收区等。然后,单片机可以向另一个单片机发送数据包,发送完毕之后通过向握手线B发送1个脉冲通知对方取走数据;接收方读取数据并进行处理后,向FRAM内发送方的数据接收区写入回传数据或通信失败标志,再向握手线B发送1个脉冲回应发送方。
如果需要单片机2发送的话,只需交换一下操作过程即可。
总结 通过实践可知,以上方法是可行的。与其它方法相比具有发下优点:
①简单。占用单片机口线少(SCL、SDA、握手线A、握手线B)。
②通用。软件模拟I2C主机方式,可以在任何种类的单片机之间通信。
③高效。由于采用数据缓冲,可以在不同时钟频率、不同速度的单片机之间通信;读写数据时,可以I2C总线的最高速度进行,可以实现1次传送大量数据;在一个单片机向FRAM传送数据时,另一个单片机无须一一作出响应或等待,可以进行其它程序操作,提高软件工作效率。
④灵活。通信硬件接口对于各个单片机是对等的,通过软件配置,每个单片机既可以根据需要主动发送通信,也可以只响应其它单片机的呼叫。
⑤容易扩展。通过增加地址识别线,修改通信协议,即可做到多机通信。
以下是需要注意的地方:
①为了提高通信效率,握手线B最好使用中断端口,负脉冲宽度一定要满足速度较低单片机中断信号要求。如果没有中断的话应增加1条口线,用改变端口状态的方法通知对方,等待对方查询,而不是负脉冲。
②向对方发送负脉冲时,应屏蔽自己的中断。
③由于参数与通信缓冲区同时设在同一片FRAM内,要避免对参数部分的误操作。一个较好的解决办法是把参数存放在地址的后半部分(A2=1),在进行通信操作时,把FRAM的WP引脚拉高(地址在后半部分的单元写保护),这样可以有效地防止测验时对参数区误操作。
④由于I2C总线在一个时间段内只有1个主机和1个从机,所以当1个单片机正在写通信数据时,另一个单片机是不能对FRAM进行操作的。如果需要实时、频繁地读取FRAM中参数的话,请预先将参数读入RAM单元使用或另外增加专门存放参数的芯片。
相关问答
山东科技大学和青岛科技大学哪个学校更好些?2019年高考报考,山东科技大学和青岛大学哪个好,该如何选择?山东科技大学和青岛大学都是山东省内高校,两校属性不同,山东科技大学顾名思义以工科为主的高校...20...
一次性烧录 单片机 叫什么?pic16C54c即是OTPROM,这款单片机有FLASHROM形式的。pic16C54c单片机简介:PIC16C54C为Microchip公司PIC16系列的产品,采用了0.7微米工艺技术制造...
八位机和三十二位 单片机 有什么区别你说的LED灯闪烁,不知是指的流水灯还是一只发光二极管在不停地闪烁?但不管是哪一种,有一点很重要。你在编写此程序时必须要考虑延时,因为51单片机的...
静止式进相器多少钱一台因为转子电路电阻增加导致转子电路电流降低,转矩也会降低,如果负载转矩不变,则电机会自动降低转速,提高转差率,转子绕组中的感应电动势会变大,转子...
32 单片机 晶振的工作原理一般叫做晶体谐振器,是一种机电器件,是用电损耗很小的石英晶体经精密切割磨削并镀上电极焊上引线做成。对于单片机来说晶振是很重要的,可以说是没有晶振就没...
单片机 的ROM有多少个字节,可以写多少条指令。一条指令占多少个字节?51单片机有111条指令:42种指令助记符其中49条单字节45条双字节17条三字节;64条单机器周期指令,45条双字节指令。51单片机有111条指令:42种指令助记符其中...
高压无功补偿装置价格多少[回答]进相机是专门针对绕线式异步电动机就地补偿而开发的产品,简单的说就是一个就地补偿柜。一般应用在电动机拖动的负载比较恒定的负载上效果比较明显。...
pic18 单片机 特点?1,与PIC16相比,PIC18晶振频率更高,换句话说是速度更快,外设资源也更丰富了,基本架构是一样的。2,与51系列相比,pic单片机综合性能优于51单片机。具...1,与PI...
pic 单片机 与51 单片机 有什么区别?正因为在PIC系列单片机中采用了哈佛双总线结构,所以与常见的微控制器不同的一点是:程序和数据总线可以采用不同的宽度。数据总线都是8位的,但指令总线位数分...
比如arduino加四个固态开关,做 双 电源转换开关吗?可以的啊,如果只是简单的控制开关触点切换的话直接用单片机就行啊,用arduino反而麻烦可以的啊,如果只是简单的控制开关触点切换的话直接用单片机就行啊,用ard...