基于STM32的WIFI无线网络应用设计论文说明书

上传人:仙*** 文档编号:104649434 上传时间:2022-06-10 格式:DOC 页数:40 大小:1.32MB
收藏 版权申诉 举报 下载
基于STM32的WIFI无线网络应用设计论文说明书_第1页
第1页 / 共40页
基于STM32的WIFI无线网络应用设计论文说明书_第2页
第2页 / 共40页
基于STM32的WIFI无线网络应用设计论文说明书_第3页
第3页 / 共40页
资源描述:

《基于STM32的WIFI无线网络应用设计论文说明书》由会员分享,可在线阅读,更多相关《基于STM32的WIFI无线网络应用设计论文说明书(40页珍藏版)》请在装配图网上搜索。

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

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

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

4、并实现基于一种嵌入式开发平台的STM32的WiFi模块,使一些嵌入式设备也能够使用无线资源。论文首先讨论了基ARMCortex-M3的嵌入式开发技术,介绍了WiFi网络的发展现状与前景,利用STM32F103VCT6串口连接WiFi模块,介绍了UCGUI在STM32平台上的移植,最后,在此基础上进行基于uC/GUI的多窗口应用界面的设计,实现了WiFi热点接入界面的开发。关键词:STM32,WiFi,UCGUI,LCDABSTRACTToday with the rapid development of wireless LAN technology, wireless terminals h

5、ave been gradually integrated into our lives. WiFi function is almost essential whether it is a smart phone or a laptop. Currently the main application of WiFi technology still handheld terminal, but with the users needs more and more widely, WiFi technology needs to be applied to different areas su

6、ch as industrial control, mobile office, etc., which require different forms of terminals.This paper developed and implemented an embedded development platform based on the STM32 WiFi module, and enable some embedded devices to use the wireless resources. Firstly, we discuss theembedded development

7、technology based on ARM Cortex-M3 , introduced a WiFi network development situation and prospects, using the serial port using the STM32F103VCT6 WiFi module, introduced in the STM32 platform UCGUI transplant, finally, on this basis, based uC / GUI application of multi-window interface design, to ach

8、ieve a WiFi hotspot access interface development.Key words: STM32, WiFi, LCD,UC/GUI目 录摘要IABSTRACTII第一章 引言11.1 ARM的发展趋势11.2 WIFI的发展背景2第二章 ARM系统的硬件平台32.1概述32.2嵌入式处理器的选择32.3 STM32F103的USART接口42.3.1 USART接口的引脚描述42.3.2 USART主要的特性52.3.3 数据发送与接收过程5第三章 WIFI技术与模块概述73.1 WiFi技术概述73.1.1 WiFi网络基本结构73.1.2 WiFi网络的

9、操作模式73.2 WiFi模块介绍83.2.1 模块硬件结构93.2.2 模块工作模式10第四章硬件模块设计114.1 系统硬件结构114.1.1 WiFi模块工作流程114.2 模块电路124.2.1 电源设计124.2.2 复位电路设计134.2.3 晶振电路设计134.2.4 调试接口144.3 LCD模块144.3.1 原理图144.4存储模块154.4.1 原理图154.4.2 功能描述15第五章软件设计165.1 系统软件设计框图165.2 驱动设计165.2.1 串口驱动设计165.2.2 TFT-LCD底层驱动设计175.2.3 具体程序实现195.3 网络数据传输报文设计20

10、5.4 uC/GUI的移植235.4.1 uC/GUI的目录结构235.4.2 在目标系统上应用uC/GUI的配置过程245.4.3 LCDConf.h的配置(低层配置)255.4.4 GUIConf.h的配置(高层配置)255.4.5 ILI9235的初始化275.4.6 LCD底层API的编写275.5 WiFi热点接入管理界面开发27第六章结论31参考书目32致33附录最小系统原理图34第一章 引 言随着信息技术的飞速发展,人类进入了后PC时代,嵌入式系统与互联网络已经无所不在,它们一起深刻地影响着我们的生活,而这两者的融合已经是大势所趋,如何让嵌入式系统接入网络已经成为信息领域研究和应

11、用的热点,越来越受到人们的重视。1.1 ARM的发展趋势ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。公司正式成立以来,在32位RISC开发领域中不断取得突破,其结构已经从V3发展到V6。ARM公司一直以IP(intelligence property)提供商的身份向各大半导体制造商出售知识产权,而自己从不介入芯片的生产销售,加上其设计的芯核具有功耗低,成本低等显著优点,因此获得了众多的半导体厂家和整机厂商的大力支持,在32位嵌入式

