张 彪,邢计元,王 帅
(华北计算机系统工程研究所,北京 100083)
现阶段开发的板卡需要的芯片性能越来越高,系统的复杂程度随之增加,需要的电压值也越来越多,一些芯片对上电时序有严格的要求[1-2]。传统的上电时序控制中,大多通过使用CPLD 或电源管理芯片控制每个电源芯片的使能引脚,从而控制各路电源的上电时间[3-4]。CPLD 芯片和电源管理芯片的价格昂贵以及大量电源芯片的使用,导致系统的复杂程度和成本大大增加。为了降低成本和系统的复杂程度,本文利用多个MOSFET 管将一路电源分流出多路电源供给板卡上的不同芯片或同一芯片的不同部分。这种方式有利于减少电源芯片的使用数量,降低系统的复杂程度和成本。本文利用单片机控制各个MOSFET 管的开断,实现各路电源上电时序的控制。单片机的价格低廉且使用电源芯片的数量减少,使上电时序控制系统的复杂程度和成本大大降低。一些板卡系统需要对电压和电流进行监控,保证系统的正常运行,单片机完全可以满足这些条件,因此本文利用单片机设计的上电时序控制系统具有性价比高、控制系统简单、稳定性强等优点。
现阶段大多数板卡的上电时序控制系统采用CPLD 控制电源模块的使能的方案,该方案导致系统的复杂程度和成本增加等问题。为了解决这些问题,本文利用单片机设计一个高性价比、简单、高可靠性、通用性强的上电时序控制系统。其方案如图1所示。通过对板卡功耗的评估,选择合适的电源芯片,在满足功耗的前提下选择最优数量的电源芯片。电源芯片输出的任意一路电源可以通过多个MOSFET 管将其分成多路电源,供给板卡的不同部分,有利于减少电源芯片的使用数量。通过单片机的I/O 引脚,控制MOSFET 管的开断,实现各路电源上电时序的控制。利用单片机的ADC 功能实现电压和电流的监控,并将电压和电流实时反馈给板卡,保证板卡安全稳定地运行。
图1 板卡上电时序控制方案
某板卡使用的核心芯片和模块有POWER、Zynq-7020、SFP+光模块、PHY 等,需要提供的电压值有5 V、3.3 V、2.5 V、1.8 V、1.5 V、1.0 V。其中Xilinx 公司Zynq-7020 集成Cortex-A9 双核处理器(PS)和Artix-7 技术的FPGA(PL)两大部分[5]。PS 和PL 的供电完全独立,两者之间没有任何的上电时序要求,但各自内部有严格的上电时序要求,如表1所示。
表1 Zynq-7020 上电时序表
本文由于采用单片机控制MOSFET 管的方式实现Zynq-7020 芯片上电时序控制,因此Zynq-7020芯片的PS 部分的VCCPINT 和PL 部分的VCCINT、VCCBRAM 用同一路1.0 V 电源供电;VCCPAUX、VCCPLL、VCCAUX 用同一路1.8 V 电源供电;VCCO_MIO0、VCCO_MIO1、VCCO_# 用同一路3.3 V 电源供电。只需要4 路电源实现了Zynq-7020 芯片的供电,很大程度地减少了电源芯片的使用,大大地降低了系统的复杂程度和成本。
ADI 公司的LTM4644IY 电源芯片可输出4 路电源,每路最大可输出4 A 的电流。通过对板卡功耗的评估,本文使用两个LTM4644IY 电源芯片,提供5 V、3.3 V、2.5 V、1.8 V、1.5 V、1.0 V 八路电源,实现整板供电。
单片机选用宏晶科技公司STC15W4K32S4 单片机,其参数如表2 所示。STC15W4K32S4 单片机的运行速度比传统8051 快8~12 倍。可省掉外部昂贵的晶振和复位电路,有8 路高速ADC,速度可达30 万次/秒,完全满足使用要求。
表2 STC15W4K32S4 单片机参数表
MOSFET 管选用扬杰科技公司的YJL3416A 场效应管,其参数如表3 所示。YJL3416A 场效应管在VGS=5 V 时,连续漏极可达7 A,导通电阻小于18 mΩ,损耗在场效应管上的压降很小,在VGS=0 V 时场效应管关断,完全满足使用要求。
表3 YJL3416A 场效应管参数表
Zynq-7020 芯片功耗的主要集中在内核上,所以分别对PS 和PL 两部分的内核电流进行监控。电流检测电路如图2 所示,通过测量电阻R5两侧的电压,计算出流过MOSFET 管的电流。为了减少压降的损耗,经计算串接的电阻R5的阻值为5 mΩ。电流检测电路的目的是要得到电压VOUT和电流I的关系。
图2 电流检测电路
由虚断可得:
由虚短可得:
由流过电阻R2和电阻R4的电流是相等,可得:
由式(1)~式(5)可得:
如图3 所示,本文通过STC15W4K32S 单片机控制MOSFET 管Q1~Q8 的开断,将板卡上的3.3 V、1.8 V、1.5 V、1.0 V 电源分流出来,分别供给Zynq-7020芯片的PS 和PL 两部分。利用STC15W4K32S 单片机的ADC 功能将供给Zynq-7020 芯片的同路电源的电压进行监控,在各路电压达到额定电压的80%时依次开启各MOSFET 管,实现多路电源上电时序控制,将电流和电压实时反馈给板卡,实现对整体功耗及安全性的管控。
图3 多路电源上电时序控制电路
STC15W4K32S 单片机中有8 路ADC,使用其中4 路ADC 对3.3 V、1.8 V、1.5 V、1.0 V 的电压监控,使用另外4 路分别对PS 和PL 的内核电流监控和MOSFET 管Q2 和Q6 的输出电压监控。将控制给PS和PL 供电的3.3 V 的MOSFET 管的输出端,分别接入到单片机的I/O,用于判断MOSFET 是否开启成功。
软件部分采用C 语言在Keil 平台实现,本文利用STC-ISP 软件中的延时计算器,计算得到一个延时10 ms 的函数。
利用STC15W4K32S 单片机的8 路ADC 对需要监控的电压和电流进行采集。
上电时序控制流程如图4 所示,编程的思想是:首先单片机上电复位后,对I/O 口进行配置,然后通过ADC 采集3.3 V、1.8 V、1.5 V、1.0 V 的各路电压,各路电压达到80%额定值且持续10 ms,说明电源完好[6]。满足上电要求后,依次开启控制各路电源的MOSFET 管。Zynq-7020 芯片的PS 部分:先开启控制VCCPINT 电压的MOSFET 管,再开启控制VCCPAUX 和VCCPLL 电压的MOSFET 管,最后再开启控制VCCO_MIO0、VCCO_MIO1 和 VCCO_DDR电压的MOSFET 管,依次间隔10 ms。PL 部分:先开启控制VCCINT 电压的MOSFET 管,其次开启控制VCCBRAM 电压的MOSFET 管,再次开启控制VCCAUX电压的MOSFET 管,最后开启控制VCCO_# 电压的MOSFET 管,依次间隔10 ms。上电过程中通过对各路电源的电压和电流的综合分析,判断各路电源上电是否成功。上电成功后,对电流和部分电压进行实时监控,并将采集的电压和电流信息反馈给板卡。
图4 上电时序控制流程
Proteus 软件是一款集电路设计、仿真、分析等多种功能于一体的仿真软件,具有很全面的电路仿真功能和单片机协同仿真功能,是目前世界上最完整的嵌入式系统设计和仿真平台[7-8]。Proteus 软件可以很方便地与Keil 软件搭建联合仿真环境,实现软硬件仿真[9-10]。STC15W4K32S 单片机上电复位时普通I/O 处于弱上拉状态,高电平输出,而在实际应用中要求P6 口为低电平输出,由于单片机内部I/O 口是弱上拉,内部上拉能力有限,因此可以在I/O 口上接一个1 kΩ 的下拉电阻,使I/O 口上电复位时处于低电平。由于Proteus 软件中STC15W4-K32S 单片机无法模拟此功能,因此在本仿真电路设计中采用非门,MOSFET 管在单片上电复位时处于关闭状态。由于Proteus 软件中没有Zynq-7020 芯片,而本仿真主要是针对单片机控制多路电源上电时序以及电流和电压的采集的仿真,因此仿真电路中选用10 kΩ 的电阻作为需要控制的各路电源的负载。由于本文主要研究利用多个MOSFET 管将单路电源进行分流,形成多路电源,利用单片机控制MOSFET 管,实现多路电源上电时序控制,因此无需对电源芯片仿真,直接使用仿真软件中的3.3 V、1.8 V、1.5 V、1.0 V 的直流电源即可。如图5 所示,在Proteus 软件中搭建上电时序仿真电路。
图5 上电时序仿真电路
在Proteus 软件中使用示波器对各路电源上电时序进行监测。供给Zynq-7020 芯片的PS 部分的各路电源上电时序波形如图6 所示,其中Channel A 代表1.0 V,Channel B 代表1.8 V,Channel C 代表1.5 V,Channel D 代表3.3 V。供给PL 部分的各路电源上电时序波形如图7 所示,其中Channel A代表核电源1.0 V,Channel B 代表RAM 电源1.0 V,Channel C 代表1.8 V,Channel D 代表3.3 V,完全符合上电要求。
图6 PS 部分上电时序图
图7 PL 部分上电时序图
本文设计了一个通用型、简单、高性价比、高稳定性的多路电源上电时序控制系统。根据Zynq-7020 芯片的上电时序要求,将多路电源上电时序控制系统应用其中,完成了硬件电路的设计和控制程序的设计。在Proteus 和Keil 软件建立的联合仿真平台中完成了多路电源上电时序控制的仿真,仿真结果符合Zynq-7020 芯片上电要求,说明此设计的可行性,为该设计在实际应用中奠定了基础。