原创】基于STM32的WIFI无线网络应用设计毕业论文设计说明书_第1页
原创】基于STM32的WIFI无线网络应用设计毕业论文设计说明书_第2页
原创】基于STM32的WIFI无线网络应用设计毕业论文设计说明书_第3页
原创】基于STM32的WIFI无线网络应用设计毕业论文设计说明书_第4页
原创】基于STM32的WIFI无线网络应用设计毕业论文设计说明书_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SHANDONGJNIVERSO宦7TECHNOLOGY毕业设计说明书基于STM32勺WIFI无线网络应用设计I毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指 导教师的指导下进行的研究工作及取得的成果。尽我所知,除文 中特别加以标注和致谢的地方外,不包含其他人或组织已经发表 或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢作者签名:日 期:-指导教师签名:日 期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定

2、,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文; 在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进 行研究所取得的研究成果。除了文中特别加以标注引用的内容 外,本论文不包含任何其他个人或集体已经发表或撰写的成果作 品。对本文的研究做出重要贡献的个人和集体,均已在文中以明 确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期: 年 月 日学位论文版

3、权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规 定,同意学校保留并向国家有关部门或机构送交论文的复印件和 电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名:日期: 年 月随着无线局域网技术的快速发展,无线终端已经融入了我们的生活, 无论是智能手机还是笔记本,WiFi功能几乎是必不可少的。目前WiFi技术主要的应用还在手持终端,但随着用户需求的越来越广泛,WiFi技术也需要应用到不同的方面如工业控制,移动办公等,

4、这就需要不同形式的终 端。本文开发并实现基于一种嵌入式开发平台的STM32的WiFi模块,使一些嵌入式设备也能够使用无线资源。论文首先讨论了基ARMCortex-M3的嵌入式开发技术,介绍了 WiFi网络的发展现状及前景,利用 STM32F103VCT6串口连接 WiFi模块,介绍了 UCGUI在STM32平台上的移植,最后,在此基础上进行基 于uCGUI的多窗口应用界面的设计,实现了 WiFi热点接入界面的开发。关键词:STM32 WiFi,UCGUI, LCDABSTRACTToday with the rapid developme nt of wireless LAN tech no

5、logy, wireless termi nals gradually in tegrated into our lives. WiFi fu nctio n is almost esse ntial whether it is a smart phone or a laptop. Currently the main application of WiFi tech no logy still embedded developme nt platform based on the STM32 WiFi module, and enable some embedded devices to u

6、se the wireless resources. Firstly, we discuss the embedded developme nt tech no logy based on ARM Cortex-M3 , in troduced a WiFi n etwork developme nt situati on and prospects, using the serial port using the STM32F103VCT6 WiFi module, i ntroduced in the STM32 platform UCGUI tran spla nt, fin ally,

7、 on this basis, based uC GUI applicati on of multi-w in dow in terface desig n, to achieve a WiFi (void);设置波特率,中断类型 等,在本项目中设置波特率为115200bps,接收和发送都产生中断以保证其既能 发送数据又能接受数据。WiFi开发模块为开发者提供了一个数据结构NetParaBuffer来统一每个参数的格式,其具体结构如下:typedef struct NetParaBuffer un sig ned char Md;参数名称un sig ned char cLe ngth;参数长

8、度un sig ned char cln fo64;具体的参数内容在配置到 WiFi的相关参数后,调用 WiFi_Para_set_auto()使WiFi处在自动模式并联网,这就可以通过AP连上网了。之后的数据直接调用SendDataToWiFi 就可以通过USART将数据发送到 WiFi模块,根据之前设置的服务器IP地址通 过AP发送出去。具体程序流程图如下:图5-2串口初始化流程图5.2.2 TFT-LCD 底层驱动设计5.2.2.1 与读取写入相关的寄存器由ILI9325数据手册可知,索引寄存器(Index Register )存储指令或显示 数据即将被写入的寄存器的地址,寄存器选择信号

