您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于STM32的WiFi数据收发模块的设计
数据收发模块的设计与实现黄海波,张淼**作者简介:黄海波(1988-),男,硕士,无线网络通信联系人:张淼(1980-),男,讲师,网络安全.E-mail:zhangmiao@bupt.edu.cn(北京邮电大学信息安全中心,北京100876)5摘要:本文在根据目前WiFi主要应用在手机和笔记本上的局限性提出了一种通用的WiFi模块,文章首先介绍并讨论了论文的研究背景和当前无线局域网的发展状况,通过讨论,作者设计了一种基于STM32开发平台的WiFi模块,该模块能够主动发现并连接AP,发送和接收数据时能够保证数据的完整性,最终依照设计完成了模块的开发并给出了测试结果。关键词:WiFi;STM32;WiFi模块10TheDesignationandImplementionofWiFiTransceiverModuleBasedonSTM32HuangHaibo,ZhangMiao(InformationSecurityCenter,BeijingUnivercityofpostsandtelecommunitions,Beijing15100876)Abstract:ThispaperproposesagenericWiFimodulestosolutethelimitationofWiFiwhichismainlyusedinmobilephonesandlaptopps.ThepaperdescribesanddiscussestheresearchbackgroundandcurrentstateofdevelopmentofthewirelessLANatfirst.Afterthat,theauthordesignedaWiFimodulebasedonSTM32developmentplatform.ThismodulecanfindandconnectAPinitiatively,and20itcanensuredataintegritywhilesendingandreceivingdata.Atlast,thispapershowtheprocessofrealizationandtestresultsofthemoduleabbeythedesignation.Keywords:WiFi;STM32;WiFimodule0引言25当今无线局域网技术的发展迅速,无线终端已经融入到了我们的生活中,无论是智能手机还是笔记本,WiFi功能几乎都是必备的。人们可以解脱有线的束缚,在有无线热点的情况下,通过无线终端随时随地的访问互联网。目前WiFi技术主要的应用还是在手持终端,但是随着用户的需求越来越广泛,WiFi技术也需要应用到不同的方面如工业控制,移动办公等,这就需要各种不同实现形式的终端。本文正是开发并实现基于一种嵌入式开发平台30STM32的WiFi模块,使一些嵌入式设备也能够使用无线资源。此外,该模块对上层提供了统一的接口,这就保证了,无论是打印机还是传真机,只要数据格式符合模块设计的模式就能通过WiFi模块自由的收发数据。1论文研究背景与模块介绍1.1无线局域网与WiFi简介35WiFi属于WLAN(WirelessLocalAreaNetworks,无线局域网络)的范畴,WLAN为移动终端提供了无线接入的功能。使用WLAN,不但能节省了开支,保持了工作空间的整洁,而且相比于有线网络,灵活性更强,可以灵活解决多人同时使用网络的情况。目前,WLAN,这种组网方式组要是遵循802.11系列的标准铺设的一种星状拓扑,本方案中用的就是这种结构,其拓扑图如图1所示:40图1有固定基础设施的WLAN的拓扑结构[1]Fig.1thetopologyoffixedinfrastructureWLAN其中,AP(AccessPoint,接入点)为WLAN的中心。是连接有线网和无线网之间的桥梁,45移动终端接入有线网络的入口;BBS(BasicServiceSet,基本服务集),是无线局域网中最小的构件,由一个基站(如AP)和若干个移动站构成。每个BSS都有一个不超过32字节的名字SSID(ServiceSetIDentity)和一个信道。一个BSS所能覆盖的地理范围成为BSA(BasicServiceArea,基本服务区),其直径一般不超过100米;DS(DistributionSystem,分配系统),连接BSS和路由器,其作用一方面是将路由器的网络资源分配给BSS,一方面使BSS中的站可50以互连;当一个BSS通过基站连接到DS并通过DS连接到另一个BSS时,就构成了一个ESS(ExtendedSystem,扩展的服务集)。Wi-Fi(wirelessfidelity,无线保真技术)俗称无线宽带,是一种可以将个人电脑、手持设备(如PDA、手机)等终端以无线方式互相连接的技术,由Wi-Fi联盟于1999年提出。最初Wi-Fi特指IEEE802.11b标准,但是随着802.11家族的发展,目前,现在IEEE802.11这个55标准已被统称作Wi-Fi,一般情况下Wi-Fi模块同时支持802.11的多个标准,如802.11a/b/g等。由于其具有传输速度快、覆盖范围广、投资经济等的优点[2],使WiFi技术广泛的用于人们的生活中,当前主要使用的标准为802.11g,它在兼容802.11b的基础上,采用了全新的编码技术OFDM(OrthogonalFrequencyDivisionMultiplexing,正交频分复用),使最大传送速度提升到54Mbit/s,进一步缩短了数据的传送时间。601.2开发设备1.2.1STM32开发平台STM32是意法半导体基于ARMCortex-M处理器架构的一系列微控制器的总称。根据性能不同分成两个的系列:“增强型”系列和“基本型”系列。目前使用的主要是“增强型”。为了方便开发,STM32系列为开发者提供了足够的接口、快速的ARM处理核心以及叙述65详细全面的开发手册与编程说明。由于其功耗小,运行稳定,成本低,运行速度快等优点被广泛用于各种嵌入式的开发当中,如医疗和应用控制、报警系统、视频对讲等。考虑到以上中国科技论文在线的这些优点,本项目选择使用STM32系列芯片为核心搭建开发平台。本项目中选择了STM32F103Vx[3]作为STM32模块的核心,STM32F103Vx属于STM32的增强型系列,共对外提供了100个管脚,使用的是高性能的ARMCortex-M332位的RISC内核,工作频率为7072MHz,内置高速存储器,丰富的增强I/O端口和联接到两条APB总线的外设。此平台包含我们所关注的几个部分:3个USART接口,项目中只需要两个;3个通用16位定时器,在项目中可以用作计时;64KB的flash,完全能够存储程序中的代码;20KB的RAM,可以用来存储临时数据同时也可以做缓冲区。1.2.2WiFi开发模块75Wi-Fi的技术公开,厂商进入该领域门槛较低,目前市场上有很多品牌的Wi-Fi开发模块。为了实现方便,本项目中我们选择了一个开发文档丰富的Wi-Fi模块,该模块由北京中大华大电子设计有限责任公司生产,型号为TLG09UA01[4]。该模块是一款专为带有UART接口平台设计的网卡模块,符合802.11b标准,可采用插针接口的方式与主机连接。TLG09UA01网卡模块应用于带有UART接口的设备环境中,符合STM32接口的要求。80运行稳定,目前改产品已经广泛的用在无线POS机、公交卡等系统中。1.2.3模块开发环境实现中,需要直接对硬件进行编程,且中间出现的问题比较复杂,既可能是编程的逻辑问题,也有可能是硬件的中断、时钟、存储问题。开发中同时需要硬件环境和软件环境,主要如下:85z硬件环境 PC机两台:CPU:IntelCore2DuoE74002.8Ghz;硬盘:500G/5600转;内存:DDR3 2G。STM32F103Vx开发板两个。华大TLG09UA01 Wi‐Fi模块两个。串口线、连接线若干。 z软件环境及开发语言操作系统:WindowXP。嵌入式系统开发工具:IAR。程序查看、编辑工具:SourceInsight。90Wi-Fi测试软件:WLANMServer。串口调试工具:串口调试助手。开发语言:c语言。 2WiFi模块架构与数据报文设计2.1WiFi模块架构WiFi模块主要包括三个部分,分别为数据源,STM32开发平台和WiFi模块。相互间的联系及架构如下图3所示:95图2WiFi模块架构Fig.4ThearchitectureofWiFimodule中国科技论文在线从图中可以看出,STM32开发平台是WiFi模块的核心,是项目实现的重点,模块能否正常稳定的工作直接影响到整个系统的实现,其主要设计目标如下:1001.需要实现对Wi-Fi模块设置与控制,完成与网络连接及数据收发。2.实现终端与服务器间的注册、登录、主被叫通信建立等信令功能。3.实现移动办公平台间端到端的可靠数据传输。对与数据源,主要是指通过串口3进行传输数据给STM32,本项目中主要使用PC机,而对于WiFi模块则主要负责连接网络、发送和接收数据,但是其主要的功能还是需要STM32105进行控制。2.2数据报文设计制定统一的数据结构,是保证移动办公平台兼容其他普通办公系统,数据能够加解密、发送、接收以及服务处正确处理的基础。这也是本项目实现的意义。因此对于数据结构的设计非常重要。一个好的数据结构是模块稳定的保证,是系统提供模块类型的体现,是提高模110块兼容性的保证,此外好的数据结构还能保障模块的可扩展性,为以后系统的扩展提供保障。本项目中,WiFi模块所在的系统架构为C/S架构,这就要求数据报文除了需要模块能够正确的处理,同时要求通信系统中服务器也能解析。对于服务器端,主要由项目中其他人解决,这里作者根据数据格式的具体用途以及服务器和客户端本身的特点,可以将数据包分成两类,一类是与信令相关的结构,一类是与数据相关的结构。115对于与信令相关的数据包主要包括注册请求报文,注册应答报文,呼叫请求报文,呼叫通报报文,被叫端呼叫应答报文,服务器呼叫应答报文,报文格式如图3至图8所示。图3注册请求报文Fig.3Registrationrequestmessage120图4注册应答报文Fig.4RegistrationReplymessage125图5呼叫请求报文Fig.5Callrequestmessage对上图中各数据报文中字段含义如下:z总长度:8bit,表示报文的总长度。z类型;8bit,表示报文的类型,在这个字节中不同的值代表不同的数据报文类型,其中,0x10:注册请求,0x11:注册成功,0x12:注册失败,0x20:呼叫请求,0x22:被叫通报,0x21:呼叫成功,0x23:呼叫失败。145z标长:8bit,标号的长度,标号类似于该用户的用户名。z标号:(8*表长)bit,即为用户名的字符形式,在本系统中,用户名可以是数字和其他字符,但为了保证能够区分用户,用户名唯一。z能力:8bit,能力主要用于表示用户使用资源的权利,服务器可以根据用户的能力判定用户是否对某些资源有使用的权限。本项目中默认用户都有发送报文和接收报文的能150力,并用0x00表示
本文标题:基于STM32的WiFi数据收发模块的设计
链接地址:https://www.777doc.com/doc-4515213 .html