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

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

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

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

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

3、标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日中文摘要IV摘 要随着无线局域网技术的快速发展,无线终端已经融入了我们的生活,无论是智能手机还是笔记本, WiFi 功能几乎是必不可

4、少的。目前WiFi 技术主要的应用还在手持终端,但随着用户需求的越来越广泛,WiFi 技术也需要应用到不同的方面如工业控制,移动办公等,这就需要不同形式的终端。本文开发并实现基于一种嵌入式开发平台的 STM32 的 WiFi 模块,使一些嵌入式设备也能够使用无线资源。论文首先讨论了基 ARMCortex-M3 的嵌入式开发技术,介绍了 WiFi 网络的发展现状及前景,利用 STM32F103VCT6 串口连接 WiFi 模块,介绍了 UCGUI 在 STM32 平台上的移植,最后,在此基础上进行基于 uC/GUI 的多窗口应用界面的设计,实现了 WiFi 热点接入界面的开发。关键词:关键词:S

5、TM32,WiFi,UCGUI,LCDABSTRACTVABSTRACTToday with the rapid development of wireless LAN technology, wireless terminals have 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 handhe

6、ld terminal, but with the users needs more and more widely, WiFi technology needs to be applied to different areas such 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

7、 module, and enable some embedded devices to use the wireless resources. Firstly, we discuss the embedded development 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

8、platform UCGUI transplant, finally, on this basis, based uC / GUI application of multi-window interface design, to achieve a WiFi hotspot access interface development.Key words : STM32, WiFi, LCD,UC/GUI 目录III目 录摘摘 要要.IABSTRACT .II第一章第一章 引引 言言 .11.1 ARM 的发展趋势.11.2 WIFI 的发展背景.2第二章第二章 ARM 系统的硬件平台系统的硬件平

9、台.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 网络的操作模式.73.2 WIFI模块介绍.83.2.1 模块硬件结构 .93.2.2 模块工作模式 .10第四章第四章 硬件模块设计硬件模块设计 .114.1 系统硬件结构.114.1.1 WiFi 模块工作流程.114.2 模块电路.

10、124.2.1 电源设计 .124.2.2 复位电路设计 .134.2.3 晶振电路设计 .134.2.4 调试接口 .144.3 LCD 模块.14 目录IV4.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 网络数据传输报文设计.205.4 UC/GUI 的移植.235.4.1 uC/GUI 的目录结构.235.4.2 在目标系统上应用

11、 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第一章 引言1第一章 引 言随着信息技术的飞速发展,人类进入了后 PC 时代,嵌入式系统与互联网络已经无所不在,它们一起深刻地影响着我们的生活,而这两者的融合已经是大势所趋,如何让嵌入式系统接入网络已经成为信息

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

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

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

15、于通讯专用的芯片设计。1.2 WIFI的发展背景WiFi 是 IEEE 定义的一个无线网络通信的工业标准(IEEE 80211)自从1997 年无线局域网标准诞生以来,WiFi 的发展已经近十年了随着数据业务需求的不断增加,以 IEEE 80211 协议为基础的无线局域网(WLAN)的研究正逐渐为人们研究的热点。最初开发 WLAN 主要用于企业和家庭网络,通过有线LAN 进行无线扩展,通过无线通信的方式实现有线 LAN 的功能,并以比有线网络更加低廉的价格和更加便、灵活的方式进行网络安装和维护。但是,随蜂窝移动通信产业的成功和 WLAN 技术的发展,出现了与电信网络融合提供公共WLAN 服务的

16、趋势,使人们可以通过 WLAN 非常方便地享受高速的无线数据服,这也极大地拓展了 WLAN 的应用空间。现在 WiFi 正在进入一个快速发展的阶段。其中,作为 802.1lb 发展的后继标准 802.16(WiMAX)虽然采用了与 802.11b 不同的频段(10-66GHz),但作为一项无线城域网(WMAN)技术,它可以和 802.11b/g/a 无线接入热点互为补充,构筑一个完全覆盖城域的宽带无线技术。由于移动运营商数目的增加,语音业务带来的 ARPU 必然呈现下降趋势,如何提供更多的数据多媒体业务也是移动运营商一直在思考的问题。在这样的背景下,WLAN 在部署上取得了实质性的进展:WiF

