基于STM32单片机的火控系统信号采集测试

发布者:Shuxiang最新更新时间:2012-12-18 来源: 21ic关键字:STM32单片机  火控系统  信号采集测试 手机看文章 扫描二维码
随时随地手机看文章

火控系统是控制火炮瞄准和发射的系统,火控计算机是火控系统的核心,在完成火控解算进而引导高炮射击时具有重要作用。由于火控系统信号众多,状态复杂,对其关键信号的采集测试就显得尤为重要[1].

普通信号采集测试装置具有结构复杂、造价昂贵、携带不便等特点,该方案结合最新型ARMv7系列STM32单片机,利用其丰富的外设接口和I/O资源,对某型火控系统的重点输出信号进行采集,存入板载Flash以备使用。另外,为便于使用和调试,还设计了CAN接口和RS-232串口。该信号采集盒大小为100 mm×65 mm,可由被测板提供电源信号,具有携带方便、使用简单的特点,对装备信号的实时采集具有重要的实用意义。

1总体设计方案

1.1总体设计框图

总体设计框图如图1所示,其中装备板是被测对象,STM32为控制核心,用于完成对各电路的控制,CAN总线用于与其他节点间的通信,RS-232串口用于调试及与LCD液晶屏通信。装备板被测信息分为模拟信号和数字信号,可向装备版提供5路数字控制信号,以模拟装备板的输入信号。

总体设计框图

1.2 硬件设计

该方案的硬件组成主要包括:电源转换模块、微控制器模块、信号调理模块、CAN接口电路、Flash接口模块和信号显示模块等。

1.2.1 电源转换模块

被测装备板采用7.5 V~8 V电压供电,信号采集板需要3.3 V、5 V以及±12 V四种电压等级,因此需要将测试板载电压等级进行转换。5 V和3.3 V采用两片Alpha公司高性能、低功耗AS117电源转换模块;±12 V电压由两片输入输出隔离单输出DC/DC模块DLW02-05S12获得。经实验测试得知,用上述方法得到的电压纹波较小,电压幅值稳定,满足要求。

1.2.2 微控制器模块

微控制器采用基于Cortex-M3内核型号为STM32F-103R8单片机,最高频率可达72 MHz,具有性能强劲、代码密度高、位带操作、可嵌套中断、低成本和低功耗等众多优势。STM32拥有FSMC、TIMER、SPI、I2C、USB、CAN、I2S、SDIO、ADC、DAC、RTC和DMA等众多外设和功能,拥有优异的实时性能,可提供84个中断、16级可编程优先级,另外支持SWD和JTAG两种调试口,为设计带来很多方便[2]。

该微控制器带有的CAN接口,可方便本系统与其他节点互联,RS-232接口可用于调试及控制液晶显示模块,两路SPI接口可以完成MAX1270 A/D转换器的通信控制及Flash存储器的读写,众多的I/O端口可以方便其他功能扩展。

1.2.3 信号调理模块

火力控制板是某型火力控制系统的重要组成部分,其输出信号主要分为:8路模拟信号和8路输出信号。

(1) 数字信号调理电路

为了便于处理火力控制板输出的8路数字信号,在进入单片机前需要对其进行同步及电平转换。图2为数字信号同步及电平转换电路,主要器件为74HCT245。需要注意的是,在输入单片机时要对比其数据手册,选择具有FT(容忍5 V)标注的管脚,防止电平不兼容[3]。

 数字信号调理电路

(2) 模拟信号调理电路

图3为模拟信号调理电路,它将火控板输出的模拟信号进行滤波及放大处理。图中,电容用来滤除一些来自地端的高频串扰;R37为电位器,用于灵活调整信号输出大小;2 V稳压二极管用于保护运放LF412不被损坏。另外,LF412可使用双电压模式,且具有较高的转换速率,较为适合完成火控板上变化速率较快的信号处理工作。[page]

模拟信号调理电路

1.2.4 CAN接口电路

