MSP430实现的多路电源开关控制器文档格式.docx
《MSP430实现的多路电源开关控制器文档格式.docx》由会员分享,可在线阅读,更多相关《MSP430实现的多路电源开关控制器文档格式.docx(24页珍藏版)》请在冰点文库上搜索。
作品硬件系统设计
第一节MSP430G2系列Launchpad开发板组成及硬件资源情况介绍
MSP430G2系列Launchpad是TI推出的一款低成本的开发平台。
它适用于适用于TI最新MSP430G2xx系列产品其基于USB的集成型仿真器可提供为全系列MSP430G2xx器件开发应用所必需的所有软、硬件。
LaunchPad具有集成的DIP目标插座,可支持多达20个引脚,从而使MSP430ValueLine器件能够简便地插入LaunchPad电路板中。
此外,其还可提供板上Flash仿真工具,以直接连接至PC轻松进行编程、调试和评估。
LaunchPad试验板还能够对eZ430-RF2500T目标板、eZ430-Chronos手表模块eZ430-F2012T/F2013T目标板进行编程。
此外,它还提供了从MSP430G2xx器件到主机PC或相连目标板的9600波特UART串行连接。
MSP430G2系列Launchpad开发板硬件资源:
•USB调试与编程接口无需驱动即可安装使用,且具备高达9600波特的UART串行通信速度
•支持所有采用PDIP14或PDIP20封装的MSP430G2xx和MSP430F20xx器件
•分别连接至绿光和红光LED的两个通用数字I/O引脚可提供视觉反馈
•两个按钮可实现用户反馈和芯片复位
•器件引脚可通过插座引出,既可以方便的用于调试,也可用来添加定制的扩展板
•高质量的20引脚DIP插座,可轻松简便地插入目标器件或将其移除
第二节关键器件选型以及性能指标参数
作为大功率电源开关的核心器件,大功率继电器的选型对整个系统的可靠性和性能都起着至关重要的作用。
本作品中选用了厦门宏发电声生产的HF115-1ZS1型大功率继电器。
其关键指标如下:
1.触点负载达到12A,250VAC,完全可以满足1A,220VAC的通过能力要求
2.最大切换电压和电流达到440VAC和12A。
3.触点间耐压达到1000VAC。
实物图如图2.1所示
图2.1继电器实物图
在对驱动的要求上,该继电器的线圈驱动规格为:
驱动电压大于3.5V,驱动电流大于80mA。
综上可见,HF115-1ZS1型大功率继电器可以完全满足本作品的要求。
第三节单元电路介绍
1.MSP430G2211控制系统模块
模块电路如下
图2.2单片机系统控制模块电路
如图2.1所示,P1.6,P1.7,P2.6,P2.7用于产生四个继电器的控制信号,由于本系统是用于大功率电源控制,从安全上考虑,在系统上电单片机复位阶段,由于I/O电平不确定,有可能会给后级带来安全隐患,所以这里将四路I/O口全部下拉,用改变I/O口方向的方法实现控制电平的切换。
这样,在系统复位到对I/O初始化的过程内电平都可控。
确保了系统可靠性。
同时由于G2211系列I/O资源较少,这里同时将指示灯功能也通过硬件的方法实现,高电平的时候继电器导通,并电量相应LED。
在按键控制方法上,由于G2系列单片机已经内置了上拉电阻,所以这里只需要将相应的P1.1,P1.2,P1.4,P1.5口与按键相连接地即可。
2.继电器控制模块
图2.3继电器控制模块电路
这里使用一种最常用的继电器控制电路,同时为了保证系统安全,在每一路都增加的电流峰值吸收电路和保险管。
图2.4继电器驱动电路
ULN2003是一款大功率的达林顿管阵列芯片,用在控制继电器上可以省略掉续流二极管。
这里将经过光耦隔离出来的单片机控制信号进行电平转换和功率放大,以达到驱动继电器的目的。
在继电器驱动中,R13和C1用于吸收在继电器切换瞬间的电流尖峰,以免造成单片机干扰。
3.控制信号隔离模块
图2.5控制信号隔离模块
为了确保控制安全,控制信号全部经过4一片TLP521-芯片进行电器隔离,将强电弱电完全分离。
4.
隔离电源模块
图2.6隔离电源模块
由于控制信号的隔离,因此系统电源也隔离为两套。
V电源引进系统后,一路经过直接供给用于驱动继电器和ULN2003;
另一路经过DC-DC隔离模块之后供给单片机系统。
第四节系统元器件清单
系统元件清单如下
Comment
Footprint
Quantity
notes
1uF630v
AXIAL0.15
4
10uF
R1206
1
104
红色LED-1
颜色自定,尺寸可适当修改
1A保险管
封装根据实际尺寸自定
220V接线端子
JK2-508
5
注意接线端子耐压
单排插针
2
5V接线端子
9013
SOT-23BJT
30
1k
8
AXIAL0.25_V
100
10K
HF115继电器
触点开关
KEYSB3
UNL2003A
SOIC16
TLP521-4
DIP-16-KEY
DCDC模块
ISOSPWR_2W/S
要求功率大于400mA
LM1117
SOT-223
第五节PCB板设计要求和注意事项
由于本系统引入了220交流电,为了满足强电安全规范,在PCB设计时,应该将220V电源的走线宽度大于50mil,走线间距大于20mil,以满足爬电距离要求。
在加工PCB时也应要求PCB板厚度大于1.2mm。
同时由于强电和弱点采用了电器隔离,所以在对弱点走线和覆铜是应该尽量远离强电走线。
需要在光耦芯片TLP521-4下面机械层开槽以增加爬电距离。
图2.7机械隔离
完整系统原理图如图2.8
图2.8完整系统原理图
系统PCB图如图2.9,2.10
图2.9系统PCB正面
图2.10系统PCB图背面
第六节安装调试注意事项
由于本系统涉及到了强电,所以在上电之前请务必将保险管安装到位,同时对涉及到220V的接线端子,请务必使用耐压参数合格的产品。
系统板实物图如图2.11
图2.11系统版实物图
在系统加电之前,请检查好保险管的规格参数,这里使用的1A的保险管。
根据本作品的设计,输入和输出的一根线是接通的,另一根线由继电器控制,所以为了确保安全,在改变负载之前请确保电源已经彻底断开。
系统连接实物图如图2.12所示
图2.12系统连接实物图
第三章
作品软件系统设计
第一节程序流程图介绍
1.程序流程图
图3.1系统总流程图
图3.2中断服务程序流程图
程序流程说明:
由于控制继电器的I/O口采用的下拉方式,所以控制程序使用改变I/O方向的方式来改变输出电平。
例如,需要将P1.6口输出高电平时,需要将P1.6输出设为高,同时将方向设置为输出模式;
如果希望P1.6输出低电平,则将P1.6口方向置为输入即可。
这样可以保证在系统复位时也有确定的低电平输出。
2.程序代码及注释
#include"
msp430g2231.h"
voidSys_Clk_Init();
voidDelay(unsignedinttime);
voidPort_Init();
//对I/O操作口进行宏定义,方便后面的操作
#defineCONTROL_1_HIGHP1DIR|=BIT6//将P1.6口设置为输出模式,输出高
#defineCONTROL_1_LOWP1DIR&
=~BIT6//将P1.6口设置为输入模式,通过下来电阻使其输出低
#defineCONTROL_2_HIGHP1DIR|=BIT7
#defineCONTROL_2_LOWP1DIR&
=~BIT7
#defineCONTROL_3_HIGHP2DIR|=BIT7
#defineCONTROL_3_LOWP2DIR&
#defineCONTROL_4_HIGHP2DIR|=BIT6
#defineCONTROL_4_LOWP2DIR&
=~BIT6
unsignedcharPushCnt=0;
//记录按下的次数,该变量决定了I/O口的反转
voidmain()
{
WDTCTL=WDTPW+WDTHOLD;
//关闭看门狗
Sys_Clk_Init();
//系统时钟初始化
Delay(60000);
//略微延时等待系统时钟稳定
Port_Init();
//I/O口初始化设置
_EINT();
//打开系统总中断
while
(1)
{};
}
#pragmavector=PORT1_VECTOR
__interruptvoidPort_Control()
//按键消抖
unsignedcharPushkey;
Pushkey=P1IFG&
(BIT1+BIT2+BIT4+BIT5);
Delay(20000);
if((P1IN&
Pushkey)==Pushkey)
{
P1IFG=0;
return;
//如果是毛刺直接返回
}
//不是毛刺,进入按键处理程序
if(Pushkey&
BIT1)//如果按下BIT1
if(PushCnt&
BIT1)//检测上一次I/O状态
CONTROL_4_HIGH;
//如果上一次为低则这一次将其设置为高,反之亦然
else
CONTROL_4_LOW;
PushCnt^=BIT1;
//记录响应按键的动作
BIT2)
CONTROL_3_HIGH;
CONTROL_3_LOW;
PushCnt^=BIT2;
BIT4)
BIT3)
CONTROL_2_HIGH;
CONTROL_2_LOW;
PushCnt^=BIT3;
BIT5)
CONTROL_1_HIGH;
CONTROL_1_LOW;
PushCnt^=BIT4;
}
/*******************************************************
函数名称:
Sys_Clk_Init
函数功能:
对系统时钟进行初始化
入口参数:
无
出口参数:
*******************************************************/
voidSys_Clk_Init()
DCOCTL=0xA0;
//使用内部DCO,频率约为32768*51=1632kHz
BCSCTL1=0x07;
//ACLK不分频RSEL=7
BCSCTL2=0;
//MCLK时钟源选为DCOCLK,不分频,SMCLK选为DCOCLK,不分频
//延时程序
voidDelay(unsignedinttime)
for(unsignedinti=0;
i<
time;
i++);
//端口初始化,将继电器的控制端口设置为输出高,通过切换方向来改变输出电平
//把键盘的端口设置为输出高,同时方向设置为输入,内部上拉打开
voidPort_Init()
//系统开机指示灯
P1DIR|=BIT0;
P1OUT|=BIT0;
//键盘端口输入
P1OUT|=BIT1+BIT2+BIT4+BIT5;
//把输出设置为高,否则上拉不起效
P1REN|=BIT1+BIT2+BIT4+BIT5;
//上拉打开
P1IE|=BIT1+BIT2+BIT4+BIT5;
P1IES|=BIT1+BIT2+BIT4+BIT5;
//继电器设置,通过切换端口方向来改变输出电平,输入时为低电平,输出时为高电平
P1OUT|=BIT6+BIT7;
P2OUT|=BIT6+BIT7;
P2SEL=0;
第二节CCS设计与调试方法介绍
1.CCS概述
CodeComposerStudio™(CCStudio)是用于德州仪器(TI)嵌入式处理器系列的集成开发环境(IDE)。
CCStudio包含一整套用于开发和调试嵌入式应用的工具。
它包含适用于每个TI器件系列的编译器、源码编辑器、项目构建环境、调试器、描述器、仿真器、实时操作系统以及多种其他功能。
CodeComposerStudio以Eclipse开源软件框架为基础。
Eclipse软件框架最初作为创建开发工具的开放框架而被开发。
Eclipse为构建软件开发环境提供了出色的软件框架,并且逐渐成为备受众多嵌入式软件供应商青睐的标准框架。
CCStudio将Eclipse软件框架的优点和TI先进的嵌入式调试功能相结合,为嵌入式开发人员提供了一个引人注目、功能丰富的开发环境。
2.建立新的工程
双击桌面的CCS图标后会进行一系列的加载,同时会询问开发者选择一个工作空间路径。
如图
图3.3设置工作空间
我们选择一个常用的开发代码文件夹,注意路径中不能有中文,否则会出现错误。
接下来进入主界面,如图
图3.4主界面
选择File-New-CCSProject,进入如图所示界面
图3.5建立新工程
图3.6选择开发类型
图3.7选择器件型号
单击Finish之后,还有最后一步就可以开始编程了,对工程单击右键选择New-SourceFile,添加一个main.c文件。
以下就是完整的开发界面
图3.8编程界面
3.开始调试
在程序编写完成后,单击Project-BuildActiveProject,如果没错就可以单击快捷工具栏的debug按钮开始在线调试,CCS提供了强大的调试工具,结合debug快捷工具可以实现全速运行,单步运行,设置断点,观察变量等一系列功能,如图。
第四章总结与思考
MSP430G2系列单片机高性能低成本的特点决定了十分适合应用于类似本作品的这种应用当中。
本作品在设计上充分考虑了MSP430G2系列单片机的资源,并同时重点对系统的安全性进行了考虑,采用了诸如控制,保险管,尖峰吸收电路等一系列措施保证系统的安全可靠。
本作品安全可靠,使用方便,充分利用了G2系列低功耗低成本的特点。
在本作品基础上,建议读者关于本作品功能的进一步增强进行如下思考。
如:
如何使系统的功率和耐压值更高?
断电之后系统如何保持当前状态?
是否能增加无线控制功能,进一步增强控制人员的安全?
是否能够进行网络化改造,统一远程控制?
建议在功能上做如下扩展工作:
1.控制切换电压提高到380V
2.增加Zigbee无线控制功能
3.提供网络化控制功能