摘 要:针对飞行设备内部各种传感器的数据传输方式为有线传输现状,无形中加大了布线安排、体积增大、成本增加以及无法实时获取数据和数据质量低等问题,设计一种基于CC3200的WiFi数据传输模块。该模块以FPGA作为主控核心单元,并辅以滤波电路、模/数转换电路,最终通过CC3200将处理好的数字信号数据发送给控制中心。经过试验,测试结果符合具体预定要求并且性能稳定、可靠,没有出现数据丢失的情况,现已成功应用于某航天测试系统中。
关键词:WiFi通信;A/D采集;FIR滤波;FPGA;航天测试系统;数据传输模块
0 引 言
火箭、导弹等飞行设备在其起飞阶段以及空中飞行过程中,乃至最终的着落阶段的各项参数都有十分重要的作用[1]。这些参数囊括了冲击、过载、加速度等各个方面,能否准确及时地发送接收这些参数,对飞行设备起决定性的作用[2]。
目前,飞行装备中安装繁多的传感器,它们同主控单元之间的通信均采用有线的连接方式,并且输出的模拟量信号直接传输给下面单元。其中的电磁干扰等因素严重影响了数据的质量。同时,这种连接方式明显地增加了设备的体积和重量,从而影响到发动机选型以及燃料消耗,进而影响成本。因此,基于目前飞行装备的数据传输方式,设计一种基于CC3200的WiFi通信模块来解决这一问题。
1 模块整体设计
飞行设备中各种传感器提供其检测部位的各个参数。这些庞大的数据由系统控制中心统一接收并汇总分析,然后对设备进行进一步的操作,同时将这些参数存储并发往地面总指挥中心。
设计中将传感器模块产生的0~5 V模拟量电压先通过滤波电路后又进行A/D转换成为数字量信号,之后传送给模块中的数字处理单元FPGA,待FPGA对此数字信号进行进一步滤波、编码之后,通过FIFO发送给无线传输芯片CC3200,CC3200将这些数据转换为无线通信格式并通过载波发送出去,具体框图如图1所示。

图1 系统整体设计框图
Fig.1 Block diagram for overall design of system
2 系统硬件设计
2.1 滤波及模/数转换电路设计
目前,传感器模块与数据采集模块必定存在一定的距离。所以为了避免传输过程中的电磁干扰,并且根据试验中选用的三向振动传感器产生的信号干扰频率大部分都大于2 000 Hz,所以采用在A/D转换前加入有源二阶低通滤波电路。
三向振动传感器有3路模拟量输出信号,所以传输模块中选用的ADS8365芯片保留了3路模拟量输入,其余3路输入上拉10 kΩ电阻。由于ADS8365内部数字部分和模拟部分完全隔离,所以模拟部分采用5 V,数字部分采用3.3 V,并且两者的地也互相隔离,以免模拟信号和数字信号互相干扰。通过适当的滤波电路,能够使得采集到的信号的噪声部分有效的消除,提高了信号的质量,具体电路如图2所示。