12、应用领域获得了巨大的成功,目前已经占有75%以上的32位RISC嵌入式产品市场。在低功耗,低成本的嵌入式应用领域确立了市场领导地位。90年代初,ARM率先推出32位RISC微处理器芯片系统SoC知识产权公开授权概念,从此改变了半导体行业。ARM通过出售芯片技术授权,而非生产或销售芯片,建立起新型的微处理器设计,生产和销售商业模式。更重要的是ARM开创了电子新纪元:采用ARM技术的微处理器遍与各类电子产品,在汽车、消费娱乐、成像、工业控制、网络、储存、安保和无线等市场,ARM技术无处不在。现在采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍与工业控制、消费类电子产

13、品、通信系统、网络系统、无线系统等各类产品市场。ARM技术正在逐步渗入到我们的生活的各个方面。世界各大半导体生产商从ARM公司购买其设计的ARM微处理器,根据各自不同的应用领域,加入适当的外围电路,从而形成了自己的ARM微处理器芯片进入市场。 目前,全世界有几十家大的半导体公司都使用ARM的授权,因此既使得ARM技术获得更多的第三方的工具、制造、软件的支持,又使整个系统的成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。国的中兴和华为也已经购买了ARM公司的芯核用于通讯专用的芯片设计。1.2WIFI的发展背景WiFi是IEEE定义的一个无线网络通信的工业标准(IEEE 80211)自

14、从1997年无线局域网标准诞生以来,WiFi的发展已经近十年了随着数据业务需求的不断增加,以IEEE 80211协议为基础的无线局域网(WLAN)的研究正逐渐为人们研究的热点。最初开发WLAN主要用于企业和家庭网络,通过有线LAN进行无线扩展,通过无线通信的方式实现有线LAN的功能,并以比有线网络更加低廉的价格和更加便、灵活的方式进行网络安装和维护。但是,随蜂窝移动通信产业的成功和WLAN技术的发展,出现了与电信网络融合提供公共WLAN服务的趋势,使人们可以通过WLAN非常方便地享受高速的无线数据服,这也极拓展了WLAN的应用空间。现在WiFi正在进入一个快速发展的阶段。其中,作为802.1l

15、b发展的后继标准802.16(WiMAX)虽然采用了与802.11b不同的频段(10-66GHz),但作为一项无线城域网(WMAN)技术,它可以和802.11b/g/a无线接入热点互为补充,构筑一个完全覆盖城域的宽带无线技术。由于移动运营商数目的增加,语音业务带来的ARPU必然呈现下降趋势,如何提供更多的数据多媒体业务也是移动运营商一直在思考的问题。在这样的背景下,WLAN在部署上取得了实质性的进展:WiFi和VolP的结合给固网运营商带来了契机;WLAN的热点覆盖计划也正作为3G的补充成为移动运营商新的利润点。未来WiFi的发展方向将包括:网络技术上覆盖更大的围,从热点到热区再到整个城市;推

16、广WiFi手持终端和VoWLAN业务成为应用模式;基于IP的WiFi交换技术和开放的业务平台,使WLAN网络更智能、更易于管理;基于多层次的安全策略(WEP、WPA、WPA2、AES、VPN等)提供不同等级的安全方案,以确保无线通信的安全。 第二章 ARM系统的硬件平台2.1 概述嵌入式硬件平台包括中央处理器、外围的控制电路、只读存储器、可读写存储器、外围设备和网络控制单元。由于嵌入式系统芯片的多样性,各模块芯片都有较大的选择空间。在选择上述硬件平台模块的具体芯片时,通常需要考虑它们的功能、功耗、封装、体积、成本、可靠性、电磁兼容性等方面,并在尽量满足应用需求的同时尽量减少冗余功能,以节约成本

