Profile - CN533


CN533

基于FPGA的GSM智能控制平台

清华大学
计算机科学与技术


Finals


[print]


Project

Name of Project:基于FPGA的GSM智能控制平台

Contact Information

Name:杨智策
E-Mail:yangtianyigs@gmail.com
Telephone:01051532612
Mobile Phone:15101058062
Mailing Address:北京市海淀区清华园紫荆公寓2#612B

Contest Advisor

Name:许忠信
E-Mail:zxu@mail.tsinghua.edu.cn
Telephone:13366881125

Members

No.NameE-MailEnglish Name
1杨智策yangtianyigs@gmail.comYangZhice
2蓝天鸿lanth07@gmail.comLanTianhong
3朱亦博bobzhuyb@gmail.comZhuYibo

Project Paper - view as Preliminary(2009/06/15), Final(2009/09/14), Draft, Latest

1. 设计概述 (Preliminary Paper)

 

1.1设计意图

       手机作为最为普及的电子产品之一,已经深入到人们的生活之中,据统计估算,到2010年,中国手机用户数量将从2007年的5.40亿增长到7.38亿,移动通信的普及在给运营商带来丰富利润的同时,也极大地方便了人们的日常交流与生活。现在,GSM网络已经形成了极为广泛和稳定的信号覆盖范围,本项目以GSM模块为通信基础,以Cyclone II FPGA为开发核心,实现基于短信、DTMF按键信号、语音信号三个层面上的远程智能控制。
       用手机、有线电话等日常通信设备对设备进行智能控制的产品设想层出不穷,这方面的产品研究成果累累,但其至今仍没有广泛的进入到日常生活,其原因主要有以下两点:对小厂商而言,由于技术力量有限,产品主要以某一特定的控制为主,一块芯片只能控制某一类器件,缺乏真正的可扩展性以及丰富的外设支持,普通用户不愿意重复投资来获得多个功能不同但是本质一样的产品;对大厂商而言,其开发实力能够达到多用途的目的,但是产品往往产品昂贵,甚至只有概念性的产品,离普及还有距离,同时也缺乏足够的扩展性
       我们的项目首先提供的是一个基于GSM智能控制平台,平台由GSM通信模块实现对控制命令的接收,同时由FPGA搭建的智能控制系统实现命令到外设的执行。在实现了平台的稳定性以后可以进行快速的扩展性开发,同时,通过C代码层面上的更新,很容易实现硬件控制功能的更新。其原理可由图1表示:
 
图1 平台原理图
 
                   平台的搭建分为三个层次:
1.      短信控制模块,模块主要通过接受短信命令对外设进行控制,可用于非实时信息传输,主要应用为:监控、远程密码验证、远程计算机操作(已实现)、远程设备启动等
2.       DTMF信号控制模块,模块识别按键信息DTMF信号的控制请求,可应用于实时信息传输,主要应用为:超远程遥控、远程密码验证(电话缴费系统)、按键交互(语音平台)等
3.   语音控制模块,模块通过语音识别算法,对音频信号进行处理,提取有效信息息,对外设实施命令操作,主要应用为:语音智能控制、语音识别安全验证等
 
 
 
本项目首先完成以上平台的搭建,并实现以下的扩展功能,不排除在最终展示时提供更多的扩展功能展示:
远程可控LED显示屏。通过短信发送显示内容和控制指令到智能控制模块,实现对LED显示屏显示内容控制,本部分作为短信控制模块实现的具体应用,原理结构如图2所示:
 
 
图2 远程可控LED显示屏原理图
 

1.2适用范围与针对群体

           产品以智能控制平台的形式出现,适用范围广泛,在有良好GSM信号覆盖的区域均可使用。平台提供稳定友好的开发接口,可以根据实际需求快速开发,既可以搭建为家庭智能控制平台,也可以在实际生产中发挥重要作用,在安防、远程智能控制、监控、生产调度等方面有极为广泛的空间。