控制器局域网CAN可以以最小的CPU符合来高效处理收到的大量报文,可用软件配置报文发送的优先级特性。图4为bxCAN模块,通过CAN总线收发器65HVD290可以完成自动接收和发送CAN报文,对标准标识符(11 bit)和扩展标识符(29 bit)完全支持[4]。通过CAN接口电路可以完成信号采集板与其他设备CAN网络节点的连通。

CAN接口电路

1.2.5 Flash接口电路

图5为Flash闪存接口电路,用于存放采集到的数据以及其他节点传送的信息。设计采用ST公司的M25P20闪存芯片,具有2MB存储空间,单片机通过SPI接口控制其读写过程,具有擦写速率快、寿命长等优点[5],可以较好地完成采集板数据高速存取。

[page]

1.2.6信号显示模块

液晶显示器(LCD)是提供友好人机界面、实现信息交互的关键器件,具有功耗低、体积小、显示效果好等相对于传统显示方式的优点[6].系统采用基于ARM920T内核的蓝海微芯7寸液晶屏,通过RS-232串口与STM32通信,完成信息显示工作。

1.3软件设计

STM32单片机使用Keil对其编程,使用J-Link下载器调试,下载采用JTAG方式,使用ST提供的库函数操作,非常方便。

1.3.1模拟信号数据采集子程序

模拟信号采集是通过美信MAX1270进行A/D转换实现的。A/D转换芯片MAX1270通过SPI接口与单片机通信。信号采集子程序流程图如图6所示,首先,对ADC进行初始化,进行采样时间、转换时钟的设定等;然后,启动ADC,对调理信号进行采集,任一时段采样结果为8次连续采样的平均值;A/D转换结束后,转入相应的中断服务程序,对采样得到的数据进行分析和处理。

1.3.2 数字信号数据采集子程序

数字信号的采集通过STM32的输入引脚完成。数字信号经过调理同步后可以对其进行实时捕获,通过读取各管脚状态获得采集值。另外,对于一些频率信号的采集,可以通过设定相应管脚的中断状态进行,在信号的上升沿时刻进行捕获。频率信号数据采集子程序流程如图7所示。

2 实验结果与分析

为了进一步检验采集板信号采集性能,利用C++ Builder设计了数据简易分析程序,用RS-232串口与上位机通信,实时显示采集到的数据,图8是提取的一组数据。

模拟通道采用直流27 V为测试源。由上图可知,采集值最小为26.93 V,采集误差仅为0.26%,可见对直流模拟信号采集误差较小,稳定性较高。

数字通道采用信号发生器产生1 kHz的测试源。由图8可知,采集值最小为996 Hz,误差为0.4%,满足需求,稳定性较高。

本文根据某火控系统检测需要,设计了一种基于STM32系列单片机的火力控制板信息采集测试方案,可作为控制器局域网CAN总线的一个节点与其他节点进行通信,设备体积小、操作简单、易于实现,且采集与测量精度较高,具有一定的使用价值。

关键字:STM32单片机  火控系统  信号采集测试 引用地址:基于STM32单片机的火控系统信号采集测试

上一篇:基于ARM11+CPLD的小型无人机飞行控制器设计
下一篇:多路数据采集系统的设计与实现

推荐阅读最新更新时间:2024-03-16 13:15

