故障复现嵌入式硬件平台的电源系统设计

2012-07-25 11:06:16董云峰
计算机工程与设计 2012年7期
关键词:机箱嵌入式继电器

王 双,董云峰

(北京航空航天大学 宇航学院,北京100191)

0 引 言

卫星姿轨控是星上容易发生故障的分系统,需要对故障诊断技术进行模拟研究。传统的卫星故障模拟一般采用计算机进行数值仿真的方式,它具有设计周期短,成本低等优点,但计算机数值仿真缺乏真实性和实时性,无法准确模拟出部件的实际接口,可能得出与星上控制系统完全不同的结论,没有实际意义[1]。基于 ARM7 (advanced RISC machines)和 FPGA (field programmable gate array)的嵌入式卫星故障复现平台,实时性好,成本低,使用方便,在故障诊断专家系统和故障模型库的支持下,能快速验证故障假设,有效定位故障源。通过CAN (controlle rarea network)总线连接,该平台可以方便地构成十几个甚至几十个分布式实时仿真节点。

故障复现嵌入式硬件平台运行时,因更换嵌入式程序和故障模拟的需要,需要经常开关机箱和ARM板。以往的嵌入式硬件大都需要手动控制电源开关,繁琐且不方面。该平台的电源系统在稳定运行的基础上,利用AVR单片机数据处理能力、FPGA和CPLD (complex programmable logic device)的现场可编程功能,再依据三极管的电流放大作用和继电器的原理,实现了机箱和ARM板开关的自动化。电源系统的优化设计,保证了平台其他部分的正常运行。

1 故障复现嵌入式硬件平台介绍

故障复现嵌入式系统包括3个部分,分别是PC机、调试监控箱、卫星姿轨控设备模拟器 (以下简称模拟器)。三部分共同组装成一个机柜,来模拟卫星的各种故障状态。其中,模拟器包括一个执行结构箱、两个姿轨控中心计算机箱、两个敏感器箱。

PC机运行MFC控制程序和环境模拟程序,进行数据归档。调试监控箱装有一个开关电源,给模拟器供电,并对其机箱中各个电路板的程序进行更新。模拟器采用相同的模块化的设计,各机箱在硬件上保持一致。每个机箱依次安装两块转接板、4块总线板、2块FPGA板、8块ARM板。ARM板运行仿真程序,模拟不同的星上部件,如动量轮、地球敏感器等;FPGA板实现逻辑动态分配;总线板进行TTL电平和差分信号电平之间的转换;转接板按照实际接口实现信号的分配。下面将详细介绍电源系统的软硬件设计方案。

2 故障复现硬件平台信号转接协议

故障复现硬件系统是按照一定的信号转接协议,来实现机箱和ARM板电源开关的自动化。通讯编码格式为0xff+Command+BOXn+BOARDn+CRC。其中0xff为起始码,Command为信号选择指令,例如ARM开为0x05、ARM关为0x06、机箱开为0x08、机箱关为0x09,BOXn为模拟箱中FPGA板的ID号,BOARDn为ARM板的编号。

PC机MFC程序按照此协议产生控制信号,信号按照路径调试监控板→转接板→总线板→FPGA板→ARM板进行传输,实现控制功能。

3 电源系统硬件设计

在电源系统中,调试监控板控制模拟器5个机箱的开关,FPGA板控制相对应的4个ARM板的开关,转接板和总线板只输送控制信号、电源。下面将介绍调试监控板、FPGA板和ARM板电源部分的硬件设计。

3.1 调试监控板

调试监控箱装有一个开关电源,给硬件平台供电。为保护电路板,12V和5V线路各串联一个贴片保险。EPM240T100C5、ATmega8等需要供电3.3V,添加相应的线性稳压器LM1084IS-3.3,把5V电压转变成3.3V[2]。电源引脚连接一些滤波电容,降低交流脉动波纹系数,提升高效平滑直流输出,给芯片提供一个稳定的电压。绘制PCB图时,根据电流的大小,硬件平台所有电路板的电源线宽度尽量加粗,减少环路电阻[3];不同层之间的电源线,要经过多过孔处理,增加电源输送能力。