9、( RS、读写信号和数据总 线用来读写ILI9325内部的指令或数据。因此,要访问9325内部的寄存器或显示RAM首先要通过IR索引寄存器设置目标寄存器的地址。除了 IR寄存器,与读写访问有关的寄存器如图5-2所示:图5-3与读写有关的寄存器 表5-1说明了每个寄存器的具体用途:表5-1与读写有关的寄存器说明R20h, R21h ( GRAM 水平垂直地址设置寄存器)此寄存器用来设置地址计数器(AC)的初始值。随着数据被写 入内部GRAM,地址计数器按照 之前所述的AM、ID位的设置自 动更新。当从内部GRAM读取数 据时,AC不自动更新。R22h (GRAM写数据寄存器)这个寄存器是GRAM

10、访问接口。 当通过这个寄存器更新显示数据 时,地址计数器(AC )自动增加 或减少。R22h (GRAM读数据寄存器)此寄存器用来从GRAM中读出显 示数据。522.2 读取写入数据的过程ILI9325内部具有一个16位的索引寄存器(IR),一个18位的写数据寄存 器(WDR和一个18位读数据寄存器(RDR。WD寄存器用来临时存储即将被 写入控制寄存器或者内部 GRA啲数据,RDR寄存器用来临时存储从 GRAM读出的 数据。来自MPUI勺将被写入内部GRAM的数据首先被写入 WDR然后再被自动写 入GRAM MPU通过RDR寄存器读取内部GRAM的数据。因此,在读取9325内部 GRAM的数据

11、时,第一次读出的是无效数据,从第二次开始读取有效数据。当读 取GRAM的地址改变时,第一次读取的仍为无效数据。读取数据的流程如图4-3所示:图5-4 ILI9325 读内部显示数据流程图首先,根据在初始化时设置的 GRAM地址刷新方式(由ID、AM位的组合值确 定)以及窗口地址区域的起止坐标(由 HSA HEA和VSA VEA联合确定)设置 填入地址计数器AC的初始地址值M由于第一次读出的显示数据是 RDR卖数据锁存器中的无效数据,因此需要进 行第二次数据读取,以得到真正有效的显示数据。由于在读取GRA显示数据时地址计数器 AC的值不会自动更新,因此在希望 读取另一地址处的显示数据时需要重新设

12、置 AC的初值并重复以上过程。5.2.3具体程序实现由前面的时序图得之,读写ILI9325内部的寄存器或显示RAM的过程是先在 索引寄存器写入地址,然后写入命令数据或颜色值,读写内部寄存器或 GRA啲 具体流程如图5-5所示:开始WRlR XR=0选 择IR寄疔 器,WR=O+向用昏 冷器写入H的奇存 器地址V从指逛控制寄存 器读出出前状誉向抬胞寄存器或GRAMS入具休数册从GRAM指定地址处读 出显示数据(需连读 两次,第:次冇效*结束图5-55.3网络数据传输报文设计所选WiFi模块在自动模式下始终工作在透明数据传输状态,因此用户只需 把它看做一条虚拟的串口线。为了能够保证数据能够在网络上

13、顺利传输以及平 台的兼容性,需将发送至串口的报文制定统一的数据结。一个好的数据结构是 模块稳定的保证,是系统提供模块类型的体现,除了可以保证模块的可扩性, 还可以为系统的扩展提供保障。本项目中,WiFi模块所在的系统架构为CS架构,这就要求数据报文除了需 要模块能够正确的处理,同时要求服务器能够解析。对于服务器端,主要由项 目中其他人解决,这里根据数据数据格式的用途及服务器和客户端的特点,可 以将数据包分为两类,一类与信令相关的结构,一类与数据相关的结构。对于与信令相关的数据包主要包括注册请求报文,注册应答报文,呼叫请求报 文,呼叫通报报文,被叫端呼叫应答报文,服务器呼叫应答报文,报文格式如图

14、5-6至图5-11t hit卜 bftf hit 卜 bit*杯丘. 卜 bitIt bit卜 bdt标号kniiclofflLKt图5-6注册请求报文K bit8 bi tIt b11H bi 总仅度类型1RandomLKC:图5-7注册应答报文I11fe bi it tHtfe 亦“祐卡t bit匕 bii1* 斯长t b| t滩怀K=!沽标K=1的莎7LKV图5-8呼叫请求报文bitb hitb bitK b i L * 17)?. l bilt bit七bit*度F bil卜bi t图5-14结束报文从图中可以看出数据类报文结构和信令类相比,有了包号,数据长度和数 据字段,其中数据长度

15、和数据主要表示传输的数据,而对于包号,主要作用是 中断可以根据包号重组收到的数据包,保持数据包的完整性。5.4 uCGUI的移植5.4.1 uCGUI的目录结构uCGU推荐的目录结构如图4-7所示,在工程文件夹中保持uCGU程序文件 (包括头文件)的独立性和完整性可以使 uCGUI的升级更加简单(仅需简单的 替换GUI子文件夹)。i C ConfigS O GUI_ AntiAliasL I ConvertColorI ConvertMono T1 Core Q JPEG :-Qj Font 11 LCDDriver j-C 1 MemDev j Qj Widget I WM图5-15 uCG

16、UI目录结构各个子文件夹的内容说明如下表所示:表5-2 uCGUI文件结构及说明目录内容Config配置文件GUIA ntiAlias抗锯齿支持*GUICo nvertMo no用于灰度级显示的颜色转换程序*GUICo nvertColor用于彩色显示的颜色转换程序*GUICoreuCGUI核心文件GUIFo nt字体文件GUILCDDriverLCD驱动程序GUlMemDev存储设备支持*GUIWidget控件库*GUIWM窗口管理器*注释:标注“*”的为可选模块542 在目标系统上应用uCGUI的配置过程uCGUI的移植过程如图5-15所示:图5-16 uCGUI移植过程1. 底层驱动程序

17、,使其可以正常显示。2. 在工程项目中加入uCGUI程序包3修改有关的配置头文件(在将uCGUI程序包加入到工程项目文件中后,首 先要做的就是要对uCGUI进行相关的配置,以使其与自己所采用的具体硬件环 境相适应。具体步骤如下:编写 TFT-LCLCDConf. (); LCD 控制器初始化函数#en dif5.4.4 GUIC onf. (U32)(OSTCBCur-OSTCBPrio); voidGUI_X_I ni tOS(void)DispSem = OSSemCreate(1); voidGUI_X_U nlock(void)OSSemPost(DispSem); voidGUI_X

18、_Lock(void)INT8U err;OSSemPe nd(DispSem, 0, &err);5.4.5 ILI9235的初始化ILI9325的初始化需要配置众多的寄存器,用于配置电源模块、工作模式、 伽马校正等等,具体每个参数的含义可以查阅ILI9325数据手册,其中最重要的用于配置工作模式的寄存器之前已经介绍过。一般在购买液晶屏时会附赠屏 幕所用液晶控制器的初始化程序,我们可以在稍加修改使其满足自己的特定需 要后直接调用这些初始化程序。本文所用程序中ILI9325液晶控制器的初始化函数原型如下:void LCD_9325_I ni t(void);ILI9325液晶控制器在开始配置之

19、前首先要进行复位。由之前的LCD转接板原理图可知ILI9325 RST复位引脚连接的是STM32的PC1引脚,且RST引脚 是低电平有效,所以为了产生有效的复位信号,需要将PC1引脚电平拉高一一拉低一一再拉高,具体实现的程序代码如下:GPIO_SetBits(GPIOC, GPIO_Pin_1 );Delay(OxAFFF);GPIO_ResetBits(GPIOC, GPIO_Pin_1);Delay(0xAFFF);GPIO_SetBits(GPIOC, GPIO_Pin_1 );Delay(0xAFFF);5.4.6 LCD 底层API的编写在将uCGUI用于具体的液晶显示器时需要提供

20、TFT-LCD的底层驱动函数。由 于uCGUI本身提供了很多液晶控制器的驱动,很多时候只要在LCDConf.)。然后,按照uCOS-II系统初始化的要求,创建了一个优先级最高(优先级为2)的起始任务:App_TaskStart(),接着调用系统函数OSStart()开始多任务 管理。在起始任务中,我们创建了 3个用户任务,分别是:1. _Task_0,优先级为5,用来维护_Task_0窗口;2. _Task_1,优先级为4,用来维护_Task_1窗口;3. _GUI_Task,优先级为3,用来维护背景区域。下面简要介绍一下_Task_0任务的工作流程,_Task_1与_GUI_Task的工作

21、过程与_Task_0类似。_Task_0的工作流程图如图5-2所示: 首先:调用函数 FRAMEWIN_Create()和 WM_CreateWindowAsChild()分别创建 了框架父窗口和子窗口,然后调用函数 WM_SelectWi ndow()和GUI_SetFont()选择了子窗口为其并设置了显示字体。接下来进入任务主循环:计算滚动文字移动范围并调用函数WMnvalidateWindow()使子窗口失效,然后通过调用回调函数 cbCallbackTO(WM_MESSAGE * pMsg)来重绘窗口并最终实现滚动文字效果。 _Task_1与_GUI_Task的工作流程与_Task_O

22、类似,只不过_Task_1移动的是窗 口,_GUI_Task用来维护显示背景。图5-18 Task 0任务工作流程图以上三个任务实现了滚动文字及移动窗口的动态显示效果。在所有任务创建完毕后,系统进入了正常的多个任务同时运行的状态第六章结论本文在嵌入式系统和WiFi无线网络技术的基础之上,介绍了 WIFI-M03模 块的参数和操作流程,重点分析了网络数据传输协议的报文设计和以及无线热 点接入图形界面的开发等问题,以达到一个精简的目的。全文分为三大板块:1. 详细介绍了嵌入式系统及 WiFi无线网络的基础知识。2. 详细介绍了嵌入式系统的硬件平台,其中包括芯片的选择,32位的STM32F10微处理

23、器主要特点,以及 WiFi模块的操作流程。3. 在软件设计部分,首先给出了该系统软件设计的分层框图,详细介绍了 LCD 驱动程序、串口初始化程序、 WiFi参数配置程序的编写,重点分析了网络数据 传输协议报文的设计,简述了 UCGU在STM3嵌入式平台的移植,并在此基础上 进行了 WiFi无线热点接入图形界面的开发。本设计方案在性能方面超过了传统8位或者16位微处理器,提高了系统的性 能,实现了更多的功能;在价格方面,由于 32位ARM微处理器价格的不断下降, 相对于那些大型服务器其成本已经非常便宜。参考文献1 沙占友等单片机外围电路设计北京:电子工业出版社,20032 美Berger,A著吕骏译嵌入式系统设计电子工业出版社,2002.93 嵌入式系统设计教程,马洪连等,电子工业出版社,2006.64 周立功著.ARM嵌入式系统基

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论