基于DMA 的常规弹导航信息实时处理技术

2015-04-01 12:19王天宇张晓明吕忆玲
传感器与微系统 2015年12期
关键词:实时性流程图信息处理

王天宇,张晓明,2,关 洋,吕忆玲

(1.中北大学 电子测试技术国防科技重点实验室,山西 太原030051;2.中北大学 仪器科学与动态测试教育部重点实验室,山西 太原030051)

0 引 言

近年来,常规弹药制导化是国内外军事制导领域的研究热点之一。常规弹药制导的关键是导航信息的获取。传统的常规弹制导需要获取多路导航传感信息,如3 路磁传感器信息、3 路加速度计信息、3 路陀螺信息。常规弹的高动态特性又决定其需要对获取的导航传感信息进行快速、实时的采集、解算、通信[1]。如何使常规弹在高动态的情况下进行传感信息的实时处理成为一个十分重要的问题。传统的传感信息处理方法是通过CPU 指令实现信息的采集、解算和通信。其优点在于应用程序采用单线程方式,逻辑简单、易于编程,不足之处在于单线程方式的信息处理速度较慢,无法满足常规弹制导对传感信息处理的实时性要求。

本文针对常规弹制导对传感信息处理的实时性要求,提出利用直接存储器访问(direct memory access,DMA)与传统信息处理方法相结合的方式进行传感信息的快速采集、解算及通信。该方案结合CPU 与DMA 的优势,利用其相互独立的特性,使它们同时进行各自擅长的工作,形成双线程,提高传感信息采集、解算和输出的速度。

1 信息处理技术要求与硬件设计

在常规弹制导中,由于其具有高动态特性,传感信息处理的实时性成为导航控制的关键。要满足常规弹导航控制中的实时性,就要使传感信息采集、解算和输出的速度达到其时间要求。

当前,常规弹制导需求的传感信息包括磁传感器、加速度计以及陀螺仪信息等。常规弹制导不仅需要多路传感信息,其传感信息的处理速率也需要保持在2 kHz 以上,即对信息进行一次采集、解算和通信的时间为500 μs 以内。若使用传统的信息处理方式并利用串行通信接口进行通信,波特率设定为115 200 bps,即每传输一个字节就需要78 μs。在假定只需要进行数据输出的情况下,传感信息处理系统在500 μs 之内也只能输出6 个字节的数据,那么,再加上信息的采集和解算的时间,就使传统的信息处理方式无法满足常规弹制导的实时性要求。因此,在常规弹制导中采取DMA 与传统信息处理方法相结合的方式进行传感信息的处理很有必要。

此外,常规弹具有小巧化、轻型化的特点。因此,常规弹制导不仅对传感信息处理的实时性有较高要求,其硬件电路也必须符合小型化、轻型化、低功耗的要求[2]。

针对常规弹制导对传感信息处理的实时性要求以及其小型化、轻型化的特点,采用STM32F405 作为传感信息采集和计算的主控芯片,并利用RS—422 串行通信接口对处理后的数据进行输出。硬件设计图如图1 所示。

图1 硬件设计图Fig 1 Hardware design

STM32F405 的特点如下:工作频率高达168 MHz,支持浮点运算,片内集成了两个DMA 控制器、192kB+4kB 的SRAM、3 个12 位的ADC 以及12 个16 位的定时器,大容量SRAM 有利于大数据量的解算工作。片内集成的DMA,ADC 减少了硬件电路芯片的数量并且降低了系统的功耗[3]。此外,STM32F405 芯片大小为10 mm×10 mm,具有体积小、重量轻、功耗低等特点,适合于常规弹制导中传感信息处理系统的设计。

2 传感信息处理的工作原理

传感信息处理分为信息采集、数据解算和数据输出。传统的传感信息处理方式是通过CPU 指令实现的,CPU 全程参与到信号采集、解算和输出的每个过程中。DMA 方式的信号处理是利用CPU 与DMA 相互独立的特性,使它们同时进行不同的工作,形成“双线程”,提高传感信息采集、解算和输出的速度。

