
数学执车与率用
设计开发
WiFi模块控制WiFi控制卡显示的设计
李远念
(重庆邮电大学重庆400065)
摘要:使用stm32f103RE单片机对WiFi模块Marvell88W8686送行开发驱动型号为ZHW0的WiFi控制卡,将GB2312码转化为点阵数据,锋点阵数据按照W正控制卡的通信协议进行对装,将该数据进一步作TCP封装,发逐给WFi控制卡,实现显示。
关键调:stm32f103RE Marvell 88W8686 中航ZHW0 TCP
中图分类号:TN91 1前言
文献标识码:A
Marvell88W8686模块是款支持IEEE802.11a/g/b MAC/BaseBand/RFWLAN的片上系统,配备一个集成的射频到基带的收发器,支持1个通用的SPI和SDIO主机接口。
WiF控制卡是用WiFi无线信号来传输数据的LED控制卡,因其免布线,无需连接宽带、无流量费用等优点,被越来越多的人群使用。
2基本思路
本文要实现根据给定的GB2312码在LED显示屏上显示对应的字符。首先建立W模块与W控制卡的连接,其次建立WF模块与WiF控制卡的通信,后者包括将GB2312码转化为点阵数据,分析
WiFi控制卡的通信协议与发送和接收TCP数据。 3功能实现
3.1建立WiFi模块与WiFi控制卡的连接
802.11协议规定WF的连接要依次经过扫描、认证和关联共3 个阶段,在扫描阶股,STA通过侦听Beacon慎或发送Probe慎在每个可用的信道上搜索AP,当STA找到与其有相同的SSID(服务集标识) 的AP,就会进人认证阶段,只有身份认证通过的站点才能进行无线接人访问。AP提供以下几种认证方法:
①开放系统身份认证。②共享密钥认证。③WPAPSK认证。@802.1XEAP认证。
当AP向STA返回认证响应信息,即身份认证获得通过后,进人关联阶段,在此阶段,STA向AP发送关联请求,AP向STA返回关联响应,此时接人过程完成,STA初始化完毕,就可以开始向AP传送数据慎。
此部分参考了随购买的W证模块赠送的源码,在通信时,WF 控制-卡是AP(SSID是ZH-W04774),WiF模块是STA并添加了以下功能:当没有搜索到SSID是ZH-W0-4774的AP,就重新搜索。
3.2建立WiFi模块与WiFi控制卡的通信
因为TCP(传输控制协议)的面向连接的,可靠的优点,W控制卡一般采用TCP协议实现可靠传输。因此WFi模块要能实现应用层数据的TCP封包和解包。我们要发送什么样的应用层数据是通过 ac cd 8f 33 1e 98 68 a3
3c4 ce4b f6 08 00 45 00
00 39 12 3 40 00 40 06
4b Od Oa Oa 64 62 Oa Oa bec9 8f11.0b19 50 18
64 feeb 64 22 c39b 7a
80 00 fa 8100 0075 01aa42 64 45 3a ff 15 04 00363636363515
图1WireShark监控获取的第1慎数据
收稿日期:2014-12-20
文章编号:1007-9416(2014)12-0141-0)
如下方式获取的:在WiF控制卡对应的LED软件与Wifi控制卡进行通信时,通过网络封包分析软件WireShark获取通信数据。
3.2.1将GB2312磁转化为点降数据
本文做实验使用的LED显示屏是16×32点阵的,所以在程序中添加了一个GB2312字库的16×16点阵字模,实际是个二维数组,通过某公式可以由任一GB2312码确定一个32字节的点阵数据。因为 WiFi控制卡要求的点阵数据格式与通过GB2312码获取的点阵数据格式不同,所以还需要将点阵数据格式转换。
3.2.2分折WiFi按制卡的通信办议
只要做足够多的数据监控,将监控数据进行对比分析就可以获
取到W证控制卡使用协议的所有细节,但这样做既费时也没必要,首先需要获取点阵数据的位置和移动方式的控制字节,前者将 GB2312码获取到的点阵数据覆盖原来的点阵数据,后者控制显示字体的移动方式,本文使用左移显示。其次要获取应用层所有的发送数据和接收数据,WF控制卡的发送数据是分次进行的,每次发送数据都会收到回应数据,在程序中将发送数据和接收数据做成模板,根据GB2312码的不同,对模板数据进行更新,将其发送出去,若接收到期望的数据就进行下次的发送。
当使用WiF控制卡附带的LED软件与PC的无线网卡进行无线通信时,图1表示用WireShark无线网卡监控工具通过监控上面的通信过程面获取的第1赖数据,如图1所示,蓝色背录部分共17字节,表示第1慎的应用层数据,为0x75,0x01,0xaa,0x42,0x64,0x45,0x3a, 0xff, 0x15, 0x04, 0x00, 0x36, 0x36, 0x36, 0x36, 0x35, 0x15。
按照同样的办法,可以将WiFi控制卡与PC的无线网卡进行一次成功通信的所有数据慎监控并保存下来,要注意的是只需要关心各数据赖的应用层数据即可,经过足够多次地使用此办法,将各个数据慎进行分析对比,可以找出规律。一且找出了规律,在源码中,可以将某些数据(属于应用层固定下来,著该数据属于接收顺(Wi 控制卡接收到的慎),当WF模块与WF控制卡通信时,将接收到的数据与上述数据对比判断属于第几慎,
3.2.3发送和楼收TCP数据
发送TCP数据使用tcp_write函数,原型如下:
err_t tcp_write(struct tcp_pcb *pcb, const void +data, ul6_t len, u8_t apiflags)
pcb代表tcp协议块,data指向要发送的数据,len是要发送数据的长度,apiflags是标识位。
需要指出,apiflags是重要的,当为o时不拷贝数据,也就是在 data,所指的缓冲区单面发送数据,因为调用tcp_write成功后数据并
..下转第143页
作者简介:季选念(1987一),男,河南商丘人,硕士,学生,研究方向:集成电路芯片与系统设计。
141