17、。本文根据实时监控的需要选择实验平台各模块的芯片。2.2嵌入式处理器的选择目前嵌入式系统中32位微控制器(MCU)的使用率正逐年增长,32位ARM体系结构己经成为一种事实上的标准,随着高端32位嵌入式微处理器价格的不断下降和开发环境的成熟,使得32位嵌入式处理器正日益挤压原先由8位微控制器主导的应用空间。随着ARM处理器在全球围的流行,32位的RISC嵌入式处理器已经开始成为高中端嵌入式应用和设计的主流。使用32位架构不仅能提升性能,还能降低一样成本下的系统功耗和节约总成本以与缩短产品上市时间。并使得嵌入式系统可随着产品的性能和需求不断扩展而升级。本文选用了一款基于ARM Cortex-M3核

18、芯片由意法半导体(ST)推出的STM32F103芯片。STM32F103系列微处理器是首款基于ARMv7-M体系结构的32位标准RISC(精简指令集)处理器,很高的代码效率,在8位和16位系统的存储空间上发挥了ARM 核的高性能。该系列微处理器工作频率为72MHz,置高达128K字节的Flash存储器和20K字节的SRAM,具有丰富的通用I/O端口。作为最新一代的嵌入式ARM处理器,它为实现MCU的需要提供了低成本的平台、缩减的引脚数目、降低的系统功耗,同时提供了卓越的计算性能和先进的中断响应系统。丰富的片上资源使得STM32F103系列微处理器在多种领域如电机驱动、实时控制、手持设备、PC游

19、戏外设和空调系统等都显示出了强大的发展潜力。STM32F103系列微处理器主要资源和特点如下:1.多达51个快速I /O 端口, 所有I/O口均可以映像到16个外部中断, 几乎所有端口都允许5V 信号输入。每个端口都可以由软件配置成输出(推挽或开漏)、输入(带或不带上拉或下拉)或其它的外设功能口。2.2个12位模数转换器,多达16个外部输入通道,转换速率可达1MHz,转换围为0-36V,具有双采样和保持功能。部嵌入有温度传感器,可方便的测量处理器温度值。3.灵活的7路通用DMA 可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输,无须CPU 任何干预。通过DMA可以使数据快速地移动

20、CPU 的资源来进行其他操作。DMA 控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。它支持的外设包括:定时器、ADC、SPI、I2C和USART等。4.调试模式:支持标准的20脚JTAG仿真调试以与针对Cortex- M3核的串行单线调试(SWD)功能。通常默认的调试接口是JTAG接口。5.部包含多达7个定时器。6.含有丰富的通信接口,三个USART异步串行通信接口、两个I2C接口、两个SPI接口、一个CAN接口和一个USB接口,为实现数据通信提供了保证。除工业可编程逻辑控制器(PLC)、家电、工业与家用安全设备、消防和暖气通风空调系统等传统应用,智能卡和生物测定等

21、消费电子应用外,新的STM32系列还特别适合侧重低功耗的设备,如血糖和血脂监测设备。2.3STM32F103的USART接口2.3.1 USART接口的引脚描述表2.1 USART的引脚描述引脚名称类型描述RX输入端口串口数据流入TX输出端口串口数据流出2.3.2USART主要的特性1.3全双工的,异步通信。2.NRZ标准格式。3.分数波特发生器系统。4.可编程数据字长(8位或 9位)。5.可配置的停止位-支持 1或 2个停止位。6.LIN主发送同步断开符的能以与 LIN从检测断开符的能。7.单独的发送器和接收器使能位。8. 检测标志。9.校验控制。10.四个错误检测标志。11.10个带标志的

22、中断源。12.多处器通信-如果地址匹配,则进入静默模式。13. 从休眠模式中唤醒。2.3.3 数据发送与接收过程在接收时,接收到的数据被存放在一个部的接收缓冲器中;在发送时,在被发送之前,数据将首先被存放在一个部的发送缓冲器中。对SPI_DR寄存器的读操作,将返回接收缓冲器的容写入SPI_DR寄存器。处理数据的发送与接收,当数据从发送缓冲器传送到移位寄存器时,设置TXE标志(发送缓冲器空),它表示部的发送缓冲器可以接收下一个数据;如果在SPI_CR2寄存器中设置了TXEIE位,则此时会产生一个中断;写入SPI_DR寄存器即可清除TXE位。注:在写入发送缓冲器之前,软件必须确认TXE标志为1,否

23、则新的数据会覆盖已经在发送缓冲器中的数据。第三章 WiFi技术与模块概述3.1 WiFi技术概述80211协议是IEEE 802-r作组定义的第一个被国际认可的无线局域网协议。跟传统的有线局域网相比,基于WiFi协议的无线局域网具有可移动性,动态拓扑结构和易搭建的特点因此用户可以根据需求和环境选择合适的局域网技术来构造自己的网络。3.1.1WiFi网络基本结构80211协议的规定了WiFi的基本网络结构包括物理层、介质访入控制层(1IAc层)与逻辑链路控制层(LLJc层)。其三层结构可如图21所示。 802.2LLC(Logical Link Control) 802.11 MAC802.11

24、PHYFHSS802.11PHYDSSS802.11 PHYIR/DSSS802.11 PHYOFDM802.11 PHYDSSS/OFDM802.11b11Mbit/s2.4GHZ802.1a54Mbit/s5GHZ802.11g54Mbit/s5GHZ3.1.2 WiFi网络的操作模式IEEE 802.11标准定义了两种基本操作模式:Infrastructure模式和Adhoe自组网络模式。(1)Infrastructure模式Infra,也称为基础网,是由AP创建,众多STA加入所组成的无线网络,这种类型的网络的特点是AP是整个网络的中心,网络中所有的通信都通过AP来转发完成。图3-1

25、Infrastructure模式的结构(2)ad hoc 自组网络模式Adhoc,也称为自组网,是仅由两个与以上STA自己组成,网络中不存在AP,这种类型网络是一种松散的结构,网络中所有的STA都可以直接通信。图3.4 Ad hoc 模式3.2 WiFi模块介绍Wi-Fi技术的公开,厂商进入该领域门槛较低,目前市场上有很多品牌的WiFi开发模块。为了实现方便,我选择了一个开发文档丰富的WiFi模块。该模块由比特电子科技设计生产,型号为WIFI-M03。该模块是一款专为带有UART接口平台设计的网卡模块,符合802.11b标准,可采用插针借口的方式与主机相连。WIFI-M03网卡模块应用于带有U

26、ART接口的设备环境中,符合STM32接口的要求。目前该产品已经广泛地应用于无线POS机、公交卡等系统中。WIFI-M03接口特性如下:a. 双排(2 x 4)插针式接口b. 支持波特率围:1200115200bpsc. 支持硬件 RTS/CTS流控d. 单 3.3V供电3.2.1模块硬件结构 图3-2 WiFi与串口硬件连接图模块提供双列直插8针引脚,其中外侧一排(58)引脚为必须连接,如上 图所示,而且这些引脚完全兼容单排4针接口。侧一排(14)为可选功能引脚,连接如上图所示。其各端口功能如下:3.2.2模块工作模式WIFI-M03模块置无线网络协议、IEEE802.11协议栈以与TCP/

27、IP协议栈,具有两种工作模式,分别是正常启动模式和配置启动模式。a. 正常启动模式在正常启动模式下,模块的串口始终工作在透明数据传输状态,因此用户只需把它看做一条虚拟的串口线,按照使用普通串口的方式发送和接收数据就可以了。所有通过串口接收到的数据都转发到网络上,同样,从网络上接收到的数据,模块也都原样从发送到串口上。模块的nCTS/MODE/GPIO引脚进行了部下拉,当用户将其悬空,模块即可自动进入正常启动模式。在正常启动模式下,系统根据配置参数中预设的工作模式(自动/命令模式)运行。该引脚(引脚2)在模块上电复位阶段用来进行启动模式选择,时序如下图所示。图3-3正常启动模式b. 配置模式 在

28、启动配置模式下,系统忽略配置参数中预设的工作模式参数,强制进入 AT+命令模式,此模式通常用于使用配置管理程序进行参数修改与功能测试。此工作模式下,模块根据用户通过串口下发的指令进行工作,用户可以通过指令对模块进行完全的控制,包括修改配置参数、控制联网、控制 TCP/IP 连接、数据传输等。这是一高级的使用方式,也是对用户来说最为灵活的使用方式。用户可以通过指令任意控制无线网络的连接、断开,也可以同时创建多个不同类型的 TCP/IP 连接,并保持通信。nCTS/MODE/GPIO引脚(引脚2)在模块上电复位阶段用来进行启动模式选择,时序如下图所示。图3-4配置模式第四章 硬件模块设计4.1系统

29、硬件结构系统模块包括两个个部分分别为STM32开发平台和WiFi模块。相互之间的。联系与架构如下图所:STM32串口WiFi模块LCD显示无线AP天线天线SST25VF080 图4-1 系统模块框图4.1.1WiFi模块工作流程模块的工作流程包括注册和数据的发送请求等,发送数据和接受数据的工作流程如图所示: 从图中,对于发送数据的流程,模块开启后,首先通过WiFi模块寻找、连接网络,当连接到网络时,主动向服务器发送注册请求,注册完后便可以根据上层的需要进行呼叫亲求了,建立呼叫后,移动开发平台就会开始等待上层的数据,直到接收到数据,由STM32将数据封装后由WiFi模块发送给服务器。重复等待动作

30、直到通信结束为止。对于接收过程,与发送送过程相似,只是对于数据的处理,与发送过程正好相反。图4-1数据发流程 图4-2 数据接收流程4.2 模块电路4.2.1电源设计电源引脚连接图如下:图4-3电源引脚连接图VDD1/2/3/4/5,VDDA供电电源围在2.0-3.6V,VBAT (备份操作电压)在1.8V-3.6V之间。采用稳压芯片AMS1117,该器件固定输出版本电压输出值有1.8V,2.85V,3.3V,5.0V本设计选用3.3V。VDD引脚必须连接外部未定电容器(五个100nF的瓷电容器和一个钽制电容器min4.7uF,typ.10uF)。备份寄存器的电源采用CR1220电池单独供电,

31、防止板子掉电时,备份寄存器中的数据丢失。4.2.2复位电路设计引脚连接如右图:图4-4复位引脚图复位电路的功能是完成系统的上电复位和系统运行时的按键复位功能。复位电路采用简单的、常见的RC复位电路即可实现复位功能。当复位按键为按下时,电容将电路断开,此时NRST线接的是高电平。不能复位。当按键按下以后,电容放电,电容两端的电压逐渐降低为零,实现复位功能。4.2.3晶振电路设计需要提供的外部时钟源有HSE和LSE。HSE采用8MHz的外部晶振,有点在于能产生非常精确的主时钟。LSE是32.768kHz的低速外部晶体或瓷共鸣器。能为实时时钟提供低速,精确的时钟源。4.2.4调试接口图4-5TRST

32、:测试复位输入信号,低电平有效。TDI:JTAG指令和数据寄存器器的串行数据输入TMS:TAP控制气的模式输入信号TDO:JTAG指令和数据寄存器器的串行数据输出TCK:JTAK调试时钟4.3 LCD模块4.3.1原理图图 4-6图4-6中液晶显示模块引脚功能描述:DB00-DB17数据线 CS 片选信号线RS:命令/数据标志 RST硬复位TFTLCDRD:从TFTLCD读数据 WR:向TFTLCD写入数据4.4 存储模块4.4.1原理图FLASH芯片采用的是SST25VF080,其引脚连接如图图 4-7CE:芯片使能端SI:串行数据输入SO:串行数据输出 WP:写保护HOLD:保持 VDD:

33、电源2.7-3.6VVSS:接地端4.4.2功能描述存储从串口读取的数据,用作TFTLCD的缓冲区。FLASH容量1Mbyte,因字库装载在FLASH中占用前756KByte。可以读写的区域只有244KByte。可以将0X40000H-0XFFFFFH作为报文存储空间。第五章 软件设计5.1系统软件设计框图 应用程序:WiFi热点接入管理界面WiFi模块TCP/IP协议UC/OS实时操作系统UC/GUI用户图形界面串口驱动LCD液晶驱动网络数据传输设计图5-1 系统软件设计框图LCD液晶驱动串口驱动TCP/IP协议5.2 驱动设计5.2.1串口驱动设计WiFi与STM32之间用USART1相连

34、,因而初始化STM32时,需要开放USART1,可在函数UART_Configuration(void);设置波特率,中断类型等,在本项目中设置波特率为115200bps,接收和发送都产生中断以保证其既能发送数据又能接受数据。WiFi开发模块为开发者提供了一个数据结构NetParaBuffer来统一每个参数的格式,其具体结构如下:typedef struct NetParaBuffer unsigned char M_id; /参数名称 unsigned char cLength; /参数长度unsigned char cInfo64; /具体的参数容在配置到WiFi的相关参数后,调用WiFi

35、_Para_set_auto()使WiFi处在自动模式并联网,这就可以通过AP连上网了。之后的数据直接调用SendDataToWiFi就可以通过USART1将数据发送到WiFi模块,根据之前设置的服务器IP地址通过AP发送出去。具体程序流程图如下:开始串口初始化完成UART_Configuration()设置串口波特率、中断类型,初始化串口 void WiFiSetNetPara() SendDataToWiFi()发送命令给WiFi模块,设置WiFi 图5-2 串口初始化流程图5.2.2 TFT-LCD底层驱动设计5.2.2.1 与读取/写入相关的寄存器由ILI9325数据手册可知,索引寄存

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

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

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

39、取另一地址处的显示数据时需要重新设置AC的初值并重复以上过程。5.2.3具体程序实现由前面的时序图得之,读写ILI9325部的寄存器或显示RAM的过程是先在索引寄存器写入地址,然后写入命令数据或颜色值,读写部寄存器或GRAM的具体流程如图5-5所示: 图5-55.3网络数据传输报文设计所选WiFi模块在自动模式下始终工作在透明数据传输状态,因此用户只需把它看做一条虚拟的串口线。为了能够保证数据能够在网络上顺利传输以与平台的兼容性,需将发送至串口的报文制定统一的数据结。一个好的数据结构是模块稳定的保证,是系统提供模块类型的体现,除了可以保证模块的可扩性,还可以为系统的扩展提供保障。本项目中,Wi

40、Fi模块所在的系统架构为C/S架构,这就要求数据报文除了需要模块能够正确的处理,同时要求服务器能够解析。对于服务器端,主要由项目中其他人解决,这里根据数据数据格式的用途与服务器和客户端的特点,可以将数据包分为两类,一类与信令相关的结构,一类与数据相关的结构。对于与信令相关的数据包主要包括注册请求报文,注册应答报文,呼叫请求报文,呼叫通报报文,被叫端呼叫应答报文,服务器呼叫应答报文,报文格式如图5-6至图5-11。图5-6注册请求报文图5-7注册应答报文图5-8 呼叫请求报文图5-9 呼叫通报报文图5-10被叫端呼叫应答报文图5-11服务器呼叫应答报文对上图中各数据报文中字段含义如下:总长度:8

41、bit,表示报文的总长度。类型:8bit,表示报文的类型,在这个字节的不同值代表不同的数据报文类型,其中0x10:注册报文请求,0x12:注册报文失败,0x20:呼叫请求,0x22被叫通报,0x21:呼叫成功,0x23呼叫失败。标长:8bit,标号的长度,标号类似于该用户的用户名。能力:8bit,能力主要用于该用户使用资源的权利,服务器可以根据用户的能力判断用户是否对资源有实用的权限。本项目中默认用户都有发送报文和接受报文的能力,并用0x00表示。Random:16bit,Random是客户端产生的一个16位的随机数,服务器返回的应答报文应是Random+1。Random在一些协议中,主要作用

42、是保证信息的新鲜性,防止重放攻击。CRC:8bit,CRC的全拼是Cyclic Redundancy Check,又称之为循环冗余校验。在本项目中,使用一个简单的CRC,将数据包前面的所有数据以八位为一个分组进行异或,将最后的结果存入最后的八位中。源标长:8bit,主叫端用户名的用户名。目的标长:8bit,接受方标号的长度。目的标号:8bit,目的端用户名的用户名。上述五种数据报文中,注册请求和应答请求主要在用户登录系统时注册使用,呼叫请求,呼叫通报,客户端呼叫应答和服务器呼叫应答主要在呼叫请求的过程中。具体过程为主叫方将呼叫请求发送至服务器,服务器收到请求后解析数据包产生呼叫通告报文发给被叫

43、方,等待被叫方的呼叫应答报文,然后将结果传递给主叫方,同时,如果被叫方长时间没有反应,则服务器会产生呼叫失败报文给主叫方。对于数据类型的报文,其主要目的是承载通信双方的数据以与相对于数据的应答。主要包括数据报文、应答报文和数据结束报文。报文格式如图所示:图5-12括数据报文图5-11 数据报文图5-13 应答报文图5-14 结束报文从图中可以看出数据类报文结构和信令类相比,有了包号,数据长度和数据字段,其中数据长度和数据主要表示传输的数据,而对于包号,主要作用是中断可以根据包号重组收到的数据包,保持数据包的完整性。5.4 uC/GUI的移植5.4.1 uC/GUI的目录结构uC/GUI推荐的目

44、录结构如图4-7所示,在工程文件夹中保持uC/GUI程序文件(包括头文件)的独立性和完整性可以使uC/GUI的升级更加简单(仅需简单的替换GUI子文件夹)。图5-15 uC/GUI目录结构各个子文件夹的容说明如下表所示:表5-2 uC/GUI文件结构与说明目录容Config配置文件GUIAntiAlias抗锯齿支持*GUIConvertMono用于灰度级显示的颜色转换程序*GUIConvertColor用于彩色显示的颜色转换程序*GUICoreuC/GUI核心文件GUIFont字体文件GUILCDDriverLCD驱动程序GUIMemDev存储设备支持*GUIWidget控件库*GUIWM窗口

45、管理器*注释:标注“*”的为可选模块5.4.2 在目标系统上应用uC/GUI的配置过程uC/GUI的移植过程如图5-15所示:图5-16 uC/GUI移植过程1.底层驱动程序,使其可以正常显示。2.在工程项目中加入uC/GUI程序包。3.修改有关的配置头文件(在将uC/GUI程序包加入到工程项目文件中后,首先要做的就是要对uC/GUI进行相关的配置,以使其与自己所采用的具体硬件环境相适应。具体步骤如下:编写TFT-LCLCDConf.h 、GUIConf.h 、GUITouchConf.h5.4.3 LCDConf.h的配置(低层配置) LCDConf.h中包含与具体型号的液晶显示器硬件相关的

46、宏定义,主要有两大类:1.LCD宏:定义显示分辨率以与其他可选特性(例如镜像等);2.LCD控制器宏:定义如何访问你所使用的LCD控制器。本文程序中LCDConf.h文件的容如下:#ifndef LCDCONF_H#define LCDCONF_H#define LCD_XSIZE (320) /定义水平分辨率#define LCD_YSIZE (240) /定义垂直分辨率#define LCD_CONTROLLER (9325) /定义LCD控制器的型号#define LCD_BITSPERPIXEL (16) /定义每个像素的颜色位数#define LCD_FIXEDPALETTE (56

47、5) /定义调色板格式,此处采用565 /颜色格式#define LCD_SWAP_RB (1) /交换红蓝基色#define LCD_INIT_CONTROLLER() ili9325_Initializtion(); /LCD控制器 /初始化函数#endif5.4.4 GUIConf.h的配置(高层配置)GUIConf.h头文件中的容主要用来配置GUI库的一些可选功能,例如是否使用窗口管理器(WM)、控件库(widget library)功能以与是否启用多任务环境支持等选项。本文程序中GUIConf.h文件的具体容如下所示:#ifndef GUICONF_H#define GUICONF_

48、H#define GUI_OS (1) /启用多任务环境支持#define GUI_SUPPORT_TOUCH (0) /不启用触摸屏#define GUI_SUPPORT_UNICODE (1) /支持ASCII/UNICODE字符串#define GUI_DEFAULT_FONT &GUI_Font6x8 /设置默认字体#define GUI_ALLOC_SIZE 5000 /为WM和存储设备分配的动态 /存空间/*可选包配置*/#define GUI_WINSUPPORT 1 /启用窗口管理器#define GUI_SUPPORT_MEMDEV 1 /启用存储设备支持#define GU

49、I_SUPPORT_AA 1 /启用抗锯齿#endif当量机制对其进行保护,以使任务可以有序的使用这些资源。在有多个线程调用uC/GUI函数进行绘图显示时,需要采用信号量机制对显示器或uC/GUI运行于多任务环境时(即GUI_OS=1),必须在GUITask.c文件中定义GUI与RTOS核的接口函数,下面以本文程序中采用的uC/OS-为例进行说明。正如在介绍uC/OS-任务同步与通信机制时所述,对于显示器、打印机等独占性资源,需要采用信号者临界的部数据结构进行保护。主要的核接口例程如表5-3所示:表5-3 uC/GUI核接口函数说明函数说明GUI_X_InitOS( )初始化核借口模型(创建信

50、号量)GUI_X_GetTaskId( )返回一个唯一的32位当前运行任务的标识符GUI_X_Lock( )请求信号量GUI_X_Unlock( )释放信号量在本文程序中,相关函数的具体实现如下所示:#include INCLUDES.Hstatic OS_EVENT * DispSem;U32 GUI_X_GetTaskId(void) return (U32)(OSTCBCur-OSTCBPrio); void GUI_X_InitOS(void) DispSem = OSSemCreate(1); void GUI_X_Unlock(void) OSSemPost(DispSem); v

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

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

