datasheet

一种基于C8051F350的无线同步数据采集方法

2016-10-09来源: elecfans关键字:C8051F350  无线同步  数据采集
  歼击机的操纵性,如杆/舵的操纵力、位移等要符合技术要求,符合飞行员的使用习惯,才能使飞行员安全舒适地驾驶歼击机,在整个飞行中较好地完成飞行任务。歼击机操纵杆/舵操纵力一位移性能评估是歼击机产品质量检测的主要项目之一,它根据歼击机操纵杆/舵操纵力一位移性能指标的要求,检测出其力和位移是否在规定的标准范围内。本系统主要完成对歼击机操纵杆/舵操纵力和位移的同步数据采集,并通过无线的方法将采集到的力、位移数据传输给评估系统,为评估系统提供绘制力一位移曲线所需的准确测量数据。

  1 系统整体设计

  歼击机操纵杆/舵操纵力一位移性能检测评估系统由采集系统和评估系统两部分构成。采集系统主要包括传感器、信号调理电路、微控制器和无线模块。系统的硬件框图如图1所示。

  

  采集系统通过两片C8051F350分别同时控制采集对歼击机操纵杆/舵操纵的施力信号,以及同一时刻操纵连杆相对力的位移信号,然后由各自的无线模块将采集到的数据传输给评估系统。评估系统利用接收到的数据绘制力一位移曲线,和标准曲线进行对比后给出评估结果。

  2 采集系统硬件概述

  采集系统的核心控制器C8051F350是美国Silabs公司推出的一款完全集成的混合信号片上系统型微控制器,具有高速、低功耗、集成度高、功能强大、体积小巧等优点。它内部有1个全差分24位模/数转化器,2个独立的抽取滤波器,每个抽取滤波器均可通过编程达到l kHz的采样率。

  从传感器输出的信号往往是很微弱的毫伏级信号,需要用放大器对信号加以放大。信号经放大、滤波后接入C805lF350的模拟信号输入端。

  射频芯片nRF24L01是一款工作在2.4 GHz~2.5 GHz,世界通用ISM频段的单片无线收发器芯片,不仅具有自动应答及自动重发功能,而且在增强型ShockBurst模式下还具有数据包识别、地址及循环冗余校验方式(Cyclic Redundancy Check,CRC)校验的功能,减少了外部CPU的工作量,增强了数据传输的可靠性。

  3 采集系统同步设计

  3.1 系统软件设计

  安装在操纵杆手柄上的采集系统作为主采集器(简称A),实现对操纵杆/舵操纵的施力信号的采集。和操纵连杆相连的采集系统为从采集器(简称B),实现对操纵连杆位移信号的采集。现有的同步数据采集系统一般是由l台控制器控制1片具有多通道的同步数据采集芯片,或者同时控制多片同步数据采集芯片来实现的。而本系统要完成的是由2片单片机分别控制,对力和位移进行同步数据采集。由A控制采集过程的开始和结束,2个采集器由2片C8051F350分别控制,所以在数据采集开始前必须使A和B系统同步。A和B的程序流程图分别如图2、图3所示。

  

  3.2 系统同步的实现

  A和B系统同步是指2个采集系统开始采集力数据和位移数据的时间是一致的,先计算出2片C805lF350控制无线模块通信过程中的时间差,经过时间补偿后使2个采集系统开始同步数据采集。A和B进行系统同步的流程图分别如图4、图5所示。

  

  A同步初始化后向B发送一个准备开始采集的同步信号,随即检测是否接收到B发来的应答信号(同步信号和应答信号为相同字节),同时A使用定时器中断监测同步信号是否丢失,定时时间要远大于从发送同步信号到接收到应答信号所用时间的理论计算值。若定时内没有收到应答信号则认为同步信号丢失,触发中断,在中断子程序中将重新发送同步信号并装载定时初值,直到收到应答信号。

  A的定时时间包括发送同步信号的时间、同步信号的传输时间、B检测判断该信号的时间、发送应答信号的时间、应答信号的传输时间和关定时器的时间。

  其中A发送同步信号需m个机器周期,B检测判断同步信号需n个机器周期,发送应答信号需p个机器周期(p=m),关定时器需q个机器周期,C8051F350的机器周期为T,则执行这些指令的时间S=(m+n+p+q)T。nRF24L0l的数据传输率为l Mbps,同步信号的传输时间为tl,应答信号的传输时间为t2(t2=t1),这一过程共用时G=t1+t2+S,定时时间为H》》G。

  B接收到同步信号后,向A发送一个应答信号,经过X的延时后2个采集系统便完成了系统同步。由于测试环境的不同,X也是不确定的,可由另外的测试程序测试后加以计算获得。

  因为A,B选用的均为C805lF350,机器周期相同,所以2个采集系统在完成系统同步后的数据采集过程可视为是同步进行的,不考虑其间的时间差。

  3.3 同步测试设计

  A的测试流程图如图6所示。A定时H触发中断,在中断子程序中令同步测试信号丢失标志Flag=1,表明同步测试信号丢失,要重新发送。同时A使能计数器,利用计数值可以计算出从发送同步测试信号到接收到应答信号的实际用时,进而得到同步(应答)信号的实际传输时间。用多次测试中出现概率最大的数值计算实测时间,实测时间记为TA。

  B始终处于接收数据的状态,只要收到A发来的同步测试信号就发送一个测试应答信号,如图7所示。

  

  从图6可知实测时间中开、关计数器的时间可相互抵消,且A检测判断应答信号同样需n个机器周期,则同步(应答)信号的实际传输时间tA=(TA-(n+p+n)T)/2。

  图5中的延时时间包括应答信号的传输时间、A检测判断该应答信号的时间和关定时器的时间,则x=tA+(n+q)T。

  4 测试结果及分析

  A,B对加入l V直流偏置、频率为1 kHz、峰值为1 V的同一正弦信号进行同步数据采集,利用MATLAB将采集到的2路数据拟合。图8为多次实验中拟合效果较好的波形,C805lF350的采样频率为19.2 kHz。

  从图8可以看出两路波形基本重合,进行局部放大后的波形如图9所示。可根据波形的周期、采样频率计算出A和B对同一数值采集的时间差在μs量级,实现了系统的同步数据采集。

  5 结论

  通过多次实验证明了本文提出的时间补偿法可使采集系统实现同步数据采集,为歼击机进行操纵性能检测评估提供有效、准确的测量数据。本系统具有电路简单、体积小巧,使用方便等特点,可应用于其他相关领域和行业中。