17、i 和 VolP 的结合给固网运营商带来了契机;WLAN 的热点覆盖计划也正作为3G 的补充成为移动运营商新的利润点。未来 WiFi 的发展方向将包括:网络技术上覆盖更大的范围,从热点到热区再到整个城市;推广 WiFi 手持终端和 VoWLAN 业务成为应用模式;基于 IP 的WiFi 交换技术和开放的业务平台,使 WLAN 网络更智能、更易于管理;基于多层次的安全策略(WEP、WPA、WPA2、AES、VPN 等)提供不同等级的安全方案,以确保无线通信的安全。 第二章 ARM 系统的硬件平台3第二章 ARM系统的硬件平台2.1 概述嵌入式硬件平台包括中央处理器、外围的控制电路、只读存储器、可

18、读写存储器、外围设备和网络控制单元。由于嵌入式系统芯片的多样性,各模块芯片都有较大的选择空间。在选择上述硬件平台模块的具体芯片时,通常需要考虑它们的功能、功耗、封装、体积、成本、可靠性、电磁兼容性等方面,并在尽量满足应用需求的同时尽量减少冗余功能,以节约成本。本文根据实时监控的需要选择实验平台各模块的芯片。2.2 嵌入式处理器的选择目前嵌入式系统中 32 位微控制器(MCU)的使用率正逐年增长,32 位 ARM体系结构己经成为一种事实上的标准,随着高端 32 位嵌入式微处理器价格的不断下降和开发环境的成熟,使得 32 位嵌入式处理器正日益挤压原先由 8 位微控制器主导的应用空间。随着 ARM

19、处理器在全球范围的流行,32 位的RISC 嵌入式处理器已经开始成为高中端嵌入式应用和设计的主流。使用 32 位架构不仅能提升性能,还能降低相同成本下的系统功耗和节约总成本以及缩短产品上市时间。并使得嵌入式系统可随着产品的性能和需求不断扩展而升级。本文选用了一款基于 ARM Cortex-M3 内核芯片由意法半导体(ST)推出的STM32F103 芯片。STM32F103 系列微处理器是首款基于 ARMv7-M 体系结构的 32位标准 RISC(精简指令集)处理器,很高的代码效率,在 8 位和 16 位系统的存储空间上发挥了 ARM 内核的高性能。该系列微处理器工作频率为 72MHz,内置高达

20、 128K 字节的 Flash 存储器和 20K 字节的 SRAM,具有丰富的通用 I/O 端口。作为最新一代的嵌入式 ARM 处理器,它为实现 MCU 的需要提供了低成本的平台、缩减的引脚数目、降低的系统功耗,同时提供了卓越的计算性能和先进的中断响应系统。丰富的片上资源使得 STM32F103 系列微处理器在多种领域如电第二章 ARM 系统的硬件平台4机驱动、实时控制、手持设备、PC 游戏外设和空调系统等都显示出了强大的发展潜力。STM32F103 系列微处理器主要资源和特点如下:1.多达 51 个快速 I /O 端口, 所有 I/O 口均可以映像到 16 个外部中断, 几乎所有端口都允许

21、5V 信号输入。每个端口都可以由软件配置成输出(推挽或开漏)、输入(带或不带上拉或下拉)或其它的外设功能口。2.2 个 12 位模数转换器,多达 16 个外部输入通道,转换速率可达 1MHz,转换范围为 0-36V,具有双采样和保持功能。内部嵌入有温度传感器,可方便的测量处理器温度值。3.灵活的 7 路通用 DMA 可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输,无须 CPU 任何干预。通过 DMA 可以使数据快速地移动 CPU 的资源来进行其他操作。DMA 控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。它支持的外设包括:定时器、ADC、SPI、I2C

22、 和 USART 等。4.调试模式:支持标准的 20 脚 JTAG 仿真调试以及针对 Cortex- M3 内核的串行单线调试(SWD)功能。通常默认的调试接口是 JTAG 接口。5.内部包含多达 7 个定时器。6.含有丰富的通信接口,三个 USART 异步串行通信接口、两个 I2C 接口、两个 SPI 接口、一个 CAN 接口和一个 USB 接口,为实现数据通信提供了保证。除工业可编程逻辑控制器(PLC)、家电、工业及家用安全设备、消防和暖气通风空调系统等传统应用,智能卡和生物测定等消费电子应用外,新的 STM32系列还特别适合侧重低功耗的设备,如血糖和血脂监测设备。2.3 STM32F10

23、3的USART接口2.3.1 USART 接口的引脚描述表 2.1 USART 的引脚描述第二章 ARM 系统的硬件平台5引脚名称类型描述RX输入端口串口数据流入TX输出端口串口数据流出2.3.2 USART 主要的特性1.3 全双工的,异步通信。2. NRZ 标准格式。3. 分数波特发生器系统。4. 可编程数据字长(8 位或 9 位)。5. 可配置的停止位-支持 1 或 2 个停止位。6. LIN 主发送同步断开符的能以及 LIN 从检测断开符的能。7. 单独的发送器和接收器使能位。8. 检测标志。9. 校验控制。10. 四个错误检测标志。11. 10 个带标志的中断源。12. 多处器通信-

24、如果地址匹配,则进入静默模式。13. 从休眠模式中唤醒。2.3.3 数据发送与接收过程 在接收时,接收到的数据被存放在一个内部的接收缓冲器中;在发送时,在被发送之前,数据将首先被存放在一个内部的发送缓冲器中。对 SPI_DR 寄存器的读操作,将返回接收缓冲器的内容写入 SPI_DR 寄存器。第二章 ARM 系统的硬件平台6处理数据的发送与接收,当数据从发送缓冲器传送到移位寄存器时,设置 TXE标志(发送缓冲器空),它表示内部的发送缓冲器可以接收下一个数据;如果在SPI_CR2 寄存器中设置了 TXEIE 位,则此时会产生一个中断;写入 SPI_DR 寄存器即可清除 TXE 位。注:在写入发送缓

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

26、02.2LLC(Logical Link Control) 802.11 MAC802.11PHYFHSS802.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 加入

27、所组成的无线网络,这种类型的网络的特点是 AP 是整个网络的中心,网络中所有的通信都通过 AP 来第三章 WiFi 技术及模块概述8转发完成。图 3-1 Infrastructure模式的结构(2)ad hoc 自组网络模式Adhoc,也称为自组网,是仅由两个及以上 STA 自己组成,网络中不存在AP,这种类型网络是一种松散的结构,网络中所有的 STA 都可以直接通信。图 3.4 Ad hoc 模式3.2 WiFi模块介绍Wi-Fi 技术的公开,厂商进入该领域门槛较低,目前市场上有很多品牌的WiFi 开发模块。为了实现方便,我选择了一个开发文档丰富的 WiFi 模块。该模块由成都比特电子科技设

28、计有限公司生产,型号为 WIFI-M03。该模块是一款专为带有 UART 接口平台设计的网卡模块,符合 802.11b 标准,可采用插针借口的方式与主机相连。WIFI-M03 网卡模块应用于带有 UART 接口的设备环境中,符合 STM32 接口的要求。目前该产品已经广泛地应用于无线 POS 机、公交卡等系统中。第三章 WiFi 技术及模块概述9WIFI-M03 接口特性如下:a. 双排(2 x 4)插针式接口b. 支持波特率范围:1200115200bpsc. 支持硬件 RTS/CTS 流控d. 单 3.3V 供电3.2.1 模块硬件结构 图 3-2 WiFi 与串口硬件连接图模块提供双列直