STM32单片机的具体介绍和技术知识
STM32的核心Cortex-M3处理器是一个标准化的微控制器结构,希望思考一下,何为标准化?简言之,Cortex-M3处理器拥有32位CPU,并行总线结构,嵌套中断向量控制单元,调试系统以及标准的存储映射。 嵌套中断向量控制器(Nested Vector Interrupt Controller,简称NVIC)是Cortex-M3处理器中一个比较关键的组件,它为基于Cortex-M3的微控制器提供了标准的中断架构和优秀的中断响应能力,为超过240个中断源提供专门的中断入口,而且可以赋予每个中断源单独的优先级。利用NVIC从可以达到极快的中断响应速度,从收到中断请求到执行中断服务的第一条指令仅需12个周期。这种极快的响应速度
[单片机]
<font color='red'>STM32单片机</font>的具体介绍和技术知识
STM32单片机小Tips(6):玩转IAR,开发STM32
  从51开始,单片机玩了很长时间了,有51,PIC,AVR等等,早就想跟潮流玩玩ARM,但一直没有开始,原因 -----不知道玩了ARM可以做什么(对我自己而言)。如果为学习而学习,肯定学不好。然后cortex-m3出来了,据说,这东西可以替代单片机,于 是马上开始关注。也在第一时间开始学习,可惜一开始就有点站错了队,选错了型(仍是对我自己而言)。我希望这种芯片应该是满大街都是,随便哪里都可以买得 到,但我选的第一种显然做不到。为此,大概浪费了一年多时间吧,现在,回到对我来说是正确的道路上来啦,边学边写点东西。   闲话多了些,就权当前言了。下面准备开始。   STM32单片机小Tips之RTC实践   BKP还没有搞完,
[单片机]
<font color='red'>STM32单片机</font>小Tips(6):玩转IAR,开发STM32
STM32单片机(4) 独立看门狗实验
/******************************************************************************* * * 软件功能: 独立看门狗实验 * *******************************************************************************/ #include stm32f10x.h #include delay.h /************************************************* 函数: void RCC_Configuration(v
[单片机]
STM32单片机常用库函数
1.GPIO初始化函数 用法: voidGPIO_Configuration(void) { GPIO_InitTypeDefGPIO_InitStructure;//GPIO状态恢复默认参数 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_标号|GPIO_Pin_标号; //管脚位置定义,标号可以是NONE、ALL、0至15。 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//最高输出速度为50MHz GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出 GPIO_Init(GPIOC,&GPIO_I
[单片机]
如何利用STM32单片机发送字符串
一、STM32有自己的字符发送函数。 void PC_SendChar(uint8_t DataToSend) { USART_SendData (USART1 ,DataToSend); while(USART_GetFlagStatus (USART1 ,USART_FLAG_TC )!=SET ); } 二、发送字符串函数是在字符发送函数的基础上编写的 void PC_SendString(uint8_t *str) { while(*str) { PC_SendChar (*str); str++; } } 三、发送字符串示例 PC_SendString((u8*) Welcome to the NDIR wo
[单片机]
工程师STM32单片机学习基础手记(4):用PWM实现荧火虫灯(二)
用PWM生成正弦波   有了PWM,自然就可以用PWM的方法生成正弦波了。下面生成500Hz正弦波的方法参考自张明峰的《PIC单片机入门与实践》   每个正弦波分成四个像限,每个像限16点,共64点,每点出现2个PWM周期,故PWM的周期为:2ms/128=156.25us,频率为64KHz。   TIM3 Frequency = TIM3 counter clock/(ARR + 1)   倒过来:   ARR=TIM3 Counter Clock/TIM3 Frequenc - 1 =562.5-1 =561   如果取ARR的值是561的话,那么实际的频率是64.056KHz,即最终生成为的正弦波频率
[模拟电子]
STM32单片机的重映射与地址映射的使用方法及步骤
重映射 STM32中对于一些端口的外设已经被其他引脚所使用,这是就需要用端口重映射来解决了,很方便。 以USART1为例 重映射的步骤为: 打开重映射时钟和USART重映射后的I/O口引脚时钟, RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE); I/O口重映射开启。 GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE); 配制重映射引脚, 这里只需配置重映射后的I/O,原来的不需要去配置。 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;GPIO_InitS
[单片机]
<font color='red'>STM32单片机</font>的重映射与地址映射的使用方法及步骤
STM32单片机(9) LCD1602显示屏输出实验
核心代码由kingsraywii提供,本文作者对其进行整合、更详细地注释和部分代码改进, 添加了芯片ID获取、字符串输出和printf重定向输出功能 注:使用普中科技开发板测试时,需要拔掉Boot1插口 接5V电压,重启 /******************************************************************************* * * 软件功能: LCD1602实验(软件延时方式) * *******************************************************************************/ #i
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved