0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用STM32设计嵌入式以太网控制门禁系统

电子设计 作者:电子设计 2018-09-03 11:06 次阅读

引言

当前,有很多的企业是采用佩戴工作证来完成门禁管理,而且还是采用传统的人工方式完成,不仅容易被人混入,且没有记录,存在各种人为的失误。同时,市场上门禁系统存在传输距离受限制、性能不佳等问题。

随着嵌入式技术日新月异的发展,以及以太网技术的普及,使得基于以太网的嵌入式产品越来越多,发展也越来越快。本文研究的就是采用以太网传输数据和射频芯片识别智能卡相结合的门禁系统,相对于传统的门禁系统,以太网解决了传输距离上的问题。其次,采用了基于80C51内核的射频芯片PN532,使得性能更加稳定。其工作的基本原理是先将智能卡放在门禁系统上,系统读取数据并传送给主芯片STM32进行处理,主芯片处理后再通过以太网协议LwIP将数据从ENCN8J60传输给服务器。

1 门禁系统硬件组成

门禁系统主要由意法半导体公司的主控芯片STM3H、Microchip公司的以太网控制器ENC28J60和NXP公司的射频芯片PN532组成。

门禁系统结构组成如图1所示。主芯片STM32通过以太网协议栈LwIP将数据传输到ENC28J60,然后可以通过网线与服务器直接连接进行通信,也可以通过路由器再连接到服务器。在非接触式卡通信方面,STM32通过频率为1MHz的SPI接口与PN532相连。

如何使用STM32设计嵌入式以太网控制门禁系统

1.1 STM32外围电路设计

本系统采用意法半导体公司以Cortex—M3为内核的32位微处理器STM32F103为主控芯片,其主频为72 MHz,内部集成存储空间为256K的Flash和64K的SRAM,还包含I2C、SPI、I2S、USART、CANADC看门狗等。性价比在同类产品中十分突出。硬件连接如图2所示。

如何使用STM32设计嵌入式以太网控制门禁系统

在调试时我们采用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所示。

如何使用STM32设计嵌入式以太网控制门禁系统

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所示。

如何使用STM32设计嵌入式以太网控制门禁系统

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,配置最大输出单元等:

low_level_init(netif);

③连接远程主机,当连接建立,就会调用第4个参数Conn_Back:

tcp_connect(TCP_pcb,&ipaddr,1026,Conn_back);

④当有新的数据接收到时调用的回调函数:

tcp_recv(TCP_pcb.tcp_recv_callback);

⑤服务器成功接收到数据后调用的回调函数:

tcp_sent(TCP_pcb,tcp_sent_callback);

⑥处理错误的回调函数:

tcp_err(pcb,CMD_conn_err);

⑦是否接收到数据:

ethernetif_input(&enc28j60);

通信一旦结束或者出现异常状况后,一定要使用pbuf_free()函数释放pbuf,避免内存的浪费。还有一点要注意的是,系统在正常运行的过程中,定时器函数tcp_fasttmr()和tcp_slowtmr()函数必须以固定的时间间隔被规律地调用。

2.2 门禁系统软件架构与设计

门禁系统的主要流程如图6所示,每次重新启动后,首先初始化相关寄存器,初始化各个模块,确定已经连接服务器,然后进入程序主循环。

如何使用STM32设计嵌入式以太网控制门禁系统

首先监测是否需要调用LwIP内部的快速定时器和慢速定时器。然后监测服务器是否有断开,如果断开则重新连接服务器,没有断开的话则检测是否有智能卡,有的话接收卡中信息进行处理然后发送给服务器。

结语

本文对使用STM32为主控芯片的门禁系统的硬件和软件架构进行了相应的描述,对于文中所涉及的芯片和以太网协议的使用具有指导意义,能够较大幅度地降低成本,同时门禁系统的使用会更加稳定,传输距离更长。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 射频
    +关注

    关注

    104

    文章

    5575

    浏览量

    167698
  • 嵌入式
    +关注

    关注

    5082

    文章

    19111

    浏览量

    304845
  • 以太网
    +关注

    关注

    40

    文章

    5419

    浏览量

    171621
  • STM32
    +关注

    关注

    2270

    文章

    10896

    浏览量

    355767
收藏 人收藏

    评论

    相关推荐

    基于嵌入式系统以太网控制器设计

    本文主要基于S3C44B0X+uClinux 系统平台开发出嵌入式以太网控制器,该方案和其它设计比较具有高性能、低功耗、软硬件易扩展特点,是当前及今后工业
    发表于 10-19 15:58 2369次阅读
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>的<b class='flag-5'>以太网</b><b class='flag-5'>控制</b>器设计

    嵌入式工业以太网控制器的设计和应用

    随着工业以太网的大规模应用,嵌入式的工业以太网系统也越来越多地渗入到了工控领域,以ColdFire微处理器和ARM处理器为硬件平台的嵌入式
    发表于 11-17 11:14 955次阅读

    嵌入式工业以太网的应用研究

    以太网在工业现场中的应用与uClinux嵌入式系统是两个现在研究的热点领域,以太网与uClinux在工业控制领域有着非常好的应用前景。本文所
    发表于 05-21 11:21 1494次阅读
    <b class='flag-5'>嵌入式</b>工业<b class='flag-5'>以太网</b>的应用研究

    高性能嵌入式工业以太网监控系统电路设计

    本文提出基于嵌入式工业以太网技术的监控系统,详细阐述了嵌入式工业以太网监控装置的硬件和软件的设计过程,包括32位微处理器
    发表于 01-21 10:12 1170次阅读
    高性能<b class='flag-5'>嵌入式</b>工业<b class='flag-5'>以太网</b>监控<b class='flag-5'>系统</b>电路设计

    怎么实现基于Cortex-M3的嵌入式以太网门禁系统设计?

    的基本原理是先将智能卡放在门禁系统上,系统读取数据并传送给主芯片STM32进行处理,主芯片处理后再通过以太网协议LwIP将数据从ENCN8J
    发表于 05-24 06:49

    基于嵌入式模块comX的实时以太网

    netX网络控制器为处理器的嵌入式模块comX,是支持所有主流实时以太网协议的嵌入式模块。本文在介绍了实时以太网和netX网络
    发表于 12-20 06:24

    基于CP2200 的嵌入式系统以太网接口设计

    随着单片机处理能力不断增强,嵌入式系统也越复杂,控制系统日趋网络化,使基于以太网嵌入式系统研究
    发表于 05-26 16:44 15次下载

    嵌入式以太网工业设备接入系统的设计

    本文首先针对传统以太网难以胜任控制中硬实时要求的问题,提出一些确保以太网在工业控制中实时性的措施。然后描述了基于以太网
    发表于 07-10 15:17 12次下载

    嵌入式设备与以太网互连系统的设计

    针对当前工业控制、智能仪器、信息家电等领域大量嵌入式设备需要接入互联网的现状,提出了一种基于IP2022 单芯片的解决方案,实现了带有RS-485 串口的嵌入式设备与以太网的连接
    发表于 08-04 08:37 13次下载

    基于以太网嵌入式Web Server的控制系统设计研究

    介绍了基于以太网嵌入式Web Server 控制系统的设计、基本实现和测试。系统基于Modbus/UDP 主从协议对以太网通信进行确定性管
    发表于 09-16 11:21 25次下载

    基于OpenTCP的嵌入式以太网模块设计

    针对TCP/IP 协议内容多、占空间大、不易嵌入单片机,以及嵌入式以太网模块参数一般是固化在单片机内部的问题,给出了基于OpenTCP 协议和MS9S12NE64 以太网芯片的
    发表于 01-06 16:50 15次下载

    嵌入式以太网设计

    嵌入式以太网设计,随着半导体技术的飞速发展,嵌入式产品已经广泛应用于军事、消费电子、网络通信、工业控制等各个领域,网络化是嵌入式
    发表于 06-27 09:35 829次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>以太网</b>设计

    嵌入式以太网数字语音广播系统技术设计

    嵌入式以太网数字语音广播系统技术设计 本文给出一种嵌入式以太网数字语音广播系统解决方案,能够较
    发表于 04-28 09:43 938次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>以太网</b>数字语音广播<b class='flag-5'>系统</b>技术设计

    STM32F103VET6和EN28J60的嵌入式以太网接口设计

    STM32F103VET6和EN28J60的嵌入式以太网接口设计
    发表于 09-26 09:02 49次下载
    <b class='flag-5'>STM32</b>F103VET6和EN28J60的<b class='flag-5'>嵌入式</b><b class='flag-5'>以太网</b>接口设计

    基于STM32嵌入式以太网门禁系统设计

    问题。 随着嵌入式技术日新月异的发展,以及以太网技术的普及,使得基于以太网嵌入式产品越来越多,发展也越来越快。本文研究的就是采用以太网传输
    发表于 11-29 18:37 924次阅读
     基于<b class='flag-5'>STM32</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>以太网</b><b class='flag-5'>门禁</b><b class='flag-5'>系统</b>设计