半实物仿真平台硬件控制板卡的设计与实现

本文通过分析飞控软件的功能测试环境,模拟飞行器飞控软件的外部环境,设计了飞控软件的半实物仿真平台的硬件控制板卡。飞控软件作为飞行器地面测试及正式飞行的主控单元,其工作性能的稳定性和准确性在整个系统的飞行过程中起着至关重要的作用,该平台的设计

  1绪论

  随着科学技术的飞速发展,仿真技术在复杂系统的研制过程中发挥着着越来越重要的作用。如今,仿真技术已经被设计人员运用于人们生活的各个领域,包括工业设计、农业发展、医疗器械的设计等,甚至人们的娱乐,如AR、VR,使人民的生活质量达到了更高的水平。特别是在航空航天领域,各种飞行器整个开发过程中,包括研制、鉴定、定性均离不开仿真技术的支持。甚至可以认为,若没有仿真技术的技术支撑,任何新型飞行器的开发都几乎是不可能的。本文以飞行器飞控软件的测试需求为背景,完成了飞控软件半实物仿真平台硬件控制板卡的研制。

  1.1课题研究目的及意义

  飞控软件即飞行器的控制软件。飞行器的飞行过程主要依赖于其传感器系统获得飞行器的各种位姿参数并将参数信息反馈到弹载计算机,通过飞控软件计算而控制各飞控模块。其中,飞控软件设计主要负责搭建合理的软件流程,计算接收到的信息,得到控制量的参数并输出,使得各个功能模块协调有效的工作。飞控软件的实时性和准确性直接决定飞行器飞行过程的成败。在历史上,有很多因飞控软件的故障导致飞行器出现事故的事件[1]。
  1991年2月,海湾战争中因为“爱国者”和“飞毛腿”的较量,因软件计算时间误差打到0.365秒,导致拦截“飞毛腿”导弹失败,造成重大的人员伤亡[2]。
  1996年6月4日,ESA完成了阿丽亚娜5型火箭的首次发射,实验结果以失败告终[3]。此型号火箭研制时间长达八年,经费耗资超过80亿美元,虽然为以后飞行积累了经验,但是也浪费了大量的财力物力。而火箭的发射软件出现了故障是导致试验失败的根本原因。
  由此可见,飞控软件的高可靠性和高准确性是飞行器得以正常飞行的重要指标[4]。在飞行器的研制过程中,飞控软件的研制需要依托于真实的硬件平台,用于飞控系统程序开发、测试、验证。而在项目的实际研制过程中,因项目周期的限制,不可能等飞行器硬件平台全部研制完成后,再开始飞控软件的开发。所以,需要一个特定的平台,作为一个飞行器的模拟器,它可以模拟提供飞行器飞行流程中飞控软件所有接收到的信息,并且可以接收飞行过程中飞控软件对飞控系统的发出的所有的指令信息。此外,飞控软件和飞控软件半实物仿真平台的联试可以实现多次飞控软件的验证,使飞控软件的缺陷尽可能提前暴露出来,保证了飞控软件在系统飞行测试时的准确性。飞控软件半实物仿真平台所提供的虚拟环境缩短了整个飞行器的研制时间,保证了系统研制的高效性。

  1.2国内外研究现状

  纵观仿真技术的发展历程,主要经历了物理仿真—模拟仿真—数字仿真—虚拟仿真四个阶段[5]。如今,虚拟仿真技术极强的直观性、交互性、生动性不仅将表达的内容清晰直观的表现出来,使分辨者快速的理解和接收信息。在这种技术的支持下先后产生动画仿真、虚拟现实仿真、可视交互性仿真等新型仿真技术。同时,这些发展也将仿真理论和虚拟技术的发展推向一个新的台阶[6]。但是这并不意味着物理仿真、模拟仿真、数字仿真淘汰,而是众多仿真技术在科学技术中共同使用,将仿真技术发挥更大的作用。
  仿真技术按照其仿真平台的分类,可分为软件仿真、半实物仿真、物理仿真。半实物仿真是介于软件仿真和物理仿真之间的一种仿真模式,它将虚拟的软件仿真和实际的物理仿真综合运用于同一仿真中,并且综合了两者的优势于一身。相比于软件仿真,半实物仿真结合物理仿真的更为接近实际情况的优点,其结果更真实;相比于物理仿真,半实物仿真结合软件仿真可以节约成本的优点,节省了人力物力[7]。
  半实物仿真包括硬件在回路(HIL)和快速控制原型(RCP)两种形式[8]。各种仿真模式都需要控制系统和被控对象才可以形成仿真回路,完成仿真功能。硬件在回路仿真指的是实际控制器加虚拟仿真对象组成的仿真形式,而快速控制原型则是虚拟控制器加实际的仿真对象组成的仿真形式。两者不同的仿真方式适用于不同的场合,硬件在回路仿真技术因其动态响应的时间更能接近实际情况的特点使该技术具有更高的可靠性,比较适合应用于设计中期的控制系统的仿真[9];而快速控制原型因其可以快速设计模型的特点比较适合应用于设计初期的方案设计。两者仿真技术可以单独使用,也可以结合使用。当两种模拟方式共同使用时,是以如图1.1所示的V流程完成系统开发的。
  在国内,只有很少的一部分公司参与半实物仿真平台的研制,但是大多都是和某些国家的顶级公司合作,并没有掌握核心技术。很多高校及研究院自主研制的半实物系统大多是在Windows系统的基础上,通过修改系统的硬件抽象层,拓展出一个RTSS实时子系统设计的基于RTX系统的半实物仿真平台[10]。西安电子科技大学研制了基于RTX技术的空空导弹的半实物仿真平台。南京航空航天大学研制了基于RTX的无人机飞行实时仿真系统[11]。这些平台大多针对性较强,通用性较差。
  德国dSPACE公司开发的半实物仿真平台MicroAoto Box II可用于许多不同的快速控制原型开发和硬件在环仿真环境,例如:传动系统、底盘控制、车身控制、高级驾驶辅助系统(ADAS)、电力驱动控制、线控技术应用、航空航天应用[12]。如图1.2所示为dSPACE公司为了完成功能开发和实车测试研制的半实物仿真平台MicroAutoBox II。
  MicroAutoBox II作为半实物仿真平台是通过软硬件的结合实现的。在硬件方面,除了自身内部强大的处理器外,还集成了FPGA,解决了新应用场合中I/O要求各不相同的问题。设备外围配置的I/O口可以满足不同的客户需求,具有高度的模块性。MicroAutoBox II的软件设计过程中,它不需要设计人员编写代码,实时模块会在硬件上自动完成代码的编译、下载。此外,此平台可以在软件代码的编译过程中检查中模型的潜在问题,便于及时更改。MathWorks开发软件支持MATLAB/Simulink/Stateflow的使用。模型的实时接口(RTI)为平台硬件和MathWorks开发软件的实时通信提供了通道,可以实现快速控制原型和硬件在环仿真两种功能。此平台虽广受好评,但因为本身价格昂贵且不支持其他厂商板卡,应用有限[13-15]。
  RT-Lab是由加拿大Opal-RT公司开发的仿真系统,它是一个可拓展的实时平台。RT-Lab可以通过其自身优势在最短的时间内,花费最低的成本完成仿真系统模型的搭建[16]。RT-Lab最大的优势是其拓展性超强,采用COTS技术和Host/Target结构,软硬件都支持多种工业标准,为用户提供了一个较低的起点。此外,平台完全集成MATLAB/Simulink,可以与MATRIXx/SystemBuild实现无缝连接。平台还集成了参数的控制接口和信号的可视化窗口,设计人员可以在仿真过程中根据信号的具体信息在线修改参数,增强了平台的仿真功能。此外,RT-Lab具有实时嵌入式系统分布式仿真的功能。RT-Lab的各种特点都增强其拓展性,扩大了平台的使用范围[17][18]。同MicroAutoBox II相同,其昂贵的价格同样限制了它本身广阔的应用范围。
  本设计针对某航天科研院所研制的某飞行器的飞控软件,模拟该飞行器研制了专用的飞控软件仿真验证平台,不仅节约成本,而且可以积累技术,方便后人的改进创新,不断完善,为我国的航天事业尽绵薄之力。

  1.3本文主要内容及章节安排

  本文采用模块化设计的方法完成了飞控软件的半实物仿真平台的硬件控制板卡的设计。除了介绍具体的硬件电路设计外,还对其FPGA控制逻辑进行了介绍。最后,完成了系统的全面测试和结果分析。主要内容具体完成由以下六章实现:
  第一章,绪论。首先结合飞控软件的测试背景阐述了半实物仿真平台的研究目的和意义。然后结合国内外发展情况,介绍了不同半实物仿真的优缺点。最后在本章末尾,介绍了本文的详细的章节安排。
  第二章,总体方案设计与分析。本章结合硬件在环仿真的系统构架,通过对平台的功能分析,完成了平台的总体方案的设计。在方案中对每个模块的功能及系统参数设计完成了细化。
  第三章,平台硬件电路设计。本章详细介绍了串行通信板卡、模拟量/开关量输入板卡、模拟量/开关量输出板卡三大功能板卡的硬件设计以及CPCI总线控制模块、电源模块的硬件电路设计。
  第四章,FPGA逻辑设计。本章以FPGA作为主控制器,对串行通信模块、模拟量/开关量输入模块、模拟量/开关量输出模块、CPCI总线部分完成时序逻辑设计。其中包括重要信号的消抖、状态机的使用极其编码方式的选择、存储介质FIFO的使用和容量计算等技术。
  第五章,性能测试与验证。本章结合上位机软件针对三个模块通过不同的方法进行了测试,并且严格分析测试结果,证明了系统工作的稳定性和准确性。
  第六章,总结与展望。本章通过总结飞控软件半实物仿真平台硬件控制板卡的设计过程,对设计中的不足与缺陷提出展望。

  2总体方案设计与分析

  硬件在环作为半实物仿真技术的主要技术之一,是通过实际控制器控制虚拟对象实现的。平台模拟了飞控系统的虚拟对象,实现了飞控软件的硬件在回路仿真。本章结合硬件在环仿真的系统构架,通过对平台的功能分析,完成了平台的总体方案的设计。

  2.1硬件在环仿真系统构架

  硬件在环仿真技术在应用于测控系统的测试时,因其具有实时仿真的优势备受关注。随着科学技术的发展,硬件在环仿真技术也是日新月异。目前国内外各种硬件在环仿真设备琳琅满目,但是这些设备的设计都遵循相同的框架结构。硬件在环仿真系统框架包括待测主体、转接电路、仿真内核以及实时模拟仿真四部分组成[19],如图2.1所示为硬件在环仿真框架图。
半实物仿真平台硬件控制板卡的设计与实现
  待测主体指的是设计相对成熟的控制单元。它一般经过一定周期的前期研制以及测试,具有一定数量的对外接口,用于实现信息交互。
  转接电路指的是待测主体和仿真体系内核之间的转换电路。因待测体系的待测信号种类、电平高低各不相同,而主控单元通常使用单片机和FPGA等主控芯片,无法直接控制待测主体,需要加入转接电路完成两模块的通信,所以在此需要一些AD转换、放大等电路实现两模块的通信。此部分电路是整个仿真系统得以实现的桥梁。
  仿真内核为仿真体系的核心处理模块,它可以是任何起到主控作用的主控制器,小到一个单片机,大到一个计算机系统。仿真内核是整个仿真体系的心脏。
  实时模拟仿真模块完成了整个仿真系统的最终目的。它是对之前一系列的工作的结果输出,使设计人员可以较为直观的看见仿真结果,例如各仿真软件、打印机等较为直观的表现信息的设备及工具。
  本文以飞控软件的硬件在环仿真为背景,介绍了硬件在环仿真的硬件体系的设计与实现,对应于此框架中转接电路和仿真内核两部分的设计。

  2.2平台功能简介

  飞控软件的半实物仿真平台用于模拟弹上设备,为飞控软件验证功能性能提供外部测试环境[20]。本设计中,飞控软件仿真平台需要模拟弹上的组合导航装置、无线接收机、中心程序器、地面测控系统、综合配电器、舵机控制器六个设备,完成其等效功能的设计。其功能包括向飞控软件输出测试指令、组合导航信息、舵机反馈信息、检测电压等信息,接收飞控软件输出的时序控制信号、舵机控制信号及遥测信息等。飞控软件半实物仿真平台组成如图2.2所示。

  2.3系统总体方案设计

  硬件在环仿真的关键环节是设计相应的被控模型。飞控软件半实物仿真平台作为飞控软件的被控模型,包括硬件设计和实时软件设计两部分。硬件设计主要是完成平台信号的采集、输出以及与外界完成信号交互的端口设计,而实时软件的设计完成对信号的实时处理,为平台提供可视化窗口,提高了平台使用的便利性,使平台功能更强大。
  飞控软件半实物仿真平台软件功能主要完成弹体模型和组合导航装置模型实时计算、模块卡等效平台功能软件和测发控软件三部分功能。其中,模型计算和模块卡功能等效软件在RTX8.1平台下开发,该模块可完成模型实时计算,功能卡的硬件资源实时访问和与弹载计算机实时通信,主要通过平台实时驱动程序的开发得以实现。测发控软件是在WindowsXP操作系统下VS2008环境开发,完成整个测发控流程和所有数据的存储,通过界面程序的开发得以实现。如图2.3飞控软件半实物仿真平台开发结构图。
  将以上信息整合归类后,平台与外界信号交互需开发的功能模块主要包括串行通信模块、模拟量/开关量输入模块和模拟量/开关量输出模块。将不同的信号放在三张不同板卡上,只需设计相应的电缆网便可实现飞控软件的验证功能。这样不仅简化设计,而且节约人力物力,避免资源的浪费。此外,这种方法便于后期调试与性能拓展。
  平台硬件体系设计依据通用性原则,采用标准的8槽6U CPCI机箱作为硬件设计的平台,该机箱在硬件及软件方面具备一定可扩展性。平台硬件各模块卡均采用FPGA作为主控制器,在RTX环境下,通过CPCI总线与上位机完成实时通信。设计中,为保证冗余设计,串行通信板卡实现10路串行通信,包括4路RS422、4路RS422/RS485和2路RS232接口,其波特率、数据位、起始位、停止位软件可配置[21];模拟量/开关量输入板卡实现20路模拟信号采集和30路脉冲信号采集,实现周期采集测试台外接口中所有模拟量和开关量状态,经滤波后送至实时处理模块接收处理;模拟量/开关量输出板卡实现20路模拟电压输出和32路开关量输出,用于输出模拟量以及对开关量状态进行切换。
  此外,为保证硬件电路设计的准确性,对硬件电路的设计需要通过Multisim完成仿真及电路试验。在元器件选用过程中,对所选器件的参数必须了解充分,需要考虑冗余设计[22],保证板卡设计的可靠性。各模块通过CPCI总线通信原理框图如图2.4所示。
