基于NRF9E5射频无线遥控系统的设计
关键词扑翼微型飞行器遥控系统射频nRF9E5
1引 言[1]
现在和未来的飞行机器人[1-3]设计方向是期望机器人是小巧的、手提的、随身携带,可以像昆虫一样超低空飞行,能够灵活地完成侦察和搜索任务。多年来以军事用途为背景的无人飞行器(UAV―Unmanned Aerial Vehicle)研究一直十分活跃,这些无人飞行器通过地面基站遥控导航,或者通过自身的智能控制算法,来实现其自身的任务规划与航迹生成,完成预定的飞行任务。仿生MAV是整个飞行任务的载体,仿生MAV性能的优劣影响整个飞行系统的性能,目前仿生微飞行器有采用压电驱动、人造肌肉驱动、形状记忆合金(SMA)驱动以及电磁微马达驱动,但目前能够实现扑翼飞行的是采用微马达的驱动方式,其他的驱动形式仅仅属于概念性的设计,从实用的角度来讲,采用电磁微马达的驱动方式更为成熟。仿生微型飞行器采用高能电池供电,通过电磁微马达驱动扑翼,通过形状记忆合金(SMA)来控制仿生微飞行器的运动模态,通过微型传感器来检测仿生微飞行器的位置和姿态,通过微处理芯片对输入信号进行检测,并通过输出去控制相应的执行机构,仿生微飞行器通过射频传输模块建立和地面控制基站的数据链路。
2遥控系统的结构设计
扑翼微型飞行器的遥控系统主要是为了调节飞行器的扑动频率以及飞行器尾翼的升降、左右摆动;至于飞行器的视频采集、姿态控制及位移控制,目前对其设计还不太现实,因为扑翼微型飞行器还不能实现自主飞行,如果控制系统过于复杂,则不可避免地增大飞行器重量,这些因素不利于飞行器的飞行。整个遥控系统包括两个部分,一部分为系统的发射部分,其主要任务是发送控制命令,通过计算机把控制命令经计算机的串口和射频模块发送出去,完成命令的生成和传输,即通过计算机发送控制命令,传递给nRF9E5芯片,芯片通过射频端发射出去;另一部分为扑翼微型飞行器自身的控制器,这部分的作用是接收地面的控制指令,经控制器来调整微马达的转速,进而来控制扑翼的拍打频率,即把接受到的控制命令传递给nRF9E5芯片,然后由nRF9E5芯片输出PWM脉宽,进而来调整电压输出,从而来控制直流微马达的转速。
nRF9E5[4]采用QFN封装,其尺寸大小为55mm,图1所示为nRF9E5的引脚分配与封装。其中P0口和P1口与8051的对应端口相同,这两个端口是采用CMOS驱动的双向IO口,其方向可通过_DIR和_ALT寄存器的设置来选择端口的功能和数据传输的方向。P0口通过P0_ALT和P0_DIR进行设置,当P0_ALT的对应位为1时,则P0.n具有UART、外部中断、定时器输入或脉宽调制输出功能,其方向由P0_DIR的对应位来确定;P1口的4个引脚MISO、MOSI、EECSN、SCK作为系统上电后EEPROM和系统进行通讯的接口,EECSN为片选信号,SCK为存储器的时钟信号,MOSI、MISO分别为串行数据的输入和输出信号。P1口的控制寄存器分别为SPI_CTRL、P1_ALT、P1_DIR,当SPI_CTRL=1时,P1口作SPI口使用,当SPI_CTRL=0时,P1作通用IO口,XC1和XC2分别为系统时钟的输入和输出,ANT1和ANI2为系统射频信号的接口,AIN0~AIN3为模拟信号的输入端口。遥控系统的结构布局如图2所示。
地面射频遥控装置的命令发射端的电路原理图如图3所示,J1为9针的D型插座,连接计算机的串口,控制命令由串口传出,串口连接MAX3232芯片,该芯片为电平转换电路,其主要目的是把计算机15V的高电平转换为MCU可以接受的0~3V的CMOS电平,J1
图3 地面射频遥控装置的命令发射端的电路原理图
插座中引出的引脚为2、3、5分别对应与TXD、RXD、GND,经MAX3232转换后连接nRF9E5的P01、P02,P01和P02分别设置为第二功能的RXD、TXD;25AA320为Microchip公司的串行程序存储器,MCU的运行指令先烧写到此芯片中,当系统上电复位后,程序代码被下载到nRF9E5的内存中;ANT1、ANT2为nRF9E5的射频输出端,射频传输协议集成在射频模块内。
图4 扑翼驱动装置接收端的电路原理图
图4为扑翼驱动装置接收端的电路原理图,该电路图中与nRF9E5相连的串行程序存储器、晶振电路、射频传输电路部分与图3的电路相同,不同的是P0口的P02、P03连接在三极管的基极上(其中一个作备用),P04、P06连接两个发光二极管;三极管采用BE431,三极管的主要作用是为了把MCU输出的PWM放大,增大其输出功率,微马达连接在JP1的5、6引脚或者7、8引脚;LED1、LED2为状态指示灯,用来模拟尾舵的摆动和升降;LM1117为电源管理模块,其作用是为了把4~6V的不稳定电压转换为3.3V的稳定电压,为nRF9E5和其它用电模块提供稳定的供电电源。
图5 命令发射端程序流程
图6 数据接收端程序流程
3系统的程序设计
当遥控系统的硬件设计完成之后,软件成为沟通各个硬件部分的灵魂和血脉,遥控系统的软件程序设计主要涉及PC与nRF9E5的串行通讯,nRF9E5芯片的射频传输与接收,PWM的脉宽输出等内容,图5所示为遥控系统命令发射端程序流程,首先系统初始化,定义P0口功能、定时器初值(串行通讯的波特率)、SPI控制寄存器的初始化、RF控制寄存器初始化等,nRF9E5的串口能接收来自PC的命令,使接收的命令能顺利传出。nRF9E5的射频传输模块的功能和nRF905芯片的功能完全相同,将所有高速射频协议集成在芯片内部,和微控制器相连的部分只是采用简单的SPI接口,使得在编程时对数据的接收和发送变得异常简单,在ShockburstTM RX模式下,当地址接收正确,有效信号接收完毕后由AM和DR通知MCU,在ShockburstTM TX模式下,nRF905自动生成CRC校验,当数据发送完后由DR通知MCU。
当有数据要发送时,MCU通过SPI接口将接收阶段的地址和有效数据写入nRF905,MCU通过设置TRX_CE、TX_EN为高来激活nRF905 Shockburst进行传输,nRF905在进行数据传输时,首先完成射频无线传输系统的自动上电,然后对数据包加前缀和进行CRC校验,进而来完成数据包的发送,当发送完毕后,设置数据就绪(DR)信号为高,可以继续进行数据的发送;如若AUTO_RETRAN设置为高,则nRF905不断的进行数据发送直至TRX_CE为低。
当有数据需要接收时,nRF9E5的射频模块进入数据接收状态,当nRF905检测到频率相同的载波时,寄存器中的载波检测(CD)信号变高,当nRF905检测到的有效地址与自动地址匹配时,寄存器中的地址匹配(AM)信号变高,当nRF905接收到的数据包(通过CRC校验)正确时,射频模块去掉数据包的前导码地址和CRC位,数据准备就绪(DR)被置高,此时MCU可通过SPI接口将接收的数据读出;当接收完数据后,nRF905将AM和DR置低,此时nRF905将进入发射、接收或者掉电模式;接收到的数据命令通过计算机指令来调整MCU的延时时间,从而产生不同占空比的PWM脉宽,经三极管进行放大从而来驱动微马达,通过指令来调整MCU输出脉宽的占空比来达到调整电机转速的目的。
4 结束语
本文采用Nordic公司的nRF9E5芯片对扑翼微型飞行器的遥控装置进行了相应的硬件设计和软件编程,通过PC发送控制命令,经计算机串口传输至nRF9E5,再由nRF9E5内部的数据传送,经射频(RF)模块发送出去,另一端的接收装置也采用相同的nRF9E5,空中传输的控制命令经射频模块接收到,然后由MCU读出,进而来控制PWM脉宽的调制,从而实现了对微型直流电机的调速;实验表明,该系统具有成本少、功耗低、尺寸小的特点,能以较高质量在100~150米范围内进行信号的无线传输。
本文作者创新点:微型飞行器是当前研究的热点,其控制系统是该课题研究的重要内容,本文采用nRF9E5射频芯片进行了仿生微型飞行器无线遥控系统的软硬件设计与系统调试,具有电路体积小,传输距离远,功耗低等特性。
参考文献:
[1] J. M. Grasmeyer and M. T. Keennon, “Development of the black widowmicro air vehicle,” in Proc. AIAA, Jan. 2001, Paper AIAA-2001-0127.
[2] 李娜英,李惠峰.SINS/GPS/CNS组合导航在高超声速巡航飞行器上的应用[J].微计算机信息,2005,Vol.21. 9-1:P6-8.
[3] J. Yan, R.J. Wood, S. Avadhanula, R.S. Fearing, and M. Sitti. Towards flapping wing control for a micromechanical flying insect. In Proc of the IEEE International Conference on Robotics and Automation, pages 3901C3908, Seoul, South Korea, May 2001
[4] Product specification:433/868/915RF transceiver with embedded 8051 compatible Microcontroller and 4 input, 10bit ADC, Nordic
评论