2.1 传统的传感信息处理方式

传统的传感信息处理方式利用CPU 指令实现传感信息的采集、解算和通信。传统方式信息处理工作顺序流程图如图2 所示。

图2 传统方式工作顺序流程图Fig 2 Workflow in traditional way

单次传感信息处理工作原理:ADC 每隔一定时间触发A/D 转换,将传感信息转换为数字信号,每次转换后的数值被保存在ADC_DR(ADC 的数据寄存器)中。寄存器中的数值需要转移到内存中,才能用来计算。首先CPU 需要等待ADC 转换完成后,将ADC_DR 中的数值读取到内存中。然后CPU 开始对内存中的数据进行相关运算,并在处理完当前的数据后,将数据转移至串口的USART_DR(串口的数据寄存器)。最后,CPU 等待串口将USART_DR 中的数据发送完毕后,再进行下一次的传感信息处理工作,重复上述步骤。

通过上述的工作原理可以看出,传统的传感信息处理方式是一个单线程、顺序的过程,并且整个过程中都需要CPU 指令的控制。CPU 不但需要按顺序进行各种工作,还要受限于其他模块的工作速度。此外,常规弹制导中传感信息的解算过程需要进行大量的三角、浮点等复杂的运算,会占用大量时间。这样的单线程、顺序的工作模式使传感信息处理的速度受限,无法满足实时性要求。

2.2 DMA 方式的传感信息处理

DMA 用于外设与存储器之间和存储器与存储器之间提供高速数据传输。DMA 与CPU 是相互独立的,数据可以在没有任何CPU 干预的情况下通过DMA 完成快速传输。这样,CPU 可以在DMA 转移数据的过程中,同时进行数据运算、响应中断、数据输出,大大提高工作效率[4]。

采取DMA 方式与采取传统信息处理方式的不同之处在于将数值从外设寄存器转移至内存的过程。DMA 方式信息处理工作顺序流程图如图3 所示。

DMA 方式中,数据在外设寄存器和内存之间的传输是通过DMA 控制器进行控制的,这样CPU 节省的宝贵资源可以进行其他重要工作。

图3 DMA 方式工作顺序流程图Fig 3 Workflow in DMA mode

单次传感信息处理工作原理:首先,DMA1 控制器等待ADC,在ADC 完成后,DMA1 直接将ADC_DR 中的数据经由DMA 通道存放到内存中。之后CPU 对内存中的数据进行运算,而DMA1 则重新等待ADC 完成并进行数据转移。CPU 将内存中的数据处理完毕后,DMA2 控制器将内存中的数据经由另一条DMA 通道转移至USART_DR 中。之后DMA2 等待串口将USART_DR 中的数据发送完成后,重新进行数据转移的工作,将解算完毕的数据转移至USART_DR 中[5]。

通过上述工作原理可以看出,DMA 方式的信息处理在数据传输的过程中无需CPU 参与,CPU 资源可以最大程度的用于数据解算和响应中断,尤其是在多路信号采集时,DMA 方式的优势更加突出。

3 系统软件设计

本系统采用ARM 公司推出的开发环境Keil 4 作为开发平台,并使用ST 公司推出的开发库。应用程序分为三个部分,分别为主程序、信号采集及处理程序和串行通信程序。主程序主要负责对系统时钟、GPIO、中断配置、定时器、ADC 和RS-422 通信模块进行初始化[6]。

信号采集和处理程序将采集到的多路模拟信号利用ADC 转换为数字信号,并将数字信号转移到内存中。此部分程序分为两个模式:一个是由CPU 控制将数据从寄存器转移到内存,另一个是由DMA 控制将数据从寄存器转移到内存。

3.1 CPU 控制数据转移

在CPU 控制的数据转移过程中,首先定时器每500μs触发一次ADC,ADC 后的数值会存储在ADC_DR 中;然后由CPU 将ADC_DR 中的数值转移到内存中,CPU 再对内存中的数值进行解算;解算之后的数据经过CPU 转移到USART_DR 中。CPU 等待串口传输完成后,重复上述步骤。系统的流程图如图4 所示。

