APP下载

卫星综合电子系统多总线融合接口设计

2020-03-21熊青玉王慧泉金仲和

航天器工程 2020年1期
关键词:通信协议差分总线

熊青玉 王慧泉 金仲和

(浙江大学微小卫星研究中心,杭州 310027)

作为在轨服务技术的重要组成部分,在轨模块更换技术能够延长和增加卫星的使用寿命、降低卫星使用成本并增强卫星对需求变化及新技术应用的快速响应能力,可以增加空间系统的灵活性和卫星应用的适应性[1]。而在轨升级则是在轨模块更换的一大重要应用场景[2],在轨升级涉及到卫星功能升级或更换,此时替换的模块通信需求则会所有不同,星上总线可能面临着同时挂接多种通信协议的模块的情景。可更换的模块的种类繁多,且其电信号接口种类多样[3],如串行外设接口(SPI)、集成电路总线(I2C)、1553B总线等,为使卫星能更大限度兼容已有的成熟模块,适应更多种可更换模块,需要设计一种融合总线的通用接口,可以在卫星更换了部分模块后,卫星的通信总线能兼容不同模块的不同接口通信协议,使得卫星的综合电子系统能够与不同接口协议的模块进行通信。

融合总线的通用接口技术一般分为两类,一种是原本硬件电路就通用的几种通信协议,经过软件上的兼容设计,使得接口对外能兼容几种不同的通信协议[4],或者硬件不进行通用设计,对接口进行转接设计,然后进行软件层面兼容设计[5-6],但是航天常用总线包括SPI、I2C、1553B总线、CAN总线等,并不都是硬件上完全通用的接口协议,所以此类方法并不适用;另一种是硬件上设计兼容的电路,软件上也进行兼容设计,使得接口对外能兼容几种硬件原本不兼容的通信协议,如南航的李渊提出的基于现场可编程门阵列(FPGA)部分动态可重构功能提出的通用总线接口,利用FPGA部分重构后更改接口此时的通信协议,使得接口在不同时刻能够实现不同的通信协议[7],但是FPGA的重构时间根据重构面积的大小从几十毫秒到几百毫秒不等,如果综合电子系统采用FPGA重构的方式与不同接口协议的模块进行通信,每次切换协议都需要等待一次不短的重构时间,相对通信时间一般在微秒级别而言,几十到几百毫秒的重构时间使得接口在频繁切换接口协议时的通信效率变得很低。

综上所述,本文设计的融合总线的通用接口,保留了软硬件均兼容的设计,但是改变了切换协议的方式,大幅减少了协议切换的时间,提高了通信的效率。同时,传统的通用接口当接口的协议重构时,是通信的两边同时重构,不存在不同通信协议的信号之间互相干扰的情况,而本设计需要考虑不同通信协议的信号之间互相干扰的问题,所以还制定了应对不同协议模块挂接时可能带来的信号干扰的解决方案并且基于卫星综合电子系统的需求进行了总线工作方式的设计。

1 通用接口方案设计

为达到兼容不同总线协议,能同时挂接不同总线节点并与之通信的目的,融合总线通用接口包括3个层次的设计:首先,在硬件上能兼容不同的总线,且从一种总线通信切换至另一种总线通信所需时间相对于通信时间而言占比很小,可以一定程度上达到实时切换通信协议;其次,需要实现节点抗干扰技术,即当一种总线正在通信时,挂接在总线上的其他种类的总线节点不会被误触发通信进而改变总线电平,造成信号干扰甚至通信错误;最后,为了使融合总线能够在挂接多种协议的节点时正确高效的进行通信行为,需要在原有总线的工作模式基础上结合卫星应用背景,进行二次开发,确保每个节点能够正确高效的进行数据传输。

1.1 原理介绍

综合电子系统采用数字信号处理器(DSP)+FPGA的架构设计,本文在此基础上进行通用接口设计,由于FPGA承担的功能包括接口扩展,所以本文提出的通用接口的实现主要依靠于FPGA模块及接口电路模块。FPGA模块的主要功能是在芯片内实现各种总线协议,转换数据格式,连接主处理器与外设的通信链路,实现数据交换功能,接口电路模块实现底层驱动电路。

FPGA中与本设计相关的模块包括:数据交换模块、控制信息模块、数据存储模块、接口协议模块和输出数据模块。通过数据交换模块搭建FPGA与DSP通信的链路,通信的信息包括要发送的数据信息和相关的控制信息,分别存储于数据存储模块和控制信息模块。而接口协议模块则是根据控制信息将数据信息以一定的格式发送给输出数据模块,输出数据模块负责控制外部电路向接口发送信息,如图1所示。

注:EMIF(A)为外部存储器接口(A组)。

1.2 协议类型实时切换

本设计将整个通信过程分割为主处理器DSP→FPGA内数据协议转换→驱动电路→选择电路→接口→外设的过程,在主处理器发送的数据中加入选择的总线通信协议信息,FPGA就可以选择到对应的总线通信协议将数据发送至接口与外设进行数据交互,如图2所示。

主处理器通过控制信息对整个通信链路进行控制,包括通信协议控制信息、通信过程控制信息和接口控制信息。也可以通过修改控制信息在线切换通信协议或接口等,直接在上层进行控制。主处理器发送给FPGA的数据还包括要发送的数据信息,要发送的数据信息则会按照控制信息和协议要求被发送到对应接口的总线上。

图2 协议切换Fig.2 Switch of communication protocols

FPGA会根据地址信息将对应的数据按照对应的总线协议进行数据转换,并根据选择信息将数据发送到被选择的接口上。

比如现在想在接口输出CAN协议的数据,那么主处理器在控制信息中修改相应的数据,控制信息写入后FPGA将会解析控制信息,而后主处理器发送的数据便会以CAN协议的形式发送到接口上。此段数据传输完毕后,可以实时通过修改控制信息改变输出数据的协议类型而无需等待重构时间,也不受限于预先设置的接口配置信息。

驱动电路是为需要驱动的总线而设计,而无需驱动的总线则可以直接发送到选择电路上。由于不同总线的电平波动范围有区别,所以选择电路设计为可通过电压在±12 V,以适应不同总线的电平要求。选择电路的切换时间控制在5 μs以内,5 μs的切换时间相对数据通信的时间一般在100 μs以上,可以达到实时切换总线协议类型的目的。

1.3 节点隔离抗信号干扰技术

对于硬件电路上的电信号隔离,在单一总线挂接多个节点进行通信时,为保证挂接的节点与总线之间的隔离,增加输入阻抗,会采用一定的隔离技术。如I2C总线,采用场效应管(MOS)+二极管的方式,隔离输出节点的输出直接对总线信号产生的影响[8]。其他多节点总线通信方式的器件也有类似的隔离技术[9]。

但是多种通信协议的节点连接到同一总线上,除了硬件上的隔离技术以外,还需要考虑不同总线通信之间信号干扰的问题,不同的总线通信格式不同,某一节点可能会收到不是自身通信协议下的信号而产生误判,进入通信状态,为保证融合总线的通信可靠性,融合总线需要定义一些特别的约束来确保每个节点能够准确判断总线上通过的信号。

1.3.1 硬件电路层面抗信号干扰

首先在硬件电路层面通过约束不同通信协议的信号线的共用方式来减少信号干扰,同为差分信号,1553B和CAN总线为了避免通信层面的干扰,可以按照如图3所示的方式分配信号线,H1和L1是一对差分信号线,H2和L2是一对差分信号线,隔离1553B的通信链路和CAN的通信链路,CAN总线的一对差分线H1和L1通信时,1553B总线对应的是H1和H2,是两根接收高电平信号的线,所以就不会接收到任何信息,此种方式可以隔离CAN总线和1553B总线互相之间的干扰。差分通信线由于其差分机制,很难在I2C或者SPI通信时收到误通信差分信号,所以在物理层不需要考虑非差分信号会误触发差分通信,即便偶有一位差分信号产生,也不可能形成完整的通信数据,而两种差分通信的协议互相之间已经完全隔离了干扰的可能,故而CAN总线和1553B总线的通信信号已经达到了抗干扰的目的。

I2C总线通信和SPI总线通信同为TTL电平信号,且都有时钟线和数据线,串行通信的依据是时钟线,所以为了减少误通信信号的产生,将两种协议的时钟信号线错开,但是不能完全保证信号干扰已经消除,所以需要进一步的设计。

注:H1、H2为高电平1、高电平2,L1、L2为低电平1、低电平2,SDL1、SDL2为时钟线1、时钟线2,SDA1、SDA2为数据线1、数据线2,CS为片选线,CLK为时钟线,MISO为主入从出,MOSI为主出从入。

图3 四线制接口

Fig.3 Four-wire interface

1.3.2 通信协议层面抗信号干扰

为进一步保证I2C节点和SPI节点准确判断总线上通过的信号,在通信协议层面也要有一定的约束。I2C总线协议规范中,被定义为起始S和停止P条件的情况如图4所示,SCL 线是高电平时SDA线从高电平向低电平切换这个情况表示起始条件,SCL 是高电平时SDA 线由低电平向高电平切换表示停止条件。

图4 起始条件和停止条件Fig.4 Start and stop condition

起始条件之后进行数据传输,传输的每一个字节都带有响应位,响应位的时钟脉冲期间,接收器必须将SDA线拉低。起始条件和响应位双重约束,进一步隔离了其他总线通信信号对I2C总线的信号干扰。且接收器发送信息之前必须接收到正确的地址信息和读写控制信息,所以被其他通信信号误触发的概率很小。

SPI总线通信由于是每一个节点都需要一根片选信号线,所以四线制接口只能接一个SPI部件,但是由于CS线在其他协议通信时可能会被拉低,而同时时钟线上的电平也在不断变化时,SPI节点就有可能在其他总线通信时收到错误数据。

为进一步隔离I2C节点和SPI节点互相之间的干扰,也为了防止差分信号通信时对I2C节点和SPI节点产生干扰,融合总线会对通信协议进行二次开发,添加更多的约束来抗信号干扰。融合总线上所有的通信协议在通信过程会加入识别码和节点响应,相当于进行一次配对。识别码和节点响应的信息分别为一个字节,每一个节点均会被分配一个识别码,识别码作为通信的最开始的一组信息,节点接收到正确的识别码之后,会发送节点响应信息,双方配对成功,该节点则会进入通信激活状态,之后进行有效数据通信。节点未接收到正确的识别码信息时,不会对总线的电平有操作,防止干扰通信过程。通过对协议的二次开发, I2C总线节点和SPI总线节点接收到误通信信号恰好和节点自身识别码相同的概率大约趋近于零,已经从概率上将此两类总线达到了抗干扰的目的。但是这也要求了挂接在融合总线上的I2C的节点和SPI的节点,不可以是不可编程的节点,要求节点可以对协议进行二次开发,在启动通信前加入识别码信息。

2 总线工作模式

由于融合总线的特殊性,总线竞争模式难以实现,多主机通信将难以控制,故而采用主从模式,但是为了能及时接受从节点主动发送的数据,将采用节点分类和动态调整总线的方式。

2.1 节点分类

根据不同节点的通信需求,构建一个合适的通信方式,使得星上通信能够正常进行,首先在第一层次上将总线上的工作状态分为查询状态、通信状态、空闲状态,主从模式方便了总线状态的管理和确认,查询状态即主机对各个从节点发送查询信息,获得从节点反馈,记录从节点能否通信的状态;通信状态是主机与某个或某些节点进行数据交换;空闲状态是既没有进行查询也没有进行通信时的状态。其次在第二层次上,由于从节点通信需求各异,在通信状态时需要分别考虑,将节点分为完全式从节点和不完全式从节点,需要主动发送数据的节点为不完全式从节点,如遥控,不需要主动发送数据的节点为完全式从节点,只被动接受主机的控制,发送数据也是在主机问询之后。根据卫星综合电子系统的通信需求[10],对节点进行了整理(见表1)。

表1 星上通信节点

续 表

根据表1中节点通信需求,制定总线工作方式,首先按照遥测数据2 s发送一次作为周期,周期开始总线进入查询状态,并在查询状态结束后进入每0.2 s访问遥控,执行程控的循环中,2 s周期结束前进行星上状态信息采集,向遥测节点发送遥测数据包,更新传回地面的遥测数据,如图5所示。此方式可以应对绝大部分星上通信需求,但是有一个限制,如果某节点需要进行不能间断且超过0.2 s的通信,如果通信被打断则会数据丢失甚至导致通信无效,如某些无缓存功能但数据量庞大的相机。

图5 总线工作周期Fig.5 Working period of the bus

查询时间估计方式如下:SPI节点只能有一个,通信速率从100 kbit/s到最高30 Mbit/s,查询时间最多0.5 ms;I2C节点每两根线最多驱动8个节点,所以四线制接口一共最多16个I2C节点,通信速率为100~400 kbit/s,全部查询需要的时间最多4 ms;1553B总线协议规定最多驱动31个节点,并且需要一组差分线通信和一组差分线备份,且有广播模式,通信速率1 Mbit/s到4 Mbit/s,查询时间低于1 ms,CAN总线协议规定最多驱动节点数能达110个,也是一组差分线通信和一组差分线备份,通信速率125~500 Mbit/s,同样具有广播模式,所以查询时间也低于1 ms。所以融合总线查询全部的节点所需的最大查询时间小于7 ms。

2.2 动态调整总线

为了应对星上可能出现的某节点需要进行不能间断且超过0.2 s的通信的需求,可以通过将此通信过程放在与0.2 s定时器中断同级的中断函数中进行,则主机每0.2 s访问一次遥控的行为则不会发生,优先进行不可被打断的通信,但是为了保证遥测数据能够按时回传,2 s定时器中断要高于0.2 s定时器中断,所以总线并不能支持进行超过2 s的不可被打断通信,此类节点需专口专用,不可挂接在总线上,中断表如图6所示。

图6 中断表

3 试验结果与分析

本试验采用的试验平台如图7和图8所示,大板上包括控制主芯片,小板为设计的融合接口电路,连线通过面包板转接连接SPI模块和I2C模块。

试验设计首先验证通信时从一种协议切换到另一种协议所需时间小于5 μs,相对于通信时间而言可以做到忽略不计,然后验证从不同的模块上收到了正确的数据。

图7 试验平台Fig.7 Test platform

图8 连线图Fig.8 Connection diagram

由于CAN总线和1553B总线的差分通信机制,隔离得更为彻底,所以验证系统时选择I2C模块和SPI模块进行测试,如图8所示总线上同时连接了I2C模块和SPI模块,第一次试验时先后读I2C模块的数据和SPI模块的数据,并计算I2C模块通信结束之后,总线切换为SPI通信之前,到SPI通信结束时的时间。第二次试验只进行SPI通信,计算SPI通信所需的时间。两次计算的时间差则为加入了协议切换后多出来的时间。

从图9得知在加入切换协议这一步时,通信时间增加了2 μs,协议切换的时间达到了设计要求小于5 μs。

然后验证收到的数据是否是正确的数据,在通信过程中通过示波器的探头点到模块的数据输出管脚,捕捉到通信的波形来进行判断,如图10是I2C和SPI通信的电压波形图,前八位分别是0x18和0x7f,通信数据正确。

图9 试验结果Fig.9 Testing result

图10 I2C和SPI的输出时钟和数据电压波形图Fig.10 Voltage of output clock as well as data of I2C and SPI

4 结束语

本文设计的融合总线通用接口囊括了I2C总线、SPI总线、1553B总线和CAN总线等4种协议的总线,总线通信速率根据节点的协议不同最高可达30 Mbit/s(SPI协议的理论值),通过在FPGA平台开发和硬件电路的设计,实现了在融合总线接口上挂接不同的通信协议模块并成功通信,且能够达到实时切换。挂接多种协议的模块时不同通信协议的模块之间通信也没有被干扰,能够正确的收到通信数据。另外根据综合电子系统作为主机的通信需求和星上各个从节点的通信需求,规定了总线的工作方式,节点通信最高支持2 s以内的不间断通信。本设计旨在提高卫星综合电子系统的兼容性,当发生在轨模块更换行为时,拥有融合总线通用接口的卫星可以适用于更多种类的可更换模块,无论是升级功能还是重构功能均能有更好的包容性,但是融合总线不适合挂接需要长时间不间断占用通信口的节点和设备,该类节点适合专口专用,接入总线反而不便。本文作为验证系统故设计较为简洁,但是可扩展性强,通信的自由度高。此融合总线通用接口可为卫星在轨升级提供良好的基础。

猜你喜欢

通信协议差分总线
一类分数阶q-差分方程正解的存在性与不存在性(英文)
关于CAN总线的地铁屏蔽门控制思路论述
一个求非线性差分方程所有多项式解的算法(英)
一类caputo分数阶差分方程依赖于参数的正解存在和不存在性
基于差分隐私的数据匿名化隐私保护方法
奖状训练器飞行管理系统研究
Q&A热线
基于R8C的汽车OBD通用故障诊断仪设计
PCI9030及其PCI总线接口电路设计
SIP协议系统模型的形式化研究