当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]设计开发“导弹仿真器嵌入式组件”是成功完成某型产品设计定型的一项核心环节。文章以介绍系统的设计需求为出发点,接合软硬件开发过程中遇到的难点问题,有针对性的总结了在建立嵌入式系统硬件框架、ARINC429通讯接口设计、FPGA逻辑设计、以及嵌入式软件开发与实时性优化等过程中的一些经验和技术途径。特别是在设计系统中断服务程序时,创造性的提出了在定点DSP环境下依托硬件平台实现高效数值运算的若干方法,对于满足系统实时性处理要求等方面具有一定的应用价值。

0 引 言

在某新型机载武器系统的研制过程中,作为确保战备部队尽快掌握新装备形成战斗力的关键因素,需要设计一种能达到测试训练目的的导弹仿真器。而该系统设计的核心任务是开发一套能够模拟产生与弹载飞行控制组件进行同步ARINC-429(HB6096-86)信息交换、发送遥测数据、模拟产生时序逻辑控制信号、设置故障代码并能进行故障模式处理等一系列对产品进行测试训练工作的嵌入式组件。

1 系统框架设计

由于该组件为典型的弹载嵌入式系统,使用空间有限、环境条件苛刻,既要求系统运行稳定可靠,又要求具有较强的数据运算能力。综合考虑设计需求,决定采用“DSP+可编程逻辑器件+429通讯接口+信号匹配及调理+故障模拟装置”作为系统的硬件总体框架。限于篇幅,本文只就DSP扩展电路、429通讯接口以及FPGA的逻辑功能加以介绍。系统硬件原理框图如图1所示。

图1 系统硬件原理框图

1.1 DSP及扩展电路设计

选用TI公司98年推出的军品级SMJ320F240数字信号处理器[1],在高效软件算法的配合下完全可以承担嵌入式组件控制处理核心的任务。

SMJ320F240扩展电路包括时钟电路、复位电路、数据存储器扩展电路。SMJ320F240DSP的片内RAM为544字节,为满足系统要求,在计算机板上外扩了32K的DRAM、DRAM采用cycrsj公司的cy7c199-25DMB,容量为32K、8位数据,读出时间为25ns,将两片32K、8位数据存储器拼为32K、16位数据存储器通过72LS00译码电路,将32K16位数据存储器地址空间定为高32K,即8000~FFFF。

1.2 ARINC-429通讯接口设计

就一般的429通讯接口的设计方法而言,通常采用双口RAM作为传输通道的数据缓冲器。但这种设计方法并不适用于本系统。因为上述设计方法只考虑了数据成批的实时传输,即429传输每帧数据均为20×32bit,一般的双口RAM 缓冲区都很大,上下半区可以分别存放很多帧数据并成批的读取,无法实时对每一帧数据进行处理,不符合交换信息协议对每帧数据实时处理这一要求。

针对系统的设计需求,采用新的设计思路,组建以F240、FPGA、DEI1016[2]为构架的智能通讯接口模块。FPGA选用Altera公司的EPF10K20RC208器件,利用VHDL编写逻辑模块来开辟适当缓冲区为数据帧提供实时传送的平台,数据传输操作靠FPGA逻辑程序在后台完成数据的发送接收,CPU则在前台完成数据处理[3]。

数据通讯模块的控制逻辑以F240提供的I/O操作信号IS和读写信号RD、WR以及地址A2、A1为输入来为DEI1016产生操作信号。控制逻辑和F240同时监视DEI1016的RX1RDY、RX2RDY、TX429RDY等3个状态信号以供软件查询和由控制逻辑产生INT中断请求。

1.3 FPGA逻辑设计

在确定了依靠FPGA大规模可编程逻辑器件作为F240与DEI1016实时通讯的传输环节后,将FPGA逻辑程序划分为5部分进行设计:CPU接口模块、429芯片接口模块、429数据发送缓冲区模块、429数据接口缓冲区模块、32位精确定时计数器模块。逻辑框图如图2所示。

a) CPU接口模块:充当FPGA内部各模块与CPU(SMJ320F240)总线之间的桥梁。CPU把数据总线,地址总线,控制总线挂在CPU接口模块上,CPU接口模块通过地址译码分别选通FPGA内不同的模块与CPU通讯。

b) 429芯片接口模块:主要负责与429芯片DEI1016通讯,DEI1016的数据总线、控制总线连接到这个模块上,该模块根据不同的操作控制DEI1016的控制总线或者响应DEI1016的控制信号,同时通过并行数据总线发送(接收)DEI1016的数据。

c) 429数据发送缓冲区模块:负责接收CPU传过来的待发送的数据和发送启动命令并把这些数据传给429芯片接口模块和启动429芯片接口模块的发送时序。该缓冲区能容纳20个32位数据。

d) 429数据接收缓冲区模块:负责响应429芯片接口模块的接收数据中断信号并把接收到的数据存在内部RAM中,CPU可以通过CPU接口模块查询429数据接收缓冲区已接收的数据个数并且可以随时读取缓冲区中的数据。该缓冲区能容纳20个32位数。
图2 FPGA逻辑设计框图

由此看出,发送429数据几乎是不占机时,将数据放入缓冲区即可。在接收429数据时,该过程完全由逻辑程序在后台运行,不占用CPU的机时,为前后台不同任务的并行操作提供了条件。

2 时序软件设计

2.1 运行环境

在仿真调试阶段软件运行在CCS2000集成开发环境中,使用WinTech仿真器通过JTAG仿真接口在线仿真调试,操作系统为WinXP。在烧录至FlashEEPROM后,软件运行于F240片上系统。

2.2 结构及详细设计

时序软件是嵌入式组件乃至整个导弹仿真器的控制核心,完成对全弹逻辑时序的控制以及对故障的响应。软件工作流程以时序控制为主线实时调度,依次完成系统初始化、故障识别、模拟测试信号的输入输出,同时调用中断服务程序完成与飞控组件的信息交换。软件按模块结构划分为时序控制、中断服务和故障测试三个单元。


2.2.1 中断服务单元

在中断处理周期内完成符合导引头与飞控组件信息交换协议的429信息传输控制,包括429交换信息和遥测信息的实时发送、接收,数据的打包、解包及处理,实现与飞控算法回路的闭合。

中断处理周期是指:利用周期为30ms、占空比为1:1的同步方波信号正负电平产生中断控制信号,来同步信息交换过程。在同步信号的正电平15ms工作周期内,模拟导引头发送20个信息字组成的遥测信息帧。嵌入式组件向遥测系统发送的信息字共有60个。在同步信号的负电平15ms周期内,嵌入式组件与飞控组件完成一帧20个字的信息交换过程。

中断服务单元处理流程如图3所示。429数据接收、发送、数据打包、解包的相关算法模块,限于篇幅这里不再赘述。

2.2.2 时序控制单元

完成导弹正常测试逻辑的控制,包括系统初始化、精确定时,利用DSP的数字I/O资源模拟与其它组件、设备的信息交联,D/A则用来模拟舵偏角反馈信号给设备。其中初始化函数void TargetInit(void) 完成了对DSP、FPGA资源的初始化(中断资源、系统时钟/定时器资源、I/O端口资源、内存等,FPGA缓冲区的清零、寄存器的置位)。函数SetTimerCounter(0)用于系统定时器清零,函数void sleep(unsigned long time)用于系统延时,精度1us。时序测试点的状态判读和信号设置靠对DSP I/O端口资源的读写来完成,在CPLD的逻辑程序SConIO.vhd中定义了信号的端口地址和偏移量。

2.2.3 故障测试单元

完成对故障设置装置20余种代码的识别,该单元在流程处理上不是独立的,而是嵌入到时序控制和中断服务单元中,按预定的故障测试流程输出超出设备判别指标的相关错误信息,处理流程如图4所示。

图3 中断服务单元处理流程

图4 故障测试单元流程

3 问题及解决途径

在设计调试中断服务程序时,遇到的突出问题就是系统实时性要求与CPU处理能力间存在的差距。由于系统同步信号中断对429数据传输与处理的时间要求非常严格,特别是15ms负半周,不但要完成数百个包括浮点参数运算在内的数据实时处理,还要管理429数据的接收与发送。象F240这样的定点DSP运算效率显然难以胜任。为此,在设计中断服务程序模块时采取了如下措施:

a) 在中断服务流程中,合理安排CPU查询缓冲区状态的时间点,待CPU将接收到的上一帧数据和待发送的下一帧数据处理完毕后,再查询缓冲区的数据个数,接满后由CPU读走进行处理,从而实现了接收数据与处理数据的并行操作;

b) 数据传输操作主要靠FPGA逻辑程序在后台进行,CPU在前台完成数据处理;

c) 在429参数打包、解包处理过程时,对频繁使用的二进制加权处理方法进行改进,不再调用C标准算法库math.h中的pow( )函数,取而代之自定义的移位运算函数,pow( )是通用的C整型/浮点型运算库函数,F240调用它势必会占用大量的机器周期,而移位操作在实现二进制加权功能的同时,运算速度却能成倍提高。

为证明措施的有效性,使用DL716数字记录仪对DSP两个空闲I/O通道在同步信号正负半周产生的电平反转状态变化进行实时采集测量,得到系统在中断处理过程的耗时见表1(统计了测量6次的数值)。测试结果表明,系统在同步信号中断负半周的运行时间大幅缩短至13.5ms左右,不仅排除了中断和数据帧丢失的可能性,而且满足了信息交换协议对时序控制和数据的处理要求。

表1 中断处理时间对照表

4 结 论

作为嵌入式系统在国防科技领域内推广使用的典型范例,该组件目前已成功应用于某型导弹仿真器中,在各类复杂的使用环境下均显示了良好的性能,对于用户尽快掌握新装备形成战斗力具有非常重要的现实意义。

本文创新点:采用DSP+FPGA嵌入式系统构架,遵循弹载电子设备对于体积和性能的设计要求,同时采取并行处理和软件算法优化等措施,满足了系统对于集成化、功能性、可靠性、实时性的要求。

参考文献:

[1] TMS320F/C240 DSP Controllers Reference GuidePeripheral Library and Specific Devices[M], Texas Instruments, 1999.6.

[2] DDC Data Sheet (DEI1016 ARINC429 Transceiver) [ Z].DDC Inc, 2004

[3] 徐欣,于红旗,易凡.基于FPGA的嵌入式系统设计[M].北京:机械工业出版社,2005

[4] 缪云青,李永刚.FPGA器件在嵌入式系统中的配置方式探讨[J].微计算机信息,2006,11:161~162

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

数字信号处理器(DSP)在通信、控制、图像处理等多个领域扮演着越来越重要的角色。TMS320F2808PZA作为德州仪器(Texas Instruments)推出的一款高性能DSP控制器,其独特的架构和强大的功能使其在众...

关键字: tms320f2808pza 数字信号处理器 DSP

从世界上第一颗DSP诞生至今30年来,国际一线老牌芯片厂商长期占据领先技术和市场地位,国内芯片厂商在DSP上的声量很小。然而经过了6年的沉心打磨之后,湖南进芯电子开始在这一领域崭露头角。凭借着更贴近中国本土特色的差异化产...

关键字: DSP MCU 电机控制 进芯电子

随着嵌入式计算设备基础硬件性能的提升,在通信、工业制造、交通运输等领域,嵌入式系统逐渐承担起更加综合化和关键的任务,这也导致嵌入式软件在结构愈加复杂的同时,其安全性问题也越来越受到重视。堆栈是嵌入式软件中的重要存储结构,...

关键字: 嵌入式软件 堆栈

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计
关闭
关闭