1.3选用FPGA的原因

         选用DE2-70作为开发平台,作为最新一代的教育开发板,有着较高的性价比。更加吸引我们的是开发板提供的众多外设接口为控制平台的搭建提供了广泛的扩展空间。当然,从简单的短信有效信息的提取,到复杂的语音识别以及图像算法的实现,利用NiosⅡ软核系统可以极大降低算法实现的难度,同时通过SOPC builder可以方便的实现多核通信,这对于多任务的智能化平台效率尤为重要。最重要的一点是,作为智能平台而言,代码复用以及功能模块搭建十分重要,FPGA能够为我们提供以上的需求。

 

(Revision: 8 / 2009-09-14 23:02:33)

2. 功能描述 (Final Project Paper)

远程可控LED显示屏

       短信控制远程LED显示屏展现的是平台中短信控制模块的扩展意义。
       用户通过发送短信到LED显示屏远程控制模块上,模块通过智能处理,识别用户命令改变外接LED显示屏的显示内容。远程可控LED显示屏可直接运用于道路交通提示牌、户外广告牌的管理,本项目提供了有别于传统广告与信息传播方式的智能平台,其交互性主要表现在一下几个方面:
       运用平台的短信接收接口,提取短信有效信息,显示到大型LED面板上,达到通过手机短信广而告之的效果。
       运用平台的DTMF处理接口,特定用户可以通过拨通电话通过按键实现控制显示运行速度,调节显示字体大小的功能,达到满意的广告效果。
       平台同时利用FPGA强大的可扩展性能,提供了web服务器控制输出显示的功能,这样在只要用户能够方便的连接到互联网,就能够通过注册用户的身份通过简单的网页点击达到控制LED显示输出的功能。
 

支持短信查询的web服务器

    综合短信接口与web服务平台,用户可以通过手机短信查询天气、交通等常用信息,反馈信息将通过短信或者LED显示的方式传递给用户,web服务平台保证了管理员能够及时有效的对服务器资料进行更新与维护,保证了数据的时效性。

(Revision: 7 / 2009-09-15 22:43:25)

3. 性能参数 (Final Project Paper)

 

DE2_70开发板资源占用情况
Altera Cyclone II EP2C70F896C6 FPGA
32M*2 SDRAM
8M SSRAN
4M FLASH
50MHz晶振
GPIO扩展接口
DM9000A网卡
 
LED单元板参数
发光直径:Φ3.75mm
尺寸大小:64点宽*16点高
扫描方式:1/16扫描
颜色:单红
工作电压:直流5V
时钟频率:100KHz
行扫描频率:781.25Hz
 
GSM模块参数
频段:EGSM900、GSM1800
工作电压:直流3.3~4.8V
电流消耗:休眠状态电流消耗为3.5mA,空闲状态为25mA,发射状态为300mA(平均),峰值为2.5A
功耗:在EGSM900(4类)和GSM1800(1类)分别为2W和1W
SIM卡电压:3V/1.8V
波特率:,可选波特率为300b/s~115kb/s , 自动波特率为1.2kb/s~115kb/s
通信模式:语音和数据
短信编码:Text和PDU格式
指令集:AT指令
体积大小:54.5mm*36mm*6.7mm
重量:18g

 

(Revision: 10 / 2009-09-15 00:15:51)

4. 设计结构 (Preliminary Paper)

4.1平台结构图

    智能平台是本项目的重点,其平台性由硬件接口的易用性体现,图3是平台性的功能的示意图:
图3 平台结构图
   远程可控LED显示器(图4)是基于上面平台的其中一种搭建方法下面结构图中阴影部分为未使用的平台功能
4 远程可控LED显示屏结构图(阴影代表未使用功能)

4.2硬件框架(以远程可控LED显示屏为例)

 

    对LDE显示的内容的控制主要通过三种方式进行:
    一是通过发送手机短信到终端,由于中文短信的传输模式按照PDU编码规范,通过信息处理得到有效信息Unicode编码,之后通过点阵字库的映射得到LED能够显示的16*16或者8*8点阵数据,再由显示控制电路达到滚动显示的效果。
    二是通过登陆通过uclinux架设的web服务器对目前正在显示的信息进行更新与维护。
    三是接通手机后,通过解析双音多频信号达到控制LED显示暂停和播放。
图5 硬件框架

4.3软件流程设计

   图6是短信等待过程的核心流程,目的是通过反复查询已得到收到短信的完整内容:

图6

图7是web服务器的主要功能示意图:

图7

(Revision: 4 / 2009-09-14 23:32:17)

5. 设计方法 (Final Project Paper)

5.1自制GSM通信模块外接电路

    模块采用了德国西门子生产的TC35i开发板,此型号应用广泛,网络资源丰富,官方提供了详细 的技术文档,模块功能强大,性价比很高,支持EGSM900GSM1800双频,支持数字、语音、短消息和传真,完全能够满足我们对通信功能的需求。

 

图8 TC35i

    官方文档对模块40针的每个引脚都进行了说明,外接电路的目的为的是GSM模块FPGA电源条件下的正常启动与稳定工作。
       模块电源可以接5V的外接电源,利用了DE2丰富的外设支持,我们接到了GPIO口的11脚(输出电压为5V),这使得我们对模块的统一操作成为可能。输入电压经过二极管D1降压(压降约为0.7V),tc35i的输入电压VBAT=4.3(tc35i的正常工作电压为3.3V<=VBAT<=4.8V),LED1指示电源状态,两个电解电容进行滤波以保持电压稳定。      
       启动引脚IGT和关机引脚PD分别接一个三极管开关,三极管导通时IGT(PD)为低电平,三极管截止时IGT(PD)为高电平。由于模块的启动对电压的时序有要求(这是因为TC35 i的启动设计主要考虑的是普通的弹簧开关电路),为了能对开机电压时序有较好的控制,我们将IGT连接到DE2 70的GPIO口,通过操作GPIO口的电平变化来达到开机电平的时序要求。
      图9是设计好的电路:

图9

      图10是经过几次改良好的电路板:

图10

5.2短信处理模块

       短信处理模块的功能主要使用了Nios II来进行完成,这是因为本部分主要是对GSM通过串口传输得到的短信信息进行解码与处理,得到LED显示控制模块能够识别的Unicode编码。这样的解码功能虽然利用VHDL代码能够进行,但是充分利用Nios II平台用软件代码进行开发无疑具有更高的效率和更加稳定的运行速度。同时通过软件代码实现串口数据的校验工作以及密码验证等高级功能也更加方便。
       短消息的传输模式主要有两种,一种是PDU模式,一种是Text模式,前者可以发送多种字符编码,后者只能用于发送ASCII编码,主要用于英文字符的发送,不支持中文字符。国内通信网络主要采用的是PDU模式的传输。
       通过查阅资料,本模块实现了对短信代码PDU模式下的7-bitUCS2两种编码方式的解析,可以完成短信代码到Unicode编码的转换,同时实现了对指定文本编码后发送。
       感谢一下两个作者对PDU编码模式进行了详细的解说与分享:
    模块中还涉及部分AT指令对GSM模块进行设置,此部分的操作主要参照AT指令的工业标准完成。

5.3音频处理模块

       项目采用的TC35i模块有音频输出针脚,输出音频为模拟量输出,为了能够对输出音频进行处理,利用了DE2-70开发板提供的24bit的音频处理芯片Wolfson WM8731 audio CODEC
       项目初期,我们在通过纯硬件实现了音频的A/D转换,并且得到了合适的采样率,图11是完成的模块图:
图11
     后来通过查阅资料发现,Altera提供了方便的教育计划IPAudio和AudioVideoConfig,分被用于使用和配置音频处理芯片,配合DTMF信号的解析,我们采用了20bits采样位宽和8kHz的采样频率,直接将音频数字信号输出到DTMF信号解析模块进行DSP处理。