29、插 8 针引脚,其中外侧一排(58)引脚为必须连接,如上 图所示,而且这些引脚完全兼容单排 4 针接口。内侧一排(14)为可选功能引脚,连接如上图所示。其各端口功能如下:第三章 WiFi 技术及模块概述103.2.2 模块工作模式WIFI-M03 模块内置无线网络协议、IEEE802.11 协议栈以及 TCP/IP 协议栈,具有两种工作模式,分别是正常启动模式和配置启动模式。a. 正常启动模式在正常启动模式下,模块的串口始终工作在透明数据传输状态,因此用户只需把它看做一条虚拟的串口线,按照使用普通串口的方式发送和接收数据就可以了。所有通过串口接收到的数据都转发到网络上,同样,从网络上接收到的数

30、据,模块也都原样从发送到串口上。模块的 nCTS/MODE/GPIO 引脚进行了内部下拉,当用户将其悬空,模块即可自动进入正常启动模式。在正常启动模式下,系统根据配置参数中预设的工作模式(自动/命令模式)运行。该引脚(引脚 2)在模块上电复位阶段用来进行启动模式选择,时序如下图所示。图 3-3 正常启动模式b. 配置模式 在启动配置模式下,系统忽略配置参数中预设的工作模式参数,强制进入 AT+命令模式,此模式通常用于使用配置管理程序进行参数修改及功能测试。此工作模式下,模块根据用户通过串口下发的指令进行工作,用户可以通过指令对模块进行完全的控制,包括修改配置参数、控制联网、控制 TCP/IP

31、连接、数据传输等。这是一高级的使用方式,也是对用户来说最为灵活的使用方式。用户可以通过指令任意控制无线网络的连接、断开,也可以同时创建多个不同类型的 TCP/IP 连接,并保持通信。nCTS/MODE/GPIO 引脚(引脚 2)在模块上电复位阶段用来进行启动模式选择,时序如下图所示。图 3-4 配置模式第四章 硬件模块设计11第四章 硬件模块设计4.1 系统硬件结构系统模块包括两个个部分分别为 STM32 开发平台和 WiFi 模块。相互之间的。联系及架构如下图所:STM32串口WiFi 模块LCD 显示无线 AP天线天线SST25VF080 图 4-1 系统模块框图4.1.1 WiFi 模块

32、工作流程模块的工作流程包括注册和数据的发送请求等,发送数据和接受数据的工作流程如图所示: 从图中,对于发送数据的流程,模块开启后,首先通过 WiFi 模块寻找、连接网络,当连接到网络时,主动向服务器发送注册请求,注册完后便可以根据上层的需要进行呼叫亲求了,建立呼叫链接后,移动开发平台就会开始等待上层的数据,直到接收到数据,由 STM32 将数据封装后由 WiFi 模块发送给服务器。重复等待动作直到通信结束为止。对于接收过程,与发送送过程相似,只是对于数据的处理,与发送过程正好相反。第四章 硬件模块设计12 图 4-1 数据发流程 图 4-2 数据接收流程4.2 模块电路4.2.1 电源设计电源

33、引脚连接图如下:C8103C9103C10103C11105GND3V3BatteryCR1220 holderC71uFC12104NC73VDD_150VDD_275VDD_3100VDD_428VDD_511VDDA22VSS_149VSS_274VSS_399VSS_427VSS_510VSSA19Vbat6U1BSTM 32F103VCT6第四章 硬件模块设计13图 4-3 电源引脚连接图VDD1/2/3/4/5,VDDA 供电电源范围在 2.0-3.6V,VBAT (备份操作电压)在1.8V-3.6V 之间。采用稳压芯片 AMS1117,该器件固定输出版本电压输出值有1.8V,2.