半实物仿真平台硬件控制板卡的设计与实现

  3平台硬件电路设计

  飞控软件的硬件在环仿真设计中,平台的硬件设计是系统设计的核心之一。本章详细介绍了硬件在环仿真系统设计中转接电路的设计,包括串行通信板卡、模拟量/开关量输入板卡、模拟量/开关量输出板卡三大功能板卡的设计以及CPCI总线控制模块、电源模块的硬件电路设计。

  3.1串行通信板卡设计

  串行通信可以分为同步串行通信和异步串行通信两种工作模式。同步串行通信需要发送和接收双方以相同频率以及相同相位的时钟通信,而这种方式必然降低了两个平台中系统性能较强平台的效率。而异步串行通信则以起始位作为数据传输的开始标志,以停止位作为数据传输的终止标志。这种通信方式可以在任意数据传输的空闲时刻开始,可以以任意速率传输,是不同平台之间一种比较理想的信号传输方式[23]。
  作为飞控软件的仿真平台,本设计中大量使用了异步串行通信,提供了弹载计算机与中心程序器、组合导航装置等平台的串行接口电路。
  为完成平台的串行通信,本设计的串行通信卡实现4路RS422通信,4路RS422/RS485可选通信,2路RS232通信,其波特率、数据位、起始位、停止位可由测试软件配置。除系统功能要求的串行接口外,其余接口均为备用通信接口。串行通信模块卡原理框图如图3.1所示。
  串行通信模块卡设计过程中,为了资源的节约以及后期调试的方便,将此板卡分为RS422、RS422/RS485、RS232三个模块。为减小模块与模块之间的干扰,供电采用DC/DC隔离。
  3.1.1常用串行通信接口比较
  飞控软件仿真平台的串行通信板卡同时使用RS-232、RS-422与RS-485三种串行通信模式。这三种通信模式都是现在最流行的串行数据接口标准,它们均由电子工业协会(EIA)制订并发布。
  RS-232,EIA-232-E标准。作为最初的传输数据接口标准,发布于1962年。作为保证不同产品兼容性的一种标准接口,它采用了点对点单端传输的传输方式。RS-232共模抑制能力较差,导致其传输速率比较低,最高速仅为20Kb/s,传输距离也较短,在最高速度时有效传输距离大约为15米。
  RS-422,TIA/EIA-422-A标准。作为RS-232的改良标准,优化了其传输速率和传输距离。RS-422将数据信号改为差分传输的方式,使传输速率与传输距离相较RS-232而言有大幅度提高,传输速率最高可达10Mb/s,传输距离最高可达4000英尺,约1219米(速率低于100Kb/s时)。平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。RS-422支持点对多通信,从设备之间不能相互通信。
  RS-485,TIA/EIA-485-A标准。RS-485为RS-422的进一步扩展标准,与RS-422一样,RS-485也为点对多的双向通信,支持的从设备从RS-422的10个增加到了32个,并且RS-485的驱动器可以向下兼容RS-422。三种接口电气特性对照如下表3.1所示。
  表3.1三种接口电气特性对比表
  3.1.2串行通信硬件电路设计
  在串行通信卡的设计中,三个模块均采用MAX3160作为接口芯片,通过不同配置实现RS-232、RS-422、RS422/RS485三种通信协议。MAX3160是可编程RS-232/RS-485/RS-422多协议收发器,可通过引脚设置为2Tx/2Rx RS-232接口或单路RS-485/422,传输速率分别高达l Mbps(RS232)和l0 Mbps(RS485/422)。MAX3160的接收器的输入端以及发送器的输出端均可承受±15kV静电冲击且收发器具有增强的静电放电(ESD)保护功能,具有保护电路的作用。
  芯片的工作模式的选择主要由RS485/引脚决定,当引脚为低电平时,芯片工作在RS232模式,此时,该芯片可以同时完成RS232各两路的信号的收发。当引脚为高电平时,芯片工作在RS422/RS485模式,此时,可通过FPGA控制HDPLX的高低电平切换RS485和RS422模式的选择。因引脚HDPLX的高电平识别范围是大于2.4V,低电平识别范围是小于0.8V,与逻辑电平相匹配,所以通过FPGA直接控制即可。若引脚HDPLX为低电平,芯片工作在全双工模式,若引脚HDPLX为高电平,芯片工作在半双工模式。在此状态下,芯片可完成RS422/RS485各一路信号的收发。
  MAX3160配置在RS232工作模式时,有两路RS232收发接口。引脚A/R2IN和引脚B/R1IN分别作为两路RS232信号的接收端,将转换后的两路逻辑电平信号通过引脚RO/R2OUT和引脚R1OUT传输至FPGA。引脚DI/T1IN和引脚DE485/T2IN作为两路接收FPGA的逻辑电平的通道,并且将转换后的RS232信号通过引脚Z(B)/T1OUT和引脚Y(A)/T2OUT发送出去。接口电路如图3.2所示。
  MAX3160工作在RS422/RS485模式时,引脚A/R2IN和引脚B/R1IN分别作为RS422/RS485信号的正向和反向信号接收端,将转换后的逻辑电平信号通过引脚RO/R2OUT传输至FPGA。引脚DI/T1IN作为接收FPGA的逻辑电平的通道,并且将转换后的RS422/RS485信号通过引脚Y(A)/T2OUT和引脚Z(B)/T1OUT发送出去。接口电路如图3.3所示。
  两种工作模式下,为保证异步串行通信的两平台之间的安全性,本设计在接口芯片和FPGA之间采用了光耦隔离。这样,即使其中一方发生例如短路等意外情况也可以保证另一方的安全性,提高了平台的可靠性。
  3.1.3差分传输网络失效保护
  MAX3160以差分方式接收信号时,是通过判断信号的接收引脚的正反向电平差识别信号的,当正向输入端高于反向输入端200mV时,为逻辑‘1’;当反向输入端高于整向输入端200mV时,为逻辑‘0’。但是,当信号传输完成时,MAX3160的信号接收端的电压之差回到0V,即接收器的未定义门限区域(-200mV~+200mV)内,使接收器的接收电压到第三态,可能造成接收器输出状态的不可预测。此时,若在某些干扰情况下引起由高电平到低电平的跳变,会使芯片误认为起始信号的来临,而把真正的起始信号看做数据位,造成数据接收错误的现象。
  本设计中,在MAX3160的差分接收端加入偏置,使数据接收端在空闲时刻识别为一个确定的电平状态,起到网络失效保护的作用。在图3.3的信号接收端,加入的偏置值为,使接收器的空闲时刻保持在高电平状态,可以保证芯片准确判断起始信号的到来,提高数据接收的可靠性。
  3.1.4串行通信阻抗匹配
  信号传输过程中,时刻会遇到传输线缆或者其他元件的传输阻抗。一旦传输线的特征阻抗跟负载阻抗不匹配时,在负载端极易产生反射。反射信号叠加在原信号上将会改变原信号的形状,形成驻波,导致传输线的有效功率容量降低,严重时甚至会损坏设备[24]。反射系数R和负载阻抗、电缆的特性阻抗之间的关系式为
  式(3.1)
  由上式可知,负载阻抗和电缆的特性阻抗相等时,反射系数为0,最有利于信号的传输。为避免产生反射,负载阻抗跟传输线的特征阻抗应该相等,这就是传输线的阻抗匹配。
  对于普通高频信号,传输线缆的特性阻抗一般为50Ω,所以在此设计中的信号输出端,信号线均串联51Ω电阻用于与电缆的特性阻抗的阻抗匹配。此外,当RS422和RS485的信号传输距离超过300米时,需要在其信号的接收端分别并接一个100Ω和120Ω的电阻用于传输线缆的阻抗匹配。

  3.2模拟量/开关量输入板卡设计

  在飞控软件仿真平台中,模拟量/开关量输入板卡用于仿真接收弹载计算机的飞控软件对系统发出的模拟信号和指令信号。模块卡分为模拟量输入和数字量输入两个模块,原理框图如图3.4所示,该模块实现20路模拟量采集和36路脉冲信号采集功能。
  图3.4模拟量/开关量输入模块卡原理框图
  3.2.1模拟量线性隔离电路设计
  在飞控软件仿真平台中,需要完成对飞控软件输出的多路多种模拟量完成接收转换。若平台接收到飞控软件发出的高压信号,会对平台造成不可逆的破坏。在此设计中,需要对模拟信号进行适当的隔离。通常的信号隔离包括光电耦合隔离和变压器隔离,因本设计中模拟量信号频率较低,对变压器隔离的电感要求较大,所以本文选用了线性光耦HCNR201作为本系统的隔离电路主要芯片。该芯片隔离电压高达5000V,频带宽度达1MHz,且非线性度仅有0.01%,满足平台设计要求。如图3.5所示为本设计中光耦隔离的原理图。
  由上式可得,在使用HCNR201为光耦隔离芯片的条件下,要想实现信号的等比例线性传输,只需要将R3与R1的阻值相等即可。
  3.2.2模拟量采样电路设计
  本设计中模拟量采集模块采集到的模拟量10路-10V~10V和10路0~32V共20路信号,每路信号的采样率均为2KSPS,共40KSPS,采样精度为16位。ANALOG公司的ADC转换器AD7667,采样位数为16位,最高采样率为1MSPS,温漂典型值为3ppm/℃,满足系统设计要求,故采用此芯片。在此链路中需要使用两片16通道的模拟开关AD706切换实现轮循采样[25]。AD转换原理图如图3.6所示。
  图3.6 20路模拟量AD转换原理图
  如上图所示,在选通开关ADG706和AD7667之间加了一个电压跟随器,其原因是选通开关的容性负载驱动能力不足,而电压跟随器的输入阻抗很大,输出阻抗很小,大大提高了输出端的带负载能力,保证了AD7667的输入信号的正确接收。电阻R233和电容C150又形成了AD8031的补偿网络,形成了一阶滤波器用于补偿,尽可能得避免因容性负载驱动不足引起的信号震荡的现象。
  3.2.3模拟信号幅值调理电路设计
  为使采集到的模拟量信号顺利完成AD转换,需将进入系统后的信号经调理模块调理至AD7667的采样范围内。信号调理电路的运放采用ANALOG公司的ADA4522-2,一款双通道放大器,将模块设计中本应使用40路的单通道运算放大器的数量减半,有效节省了PCB布线面积。ADA4522-2还具有零漂移、低噪声、低功耗的特点,使模块在节约功耗的情况下提高了数据传输的准确性。ADA4522-2单电源供电时输入可以到0 V和轨到轨输出的放大器,并针对随时间、温度和电压条件变化的总精度进行了优化。单电源供电工作范围为4.5 V至55 V,双电源供电工作范围为±2.25 V至±27.5 V,能满足输入信号电压范围要求。
  模块采集到的两种模拟量分别为-10V~10V和0~32V。将0~32V信号调至0~2.5V,只需将输入电压分压至一定数值输入正向输入端即可,调理电路原理图如图3.7所示,经计算得出U1=,得到输出范围为0~2.370V,通过Multisim仿真得到信号输出范围为同样结果。而将-10V~10V信号调至0~2.5V,不仅需要经过比例放大电路,还需要加入直流偏置,将信号偏移至目标范围内,调理电路原理图如图3.8所示。信号输出范围为U1=,得到的输出电压的范围在0.043V~2.265V,通过Multisim仿真得到结果同上。两种信号经调理以后的输出范围均符合AD7667的采集范围内,保证了信号的正确接收。
  值得注意的是,图3.8提供直流偏置时引入的A5V,作为调理电路的重要组成信号,其准确性对于系统尤为重要。尽可能做到即使温度等环境因素变化时,5V直流信号也可以准确而稳定输出。RI-0505L作为常用的5V电压隔离芯片,准确度只有±5%,25℃时输出电压范围为4.75V~5.25V,随着温度的升高,准确度会更低,不可以作为该信号的供电芯片。此设计中采用的电压参考器MAX6065A具有高精度、低功耗的优点,输出电压范围为4.990V~5.010V,保证了信号调理的准确性。此处若不便使用电压参考器,通过配置相应比例的分压电阻直接使用AD7667的REF脚产生的2.5V的内部参考电压,也是一个非常好的选择。
  3.2.4开关量输入电路设计
  开关信号的传输往往是不同平台之间的指令信号的传输,不仅关键,而且一个信号会经过两个平台。若平台因外界因素导致指令的错误发送,可能同时导致两个平台的损坏。为保证前后级平台的隔离,接口采用光耦接收,接口原理图如图3.9所示。
  图3.9有源开入接口电路
  开关量的输入电压为25~32V,中心电压为28V。光耦HCPL-0631的输入电流为5~15mA,所以在光耦的信号输入端串接一个3.3K的限流电阻,使输入电流保持在7.5~10 mA内,保证了光耦信号的正常接收。而在电路的接口处的一个电阻R17和一个电容C9也形成了一个一阶低通滤波器,可滤除信号中的干扰信号。在此情况下值得注意的是,当开关量的输入电压达到32V时,限流电阻的功率最高可达0.31W,所以此处至少应该选择额定功率为0.5W,即封装为1210的电阻才能满足设计要求。此外,在光耦的输入端应该反向并接一个二极管,用于保护光耦,防止前级平台出现故障时破坏光耦及后级电路。
  当28V+和28V-间有25~32V电压输入时,光耦4和3点之间有电流流过,其内部的二极管被点亮,光耦内部的光探测器接收后产生光电流,被三极管放大后输出,实现了电—光—电的转换过程。这种传输方式以光作为媒介传输,对光耦的输入及输出起到了有效地隔离作用。这种传输方式已广泛运用于数字电路中。

  3.3模拟量/开关量输出板卡设计

  在飞控软件仿真验证平台中,模拟量/开关量输出模块用于仿真发出弹载计算机的飞控软件需要接收的系统反馈的模拟信号和指令信号。模拟量/开关量输出模块卡原理框图如图3.10所示,实现20路模拟量输出和36路无源开关量输出。
  3.3.1模拟量输出电路设计
  平台的模拟量输出来源分为两部分:一部分为飞控软件通过接收舵机指令反馈信号而发出的舵机控制指令,另一部分为通过上位机界面对通道配置的电压输出信号。这两种电压信号均由经D/A转换器成模拟量信号,再由信号调理模块将模拟信号调理至目标范围输出。D/A转换器选择ANALOG公司16位的AD768,精度为16位。运放同输入模块一样采用ANALOG公司的ADA4522-2,能满足输出信号电压范围要求。DA输出原理图如图3.11所示。
  在此设计中,AD768采用双极型配置。当输出连接到AGND时,AD768为电流输出型,所以转换电路首先采用运放AD811实现电流/电压转换,再进行电压的调理。在电流/电压转换之前,REFOUT输出的参考电压通过R178后产生的2.5mA的补偿电流(其值为最大反馈电流的一半)使得AD811的输出电压U0的边界值对称,其范围为-2.5V~2.5V,经过反向比例放大电路后,输出电压U1范围为:U1=U0=6 U0,即-15V~15V。将信号调理至此范围后,通过两片选通开关ADG506使20路模拟量均匀输出。
  20路模拟量从ADG506输出后,仅为一个脉冲,首先需要一个电容用于延长输出脉冲的时间,此电容若选取的过大,会导致电容在一定时间内无法完全放电,使得输出信号的电压降低;若选取的电容过小,无法保证输出信号的保持时间足够长。经实验得100pF最为合适,不仅可以保证信号的保持时间,还可以保证电容完全放电。
  模拟量调理至合理范围后,通过电压跟随器才可输出。因为电压跟随器具有极高的输入阻抗,具有极低的输出阻抗,对于后级电路而言,电压跟随器相当于一个恒压源,后级电路阻抗变化对电压跟随器的输出电压几乎没有影响,极大的提高了系统的带负载能力。此外,电压跟随器还兼有隔离、缓冲作用,使前后级电路隔离开,也起到保护电路的作用。在信号的输出端,用稳压管将输出电压稳定在一定范围内,避免意外出现的瞬间高压破坏电路。如图3.12所示为某一路模拟信号调理输出原理图。
  3.3.2开关量输出电路设计
  开关量输出采用光耦继电器AQY212GS,光耦继电器是用光耦来控制开关状态的固态继电器,可以理解为光耦和可控硅的组合体。相比传统继电器,光耦继电器以光为媒介传输信号,输入端和输出端完全实现了电气隔离,对输入输出有良好的隔离作用[26]。此外,AQY212GS具有抗干扰能力强,工作稳定的优点。AQY212GS触点负载为60V/1A,耐压值1500V。开关量输出电路的接口电路如图3.13所示。
  当FPGA输出为高电平时,AQY212GS的输入端1脚和2脚电压相等,无法将芯片内二极管点亮,输出端3脚输出为0V;当FPGA输出为低电平时,AQY212GS的输入端1脚和2脚间存在有电势差,将二极管点亮。二极管产生的一定波长的光被光探测器接收而产生光电流打开继电器,经放大后输出,此时,3脚的输出电压为28V,将开关量顺利传输至后级平台。
  3.3.3开关量浪涌防护设计
  开关量信号接收时,在光耦继电器断开瞬间,会产生几百伏甚至上千伏的浪涌电压,浪涌电压重则破坏平台,直接造成经济损失,轻则为电路板及电子器件埋下隐患,不仅加速器件老化,也可能导致平台的误操作。对于现代化电子平台,对浪涌电压更为敏感。因此,浪涌防护是现代制造系统、信息系统中必须考虑的问题。在此设计中,如图3.13所示将光耦继电器输出端并联压敏电阻形成浪涌保护器以消除浪涌电压的危害。
  在平台正常工作状态时,压敏电阻内阻很大,几乎没有电流通过。但是压敏电阻有特定的敏感电压,当压敏电阻两端的电压超过其敏感电压时,其内阻迅速减小,阻值几乎为零,类似于短路,压敏电阻两端电压迅速降低,避免瞬间高压破坏电路[27]。当高压过去之后,电阻不会被破坏,可恢复正常工作。这种电阻有效避免浪涌电压为平台带来的危害,起到了保护电路的作用。此设计中使用的压敏电阻EZJZ1V420EA,其电压敏感值为42V,当其两端电压达到42 V便将信号旁路,有效地保护了平台。

  3.4 CPCI总线控制器模块的设计

  3.4.1CPCI总线传输技术
  PCI(Peripheral Component Interconnect),即外设部件互联,是由PCI Special Interest Group推出的一种局部并行总线标准,由ISA总线发展而来。如今,PCI接口因具有高性能、兼容性强、极小的存取延时以及低成本、可拓展空间较充足的优势已广泛运用于个人电脑中,是个人电脑运用最多的插槽类型。PCI总线具有以下电气特性:
  1)总线时钟:33.3MHz/66.6MHz。
  2)总线宽度:32位/64位。32位是现阶段较为通用的通信方式,而64位系统还有待普及。
  3)最大数据传输速率:不同时钟频率下,不同的总线宽度的最大传输速率是不同的。当系统总线时钟为33.3MHz、总线宽度为32位总线宽度时,其最大传输速率为133MB/s;而总线时钟为66.6MHz、总线宽度为64位总线宽度时,最大传输速率为512MB/s。这种数据传输速率是其他总线望尘莫及的,使高性能的CPU得以充分发挥其优势[28]。
  4)支持64位寻址。
  5)适应5V和3.3V供电环境。两种供电环境极大地扩展了PCI得适用范围,可以充分发挥其作用。
  CPCI(CompacPCIt),即紧凑型PCI。CPCI总线是PCI工业计算机制造联合会于1994年提出的基于PCI的一种高性能工业计算机标准[29]。它具有和PCI一样的电气特性和相同的逻辑功能,并在其基础上在结构方面有所更改,使PCI总线技术应用于更广泛的工业设计中。和PCI相比,CPCI具有以下改进:
  1)CPCI总线改良了PCI的传统机械结构,采用了符合IEEE1101.1标准的欧式卡结构,这种结构提高了抗振动、抗冲击的能力、改善了其散热功能,提高了平台在各种恶劣环境的适用性。
  2)CPCI总线后面板采用了符合IEC-1076标准的2mm插针式连接器,这种固定方式相较于传统的金手指式的互联方式,不仅气密性,还具有低阻抗特性,减小信号的反射,提高平台可靠性[30]。
  3)CPCI总线有3U和6U两种标准的板卡尺寸。3U板卡尺寸为160mm*100mm,连接器只有J1和J2,这两个连接器均为PCI的接口连接器;6U板卡尺寸为233.35mm*160mm,除了J1和J2外,还有J3、J4、J5,这三个连接器为自定义型,均可用于平台的信号拓展。
  4)CPCI机箱可提供8个插槽,而PCI只有4个插槽,增强了平台的可拓展性。
  5)热插拔规范支持,这种技术是CPCI最引人注目的特点。这种技术使平台在上电情况下,即使人为操作失误的情况拔出或者插入板卡都不会破坏系统的正常运转,可起到保护平台的作用。
  3.4.2CPCI接口芯片PCI9054
  CPCI总线接口作为本设计的重要组成部分,为硬件电路和上位机之间通信提供了桥梁。若用FPGA直接和CPCI实现通信,在技术上要求较高,而且增加了设计者的工作量。所以在此设计中通过使用技术较为成熟的PCI接口芯片PCI9054来实现CPCI总线和FPGA通信。
  PCI9054是由PLX公司推出的一种32位33 MHz的PCI总线主控I/O加速器,它遵循PCI2.2规范,突发传输速度可达132 MB/s。PCI9054内部集成了DMA引擎且其数据流水线框架业界领先[31]。此外,PCI9054的可编程的PCI起始器、目标数据传输模式和PCI信息传输功能也丰富了其功能,目前已成为主流的PCI接口器件之一[32]。由于PCI9054桥接本地总线和PCI总线,使复杂的PCI接口应用设计变得相对简单,所以设计人员不用过多考虑较为复杂的PCI总线规范,只需将精力投入到硬件的开发和驱动的设计即可。
  PCI9054可通过控制引脚MODE[1:0]使本地总线工作于M、C、J 3种工作模式。其中,C模式即地址数据总线非复用模式,通过片内逻辑控制将PCI的地址线和数据线分开,是较为常用的工作模式。此模式本地总线操作时序最为简单,逻辑控制相对容易,并且能够满足绝大多数的应用需求[33]。
  PCI9054按其用途分类,可将其引脚分为三个部分,分别是PCI总线接口、LOCAL总线接口、EEPROM总线接口[34]。其中,PCI总线接口主要职能是按照PCI总线协议完成PCI9054与PC机之间的通信;LOCAL总线接口主要职能是管理LOCAL端的地址数据,完成PCI9054与FPGA的直接通信。EEPROM总线接口主要负责PCI9054的所有的寄存器配置。而配置寄存器也是系统调试之前需要完成的工作。具体接口图如图3.14所示。
  PCI9054可以将PCI总线和PC机较为复杂的PCI通信协议包裹起来,不需要设计者的深究。设计人员只需要将精力应用于完成较为容易的FPGA与PCI9054的local bus信号的设计就可以实现目的,大大简化了PCI总线板卡的设计难度。

  3.5供电模块设计

  电源系统作为飞控软件半实物仿真平台硬件电路设计的心脏,为电路中所有的器件的工作提供工作能量来源。若电源系统出现故障,性能再强的系统也不能发挥其作用。所以电源系统的设计尤为重要。
  3.5.1供电模块电路设计
  对于平台内部的模块供电,主要依托于CPCI机箱背板卡槽供电。本设计采用的机箱背板供电有PCI28V、PCI12V、PCI5V、PCI3.3V四种供电电压。供电系统电路设计如图3.15所示。
  图3.15供电系统电路设计
  对于三个模块的主控部分,即FPGA和PCI9054及其外围部分,供电电压为3.3V、2.5V、1.2V三种,必须通过适当的电压转换模块才能得到系统所需要的供电电压。因为FPGA需要三种电压的同时供电,所以在此设计中均通过背板提供的PCI5V通过TPS70345和TPS75225转换而来,不仅可以保证三种电压的同时正常工作,还可以保证三种电压共地,使干扰降到最低,保证FPGA的正常工作。
  TPS70345是一款双通道集成电路稳压器,低功耗,具有较高的电源纹波抑制和极低的自有噪音[35]。TPS70345的电压监测和复位延迟等功能和小封装尺寸使得FPGA的供电设计变得更简单和方便,而其实际使用效果也比较理想[36]。在TPS70345的典型应用电路中,两路输出电压(1.2V和3.3V)都共用5V输入电压,为减小芯片功耗,可采用分开供电的方式。按照数据手册,1.2V输出采用2.7V输入电压、3.3V输出采用5V输入电压,可极大地降低功耗,减少热量的产生,提高电源效率。在此设计过程中由于PCB布线面积紧张,1.2V和3.3V供电电路输出电流远小于通道最高额定电流,用一个芯片即可。
  在串行通信模块中,通过配置MAX3160实现各种串行通信模式的配置,为保证三种串行通信模式的互相独立,此设计中采用RECOM公司的RI-0505SDC/DC隔离芯片实现隔离。RI系列相较于RM及ROL系列,具有更大的输出电流167mA,可保证即使所有通道同时工作时的模块的稳定性。此外,RI具有80-85%的转换效率,比RM系列高出14%,比ROL系列高出3%,避免了资源的浪费。
  在模拟量/开关量输出模块中,供电相对复杂。除了主控部分外,还有28V、36V、+15V、-15V、+5V、-5V的供电。28V采用机箱背板提供的PCI28V,通过升压芯片XL6012将输出电压提升至36V。XL6012是一款电流型升降压型DC-DC,转换效率高达94%。与传统的电源模块相比,XL6012体积小,重量轻,极易使芯片造成过热的现象,影响芯片的正常工作。因此,芯片的散热设计成为一个值得关注的问题。
  输出模块中,±15V和±5V都用于运放的供电用于信号的调理。为得到这两种电压,首先将28V直流电通过电源模块REC7.5-2415DRW得到±15V的直流电,再通过MC7805BD2T和MC7905BD2T两芯片得到±5V的直流电压。REC7.5-2415DRW输入电压范围为18~36V,转换效率高达86%。MC7805BD2T和MC7905BD2T两芯片输出电流达1A,在此设计中可提供足够的功耗。三种芯片均具有短路保护功能,且成本较低,适合用于此电路中。此外,这种通过使用两个电源芯片采用多级转换得到±5V的直流电压的方式,在系统耗电功率一定的前提下,减少每块电源芯片的功耗,提高了供电的稳定性和平台的可靠性。
  3.5.2电源退耦
  电源线的压降问题是电源系统设计过程中考虑的一个重要环节。电源线的直流压降可以通过减小布线电阻,即电源线加粗和缩短解决,也可以通过升高电源的输出电压起到补偿的作用。但是在实际情况下,数字电路的频率很高,器件中高频变化的电流使分布电感引起的电源压降更为严重。若能将所有器件高频工作中的高频纹波滤除,就可以消除引线的寄生电感产生的电源压降,而解决电源线上这种高频纹波的方法就是使用滤波电容[37]。
  在实际的应用过程中,电容由于电感效应的存在,一个电容的阻抗相当于一个电容、一个电阻、和一个电感,即
  Z=R+jwl+=R+j(wl-)≥R式(3.8)
  当电容阻抗最小,即wl-=0,w=,此时电容的实际阻抗值最小,此时的频率f=被称为电容的自谐振频率,记为。干扰信号越接近电容的自谐振频率,越容易被电容过滤[38]。大容值的电容通常具有具有较大的等效电感,因而其自谐振频率较小,所以比较适合用于滤除低频干扰信号;小容值的电容通常具有具有较小的等效电感,因而其自谐振频率较大,所以比较适合用于滤除高频干扰信号。
  在高频电路中,滤波电容一般选取为容值较小的0.01μF-0.1μF的无极性电容。本设计使用的是0.1μF的贴片电容。由于电容引脚也有寄生电感,所以电容应该尽量靠近芯片,减小引线长度。对于有多个电源和地引脚的芯片,要尽量在每组电源和地之间都加滤波电容。
  此外,在每个电压转换模块的每个输入端和输出端,除了使用一个较小电容滤除高频纹波外,还会并联一个较大电容用于滤除低频纹波。本设计中因低频纹波频率较高,大电容选取最大为4.7μF的贴片电容。而实际应用过程中,因贴片电容设计的容值有限,若电容的容值选取若超过4.7μF,通常需要选择电解电容。此外,在使用电解电容时,需要考虑到,电解电容的电解液易挥发,若需要长期使用,需要考虑其余量,适当选取容值较大的电解电容。
  3.5.3芯片散热处理
  按照传热学的原理,热传递可分为三个基本方式,即热传导、热对流和热辐射。热传导在芯片散热中体现为热量从节点到芯片传递,针对这种方式,因芯片构造无法更改,所以通过这种方式促进芯片散热的方法较难。而热辐射和热对流主要表现为芯片表面到外部环境的热量传递,针对这种方式,我们可以做的有很多,例如增加PCB散热面积、增加散热块等。
  为帮助芯片XL6012散热,在芯片的背面增加一个合理体积的散热块。散热块材料采用散热性能好,质量较轻的铝作为原材料。散热块呈鳍片状。将芯片背部紧贴散热块中心,散热块的底部采用中间厚、边缘薄的设计,便于热量的发散。而鳍片间的间距及厚度也是散热块的重点,当散热块包络体积一定时,鳍片厚度过薄,热量无法传输至鳍片的末梢,体积效率变弱;当鳍片过厚时,鳍片数目又会减少,使表面积减少,散热不彻底。因鳍片间距离小于1mm时,近似认为空气在此空间无法流通,影响散热,所以采用3mm的间距值,鳍片厚度采用1.5mm,在保证体积散热效率的前提下,尽可能增加其表面积。此外,在散热块的表面做阳极处理可增加辐射性能而增加散热块的散热性能[39]。散热块实物图如图3.16所示。
  3.5.4模拟地和数字地的隔离
  在模拟量/开关量输入及输出模块中,模拟信号和数字信号共存。数字信号频率较高且模拟信号变化较微弱,因此数字信号产生的噪声极易对模拟信号造成干扰。为使模拟信号和数字信号隔离开,采用了将模拟地和数字地隔离的方法[40]。地作为信号电位的参考,若将其彻底分隔开,容易积累电荷,造成静电。为使地分割成模拟地和数字地两个网络,但又不存在电位差,可以在两地之间用一个0欧姆电阻实现点对点连接,不仅保证电位相等,还可以实现0欧姆电阻单点接地,限制噪声。

  3.6本章小结

  本章除了完成了串行通信板卡、模拟量开关量输入板卡、模拟量开关量输出板卡的三大功能板卡的硬件电路设计外,还对CPCI总线控制模块和供电模块做了详细介绍,完成了仿真平台的硬件搭建。
  4FPGA控制逻辑设计
  硬件在环的仿真体系中,核心部分为仿真内核的信息处理。在上一章硬件平台搭建完成的基础上,本章通过介绍各模块的FPGA控制逻辑的设计完成了平台的仿真内核的信息读取及处理,实现了每个模块各自的外部接口与实时仿真平台的通信。在本设计的三大功能模块中,均使用XILINX公司的Spartan-6系的FPGA对各个模块完成了时序逻辑的电路设计,此系列FPGA资源丰富、功能强大,并且具有低功耗的优点,受到广大设计人员的喜爱。

  4.1串行通信卡时序设计

  本设计的串行通信模块包括RS232、RS422、RS422/RS485可选三种通信方式,三种通信方式均要求实现波特率、起始位、数据位、校验位可配置。当上位机和板卡通信成功后,FPGA将收到的命令信号和数据信号分别输入到两个模块中以实现串行通信不同功能的逻辑设计。
  4.1.1FPGA异步串行通信时序设计
  异步串行通信作为一种常见的通信方式,经常用于不同平台的信号传输。在本平台的设计中同样大量使用异步串行通信。异步串行通信中,数据以图示4.1所示格式传输。
  图4.1异步串行通数据格式
  在数据传输间隙,以“1”为空闲状态。一旦数据传输开始,会出现一个逻辑为“0”的开始位,作为接收端开始接收数据的起始信号。此时,数据发送端会以事先约定好的数据传输格式传输相应的数据位。当数据传输完成时,发送端开始发送奇偶校验位。奇偶校验位是用于数据传输的差错检测,是冗余位。在校验位传输完成时,以“1”为停止位,是数据传输的停止标志。若数据传输过程中,接收端接收的校验位不正确或者停止位不为“1”,均认为此次数据传输无效。接收端应回到初始状态,等待下一次起始位的来临[41]。串行通信数据接收端的FPGA具体数据接收流程图如图4.2所示。
  图4.2串行通信数据接收流程图
  4.1.2串行模块通信方式的配置
  在命令配置模块,为实现串行通信卡的配置,当串行通信卡收到上位机发送的16位配置指令后,将16位二进制数分为六段用于配置平台内部信息:15、14、13、12这四位用于配置串行通信的选通通道,即配置所有串行通信通道读写使能;11、10、9三位用于配置串行通信的码率,即配置读写一位的时钟个数;8、7用于配置串行通信的数据位的位数;6、5、4、3、2两位用于配置数据校验位的校验方式;1、0用于配置停止位的位宽。具体串行通信卡的配置信息表4.1所示。
  表4.1串口信息配置表
  通道码率数据位校验位停止位
  4bit 3bit 2bit 5bit 2bit
  0000默认状态000默认00 5bit 00000默认00默认
  0001 232通道1 001 9600 01 6bit 00001无01 1bit
  0010 232通道2 010 57.6k 10 7bit 00010奇10 1.5bit
  0011 422通道1 011 115.2k 11 8bit 00011偶11 2bit
  0100 422通道2 100 230.4k 11111 CRC
  0101 422通道1 101 460.8k
  0110 422通道2 110 921.6k
  0110 422/485 1
  0111 422/485 2
  1000 422/485 3
  1001 422/485 4
  4.1.3同步整形接收串行数据
  在平台的串行通信的数据接收模块,FPGA内部的信号通过内部逻辑单元布线时,由于信号的布线长度和逻辑单元个数以及器件的工作环境、制造工艺的不同,延时的长短存在差异。当一个门的多路输入信号同时改变时,由于延时不同会产生竞争,极易使接收端接收出现冒险,产生毛刺。当FPGA判断数据的起始位时,若检测到信号因毛刺产生的下降沿,会使FPGA误以为起始位的来临,造成数据接收的错误,可能丢失真正的数据。
  同步整形即将异步信号与系统时钟同步后得到一个较为平整的信号,是异步串行通信中常用的方法。这种方法不仅可以有效地消除部分竞争与冒险,还可以消除信号抖动。如图4.3所示为一个同步整形等效电路图,该电路完成了对初始信号X的N次的同步移位。相当于以系统时钟周期为间隔对初始信号X进行采样N次,并进行表决。若半数以上为1,则输出为1;若半数以上为0,则输出为0。这种方式可以消除*时间段内的抖动。
  图4.3同步整形等效电路图
  在此设计中,FPGA采用同步整形的方式接收数据位,即在接收的数据位的所有时钟的正中间取21个时钟,且在这21个时钟的上升沿对信号采样,并且将前20位的采样值顺序移位。21次采样移位完成后,对这21个数据位进行表决。例如数据波特率为115.2K时,串行通信模块时钟为36.864MHz,数据位一位的时钟个数为320个时钟。在数据的第150个到170个时钟时判断接收的数据位,通过表决判断数据接收的数据是0还是1,保证数据的正确接收。具体流程图如图4.4所示。
  4.1.4串行通信中数据缓存介质的使用
  FPGA通过CPCI和上位机通信时钟为33MHz,和外部串行通信平台通信的波特率虽不能确定,但所使用晶振的时钟为36.864MHz。两种通信模式在传输并行数据时FPGA内部存在跨时钟域的问题。通过使用FPGA内部的RAM硬核配置双口RAM和FIFO作为数据缓存介质都是简单有效地解决异步时钟域的有效方法[42]。
  FIFO和双口RAM不同的是,RAM需要同时配置其读写地址线才可保证两模块的正常通信;而FIFO是first in first out,遵循先进先出的原则,通过empty、prog_full、full等信号作为通信标志,控制数据的读写过程,而数据读写可通过读写指针指向读写地址的自动加1来实现,简单可行。因此,本设计中采用FIFO作为跨时钟通信的方法,在满足功能的前提下,减少了程序编写的难度,简单有效。此外,FIFO还具有位宽匹配和相位补偿的功能,可被应用于相应的设计中实现不同的功能。
  串行通信过程中,FPGA以36.864M时钟与外部进行通信。FPGA读取外部数据时,FIFO的读取速率远大于最大的写入速率,FIFO的使用可以防止读写冲突,保证数据的正常传输。FPGA向外部传输数据时,FIFO的写入速度远大于读取速度。所以应该选取合适的FIFO的深度以防止数据的丢失[43]。FIFO的深度取决于需要缓冲的数据量,而缓冲的数据量又取决于写速率和读速率,这些因素存在以下关系式:
  1)FIFO被填满时间>数据包传送时间
  2)FIFO被填满时间=FIFO深度/(写入速率-读出速率)
  3)数据包传送时间=数据量/写入速率
  上述三个关系式必须同时满足才可以保证数据不被丢失。数据写入速率为36.864Mb,最小读出速率为9600b,突发数据量为512Bit,经计算得出宽度为8b的FIFO的深度最小为511.87Bit,在此设计中选用1K的深度。
  此外,异步FIFO可把读写时钟域转换为gary码,原因是gary码可以把地址值的连续变化转化成gary码中只有1位的跳变,减少了很多中间状态,避免亚稳态的出现,保证数据的正常传输。
  4.1.5串行通信CRC校验算法逻辑设计
  在串行通信数据传输过程中,由于干扰的存在,极易造成将“0”判别为“1”或者“1”判别为“0”的现象,这种现象称为“误码”,查找错误的过程为“检错”。常见的数据误码率的检测方法有三种,奇偶校验、CRC校验和海明校验。本设计通过接受界面程序的命令完成了奇偶校验和CRC校验的配置,而奇偶校验为多项式G(x)=x+1的CRC校验,所以本节重点完成CRC校验的逻辑设计。
  CRC(Cyclic Redundancy Check),即循环冗余校验,具有极强的检测数据传输“误码”的能力,而且还可以完成数据的“检错”,是一种运用极为广泛的校验方式。CRC校验的数据是以N位的数据码元加M位的校验码元组成的N+M位的数据格式传输的。数据校验码元通过模2除法获得,类似于除法运算,不同的是计算过程中模2除法的减法为异或运算。将左移M位的原始数据看做被除数,而多项式G(x)看做除数,得到的余数即为数据的校验码元。常见的CRC校验标准多项式如表4.2所示。
