基于手机的网络化安全考勤、门禁系统的设计与实现,软硬件协同
完成模块的控制、网络控制和网络通讯。
EMSP_CMD_RESET:对模块进行复位操作。
EMSP_CMD_GET_CONFIG:获取模块中的配置信息,包括TCP/IP和Wi-Fi配置信息。
EMSP_CMD_SET_CONFIG:设置模块参数。
EMSP_CMD_SCAN_AP:获取模块可识别范围内的AP。
EMSP_CMD_START:启动模块的Wi-Fi连接和TCP链接。
EMSP_CMD_SEND_DATA:通过模块向网络上发送数据。
EMSP_CMD_RECV_DATA:通过模块从网络上接收数据。
EMSP_CMD_GET_STATUS:读取模块在透明数据传输模式的网络状态。包括TCP的状态和Wi-Fi的工作状态。
EMSP_CMD_GET_VER:获取模块版本号,包括硬件版本和固件版本。
EMSP_CMD_GET_MF_INFO:获取模块的生产厂家信息。
EMSP_CMD_GET_RF_POWER:获取模块无线收发功率。
EMSP_CMD_SET_PF_POWER:设置模块发射无线功率。
配置模式下命令的发送与响应实现如下:
按照表4的数据包格式,组装成一个完整的命令之后,把命令数据放入sendbuf缓冲区中,len是发送的数据包长度。 UART_send_buf(sendbuf,len); DelayMs (1500);//responsehasadelay if(cmdcode==EMSP_CMD_SCAN_AP) DelayMs (1500); if(cmdcode==EMSP_CMD_SET_CONFIG) DelayMs (1000); returnrecv_cmd();->recvlen=UART_receive_buf(recvbuf); 在recv_cmd()函数中调用UART_receive_buf函数,将接收到的响应数据包放入recvbuf中,recvlen是响应数据包的长度。之后对响应数据包做进一步的处理。 |
从实现上来说,EMSP协议中各命令的功能不同,处理时所需要的时间也是不同的。因此每条发送的命令等待响应所需的延迟也是不同的。
EMSP接口函数库
EMSP协议接口函数库提供了一系列API函数,通过调用这些函数可以轻松地在各种嵌入式设备上实现对EMW-380-C Wi-Fi模块的控制和参数配置。我们将这些接口函数库添加到我们的工程中,如下图11为工程中的文件目录结构。
图11 工程目录结构
EMSP接口函数库由标准C编写而成,由以下三个C语言文件及其对应的头文件构成。
1.em380c_hal.c
该代码实现了EMW-380-C模块和嵌入式设备之间的硬件接口。
2.EMSP.c
该代码实现了EMSP命令的协议处理。
3.EMSP_API.c
该代码可用于操控模块的API函数,用户只需要调用这些函数,就可以对模块实现配置和操作。
启动Wi-Fi模块,建立Ad-hoc网络
根据自己的硬件环境实现以上EMSP接口函数库。就可以很容易地使用这些接口函数了。要完成启动Wi-Fi模块,建立Ad-hoc网络这部分功能,首先要配置EMW-380-C与PIC32 Ethernet Starter KIT板子间的接口,即UART的配置。EMW-380-C的UART默认配置为:波特率:115200,数据位:8位,停止位:1位,奇偶校验:无,硬件流控:无。所以可以调用EMSP_API.c文件中的EM380C_Init()函数对EMW-380-C模块进行UART的配置。当硬件接口配置完成后,可以给EMW-380-C模块发送一个EMSP_CMD_GET_VER命令,来测试配置是否成功。成功后将从while循环中跳出来。接着给EMW-380-C模块发送EMSP_CMD_START命令来启动模块。如果想改变EMW-380-C Wi-Fi的一些基本参数,可以通过给该模块发送EMSP_CMD_SET_CONFIG命令。在本系统中,我们的模块的基本网络参数如下:
Wi-Fi Mode:Ad-hoc
Transfer Protocol:TCP
SSID:Microchip
无加密
IP address:192.168.1.5
Net Mask:255.255.255.0
Port Number:8080
通过以太网连接到server
这部分的功能主要用到TCP/IP协议栈的一些API函数。在本系统设计中,我们通过按钮SW1来触发该功能。该功能的实现主要在GenericTCPClient()函数中。当按钮SW1被按下后,考勤系统客户端进入SM_HOME状态,通过调用TCPOpen函数来建立与远程服务器间的socket连接,在本系统中,服务器开启的侦听端口为3000。
客户端与server端的通讯
当考勤系统客户端与服务器成功建立连接之后,考勤系统客户端进入SM_SOCKET_OBTAINED状态。而考勤系统客户端的EMW-380-C Wi-Fi模块在UDP 67端口进行侦听,当手机给EMW-380-C Wi-Fi模块发送DHCP请求时,EMW-380-C Wi-Fi模块就可以获取该手机的MAC地址。EMW-380-C Wi-Fi模块将获取的手机MAC地址通过UART将其主动发送给PIC32 Ethernet Starter KIT。比如PIC32 Ethernet Starter KIT收到如下信息:30 00 10 00 01 00 BE FF 00 1D 0F 31 7E 17 72 9A,则前8字节是MAC地址信息的头部,接着的6字节是MAC地址,最后两字节表示检
- 智能家居中的数字视频监控、门禁和灯光控制(06-05)
- 射频识别模块SMC51489在门禁系统中的应用(02-13)
- 智能家居:数字视频监控 门禁和灯光控制(05-01)
- BioEntry指纹门禁管理系统运用解决方案(05-05)
- 基于TIP技术的身份验证技术(02-22)
- 智能手机在门禁系统中的应用(04-23)