关键词: IEEE802.3af PoE 以太网供电设备 MSP430F148 MAX5945 I2C-BUS EPA
MSP430F148是美国TI公司推出的超低功耗混合信号控制器MSP430系列中的Flash型单片机。它具有16位RISC结构,CPU中的16个寄存器和常数发生器使MSP430微控制器能达到最高的代码效率;灵活的时钟源可以使器件达到最低的功耗;数字控制的振荡器(DCO)可使器件从低功耗模式迅速唤醒,在6μs之内激活到活跃的工作方式。将它应用于以太网供电设备中,可方便地实现对以太网供电电源管理芯片的控制,也可以使用户方便地通过终端监控程序对以太网供电设备进行监控。
1 IEEE802.3af标准简介
IEEE802.3af标准定义了一种允许通过以太网在传输数据的同时输送48 V直流电源的方法。它将以太网供电(Power over Ethernet,PoE)技术引入到现有的网络基础设施中,且与原有的网络设备相兼容;最大能够提供12.95 W的功率,传输距离为100 m。
PoE由两部分组成:供电设备(Power Sourcing Equipment,PSE)和受电设备(Powered Device,PD)。PSE负责将电源注入以太网线缆,并实施功率的规划和管理。IEEE802.3af标准定义了两种类型的PSE,一种为“Endpoint PSE”;另一种为“Midspan PSE”。Endpoint PSE是支持PoE的以太网交换机、路由器、集线器或其他网络设备,这种设备在CAT5线缆的信号线对或备用线对上传输电源;Midspan PSE是专门用于电源管理的设备,不进行数据交换,它通常和数据交换设备放在一起协同工作,以实现以太网供电的功能。PSE主要工作步骤为:
① 侦测(Discovery)。在允许PSE向合法的PD供电之前,它必须用一个有限功率的测试源来检查特征电阻。一般用两点检测法来完成侦测工作。
② 分级(classify)。侦测到有效的PD后,PSE利用一个15.5~20.5 V的探测电压来检测PD的功率级别。PD通过从线上吸收不同的恒定电流(分级特征信号)来向PSE表明自己所需的最大功率。
③ 供电(delivery)。成功侦测和分级后,PSE向PD正常供电。供电期间,PSE还要对每个端口的供电情况进行监视,提供欠压和过流保护。
④ 断电(shutdown)。当PD断开后,PSE停止对线路进行供电。PSE可以用DC断路检测法或者AC断路检测法来检测PD是否断开。
PD负责在网络终端设备中分离出48V电源和数据信号,并将48V DC电源变压为通常情况下终端设备工作所需的5V DC。在PSE对PD进行侦测、分级时,PD应做出相应的反应;同时,在PSE供电过程中,PD通过维持功率特征(Maintain Power Signature,MPS)发送持续工作信号。
2 硬件体系结构与组成
在PoE系统中,PSE是主要部分。PSE除了实现上述电源管理功能外,在一些特殊应用场合,还必须能够提供各路PD的实时工作参数,并且可以通过运行于PC上的终端监控程序来监控整个系统。PSE系统分为硬件和软件两部分,图1为供电系统的硬件体系结构图。
系统主要由电源模块、电源转换电路、MAX5945及其外围电路、MSP430F148及其外围电路、CP2102及其外围电路组成。16位单片机MSP430F148通过I2CBUS对MAX5945读写,从而实现电源管理功能;通过模式设置信号线来设置MAX5945的工作模式;通过出错中断信号线获得来自于MAX5945的出错中断信号,从而通过复位信号线对MAX5945产生有效的低电平复位脉冲信号。同时,MSP430F148通过内部UART模块,经过CP2102桥接为USB接口后完成与PC上终端监控程序的通信;也可以通过串口和PC机进行通信,系统进行直观的监控,并且当系统识别到没有与PC建立连接时会自主运行。下面介绍一下系统各部分硬件的具体功能。
2.1 电源部分
电源部分主要为系统中各个器件提供工作电压,系统工作时需要48 V、+5 V和+3.3 V三种电压,CP2102需要的+5 V由PC的USB接口提供,其他器件由电源模块输出的+48 V或经过转换后提供工作电压。
电源模块:采用220 V转-48 V的开关电源模块,由于1个MAX5945可以对4个以太网口进行供电管理,I2CBUS上可以挂载多个MAX5945,因此可以根据实际情况来选择电源模块的功率。MAX5945工作时只需要外部单独的-48 V供电,由电源模块经转换电路反相后提供。
电源转换电路:MSP430F148的工作电压为+3.3 V,本设计采用电源转换芯片LM2575HVS5.0将+48 V转换为+5 V,经过AMS11173.3将+5 V转换为MSP430F148工作时所需要的+3.3 V。
2.2 以太网供电管理器部分
MAX5945是Maxim公司推出的一款四路网络电源控制器,用于与IEEE802.3af兼容的供电设备(PSE)。该器件提供用电设备(PD)探测、分级、限流以及直流和交流负载断开探测。MAX5945可用于终端PSE(LAN交换机/路由器)或中跨PSE(电源注入)系统。MAX5945可独立工作,也可以由软件通过I2C兼容的接口进行控制。单独的输入和输出数据线(SDAIN和SDAOUT)允许使用光电耦合器。INT输出和4个关断输入(SHD_)允许从出现错误到端口关断的快速响应。RESET输入允许硬件复位器件。MAX5945完全由软件配置和编程。分级过流检测使系统电源管理能够检测PD吸收的电流是否大于其分级所允许的电流。MAX5945具有4种工作模式,分别为自动模式、半自动模式、人工模式和关断模式。在自动模式下,自动实现对标准PD的侦测、分级和供电等功能而不需要微控制器进行控制,因此,在低成本设计中可以直接设置MAX5945为自动模式(该模式下MAX5945采用DC断路检测法检测PD是否断开)。在半自动模式下,MAX5945根据需要反复进行行侦测和/或分级,无论端口的连接状态如何都不会给端口上电。每次要利用软件命令关闭端口供电。在人工模式下,可以执行优越的AC断路检测,实时地获得每个PD的电压与电流,这些需要通过I2C总线对MAX5945内部的读写寄存器进行控制来完成,因此需要编写运行于微控制器MSP430F148上的程序来完成对供电的高级管理。关断模式终止所有活动,并安全地关闭端口电源。在器件完成其当前任务之前,自动、半自动、人工模式之间的切换不发生作用。当端口被设为关断模式时,端口立刻停止所有工作,维持空闲状态直到退出关断模式。
地址设置电路:MAX5945是从器件,4条地址线可以为MAX5945选择16种不同的I2C地址。
AC断路检测电路:在PMM模式下,可以通过设置MAX5945的内部寄存器配合外部的AC断路检测电路来产生叠加在供电回路中的AC断路检测信号。
状态显示电路:MAX5945需要在每个端口的供电回路上加入检测显示电路。这样MAX5945工作在三种模式下都可以直观地显示各个端口的工作状态。
2.3 单片机控制部分
MSP430F148是TI公司推出的超低功耗混合信号控制器MSP430系列中的Flash型单片机,采用精简指令组对全部功能模块进行操作。它具有16位RISC结构,片内具有48 KB Flash、2 KB RAM、USART等模块;CPU中的16个寄存器和常数发生器使MSP430微控制器能达到最高的代码效率;通过采用不同的时钟源可以使MSP430F148满足不同的低功耗要求;数字控制的振荡器(DCO)可使MSP430F148在6μs之内从低功耗模式转换到激活工作模式;支持在线仿真功能,开发工具能很好地支持C语言开发,能够提高软件的开发效率,MSP430F148的安全熔丝可以对程序的代码进行保护。
MSP430 F148单片机采用存储器—存储器结构,即用一个公共的空间对全部功能模块寻址,同时用精简指令组对全部功能模块进行操作。其内部结构包括CPU、存储器、振荡器与时钟发生器和外围模块等。
时钟电路:MSP430F148的时钟模块主要由高速时钟、低速时钟和数字控制振荡器组成。数字控制振荡器集成在内部,8 MHz的高速时钟和32.768 kHz的低速时钟由外部时钟电路产生。
复位电路:采用阻容式复位电路,实现对MSP430F148的外部手动复位。
JATG接口:MSP430F148单片机内部嵌入了JTAG接口,支持边界扫描技术标准IEEE1149.1,主要由5个控制信号TCK、TDO、TDI、TMS和RST组成,通过集成的IDE开发环境,可以很容易地在线调试代码。
蜂鸣器:当程序检测到MAX5945运行出错时,通过MSP430F148的P3.3口向蜂鸣器发送一定频率的脉冲信号,这样可以起到通过声音报警的作用。
2.4 USB桥接器CP2102
CP2102是一款高集成度的专用通信芯片。该芯片的功能是实现UART和USB格式间数据的转换,集成了一个符合USB2.0标准的全速功能控制器、EEPROM、缓冲器和带有调制解调器接口信号的UART数据总线,同时具有一个集成的内部时钟和USB收发器。通过CP2102可以很简单地实现UART到USB间的桥接,从而为系统添加USB通信接口。
3 软件设计与实现
PSE的软件实现主要包括两个部分:运行于MSP430F148的PSE运行控制程序和运行于PC的PSE终端监控程序。两者通过由CP2102构成的USB接口通信。
3.1 PSE运行控制程序
PSE运行控制程序主要实现系统初始化、对MAX5945进行控制、与PC通信,以及对数据进行封装与解析等功能。如图2所示,当没有与PC连接时,设置MAX5945工作在AM模式下,MAX5945将自主运行;此时不能得到各个供电端口的具体运行数据,只能通过状态显示电路中的LED显示各个端口的运行状态。当与PC连接时,系统将按照用户的要求将MAX5945设置为相应的工作模式,此时系统能够采集到各个端口的运行参数,在SAM和PMM模式下,系统将可以按照用户的设置部分或者完全对各个端口的供电进行控制。监控过程是通过对MAX5945各端口寄存器的读写操作来实现的。
3.1.1 系统初始化
系统时钟初始化:选择8 MHz时钟XT2作为主时钟的时钟源,选择DCO为子时钟的时钟源。
I/O口初始化:将P3.3设置为输出,作为驱动蜂鸣器的信号;P4.0设置为输出,作为MAX5945的模式选择信号;P4.2设置为输出,作为MAX5945的复位信号;P4.1设置为输入,作为MAX5945的出错中断输入信号。
串口初始化:MSP430F148通过UART1与CP2102通信。UART1设置如下:发送字符位数为8位;发送/接收速率为9 600 bps;选择辅助时钟ACLK作为波特率发生器的时钟源;使能串口接收和发送操作;将P3.6和P3.7的功能选择寄存器设置为串口收发模式。
3.1.2 I2C-BUS的实现
MSP430F148中没有标准的I2C-BUS通信模块,因此,需要将I2C-BUS通信规范中的SDA和SCL通过P3.0和P3.2用软件来模拟实现,完成I2C-BUS的读写操作。
(1) I2C-BUS写操作
I2C-BUS的写函数“void WriteI2C(char Addr,char Reg ,char Ctr)”由形参Addr?MAX5945的地址、Reg?MAX5945寄存器地址、Ctr?控制信息构成;写函数由I2CInit()、 I2CStart()、I2CSent(unsigned char data)、I2CReceiveAck()、I2CReceiveAck()、I2CReceiveAck()、I2CStop()和delay()子函数组成。I2C-BUS的写函数用于向指定的MAX5945内部寄存器中写入控制信息,具体的I2C-BUS写操作流程如图3所示。
(2) I2C-BUS的读操作
I2C-BUS的读函数“void ReadI2C(unsigned char Adr,unsigned char Rg)”由形参Adr?MAX5945的地址、Rg?MAX5945寄存器地址构成。此操作的结果是将地址为Adr的 MAX5945 中的Rg状态寄存器中的信息读出,并将它存入char型全局变量中。读函数由I2CInit()、I2CStart()、I2CSent()、I2CReceiveAck()、I2CSent(unsigned char data)、Rec_dat()、I2CSentNAck()、I2CReceiveAck()、I2CStop()和delay()子函数组成,由这些子函数共同完成I2C-BUS的读时序。具体的I2C-BUS读操作流程如图4所示。
3.2 PSE终端监控程序
PSE终端监控程序主要实现对各个供电端口的实时监控功能。由于使用了USB桥接芯片CP2102,在逻辑上监控程序只要完成串口通信就可以了。各种控制数据通过终端监控程序来设置,同时采集到的各个供电端口的实时工作参数也将直观显示在监控程序上,终端监控程序实现了对供电的高级管理功能。
4 结论
随着以太网供电技术的成熟与发展,以太网供电技术将逐渐被广泛采用。本设计采用MSP430F148单片机和以太网供电管理器MAX5945开发了符合以太网供电标准IEEE802.3af的可监控高级以太网供电管理系统。该系统也可以根据实际需要进行简化从而降低成本,此系统已经应用在EPA(工业自动化以太网)系统中,有良好的使用效果。