仿真的对比,可知二进制编码和格雷码都是压缩编码。这两者的共同点是使用状态向量的使用位数较少。但是二进制编码相邻状态的跳转会出现同时多位跳转的时刻,易出现毛刺;而格雷码编码从一个状态到下一个状态的跳转只会发生一位的跳变,不易造成毛刺的产生,适用于异步握手的情况,比如异步FIFO的指针计数。但是这两种编码方式的状态数量若不是个,会使状态机进入非法状态,无法跳出[45]。这两种编码方式比较适用于触发器数量较少且组合逻辑电路丰富的器件中,例如CPLD。
  独热码,顾名思义,就是只有一位是高电平,其余均为低电平。这种编码方式用到的触发器数量较多,N个状态便需要N个触发器,也存在非法状态。但是,这种编码方式简化了状态机中组合逻辑的设计,提高了系统运行的速度,其工作频率可做到最高[46]。此外,独热码还有设计简单,译码容易,且更方便调试综合的优点。对于本设计中使用的主控制器FPGA来讲,资源丰富,触发器数量较多,独热码可有效提高其内部资源利用率和电路运行速度,所以采用此编码方式。

  4.3开关量采集模块逻辑设计

  在飞控软件的实际仿真验证过程中,开关量的采集意味着飞控软件控制系统对某些平台指令的传输。在电磁干扰复杂的环境中,即使在硬件接收链路上选取容值恰当的电容完成硬件上的滤波,也无法保证FPGA采集到的信号没有杂波的出现。若FPGA将采集到的并非为真实信号的脉冲误判为某个指令,将会带来巨大的损失。因此,FPGA软件滤波也是必不可少的。
  4.3.1延时滤波接收开关量
  在仿真平台的开关量采集时序设计中,采用延时滤波的方法接收FPGA采集的开关量信息。延时滤波是通过判断信号的脉冲宽度起到消除抖动的作用。当FPGA判断到一个脉冲信号来临时,延时一段时间T,当脉冲信号的宽度小于T时,则判定此信号为无效信号;当脉冲信号的宽度大于T时,则判定此信号为有效信号。具体流程为:将FPGA程序初始化后等待时钟上升沿的来临,用时钟的上升沿判断开关信号是否跳变。一旦检测到信号的跳变,便开始将计数器自加一,直到计数器加到某个特定的值,即时间T。此时再判断信号是否仍然保持在跳变后的状态,若是,则判定此信号为有效开关信号;若不是,则判定为无效信号。具体FPGA判别流程图如图4.11所示。
  图4.11FPGA延时滤波流程图
  延时滤波不仅可以有效地消除开关量信号的抖动,还可以滤去因环境影响带来的干扰、噪音等其他尖峰波,抗干扰强,可靠性高。但是,若延时时间T的时间过短,则不能完全起到滤波的作用;若T的时间过长,则会增加FPGA的资源占用率,降低其效率。所以这种滤波方式适用于干扰信号脉宽已知的信号的滤波[47]。如图4.12所示为本设计中延时100微秒后的开关量波形图,非常光滑平整。
  图4.12滤波后前后开关量波形图
  4.4模拟量输出模块时序设计
  飞控软件需要接收舵机反馈信息再发出相应的舵机控制信号。本设计为模拟弹体系统,需要将平台采集到的模拟信号通过计算后,输出相同电压值。因平台模拟量的采集速率为2KSPS,根据香农采样定理可知,某信号的最高频率为,必须以至少2的采样频率对该信号采样,才可保证信号不失真的恢复。所以,本设计的模拟量信号输出的频率为4KHz。
  设计中使用的系统时钟为40M,模拟量输出通道数为20路。单路模拟量转换频率为4KHz,总频率为80KHz,每一路的转换时间为500个时钟周期。因此,每路数字量的写入,转换,以及通道切换过程均在这500个时钟周期内完成才能保证模拟信号的正确转换。
  在时序的设计过程中,同模拟量采集时序设计原则相同,为便于分析及修改,在主程序的不同的进程中实现不同的功能。具体时序逻辑如下:
  第一个进程中在前5内将输出信号地址切换完成,确定DA转换的通道信息。
  第二个进程中在第10个时,读取前级写入FIFO中的数字量,并将数字量写入后级缓存。
  第三个进程中在第15个时,将寄存器中的数字量信息写入AD768。
  第四个进程中,因DA转换时钟拉高至少需要5ns,在第20到30个之间,将DA转换时钟信号拉高250ns,使AD768完成从数字量到模拟量的转换彻底完成。
  第五个进程中,在第400到490个之间,将选通通道的配置信息写入ADG506中,此时,模拟量便从对应通道输出。中间空闲的370个时钟周期可以保证模拟量转换完成后,芯片内部也达到稳定。这样,模块输出的模拟量才是准确稳定的模拟量。模拟量输出流程图如图4.13所示。
  图4.13模拟量输出时序流程图
  在配置通道信息时,不仅要配置ADG506上选通的通道的信息,还需要配置两片选通开关的使能信息。在程序的调试过程中,若先配置选通开关的使能信息,再配置选通开关的通道信息,在通道的切换过程中极易造成通道间信号的串扰,影响模拟量的输出。因此,在配置通道信息时,应该先切换选通芯片的通道号,再配置两个选通开关的使能信息,以保证模拟量的正常输出。
  4.5本地总线与PCI9054通信
  PCI总线是仿真设备的软硬件之间的通信桥梁,通过本地总线与平台进行通信。在不同的板卡中,本地总线与PCI9054的通信时序是相同的。
  PCI9054可以提供2种访问方式,即单周期访问和突发访问。本设计通过对FPGA使用状态机完成本地总线和PCI9054的通信。状态机的初始状态为S0,为空闲状态,当FPGA判断到ADS#为0时,状态机跳转到状态S1,数据开始了一次数据传输,否则在S0循环判断。在S1状态时,通过判断BLAST#决定本地总线的单周期访问或者突发周期的通信方式。若为0,为单周期访问的开始,状态机跳转到S2;若为1,完成一次突发访问,而BLAST#则被用来结束这个突发访问周期。状态S2通过读取LW/R#完成PCI9054和FPGA的数据读取,当LW/R#为1时,PCI9054命令下发至FPGA,当LW/R#为0时,FPGA将数据上传至PCI9054[48]。以此过程,完成循环,具体流程图如图4.14所示。
