微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 基于手机的网络化安全考勤、门禁系统的设计与实现,软硬件协同

基于手机的网络化安全考勤、门禁系统的设计与实现,软硬件协同

时间:11-17 来源:3721RD 点击:

完成模块的控制、网络控制和网络通讯。

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地址,最后两字节表示检

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top