缩略图

基于FMQL 平台的设计

作者

袁邦林

贵州航天控制技术有限公司 贵州 贵阳 550009

   

1 引言

安装在载体内部的制导控制装置是一个体积较小且高度集成化的设备,制导控制装置的主要功能包括:控制载体程序系统运行,测量载体点火信号、测量载体坐标轴上的角运动和线运动、以及通过 RS485 和 RS422 和其他部件进行通信等。不同的 ARM 内在不同时间段会运行不同的程序,而且不同和 ARM 核之间存在频繁的大量数据交换,此时需要一种高效、可靠、安全、需要软硬件资源少的通信方式来解决多 ARM 核核间通信的问题。因为制导控制装置体积空间较少,而且存在与载体的多个通信接口,如果用传统的如 RS422、RS232、RS485、SPI 等方式进行数据交换,尽管这些传统的通信接口具有很高的可靠性,但是会增加外设硬件资源,这对本身体积受限的制导控制装置带来一定的困难,并且这种通信效率不够高效,数据响应不够及时。

本文提出一种基于 AXI 总线的共享内存方式来实现多 ARM 核核间通信方式,解决 FMQL 平台多 ARM 核的核间通信问题,这种通信方式高效便捷。制导控制装置的核间通讯是通过读写 PL 的 BRAM 区实现的,BRAM 为 ARM 核共享的一段地址区,PS 与 PL 间的数据交互采用 AXI 总线实现。为避免双方同时读写 BRAM,引起读写冲突,采用核 1 中断,核 0 查询的方式来实现核间数据交换功能。这种通信方式直接利用芯片内部集成的硬件资源避免了额外的通信外设接口,节约体积空间的同时提高了通信的效率,该方案已在使用 FMQL 平台的多个型号的惯测组合、舵系统中得到应用 [4,5],具有十分重要的工程应用价值。

2 系统概述

本文所述的制导控制装置开发运行平台来源使用上海复旦微电子的全可编程 PSOC 芯片 FMQL20S400,该芯片集成了基于具有丰富特点的四核高性能处理器的处理系统(Processing System,PS)和可编程逻辑(Programmable Logic,PL),。

制导控制装置核 0 软件主要功能为芯片资源的初始化、加载 PL 位流,控制并启动其他核的程序运行、与地面设备的通信、采集开关量、与其他核通信交换数据等。制导控制装置核 1 软件主要负责对硬件资源、软件变量以及中断进行初始化设置,通过 SPI 与 MEMS 加速度计、MEMS 陀螺仪进行通信,完成惯性单元的自检,完成对加速度通道数据、角速度通道数据以及温度数据的读取和处理,并根据当前温度值对其中的三路角增量、三路速度增量、三路角速度以及三路加速度数据完成误差补偿运算功能。

核 0 与核 1 通过使用 AXI 总线与 PL 之间的通信来实现读写共享内存BRAM 区来实现核间通信,为避免双方同时读写 BRAM,引起读写冲突,采用核 1 中断,核 0 查询的方式来实现核间数据交换功能。本文主要实现的是核 0 与核 1 之间的核间通信,该实现方案适用于核 0 与其他核之间的通信。该FMQL 平台的 PSOC 芯片默认启动为核 0,芯片上电后在核 0 执行 boot 程序初始化芯片软硬件资源并加载PL 位流,然后通过核0 再去启动其他ARM 核程序。核 0 一般作为通信的主机方,在核 0 完成中断配置和核间通信配置后,向核 1发送数据,并等待核 1 回传数据,完成一次通信。核 1 作为从机通过中断响应来接收核0 的数据,并通过置位通信状态位的方式告知核0 取数。

3 核间通信架构概述

与 PS 通信通过 AXI 总线 GP0、GP1 口完成 PL 与 PS 数据交互。PL 时钟由PS 提供,频率为 100MHZ。PL 复位信号由 PS 提供。

PL 与PS 通信时序,写时序如下:

WE[3:0] 为 4’hF 且 EN 信号为 1’b1 时,PS 对 PL 进行写操作,数据、地址、WE、EN 在同一时钟上升沿由PS 给出,其中时钟为 100MHz

WE[3:0] 为 4’h0 且 EN 信 号 为 1’b1 时,PS 对 PL 进 行 读 操 作, 地 址、WE、EN 在同一时钟上升沿由PS 给出,数据由PL 延时2 个时钟放到数据线上,其中时钟为100MHz(注:GP1 口的有效地址为29 位,AXI 地址原始位宽为32 位,在 BD 文件中选择地址区间后,经 AXI 相关 IP 后,有效位宽会变小;同理 GP0口有效地址位宽为30 位)。

4 核间通信流程概述

核间通信主要涉及四个动作流程:核 0 发送数据,核 0 接收数据,核 1 发送数据,核1 接收数据,具体操作步骤如下:

1、核 0 读取数据:

将数据和数据长度写到BRAM 区;

向核 0 通信状态位写 0x55AA 启动发送,写此寄存器后 PL 会给核 1 一个中断信号;

2、核 0 读取数据:

查询核1 通信状态位,0x5A5A 表示有数到来;

查询到后清除该状态;

到BRAM 区按数据长度去取数。

3、核 1 读取数据:

触发核间中断;

进入核间中断;

到BRAM 区读取数据。

4、核 1 发送数据:

将要发送的数据写入BRAM 区;

置位寄存器标志,供核0 查询;

以核 0 向核发送数据,核 1 接收数据并回应核 0,核 0 接收回应数据情况进行详细说明,

5 结束

本文提出的基于 AXI 总线的共享内存方式来实现多 ARM 核核间通信方式,解决 FMQL 平台多 ARM 核的核间通信问题,这种通信方式高效便捷。制导控制装置的核间通讯是通过读写 PL 的 BRAM 区实现的,BRAM 为 ΠARM 核共享的一段地址区,PS 与 PL 间的数据交互采用 AXI 总线实现。为避免双方同时读写BRAM,引起读写冲突,采用核 1 中断,核 0 查询的方式来实现核间数据交换功能。这种通信方式直接利用芯片内部集成的硬件资源避免了额外的通信外设接口,节约体积空间的同时提高了通信的效率,该方案已在使用 FMQL 平台的多个型号中得到应用,具有十分重要的工程应用价值。

参考文献

[1] 《Verilog 数字系统设计教程》[M]. 夏宇闻 . 北京:北京航天航空大学出版社.

[2] FPGA 设计实战演练(逻辑篇) 吴厚航 清华大学出版社 .

[3] 基于 FPGA 的 SPI 接口 Flash 控制器设计及其在存储配置数据中的应用[J].赵庆平,李素文,杜伟宁,等.吉林大学学报 ( 理学版 ) ,2014,52(5) :1022 - 1026.

作者简介:袁邦林(198610-),男,汉,四川省德阳人,大学本科,工程师,研究方向:电路软件设计,系统设计。