PC机MFC程序,按照信号转接协议,产生控制信号,经USB传输到调试监控板。USB的数字信号,经芯片CP2102转化成异步串行数据。其SUSPEND引脚串联一个发光二极管接地。观看二极管的亮灭,可以得知CP2102与电脑USB通信是否正常[4]。

ATmega8-16AC是AVR系列单片机,使用精简指令集,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令[5]。SPI接口使它与各种外围设备以串行方式进行通信以交换信息。经过解析控制信号,ATmega8执行相关指令,改变其I/O引脚的电平,进而控制EPM240T100C5I/O引脚的逻辑。

EPM240T100C5属于复杂可编程逻辑器件 (CPLD),有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能[6]。通过JTAG接口,对EPM240T100C5进行在线编程。EPM240T100C5共有100个I/O引脚,让I/O77连接三极管的基极,进而控制继电器的开关。

调试监控板使用电磁继电器[7]控制模拟器5个机箱的供电,5个机箱对应5个继电器。为了简洁,软硬件设计只讲述调试监控板控制执行机构箱的供电。根据三极管的电流放大作用,图1中的SET1被拉高时,引起基极电流的微小变化,集电极电流必定会发生较大的变化[8]。此时,继电器开启,输出+12V电压,机箱上电。作为冗余设计,图1中的IDC10的1、2引脚之间用一个按钮开关相连,手动控制机箱电源开关。

图1 调试监控板电源部分原理框架

接插件IDC40用特制电线与转接板相连。运行状态下,机箱需要的电流相对较大,这里采用三根线输送电流。EPM240T100C5的TTL电平信号通过SP3490,转化为差分电压信号,进行信息传输,能对外部干扰能够起到很强的抗干扰能力。PCB布线时,差分信号被安排成 “密近平行线”。

3.2 FPGA板

12V的电压从调试监控板输送到转接板后,经LM2596-5V开关电压调节器,产生5V电压。通过四条电源线,电源输送到图2的大四P插头。线性稳压器LM1084IS-3.3、LM1084IS-1V2,分 别 把 5V 电 压 转 变 成3.3V、1.2V,满足了EP2C20F484C8、ATmega8等对电压的需求。绘制PCB图时,为了给EP2C20F484C8稳定供电,对其3.3V、1.2V、GND进行局部多边形敷铜处理。此外,电源经接插件1、2,分别传输到ARM板、总线板。

FPGA是现场可编程门阵列的英文缩写。为满足引脚数量的需要,该板使用芯片EP2C20F484C8。差分信号由总线板转化成TTL电平信号,经接插件2,传输到FPGA板。ATmega8解析控制信号,改变EP2C20F484C8I/O引脚的逻辑,最终控制ARM板的开关。一块FPGA板插有4块ARM板。为了简洁,软硬件设计只讲述控制执行机构箱的第一块ARM板。接插件1和ARM板相连,SET是ARM电源开启信号,RESET是关闭信号。

图2 FPGA板电源部分原理框架

3.3 ARM 板

ARM是一个32位元精简指令集处理器架构,其广泛地使用在许多嵌入式系统设计。ARM7系列整合了Thumb16位指令集,使得能以8/16位系统的成本实现32位的性能[9]。ARM板采用芯片AT91SAM7X25作为CPU,18.432MHZ的低频晶振为其提供时钟频率。在PCB布线时,晶振应尽量靠近芯片的引脚,以减少对其它芯片的高频干扰。晶振旁的电容选用15pF的无极电容,在芯片内部经PLL电路倍频后,达到48MHZ的工作主频,以提高CPU 的工作速度[10]。

图3中的62针公头接插件DB62ML和FPGA相连,传输信号和电压。ARM板用磁保持继电器控制电源,其开关状态的转换是靠一定宽度的脉冲电信号触发而完成的。SET有脉冲电信号时,磁保持继电器开启,Vout输出12V电压。相反,RESET有脉冲电信号时,继电器关闭。LM1084IS-3.3 把 12V 电 压 转 变 成 3.3V, 给AT91SAM7X25 供 电。 绘 制 PCB 图 时, 在AT91SAM7X256中间放置填充,其电源引脚和填充相连。

4 电源系统软件设计

4.1 PC机 MFC控制程序[11]

MFC控制程序的人机界面的一部分如图4所示。

图4中的BOX1对应执行机构箱,BOX2、BOX3对应两个AOCC箱,BOX4、BOX5对应两个敏感器箱。8个Radio Button按钮依次对应机箱中的8块ARM板。

人机界面具有多项控制功能。点击功能按钮后,程序按照制定的协议,产生控制信号。核心代码是SendUARTMessage(ucChannelNo,chrSendMessage,iLength),uc-ChannelNo表示通道号,chrSendMessage是要发送的信息,iLength是信息的长度。

4.2 调试监控板

4.2.1 ATmega8-16AC

在CodeVisionAVR软件上,用Verilog HDL编写AT-mega8的控制代码,程序用AVR_fighter下载到芯片中。主要代码如下:

定义引脚名称

#defineBOXSwitch0 PORTD.3

编写信号解析函数[12]

void ProcCMD (unsigned charCommand,unsigned charBOXn,unsigned charBOARDn)

switch (Command)

case 0x08: //机箱开信号

if((BOXn>>4)==0x01)BOXSwitch0=0;break;

case 0x09: //机箱关信号

if((BOXn>>4)==0x01)BOXSwitch0=1;break;

把函数ProcCMD()写入中断函数,在主函数中添加代码#asm ("sei"),使能全局中断[13]。当控制信号传输到ATmega8中时,产生中断,执行函数ProcCMD (),改变引脚PD3的电平。

4.2.2 EPM240T100C5

EPM240T100C5属于CPLD器件,使用 Quartus II[14]软件编写代码,程序需用USB Blaste下载到芯片中。具体程序如下:

用Quartus II新建一个工程,选定芯片EPM240T100C5。按照原理图,定义相关引脚的名称,如图5所示。

图5 EPM240T100C5部分引脚名称

定义引脚的I/O类型[15]

inputUSB_COM1_TX,UART1_RX,AVR_TX,[4:0]AVR;

outputUSB_COM1_RX,UART1_TX,AVR_RX,[4:0]BoxSwitch;

对I/O引脚进行逻辑连线

assignUSB_COM1_RX=UART1_RX&AVR_TX;

assignUART1_TX=USB_COM1_TX;

assignAVR_RX=USB_COM1_TX;

变量赋值

assignBoxSwitch[0]= (AVR[0]?1'bZ:1'b1);

手动打开调试监控箱的开关电源,使用USB线连接调试监控板和电脑的USB接口后,再按照MFC控制程序,在设备管理器设置通讯端口号为COM3,波特率为38400 bps,数据位为8,无奇偶校验,停止位为1,无控制流。运行PC机MFC控制程序,点击按钮打开串口3。此时,控制程序就可以给硬件板发送信号转接协议。

选中BOX1、SOC1,单击机箱开按钮,MFC程序发送0xff+0x8+0x11+0x0+0x19信号。信号传输到调试监控板的 ATmega8,执行函数ProcCMD ()。0x11>>4=0x01,即判断条件 (BOXn>>4)==0x01为真,BOXS-witch0赋值为零,ATmega8的PD3引脚为低电平。相应的,EPM240T100C5的引脚AVR[0]为逻辑0。式子AVR[0]?1'bZ :1'b1的值等于逻辑1,引脚BoxSwitch[0]输出高电平。这时,调试监控板上对应的电磁继电器开启,输出+12V电压,执行机构箱上电。同理,单击机箱关按钮,相对应的机箱断电。

4.3 FPGA板

4.3.1 ATmega8-16AC

使用ID号识别FPGA板,按照制定的规则定义执行机构箱第一块FPGA板的ID号

#defineID0x11

定义引脚名称

#defineAVR1 PORTC.0

#defineAVR2 PORTC.1

#defineAVR3 PORTC.2

#defineAVR4 PORTC.3

#defineSCKPORTB.5

编写信号解析函数ProcCMD()

switch (Command)

case 0x05: //ARM开信号

if(ID==BOXn)

AVR1=BOARDn&0x01;

