一种基于SPI接口实现通信节点健康管理电路的方法与研究

2018-06-06 10:14雷宇宏李键刘军伟
电脑知识与技术 2018年7期
关键词:寄存器移位时钟

雷宇宏 李键 刘军伟

摘要:随着机载网络性能的不断提高、处理数据量的不断加大,如何有效地提高机载网络的安全性,保障机载网络产品在执行任务过程中可以“健康”有效的运行变得尤为重要。本文在分析健康管理(PHM)理念的基础上,对特定小系统应用环境下基于SPI接口实现健康管理功能进行了研究,并给出了解决办法。

关键词: SPI串行通信接口;PHM健康管理

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)07-0216-02

预测与健康管理(Prognostics and Health Management,PHM)技术是一项根据系统历史状态和环境因素,评估当前健康状态、确定未来故障发生时间、计算有效寿命,以降低系统故障风险、保证可靠性的通用技术[1]。PHM系统一般需要完成故障检测、故障鉴定与隔离、故障预测、健康评估和决策建议等功能[2]。

本文论述的健康管理信息主要是模块主要器件的温度、电压以及当前工作状态等信息,利用SPI接口将这些信息上报给主机,为系统评估当前健康状态,并对故障的检测、鉴定与隔离提供一定的信息支撑。SPI接口是一种常用的标准通信接口,它采用一个串行、同步、全双工的通信方式来进行信号传输,SPI接口具有传输效率较高、配置灵活、协议简单等优点。

1 设计思路

考虑到机载网络系统数据处理量的不断增大,一些机载系统中采取将通信信息与管理信息分开进行传输的方法,图1为某系统总线框图,该系统中的通信信息通过光纤进行传输,管理信息通过CAN总线进行传输。通信信息与管理信息分开传输,一方面保证了通信信息的传输及处理效率,另一方面保证了管理信息传输的独立性、可靠性。

为了保证电路的统一性,该系统通过统一的单片机电路来实现CAN总线接口。基于以上背景,以下从SPI串行通信接口出发,阐述如何使用模块自带的内置ADC模数转换器将温度及电压等部分健康管理信息通过SPI接口上报至单片机,最终通过CAN主干网上报至主机,具体硬件架构实现框图详见图2。

主要的功能架构包括以下几个方面:ADC模数转换器的参考电源;ADC模数转换器;ADC模数转换器对应的寄存器;SPI接口控制逻辑;单片机功能电路。

主要工作流程如下:

信息传输时FPGA作为从设备,单片机作为主设备,通过MAX6043电源芯片提供从设备模数转换器的参考电源,从设备将温度及电压等信息存入内部对应的寄存器当中,从设备向主设备发送数据接收请求IRQ信号,主设备接收到从设备发送的数据接收请求IRQ信号后通过SPI接口从FPGA对应的ADC模数转换器寄存器当中将温度及电压等健康信息读出,并通过CAN总线将信息传送给外围主机设备,外围主机设备通过编码及终端解码方式信息进行监控,从而为系统的故障诊断和健康监控提供一定的信息支撑。

2 系统结构与基本硬件配置

2.1 ADC模数转换器

ADC模数转换器是一种通过一定的电路把模拟量转换成数字量的电路,目前使用的FPGA内部基本都集成了ADC模数转换器。外围主设备访问ADC对应寄存器一般可以采用以下两种方式:

? 逻辑读取ADC状态寄存器,通过串行通信接口上报;

? 軟件读取ADC状态寄存器,通过PCIe、RapidIO等主机接口上报。

通过逻辑读取ADC状态寄存器上报信息相比较通过软件读取ADC状态寄存器上报信息从实现上来说要复杂些,但软件读取时会占用主机的资源开销,尤其在有告警机制要求的应用下显得尤为突出,软件需要不停的通过中断读取寄存器信息,同时还要不停地把寄存器读取的信息与告警极限值进行对比,整个重复过程会占用较大的主机开销。加之实际应用时要求利用单片机通过CAN总线将信息传送给外围主机设备,故设计时选用逻辑读取ADC状态寄存器,再通过串行通信接口上报。

2.2 串行通信接口选用

选用的FREECALE单片机同时支持I2C总线接口及SPI总线接口,通过比较两者的优缺点,同时结合实际使用环境,设计时选用了SPI总线接口作为单片机与FPGA间的串行通信接口。

2.2.1 SPI接口基本概述

SPI是由Motorola公司开发的用来在微控制器和芯片之间实现数据交换的一种低成本易使用的串行接口,与标准的串行接口不同,SPI接口是一个同步协议的全双工接口,具有传输效率较高、配置灵活、协议简单等优点,其构成包括一个主控设备和一个或多个从属设备。

SPI接口在协议软件的控制下,只需4条信号线就可以完成数据的发送和接收。这4条信号线分别是:

? MISO(Master In-Slave Out):主设备数据输入,从设备数据输出。

? MOSI(Master Out-Slave In):主设备数据输出,从设备数据输入。

? SCLK:串行移位时钟,由主设备产生。

? SS/CSB:从设备使能(片选信号),由主设备控制。

其基本工作时序为:当片选信号有效时,SPI主从设备在每个SCLK的时钟边沿通过MOSI或MISO端口发送或接收数据。SPI总线在与外围设备进行数据交换时,可根据外围设备的要求,配置时钟SCK极性和相位,从而产生不同的数据格式。当时钟相位cpha=0时,数据在时钟脉冲的前沿被采样,串行数据的移位操作由时钟的前沿(第一个跳变沿)触发;当时钟相位cpha=1时,数据在时钟的后沿(第二个跳变沿)被采样,串行数据的移位操作由时钟的后沿触发。当时钟的极性cpol=0时,时钟在空闲状态下为低电平,当时钟的极性cpol=1时,时钟在空闲状态下为高电平。根据时钟极性cpol和时钟相位cpha的不同选择可知SPI总线有如图3所示的四种不同的工作方式:SPI0,此时cpol=0,cpha=0,即时钟复位为低电平,在时钟的第一个边沿开始采样数据;SPI1,此时cpol=0,cpha=1,即时钟复位为低电平,在时钟的第二个边沿开始采样数据;SPI2,此时cpol=1,cpha=0,即时钟复位为高电平,在时钟的第一个边沿开始采样数据;SPI3,此时cpol=1,cpha=1,即时钟复位为高电平,在时钟的第二个边沿开始采样数据。

工作中,SPI主設备是数据传输的主控方,数据使用SCLK信号在主、从设备间以全双工方式传输。图4给出了典型点对点的SPI接口连接方式。主设备和从设备都有一个串行移位寄存器,传输的数据为8位,在主设备产生的从设备使能信号和移位脉冲下,按位传输,高位在前低位在后,在SCLK的下降沿数据改变,同时一位数据被存入移位寄存器当中,具体如图5所示。

3 实现方式

设计时采用SPI2的工作方式,具体的通信时序如图6所示:

本地通信时,单片机与FPGA之间应遵循以下通信协议:

? 单片机配置为SPI主设备,FPGA配置为SPI从设备,SCLK空闲时为高电平;

? SPI从设备向SPI主设备发送数据时,SPI从设备应先向SPI主设备发送请求信号(IRQ中断信号),用于触发SPI主设备启动数据接收;

? 启动SPI控制逻辑,SPI主设备输出SCLK时钟至SPI从设备,SPI主设备在下降沿开始采样,SPI从设备先将发送的数据从发送缓冲区储存至移位寄存器当中,接下来SPI从设备再将移位寄存器中的数据发送至SPI主设备的移位寄存器当中,并搬至SPI主设备输入缓冲器中,具体如图7所示。

? SPI主设备通过CAN总线对读取到的信息进行上报。

在将健康信息上报时,通过特定的数据报文格式进行通信,报文格式定义参见表1。如表所示,传输信息的含义如电压、温度等写在报文编码字段中,而具体的数据通过进制转换写在载荷数据中传输。

该技术已经在某通信模块上实现,通过SPI接口将数据发送到主机后,由主机调用并显示出的结果如下图所示。

4 结束语

鉴于机载网络产品对温度、电压等健康状态信息的需求,本文提出了一种基于SPI接口实现通信节点主要器件的温度以及电压等信息的健康管理电路的设计方法,为机载产品的健康监控提供了一定的信息支撑。实际应用和测试结果表明:该设计简单、实用,具有较强的扩展性,并已在多种模块设计中进行了推广,其在满足用户基本需求的同时也能够进一步提高机载产品健康状态监控能力,提高机载产品在使用中的安全性,具有一定的实际使用价值。以上设计是基于自带ADC模数转换器来实现通信节点健康管理电路的设计方法,有其实际使用价值的同时也具有一定的局限性,如何在未集成ADC模数转换器的电路中搭建ADC模数转换器将作为以后的研究点。

参考文献:

[1] Pecht M G.Prognostics and health management of electronics [M].New York:Wiley-Interscience,2008

[2] Malin J T, Oliver P J.Making technology ready:Integrated systems heath management[R].Washington D.C.:NASA,2007

猜你喜欢
寄存器移位时钟
别样的“时钟”
古代的时钟
Lite寄存器模型的设计与实现
再生核移位勒让德基函数法求解分数阶微分方程
大型总段船坞建造、移位、定位工艺技术
Σ(X)上权移位算子的不变分布混沌性
分簇结构向量寄存器分配策略研究*
时钟会开“花”
多指离断手指移位再植拇指25例
高速数模转换器AD9779/AD9788的应用