5.4 DTMF信号解析

       DTMF是双音多频的简称,手机键盘的有效按键同如下的频率表相对应:

频率/Hz

1209

1336

1477

1633

697

1

2

3

A

770

4

5

6

B

852

7

8

9

C

941

*

0

#

D

       在手机通话过程中,按键通过上述一高一低频率的叠加进行信息传递,本模块通过对音频数字型号的DSP处理达到对DTMF信号的解析,从而达到提取用户手机按键的信息的目的,最终实现良好的交互性。

       本模块的关键技术是对音频信号进行DSP处理得到频域信息。常见的方法主要有两种,一种是通过数字滤波器进行滤波,一种是通过FFT算法处理直接得到频域信息。从运用的广泛性着眼,本项目采用了FFT算法对数字信号进行处理。

       我们首先找到的是软件代码的FFT算法,可能是Nios II 处理器性能所限,也有可能代码优化存在问题,没有达到及时处理的效果,最终我们决定采用硬件对FFT进行处理。

    Aletra提供了FFT算法的IP核,可以直接在Quartus II下进行模块图的搭建,但是本项目采用的是搭建和仿真都更加方便的集成在Simulink 中的DSP builder插件,通过学习FFT模块的使用方法,成功搭建了如下的模块图:

8Hz的仿真输入如下:

下图是输出结果:

5.5 Web服务器架设

 

   本模块作为控制平台的扩展,实现了基于以太网的信息发布、查看功能。我们在FPGA上实现了一个基于http协议的web服务器。用户只需用网线将FPGA接入广域网或局域网中并进行简单的设置,则所有能够连接到该FPGA的电脑均可以使用普通网页浏览器如IE、火狐等登陆到FPGA上查看本系统发布的信息。如果用户有管理员密码,则还可以即时修改本系统中存储的循环滚动信息。

   本模块利用SOPC Builder创建了一个SOPC,其包括一颗NiosII CPU以及对板载SDRAM、板载DM9000A网卡与GPIO。我们成功移植了uClinuxFPGA上,再在linux中进行编程并交叉编译为能在uClinux中运行的程序,利用boa技术实现了http协议与交互式web服务器。最后将其下载到FPGA板上运行。

 

    下图为编译过程截图:

   下图为处理提交动作的linux下代码:

这是最终通过浏览器看到的交互界面:

 

5.6 LED显示控制模块

      LED单元板是本项目用于输出显示的重要设备,其结构如下图所示:

单元板由直径3.75mm的红色发光二级管阵列组成,阵列下集成有用于显示控制的基本电路。根据单元板的规格不同,有不同的但固定的大小尺寸,为了能够加大显示面积,需要对相同的单元板进行连接,如下图所示:

 

由于LED单元板还没有统一的工业生产标准,我们采用的是常见的16接口:

2

A

B

C

D

G1

G2

STB

CLK

16

1

N

N

N

EN

R1

R2

N

N

15

    由于可以参考的资料极少,我们起初只知道接口名称,通过反复实践,我们得到各个接口的功能如下:

    ABCD 为行选信号

    STB(LT)为锁存信号

    CLK(CK)为时钟信号

    R1R2G1G2为显示数据(组成16行时用到R1G1,组成32行时,下面16行用到R2G2),若是单色只需要R信号,双色时才用到G信号EN为显示使能,N为地(GND)
    这是根据各个接口功能写出的控制LED滚动显示的硬件模块:

    行选信号使用的是一个4-16译码器,每一个时钟周期到来时数据就左移一位,我们使用的是128*16led点阵,所以当时钟频率是行扫描频率的128倍且每扫描完一行则列信号输入一位数据时即可实现逐点扫描,当扫描到某点时使能为0该点则亮,使能为1该点则不亮。
    对于动态显示,以左移为例,移位的频率是10Hz,也即是每0.1秒数据从右向左移动一列,实现的原理就是每一个移位信号的上升沿到来时就将右边一列的数据赋给左边一列显示的效果是如果清零信号为1,则显示屏上什么也不现实,如果清零信号为0则从右向左滚动显示数据内容。
       项目的短信处理模块最终输出的是Unicode编码,也就是能够显示包括中文在内的众多字体,为了能够得到LED能够显示的点阵字库,我们寻找了网络资源,得到了16*16点阵字库,并通过指导教师提供的pic2mif转换工具,将点阵字库.dzk文件转换成.mif文件:
     .mif文件通过ROM存储在FPGA中,如下图所示:
    最后得到了如下的显示效果:

 

(Revision: 10 / 2009-09-15 00:49:51)

6. 设计特点 (Preliminary Paper)

        1.利用Nios II平台,同GSM模块进行指令交互。实现了短消息编码与解码。简单高效的维持了平台的稳定运行。
       2.DSP用于信号处理。平台涉及大量信号,来自按键的DTMF信号由TC35i音频接口输出,通过Simulink DSP builder,高效地完成了从设计、生成、仿真模拟到实践的开发过程,同软件实现算法相比,有着不可比拟的速度优势。
       3.多核提供并行处理能力。SOPC builder方便直接的可视化设计界面使得平台依赖多核的搭建成为可能,使得对平台多核处理的需求成为可能,平台的第一个核心主要用与维护平台同GSM交互等基础功能,平台的另一个核心则提供了扩展任务的需求,本项目中为web服务器提供了稳定高效的计算支持。
       4.自制GSM外接电路。保证了GSM模块在开发板提供电源的条件下成功开启与稳定运行,通过电路设计,为GSM串口通信提供了方便的连接方式。

5.LED单元板驱动开发。在只有单元板基础电路板的条件下,通过反复尝试,成功控制了LED基础接口,实现了动态显示16进制点阵图像的功能。

6.通过对Unicode编码的解析,实现了对多国语言显示的支持,满足了不同语言的服务需求。

7利用boa技术实现了FPGA交互式web服务器的搭建,这满足了管理者对服务器数据更新的需求,也使得用户通过手机短信查询互联网同步的天气、交通等常用信息成为可能。

 

(Revision: 8 / 2009-09-15 22:45:37)

7. 总结 (Final Project Paper)

       本项目利用sopc的设计方法较好的完成了预先的设计方案,并且最终形成了具有一定实用性的智能控制平台。实现了短信到LED显示屏的动态显示,实现了通信后手机按键对LED显示的控制,实现了具有良好交互性能的web服务器,实现了短信到web服务器的信息查询并通过短信反馈的查询方法。项目拓展了传统的信息发布与获取的渠道,使短消息这一常用的信息工具更加深入人们生活,采用的web服务器功能则将平台同互联网相连接,进一步提升了平台的课扩展性。

       设计制作过程中,我们自行设计的GSM外接电路,保证了模块工作的稳定性;我们采用Nios II处理器,保证了同GSM模块通信的稳定性以及短信解码的高效性;作为扩展功能,我们采用双核的技术,保证了uclinux运行同平台计算资源的独立性;我们运用Simulink通过DSP builder工具高效的实现了双音多频的解码功能;我们通过反复实践,掌握了LED单元板的控制方法,纯硬件实现了单元板的显示控制;我们通过boa技术使FPGA交互式web服务器成为可能。

       我们的工作启蒙于上学期的数字逻辑课程,最终受益于奋战的日日夜夜,过程中来自不同系的我们相互弥补对方的专业所限,互相帮助,共同进步。通过sopc编辑器我们明白了Nios II处理器稳定性与易用性,同时反复的实践我们体会到了硬件计算的高效性,我们反复磨练自己的硬件编程语言,同时也惊叹于基于DSP builder的崭新设计思想。

       感谢Altera公司、友晶公司以及其他本次大赛的赞助商们对我们的项目支持,感谢指导教师一致陪伴和指导我们,感谢过程中帮助我们的各位师兄,感谢我们团队中的各位成员。

(Revision: 4 / 2009-09-15 22:44:16)