53、TFT-LCD的底层驱动函数。由于uC/GUI本身提供了很多液晶控制器的驱动,很多时候只要在LCDConf.h文件中配置好宏LCD_CONTROLLER即可选择相应的驱动程序,但是由于uC/GUI被没有提供ILI9325控制器的驱动,所以需要我们自己编写液晶驱动的底层API,已完成uC/GUI的移植工作。5.5 WiFi热点接入管理界面开发本文程序基于STM32F103VCT6微控制器芯片开发,使用uC/OS-II嵌入式实时操作系统进行任务管理、调度和同步使用uC/GUI的API绘图函数开进行图形界面开发,实现WiFi热点接入管理界面应用程序的开发。整个程序执行的流程图如图5-16所示:图5-

54、17 WiFi热点接入界面流程图整个应用程序的执行过程说明如下:首先,分别调用函数OSInit( )、BSP_Init( )、GUI_Init( )初始化整个系统的工作环境,依次为uC/OS-II操作系统初始化、硬件模块初始化(包括系统时钟、I/O端口工作模式以与中断系统初始化等)和uC/GUI图形界面系统初始化。其次,为了消除多窗口显示时的闪烁现象,为所有窗口起用了存储设备支持,即通过调用函数WM_SetCreateFlags(WM_CF_MEMDEV)来实现;接下来又为背景窗口设置了回调函数:WM_SetCallback(WM_HBKWIN, _cbBackgroundWin)。然后,按照

55、uC/OS-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的工作过程与_Task_0类似。_Task_0的工作流程图如图5-2所示:首先:调用函数FRAMEWIN_Create( )和WM

56、_CreateWindowAsChild( )分别创建了框架父窗口和子窗口,然后调用函数WM_SelectWindow(hChildWin)和GUI_SetFont( )选择了子窗口为其并设置了显示字体。接下来进入任务主循环:计算滚动文字移动围并调用函数WM_InvalidateWindow(hChildWin)使子窗口失效,然后通过调用回调函数cbCallbackT0(WM_MESSAGE * pMsg)来重绘窗口并最终实现滚动文字效果。_Task_1与_GUI_Task的工作流程与_Task_0类似,只不过_Task_1移动的是窗口,_GUI_Task用来维护显示背景。图5-18 _Tas

57、k_0任务工作流程图 以上三个任务实现了滚动文字与移动窗口的动态显示效果。在所有任务创建完毕后,系统进入了正常的多个任务同时运行的状态。第六章 结论本文在嵌入式系统和WiFi无线网络技术的基础之上,介绍了WIFI-M03模块的参数和操作流程,重点分析了网络数据传输协议的报文设计和以与无线热点接入图形界面的开发等问题,以达到一个精简的目的。全文分为三大板块:1.详细介绍了嵌入式系统与WiFi无线网络的基础知识。2.详细介绍了嵌入式系统的硬件平台,其中包括芯片的选择,32位的STM32F103微处理器主要特点,以与WiFi模块的操作流程。3.在软件设计部分,首先给出了该系统软件设计的分层框图,详细

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

59、M嵌入式系统基础教程M.:航空航天大学,2005.55 刚主编,32位嵌入式系统与SoC设计导论(第2版),电子工业,2011.16 宁.基于MDK的STM32处理器开发应用航空航天大学. 2008年7 Duckmyung, Yuseong, Daejeon. Modified multilevel inverter employing half- and full-bridge cells with cascade transformer and its extension to photovoltaic power generation.2010:305-7198 KONSTANTIN T

60、URITSYN ;PETR SULC ;SCOTT BACKHAUS ;MICHAEL CHERTKOV. Options for Control of Reactive Power by Distributed Photovoltaic Generators.2011, 99(6)9 H. El Fadil ;F. Giri. Climatic sensorless maximum power point tracking in PV generation systems.Control engineering practice :2011, 19致在此论文完成之际,我首先要向自己的导师XX老师表示最衷心的感和最诚挚的敬意。在这个过程中,XX老师为我的论文提出了很多宝贵的意见。论文的完成,处处都有他的辛勤的汗水,没有老师的指导,

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!