摘要:论述了选用Cortex—M3群说STM32为主控芯片、射频芯片PN532、以太网控制器ENC28J60的硬件电路和软件规划结构,一起对以太网协议LwIP进行了具体的剖析。本门禁体系传输间隔远,超低功耗,功能优异且安稳,彻底适用于学校以及公司的门禁体系。
导言
当时,有许多的企业是选用佩带作业证来完结门禁办理,并且仍是选用传统的人工办法完结,不只简单被人混入,且没有记载,存在各种人为的失误。一起,市场上门禁体系存在传输间隔受约束、功能欠安等问题。
跟着嵌入式技能一日千里的开展,以及以太网技能的遍及,使得依据以太网的嵌入式产品越来越多,开展也越来越快。本文研讨的便是选用以太网传输数据和射频芯片辨认智能卡相结合的门禁体系,相关于传统的门禁体系,以太网处理了传输间隔上的问题。其次,选用了依据80C51内核的射频芯片PN532,使得功能愈加安稳。其作业的基本原理是先将智能卡放在门禁体系上,体系读取数据并传送给主芯片STM32进行处理,主芯片处理后再经过以太网协议LwIP将数据从ENCN8J60传输给服务器。
1 门禁体系硬件组成
门禁体系主要由意法半导体公司的主控芯片STM3H、Microchip公司的以太网控制器ENC28J60和NXP公司的射频芯片PN532组成。
门禁体系结构组成如图1所示。主芯片STM32经过以太网协议栈LwIP将数据传输到ENC28J60,然后能够经过网线与服务器直接衔接进行通讯,也能够经过路由器再衔接到服务器。在非触摸式卡通讯方面,STM32经过频率为1MHz的SPI接口与PN532相连。
1.1 STM32外围电路规划
本体系选意图法半导体公司以Cortex—M3为内核的32位微处理器STM32F103为主控芯片,其主频为72 MHz,内部集成存储空间为256K的Flash和64K的SRAM,还包括I2C、SPI、I2S、USART、CAN、ADC、看门狗等。性价比在同类产品中非常杰出。硬件衔接如图2所示。
在调试时咱们选用SWD替代JTAG,因为SWD不只引脚更少,并且在高速形式下愈加牢靠。
1.2 射频芯片PN532硬件电路规划
PN532是NXP公司推出的一个高度集成的非触摸式读写芯片,它包括80C51微控制器内核,集成了13.56 MHz下的各种自动/被动式非触摸通讯办法和协议。支撑ISO14443A/14443B协议。作业间隔超越75 mm。接纳来自天线的信号并对该数据依照ISO14443规则的帧格局处理数据。
PN532支撑三种通讯办法:SPI、I2C、HUS。因为咱们选用SPI办法与主控芯片STM32进行通讯,所以I0和I1别离设置为0和1。
PN532外围电路结构如图3所示。
1.3 以太网控制器ENC28J60硬件规划
主控芯片ENC28J60是带有行业标准串行外设接口(Serial Peripheral Interface,SPI)的独立以太网控制器。它可作为任何配备有SPI的控制器的以太网接口。ENC28J60契合IEEE802.3的悉数标准,选用了一系列包过滤机制以对传入数据包进行约束。它还供给了一个内部DMA模块,以完成快速数据吞吐和硬件支撑的IP校验和核算。与主控制器的通讯经过两个中止引脚和SPI完成,数据传输速率高达10 Mb/s。
两个专用的引脚用于衔接LED,进行网络活动状况指示。
应当留意的是,当从ENC28J60读取多个数据时,即便不需求主控芯片STM32输出的数据,每读取一个数据前也要向SPI发送缓冲器写一个数据用来发动SPI的接口时钟。
ENC28J60典型运用电路如图4所示。
2 体系软件规划
2.1 以太网协议LwIP
LwIP是瑞士核算机科学院开发的小型开源的TCP/IP协议栈。因为它只需求十几K的RAM和40K左右的ROM就能够运转,所以很适合在硬件资源并不富余的嵌入式体系中运用。
LwIP归于比较松懈的通讯机制,经过同享内存的办法完成运用层与底层协议之间的通讯。它供给了三种API:①RAM API,②LwIP API,③BSD API。
其间的RAM API其缺陷便是代码不易于了解,开发难度大,其长处是相关于其他两种办法占用的资源少,功率愈加高,更适合于关于资源相对少的嵌入式运用,所以咱们选用RAM API办法进行编写。
在TCP/IP传输层中有TCP和UDP两种协议,TCP供给IP环境下数据的牢靠传输,UDP供给的是不牢靠传输,因为门禁体系中有必要要求传输数据的正确,所以选用TCP。图5是LwIP下的TCP处理流程框图。
RAM API把协议栈和运用程序放在一个进程里,该函数依据函数回调技能,下面是LwIP的部分要害装备和代码。
(1)LwIP装备
在LwIP的装备文件lwipopts.h中修正如下当地。
是否运用操作体系,咱们不必,所以填写为1:
#define NO_SYS 1
装备heap的巨细:
#define MEM_SIZE
装备pool的巨细
#define PBUF_POOL_SIZE
#define PBUF_POOL_BUFSIZE
以上三个装备占有了LwIP协议栈大部分的内存,需求依据自己的需求修正成适宜的值。
(2)LwIP代码
①别离设置IP地址,子网掩码和网关:
IP4_ADDR(ipaddr,192,168,2,28);
IP4_ADDR(netmask,255,255,255,0);
IP4_ADDR(gw,192,168,2,254);
②初始化底层函数,也便是装备MAC地址,初始化ENC28J60,装备最大输出单元等: