面向微小卫星基于FPGA 的星载总线扩展

2022-11-18 14:01倪淑燕程凌峰陈世淼程乃平
电子设计工程 2022年22期
关键词:时序串口总线

倪淑燕,程凌峰,陈世淼,程乃平

(1.航天工程大学电子与光学工程系,北京 101416;2.航天工程大学 研究生院,北京 101416)

微小卫星具有质量轻、体积小、发射周期短、性能高、成本低等诸多优点,在通信、遥感、导航、军事等各领域得到广泛应用[1],是全球航天发展的热点。随着芯片技术的发展,微小卫星平台电子设备呈现小型化、集成化、智能化的发展趋势。文献[2]通过进行高功能密度星务软件架构设计来提高卫星的集成度;文献[3]将卫星各个模块的硬件进一步集成来提高卫星的集成度。

该文进行了微小卫星综合电子系统研究时,采用SmartFusion2 的M2S050TS 处理器作为星载处理器,该处理器由ARM(Advanced RISC Machine,高级精简指令集计算机)和FPGA(Field Programmable Gate Array,现场可编程门阵列)两部分组成。为提高卫星集成度,通过处理器的FPGA 模块进行星载总线IP 核的设计[4-7],实现星载总线的扩展,不再需要额外增加芯片来实现星载总线架构,减少了硬件的体积和质量,提高了卫星的集成度[8-10]。

1 软件设计背景

星载总线是综合电子系统信息处理和交互的纽带[11],能够完成卫星在轨运行时星载计算机和各分系统的数据交换[12]。CAN 总线具有强抗干扰性、高实时性、高传输速率和低成本的优点[13],从二十一世纪初便被广泛应用在航天领域。文中项目采用高低速结合的总线设计方式,利用CAN 总线连接星载计算机与各部组件,实现低速星务数据传输,对于测控数据,则采用RS422 异步串口实现高速遥测数据传输[14-15]。总线通信架构如图1 所示。

文中设计选择SmartFusion2 系列的M2S050TS-1FGG484 处理器,该处理器是ACTEL 公司第四代工艺的片上系统产品,基于Flash 架构,能够满足工业、军事、航空、通信和医疗领域的高安全性、高可靠性和低功耗的SoC(System on Chip,系统级芯片)需求。实现图1 所示的星载总线通信架构,需要四个CAN 控制器和两个RS422 异步串口,此外还需要两个RS422 异步串口进行设备的调试和地测。由于处理器自带的接口不能满足上述星载总线通信架构需求,文中设计利用SmartFusion2 处理器的FPGA 实现了独立的CAN 控制器和RS422异步串口的扩展。扩展后通信网络硬件架构如图2 所示。

基于以上设计方案,进行了SJA1000 CAN 控制器和RS422 异步串口的扩展,程序在Libero IDE 集成环境中开发,并通过Modelsim 软件进行测试验证。

2 基于FPGA的CAN扩展

2.1 CAN总线扩展方案

综合电子计算机板采用SJA1000 芯片作为CAN总线控制器,并搭配TJA1040 总线驱动芯片,用来扩展三路CAN总线。外扩CAN总线模块的FPGA设计原理如图3所示,包括AHB(Advanced High-performance Bus,高级高性能总线)时序转换模块和SJA1000 时序转换模块。其中,AHB 时序转换模块主要用于将MSS 对外访问的AHB 总线时序转换为Local 总线时序(片选、读写使能、地址数据总线)。SJA1000 时序转换模块主要用于将Local 总线时序转换为SJA1000芯片的读写时序。

2.2 AHB时序转换模块

从功能划分上,SmartFusion2 芯片上的ARM 内核负责CAN 总线数据的发送和解析,而且ARM 对外访问的FIC(Fiber Interface Card,光纤接口卡)接口是AHB Lite 总线,因此AHB 时序转换模块可将AHB Lite 总线时序转换为常用的Local 总线时序,便于模块设计。图4 和图5 为MSS 控制器的FIC 接口写、读操作时序图。

FPGA 采用AHB Lite 和Corememctrl 软核进行AHB 时序转化,其中转换时序逻辑如图6 所示。

2.3 SJA1000时序转换模块

SJA1000 芯片的ALE、CS、RD、WR、AD7-AD0 等控制信号直接连接在FPGA 芯片上,因此SJA1000时序转换模块只有满足读写时序要求,才能完成对SJA1000 芯片的访问。SJA1000 芯片原理如图7所示。

SJA1000 芯片的地址总线和数据总线复用,需要控制ALE 信号,切换地址总线和数据总线,具体的读操作时序和写操作时序分别如图8 和图9所示。

2.4 Modelsim仿真测试1

采用Modelsim 测试软件对AHB 时序转换模块和SJA1000 时序转换模块进行功能仿真,用于验证FPGA 能否输出正确的SJA1000 访问时序。在CAN总线的测试流程中,首先发送数据0x55 和0xAA,然后进行数据的接收。仿真结果表明,AHB时序转换为Local 时序的仿真过程与图4-6 一致,可以证明FPGA 模块成功进行了时序的转换。Local 时序转换为SJA1000 时序的仿真结果与图8 和图9 一致,可以证明FPGA成功进行了时序转换和数据收发。以上仿真结果说明,FPGA扩展的SJA1000模块合理有效。

3 基于FPGA的RS422异步串口扩展

3.1 RS422异步串口扩展方案

外扩串口模块的FPGA 设计原理如图10 所示,该模块包括AHB 时序转换模块和串口时序转换模块。其中,AHB 时序转换模块主要用于将MSS 对外访问的AHB 总线时序转换为Local 总线时序(片选、读写使能、地址数据总线)。串口时序转换模块主要用于将Local 总线时序转换为串口发送缓存和接收的读写时序,并进行串并转换。

扩展RS422 异步串口时采用的AHB 时序转换模块与扩展CAN 总线时一致[17],已经在前文进行了介绍,故此处不再赘述。

3.2 串口时序转换模块

串口时序转换模块内部具有发送缓存的功能,ARM 将发送数据写入到串口缓存后,由FPGA 按照串口协议转换成串行数据后输出[18]。串口时序转换模块内部还具有接收缓存的功能,FPGA 将接收的串行数据按照串口协议转换成字节数据后,保存在接收缓存内,用于ARM 读取。

在串口通信的协议层中,规定的传输单位为一个字符,包括一个起始位、八个数据位、一个奇偶校验位、一个停止位,只有通信双方的数据包格式一致才能正常收发数据[16]。

3.3 Modelsim仿真测试2

采用Modelsim 测试软件对AHB 时序转换模块和串口时序转换模块进行功能仿真,用于验证FPGA能够输出正确的串口收发时序。仿真过程中采用自发自收的工作模式,将AHB 时序转换为Local 时序的仿真结果与图4-6 对比可以证明FPGA 模块成功进行了时序的转换。同时,仿真结果成功进行了数据的收发,表明FPGA 扩展的RS422 异步串口模块合理有效。

4 应用实例

结合某微小卫星综合电子系统研究需求,在文中FPGA 扩展星载总线的基础上进行了星务软件的开发。星务软件以μC/OS-II 操作系统为基础,实现了遥测、遥控、时间管理、设备管理、姿态控制等功能,其中总线通信功能是以上功能运行的基础。目前,该星务软件已经通过搭建半实物卫星系统进行了模飞测试,测试过程中,星上数据交互正常,进一步说明了该设计合理有效,满足设计需求。

5 结束语

文中通过SmartFusion2 芯片的FPGA 模块进行了星载总线的扩展,实现了“两级双冗余CAN+RS422”的星载总线通信架构设计,解决了星载处理器资源无法满足星载总线架构需求的问题。与传统方法采用外扩总线的方式相比,该设计充分利用了SmartFusion2 芯片“ARM+FPGA”的优势,通过FPGA实现了总线的内部扩展,简化了电路设计,减小了星载计算机的体积和质量,提高了微小卫星平台的集成度。后续将通过FPGA 进行其他功能的扩展,如星上数据的压缩处理、可见光图像检测等,这对于微小卫星一体化、小型化、集成化发展具有重要意义。

猜你喜欢
时序串口总线
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
时间触发通信总线监控技术研究
清明
基于GEE平台与Sentinel-NDVI时序数据江汉平原种植模式提取
关于CAN总线的地铁屏蔽门控制思路论述
你不能把整个春天都搬到冬天来
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
基于CAN/LIN总线的LED车灯控制研究
MCS—51单片机中的多串口通讯技术的应用