首页 201201-336

201201-336

举报
开通vip

201201-336 http://www.paper.edu.cn - 1 - 中国科技论文在线 基于STM32的WiFi数据收发模块的设计与 实现 黄海波,张淼** 作者简介:黄海波(1988-),男,硕士,无线网络 通信联系人:张淼(1980-),男,讲师,网络安全. E-mail: zhangmiao@bupt.edu.cn (北京邮电大学信息安全中心,北京 100876) 5 摘要...

201201-336
http://www.paper.edu.cn - 1 - 中国科技论文在线 基于STM32的WiFi数据收发模块的设计与 实现 黄海波,张淼** 作者简介:黄海波(1988-),男,硕士,无线网络 通信联系人:张淼(1980-),男,讲师,网络安全. E-mail: zhangmiao@bupt.edu.cn (北京邮电大学信息安全中心,北京 100876) 5 摘要:本文在根据目前 WiFi 主要应用在手机和笔记本上的局限性提出了一种通用的 WiFi 模块,文章首先介绍并讨论了论文的研究背景和当前无线局域网的发展状况,通过讨论,作 者设计了一种基于 STM32开发平台的WiFi模块,该模块能够主动发现并连接 AP,发送和 接收数据时能够保证数据的完整性,最终依照设计完成了模块的开发并给出了测试结果。 关键词:WiFi;STM32;WiFi模块 10 The Designation and Implemention of WiFi Transceiver Module Based on STM32 Huang Haibo, Zhang Miao (Information Security Center, Beijing Univercity of posts and telecommunitions, Beijing 15 100876) Abstract: This paper proposes a generic WiFi modules to solute the limitation of WiFi which is mainly used in mobile phones and laptopps. The paper describes and discusses the research background and current state of development of the wireless LAN at first. After that, the author designed a WiFi module based on STM32 development platform. This module can find and connect AP initiatively, and 20 it can ensure data integrity while sending and receiving data. At last, this paper show the process of realization and test results of the module abbey the designation. Key words: WiFi; STM32; WiFi module 0 引言 25 当今无线局域网技术的发展迅速,无线终端已经融入到了我们的生活中,无论是智能手 机还是笔记本,WiFi 功能几乎都是必备的。人们可以解脱有线的束缚,在有无线热点的情 况下,通过无线终端随时随地的访问互联网。目前 WiFi 技术主要的应用还是在手持终端, 但是随着用户的需求越来越广泛,WiFi 技术也需要应用到不同的方面如工业控制,移动办 公等,这就需要各种不同实现形式的终端。本文正是开发并实现基于一种嵌入式开发平台30 STM32 的 WiFi 模块,使一些嵌入式设备也能够使用无线资源。此外,该模块对上层提供了 统一的接口,这就保证了,无论是打印机还是传真机,只要数据格式符合模块设计的模式就 能通过 WiFi 模块自由的收发数据。 1 论文研究背景与模块介绍 1.1 无线局域网与 WiFi 简介 35 WiFi 属于 WLAN(Wireless Local Area Networks,无线局域网络)的范畴,WLAN 为移动 终端提供了无线接入的功能。使用 WLAN,不但能节省了开支,保持了工作空间的整洁, 而且相比于有线网络,灵活性更强,可以灵活解决多人同时使用网络的情况。目前,WLAN http://www.paper.edu.cn - 2 - 中国科技论文在线 的组网方式主要使用有固定基础设施的 WLAN,这种组网方式组要是遵循 802.11 系列的标 准铺设的一种星状拓扑,本 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 中用的就是这种结构,其拓扑图如图 1 所示: 40 图1 有固定基础设施的 WLAN 的拓扑结构[1] Fig. 1 the topology of fixed infrastructure WLAN 其中,AP(Access Point,接入点)为 WLAN 的中心。是连接有线网和无线网之间的桥梁,45 移动终端接入有线网络的入口;BBS(Basic Service Set,基本服务集),是无线局域网中最小 的构件,由一个基站(如 AP)和若干个移动站构成。每个 BSS 都有一个不超过 32 字节的名字 SSID(Service Set IDentity)和一个信道。一个 BSS 所能覆盖的地理范围成为 BSA(Basic Service Area,基本服务区),其直径一般不超过 100 米;DS (Distribution System,分配系统),连接 BSS 和路由器,其作用一方面是将路由器的网络资源分配给 BSS,一方面使 BSS 中的站可50 以互连;当一个 BSS 通过基站连接到 DS 并通过 DS 连接到另一个 BSS 时,就构成了一个 ESS (Extended System,扩展的服务集)。 Wi-Fi(wireless fidelity,无线保真技术)俗称无线宽带,是一种可以将个人电脑、手持设 备(如 PDA、手机)等终端以无线方式互相连接的技术,由 Wi-Fi 联盟于 1999 年提出。最初 Wi-Fi 特指 IEEE 802.11b 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 ,但是随着 802.11 家族的发展,目前,现在 IEEE 802.11 这个55 标准已被统称作 Wi-Fi,一般情况下 Wi-Fi 模块同时支持 802.11 的多个标准,如 802.11a/b/g 等。由于其具有传输速度快、覆盖范围广、投资经济等的优点[2],使 WiFi 技术广泛的用于 人们的生活中,当前主要使用的标准为 802.11g,它在兼容 802.11b 的基础上,采用了全新 的编码技术 OFDM(Orthogonal Frequency Division Multiplexing,正交频分复用),使最大传送 速度提升到 54Mbit/s,进一步缩短了数据的传送时间。 60 1.2 开发设备 1.2.1 STM32 开发平台 STM32 是意法半导体基于 ARM Cortex-M 处理器架构的一系列微控制器的总称。根据 性能不同分成两个的系列:“增强型”系列和“基本型”系列。目前使用的主要是“增强型”。 为了方便开发,STM32 系列为开发者提供了足够的接口、快速的 ARM 处理核心以及叙述65 详细全面的开发手册与编程说明。由于其功耗小,运行稳定,成本低,运行速度快等优点被 广泛用于各种嵌入式的开发当中,如医疗和应用控制、报警系统、视频对讲等。考虑到以上 http://www.paper.edu.cn - 3 - 中国科技论文在线 的这些优点,本项目选择使用 STM32 系列芯片为核心搭建开发平台。本项目中选择了 STM32F103Vx[3]作为 STM32 模块的核心,STM32F103Vx 属于 STM32 的增强型系列,共对 外提供了 100 个管脚,使用的是高性能的 ARM Cortex-M3 32 位的 RISC 内核,工作频率为70 72MHz,内置高速存储器,丰富的增强 I/O 端口和联接到两条 APB 总线的外设。此平台包 含我们所关注的几个部分:3 个 USART 接口,项目中只需要两个;3 个通用 16 位定时器, 在项目中可以用作计时;64KB 的 flash,完全能够存储程序中的代码;20KB 的 RAM,可以 用来存储临时数据同时也可以做缓冲区。 1.2.2 WiFi 开发模块 75 Wi-Fi 的技术公开,厂商进入该领域门槛较低,目前市场上有很多品牌的 Wi-Fi 开发模 块。为了实现方便,本项目中我们选择了一个开发文档丰富的 Wi-Fi 模块,该模块由北京中 大华大电子设计有限责任公司生产,型号为 TLG09UA01[4]。该模块是一款专为带有 UART 接口平台设计的网卡模块,符合 802.11b 标准,可采用插针接口的方式与主机连接。 TLG09UA01 网卡模块应用于带有 UART 接口的设备环境中,符合 STM32 接口的要求。80 运行稳定,目前改产品已经广泛的用在无线 POS 机、公交卡等系统中。 1.2.3 模块开发环境 实现中,需要直接对硬件进行编程,且中间出现的问题比较复杂,既可能是编程的逻辑 问题,也有可能是硬件的中断、时钟、存储问题。开发中同时需要硬件环境和软件环境,主 要如下: 85 z 硬件环境  PC 机两台:CPU:Intel Core 2 Duo E7400 2.8Ghz;硬盘:500G/5600 转;内存:DDR3 2G。 STM32F103Vx开发板两个。华大 TLG09UA01 Wi‐Fi模块两个。串口线、连接线若干。  z 软件环境及开发语言 操作系统:Window XP。嵌入式系统开发工具:IAR。程序查看、编辑工具:Source Insight。90 Wi-Fi 测试软件:WLANMServer。串口调试工具:串口调试助手。开发语言:c语言。  2 WiFi 模块架构与数据报文设计 2.1 WiFi 模块架构 WiFi 模块主要包括三个部分,分别为数据源,STM32 开发平台和 WiFi 模块。相互间 的联系及架构如下图 3 所示: 95 图 2 WiFi 模块架构 Fig. 4 The architecture of WiFi module http://www.paper.edu.cn - 4 - 中国科技论文在线 从图中可以看出,STM32 开发平台是 WiFi 模块的核心,是项目实现的重点,模块能否 正常稳定的工作直接影响到整个系统的实现,其主要设计目标如下: 100 1. 需要实现对 Wi-Fi 模块设置与控制,完成与网络连接及数据收发。 2. 实现终端与服务器间的注册、登录、主被叫通信建立等信令功能。 3. 实现移动办公平台间端到端的可靠数据传输。 对与数据源,主要是指通过串口 3 进行传输数据给 STM32,本项目中主要使用 PC 机, 而对于WiFi模块则主要负责连接网络、发送和接收数据,但是其主要的功能还是需要STM32105 进行控制。 2.2 数据报文设计 制定统一的数据结构,是保证移动办公平台兼容其他普通办公系统,数据能够加解密、 发送、接收以及服务处正确处理的基础。这也是本项目实现的意义。因此对于数据结构的设 计非常重要。一个好的数据结构是模块稳定的保证,是系统提供模块类型的体现,是提高模110 块兼容性的保证,此外好的数据结构还能保障模块的可扩展性,为以后系统的扩展提供保障。 本项目中,WiFi 模块所在的系统架构为 C/S 架构,这就要求数据报文除了需要模块能 够正确的处理,同时要求通信系统中服务器也能解析。对于服务器端,主要由项目中其他人 解决,这里作者根据数据格式的具体用途以及服务器和客户端本身的特点,可以将数据包分 成两类,一类是与信令相关的结构,一类是与数据相关的结构。 115 对于与信令相关的数据包主要包括注册请求报文,注册应答报文,呼叫请求报文,呼叫 通报报文,被叫端呼叫应答报文,服务器呼叫应答报文,报文格式如图 3 至图 8 所示。 图 3 注册请求报文 Fig. 3 Registration request message 120 图 4 注册应答报文 Fig. 4 Registration Reply message 125 图 5 呼叫请求报文 Fig. 5 Call request message http://www.paper.edu.cn - 5 - 中国科技论文在线 图 6 呼叫通报报文 130 Fig. 6 Call notification message 图 7 被叫端呼叫应答报文 Fig. 7 Call reply message from called party 135 图 8 服务器呼叫应答报文 Fig. 8 Call reply message from server 140 对上图中各数据报文中字段含义如下: z 总长度:8bit,表示报文的总长度。 z 类型;8bit,表示报文的类型,在这个字节中不同的值代表不同的数据报文类型, 其中,0x10:注册请求,0x11:注册成功,0x12:注册失败,0x20:呼叫请求,0x22:被叫 通报,0x21:呼叫成功,0x23:呼叫失败。 145 z 标长:8bit,标号的长度,标号类似于该用户的用户名。 z 标号:(8*表长)bit,即为用户名的字符形式,在本系统中,用户名可以是数字和其 他字符,但为了保证能够区分用户,用户名唯一。 z 能力:8bit,能力主要用于表示用户使用资源的权利,服务器可以根据用户的能力 判定用户是否对某些资源有使用的权限。本项目中默认用户都有发送报文和接收报文的能150 力,并用 0x00 表示。 z Random:16bit,Random 是客户端产生的一个 16 位的随机数,服务器返回的应答 报文中应该是 Random + 1。Random 在一些 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 中,主要作用是保证信息的新鲜性,防止重 放攻击。 z CRC:8bit,CRC 的全拼是 Cyclic Redundancy Check,又称之为循环冗余校验。在155 本项目中,使用一个简单的 CRC,将数据包前面的所有数据以八位为一个分组进行异或, 将最后的结果存入最后的 8 位中。服务器收到信息后,使用同样的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 得到最后 8 位数(CRC 不加入异或)与 CRC 比较,如果一致则表示数据没有出错。 z 源标长:8bit,指主叫方标号的长度。 z 源标号:(8*标长)bit,主叫端用户名的用户名。 160 http://www.paper.edu.cn - 6 - 中国科技论文在线 z 目的标长:8bit,指接收方标号的长度。 z 目的标号:(8*标长)bit,目的端用户名的用户名。 上述五种数据报文中,注册请求和注册应答主要在用户登录系统时注册使用,呼叫请求, 呼叫通报,客户端呼叫应答和服务器呼叫应答主要用在呼叫请求的过程中。具体过程为主叫 方将呼叫请求发送到服务器,服务器收到请求后解析数据包产生呼叫通告报文发给被叫方,165 等待被叫方的被叫应答报文,然后将结果传递给主叫方,同时,如果被叫方长时间没有反应, 则服务器会自己产生呼叫失败报文给主叫方。 对于数据类型的报文,其主要目的就是承载通信双方的数据以及相对于数据的应答。主 要包括数据报文、应答报文和数据结束报文。报文格式如图 9 至图 11: 170 图 9 数据报文 Fig. 9 Data message 图 10 应答报文 175 Fig. 10 Reply message 图 11 结束报文 Fig. 11 Send completed message 180 从图中可以看出数据类报文结构与信令类的相比,有了包号,数据长度和数据字段,其 中数据长度和数据主要用于表示传输的数据,而对于包号,主要作用是终端可以根据包号重 组收到的数据包,保证数据的完整性。 3 模块实测 185 3.1 WiFi 模块的工作 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 模块的工作流程包括注册和数据的发送请求等,发送数据和接收数据的工作流程如图 13a、图 13b: 从图中,对于发送数据的流程,模块开启后,首先通过 Wi-Fi 模块寻找、连接网络,当 http://www.paper.edu.cn - 7 - 中国科技论文在线 连接到网络时,主动向服务器发送注册请求,注册完成后便可以根据上层的需求进行呼叫请190 求了,建立数据连接后,移动开发平台便开始等待上层的数据,直到收到数据,由 STM32 将数据封装后通过 Wi-Fi 模块发送给服务器。重复等待动作直至通信结束。对于接收过程, 与发送过程类似,只是对于数据的处理,与发送过程正好相反。 195 图 13a 数据发送流程 图 13b 数据接收流程 Fig. 13a Data transmission process Fig. 13b Data receiving process 3.2 模块初始化 STM32 是 WiFi 模块的核心,当系统启动时首先要调用 STM32 的初始化函数,从而初200 始 化模 块, 为模 块连接 网络 ,处理数据做准备。模块初始化主要使用函数 System_Initialization(void)[5]; 该 函 数 中 主 要 完 成 的 工 作 包 括 : 调 用 函 数 RCC_Configuration(void);初始化系统时钟;调用函数 UART_Configuration();初始化 USART; 使用函数 Timer_Configuration();初始化时钟;调用函数 NVIC_Configuration();初始化时钟管 理。同时对于 USART 和时钟,开发人员可以根据自己的需求选择开启需要使用的资源关闭205 不需要使用的资源。 3.3 WiFi 的实现 Wi-Fi 与 STM32 之间用 USART1 相连,因而初始化 STM32 时,需要开放 USART1,可 在函数 UART_Configuration(void);中设置波特率、中断类型等,如在本项目中设置波特率 为 115200bps,接收和发送都产生中断以保证其既能发送数据又能接收数据。WiFi 开发模块210 为开发者提供了一个数据结构 NetParaBuffer[6]来统一每个参数的格式,其具体结构如下: typedef struct NetParaBuffer { http://www.paper.edu.cn - 8 - 中国科技论文在线 unsigned char M_id; //参数名称 unsigned char cLength; //参数长度 215 unsigned char cInfo[64]; //具体的参数内容 }NetParaBuffer; 然后调用函数 void WI-FISetNetPara(IN unsigned char cPb, IN struct NetParaBuffer *cNetParaBuffer, IN unsigned char AckFlag)通过其中的函数SendDataToWi-Fi通过USART1 将参数传递给 Wi-Fi 模块,通过传递不同的参数 SendDataToWi-Fi 既可以发送一般命令给220 Wi-Fi 模块,也可以发送普通的数据。其中 cPb 为组号,AckFlag 代表配置成功后是否返回 ACK,1 返回,0 不返回。 在配置到WiFi的相关参数后,调用Wi-Fi_Para_set_auto()使Wi-Fi处在自动模式并联网, 这就可以通过 AP 连上网了。之后的数据直接调用 SendDataToWi-Fi 就可以通过 USART1 将 数据发送给 Wi-Fi 模块,根据之前设置的服务器的 IP 地址通过 AP 发送出去了。 225 3.4 数据源接口的实现, 本项目中,使用 USART3 接收数据源的数据,初始化 USART3 的方式与 Wi-Fi 相同。 由于没有流量控制,数据源的数据会通过串口一直往传给 STM32 直到数据传送结束,考虑 到各模块 USART 使用的波特率相同,但是处理速度不同,特别是要经过网络传输,因而要 给数据源预留一段的空间,对于测试的数据每次连续发送的数据量不是很大(不超过 4KB),230 因此综合上面讨论的情况缓冲区预设为 5000 字节。 项目中判断数据结束的可以使用两种方式,一种是采用特定格式的数据,当 STM32 收 到数据源这种格式时就认为数据结束,发送数据发送结束报文,这种方式的缺点是要设计良 好的数据结束标志,保证 STM32 不会将正常的数据误处理为结束数据;另一种方式是采用 定时的机制,当在一定时间内没有数据发送时就认为数据发送结束。这种方式实现相对简单,235 且可以有效的降低服务器的负担,但是缺点也很明显,客户端一般不能即时的主动断开连接。 本项目实现时使用的时第二种方式,在终端程序中设置一个整形的时间变量 endSend 并初始 化为 0 用于数据,根据时钟的特性,每毫秒加 1,期间如果 USART3 收到任何数据,都将变 量清零,直到 endSend 计数到 60000(1 分钟)表示数据发送结束。然后 STM32 生成结束报文 通过 WiFi 模块发送出去。 240 至此,WiFi 模块的实现基本完成,接下来的工作就是统一的测试,确认模块能否稳定 正确的收发和处理数据了。 3.5 测试结果 根据项目的需求,在 WiFi 模块完成后,对其进行了一系列的测试结果,主要包括: 1.模块启动后自动寻找并连接到本地的 AP。测试中通过 AP 的信息设置了 Wi-Fi 的相关245 参数,能够连接到网络。同时更改 AP 信息后,Wi-Fi 模块做相应的修改仍能连接网络,说 明连网没有问题。 2.注册用户。网络连接后使用了服务器定义的用户登录,可以登上服务器,若使用非法 用户登录,服务器也会拒绝,说明客户端可能正确处理服务器发来的信息,同时,服务器可 以根据用户的信息访问认证中心处理用户信息。 250 3.数据发送的可靠性。这个测试主要是测试端到端数据的可靠性,多次发送数据报文, 由于数据传输时使用的是 TCP 协议,因而传输过程中出现错误的概率较小。同时在通信连 接的过程,发送双发 2 分钟内不发送数据,连接会自动断开。 http://www.paper.edu.cn - 9 - 中国科技论文在线 4.系统一次支持的最大连续数据量。对于连续的数据量,主要通过发送纯文本文件实现, 项目中在保证文件在名密文条件下都能正常接收的情况下逐渐增大文件的大小。传到 3MB255 大小的文件是用时大约为 5 分钟,比理论值(3MB/115200bps=208s)多出一分钟左右,这与中 间处理数据和发送数据的时间有关,但是之后数据便不能保证每次都能发送正确了,但是增 加接收数据源的缓冲区仍能进一步的增大,说明应该与缓冲区有关。但是项目要求连续数据 的大小一般为几十 KB,所以,本项目能够满足需求。 下图 17 展示了 WiFi 模块的整个数据传输过程 260 图 15 测试结果 Fig. 15 Test result 从图中显示了模块的整个工作流程,“Connect With the server”表示用户端登陆了服务265 器,“can send data”表示通话已经建立并可以发送数据了,后面的字符为对法发送的数据, 本端的数据可以通过字符串输入框输入并发送,此外,如果想发送文件,则可以通过打开文 件框找到文件并发送,当数据发送完成后等待 1 分钟,连接自动断开,并显示“Data has send over”。测试结果显示,模块能够满足提出的设计需求。 4 总结与展望 270 本论文主要是基于 STM32 开发平台实现了一种通用的 WiFi 的数据收发模块,使 WiFi 的应该不仅仅是在手持终端上,进一步扩大了 WiFi 技术的用用范围。通过前面的讨论与描 述,作者基本完成了 WiFi 模块的开发需求,实现了 WiFi 模块的连网、注册、发送数据的 功能,且在一定程度上能保证模块的稳定性和数据的完整性。 同时我们看到,模块距离商用还有一段距离,主要是没有保证数据的安全性,与上层数275 据源的交互还不够人性化,数据传输的速度还有待提高等等。此外一些功能的细节还需要完 善。同时对于用户注册与密钥协商的过程,还需要对模块做进一步的实现。 从我们的进度来看,工作正在有序的进行,相信将来能够实现产品的商业化。 280 http://www.paper.edu.cn - 10 - 中国科技论文在线 [参考文献] (References) [1] 谢希仁. 计算机网络[M]. 北京:电子工业出版社,2008. [2] 李扬. WiFi 技术原理及其应用研究[J]. 科技信息,2010,1(6):241. [3] 意法半导体. STM32F103 数据手册[R]. 北京:意法半导体,2007. 285 [4] 北京中电华大电子设计责任有限公司. TLG09UA01 产品规格书[R]. 北京:北京中电华大电子设计责任 有限公司,2009. [5] 意法半导体. STM32F10xxx_中文_编程说明[R]. 北京:意法半导体,2007. [6] 北京中电华大电子设计责任有限公司. 基于 UART 接口的 WLAN 模块用户手册[R]. 北京:北京中电华 大电子设计责任有限公司,2009. 290
本文档为【201201-336】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_501418
暂无简介~
格式:pdf
大小:463KB
软件:PDF阅读器
页数:0
分类:
上传时间:2014-04-03
浏览量:18