关键字:C8051F350  无线同步  数据采集

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/article_2016100930234.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于短信息远程数据采集系统的设计
下一篇:基于影像传感器MT9M111的视频采集系统

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32F103RC硬件I2C从入坑到出坑

第一天手上有啥资源可利用的?1.一块MPU60502.一块stm32f103rc最小系统版,上面移植了ucos3,跑了几个任务,包括一个LCD任务(优先级最低)3.st的固件库4.ALIENTEK的MPU6050例程5.stm32各种数据手册文档,ucos各种资料好,开工。先阅读stm32数据手册了解研究I2C模块原理架构,懵懵懂懂,若有所知的样子,行了不看了。然后看看ALIENTEK的MPU6050例程。咦?怎么是用软件模拟I2C?stm32集成了I2C控制器都不用,这么浪费,不看了。。。还是再看一下,看看MPU6050大致是怎么操作的。大概就是有个设备地址0x68,有很多寄存器,数据通信通的就是寄存器的数据,每次传输数据都是
发表于 2019-04-08
STM32F103RC硬件I2C从入坑到出坑

stm32f3的i2c使用小结

这几天拿到了stm32f3discovery,拿到手的第一件事就是测试了硬件i2c,使用stm32cube生成库,测试对象为AD5934与ADG715。经过两天的调试,完美调通。中间也碰到了些问题。1、一开始用的I2C1,一仿真就会出现死机的情况。        由于I2C1与swd接口重合,所以调用HAL_I2C_Init()函数后就死机,改成I2C2后问题解决。2、无法访问指定地址的设备        库函数中的入口地址并不是7bit地址,需要输入8bit。我的设备地址为13,始终无法访问设备,改为26后解决。3、可以读写单个地址的数据
发表于 2019-04-02

stm32F103模拟I2C读写24c02

/*********文件名:i2c_ee.h**********//* Define to prevent recursive inclusion ------------------------------------ */#ifndef __I2C_EE_H#define __I2C_EE_H/* Includes ------------------------------------------------------------------*/#include "stm32f10x.h"/* Exported macro
发表于 2019-04-02

STM32F030 I2C 从模式中断编程

第一次用I2C的从模式,之前用的是主模式,用的IO模拟的,在很多设备都用上了,没什么问题。在使用I2C从模式之前,也在网上看到很多人说这个是坑。自己花了几天的时间,终于跳过了这个坑,再次总结下:1. 最困难的地方:因为需要两个平台对接,主端用的是LINUX系统,芯片是TI335X,从端是STM32F030,我两端的程序都没写过,所以出现问题了,无法判定是哪一边的问题,这个很痛苦。2. 例子。虽然“拿来主义”不太厚道”,但是站在巨人的肩膀上,往往是最快的。1) STM32F030的代码:http://www.openedv.com/forum.php?mod=attachment&aid
发表于 2019-04-02

stm32f1xx i2c通讯故障可能原因

在做i2c通讯时,总时出现一些故障,现在对故障进行总结:1.程序停在while (I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY)) ,是i2c总线忙碌。当我们 要是用i2c总线时,i2c的时钟线和数据线都应该为高电平,stm32默认的i2c引脚自带了高电平,如果是重映射的就需要我们 自己确认引脚是否是高电平,还有一个原因是i2c的gpio模式选择不对,应该选择复用开漏输出。2.程序停在while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))时,是主模式发送选择不正确。我们先要确认硬件的i2c总线上的所有地线是否
发表于 2019-04-02

STM32F103C8T6驱动ov2640拍照串口传输到上位机

使用环境(蓝色粗体字为特别注意内容)1、软件环境:Keil MDK 5.152、硬件环境:STM32F103C8T6最小系统,OV2640摄像头模块最近想玩玩摄像头,于是在网上找找性价比比较高的摄像头,之前用过OV7670这款摄像头,不过这款摄像头对单片机要求较高,一般的单片机驱动起来非常费劲,除非ARM级别的微处理器才能够胜任。要想使用低端单片机驱动的话需要加上FIFO模块,一加上这玩意价格就翻了3倍。。。。原来20块钱的东西涨到了70+,我的天。。。。于是找了大半天,终于找到OV2640这款摄像头,这摄像头是我目前遇到的性价比最高的摄像头了,竟然支持直接输出JPG格式的图片,最高支持1600*1200(200W)像素!!!价格
发表于 2019-03-18
STM32F103C8T6驱动ov2640拍照串口传输到上位机

小广播

何立民专栏

单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved