基于FPGA的CAN总线数字电源设计

基于FPGA的CAN总线数字电源设计

ID:37408537

大小:13.94 MB

页数:82页

时间:2019-05-23

上传者:U-145848
基于FPGA的CAN总线数字电源设计_第1页
基于FPGA的CAN总线数字电源设计_第2页
基于FPGA的CAN总线数字电源设计_第3页
基于FPGA的CAN总线数字电源设计_第4页
基于FPGA的CAN总线数字电源设计_第5页
资源描述:

《基于FPGA的CAN总线数字电源设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

ByLiQ,-gyuADissertationSubmittedtoUniversityofChineseAcademyofSciencesInpartialfulfillmentoftherequirementForthedegreeofMasterofEngineeringInstituteofModernPhysics,ChineseAcademyofSeienees3,2013坚一B一一她~地一垃L蜊堂鼬幽兰燃』D一一丛一虹一些一 关于学位论文使用授权的声明本人在导师指导下完成的论文及相关的职务作品,知识产权归属中国科学院近代物理研究所。本人完全了解中国科学院近代物理研究所有关保存、使用学位论文的规定,同意研究所保存或向国家有关部门或机构送交论文的纸制版和电子版,允许论文被查阅和借阅;本人授权中国科学院近代物理研究所可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存和汇编本学位论文。本人离所后发表、使用学位论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为中国科学院近代物理研究所。保密论文在解密后应遵守此规定。论文作者签名:——导师签名:——El期:—— 原创性声明本人郑重声明:本人所呈交的学位论文,是在导师的指导下独立进行研究所取得的成果。学位论文中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。除文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究成果做出重要贡献的个人和集体,均已在文中以明确方式标明。本声明的法律责任由本人承担。论文作者签名:——日期: 致谢时光荏苒,转眼研究生三年的学习即将结束,回首三年的学习生活,感慨万千。在此对在我研究生期间给予我支持和帮助的所有人表示深深的感谢。在本论文完成之际,首先对我的导师高大庆研究员致以深深的感谢。在我就读硕士研究生的三年里,高老师在学业上给予我极大的支持,在生活上给予我极大的帮助。高老师深厚扎实的知识水平,勤勉严谨的治学态度,宽容大度的处事风格深深的感染着我,激励着我。在师从高老师的三年里我受益匪浅,在此,深深的感谢高大庆老师对我的关心和指导。特别感谢,在我的研究生工作中给予我很大帮助的陈又新老师。陈老师在我研究生课题研究期间,多次与我讨论研究,上至课题的总体框架,下至课题进行中的细小环节,陈老师都给予我很多指导,并给出建设性意见,我论文的完成离不开陈老师的工作。谢谢陈老师对此付出的努力。感谢我的师姐黄玉珍、师兄王荣坤、赵江。师兄师姐在我工作中给予了很大的支持,在师兄师姐的帮助我的工作才得以顺利进行。在于师兄师姐的讨论中使我学到了很多东西。感谢周忠祖主任以及闫怀海、冯秀明、燕宏斌、上官靖斌、张显来、原振东、高亚林、唐勇、辛俊业等诸位老师在我就读研究生期间,在我工作上给予的帮助和关心。感谢景永红师傅在电路焊接调试中给予的支持。感谢史春逢师兄、吴凤军师兄、张华剑师姐、于春蕾师姐、王斌师姐、崔渊师兄、吴光华师弟、张志新师弟以及申万增、封安辉、李晓辉、张帅、陈皓、王运乾等诸位同事。与诸位相处的两年,感谢你们营造的和谐融洽的工作环境。诸位共同搭建的电源室大家庭使我倍感珍惜。感谢近代物理所对我的培养,祝愿近物所明天更辉煌。最后,感谢我的家人给予我的支持。T 三年的时光转瞬即逝,我即将向诸位告别,你们留给我的美好回忆我将永远怀念,祝所有帮助过我的人健康愉快,谓}谢大家。Ⅱ李庆雨2013年5月 摘要电源:系统是加速器的一个重要组成部分。一部加速器通常需要数量庞大的高性能电源构成电源系统,为磁铁提供稳定的励磁电流。随着加速器技术发展,对电源系统提出更高要求。不仅要求电源有高精度、高稳定度,还要求其响应速度快、运行可靠性高、可远程控制、人机界面良好、能够实现运行状态实时监测反馈等功能。这都要求电源系统有高精度稳定灵活可靠且可复用的电源控制系统,也因此对用于电源控制的现场总线提出了更高的要求。数字控制系统已成为现代工业控制系统的主流,数字化控制技术因其自身性能好、价格低、可复制、调试简单等优点,是新一代加速器电源发展的趋势。现场可编程门阵列(Field--ProgrammableGateArray,FPGA)、复杂可编程逻辑器件(ComplexProgrammableLogicDevice,CPLD)等数字可编程芯片具有集成度高、精度大、设计灵活、开发周期短、运行可靠等特点,目前已经成为数字电源研究中的热点。本设计使用FPGA和CPLD作为主控芯片,使用Verilog硬件编程的方法搭建了一套数字电源控制系统。本控制系统可进行PID调节和PWM调制,并对电源进行状态监测和继电器控制。方案采用CAN总线作为通信总线实现电源的远程控制和管理本文设计的数字电源控制系统,对于未来的数字电源进一步研发提供了参考。关键诃l数字电源FPGACAN总线VerilogHDL硬件编程 Abs仃actABSTRACTDesignofDigitalPowerSupplywithCANBusBasedOnFPGALiQingyu(NuclearTechnologyandApplications)DirectedbyGaoDaqingThepowersupplysystemisanimportantcomponentofanaccelerator.Typically,oneacceleratorrequireslargenumbersofhigh-performancepowersuppliestoprovideastableexcitingcurrentformagnet.Withthedevelopmentofacceleratortechnology,Thepowersystemrequirementisbecominghigher.Itnotonlyrequireshigh-precision,high-stability,butmustalsohaveperformancesuchasfastresponse,highreliabilityandcanberemotecontrolwithman-machineinterface,Canachieveoperatingstatusreal-timefeedback.Asaresult,high-performancepowercontrollerandcontrolbusarerequired.Digitalcontrolsystemisbecomingthemainstreamofmodemindustrial.Becauseofdigitaltechnologyishigh-performance,low—price,andcanbecopiedanddebuggedconveniently,ithasbecomeatrendofnewgenerationofacceleratorpower.Programmablechiphashighintegration,hi.ghaccuracy,Highreliability,shortdevelopingcycle,canbedesignflexibility.ThusFPGAandCPLDhavebecomethehotspotinthestudyofdigitalpower.ThispowercontrollerdesignusesFPGAandCPLDasthemasterchip,andusestheVerilogHDLashardwareprogrammingmethod.ThiscontrolsystemcanmakePIDregulate,PWMmodulate,powersupplystatusfeedbackandrelaycontr01.CANbusisusedtoremotecontrolandmanagementofpowersystem.Thedesignofdigitalpowercontrolsysteminthispapercanbetheusedasareference.forfurtherdigitalpowerresearch.Keywords:digitalpower,FPGA,CANbus,VerilogHDLII 目录第一章结论⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯11.1论文选题背景⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.11.1.1加速器电源简介⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯l1.1.2数字电源与模拟电源的比较⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯11.1.3国内外加速器数字电源进展⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯21.2本论文呢要工作和创新⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.51.2.1本论文呢要工作和创新⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯51.2.2本论文创新点⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯6第二章电源结构与控制方案⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.72.1电源主回路拓扑⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.72.1.1加速器直流电源常见拓扑结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯72.1.2DC/DC电源中H桥拓扑的简化和分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯82.2加速器直流电源控制方案⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯1l2.2.1数字电源的控制结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..112.2.2总体控制方案⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.11第三章数据采集与电流调节⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯133.1电流调节器功能需求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯133.2电流调节总体方案⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯143.2.1基于FPGA的数字调节板⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.143.2.2FPGA简介⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..153.2.3AD7634简介⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯173.3数据采集系统⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯l83.3.1总体设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.183.3.3AD7634的FPGA控制⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯193.3.4AD7634测试⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯203.3.5ADC采样的归一化⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯213.4基本数学运算的FPGA实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..223.4.1FPGA浮点运算与定点运算的比较⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯223.4.2加法/减法的FPGA实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯233.4.3乘法的FPGA实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯243.4.4除法的FPGA实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯263.5数字PID控制⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..273.5.1PID控制原理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..283.5.2增量型PID控制⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯283.5.3偏差量限幅、积分项限幅和控制量限幅⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.293.5.4PID算法的FPGA实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..303.6数字PWM脉冲波形的生成⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯313.6.IPWM调制原理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯313。6.2PWM调制的FPGA实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯323.6.3PWM产生程序测试⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯34 目录第四章状态监测与继电保护⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯374.1状态检测和继电保护系统需求分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯374.2状态控制总体方案⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯384.2.1基于CPLD的状态控制方案⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.384.2.2基于C805l单片机的过压过流检测方案⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯394.2.3CPLD简介⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一404.2.4C805l单片机简介⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一424.3状态监测的CPLD实现⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.434.4继电器控制的CPLD实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..444.4.1开关机命令预处理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.444.4.2开关机程序设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.454.4.3继电器故障自检⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..464.5故障锁存和处理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯474.5.1故障类型⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.474.5.2故障处理的CPLD实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.484.5.3故障初始化复位⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.494.6过压/过流故障监测的C8051实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.49第五章总线通信与电源管理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5l5.1CAN总线通信⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..515.2数字电源CAN总线通信网络⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯535.2.1CAN通信总体方案⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯535.2.2CAN控制器SJAl000介绍⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯545.3SJAl000控制的FPGA实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯565.3.1SJAl000寄存器读写的FPGA实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一565.3.2CAN接收/发送的FPGA实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯585.3.2CAN控制的FPGA实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯595.4基于C805l的CAN总线通信⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.595.5数字电源控制系统的应用层协议⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯605.6RS-485通信总线简介⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..6l5.7RS-485总线控制器的FPGA/CPLD实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯6l5.7.1串行数据收发的FPGA/CPLD实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.625.7.2RS-485控制的FPGA/CPLD实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.62第六章数字电源性能测试与展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯656.1数字电源性能测试⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯656.2论文总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯666.3未来工作展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯66参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯69发表文章⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯73II 第一章绪论1.1论文选题背景1.1.1加速器电源简介电源系统是加速器的一个重要组成部分【1】【2】。一部加速器通常需要数量庞大的高性能电源构成电源系统,为磁铁提供稳定的励磁电流。加速器电源有以下主要特点:①加速器电源以直流稳流电源为主,加速器的良好运行要求电源输出稳定度高、纹波小。通常要求加速器电源电流稳定度在10。4-10-5之间。②加速器电源的输出电流并不是一个常值,根据被加速粒子的种类、能量的不同,要求电源的输出值也不同,因此加速器电源必须是一个可在线编程的程控电源,在有些情况下还要求电源的输出电流波形也可编程控制。③加速器电源系统不是若干台单个设备的简单组合,而是由加速器中央控制计算机进行全方位控制并与其它设备统一协调运行的整体系统。④加速器电源为非标准专用设备,不能从市场上直接购买。在设计过程中必须要了解加速器的基本工作特点,同时与加速器物理、磁铁、高频、离子源等相关领域技术人员紧密配合,以确定最佳设计方案【31。兰州重离子加速器和冷却储存环(HIRFL.CSR)是国家大科学工程。本文基于HIRFL.CSR的需求设计。1.1.2数字电源与模拟电源的比较模拟电源控制使用大量的运算放大器、触发器、比较器、定时器、基准源以及波形生成电路的组合构成电源控制回路。随着电力电子技术、计算机技术和数字控制技术的发展,电源的数字化逐渐成为了电源研究的新方向。也涌现出了关于数字电源设计的众多方案,其基 2基于FPGA的CAN总线数字电源设计本思路分为两种,即:①用数字接El控制模拟电路实现电源数字化;②用数字电路完全替代模拟电路实现电源数字化。其中第一种方案,其核心仍然为模拟电路,性能有很大的局限,本设计没有采用。基于全数字控制的数字电源相对模拟电源有以下优势:①电源数字控制的集成度高,数字电源中使用单片机、DSP、FPGA、ASIC或其它集成芯片作为电源控制器,在一个芯片上可以完成数量庞大的门电路,完成多个模拟电路共同实现的电路功能,因此一般来讲,数字控制器相比模拟控制器体积更小,功耗更低。②电源数字控制的稳定性高。使用数字控制方式的PID控制的计算和PWM脉冲的产生均在芯片内完成,可以防止电源周边复杂的电磁环境对电源控制的干扰,可简化控制器电路的电磁屏蔽设计。③电源数字控制的普适性好。在加速器电源中,电源种类繁多,指标各异。如果使用模拟电路控制需针对不同电源设计不同的控制电路、设计过程复杂。使用数字控制只需更改数字控制器的参数,不需更改印刷电路板的设计,从而简化了设计过程,缩短了研发周期。④电源数字控制的接口灵活。数字电路的设计简化了电源控制器与周边设备的通信,允许使用不同的通信接口,允许自定义通信的应用层协议,简化了计算机与电源的数据交换。1.1.3国内外加速器数字电源进展随着加速器技术发展,对电源系统提出更高要求。不仅要求电源有高精度、高稳定度,还要求其响应速度快、运行可靠性高、可远程控制、人机界面良好、能够实现运行状态实时监测反馈等功能。模拟控制难以全面满足现代加速器的这些要求,而数字电源因此显示了极大的优越性,对提高整个加速器系统的性能和效率能够起到重大作用。数字电源的优异性能在国内外先进的实验室如瑞士光源、德国重离子研究中心等得到了很好的验证。以下选取国内外一些加速器实验室的数字电源设计方案做简单的介绍。 第一章绪论3欧洲核子中心的大型强子对撞机LHC数字电源采用TI公司DSPTMS32032DSP作为数字信号处理器件,Motorola公司MC68HCl6ZI单片机实现通信和扩展功能,IDT公司IDT49C465专用芯片作为误差检测和校正器件141151。其控制回路结构如下图:图1.1LHC数字电源方案瑞士保罗谢尔研究所(PaulScherrerInstitute,简称PSI)的瑞士光源(SLS)电源数字化控制的结构如下图。电源的数字控制器包括数字控制板和AD/DA转换板。其中数字控制板如图1.2所示,其中使用DSP完成调节运算功能,使用FPGA实现I/O接口、通信和脉宽调制信号PWM的生成。AD/DA转换板如图1.3所示,-M3C用来采样电源输出电流、电压信号;DAC将控制器内部的数字信号转换成模拟信号,便于示波器观测,使用FPGA作为AD/DA的控制器。【6】【7】[8】 4基于FPGA的CAN总线数字电源设计图1.2SLS数字电源数字控制板方案图1.3SLS数字电源AD/DA板方案合肥同步辐射国家实验室(NSRL)储存环校正铁数字电源采用德州仪器 第一章绪论5TMS320F2812DSP作为主控制器,MSP430F5438单片机作为通信芯片,使用ADI公司18位AD7631作为模数转换器,Altera公司EPlC3T144FPGA驱动ADC采样。电源开关频率50KHz,能够完成过流保护、过压保护、超温保护、断水保护和负载故障保护等功能。【9】其电源控制结构如下图:图1.4NSRL数字电源方案由以上国内外加速器实验室的数字电源设计经验可以总结出数字电源的一般结构,即保持电源功率主回路不变,将原来用于电源控制的模拟控制回路用数字电路替代,并设置数字通信接口用于组织电源控制网络,实现电源的数字化。1.2本论文呢要工作和创新1.2.1本论文呢要工作和创新加速器电源数字化对提升加速器的性能有着非常重要的作用,设计一种简单、普适且运行可靠的数字化电源具有十分重要的研究价值。本文的主要工作内容包括研究新的加速器电源数字调节技术、状态控制技术和新的应用于电源系统的基:于二CAN总线的数字通信技术。具体分为六个章节进行介绍:第一章主要介绍加速器数字电源的一般知识,讨论对加速器电源进行数字化改造的必要性,简单介绍国内外加速器数字电源的发展概况。 6基于FPGA的CAN总线数字电源设计第二章探讨加速器直流稳流电源的主回路拓扑结构和控制结构。对H桥斩波电路进行简化分析,并给出电源数字控制的一般思路。第三章主要论述电源的数据采集和输出电流调节的一般设计思路,探讨ADC采样的控制方法,介绍PID计算和PWM调制的原理,研究PID—PWM方法在FPGA中的实现。第四章主要论述电源状态检测和状态控制的一般设计思路,探讨继电器控制、故障处理的CPLD实现方法。介绍基于C8051单片机的过压/过流检测程序设计。第五章主要论述电源的通信接口和电源系统的管理。讨论CAN控制器、RS一485的FPGA/CPLD实现,简单介绍本设计所使用的通信协议。第六章介绍用于HIRFL的一种小型电源的调试结果,并对整体设计进行总结和展望。1.2.2本论文创新点本设计的主要创新点如下:①本设计搭建了一整套用于加速器电源的数字控制系统,能够实现从电流调节、状态控制到电源通信和管理的多层次全数字控制。控制系统中利用FPGA、CPLD、单片机等器件的合理有机组合,引入CAN总线用于电源统一管理。此方案保证了电源运行的稳定性和可靠性。②本设计中电流调节器以FPGA为核心器件,利用VerilogHDL硬件编程实现了数字调节方案。较以往设计,增大了PWM脉冲的分辨率,提高了电源控制的实时性,提升了输出电流的品质。本方案的全硬件实现方法避免了软件执行过程中的不确定性,减少了FPGA内资源利用率。本设计在HIRFL一种±15V/15A校正铁电源上进行了验证,得到了满意的结果。 第二章电源结构域控制方案2.1电源主回路拓扑第二章电源结构与控制方案2.1.1加速器直流电源常见拓扑结构加速器电源以直流稳流源为主,其拓扑结构一般分为整流和斩波两部分。如文献[101111】[12】提供了常见的加速器电源电路拓扑。整流电路输出直流经过滤波后进入斩波电路。为简单起见,我们将前级整流电路满足输出功率、输出电压纹波等指标的情况下,可将其输出作为一个稳流源处理。加速器磁铁DC.DC斩波电路根据电流方向可分为单向电源和双向电源;根据电流和电压的方向,又分为单象限电源、二象限电源和四象限电源。将仅输出正向电流和正向电压的电源称为单相电源;电压双向,电流单向输出的称为二象限电源;电压和电流均可双向输出的称为四象限电源。H桥斩波电路是一种常见四象限电源斩波结构,其电压和电流均可双向输出,因此能够满足大部分加速器直流电源的需求,故在加速器电源中被广泛应用。H桥斩波的拓扑结构如图,此图以HIRFL+15V/15A校正铁电源为例。-,。贝L+勺雌蛊4叮GL刀V=曹也垂飘矗‘]较;]本r一V—一‘。I、图2.1H桥斩波拓扑 8基于FPGA的CAN总线数字电源设计如上图所示,当V2、V3管闭锁、V1、V4管在门极控制下交替导通时电源工作于正向模式,其电流方向如下图所示:k(a)V1导通、V4导通r一—_申申|⋯一●;增cI,=申审I—iI(b)V1关断、V4导通r一—|匈审{.o=。㈧GI—ir=。§每J(c)V1导通、V4关断图2.2H桥错相开关工作方式V1、V4都导通时,电流正向,桥口电压为正,整流电路给滤波电感L。和负载电感充电,电源工作在第一象限:Vl导通而V4关闭或V1关闭而V4导通时,储存在滤波电感L。和负载电感中的电能按如图所示路径释放,电流正向,桥口电压为负,电源工作在第二象限。同理当V1、V4管闭锁,V2、V3管交替导通关闭时,电源工作在负向第三第四象限,此不赘述。2.1.2DC/DC电源中H桥拓扑的简化和分析电源工作于正向时,可以将上述H桥斩波电路简化为BUCK电路结构【13l,如下图,当V1、V4同时导通时,H桥等效电路如下图(a);V1、V4有其一导通而另一关断时,等效为下图(b)。 第二章电源结构域控制方案誊t詹丁1I_{ji&上:负1:T。¨:I'I一-1。c土:【Ia+i主1)T.1l—i(a)V导通(b)V关断图2.3H桥拓扑简化(正向运行)BUCK电路存在连续和断续两种工作状态,如下图所示。厂]厂]厂]厂几r]n厂]厂]厂]厂]厂几r]厂](a)连续状态(b)断续状态图2.3BUCK电路的连续模式和断续模式BUCK电路存在连续和断续两种工作状态[141[15]。当目标电流值较大时,开关管占空比也较大,此时电路工作于连续状态,如上图(a)。当电源工作于连续状态,当管V(对应H桥中V1、V2管同时导通)时,流过Lo的电流变化率为: 基于FPGA的CAN总线数字电源设计dt。(。)一巧一圪d,厶(2.1)其中,Ⅵ为输入端电压;Vo为负载端电压。因此,假设MOSFET管导通时间为Ton,则电流变化量为:%删2等瓦2等矽同理当等效MOSFET管V关断时,Lo两端电压极性反相:d4。(。一形d,厶%矿争2≯缈(2.2)(2.3)(2.4)当电源稳定运行在同一目标值时,Lo两端Ton期间的电流升量等于Toff期间的电压降量。因此馘。(on)=M。(。固,即:将式(2.6)代入式(2.2)得出电流纹波为:(2.5)(2.6)△,2≤pc,一p,丁=c·一每,丢丁c2·7,可见电流纹波与占空比P以及开关周期T有关。开关频率越高电流纹波越小。开关频率确定时,在P=O.5附近纹波最大。当电源工作于断续模式时,由图可见,其电流下降时间不再等于(1一p)T,因此式(2.6)不再适用,此时:%旷簪<≯缈(2.8)(2.9)(2.10)竺厶肜厂矿。盼发等兰厶嵋.o.中乃>.p圪半 第二章电源结构域控制方案1以上对于电源的分析均是在最简单的理想模型下进行,忽略了开关管和二极管的管压降,没有考虑电压电流的耦合关系。实际电源情况要更加复杂。以HIRFL校正铁±15A/15V电源为例,此电源使用Semikron公司SK85MHl0TH桥MOSFET模块。此模块中MOSFET导通时,管端等效电阻为7.5mQ(25℃)~13.5mQ(12.5℃),本电源额定最大电流15A,因此导通时单个MOSFET管最大压降约0.15V,则H桥两个管的压降为0.3V。模块内单个二极管管压降0.9V。对于实际电源一般需要通过软件模拟和仿真探究其工作时的电压电流关系[161。2.2加速器直流电源控制方案2.2.1数字电源的控制结构依据加速器对于电源控制的需求,可以将数字电源的控制分为三个层次,即:①对电源开关管的控制;②对电源整体装置的控制:③对多个电源组成的电源系统的控制。其中:对电源开关管的控制,即电源的电流调节。开关管是整个电源的核心器件,开关管的开闭周期和占空比的调节决定了电流输出的大小和电流输出的品质。直流电源稳定度性能的好坏主要取决于电流调节。对电源整体装置的控制,即电源的状态控制,包括对电源状态的监测和电源的继电保护。状态控制决定了电源在突发异常情况下的自我保护能力,保证了电源运:行的安全性和稳定性。对多个电源组成的电源系统的控制,即电源管理,由数字通信总线和控制计算机以及计算机软件共同组成,用于实现人机交互。好的电源管理系统可以简化电源操作。2.2.2总体控制方案以HI’RFL±15V/±15A电源为例,依据以上分析,本设计将电源控制分为 基于FPGA的CAN总线数字电源设计三部分【"】,即:①数据采集和电流调节;②状态监测和继电保护;③数据通信和电源管理。其中:数据采集和电流调节,采用ADI公司AD7634模数芯片作为数字转换器件采用Altera公司FPGA作为电流调节的主控芯片。状态检测和继电保护,采用SiliconLab公司C8051F单片机作为过压/过流故障检测器件,采用Altera公司MAX系列CPLD作为继电控制的主控芯片。数据通信和电源管理,采用上述C8051F单片机和NXP公司SJAl000芯片作为CAN总线控制器。如下图所示,为本控制系统的结构框图,电源控制系统有状态板、调节板和外围通信线共同构成。图中,障;④为过信号;⑧为图2.4电源数字控制总体方案①为过流监测传感器信号;②为过压监测传感器信号,③为过流故压故障;⑤为过热故障;⑥为继电器控制信号;⑦为MOSFET控制电流调节传感器信号;⑨为PWM使能信号。 第三章数据采集与电流调节3.1电流调节器功能需求输出电流采集卡与调节器是数字电源控制系统的核心。电流调节器主要实现以下功能:①采集电流/电压信息,并将采集的模拟量转换成数字量,以供电流调节;②与上位机实现通信,接收电流给定,并返回当前电流值;③控制开关管开闭占空比,响应电流给定,并对比电流给定值与当前输出电流值,进行PID调节。通信功能需求:为适应远程控制的需求,需要通过通信线将电流调节器与上位机联系起来。调节器通过通信总线向上位机发送的信息主要为当前电流回读,且为保证上位机随时掌握电源运行情况,需不断的向上位机发送回读值。上位机通过通信总线向调节器发送的信息有:①电流给定值;@PID参数值;⑧电流回读使能。数据采集需求:为了对电源进行负反馈调节,必须无损的采集电源的电流输出信息。电源输出的电流/电压为模拟量,为适应数字调节的需求,在进入数字调节器之前需将其转换成数字量。数据采集系统包括两部分,即传感器和模数转换器(ADC)。电流调节需求:电流调节的最基本原理是形成负反馈控制环,当输出电流大于给定值时,通过减小开关管的开闭占空比使输出电流变小,反之当输出电流小于给定值时,需控制增大开关管开闭占空比。数字调节器为适应负反馈调节,需能够进行调节算法的运算。 14基于FPGA的CAN总线数字电源设计3.2电流调节总体方案3.2.1基于FPGA的数字调节板由第~章可知,数字电源的电流调节控制方案具有多种方案,但这些方案的共同点都是数据采集系统和电流调节器的组合。各种数字电源控制方案的其主要区别在于模数转换器ADC的选型和主控制器选择的不同。其中尤其以主控制器选择最为关键。当前,最常见的四种数字电源调节主控制器方案分别是:单片机、DSP、FPGA和专用PWM芯片。文献【16]对以上四种方案进行了比较。本设计基于以上比较,选用FPGA(Field—ProgrammableGateArray,现场可编程门阵列)作为数字调节的主控制器。FPGA与单片机和DSP相比,最大的优点在于FPGA是可重构器件,可以通过硬件编程定制所需要的电路,因此,FPGA设计最灵活,程序可复用性最好。但是,FPGA的功能实现由硬件完成,其性能取决于硬件程序的可靠性,因此基于FPGA的数字调节器方案对开发提出了很高的要求。据3.1节需求分析,本文设计了以下数字调节板(下称调节板)方案,如下图:传感器输入岭IADCIr‘。。。。。。。‘。。’。。。。。。。。。。。1IFhsh存储器l图3.1调节板总体方案岭PWM输出团 第三章数据采集与电流调节15在此调节板总体方案中器件繁杂,因此在进行调节板总体方案设计时,将数据采集部分和电流调节部分分开,设计为两块印刷电路板,其中母板以FPGA为中心,周边布局CAN通信控制器收发器以及片外存储器等,子板以ADC器件为主。子板和母板间使用多针插件连接,如下图:图3.2调节板母板PCB图图3.3调节板ADC子板PCB图3.2.2FPGA简介[19l[19]FPGA(FiledProgrammableGateArray,可编程现场门阵列),是在CPLD的基础上发展起来的新型高性能可编程逻辑器件,一般采用SRAM工艺。FPGA 16基于FPGA的CAN总线数字电源设计的集成度很高,其器件密度从数万系统门到数千万门系统门不等,可以完成极其复杂的时序与组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域。FPGA的基本组成部分有可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元、内嵌专用硬核等。本设计使用Altera公司的CycloneII系列EP2C35FPGA作为电源调节的核心器件。CycloneII系列FPGA是Altera公司推出的低成本FPGA产品。CycloneII器件的制造基于300mm晶圆,采用台积电90nm、低K值电介质工艺,这种工艺技术确保了高速度和低成本性能。同时,CycloneII器件扩展了低成本FPGA的密度,内部最多含68416个逻辑单元(LE)和1.1M比特的嵌入式存储器。CycloneII器件支持低成本运用中常见的各种外部寄存器界面和I/O口协议。来自Altera和合作伙伴IP核使得CycloneII界面和协议变的快速和简单。综上CycloneII系列FPGA具有低功耗、高密度、功能丰富等优点,且可极大地降低控制器成本。表3—1CycloneII系列FPGA资源列表资源EP2C5EP2C8EP2C20EP2C35EP2C50EP2C70逻辑单元4608825618752332165052868416RAM(bits)119,808165,888239,616483。840594,4321,152,000乘法器1318263586150锁相环24最大I/O口142182315475450622CycloneII器件平面布局如下图所示: 第三章数据采集与电流调节乘法器I譬一一《l誓一一⋯“.。黼‘≈i:口¨||||i甜‘!i蔫,ii,Y荟糍{》攀?鬻i黧Oil∞Q逻辑髓辫逻辑i逻辑萋鋈鞣单阵列雉甄露阵列阵歹习_|l』}i甄冀7&F{∞、’。龇一础女蛳.:鬻s瓣一:褂目嚣篱jltll鏊攀冀薹蘩I譬■■I誓一一、慧麓4R擞。 基于FPGA的CAN总线数字电源设计AD7634的内部结构如下图所示:AGNDAVDDTIEMPREFBUFINREFREFGNDVCCVEEDVDDDGND西i丽WARPIMPULSED[17:0】BUSYRDCSDO,0B』2C图3.5AD7634结构在本设计中,使用其内部5V基准电压,量程为±10V,使用串行数字接口进行数字量的传输。3.3数据采集系统3.3.1总体设计本设计使用ABB公司EL25P1电流传感器和ADI公司AD7634模数转换器共同组成电流数据采集系统。使用FPGA驱动AD7634。图3.6ADC数据采集方案岭数据吟臼控制臼黑丽ao—SA姒卜I湖”即蓍至SH+.FDfM孵邮阳泔盼吣贬 第三章数据采集与电流调节3.3.3AD7634的FPGA控制AD7634的模数转换过程可分为两个阶段,即采样转换的数据传输。当AD7634的CNVST引脚被送入一个下降沿时,ADC启动采样转换过程,并将引脚BUSY置高,在此过程中不接受开始新的采样的请求。至转换过程结束后,进入数据传输阶段。ADC等待数据同步时钟信号到来时,根据时钟周期将数据传送到FPGA中。FPGA对AD7634的控制信号主要有采样起始信号和数据输出同步时钟。ADC采样转换时序要求如图3.7,ADC数据传输时序要求如图3.7(详见文献[20】)。图3.7AD7634采样转换时序【20】uotEtl.Oll3Ex俪11持n髓酗:LKlO两10‘^OlSCoNnWUo惦SD臣K喀R自∞■■臼●麓!啦图3.8AD7634数据传输时序[20】一岱针Ⅸ忻洲西一~一S 20基于FPGA的CAN总线数字电源设计依据以上时序要求编写AD7634驱动程序,对程序仿真如下图所示。clk_SCIl№r■t—n●∞∞‘工%j^w63‘.B16I^叶B3‘SCIjm∞l∞Ifr国m83I.httconv盯si*a_fin广——1:nn门nnn门门门nn门广|rI门几:}’尸。亍。。。‘1尸’『‘1尸二—‘.11.‘∞∞∞∞∞∞∞∞∞X11I∞11Q10011001II3.3.4AD7634测试图3.9FPGA的ADC控制程序仿真AD7634测试方法为:用lV恒压电池(实测电压约为1.018V)替代传感器和采样电阻,为AD7634提供采样电压。ADC的采样值转换成18位数字量送入FPGA,再由CAN通信总线和CAN-NET转换器送入计算机。ADC的采样频率设置为20KHz,CAN总线每隔0.2s向计算机传送一个AD转换结果。本次测试共采得10000个数据,结果绘得如下图。00£▲盛童基名矗文奎∑鑫毒量鑫茹斟:越矗立乏I二釜毫;;逸●计数图3.10AD7634测试结果由以上结果可见,AD采回的数据集中在1.018V左右,说明AD7634在FPGA控制下能够正常工作。但是,以上ADC测试结果数据有一定的分散,排除个别点,ADC采样结果 第三章数据采集与电流调节21多集中于1.010V至1.025V区间,可以估算此ADC数据采集板的精度约为1.5×10。2。较大的数据分散,一方面来自周围环境(如温度、电磁辐射等)对电池电压的影响,另一方面,来自印刷电路本本身,如基准电压的波动等。测试结果远大于芯片采样的理论精度,说明本印刷电路板尚有较大的改进空间。3.3.5ADO采样的归一化在本±15V/±15A电源中,使用的EL25P1电流传感器,其测量电流与实际电流的关系为t=i/1000。即当电源实际电流为满量程15A时,传感器传回的电流为15mA。传感器回传电流经采样电阻转化成电压信号。本实验电源采样电阻取200Q。满量程时的传感器电流转化成电压即200×15mA=3V,即采样电阻端电压范围为±3V此电压信号在送入ADC进行模/数转换前,还需经运算放大器放大,放大三倍,即进入AD7634的电压幅度为±9V。也就是说,AD7634的±9V采样对应实际电流的±15A。本电源数据采集系统AD7634量程选择±10V,ADC精度为18位(其中第18位为符号位)。9V对应的ADC输出结果为9V/10V×217=117965。也就是说,实际电流±15A对应的采样值为±l17965,而非±217=±131072。因此在讲采样值引入PID计算前需要对采样值进行归一化。由上分析,不难得出:3"AD7634=等×217_等趔7=等X217--筹划7@·,J=÷×217(3.2)15、。式中,I为实际电流,3"AD7634为AD7634的采样得到的数字值,FAD7634为其采样电压=.陈为采样电阻R的端电压,磊为放大器放大系数,石为传感器电流,詹为传感器比例系数。由式(3.1)、(3.2)可得,归一化公式为: 基于FPGA的CAN总线数字电源设计J:J⋯。堕:确。卫坐生:一3"AD7634SAD(3.3)归‰,s,a瓦矗2,ss。西丽2飞丁(j.jJ3.4基本数学运算的FPGA实现FPGA程序设计灵活度高,同种功能可以使用不同的程序设计实现,评价硬件程序在FPGA中实现方法的优劣,主要考虑以下几个方面:①功能能否实现;②是否有容错能力;③输入—输出延迟时间长短;④占用FPGA资源的大小。在FPGA程序设计中,基本运算(如加减乘除等)是程序设计的基础,一个具有复杂功能的程序往往使用大量的各种基本运算,基本运算的计算结果直接影响程序整体性能。在本数字电源控制调节系统中PID调节和采样值归一化等程序中需要使用大量的基本运算。3.4.1FPGA浮点运算与定点运算的比较FPGA中各种基本运算有两种基本方法。方法一,将送入FPGA程序的二进制数转化成浮点数,利用浮点数运算得到运算结果后,再将结果转化成二进制数。方法二是直接进行定点运算。本文以加/减法运算为例,比较两种方法的优劣。QuartusII开发软件中,包含有已完成的定点/浮点数转换和浮点数加减IP核(altfp和。利用此IP核搭建加法电路,并与直接的二.convertaltfp.addsub)进制数运算比较,仿真结果如下:clockm一·t壬-,·ht‘田-tl圈l啦固·姒一1,XnFV.R*t.kodI互¨l一·ntt‘盯—·“hd——◆ITH卜一图3.11FPGA浮点数/二进制加法运算结果比较仿真中,使用两组18位(最高位为符号位)随机数相减。浮点数运算由时序逻辑实现,需要有时钟输入;二进制运算由组合逻辑实现,无需时钟输入。 第三章数据采集与电流调节23由仿真结果可见,两种运算方法得到的运算结果相同,但是浮点运算比直接的二进制运算有20多个周期的延时。对以上加法/减法实现程序,进行编译,可得到其FPGA资源占用率,如下表:表3.2FPGA浮点数/Z.进制加法运算资源占用量比较altfp_convert+altfp_add_sublpm_add_sub项目浮点运算二进制运算逻辑单元152437寄存器资源10420RA^嗄24l0由上表可见,浮点运算占用资源远远大于二进制运算。综上,浮点运算虽符合一般的运算习惯,但结果延时长,占用的资源大。在电源调节系统中,运算延迟时间越小控制的实时性越好,运算时间越短电源调节的精确度越高。为适应电源调节的需求,在本FPGA程序中统一采用定点运算。3.4.2加法/减法的FPGA实现FPGA中定点加法/减法运算也有两种实现方式:①直接用VerilogHDL语言逻辑实现;②使用Quartus提供的IP核(1pm_add_sub)实现。在VerilogHDL语言中的直接“+"或“-”只能实现无符号二进制数的加减,当进行存在负数的加减运算时,需要特殊考量。对两种方法进行仿真,得到如下结果:图3.12FPGA减法运算结果比较如图3.12所示,两种实现方法时间延迟在同一水平,但若使用lpm_add_sub 24基于FPGA的CAN总线数字电源设计IP核实现运算,会出现数据溢出错误(如图上标示)。编译后得到的FPGA资源占用率,如下表:表3.3FPGADril减法运算资源占用量比较lpm_add_subVerilogHDL编程定点运算逻辑单元3739寄存器资源0RAM0由上表可见,两种定点运算占用资源数量十分接近。综上,在本数字调节器中使用VerilogHDL编写的加减法程序模块用于PID调节。3.4.3乘法的FPGA实现定点乘法运算可以用①乘法器或②逻辑电路方法实现。其程序设计可以采用Quartus提供的IP核或用VerilogHDL硬件语言编写。VerilogHDL硬件语言实现乘法运算也有两种方法,即①使用乘法运算符“幸”;或使用错位相加的逻辑电路组合。值得注意的是在这两种运算中,都只能对正数进行运算,当输入为负数时,需对其取补码,转换成正数再进行运算,结果的正负需要单独考量。对其仿真,得如下结果:#一1蚰AX30681X2l啦X一7370X一1065×1目65X24578X髑2XlDl58X30锄X—s嘲X一16826l#研90坼6目2X·24838|103B×2308036006X625蚰3060X63897870×BT253BBl0×2I?9749086X一2∞999‘62tX1322774780X6T2T99140X—洲sTI●2X。1095%1510】【5790066豫X一2483811036×230603慨X625鹎3060X63897870X672536610X2IT卵490两×一2099994雠4×132抑4T右0×6T2T钟140X。5TSA57142X—1095%1510;图3.13FPGA任意值乘法运算结果比较使用两组带符号的随机二进制数inl(16位)、in2(18位)相乘;out—methodl为使用lpm_multIP核使用乘法器电路得到的结果;out—method2为使用lpm_multIP核使用逻辑电路得到的结果:out—method3为使用硬件语言中乘法运算符“幸”编写的程序模块得到的结果;out—method4为使用错位相加的逻辑运算得到的计 第三章数据采集与电流调节25算结果。由仿真,四中方法得到的结果相同,其输出结果延时也在相同水平。通过编译得到的四种方法的资源占用如下表:表3-4FPGA任意值乘法运算资源占用量比较lpm_multVerilogHDLVerilogHDL方法逻辑电路运算乘法器运算乘法运算符运算错位相加法运算逻辑单元374O10267l乘法器资源01l0值得注意的是,并不是所有使用VerilogHDL中乘法运算符”木“实现的乘法运算都需要占用乘法器资源,仅当参与运算的乘数大于9位时,才占用乘法器资源。由上表可知,使用lpmmultIP核的乘法器资源,只占用1个乘法器,而不占用逻辑单元。鉴于本设计所使用的EP2C35FPGA中有数目可观的乘法器资源(35个)。在乘法器资源能够满足的情况下,本设计采用此方法完成两个任意数的乘法运算。在乘法运算中,除了两个任意数的运算以外,还有一种固定系数的乘法运算。使用上述四种方法实现乘数之一为固定值的乘法运算,得到如下仿真结果:图3.14FPGA系数固定的乘法运算结果比较如上,本例中固定系数为lO,输入为一组18位随机二进制数。由仿真结果可见,四种方法结果相同。编译后得到的资源占用量如下表:表3-5FPGA系数固定的乘法运算资源占用量比较lpm_multVerilogHDLVerilogHDL方法逻辑电路运算乘法器运算乘法运算符运算错位相加法运算逻辑单元5609219乘法器资源01lO可见,虽然在任意乘数乘法的运算中,VerilogHDL错位相加方法占用资源 26基于FPGA的CAN总线数字电源设计最多(表),但在所乘系数固定的乘法中,此方法占用的逻辑单元最少。当系数不同时,资源占用量也将不同,但基本遵循本例所得到的结论。因此对于公式中系数固定的乘法运算,可以考虑用此错位相加的方法。3.4.4除法的FPGA实现定点除法运算也有IP核实现和VerilogHDL编程实现两种基本思路。其中VerilogHDL硬件语言编程,可分为使用除法运算符“/”或使用错位相减的逻辑运算。对其进行仿真,得到如下结果:图3.15FPGA任意数除法运算结果比较本例使用被除数为22位(含符号位)随机数,除数为4位无符号随机数。上图中,outmethodl为使用VerilogHDL语言中除法运算符“/”计算得到的结果;outmethod2为使用VerilogHDL语言编程的错位相减的方法得到的结果:outmethod3为使用IP核lpmdivide的方法得到的计算结果,remain为此法得到的计算余数。如图中所见,首先,使用lpm核的方法计算得到的余数将有可能.divideIP得到错误结果,如图中标示,尚不清楚此计算错误是计算机仿真造成的,还是IP核中算法漏洞造成的;其次,使用lpmdivideIP核得到的计算结果没有经过“四舍五入”,因此结果与VerilogHDL编程的方法得到的结果有差异。对lpmdevideIP核得到的结果进行修正,修正方法为:比较余数与除数的值,当余数大于除数的1/2时,则计算结果加l。修正后仿真结果如图中outmethod4所示,可见修正后结果与其它两种方法结果相同。以上四种方法的资源占用量,如下表表3.6FPGA任意数除法运算资源占用量比较方法lpm_devideVerilogHDLVerilogHDL 第三章数据采集与电流调节运算运算(修正)除法运算符运算错位相减法运算逻辑单元236262314339因此,对于两个任意数的除法,本文建议使用lpm_devideIP核+VerilogHDL编程修正的方法。对于除数固定的除法运算,对以上三种方法(1pm_devideIP核+VerilogHDL编程修正、VerilogHDL除法运算符、VerilogHDL错位相减)进行仿真,得到如下结果:图3.16FPGA除数固定的乘法运算结果比较本例,被除数为22位(含符号位)随机数,除数固定为9。三种方法的资源占用量,如下表:’表3.7FPGA除数固定的乘法运算结果比较lpm_devideVerilogHDLVerilogHDL方法运算(修正)除法运算符运算错位相减法运算逻辑单元262350195因此,对于除数固定的二进制除法,本电源调节器中使用VerilogHDL错位相减的方法进行运算。对于除数不固定而被除数固定的除法运算,在本电源调节器中没有涉及,不再赘述。3.5数字PID控制数字调节器的控制算法是决定调节器性能的关键,一般常见的应用于直流电源调节的控制算法有比例-积分-微分算法(ProportionIntegrationDifferentiation,PID)、三分支结构算法(Tri-branchedStructure,RST)。文献【2l】对以上两种算法进行了比较。本设计使用PID算法作为电源调节算法。 基于FPGA的CAN总线数字电源设计3.5.1PID控制原理[22】PID控制结构简单、稳定性好、工作可靠、调整方便,是工业控制的主要技术之一。当被控对象的结构和参数不能被人完全掌握,或得不到精确的数学模型时,而控制理论的其它技术又难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,适合使用PID控制技术。PID控制算式为:z,=巧(P+圭p+7,e马dt(3.4)或写成传递函数的形式:等=巧(·+石1叫(3.5)其中髟为比例增益;乃为积分时间:乃为微分时间;z,为控制量;e为被控量J与给定量∥的偏差。3.5.2增量型PID控制为了便于FPGA实现PID控制算式,必须把方程式(3。4)改写成差分方程。为此,可作如下近似:p,≈∑砌(3.6)j---o—d—e≈—e(n)-e—(n-1)cflZ(3.7)其中,,为控制周期,刀为控制周期序号(刀=0,1,2,⋯),4n-/)和文功分别为第(伊D和第刀控制周期所得的偏差。将式(3.6)和式(3.7)代入式(3.4),可得差分方程:怫髟卜号嘉彻+多№删】)B8, 第三章数据采集与电流调节d功=“功一以功(3.9)其中,吠功为第刀时刻的控制量。如果控制周期,较短,且比被控对象时间常数磊小得多,那么这种近似是合理的,并与连续控制十分接近。令:髯=巧;,髟=巧考(3.10)则可将式(3.8)改写为:“刀)=巧d刀)+髯∑改/)+髟k功一“刀一1)】(3.11)j=o将此式中膨称为积分系数,肠称为微分系数。根据式(3.11)可同理写出第(刀一乃时刻的控制量“刀.D,即:z《刀一1)=次jd刀一1)+髯∑“/)+左≥k厅一1)一“刀一2)】(3.12)j=o将式(3.11)减去式(3.12)可得刀时刻控制量的增量为:△z,(功2巧k刀)一“刀一1)】+鬈“功+髟k功一2e(刀一1)+反刀一2)】(3.13、=疋△反功+鬈“刀)+KdA(Ae(n))’此式称为增量型算式。由此式可见,坂功的变化量与反功,Ae(n),A(Ae(n))有关,其相关程度即积分系数双比例系数助和微分系数/(do第n时刻实际控制量为:z,(功=u(n一1)+△以刀)(3.14)式(3.9)、(3.13)和式(3.14)是实现数字PID控制的基本公式。3.5.3偏差量限幅、积分项限幅和控制量限幅在一般的PID控制中,当有较大扰动或大幅度改变给定值时,由于有较大的偏差以及系统有电流调节的惯性和电流采样的滞后,故在积分项的作用下往往会产生较大的超调和长时间的波动。为此,需要对PID计算中的偏差量和积分项进行限幅。偏差量限幅即在e(n)弓lA计算前,首先将其与emax比较,当“刀)较小时,直 30基于FPGA的CAN总线数字电源设计接引入计算。当etn)>‰时,用emax代替反功引入计算。积分项限幅与偏差量限幅同理,积分项以功=钗功,当z以功>劲一时,用/ypmax代替以功进行后续计算。为防止PID结果溢出,同样需要对控制量反刀)限幅。当z,倒>‰时,用Umax代替“功作为PID计算结果。3.5.4PID算法的FPGA实现由上文可知,实现数字PID控制,即要求实现式(3.6)、(3.10)和式(3.11)。PID计算的一种方法为用VerilogHDL语言分别编写相应的d功计算模块、△以刀)计算模块,和控制量反功计算模块。如下图所示:流水线控制l偏差计算子模块斟霸匿2国,Pc-1)t陪2》APID计冀子模块网匿1计算l波PID参数图3.17PID计算程序模块在每个运算模块结果输出时,需要先将结果存入寄存器,然后再将寄存器结果送入下一环节计算,这是因为在计算中其结果的各位转变并不同步,在两次计算结果交替时运算结果会出现抖动,如果不使用运算结果寄存器将导致计算的中间结果影响后续计算,造成计算结果的不确定性增加。在PID模块中引入了三个调节参数和两个限制性参数,三个调节参数即比例系数、微分系数和积分系数。两个限制性参数,即:积分项上限和PID变化量上限,积分项上限是为了防止积分饱和,实现积分分离。PID变化量上限用以限制PID跟踪速度,从而降低超调和振荡。此五个参数由用户从CAN总线由上 第三章数据采集与电流调节3l位机输入。为了适应电源调试的需要,本系统设计了四种调节方式,即开环、P调节、PI调节、PID调节。在P调节时,积分项和微分项被忽略,PI调节时忽略积分项,开环时不进行PID调节。对以上PID计算程序进行仿真,得到如下结果:ctc吐.t●一lt"t囝r,吐ltl_lod田pr,stt团s-plt田r,L'alit,_re札].t图3.18PID运算程序仿真3.6数字PWM脉冲波形的生成3.6.1PWM调制原理PWM调制是数字调节器的基础。由前章可知,调整开关管的开闭占空比可以实现对电源输出电流大小的调节。开关管开闭由门极输入的一系列脉冲来控制,开关管的开闭的占空比即此门极脉冲控制信号中高低电平的占空比。脉宽占空比调制方法主要有三种:①脉冲宽度调制(PWM,pulsewidthmodulation);②脉冲频率调f若IJ(PFM,Pulsefrequencymodulation);③脉冲宽度频率调制(PWM.PFM)。脉宽调制PWM是在控制输出到开关管门极的电压脉冲频率不变的情况下,通过调整其脉冲宽度达到控制占空比的目的。频率调制PFM是在控制开关管门极脉冲频率不变的情况下,通过改变脉冲宽度来控制占空比。PFM相对于PWM的主要缺点在于频谱太宽引起的电源滤波困难,尤其在输出电流较小时PFM调制的频率远低于PWM调制,其带来的输出纹波也将远远大于PWM控制。因此PFM在对于稳定度要求很高的加速器直流电源中不适用。PWM调制的原理是:使用频率固定的三角波与给定值进行比较,当三角波数值小于给定值时,输出为脉冲高电平,反之则输出低电平。为满足H桥电路 32基于FPGA的CAN总线数字电源设计中错相的需求,需要输出相位相差180。的两种PWM波。如下图所示:‘订裂。/,乡≯/1:lt.l●lL{ltIl}li!{!图3.19PWM原理以上用于比较的三角波频率即为PWM调制频率,也即电源的开关频率,由上章可知,电源主回路结构固定的情况下,电源开关频率越高,其纹波越小,调节速度越快,电源的跟踪性能也越好。3.6.2PWM调制的FPGA实现根据PWM调制原理,要将其数字化并在FPGA中实现,需要两部分程序①三角波产生器;②三角波与输入值比较器。如下图为使用VerilogHDL编程实现的PWM调制程序仿真结果。elk300_M2mn田P%—~一jnmoutIP佩扎惶dk30镰ltzr删甑固l'lrll_m-一iam¨t1mout2dk_∞0n'【zm一∞团P佣—“啪一lnmmarlP硼ou止门广]广]广]厂]广|.几厂]nln几厂]广]门广]广]r]厂—1厂L'口r]厂]广]厂]广]广]广]厂]广]厂]广]广]广]广]厂]_]nL图3.20PWM程序仿真 第三章数据采集与电流调节33如上图所示,PWMoutl为H桥对角管V1、V4的门极脉冲信号,PWMout2是另一对角管V2、V3的门极脉冲信号。对于一组变化的给定值,当给定值由O逐渐向正向增大时,PWM脉冲outI占空比也逐渐变大,同时PWMout2保持低电平(V2、V3保持关断),同理,当给定值变小时,PWM—outl占空比逐渐变小。而当给定值为负数时,恰好相反,此时,PWM—outl保持低电平(V1、V4保持关断),PWMout2占空比随着给定值的变化而变化。三角波发生器在FPGA中实际为一个连的计数器。其计数周期即为PWM调制周期乃wM。在数字电源调节器中,习惯使用PWM的分辨率来衡量PWM调制的精度。甲数字电源PWM分辨率=l092—IPFWM=l092衅wM(3.15)』c式中,朋wM为PWM计数器满计数值,乃wM为PWM脉冲频率,也即电源的开关频率,正为FPGA的脉宽最小调节时间,即PWM计数器时钟周期。由上式可见,要保证高分辨率就要求增加乃wM与Z的比值,要求乃wM越大越好。同时,由上文,电源获得高的开关频率需要7bWM越小越好。两者相互矛盾,因此要平衡两方面的因素,选择折中的乃wM值,使其既能保证分辨率能够满足要求,又保证了电源开关频率足够高。本数字调节器中,使用15位计数器满循环计数产生PWM波,因此石wM/互=215,PWM分辨率为15位。在本文所述数字调节器中,保证不降低分辨率的前提下,采用以下方法提高PWM频率:首先,本系统中FPGA的系统时钟使用50MHz的晶振时钟,在用于PWM计数时,首先将此时钟用PLL(锁相环)进行6倍频。倍频后PWM计数时钟频率达到300MHz,PWM频率因此提高了6倍。其次,传统的PWM调制使用对称型三角波,即计数器递增至满计数后再递减至0,然后重新开始下一轮计数。在本设计中采用锯齿形三角波代替对称形的三角波,即在进行PWM计数时,满计数时,计数值跳转至0,重新开始计数, 34基于FPGA的CAN总线数字电源设计如下图所示。如此,计数周期减小到对称三角波的一半,频率增加了2倍。最后,在本设计中将H桥的同一桥臂的对角管进行180度错相,只有在两个PWM管同时为门极高电平导通时,整个斩波回路才能导通。如下图所示。错相后电源实际开关频率变为原来的2倍,而不影响分辨率。改进后的PWM脉冲波形仿真如下图所示:k.j.1,卜—一图3.2l错相PWM脉冲产生程序仿真综上,本数字调节器的开关频率为:/:2—争:2下300MHz≈18.3lm(3-16)一^厂’l,\J‘1u,为了适应不同电源对于开关频率和调节精度的需要,本PWM程序除可工作于默认18.31KHz频率、15位分辨率的调制模式以外,还预留参数输入端口,可根据电源需要,设定PWM计数周期。此参数作为电源配置信息,由通信总线送入FPGA中。PWM计数周期与PWM脉冲频率以及PWM调制分辨率的关系,由式和式共同决定。典型值如下表所示:表3.8程序PWM分辨率.PWM频率对照表PWM计数周期PWM分辨率PWM频率327681518.3lm3000014~1520KHz1200013~1450KHz600012~13100m3.6.3P洲产生程序测试使用是FPGA数字调节板对上述PWM产生程序进行了测试,测试方法如下:将数字调节板的PWM输出连接到±15V/15A校正铁电源驱动板上,用CAN总线送入PWM脉宽目标值,用示波器观察MOSFET门极电压波形。 第三章数据采集与电流调节35下图为目标PWM脉宽为0(即电源初上电)时对角线管VI、V4的输出波形,由图可见,此时V1、V4的PWM脉宽占空比均为50%,且两者错相180。。因此PWM的总输出脉宽为0。测试结果符合设计需要。图3.22PWM总脉宽为0时的脉冲波形在上述测试的基础上,将PWM脉宽目标值增大,可以观察到示波器的PWM输出波形脉宽也随之变大,下图为单管PWM脉冲占空比75%时的波形,此时总的PWM脉宽输出恰好为50%。 基于FPGA的CAN总线数字电源设计图3.22PWM总脉宽占空比为50%时的脉冲波形以上的测试表明,PWM脉冲生成程序可以正常工作。 第四章状态监测与继电保护4.1状态检测和继电保护系统需求分析状态检测和继电控制的数字化是数字电源的一项重要内容。状态检测和继电保护电路主要实现以下功能:①接收远程/本地操作命令,并控制电源主回路继电器实现电源开机关机复位等操作。②向远程上位机反馈当前电源状态(包括是否运行、是否故障、故障类型等);③监测电源故障,在有故障信号送入继电保护系统后实现自动分闸。通信功能需求:电源的控制分为远程控制和本地控制两种形式。为了适应远程控制的需求,需要在电源状态控制器与远程计算机之间建立通信连接。上位机通过通信系统向电源状态控制器发送以下命令信息:①电源开机/关机命令;②故障复位命令;③模式转换命令;④电源故障状态回读命令。其中开关机命令和异常状态复位命令是基本命令,模式转换命令和状态回读命令是可选命令,可根据电源电路的需求定制。电源开关机需求:如前所述,CSR电源拓扑主要包括整流电路和斩波电路两部分组成,电源开关机过程需要一系列继电器先后动作来完成。一般对于直流电源,开机过程依此经过三个步骤,即:①充电继电器合闸,电容充电:②斩波电路继电器合闸;@PWM使能。关机过程亦依此经过三个步骤,即:①充电继电器分闸,电容放电。因此,需要状态控制器根据电源需要,控制继电器合分闸顺序、充放电时间和PWM使能/禁能。故障监测需求:在电源(尤其对于大功率高稳定度电源)运行中难免偶发器件损毁、操作不当等异常情况。为了保证在电源出现故障时控制故障规模,使其不至于损坏其它器件,应对故障进行实时监测。状态控制器所监测的故障不仅包括电源电路本身故障,例如过压故障、过流故障、功率器件故障等,还包括对电源周边设备的故障监测,例如负载故障,电源冷却水循环系统故障等。 38基于FPGA的CAN总线数字电源设计在监测到电源故障后,状态控制器需控制电源进入关机程序,并锁存故障信号以供检查和维修。其它功能需求:除上述功能外,状态控制器还根据需要完成一些其它功能,主要包括:①响应紧急停机命令,在出现紧急情况时,通过急停按键开启电源关机程序:②完成门联锁功能,当出现违规操作,在电源运行期间开启电源门时为保证人身安全,电源关机;③完成电源调试模式和正常模式的转换,在调试模式中,一些故障情况不被检测。4.2状态控制总体方案4.2.1基于CPLD的状态控制方案在电源和其它工业控制系统中,通常使用可编程逻辑控制器(ProgrammableLogicController,PLC)作为状态控制器,PLC具有编程简单,开发周期短,稳定性高等优点,但是同时也有价格昂贵、与其它系统通信不便(需单独安装通信模块)等缺点。本设计采用复杂可编程逻辑器件(ComplexProgrammableLogicDevice,CPLD)作为状态控制器的主控器件。CPLD相比PLC,I/0口更丰富,设计更加灵活,运算速度更快,且价格便宜,可根据需要定制专用的状态控制器。状态控制由状态控制板(以下简称状态板)完成,状态控制器与电流调节器相比,不需要大量的快速的数学运算,但要求更多数量的I/0口,和更复杂的控制逻辑。为了适应4.1节所述需求,设计了如下状态控制方案。 第四章状态监测与继电保护l芝耄薏萼拿专(电信号)丫芝妻薏萼拿牛(光信号)丫I一一-1l图4.1状态控制总体方案此方案中,状态信号统一为24V电压信号和光纤信号送入,经过光电转换和光电隔离电路后送入CPLD,在CPLD中进行逻辑处理后输出用于控制电源继电器组和其它设备的控制信号。4.2.2基于C8051单片机的过压过流检测方案在以上基于CPLD的状态控制方案基础上,为了适应HIRFL校正铁电源的需求,增加了基于C8051单片机的过压/过流检测电路,用于实现过压/过流故障检测的数字化,并使用C8051单片机实现CAN总线功能。其方案结构框图如下:一一一一一、卮醣]l图4.2基于C805l的过压/过流检测方案 40基于FPGA的CAN总线数字电源设计如上图所示,此结构中,电压传感器和电流传感器采集电源的输出电压电流信息并将模拟量送入C8051,单片机将送入的模拟量进行处理,并与设定的过压/过流点比较,判断是否过压/过流,若出现过压/过流故障,则将故障送入CPLD。同时,C8051接收CAN总线的控制命令(开机、关机、复位等)并送入CPLD,CPLD通过C8051和CAN总线将电源状态返回上位机。4.2.3CPLD简介【20】【24】CPLD是大规模集成电路的一种,它是从PAL(ProgrammableArrayLogic,可编程阵列逻辑)和GAL(GenericArrayLogic通用阵列逻辑)发展出来的逻辑编程器件,CPLD相对PAL和GAL而言阵列逻辑规模更大,结构更复杂。用户可根据各自需要而自行构造逻辑功能的CPLD电路。CPLD具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、保密性强等特点,可实现较大规模的数字电路设计。CPLD的基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法进行电路描述,编译并生成相应的下载文件,通过下载电缆将代码传送到CPLD芯片中,实现设计的数字系统功能。尽管FPGA和CPLD都是可编程器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,使两者具有各自的特点:GCPLD多为乘积项结构,工艺多采用E2COMS或Flash,其内部触发器数量较少,因此更适合完成组合逻辑运算,FPGA多采用LUT加寄存器结构,实现工艺多为SRAM,内部触发器数量丰富,因此更适合于完成时序逻辑。②FPGA是门级编程,CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间采用集总式互联。因此CPLD的速度比FPGA快,并且时间延迟可预测。③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程;FPGA具有丰富的布线资源, 第四章状态监测与继电保护4l而CPLD布线资源相对有限。@FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。⑤在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达l万次,优点是系统断电时编程信息也不丢失。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。⑥cPt,D保密性好,FPGA一般保密性较差。本电源状态控制器采用Altem公司MAXII系列CPLD作为主控器件。MAXII系列CPLD与传统CPLD相比,可以提供更多的逻辑资源及更多的I/O,同时又有更低的功耗。与AlteraFPGA一样,此系列CPLD的最小逻辑单元也是LE。MAXII系列产品资源表如下:表3—1MAXII系列CPLD资源列表资源EPM240EPM570EPMl270EPM22lO逻辑单元240570127022lO等效宏单元128-240240~570570~12701270-2210最大用户I/O80160212272可用Flash(bits)8192MAXIICPLD采用行列走线结构,其布局如下图: 基于FPGA的CAN总线数字电源设计●强是置詈■■■■■I■■■_珏■璺酿■髓-__I■■■■■珏量■i硼■■■_’···十争···十'···'●÷⋯^^^—_羹逻薹单元糜jiiii嚣塞;单元蘼鞫逻辑单元隧置◆黎纂j∞。州¨能糍删j;;;}自。黼蹦糍§i鲻Ⅷ一E群《熊荔薹|||||鬻瓣%菱囊黝‘聪蛾鬻缀鬻|||||二鞴爱罄一鬟。镰、,蝴■黧逻辑单元麟l逻辑单元慝l黧逻辑单元縻i⋯j,(%—_翻逻辑单元糜翼逻辑单元鬯斓逻辑单元縻罾—◆鬻鬓纛鬓&燃i垂黧、筏鬟鳃冀黧j誉麓Ⅲc《溢2_;搿鬻j?●竹+一。。,■_鞫逻辑单元慝曩逻辑单元隧澜逻辑单元隧●:l列走线图4.3MAXII系列CPLD结构布局4.2.4C8051单片机简介【25】【26】逻辑块C8051F单片机是完全集成的混合信号系统级芯片(SOC),其处理器为8位CIP5lCPU,具有与MCS.51完全兼容的指令内核。同时C805l在系统构架、外围设备等方面有较大改进,使得集成度更高,运行速度更快。C805l采用了流水线处理构架,不再区分系统时钟和机器周期。指令直接按照系统时钟执行,而且大部分指令只需l~2个系统时钟即可完成。而且在执行当前指令时,还可能部分处理吓一跳指令,从而使得指令执行时间具有不确定性。C805l特别具备控制系统所需的多种模拟和数字外设,包括1个12位ADC模块和1个8位ADC模块且具有电压电流窗口比较器。C8051具有多达20个 第四章状态监测与继电保护43中断源,其中包括2个外部事件中断。C8051集成了CAN总线控制器,带有32个消息对象,每个消息对象有独立的地址。C8051单片集成了JTAG调试器,可在线调试和下载。图4.4C8051单片机结构布局4.3状态监测的CPLD实现加速器电源系统中需监测的状态量包括:①电源的工作状态(开机/关机、故障/正常:);②电源工作模式(调试/运行):③电源故障类型;④其它(急停、门联锁等)。以上电源状态作为输入量送入CPLD状态检测模块。状态检测CPLD实现的原理是:在状态检测模块中为每种电源状态开一个寄存器,当送入的状态输入量与寄存器中存储的状态量不相等时,CPLD认为当前电源的状态发生了改变,此时,中断通信模块,将当前状态通过通信总线传输至上位机。在电源上电时状态寄存器清零,所以状态板会上电之初向上位机返回当前电源状态。越虹。,雎埘o,e,慨牡啦;i篇篡:怒一嚣蕊:薹嚣m一嚣II豁案菇i《il赣一iiil辩髓薹蓁善ii~Ii鞠l荟lili墨一ii涨 基于FPGA的CAN总线数字电源设计根据电源结构的不同,需监测的电源状态量数目也有不同。在通用的状态板中,需要检测的状态量共有32位,在校正铁±15V/15A电源中,电源结构相对简单,状态量仅8位。4.4继电器控制的GPLI)实现CPLD中继电器控制程序执行流程如下图所示:圆岭E本地按键本地开枧命令本地关机命令远程开机命令远程关机命令匡耍重圈。继电器控制鬻n_—1图4.5继电器控制程序框图4.4.1开关机命令预处理电源开机/关机命令信号可以是本控信号也可以是远控信号。为简单起见,我们将通过总线通信(RS-485总线或CAN总线)传输到状态控制器的开关机命令称为远控命令,将通过状态板上的按钮直接送入控制器的开关机命令称为本控命令。实际电源应用中,在本地触摸屏上进行的开关机操作虽然是本地操作,但信号是通过总线送入状态控制器,故也被当做远控命令处理。对于本控开关机信号,为了防止电磁干扰带来的误响应,需对信号进行防干扰处理。鉴于通过按钮操作送入的信号为一段时间的长脉冲(由人体按动按钮的时间决定,脉冲宽度一般约0.5s),而干扰信号带来的脉冲宽度为短脉冲(不大于lOOms)。本控信号防干扰处理即基于以上原理,跟踪输入脉冲宽度,仅当输入信号脉冲宽度大于200ms时才被认为是操作命令执行,反之则认为是干扰信号。对于远控开关机信号,需要根据通信总线的应用层协议对接收到的内容进 第四章状态监测与继电保护45行解码并判断其信息的有效性。状态控制器每100ms对接收到的信息进行一次信息有效性判别。若在lOOms内连续接收到多个控制命令,则只执行优先级最高的命令。规定远控命令的优先级依此为:关机命令、状态复位命令、转换至调试模式命令、转换至正常模式命令、开机命令、状态回读命令。即,若在lOOms内相继接收到开机命令和关机命令时,只执行关机命令,而认为开机命令为无效命令。对本远控开关机命令进行预处理后,状态控制器将本远控命令进行“或”操作,之后送入开关机程序。4.4.2开关机程序设计前文已述,电源开关机操作主要包括①控制继电器组合分闸,②控制继电器合闸/分闸时间间隔,③控制PWM使能/禁能。本文所述状态控制器中,设计最多控制6个继电器控制信号和1个PWM使能控制信号。将其合闸时间(开机时合闸或关机时合闸、合闸时刻)、分闸时间(同合闸)、PWM使能时间、PWM禁能时间作为参数送入控制器。合分闸及PWM使禁能时间控制精度为1s。一种常见的开机流程,如HITFiL高能束线二极铁电源:开极3s1s关机lOsI7KM2分闸PWM禁能(a)开机过程(b)关机过程图4.6HITFiL高能束线二极铁电源开/关机流程对程序进行仿真,如下图。在A时刻接收到开机命令,KMl输出高电平合闸,3s后B时刻KM2合闸,再ls后KMl输出低电平分闸,同时PWMen输出高电平使能,开机完成。E时刻收到关机信号,KM2分闸,10s后F时刻关机完成。仿真结果与上文需求相符。 基于FPGA的CAN总线数字电源设计IBCDEF图4.7开关机继电器控制仿真根据电源继电器的开闭状态,将电源运行状态分为四种,即:正在开机状态、开机完成状态、正在关机状态和关机完成状态。其中为保证电源运行安全,当电源运行在“正在关机状态”时,不执行开机命令,但是在“正在开机状态”时若收到关机命令或电源有故障送入则可执行关机命令。4.4.3继电器故障自检状态控制器对继电器全面管理,除控制其合分闸外,还需监测其状态。当继电器合闸时,设计有高电平电信号送入状态控制器,反之分闸时,有低电平送入。状态控制器在发出合闸信号一段延时(延时的时间长度作为继电器参数送入控制器)后读取继电器返回信号。之所以需要一段延时是因为继电器合分闸为机械动作的慢过程,合闸信号发出后要等待继电器响应。若合闸且一段延时后仍未收到高电平返回则认为出现了继电器故障,进而将此故障锁存并向上位机反馈。d▲llLl.一ltklⅫrd●n”"图4.8继电器故障自检程序组成框图AlC1A2B2C2 第四章状态监测与继电保护47图4.9继电器故障自检程序仿真值得注意的是,继电器故障检测并非必须的,可以在程序设计时,将此项屏蔽。4.5故障锁存和处理当电源遇到故障时,将进行以下动作:①电源关机;②故障锁存;③向上位机返回电源状态。4.5.1故障类型如前所述,对于大功率高质量电源,需要监测的故障多大数十种。按照故障监测方法可分为状态控制器自检故障和外部送入故障。状态控制器通过其中的逻辑自我判断得到的故障称为自检故障。外部送入故障由分布于电源上的诸多传感器或检测器件检测,本状态板中大部分故障为外部送入故障。自检故障包括“继电器故障”和“通信故障”两种。其中“继电器故障”自检方法如上文4.4.3节所述,“通信故障”自检方法如第五章5.4.3节所述。外部送入故障按照故障来源又可分为电源电路故障和周边系统故障,电源电路故障主要包括过压、过流、交流欠压、交流过压、功率器件损坏、变压器/电感器过热等;周边系统故障包括负载故障、冷却水故障等。按照故障送入状态板的信号形式可分为光信号和电信号,电源上各种故障传感器/监测器原理不同,工作方式各异,其故障信号的传送形式也不同,光信号相对电信号具有更好的抗干扰性。本节所述状态板上设计了l7种电信号输入端,8种光信号输入端。按照故障所需的处理方式又可分为三种。其中,当发生“功率器件故障”时,由于可能开关管已损坏,需立即PWM禁能,并控制继电器操作完成关机动作。当一般故障发生时,执行一般的关机程序,关机后再PWM禁能。对于“通信故障”因不会危及电源其它元器件,故不作处理,仅将其在状态板上通过LED灯显示。下文所述故障锁存和处理不包括对“通信故障”的处理。 基于FPGA的CAN总线数字电源设计4.5.2故障处理的CPLD实现故障处理流程如下图:图4.10故障处理程序组成框图与本地开关机操作类似,故障输入信号和复位信号也需经过防干扰判断。其中,故障输入的防干扰用来防止电源误关机;复位信号防干扰用以防止非人为操作导致的锁存信号丢失。有效的故障信号被送入故障锁存模块,清除锁存信号需当前故障输入已消除且有复位信号输入。故障的锁存和复位如下图所示:删唧唧删姗删姗胍飙删咿肌蕊删卿删唧唧删炒酽吼叫删硼哗砸㈣:蝴I。11000111$10X1000X‘oooo敬oooo.............._JI:::n::门:IIt:0000I1t000K1010Y1啪I吣I一:1.:CDEF图4.1l故障处理程序仿真由上图可见,在A时刻,有一个故障信号errin[3]送入,B时刻故障被锁存至elTout[3],从A时刻至B时刻的延时用于判断输入是否为干扰信号。C时刻有一新故障errin[1]被锁存。D时刻有复位信号送入,此时由于errin[1】已消除,故锁存的err_out[1]被清除。至E时刻err_in[3】已消除,再复位是锁存的err_out[3】也被清除。F时刻有一干扰信号errin[2]被送入,由仿真结果可见,此干扰信号没有引起误锁存。以上仿真结果符合电源实际工作需求。 第四章状态监测与继电保护4.5.3故障初始化复位在电源初开机时,用于监测故障的探测器/传感器工作尚不稳定,经常带来故障误报。因此设计了状态控制器上电自我管理,其原理是仅在电源初上电时产生一个自我复位信号,用以清除故障误报。如下图:—■i—一猢瑚肿仙Mlm^八n肿0『I:|In4^M『|_ilnnn肌n肌肌肌n肌肌nn邢勘nn肌肌呻肿n咖n=几咖n彻肿咖|m几nnnM肌1n咖nn彻n肌月fⅢ一itx:.r————。_——]Ⅲ一mr_—————。—。。]:r_’—_—7——]图4.12故障初始化复位程序仿真如上图所示,A时刻电源上电,从A时刻至B时刻产生一个自动的复位信号,此时的复位信号不依赖外部的复位输入。在B时刻之后,复位信号与外部输入完全同步。4.6过压/过流故障监测的08051实现电源的输出过压/过流故障是一种常见的故障,严重的过压/过流故障可导致器件烧毁等严重后果。过压/过流故障的监测除可通过模拟方式实现以外,也可以通过数字方法实现。过压/过流检测的数字实现可由电流调节器完成,如第三章所述,ADC(数据采集卡)采集电源输出电压/电流信息并转化成数字量送入电流调节器。电流调节器内根据需要设置过压点/过流点,并与接收到的当前电源输出电压/电流比较,若当前输出大于设置的过压/过流值,则送出故障信号至状态板控制电源关机。除上述方法外,过压/过流还可用专门的器件完成,本节重点论述C805l单片机实现过压/过流故障监测的方法。C805l软件控制流程如图: 基于FPGA的CAN总线数字电源设计开始系统初始讫二二[启动定时器童器溢唑≥≯\//卤ADc采样I嘉ADc窗口比较IADc采样超过、\N设定最大值?,/\/:烹对CPLD过压/I过流端口置1图4.13C805l软件程序流程状态版上电后,首先对单片机进行初始化,初始化内容包括:①定义单片机时钟源:②定义单片机中断源;③写定时器相关寄存器,规定计数周期(即片内ADC采样周期)和计数方式(循环计数);④初始化ADC控制寄存器和窗口比较寄存器,规定电流/电压采样上限。⑤输入输出端口初始化,定义其Pl口为模拟量输入端口,用以向片内ADC输入电流/电压模拟值,定义其P2口为数字输入端口,用于接收来自CPLD的电源状态量,定义其P3口为数字输出端口,用以向CPLD输出过压/过流信息。⑥定义CAN总线收发控制相关寄存器。在电源运行时,C805l内部计数器循环计数,当计数值达到设定值时,产生中断,CPU响应中断驱动ADC交替采样电压/电流值。计数值的大小决定了ADC的采样频率。设置启动C805lADC窗口比较功能。当采样电压电流超过过压/过流值时,产生内部中断,将故障信息写入输出端口寄存器,通过I/O口将故障信息送入CPLD进行状态控制。 第五章总线通信与电源管理5.1CAN总线通信‘283控制器局域网络(ControllerAreaNetwork,CAN)是国际上应用最广泛的现场总线之一,最初出现在20世纪80年代末的汽车工业中,由德国Bosch公司最先提出,用于解决现代汽车中庞大的电子控制装置之间的通信,减少不断增加的信号线。CAN:是一种多主方式的串行通信总线,基本设计规范要求有高的波特率和高抗电磁干扰性,而且能够检测出产生的错误。当信号传输距离达到10Km时,CAN仍可提供高达5Kbps的数据传输速率。CAN总线已被国际标准化组织认证,技术成熟且已经商品化,性价比高,特别适用于分布式测控系统之间的数通信。CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和灵活性,能够满足加速器电源的强电磁干扰环境。现己广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。鉴于以上原因,将CAN总线应用于加速器数字电源的控制是加速器电源系统的发展需求。CAN通信模型与开放系统互联模型(OSI)一致,CAN规范定义了模型的最下面两层:数据链路层和物理层,数据链路层又分为逻辑链路控制子层(LLC)和介质访问控制子层(MAC)。应用层协议可以由CAN用户定义成适合特定工业领域的任何方案。【29】CAN能够使用多种物理介质,例如双绞线、光纤等,其中双绞线应用最为广泛,双绞线中信号使用差分电压传送,两条信号线被称为CAN—H和CAN.L,CANH和CANL均为2.5V左右时,表示为逻辑“l”,通常叫做“隐性”。CANH比CANL高(一般CANH=3.5V,CANL=I.5V)时,表示逻辑“0”,通常叫 52基于FPGA的CAN总线数字电源设计做“显性”。CAN控制器采用CSMA/CD(CarrierSenseMultipleAccesswithCollisionDetect,载波侦听多路访问/冲突检测)技术对总线上信号进行检测,利用此方法可以允许多个节点挂接到同一网络上。当多个报文先后发送时,只有当总线处于空闲状态,即前一报文发送结束后,后一报文才开始发送。当总线上有两个节点同时进行发送时,必须通过无损的逐位仲裁的方法来使有最高优先权的报文先发送,优先级较低的报文重新回到“监听”总线状态,直到高优先级报文发送结束后,低优先级才开始发送。CAN总线优先级取决于报文ID(见表)。ID越小优先级越高。在总线超载的情况下,这种技术可能会造成报文(尤其是低优先级报文)发送延迟。CAN总线协议分为标准CAN协议和扩展CAN协议。标准CAN的标识符长度为1l位,扩展CAN的标识符长度为29位。本设计使用标准CAN协议,即默认标识符长度为11。CAN报文传输可分为以下四种帧:①数据帧:数据帧将数据从发送器传输到接收器。②远程帧:总线终端发出远程帧,请求发送同一标识符的数据帧。③错误帧:任何终端检测到总线错误就发出错误帧。④过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。如下表所示为数据帧的组成和构建方式:表5.1CAN协议数据帧的组成场长度组成备注帧起始1位帧起始显性仲裁场12位11位标识符+RTR位RTR位为显性IDE位为显性控制场6位IDE位+保留位+4位数据长度码保留位为显性 第五章总线通信与电源管理数据场0~8字节0~8字节数据位CRC场16位15位CRC序歹U+CRC界定符CRC界定符为隐性应答间隙为显性应答场2位应答间隙+应答界定符应答界定符为隐性帧结尾7位7位帧结尾帧结尾为隐性远程帧与数据帧相比,无数据场,且仲裁场RTR位为隐性。错误帧和过载帧均由两个场组成,错误帧包括错误标志和错误界定符,过载帧包括过载标志和过载界定符。5.2数字电源CAN总线通信网络5.2.1CAN通信总体方案本设计中,使用如下图所示的CAN总线通信方案:图5.1CAN总线通信总体方案在此方案中,状态板和调节板分别作为总线上的一个主机,上位机通过CAN-NET适配器连接到总线,也是主机之一。方案中调节板的FPGACAN总 基于FPGA的CAN总线数字电源设计线实现方案如下图所示:口回回中断时序控嗣寄存器地址/数据图5.2SJAl000CAN通信方案在本设计中,使用NXP公司SJAl000芯片作为CAN通信控制芯片,FPGA驱动SJAl000芯片工作,CAN收发器用于实现信号的电气转换。当总线上有信息数据送入时,SJAl000将信息接收并存入内部接收FIFO,同时产生中断信号送入FPGA,FPGA接收到中断后执行CAN接收程序模块,将SJAl000缓存中的数据信息读入控制器中。同理,当有信息需要发送时,FPGA首先将数据写入SJA发送缓存,在确认总线空闲时,将信息发送到总线上。方案中状态板的CAN总线通信方案如3.2节所述。方案中使用C805l单片机作为CAN收发的控制器,与调节板一样,也要使用CAN收发器实现信号电气转换。5.2.2CAN控制器SJAl000介绍SJAl000是一种独立控制器。用于移动目标和一般工业环境中的CAN控制。它在PHILIPS半导体PCA82C200标准CAN协议控制器的基础上增加扩展CAN协议的工作模式。SJAl000内部结构如下图所示: 第五章总线通信与电源管理AI_E,AS,C.S.RD压.WR.CLKOUT.MODEINTXr^L1XrAL2图5.3SJAl000结构组成SJAl000芯片具有以下特点:①和CAN2.0B协议兼容,同时支持标准CAN和扩展CAN协议,支持11位和29位识别码。②波特率可达1Mbps。③可读/写访问的错误计数器,可编程的错误报警限制④时钟频率24MHz。SJAl000内部寄存器包括:控制寄存器、命令寄存器、状态寄存器、中断寄存器、标识码寄存器、验收屏蔽寄存器、波特率设置寄存器、时钟分频寄存器以及发送缓存器和接收缓存器等。内部寄存器的地址和定义详见文献[27]。 基于FPGA的CAN总线数字电源设计5.3SJAl000控制的FPGA实现5.3.1SJAl000寄存器读写的FPGA实现FPGA对SJAl000的控制最根本的是对SJAl000内部寄存器的控制,也即读写SJAl000内部寄存器的值。FPGA读写SJAl000内部寄存器最终是要求能够输出符合其读写时序的控制信号。SJAl000内部寄存器的读操作(Intel模式下)时序如下图所示:ALE(gl舞AL6/AS)RD(引脚RO厄)WR)|(A710AD》(D7toDO撇已ts。i从L),I.—tRH。z—叫一bkAL_A)tⅥ舢』\—-一_t翎.ov--'Ill,‘t£尼、,\/—。"W(RI’—tcl剐—'I—·一tRHCH—H,}■卜-弋/图5.4SJAl000寄存器读操作时序由此,使用VerilogHDL语言编写读寄存器的程序模块。对模块进行仿真得到如下所示结果。⋯d一‘tvt田r⋯d¨·I‘日^D-sJ·d000—t砷口‘固”Ⅲ∞0一*utpn/d3一Io一●d●ct.K2_S.TU000助_a_$JM000n∞n10∞岱a$Jkl000田r·-d-“t·广1ll。功。舶’‘O’X2。I‘0’·Ill卜—————]l●I·_If。■●l。Ill广——————一lI●lI慰帕IlIil1.气B(_’DI:I、图5.5SJAl000寄存器读操作程序仿真如上图所示,A时刻,程序模块收到读寄存器命令,B时刻ALE置高,SJAl000 第五章总线通信与电源管理57的AD口写入寄存器地址(此例为20号寄存器),C时刻SJAl000读使能引脚RDn置低,D时刻SJAl00020号寄存器中的数据(此例数据为86)写入FPGA;E时刻SJAl000读使能引脚RDn置高;F时刻读寄存器操作结束,数据被写入FPGA的寄存器中。SJAl000内部寄存器的读操作(Intel模式下)时序如下图所示:ALE(g{脚ALE/AS)vvRth(At-A)tIfItHOXtW(AL)——刊tt.LvvLtW(W)图5.6SJAl000寄存器写操作时序对FPGA写操作模块仿真如下图所示:IlI广—]。.。20。‘.。嘶.卫.X却10矗镌。曩0一J.‘。‘1。I。f-f图5.7SJAl000寄存器写操作程序仿真与读操作类似,A时刻模块收到写命令,B时刻ALE置高,随后地址被写入SJAl000,C时刻写使能,D时刻数据写入SJAl000;E时刻写禁能;F时刻写操作结束。对以上读写寄存器的硬件程序模块在FPGA上进行试验,得到了与仿真相同的结果,读写均能准确进行。 基于FPGA的CAN总线数字电源设计5.3.2CAN接收/发送的FPGA实现本设计在读写SJAl000寄存器的基础上,开发了基于FPGA的CAN接收发送程序。报文收发程序基于状态机的原理。CAN总线接收程序,使用16种状态构成状态机:状态l:空闲状态,若收到接收命令,则转入状态2,否则保持状态l。状态2:读状态寄存器,读完转入状态3,否则保持在状态2。状态3:判断状态,当前总线空闲则转入状态4,否则保持在状态3。状态4:读标识位寄存器1,读完转入状态5,否则保持在状态4。状态5:判断标志位l,标志位相符则转入状态6,否则转入状态16。状态6:读标志位寄存器2,读完转入状态7,否则保持在状态6。状态7:判断标志位2,标志位相符则转入状态8,否则转入状态16。状态8至状态15:读接收缓存器l至8,读完则转入下一状态,否则保持状态不变。状态16:写命令寄存器用以释放接收缓存器空间,写完则转入状态l,否则保持在状态16。同理,CAN发送程序也使用类似的状态机,此状态机有18种状态:状态l:空闲状态,收到发送命令则转入状态2,否则保持在状态l。状态2:读状态寄存器,读完则转入状态3,否则保持在状态2。状态3:判断当前发送缓冲器是否可用,可用则转入状态4,否则保持在状态3。状态4:写标识位寄存器l,写完则转入状态5,否则保持在状态4。状态5:写标识位寄存器2,写完则转入状态6,否则保持在状态5。状态6至状态13:写发送缓存器l至8,写完则转入下一状态,否则保持状态不变。状态14:读状态寄存器,读完则转入状态15,否则保持在状态14。状态15:判断总线是否空闲,空闲则转入状态16,否则保持在状态15。 第五章总线通信与电源管理59状态16:写命令寄存器,开始发送信息,写完则转入状态17,否则保持在状态16。状态17:读状态寄存器,读完则转入状态18,否则保持在状态17。状态18:判断发送是否完成,完成则转入状态l,否则保持在状态18。5.3.2CAN控制的FPGA实现CAN总线相关的程序模块还有中断处理模块、初始化模块、错误处理模块、溢出处理模块等,其原理也为状态机,此不赘述。CAN控制程序以上述这些程序模块为基础。当FPGA收到复位信号时,执行初始化模块。当收到中断信号时,执行中断处理模块,判断是哪种中断(接收中断、错误中断或溢出中断),并进而执行相应的程序模块(接收模块、错误处理模块或溢出处理模块)。当收到其它程序块(如数字调节器程序)的发送命令时,执行发送模块。本调节板的CAN总线通信选用波特率为50Kbps。最长传输距离为1.3Km,可以满足加速器电源远程控制的需求。对以上程序在调节板上进行试验,其数据发送和接收均能够正确执行。5.4基于C8051的CAN总线通信基于C805l的CAN总线通信总体方案框图见第四章4.2节。在C805l中CAN总线控制器为单片机的外设之一。单片机通过读写与CAN总线相关的寄存器实现CAN通信。其中用于规定CAN总线波特率、标识位、屏蔽位的寄存器在单片机初始化时写入相应的设定值。当有总线上有数据时,控制器产生中断送入单片机CPU,CPU执行中断将CAN控制器中的数据读入。当需要发送时,CPU将数据写入CAN寄存器并控制启动发送。 基于FPGA的CAN总线数字电源设计5.5数字电源控制系统的应用层协议由5.1节可知,CAN总线是多主方式的串行通信总线,CAN总线协议并未对应用层作出规定。本数字电源系统中的CAN总线的应用层协议根据CAN总线的特点和数字电源控制的需求进行定义。CAN数据最多8字节(64位),本系统中规定前两个字节为电源编号,如下表所示:表5.2CAN总线应用层协议帧头位7位6位5位4位3位2位l位0字节11电源编号字节2电源编号信息编号电源编号共ll位,信息编号4位,含义如下:表5.3CAN总线应用层协议信息种类信息编号内容发送方接收方字符长度0000操作命令上位机调节板/状态板3字节(24位)000l电流给定上位机调节板5字节(40位)0010状态返回状态板上位机3字节(24位)00ll电流回读调节板上位机5字节(40位)0100PI参数l上位机调节板8字节(64位)010lPI参数2上位机调节板8字节(64位)其中操作命令、状态返回的具体内容见第四章,电流给定、电流回读和PI参数参见第三章。FPGA/CPLD在接收到信息后首先对以上应用层协议中的信息进行解码,解码的内容再送入执行程序(电流调节或状态控制)。FPGA/CPLD在发送信息前首先对电源信息进行编码,编码后再发送至上位机。上位机在接收和发送信息时进行相似的操作。 第五章总线通信与电源管理5.6RS-485通信总线简介‘3∞RS.485标准是电子工业协会(E认)于1983年制订并发布的。RS.485标准是为弥补RS.232通信距离短、速率低等缺点而产生的。RS-485标准只规定了平衡发送器和接收器的电特性,而没有规定接插件、传输电缆和应用层通信协议。RS.485标准与RS.232区别在于RS.485数据信号采用差分传输方式。它使用一对双绞线,将其中一线定义为A,另一线定义为B,通常情况下,对于发送器A、B之间的电平在+2一-+6V时,被定义为逻辑“l”;电平在.2~.6V时,被定义为逻辑“0”。对于接收器,当在接收端A、B之间电平大于+200mV时,认为逻辑“l”;小于.200mV时,认为逻辑“0”。RS-485网络采用直线拓朴结构,需要安装2个终端匹配电阻,其阻值要求等于传输电缆的特性阻抗(一般取值为120Q)。在短距离、或低波特率(一般在300米、19200bps以下)数据传输时可不需终端匹配电阻,由于RS.485标准是基于PC的UART芯片上的处理方式,因此,其通信协议也规定了串行数据单元的格式:1位逻辑0的起始位,6或7或8位数据位,l位可选择的奇(ODD)/偶(EVEN)校验位,l或2位逻辑l的停止位(当使用校验时使用l位停止位,否则使用2位停止位)。在本文所述设计中,使用l位起始位、8位数据位、l位偶校验位、1位停止位的协议标准。RS.485标准通常被用作为一种相对经济、具有相当高噪声抑制、相对高的传输速率、传输距离远、宽共模范围的通信平台。同时,RS-485电路具有控制方便、成本低廉等优点。5.7RS一485总线控制器的FPGA/CPLD实现在数字电源通用的状态板中,使用CPLD作为RS-485总线的控制器,通过编写VerilogHDL程序实现控制RS-485总线实现收发功能。其硬件连接见4.2节。 基于FPGA的CAN总线数字电源设计5.7.1串行数据收发的FPGA/OPLD实现串行数据的收发首先应该确定总线传输波特率,使得同一总线上的所有终端均处于同一波特率下。本设计中使用波特率为l15200Hz。当总线空闲(即总线电平为高)时,CPLD终端处于检测和侦听状态,此时若总线上出现数据O,则开始执行串行数据接收。对串行数据接收进行仿真得到如下图所示结果,假设总线输入电平00010111001依此送入,由仿真可见在接收程序执行结束后该数据被正确的存入了CPLD内部接收寄存器。此时收到的数据是总线数据包括起始位、数据位、校验位和停止位,在CPLD其它程序模块使用此数据时还需要对数据校验和处理,只取其中有效的数据位。m。m⋯z凹幽婴型邺删㈣㈣㈣删凹螋卿哪罂幽婴幽塑幽邺o㈣掣趔塑婴婴型婴幽幽幽rx一,nL————————一L——一L———J固m—ut亡二二二二二二二二二二二二二二二二j巫亘巫[二二二二二二二二二二二二二二二二]二二二二亟亟Ⅱ互二二二二“fin=ShF—————]厂—————————-图5.8CPLD串行接收程序仿真当需要发送数据时,将要发送的数据送入发送寄存器,并给一上升沿的发送开始指令。因为在本设计中需要RS.485发送的数据量较大,不能由1个字节完成发送,所以本程序模块预留“发送字节数”(3位)作为参数送入程序模块,可最多一次发送8个字节。程序仿真结果如下图所示,仿真时发送了两字节,分别为下图datain所示,可见发送端口txout的送出结果与设想完全相符。elk184鲫№tx—lt盯t团brte哺田tiltI-l“bytc—tat-fInir.htxflnI‘h亡二二二二二二二二二013111—010111—)<——01101010011二二二二二二二二二二广—————_...厂]..厂———_广—————]广————一广——]广n广厂]nr_厂——_图5.9CPLD串行发送程序仿真5.7.2RS-485控制的FPGA/CPLD实现RS-485总线与CAN总线不同,CAN总线是多主式总线,而RS-485为一主多从式总线,总线上同时有多个终端同时发送信息时无冲突仲裁机制。为了保证数据传输的准确可靠,本基于CPLD/FPGA的控制器使用了以下用户协议。首先,在CPLD内有数据正在数据接收时,不发送数据,等待接受完成后, 第五章总线通信与电源管理63再发送数据。其次,在数据被发送后等待接收端的数据回应,若不能收到数据回应则认为发生了通信故障。最后,在数据没有得到回应时,重复发送数据,重复频率为ls。使用本CPLD控制器程序通过RS485/RS232转换器与计算机通信,测试结果显示通信正常,可保证数据的完整准确可靠。 基于FPGA的CAN总线数字电源设计 第六章数字电源性能测试与展望656.1数字电源性能测试适用上文所述数字电源控制方案,在HIRFL校正铁±15V/15A电源上进行调试和性能测试。根据方案设计,方案也分为三部分完成。首先,对电源的远程通信进行测试,将电源通过CAN总线以及CAN-NET转换器连接到控制计算机上,通过CAN调试工具,向电源发送命令,并接收电源状态返回,电流值返回等。通过测试本设计的CAN总线通信功能正常。其次,对电源状态板进行测试,状态板的测试主要为功能性测试,即:电源上电后,通过CAN总线送入远程开关机命令,用于测试电源的继电器控制和状态监测;在电源开机后,制造电源故障,实验电源是否能够正常跳闸关机并返回状态。通过测试,本设计状态板功能实现正常,能够满足电源应用。最后,对电源的数字调节板进行测试,测试内容主要为电源在调节板控制下的输出响应给定的功能以及电流输出的稳定度。稳定度计算方法为:y2譬㈨。式中Imax为测量期间检测到的最大电流,Imin为测量期间检测到的最小电流,Iaverage是测量期间的平均电流。在本数字控制系统下,对电源输出电流稳定度进行测试,负载采用1.25Q阻性负载,加电流6.5A,用7081数字电压表测量反馈电阻两端电压,结果如下图。电源稳定度可达到6×10‘4,达到设计要求。 基于FpGA的CAN总线数字电源设计06.2论文总结图6.1电源稳定度测量结果1000本论文介绍了一种用于加速器电源控制的数字化设计方案。选用18位高精度ADC用于输出电流采样,选用FPGA作为电流输出调节器的主控芯片,CPLD作为状态控制器的主控芯片,使用CAN协议实现远程数据通信。整套控制系统的实现以FPGA/CPLD内的VerilogHDL硬件编程方式为主,使用QuartusII软件作为开发平台。本设计经过测试,达到了设计目标。本文的设计丰富了数字电源实现方法,对其它芯片种类其它实现方式的数字电源是一种较好的借鉴。6.3未来工作展望鉴于以上设计还存在许多不足,对未来可能的工作做以下展望:①对此系统中涉及的功能进一步完善,在电源应用中查找控制器漏洞并探索解决方案。 第六章数字电源性能测试与展望67②本设计中仅实现了直流电源的控制,未来可考虑在此基础上研发可输出任意波形电流的电源数字控制,探索对任意波形的差值实现方法,编写FPGA内实现差值运算的硬件程序。③鉴于本设计中电流调节、状态控制分别使用不同的器件实现,系统较为复杂,在未来工作中可考虑探索对此系统的简化方案,将部分在印刷电路板中实现的功能转移到芯片内部实现。④进一步探索数字电源控制方案,在FPGA方案的基础上,探索研究使用专用集成电路(ASIC)替代FPGA方案的可能性[31】【32】。 基于FPGA的CAN总线数字电源设计 参考文献69[1]高大庆.加速器开关电源研究[D】.中国科学院近代物理研究所博士学位论文.2001,7.[2】高大庆,周忠祖等.中国科学院近代物理研究所电源系统[C】.第三届特种电源技术学术交流会.2006.【3】鲁臻.磁铁电源数字化控制器的研究与设计[D].湖南大学硕士学位论文.2010,4.[4】4KingQ.StatusoftheLHCPowerConverterControls[C].ICALEPCS,Kobe,October,2009.[5】KingQ.TheAll-DigitalapproachtoLHCpowerconvertercurrentcontrol[C].AcceleratorandLargeExperimentalPhysicsControlSystemS.2001,l:453.[6】JenniF,TannerL,HorvatM.Anovelcontrolconceptforhighestprecisionacceleratorpowersupplies[C].Proceedingsof10thInternationalPowerElectronicsandMotionControlConference.Cavtat&DubrovnikDigitalControlofHighPerformancePSsforaSLS.2002,237.[7】TannerL,JenniF.Digitalcontrolforhighestprecisionacceleratorpowersupplies[C].ParticleAcceleratorConference,2001.PAC2001。Proceedingsofthe2(101.IEEE,2001,5:3681—3683.[8】LuedekeA.ApplicationofdigitalregulatedPowerSuppliesformagnetcontrolattheSwissLightSource[J].arXivpreprintcs/01l1019,2001.[9】张海燕,金正方,邵杰,等.合肥光源新型数字校正铁电源系统[J】.核技术,2010f001):l一4.[10】GaoD,ZhouZ,ChenY,eta1.HIRFL—CSRpowersupplysystem[C].AIPConferenceProceedings.2001,600:170.【11]王有云,高火庆,韩雷,等.快速,高精度大功率晶闸管脉冲/直流稳流电源[J].电气传动自动化,2001,23(3).[12】吴伟,王云芳,王洁玮.加速器中高稳定度电源拓扑研究【J】.核电子学与探 70基于FPGA的CAN总线数字电源设计测技术,2005,25(3):296.300.[13】王进军,陈又新,高大庆,等.H桥斩波电源的小信号数学模型及其数字化控制器的实现[J】.核技术,2009,32(5):369—400.[14】王志强.开关电源设计[M】.第三版.电子工业出版社.2005.[15]王进军.加速器电源的数字化研究与设计[D】.中国科学院研究生院博士学位论文.2009,12.[16]黄玉珍.基于FPGA的数字电源调节器研究与设计[D].中国科学院研究生院博士学位论文.2010,9.[17】王进军,高大庆,周忠祖,等.离子加速器高精度脉冲/直流数字电源[P】.中华人民共和国知识产权局发明专利申请公布说明书.2009,11.[18】AlteraInc.Cyclone11.DeviceFamilyDataSheet[Z].AlteraCycloneIIDataSheet.[19】王诚.AlteraFPGA/CPLD设计:基础篇[M].人民邮电出版社,2005.[20]AnalogDeviceInc.18-Bit,670kSPS,DifferentialProgrammableInputPulSARADC[Z]。AnalogDeviceAD7634DataSheet.[2l】龙锋利.高精度稳流电源的智能化控制[D】.中国科学院高能物理研究所博士学位论文,2006.[22】王锦标.计算机控制系统【M].清华大学出版社,2004.[23】黄玉珍,陈又瓶,闫怀海,等.基y-FPGA的数字电源调节器研究与设计叨.核电子学与探测技术,2010,30(010):1334-1336.[24]AlteraInc.MAXII.DeviceFamilyDataSheet[Z].AlteraMAXIIDataSheet.[25】童长飞.C8051F系列单片机开发与C语言编程[M】.北京航空航天大学出版社,2005.[26]SiliconLabInc.C8051F060/I1213/415/6/7[Z].SiliconLabInc.C805lDataSheet.[27】SemiconductorsP.SJA1000Stand-aloneCANcontroller[Z].PHILIPSSJA1000DataSheet.[28】BoschInc.BoschCAN.Specification2.o[s1.Germany,Bosch,September,1991. 参考文献7l[29]ZimmermannH.OSIreferencemodel—TheISOmodelofarchitectureforopensystemsinterconnection[S].Communications,IEEETransactionson,1980,28(4):425—432.[30]TelecommunicationsIndustryAssociation.ApplicationGuidelinesforTIA/E.IA-485一A[S】.TIA/EIATelecommunicationsSystemsBulletin,1998.[31】RahimNA,WILLIAMSTCGBW.PWMASICdesignforthethree-phasebi-directionalbuckconverter[J].Internationaljoumalofelectronics,1996,81(5):603.615.[32】PatellaBJ,ProdicA,ZirgerA,eta1.High—frequencydigitalPWMcontrollerICforDC—DCconverters[J].PowerElectronics,IEEETransactionson,2003,18(1):438.446. 72基于FPGA的CAN总线数字电源设计 发表文章[1]李庆雨,黄玉珍,王荣坤,陈又新.兰州重离子加速器小功率直流电源数字化方案.电力电子技术.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