Software Engineering and Applications
Vol.3 No.04(2014), Article ID:13935,6 pages
DOI:10.12677/SEA.2014.34014
Design of a Electronic Firecrackers System Based on FPGA and WiFi Technology
College of Information Science and Technology, Chengdu University of Technology, Sichuan
Email: 946551845@qq.com
Copyright © 2014 by authors and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
Received: Jul. 2nd, 2014; revised: Jul. 28th, 2014; accepted: Aug. 6th, 2014
In view of the problems of traditional fireworks such as safety and pollution, we proposed a design scheme of the electronic firecrackers system which heavily relies on the core of FPGA and WiFi technology. The design of hardware circuit and software is mainly discussed in this paper. The results show that the system has the simple structure, less pollution, high safety, high reliability, etc. So the system has a positive effect on the future environmental protection and the personal safety.
Keywords:FPGA, WiFi, Electronic Firecrackers, Software Design, Android
任小强,陈金鹰,吴 蓉,李文彬
成都理工大学信息科学与技术学院,成都
Email: 946551845@qq.com
收稿日期:2014年7月2日;修回日期:2014年7月28日;录用日期:2014年8月6日
针对传统鞭炮的安全及污染等问题,提出了一种以FPGA和WiFi为核心的电子鞭炮系统的设计方案,对该设计的主要硬件电路和软件进行了初步探讨,结果表明该系统具有结构简单、污染性少、安全性高、可靠性强等特点,对未来环境保护与人身安全具有一定的积极作用。
FPGA,WiFi,电子鞭炮,软件设计,Android
鞭炮在它的生产、运输、销售和燃放过程中都存在着危险,很容易发生爆炸和火灾事故,波及人身与财务安全,增加政府安全防范资金和设施的投入,浪费财政资金。在鞭炮燃放的同时,释放出大量含有二氧化硫成分的气体,该气体严重污染空气环境,吸入人体造成身体危害。然而燃放鞭炮是中国人民的传统习俗,过年、结婚、庆祝、盖房子上梁等喜庆日子都要放鞭炮。此外,在春节期间,放鞭炮作为春节最重要的一项风俗,象征的一年的开端,如果禁止烟花爆竹的燃放,春节的文化意义与文化习俗就会遭到破坏。为了更好的解决问题,使得人们在即保留传统习俗而又不污染环境与人身安全的情况下,本文设计了基于FPGA与WiFi的电子鞭炮系统[1] [2] ,能够有效地解决上述问题。
电子鞭炮硬件的部分电路主要有SD存储卡模块、TLV320AIC23B音频解码器、WiFi模块和FPGA控制器等部分组成,由FPGA控制在LCD上显示SD存储卡播放电子鞭炮的状态,WiFi控制FPGA实现鞭炮的远程的播放,TLV320AIC23B输出音频,电子鞭炮硬件电路结构如图1所示。
2.1. SD存储卡模块
SD存储卡是用于MP3、数码相机、手机等设备的一种高速存储系统,基于半导体快闪存储器制造[3] ,其接口支持SD模式与SPI模式,SD模式允许4位数据宽度的高速数据传输,SPI模式采用简单的SPI外设接口,相对于SD模式来说传输速度较低。本设计采用SPI外设接口与FPAG通信,SD存储卡硬件接口电路原理图如图2所示。
SD-DAT3是片选信号(SD卡引脚1),SD-CMD是SPI接口数据输入信号(SD卡引脚2),SD-CLK是SPI接口时钟输入信号(SD卡引脚5),SD-DAT是SPI接口数据输出信号(SD卡引脚7),其它数据引脚置空。
2.2. TLV320AIC23B音频解码器模块
本设计采用专用数字立体声音频解码器TLV320AIC23B对语音信号进行采集[4] ,具有处理速度快、设计周期短、性能可靠且稳定等优点。其引脚根据功能可以分为电源与时钟引脚、语音信号输入引脚、语音信号输出引脚、配置控制引脚和数字音频接口引脚。数字音频电路通信总线(Inter-IC Sound Bus)一种专用于数字音频系统的串行总线协议[3] ,简称IIS总线。II-S总线使用了三根串行总线:一个双向数据传输线SD、一个声道选择线WS和一个时钟信号线SCLK,数据信号与时钟信号是独立传输的,这样有效地避免了信号的时差诱发失真,接口电路如图3所示。其中左边为模拟电路接口,输入部分直接将立体声的电信号从线路输入或者将语音信号变成电信号输入,输出部分将语音信号输出,可以直接驱动耳机或立体声设备,其中MBIAS、MICIN为麦克风输入引脚,HPR、HRL为耳机输出引脚,AIN-L、AIN-R为线路输入引脚,LOUT、ROUT为线路输出引脚。右边为数字电路接口,其中MODE、CS、SDIN、SCLK
Figure 1. The hardware architecture diagram of system
图1. 系统的硬件架构图
Figure 2. The SD memory card diagram of interfacing circuit
图2. SD存储卡接口电路图
Figure 3. The interfacing circuit of audio decoder
图3. 音频解码器接口电路
等引脚用于控制接口;BCLK、DIN、LRCIN、DOUT、LCOUT等引脚用于数据接口。
2.3. WiFi控制模块
WiFi和蓝牙都是都是短距离连接技术,由WiFi联盟(WiFi Alliance)所持有,基于802.11标准,全称是指无线保真(Wireless Fidelity),具有传输速度快、频率范围广、有效距离长、价格低廉等优点。在Android的手机上,WiFi是一个实用的功能,通过WiFi使用浏览器可以浏览网页,使用腾讯QQ可以语音聊天,Gmail来收发邮件,主要好处就是速度快并且没有流量费用。Android中WiFi的操作非常简单,只要通过Setting-Wireless & Network-WiFi设置就可以使用WiFi连接路由器,WiFi的连接一般都会有密码,点击热点输入密码就可以完成WiFi的连接。Android中WiFi的基本框架包含WiFi内核驱动程序层、WiFi的JNI层、Android.net.WiFi框架层、Java程序应用层。Android的系统本身提供了包来管理WiFi的操作,主要有四个类管理WiFi的操作,WiFiManager管理WiFi的扫描、建立连接、配置等,ScanResult描述了开启扫描后的热点信息,包含SSID、Capabilities、Frequency、Level等,WifiConfiguration描述了WiFi的连接信息,包含SSID、SSID隐藏、Password等的设置,为WiFiInfo描述了建立连接后的信息,包含IP、MAC地址、连接速度等信息。
该设计的软件主要分为两部分,WiFi控制与按键控制。系统的功能流程图如图4所示。系统在上电以后首先执行初始化操作,初始化完成以后就判断是按键控制还是WiFi控制,进而执行相关功能。自顶向下的设计模式是现在软件编程中的重要思想,自顶向下的方法就是将一个复杂系统分成相对简单的若干个小模块,然后找出每个分模块的关键与重点,分别完成各个小模块的设计,最后将各个模块综合起来完成整个系统的设计,本设计采用自顶向下的设计模式。
3.1. Android的WiFi控制系统
Android是一个构建于Linux基础上,安全、可靠、高效的移动终端操作系统平台[5] ,主要有操作系统、中间件、用户界面和核心应用程序组成,从低到高分别是Linux核心层、系统运行库层、应用程序框架层和应用程序层。Android也是一个完整、开放而又免费的移动平台,它完整是应为Android公开了其所有源代码,这样开放人员就可以很方便的访问手机中的各类设备,它免费是指在该平台上开发的软件,无论开发工具还是签名认证都是免费的。其内部集成了依赖于硬件的GSM电话、蓝牙Bluetooth、WiFi、GPS等。这里采用Android系统控制WiFi模块,软件界面(图5)采用帧布局实现,中间的图片按钮是播放按钮,播放状态的控制按钮是通过线性布局布局实现的,从左往右依次为音量减小按钮、上一段按钮、暂停按钮、下一首按钮、音量增加按钮。
3.2. SOPC的Nios II嵌入式系统设计
Nios II系列软核处理器是Altera推出的第二代32位RSIC嵌入式处理器[6] ,Altera的Straitx、Straitx GX、Straitx II和Cyclone都支持Nios II处理器,SOPC (可编程片上系统)它是可编程逻辑技术把整个芯片系统放在硅片上,来用于嵌入式系统的研究和电子信息处理。具备以下特征:具有嵌入式处理器内核和片内高速小容量RAM资源、可供选择的IP资源和片上可编程逻辑资源、处理器调试接口和FPGA编程接口、部分可编程模拟电路等。本系统设计的主要资源有Nios II Processor处理器、JTAG UART下载接口、SDRAM Controller 存储器控制器、Flash Memory存储器、PIO接口、EPCS Serial Flash Controller、Avalon—MM Tristate Bridge三态桥、Interal Timer定时器、Character LCD,系统框图如图6所示。
Nios II集成开发环境使用C++语言来编程,各个模块之间通过总线三态桥Avalon连接,整个模块中,FPGA综合了Nios II处理器、FLASH存储器、SDRAM存储器、SPI串行接口等许多模块的最主要部分。在Quartus II开发环境中,点击“Tool”-“SOPC Builder”就可以打开系统的集成开发环境SOPC Builder,首先选择其左侧的“Nios II Processor”添加CPU模块,由于Flash的数据总线是三态的,所以Nios II CPU与Flash连接时需要添加总线Avlalon三态桥,SOPC Builder提供的PIO控制器主要用于完成Nios II并行输入输出信号的传输,选择左侧的“Peripheral”-“Microcontroller Peripheral”-“PIO”添加PIO控制
Figure 4. The mainly functional diagram of the system
图4. 系统的功能流程图
Figure 5. The operation Android interface
图5. Android的控制界面
Figure 6. The Software architecture diagram of SOPC
图6. SOPC软件系统架构图
器模块,Interval Timer控制器主要用于完成 Nios II处理器的定时中断控制,选择左侧的“Peripheral”“Microcontroller Peripheral”-“Interval Timer”添加Interval Timer模块。按同样的方法添加所有模块,添加完成以后,将CFI-FIASH与Avalon-MM三态桥建立连接,构建完成的SOPC系统,然后选择菜单栏中的“System”-“Auto Assign”-“Base Assign”与“IQRs”分别自动分配各组件模块的基地址与中断标志位操作。双击“Nios II Processor”后配置“Reset Vector”为“cfi_flash0”;配置“Exception Vector”为“sdram0”,配置完成以后,单击下方的“Generate”,生成Nios II系统。其中生成的SPOC系统的顶层模块引脚图如图7,SPOC系统的顶层模块结构图如图8所示,保存工程文件并给FPGA分配引脚,通过编译工具生成下载文件。
本设计以FPGA的Nios II嵌入式系统为核心,充分利用了FPGA芯片的I/O引脚,采用按键控制与基于Android的操作系统的WiFi控制来实现鞭炮的燃放与控制,SPI总线协议实现了读取SD卡音频文件,并通过音频解码器芯片TLV320AIC23B输出音频,采用LCD对当前的播放状态进行显示,并利用
Figure 7. The top-level module of system
图7. 系统的顶层模块
Figure 8. The top-level module of architecture diagram of system
图8. 系统的顶层模块结构图
LED指示灯显示音频强度。
- [1] 田媛 (2013) 基于单片机的音乐播放器的设计与实现. 湖南工业职业技术学院学报, 6, 112-120.
- [2] 贾永鑫 (2013) Android音乐播放器的设计与实现. 黑龙江大学学报, 11, 114-118.
- [3] 刘波文, 张军, 何勇 (2012) FPGA嵌入式项目开发三位一体实战精讲. 航空航天大学出版社, 北京.
- [4] 陈金鹰 (2013) 通信体系与前言技术. 机械工业出版社, 北京.
- [5] 陈会安 (2014) Java和Android开发实战详解. 人民邮电出版社, 北京.
- [6] 陈忠平, 袁碧胜, 龚亮 (2014) 基于VHDL的FPGA数字系统应用实践. 电子工业出版社, 北京.