34、85V,3.3V,5.0V 本设计选用 3.3V。VDD 引脚必须连接外部未定电容器(五个 100nF 的陶瓷电容器和一个钽制电容器 min4.7uF,typ.10uF)。备份寄存器的电源采用 CR1220 电池单独供电,防止板子掉电时,备份寄存器中的数据丢失。4.2.2 复位电路设计引脚连接如右图:R1110K 5%C17105RESETNRSTVCCGND图 4-4 复位引脚图复位电路的功能是完成系统的上电复位和系统运行时的按键复位功能。复位电路采用简单的、常见的 RC 复位电路即可实现复位功能。当复位按键为按下时,电容将电路断开,此时 NRST 线接的是高电平。不能复位。当按键按下以后,

35、电容放电,电容两端的电压逐渐降低为零,实现复位功能。4.2.3 晶振电路设计需要提供的外部时钟源有 HSE 和 LSE。HSE 采用 8MHz 的外部晶振,有点在于能产生非常精确的主时钟。LSE 是 32.768kHz 的低速外部晶体或陶瓷共鸣器。能为实时时钟提供低速,精确的时钟源。第四章 硬件模块设计144.2.4 调试接口J100 1 3 5 7 924681011121314151617181920VCC33PB4_TRSTPA15_TDIPA14_TCKPA13_TMSPB3_TDO+5VGNDnRST图 4-5TRST:测试复位输入信号,低电平有效。TDI:JTAG 指令和数据寄存器

36、器的串行数据输入TMS:TAP 控制气的模式输入信号TDO:JTAG 指令和数据寄存器器的串行数据输出TCK:JTAK 调试时钟4.3 LCD模块4.3.1 原理图12345678910111213141516171819202122232425262728293031323334353637383940J102LCDPD9_DB16PD10_DB17PD7_LCD_CSPD11_LCD_RSPD5_LCD_WRPD6_BUSYPD12_NAND_ALEPE0_TC_SPE1PE2PE3PD4_LCD_RDPD13_LCD_INT0PE10_DB07PE12_DB11PE14_DB13PD8_

37、DB15PE8_DB05VCC33GNDPD3_LCD_BLPD14 _DB00PD15_DB01 PD0_DB02PE7_ DB04PE9_DB06PE11_DB08PE13_DB10PE15_DB14PD15 DB03PD2_LCD_RSTTFT+口口口口口PB14_SPI2_M ISOPB15_SPI2_M OSIPB13_SPI2_SCK图 4-6图 4-6 中液晶显示模块引脚功能描述:DB00-DB17 数据线 CS 片选信号线RS:命令/数据标志 RST 硬复位 TFTLCD第四章 硬件模块设计15RD:从 TFTLCD 读数据 WR:向 TFTLCD 写入数据4.4 存储模块4.

38、4.1 原理图FLASH 芯片采用的是 SST25VF080,其引脚连接如图U301PB8_SPI2_CSPB13_SPI2_SCKPB14_SPI2_MISOPB15_SPI2_MOSIVCC33_MEMGNDVCC33_MEM/CESOWPGNDSISCK/HOLDVCC图 4-7CE:芯片使能端SI:串行数据输入SO:串行数据输出 WP:写保护HOLD:保持 VDD:电源 2.7-3.6VVSS:接地端4.4.2 功能描述存储从串口读取的数据,用作 TFTLCD 的缓冲区。FLASH 容量 1Mbyte,因字库装载在 FLASH 中占用前 756KByte。可以读写的区域只有 244KB

39、yte。可以将 0X40000H-0XFFFFFH 作为报文存储空间。第五章 软件设计16第五章 软件设计5.1 系统软件设计框图 应用程序:WiFi 热点接入管理界面WiFi 模块TCP/IP协议UC/OS实时操作系统UC/GUI 用户图形界面串口驱动LCD 液晶驱动网络数据传输设计图 5-1 系统软件设计框图5.2 驱动设计5.2.1 串口驱动设计WiFi 与 STM32 之间用 USART1 相连,因而初始化 STM32 时,需要开放USART1,可在函数 UART_Configuration(void);设置波特率,中断类型等,在本项目中设置波特率为 115200bps,接收和发送都产

40、生中断以保证其既能发送数据又能接受数据。WiFi 开发模块为开发者提供了一个数据结构NetParaBuffer 来统一每个参数的格式,其具体结构如下:typedef struct NetParaBuffer unsigned char M_id; /参数名称 unsigned char cLength; /参数长度TCP/IP协议串口驱动LCD 液晶驱动第五章 软件设计17unsigned char cInfo64; /具体的参数内容在配置到 WiFi 的相关参数后,调用 WiFi_Para_set_auto()使 WiFi 处在自动模式并联网,这就可以通过 AP 连上网了。之后的数据直接调用

41、SendDataToWiFi 就可以通过 USART1 将数据发送到 WiFi 模块,根据之前设置的服务器 IP 地址通过 AP 发送出去。具体程序流程图如下:开始串口初始化完成UART_Configuration()设置串口波特率、中断类型,初始化串口 void WiFiSetNetPara() SendDataToWiFi()发送命令给 WiFi 模块,设置 WiFi 图 5-2 串口初始化流程图5.2.2 TFT-LCD 底层驱动设计5.2.2.1 与读取/写入相关的寄存器由 ILI9325 数据手册可知,索引寄存器(Index Register)存储指令或显示数据即将被写入的寄存器的地

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

43、,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,然后

44、再被自动写入 GRAM。MPU 通过 RDR 寄存器读取内部 GRAM 的数据。因此,在读取 9325内部 GRAM 的数据时,第一次读出的是无效数据,从第二次开始读取有效数据。当读取 GRAM 的地址改变时,第一次读取的仍为无效数据。读取数据的流程如图 4-3 所示:第五章 软件设计19图 5-4 ILI9325 读内部显示数据流程图首先,根据在初始化时设置的 GRAM 地址刷新方式(由 I/D、AM 位的组合值确定)以及窗口地址区域的起止坐标(由 HSA、HEA 和 VSA、VEA 联合确定)设置填入地址计数器 AC 的初始地址值 M。由于第一次读出的显示数据是 RDR 读数据锁存器中的无

45、效数据,因此需要进行第二次数据读取,以得到真正有效的显示数据。由于在读取 GRAM 显示数据时地址计数器 AC 的值不会自动更新,因此在希望读取另一地址处的显示数据时需要重新设置 AC 的初值并重复以上过程。5.2.3 具体程序实现由前面的时序图得之,读写 ILI9325 内部的寄存器或显示 RAM 的过程是先在索引寄存器写入地址,然后写入命令数据或颜色值,读写内部寄存器或 GRAM的具体流程如图 5-5 所示:第五章 软件设计20 图 5-55.3 网络数据传输报文设计所选 WiFi 模块在自动模式下始终工作在透明数据传输状态,因此用户只需把它看做一条虚拟的串口线。为了能够保证数据能够在网络

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

47、 软件设计21图 5-6 至图 5-11。图5-6 注册请求报文图 5-7 注册应答报文图 5-8 呼叫请求报文图 5-9 呼叫通报报文图 5-10 被叫端呼叫应答报文图 5-11 服务器呼叫应答报文对上图中各数据报文中字段含义如下:总长度:8bit,表示报文的总长度。类型:8bit,表示报文的类型,在这个字节的不同值代表不同的数据报文第五章 软件设计22类型,其中 0 x10:注册报文请求,0 x12:注册报文失败,0 x20:呼叫请求,0 x22 被叫通报,0 x21:呼叫成功,0 x23 呼叫失败。标长:8bit,标号的长度,标号类似于该用户的用户名。能力:8bit,能力主要用于该用户使

48、用资源的权利,服务器可以根据用户的能力判断用户是否对资源有实用的权限。本项目中默认用户都有发送报文和接受报文的能力,并用 0 x00 表示。Random:16bit,Random 是客户端产生的一个 16 位的随机数,服务器返回的应答报文应是 Random+1。Random 在一些协议中,主要作用是保证信息的新鲜性,防止重放攻击。CRC:8bit,CRC 的全拼是 Cyclic Redundancy Check,又称之为循环冗余校验。在本项目中,使用一个简单的 CRC,将数据包前面的所有数据以八位为一个分组进行异或,将最后的结果存入最后的八位中。源标长:8bit,主叫端用户名的用户名。目的标长

49、:8bit,接受方标号的长度。目的标号:8bit,目的端用户名的用户名。上述五种数据报文中,注册请求和应答请求主要在用户登录系统时注册使用,呼叫请求,呼叫通报,客户端呼叫应答和服务器呼叫应答主要在呼叫请求的过程中。具体过程为主叫方将呼叫请求发送至服务器,服务器收到请求后解析数据包产生呼叫通告报文发给被叫方,等待被叫方的呼叫应答报文,然后将结果传递给主叫方,同时,如果被叫方长时间没有反应,则服务器会产生呼叫失败报文给主叫方。对于数据类型的报文,其主要目的是承载通信双方的数据以及相对于数据的应答。主要包括数据报文、应答报文和数据结束报文。报文格式如图所示: 图 5-11 数据报文图 5-13 应答

50、报文图 5-12 括数据报文第五章 软件设计23图 5-14 结束报文从图中可以看出数据类报文结构和信令类相比,有了包号,数据长度和数据字段,其中数据长度和数据主要表示传输的数据,而对于包号,主要作用是中断可以根据包号重组收到的数据包,保持数据包的完整性。5.4 uC/GUI的移植5.4.1 uC/GUI 的目录结构uC/GUI 推荐的目录结构如图 4-7 所示,在工程文件夹中保持 uC/GUI 程序文件(包括头文件)的独立性和完整性可以使 uC/GUI 的升级更加简单(仅需简单的替换 GUI 子文件夹)。图 5-15 uC/GUI 目录结构各个子文件夹的内容说明如下表所示:表 5-2 uC/

51、GUI 文件结构及说明目录内容Config配置文件GUIAntiAlias抗锯齿支持*GUIConvertMono用于灰度级显示的颜色转换程序*GUIConvertColor用于彩色显示的颜色转换程序*GUICoreuC/GUI 核心文件第五章 软件设计24GUIFont字体文件GUILCDDriverLCD 驱动程序GUIMemDev存储设备支持*GUIWidget控件库*GUIWM窗口管理器*注释:标注“*”的为可选模块5.4.2 在目标系统上应用 uC/GUI 的配置过程uC/GUI 的移植过程如图 5-15 所示:图 5-16 uC/GUI 移植过程 1.底层驱动程序,使其可以正常显示

52、。2.在工程项目中加入 uC/GUI 程序包。3.修改有关的配置头文件(在将 uC/GUI 程序包加入到工程项目文件中后,第五章 软件设计25首先要做的就是要对 uC/GUI 进行相关的配置,以使其与自己所采用的具体硬件环境相适应。具体步骤如下:编写 TFT-LCLCDConf.h 、GUIConf.h 、GUITouchConf.h5.4.3 LCDConf.h 的配置(低层配置) LCDConf.h 中包含与具体型号的液晶显示器硬件相关的宏定义,主要有两大类:1.LCD 宏:定义显示分辨率以及其他可选特性(例如镜像等);2.LCD 控制器宏:定义如何访问你所使用的 LCD 控制器。本文程序

53、中 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 (565) /定义调色板格式,此处采用 565 /颜色格式#define LCD_SWAP_RB (1) /交换红蓝基色#define LCD

54、_INIT_CONTROLLER() ili9325_Initializtion(); /LCD 控制器 /初始化函数#endif5.4.4 GUIConf.h 的配置(高层配置)GUIConf.h 头文件中的内容主要用来配置 GUI 库的一些可选功能,例如是否使用窗口管理器(WM)、控件库(widget library)功能以及是否启用多任务环境支持等选项。本文程序中 GUIConf.h 文件的具体内容如下所示:#ifndef GUICONF_H#define GUICONF_H#define GUI_OS (1) /启用多任务环境支持#define GUI_SUPPORT_TOUCH (0

55、) /不启用触摸屏第五章 软件设计26#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 GUI_SUPPORT_AA 1 /启用抗锯齿#endif当量机制对其进行保护,以使任务可以

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

