屈盼让,刘卫华,孙少华
(中国航空工业集团公司西安航空计算技术研究所,陕西 西安 710065)
飞机机电系统包含大量的28 V/开和地/开离散量输入接口,用于采集阀门等开关元件的状态。传统的28 V/开和地/开离散量采集接口通过阻容等分立器件将输入信号调理成28 V/地信号,再通过光耦等隔离芯片将其转换为标准的TTL/LVTTL电平信号,输入到处理器的通用IO上进行采集[1],这种电路均采用的是分离式无源器件,设计简单,可靠性高,但是单通道离散量采集电路占用PCB板面积较大,功耗较高,重量较重。
近年来,以航空电子高度综合技术需求为牵引,国内相继开展了离散量采集电路的集成化研究,推出了全国产化多通道离散量采集芯片HKA03201[2,3],并基于HKA03201设计了机载离散量采集电路[4,5]和离散量采集控制器[6],然而基于HKA03201的离散量采集电路主要存在以下两点劣势:
1) 离散量采集模式不可在线配置,通过外部电阻的离线配置方式适配成本较高,通用性较低;
2) 离散量采集过程需要处理器参与,CPU参与HKA03201的采集BIT过程,处理器负载较大。
针对以上两种问题,本文基于国产化离散量采集芯片HKA1223,设计了单通道采集模式可在线配置的高通用化离散量采集电路,并基于FPGA设计了离散量采集控制器,实现了HKA1223的自主采集与BIT,实现了CPU与HKA1223之间解耦控制,减轻了CPU负担,增强了系统的稳定性和可靠性。
本文采用“CPU+FPGA+HKA1223”的方式实现对8通道离散量多模式可在线配置采集,其中,HKA1223控制器基于FPGA实现,电路的结构框图如图1所示。
图1 离散量采集电路结构图
HKA1223的传统控制方式是将其控制信号直接引入CPU的GPIO上,通过GPIO翻转和延时等待实现芯片的时序控制,然而这种方式因驱动软件复杂,移植性差,不能适配多种处理器等问题被诟病。本设计中CPU仅作为数据处理单元与FPGA通过并行总线通讯,在上电初始化阶段通过写操作完成HKA1223配置信息下发,并在正常工作阶段,通过读操作周期读取HKA1223的采集与BIT结果,而不直接参与HKA1223的时序控制,极大的简化了软件流程,减轻了处理器负担,增强了代码的可移植性。
FPGA与CPU之间通过并行总线通讯,与HKA1223之间通过SPI总线通讯,FPGA内部配置有HKA1223控制器,其作为管理与控制中心,依据CPU下发的配置信息,通过SPI总线自主在线完成HKA1223的模式配置、周期BIT和周期采集,并将采集结果按址存储,供CPU周期查询,实现了CPU与HKA1223解耦,提高了系统可靠性。HKA1223采用模块化设计,适配于各种型号的可编程逻辑器件,移植性强。同时,FPGA拥有大量的用户IO,四线制SPI总线占用FPGA的IO数量较少,在IO数量紧张的情况下,亦可通过共用SCK、SDI和SDO等信号的并联方式进行扩展,可扩展性强。
HKA1223是一款全国产8通道可配置离散量采集芯片,不同于HKA03201的通过外部电阻实现28 V/开和地/开采集模式的离线可配方式,HKA1223可通过写内部配置寄存器实现采集模式和BIT模式以及28 V/开和地/开模式的在线配置,极大的降低了离散量采集电路的适配成本,提高了离散量采集电路的通用化水平。
HKA1223离散量采集控制器基于FPGA实现,其结构框图如图2所示,具体包含寄存器、控制计数器和串并转换等3个模块.
图2 HKA1223控制器结构框图
寄存器模块包含配置寄存器、结果寄存器和测试寄存器。其中,配置寄存器用于存储CPU下发的模式配置信息HKA1223_config,位宽为8 bit,分别表示对应通道的采集模式,其中‘1’表示将所对应通道配置为地/开模式,‘0’表示将所对应通道配置为28 V/开模式。结果寄存器位宽为8 bit,分别用于存储HKA1223正常模式下离散量采集结果,当采集模式为28 V/开时,‘1’表示28 V,‘0’表示开;当采集模式为地/开时,‘1’表示开,‘0’表示地。测试寄存器位宽为8 bit,分别用于存储HKA1223的BIT结果,‘1’表示该通道故障,‘0’表示该通道正常。
控制计数器模块包含一个周期为1 ms的计数器,并根据计数值产生使能信号,控制串并转换模块发起与HKA1223的SPI通讯,具体分为以下四种情况:
1) 当计数值为0.00 ms,产生单脉冲信号,使能串并转换模块的SPI写操作,同时生成配置数据[1′b1, HKA1223_config],将HKA1223配置成BIT模式;
2) 当计数值为0.25 ms,产生单脉冲信号,使能串并转换模块的SPI读操作,读取HKA1223的采集结果,并将采集结果与HKA1223_config做异或运算,将运算结果存储在测试寄存器中;
3) 当计数值为0.50 ms,产生单脉冲信号,使能串并转换模块的SPI写操作,同时生成配置数据[1′b0, HKA1223_config],将HKA1223配置成正常模式;
4) 当计数值为0.75 ms,产生单脉冲信号,使能串并转换模块的SPI读操作,读取HKA1223的采集结果,并将采集结果存储在结果寄存器中。
串并转换模块依据控制计数器模块产生的单脉冲使能信号,分时发起SPI写操作和SPI读操作,在SPI写操作过程中,将9 bit并行配置数据转换为SDI串行信号,在SPI读操作过程中,将SDO串行信号转换为8 bit采集结果。
在ModelSim环境下编写测试用例,对设计的正确性进行验证。图3展示了控制器依据配置信息8’hAA,发起SPI写操作,将HKA1223配置成BIT模式的过程;图4展示了控制器发起SPI读操作,将串行数据SDO转为并行采集结果,并与配置信息8’hAA作异或运算,得到BIT结果,并将结果存储在测试寄存器的过程。
图3 将HKA1223配置成BIT模式
图4 读取HKA1223的BIT结果
编写测试用例,模拟HKA1223,并将其输入引脚设置为8’h55。图5展示了控制器发起SPI写操作,将HKA1223配置成正常采集模式的过程,其中将通道1,3,5,7配置为28 V/开模式,将通道2,4,6,8配置为地/开模式;图6展示了控制器发起SPI读操作,将串行数据SDO转为并行结果,并存储于结果寄存器的过程。
图5 将HKA1223配置成正常采集模式
图6 读取HKA1223的正常采集结果
以上仿真结果表明HKA1223控制器发起SPI写操作和SPI读操作的时序完全符合HKA1223的时序要求,并证明了所述自主控制逻辑的正确性和CPU与HKA1223解耦控制方案的可行性。
本文基于HKA1223全国产化芯片设计了通用化离散量采集电路,采用了“CPU+FPGA+HKA1223”架构,解决了传统控制方法CPU负载高、软件移植性差的问题,实现了CPU与HKA1223的解耦控制,提高了离散量采集电路的任务可靠性。并基于FPGA设计了HKA1223控制器,通过设计配置寄存器,实现了离散量采集电路的多模态在线可配置,并分时完成了HKA1223的BIT和采集,显著提高了离散量采集电路的通用化水平。该电路灵活性高,可扩展性强,可推广应用于工业领域。