半实物仿真平台硬件控制板卡的设计与实现

  4.6本章小结

  本章对FPGA的串行通信、模拟量采集及输出、开关量的采集以及与PCIC9054的通信逻辑均做了详细阐述。此外,本章还介绍了时序设计中的关键技术,包括串行通信的同步电路消抖以及CRC校验算法、AD转换中有限状态机的使用及编码方式的选择、开关量信号采集的延时滤波等。

  5性能测试与验证

  平台硬件设计调试完成后,需要结合平台的实时仿真软件才可以完成系统测试,验证平台各通道是否达标。系统测试遵循多次测试的原则,包括分别对串行通道、模拟量通道、开关量通道的测试,完成了各通道的功能验证。

  5.1平台综合测试

  在飞控软件仿真验证平台系统测试时,必须在上电之前先检测各背板供电是否正常,然后保证“串行通信卡”、“模拟量开关量输入卡”和“模拟量开关量输出卡”在测试台机箱内安装紧固,避免因为板卡固定不牢固产生的事故。飞控软件半实物仿真平台外观图如图5.1所示:
  在各种硬件测试模块准备就绪的情况下,需要通过操作飞控软件仿真验证平台控制软件才能完成系统测试。
  如图5.2所示,飞控软件半实物仿真平台界面程序主要包括以下五部分:
  1:软件菜单栏,菜单栏中有“文件”和“配置”两个按键,在“配置”键处可以完成RS422参数配置、检测文件存储配置、输出的电源配置三个功能,如图5.3所示;
  2:飞控软件半实物仿真平台等效的5种弹上平台;
  3:每种等效平台中的监控项目;
  4:操作命令栏和监控信息显示栏;
  5:板卡在线状态监控与指示;
  在“422参数配置”处可完成串行通信模块的通信模式配置,包括异步串行通信码率、数据位的位数、校验方式以及停止位的位宽。“监测文件存储设置”按钮可以修改存储原始数据文件的存储位置及格式。“电源配置”按钮,可以修改模拟量输出的配置参数。
  经多次测试验证,界面程序的各部分功能均正常,可实现软件和硬件的正常工作,各信号的上传和下发都可顺利完成,以下几个小节分别具体完成各模块的功能测试。

  5.2模拟量通道测试

  5.2.1模拟量标定
  为保证采集的模拟量和界面程序的显示值的一致性,将采集的模拟量和转换后的数字量采用了线性标定的方法,得到了两者的关于一次函数Y=kX+b的标定曲线。理论上只需要两点的物理量以及对应的转换的数字量就能精确地绘制出反映两者之间关系的高精度线性曲线。在实际标定过程中,随着平台上电时间的增加,温度也随之增高,而温度的升高必然导致各元器件性能的细微差别,即使采用高精度平台器件也必然会影响到模拟量的采集转换精度,所以不能单纯的取两个点便得出其线性关系。又因各路模拟量硬件上走线以及不同元器件存在的差异,所以需要对每一路模拟量分别标定拟合。模拟量的标定通常使用最小二乘法完成,标定步骤为:
  1)使用标准信号发生器在每一路通道中输入预先设定好的直流电压X,通过上位机读取数据获取对应的转换数据Y;
  2)通过n次取值,得出方程组:;
  3)采用最小二乘法公式算出系数k和b的值。
  Origin为OriginLab公司开发的函数绘图软件,可以实现制图、数据分析、函数拟合[49]。实际标定过程中,为减小工作量以及保证拟合曲线的准确性,采用Origin完成模拟量和数字量的线性拟合。分别对每一路模拟量取五个电压值进行采样,通过上位机分别读取这每个点至少1000个转换后的数字量,然后取这1000个数字量的平均值,再通过这五点的电压值和以及对应的平均值拟合出各通道的线性关系。
  对于模拟量采样范围为-10V到+10V的通道,取-9V、-5V、+1V、+5V、+9V五点对其进行拟合;对于模拟量采样范围为0V到+32V的通道,取+1V、+9V、+15V、23V、+31V五点对其进行标定,如图5.4所示为某一路模拟量和数字量之间拟合后的曲线。
下载提示:

1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。

2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。

3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。

原创文章,作者:写文章小能手,如若转载,请注明出处:https://www.sbvv.cn/chachong/12664.html,

(0)
写文章小能手的头像写文章小能手游客
上一篇 2021年6月18日
下一篇 2021年6月20日

相关推荐

My title page contents