57、回一个唯一的 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); 第五章 软件设计27void GUI_X_Unlock(void) OSSemPost(DispSem); void GUI_X_

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

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

60、I 用于具体的液晶显示器时需要提供 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

61、 热点接入管理界面应用程序的开发。整个程序执行的流程图如图 5-16 所示:第五章 软件设计28图 5-17 WiFi 热点接入界面流程图整个应用程序的执行过程说明如下:首先,分别调用函数 OSInit( )、BSP_Init( )、GUI_Init( )初始化整个系统的工作环境,依次为 uC/OS-II 操作系统初始化、硬件模块初始化(包括系统时钟、I/O 端口工作模式以及中断系统初始化等)和 uC/GUI 图形界面系统初始化。其次,为了消除多窗口显示时的闪烁现象,为所有窗口起用了存储设备支第五章 软件设计29持,即通过调用函数 WM_SetCreateFlags(WM_CF_MEMDEV)

62、来实现;接下来又为背景窗口设置了回调函数:WM_SetCallback(WM_HBKWIN, _cbBackgroundWin)。然后,按照 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 任务的工作流程,

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

64、绘窗口并最终实现滚动文字效果。_Task_1 与_GUI_Task 的工作流程与_Task_0 类似,只不过_Task_1 移动的是窗口,_GUI_Task 用来维护显示背景。第五章 软件设计30图 5-18 _Task_0 任务工作流程图 以上三个任务实现了滚动文字及移动窗口的动态显示效果。在所有任务创建完毕后,系统进入了正常的多个任务同时运行的状态。第六章 结 论31第六章 结论本文在嵌入式系统和 WiFi 无线网络技术的基础之上,介绍了 WIFI-M03 模块的参数和操作流程,重点分析了网络数据传输协议的报文设计和以及无线热点接入图形界面的开发等问题,以达到一个精简的目的。全文分为三大板

65、块:1.详细介绍了嵌入式系统及WiFi无线网络的基础知识。2.详细介绍了嵌入式系统的硬件平台,其中包括芯片的选择,32位的STM32F103微处理器主要特点,以及WiFi模块的操作流程。3.在软件设计部分,首先给出了该系统软件设计的分层框图,详细介绍了LCD驱动程序、串口初始化程序、WiFi参数配置程序的编写,重点分析了网络数据传输协议报文的设计,简述了UC/GUI在STM32嵌入式平台的移植,并在此基础上进行了WiFi无线热点接入图形界面的开发。本设计方案在性能方面超过了传统8位或者16位微处理器,提高了系统的性能,实现了更多的功能;在价格方面,由于32位ARM微处理器价格的不断下降,相对于

66、那些大型服务器其成本已经非常便宜。 参 考 文 献 32参考文献 1沙占友等. 单片机外围电路设计. 北京:电子工业出版社,20032美 Berger,A.著吕骏译嵌入式系统设计电子工业出版社,2002.93嵌入式系统设计教程,马洪连等,电子工业出版社,2006.64周立功著.ARM 嵌入式系统基础教程M.北京:北京航空航天大学出版社,2005.55杨刚主编,32 位嵌入式系统与 SoC 设计导论(第 2 版),电子工业出版社,2011.16李宁.基于 MDK 的 STM32 处理器开发应用北京航空航天大学出版社. 2008 年7Duckmyung, Yuseong, Daejeon. Modified multilevel inverter employing half- and full-bridge cells with cascade transformer and its extension to photovoltaic power generation. 2010:305-7198KONSTANTIN TURITSYN ;PETR SULC ;SCOTT BACKHAUS

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