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

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

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

推荐阅读

STM32F103C8T6最小系统地的构建(3)_时钟源电路-晶振

最小系统板要有处理器这是肯定的,既然我标题都是STM32F103C8T6的最小系统,那处理器就是C8T6了,电路图上,加一块芯片原理图,如此简单的操作就不做过多描述了。系统是需要有时钟,这样,你的系统跑起来会稳定有序。STM32内部自身就有三个时钟源,这个看过32手册时钟树的都会有一定的了解,在32芯片的时钟树中需要有五个时钟源,我们需要布置的便是外部高速时钟和外部低速时钟。我们讲硬件电路布置,32时钟树的的时钟讲解你们可以参考其他人的一些讲解性文章。硬件上需要了解的知识有两个,外部时钟源怎么和MCU相连,外部时钟源给多大?这个都不是什么非常难找的,网上资料还是有很多的,查阅资料:高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟
发表于 2019-07-13
STM32F103C8T6最小系统地的构建(3)_时钟源电路-晶振

STM32F103 CubeMX I2C

最近在做一个项目,由于实时性要求高所以想把串口通讯、I2C、SIP都通过DMA来完成。先用CubeMx配置后生成工程,然后做串口DMA收发测试程序一切顺利,接下来搞了一天I2C,总是在不成功,逻辑分析仪上SDA、SCL只看到有一个脉冲,断点调试发现死锁在while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET);几乎放弃。后来看到:https://www.cnblogs.com/jackweibe/p/6056821.html 终于找到问题所在。测试EEPROM:特别要注意:I2C的地址是8位还是16位,如果是8位:HAL_I2C_Mem_Write(&hi2c
发表于 2019-07-09

STM32F103C8T6低功耗测试(待机模式)

只测试了待机模式,待机模式实现系统的最低功耗。 原理图如下,一开始全部焊接了,其中S2用来进入待机,S1用来唤醒 测试程序为:#include "stm32f10x.h"#include "system_stm32f10x.h"void Sys_Standby(void){      RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //使能PWR外设时钟    PWR_WakeUpPinCmd(ENABLE);  //使能唤醒管脚功能 
发表于 2019-07-01
STM32F103C8T6低功耗测试(待机模式)

stm32f103C8T6移植enc28j60+UIP1.0

移植环境(蓝色粗体字为特别注意内容)1,开发板:STM32F103C8T6最小系统开发板。2,开发环境:Keil uv53,参考文献:https://blog.csdn.net/wzs298/article/details/12228481移植ENC28J60这个网络模块可谓是困难重重啊,。。。。。找了很多个例子都没有成功的,只能说很坑很坑,我不知道网上为什么那么多人抄袭,,没有经过自己验证就copy出来。。。。捣鼓了一天终于把这个坑爹的模块搞定了,,,,先来贴一张图片:本例程移植uIP-1.0协议栈,演示开发板和PC间的TCP通信。自定义了一个简单的应用层通信协议。本例程实现的功能有:(1)通过PC机控制板子上的LED
发表于 2019-06-13
stm32f103C8T6移植enc28j60+UIP1.0

STM32F103C8T6使用MDK 4.12中Custom_HID的修改方法

58343131=01011000001101000011000100110001 = 10001100100011000010110000011010 = 8C8C2C1A49670543=01001001011001110000010101000011 = 11000010101000001110011010010010 = C2A0E692STM32的CRC结果跟0xffffffff后为十进制4289354847=FFAA5C5F=11111111101010100101110001011111=倒过来11111010001110100101010111111111=FA3A55FF__asm u32 RBIT(u32 value){   
发表于 2019-06-12

STM32F103RCT6移植到STM32F103C8T6注意事项

1,修改IC为STC32F103C8 2,修改晶振为8.0M  3,修改C/C++宏定义,由STM32F10X_HD,USE_STDPERIPH_DRIVER 改为 STM32F10X_MD,USE_STDPERIPH_DRIVER 4,替换启动文件,由startup_stm32f10x_hd.s修改为startup_stm32f10x_md.s到这里已经没有报错了5,重新分配各模块引脚定义这一步做完以后才发现,程序好像跑的慢了10来倍,群里求助,说是倍频没有设置好,找到一个设置倍频的代码后,发现还是不行.再搜索原子论坛有人同样遇到相同的问题,在某位大神的回复中找到了答案
发表于 2019-06-12
STM32F103RCT6移植到STM32F103C8T6注意事项

小广播

何立民专栏

单片机及嵌入式宝典

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

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