3.2 DMA 控制数据转移

在DMA 控制的数据转移过程中,首先定时器2 每500μs 触发一次ADC,ADC 后的数值存储在ADC_DR 中。然后由DMA1 控制器将ADC_DR 的数值转移到内存中,再由CPU 对内存中的数据进行解算,同时,DMA1 重新等待ADC 完成并进行数据转移。DMA2 控制器将解算后的数据转移到USART_DR 中。在DMA2 工作的同时,CPU 开始解算DMA1 第二次转移到内存中的数据。此流程通过CPU和DMA 的各自独立的工作,形成多线程,从而实现快速的信号采集和处理。采集系统的流程图如图5 所示。

图4 CPU 方式信号处理流程图Fig 4 Flow chart of signal processing in CPU mode

图5 DMA 方式的信号处理流程图Fig 5 Flow chart of signal processing in DMA mode

4 实验结果

本实验进行了实物焊接与软件编程。实物图如图6 所示。

图6 实物图Fig 6 Physical map

实验方案:在传感信息采集、解算、通信的同时,加入程序控制,使指定IO 口的电平在每个信息处理周期的开始时由低变高,在结束时由高变低,然后通过示波器查看此管脚输出波形,即可查看传感信息处理的周期和频率。

首先采用CPU 方式进行实验,实验过程中利用示波器查看信号采集、解算、通信的速率,实验结果如图7 所示。

由图7 可以看出:信号采集、解算、通信的周期为1 500 μs,频率为666.7 Hz。

图7 CPU 方式的传感信息处理周期Fig 7 Processing cycles of sensing Information in CPU mode

然后采用DMA 方式进行实验,利用示波器查看信号采集、解算、通信的速率,实验结果如图8 所示。

图8 DMA 方式的传感信息处理周期Fig 8 Processing cycles of sensing Information in DMA mode

由图8 可以看出:信号采集、解算、通信的周期为500 μs,频率为2 kHz。

对比图7 和图8 可以看出,DMA 方式的处理速度是CPU 方式的3 倍。DMA 方式的信号处理成功达到了2 kHz的更新率,而CPU方式仅为666.7Hz,未能达到常规弹导航所需的2 kHz 更新率。说明DMA 方式能够满足常规弹导航信息的采集、解算及通信的实时性要求。

5 结 论

本文提出利用DMA 与传统信息处理方式相结合的方法实现常规规律多路传感信息的实时处理。分析了传感信息处理的技术要求,设计了硬件电路与系统软件,并进行了设计实验验证。实验结果表明:与传统方式相比,DMA 方式的信息采集、解算、通信,其速度提高了3 倍,实现了常规弹导航信息处理的实时性要求。

[1] 李永慧.基于磁阻传感器的常规弹姿态测量技术研究[D].太原:中北大学,2012.

[2] 尚建宇,张晓明,黄建林,等.常规弹药转速测量方法仿真研究[J].弹箭与制导学报,2012,32(4):99-102,108.

[3] 郝 雯,沈金鑫,梅 成.基于STM32 单片机的存储式数据采集系统设计[J].电子设计工程,2013,21(17):80-82.

[4] 刘火良,杨 森.STM32 库开发实战指南[M].北京:机械工业出版社,2014.

[5] 孙景龙,王业成,陈 锐.STM32F4xx 利用DMA 实现异步多串口高速通信设计[J].黑龙江科技信息,2013(27):36.

[6] 张 旭,亓学广,李世光.基于STM32 电力数据采集系统的设计[J].电子测量技术,2010,33(11):90-93.

猜你喜欢
实时性流程图信息处理
东营市智能信息处理实验室
基于Revit和Dynamo的施工BIM信息处理
地震烈度信息处理平台研究
CTCS-3级列控系统RBC与ATP结合部异常信息处理
航空电子AFDX与AVB传输实时性抗干扰对比
计算机控制系统实时性的提高策略
专利申请审批流程图
专利申请审批流程图
宁海县村级权力清单36条
一种车载Profibus总线系统的实时性分析