AVR2= (BOARDn>>1)&0x01;

AVR3=1;SCK=0;SCK=1;

delay_ms(200);SCK=0;AVR3=0;

elseAVR3=0;

break;

case 0x06: //ARM关信号

if(ID==BOXn)

AVR1=BOARDn&0x01;

AVR2= (BOARDn>>1)&0x01;

AVR4=1;SCK=0;SCK=1;

delay_ms(200);SCK=0;AVR4=0;

elseAVR4=0;

break;

把函数ProcCMD()写入中断函数,在主函数中添加#asm ("sei"),使能全局中断。当PC的ARM开关控制信号传输到ATmega8中时,通过解析信号,改变相应引脚的电平。

4.3.2 EP2C20F484C8

EP2C20F484C8属于FPGA,使用Quartus II软件编写代码,程序需用USB Blaste下载到芯片中。核心操作如下:

用Quartus II新建一个工程,选定芯片EP2C20F484C8。按照原理图,定义相关引脚的名称如图6所示。

图6 EP2C20F484C8部分引脚名称

定义引脚的I/O类型

inputSCK,AVR3,AVR4, [1:0]AVR,RX0,AVR_TX;

outputAVR_RX,SOCSET0,SOCRESET0;

output regTX0;

对I/O引脚进行逻辑连线

assignAVR_RX=RX0;

assignTX0=AVR_TX;

变量赋值

assignSOCSET0= ((AVR3)&& (AVR= =2'b00))?SCK:1'b0; //ARM ON

assignSOCRESET0= ((AVR4)&& (AVR==2'b00))?SCK:1'b0; //ARM OFF

运行PC机MFC控制程序,选中BOX1、SOC1,单击ARM开按钮,发送0xff+0x5+0x11+0x0+0x16信号。信号传输到FPGA板的ATmega 8,产生中断,执行函数ProcCMD()。ID和BOXn都等于0x11,判断条件ID==BOXn为真。BOARDn&0x01=0x0, (BOARDn>>1)&0x01=0x0,所以该程序中的变量AVR1、AVR2都赋值为0。AVR3、SCK先赋值为1,200ms后,它们又赋值为0。相应地,EP2C20F484C8程序中的AVR等于0,AVR3、SCK先等于1,200ms后,二者又等于0。所以,原先为0的SOCSET0会先赋值为1,200ms后又清零,即引脚SOCSET0产生了一定宽度的脉冲电信号。此电信号传输到ARM板,开启磁保持继电器,第一块ARM板上电。相反,单击MFC控制程序的ARM关按钮,相对应的ARM板断电。

5 结束语

电源系统是嵌入式硬件平台的关键部分。在设计电路板时,连接保险、滤波电容,电源线加粗、多过孔、多线传输,局部多边形敷铜,填充等处理措施[16],保证了电源系统稳定、安全、可靠地运行。另一方面,系统的软硬件使操作者只要点击上位机MFC程序按钮,就可以控制机箱和ARM板的开关,实现了电源开关自动化。

此外,系统软硬件还实现了ARM板更新程序、打印ARM输出信息、ARM板复位的自动化,满足了仿真的需要。该故障模拟平台无需损坏硬件,通过改变软件就可以模拟出故障行为,为提高航天器故障处理能力起到积极的作用。

[1]LI Zhi-bing.Fault simulation platform of satellite attitude control system based on embedded simulation [J].Journal of Shandong U-niversity (Engineering Science),2005,35 (3):88-89 (in Chinese).[李智斌.基于嵌入式仿真的卫星姿控系统故障模拟平台[J].山东大学学报 (工学版),2005,35 (3):88-89.]

[2]National semiconductor corporation.LM1084 5Alow dropout positive regulators [EB/OL].http://www.national.com/ds/LM/LM1084.pdf,2005.

[3]ZHENG A-qi.Protel practical teaching [M].Beijing:Electronic Industry of Press,2010:169 (in Chinese). [郑阿奇.Protel实用教程 [M].北京:电子工业出版社,2010:169.]

[4]Silicon Laboratories.CP2102SINGLE-CHIP USB TO UART BRIDGE [EB/OL].http://www.waveshare.net/datasheet/SILABS_PDF/cp2102.PDF,2007.

[5]WU Jian.C language program design and typical example about AVR MCU [M].Beijing:Electric Power Press of China,2008:3-6(in Chinese).[吴健.AVR单片机实用C语言程序设计与典型实例 [M].北京:中国电力出版社,2008:3-6.]

[6]LI Da-she.FPGA/CPLD design example choice based on QuartusⅡ [M].Beijing:Electron Industry Press,2010:1-4 (in Chinese).[李大社.基于QuartusⅡ的FPGA/CPLD设计实例精解 [M].北京:电子工业出版社,2010:1-4.]

[7]SHEN Chang-sheng.Electron technique self-study teaching[M].Beijing:People Stamp Press,2010:74-75 (in Chinese).[沈长生.电子技术自学宝典 [M].北京:人民邮电出版社,2010:74-75.]

[8]DING Yi-fan.Electrician electron and control technique[M].Tianjin:Tianjin University Press,2011:72-75 (in Chinese).[丁一凡.电工电子与控制技术 [M].天津:天津大学出版社,2011:72-75.]

[9]CHEN Ze.ARM embedded technique theory and application[M].Beijing:Beihang University Press,2011:18-20 (in Chinese).[陈赜.ARM嵌入式技术原理与应用 [M].北京:北京航空航天大学出版社,2011:18-20.]

[10]DONG Yun-feng.Dynamic simulation technique of satellite attitude control[M].Beijing:Science Press,2010:120-122(in Chinese).[董云峰.卫星姿态控制动态模拟技术 [M].北京:科学出版社,2010:120-122.]

[11]LIU Shu-zhi,LI Lin-na.Visual C++practice and advance-serial port communication and engineering application [M].Beijing:Railroad Press of China,2009:193-229 (in Chinese).[刘书智,李琳娜.Visual C++实践与提高-串口通信与工程应用篇[M].北京:中国铁道出版社,2009:193-229.]

[12]CHEN Bo,JI Gen-lin.C language program design teaching[M].Beijing:Railroad Press of China,2010:56-66 (in Chinese).[陈波,吉根林.C语言程序设计教程 [M].北京:中国铁道出版社,2010:56-66.]

[13]JIANG Zhi-hong.Practical case pick of AVR MCU system exploration [M].Beijing:Beihang University Press,2010:94-101(in Chinese).[江志红.AVR单片机系统开发实用案例精选[M].北京:北京航空航天大学出版社,2010:94-101.]

[14]ZHOU Jing-hua.CPLD/FPGA control system design [M].Beijing:Mechanical Industry Press,2011:71-79 (in Chinese).[周京华.CPLD/FPGA控制系统设计 [M].北京:机械工业出版社,2011:71-79.]

[15]WU Hou-hang.Learn FPGA easily [M].Beijing:Beihang University Press,2010:17-29 (in Chinese).[吴厚航.深入浅出玩转FPGA [M].北京:北京航空航天大学出版社,2010:17-29.]

[16]DENG Yi,MA Shuang-bao,XIE Long-han.Protel 99SE circuit chart and PCB design [M].Beijing:People Stamp Press,2011:263-266 (in Chinese). [邓奕,马双宝,谢龙汉.Protel 99SE原理图与PCB设计 [M].北京:人民邮电出版社,2011:263-266.]

猜你喜欢
机箱嵌入式继电器
便携式继电器测试台的研制和应用
电气工程及其自动化控制系统中继电器的应用
电子测试(2018年22期)2018-12-19 05:12:42
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
电镀与环保(2016年3期)2017-01-20 08:15:32
继电器在电气工程及其自动化低压电器中的作用
电子制作(2016年23期)2016-05-17 03:53:43
依旧出色 航嘉MVP机箱图解
电脑迷(2015年2期)2015-04-29 00:44:03
Altera加入嵌入式视觉联盟
泓格科技继电器输出模块-87061PW
倍福 CX8091嵌入式控制器
自动化博览(2014年4期)2014-02-28 22:31:15
NI发布两款NI CompactRIO扩展机箱
电子测试(2012年10期)2012-03-31 12:14:20