图2 ADS8365与FPGA连接电路图
Fig.2 Diagram for circuit of ADS8365 and FPGA connection
2.2 WiFi通信模块设计
Simplelink CC3200是第一款具有内置WiFi功能,并集成了高性能 ARM Cortex⁃M4内核的无线MCU,使用该芯片便可完成无线通信开发[3⁃7]。该芯片由微处理器系统、WiFi网络处理系统、电源管理系统三部分组成[3⁃7]。WiFi网络处理系统中有额外的专用的ARM处理器来负责WiFi功能,能够减少应用ARM处理器和WiFi互联协议的繁琐。并且系统内部有专门的ROM存储协议,从而节省处理器的负担提高系统的可靠性。
CC3200与FPGA的通信采用并行传输,并对FPGA内部的异步FIFO直接控制。
2.3 数字信号处理单元电路设计
本设计中采用Xilinx公司Spartan3系列FPGA作为主控芯片,FPGA芯片的优点在于其内部体系结构和逻辑单元可编程性高,便于开发人员的使用与设计[3]。FPGA芯片通过一定的时序控制ADS8365芯片,使其以固定的采样率对模拟信号进行采样得到数字信号,并将数字信号进行FIR滤波处理,然后对信号进行编码处理。最终FPGA将编码后的信号进行转换后传送给CC3200模块。
3 系统软件设计
3.1 ADS8365的时序设计
ADS8365内部包含6个独立的模/数转换器,它们被分为三对并与器件内部寄存器对应[4]。工作时,外部的三个信号控制着它们的工作,当
置低时(Δt>40 ns),与之对应的模/数转换器被初始化,同时复位寄存器并重新对外部模拟量输入信号进行模/数转换,最后存储在对应的寄存器之中。模/数转换器工作时需要16个时钟周期,数据的读取需要4个时钟周期,当这两个工作完成时,ADS8365会将
引脚拉低半个时钟周期,与此同时,FPGA芯片将会把
引脚置低,便可以读取到ADS8365并行输出总线上的数据。
3.2 CC3200的软件编写
CC3200的函数功能的实现都是采用任务调用的方式,从而提高了其对外部中断及WiFi网络处理子系统的响应速率,具有很好的实时性[5]。其通信方式选择使用UART模式来实现。
本设计利用CC3200实现无线通信的软件部分是在CCS6.1.0中编写的。其整体设计流程如图3所示。设计中主要完成了待发送数据的解码校验与再编码、WLAN终端模式创建与数据发送、指示灯任务的三个任务的编写。
数据的解码校验与再编码是为了对FPGA内部的异步FIFO进行控制,读取其中的数据并进行帧格式分隔和校验,然后将正确的数据存储。CC3200通过判断FIFO的空标志来实现对数据的读取,当FIFO非空时,进行数据的读取工作。其中的764 B为有效数据部分,其余为帧格式。具体编码形式如图4所示。

图3 CC3200软件整体设计流程图
Fig.3 Flow chart for overall design of CC3200 software

图4 数据编码形式
Fig.4 Data encoding form
WLAN终端模式的开启与数据发送的任务的软件代码编写包括了WiFi子系统初始化、配置、WLAN连接、套接字连接、数据传输。WiFi子系统的初始化主要是将系统从休眠模式唤醒,并对使用到的变量进行初始化。初始化完成后,启动Simplelink,检测配置芯片的工作模式,若为STA模式,则跳过配置操作,否则进行STA模式配置。然后对CC3200的连接模式设置为AUTO+SmartConfig模式。接着清除各种文件和数据、断开之前的连接、使能DHCP客户端、失能扫描、设置CC3200的发射功率最大、设置WLAN模式为电源管理模式、注销mDNS服务器,最后关断SL。指示灯任务的主要作用是用来检测CC3200是否有数据的发送和接收。实时操作系统中每个任务是一个无限的循环,任务的执行通过任务调度器实现,并且任务的执行时间分配通过任务延时计时单元实现,从而保证任何一个任务都能在一定的周期内被执行到。
4 测试结果
试验验证的目的是检测通信过程中是否出现丢数的现象,采用无线路由器作AP,CC3200作为终端,在实验室中利用三向振动传感器作为模拟信号的输入。图5为三向振动传感器的参数设置界面,在试验中将对x,y,z三个方向进行振动测试,设置起始振动频率为20 Hz,截止频率为2 kHz,加速度起始为1 g,截止为10 g。

图5 三向振动传感器参数设置
Fig.5 Parameter setting of three direction vibration sensor
WiFi路由器通过网口调试助手经由网口向计算机发送数据。在实际环境下,20 MB的数据的读取需要4 min 15 s,数据传输速率为0.078 MB/s。在理论计算中,传感器通道的采样率为10 kbit/s,综合3路工作的情况,每秒应产生60 kB左右的数据,由于试验中的数据存在帧计数和标志位等自定义字节位,综合下来该数据接收速率也满足理论值。图6为HexEdit软件的接收数据的软件视图以及分析结果。

图6 HexEdit软件视图和分析结果
Fig.6 HexEdit software view and analysis results
5 结 语
目前无线传输技术已经非常成熟,而且各行各业目前也在不断地致力于将现有的有线通信模式逐步改进为无线传输模式,以节约成本,并增加了设备的应用灵活性,飞行器系统的设计也逃脱不了这种趋势。
本文设计的无线数据传输模块能够直接近距离将传感器输出的模拟信号转换成数字信号,并通过WiFi技术无线发送到控制单元,极大地节省了飞行系统的空间。同时通过硬件和软件的滤波设计以及适当的容错算法,使得最终获取的信号的质量满足既定要求,现已成功应用于某航天飞行测试项目之中。