0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用STM32設(shè)計(jì)嵌入式以太網(wǎng)控制門禁系統(tǒng)

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-09-03 11:06 ? 次閱讀

引言

當(dāng)前,有很多的企業(yè)是采用佩戴工作證來完成門禁管理,而且還是采用傳統(tǒng)的人工方式完成,不僅容易被人混入,且沒有記錄,存在各種人為的失誤。同時(shí),市場(chǎng)上門禁系統(tǒng)存在傳輸距離受限制、性能不佳等問題。

隨著嵌入式技術(shù)日新月異的發(fā)展,以及以太網(wǎng)技術(shù)的普及,使得基于以太網(wǎng)的嵌入式產(chǎn)品越來越多,發(fā)展也越來越快。本文研究的就是采用以太網(wǎng)傳輸數(shù)據(jù)和射頻芯片識(shí)別智能卡相結(jié)合的門禁系統(tǒng),相對(duì)于傳統(tǒng)的門禁系統(tǒng),以太網(wǎng)解決了傳輸距離上的問題。其次,采用了基于80C51內(nèi)核的射頻芯片PN532,使得性能更加穩(wěn)定。其工作的基本原理是先將智能卡放在門禁系統(tǒng)上,系統(tǒng)讀取數(shù)據(jù)并傳送給主芯片STM32進(jìn)行處理,主芯片處理后再通過以太網(wǎng)協(xié)議LwIP將數(shù)據(jù)從ENCN8J60傳輸給服務(wù)器。

1 門禁系統(tǒng)硬件組成

門禁系統(tǒng)主要由意法半導(dǎo)體公司的主控芯片STM3H、Microchip公司的以太網(wǎng)控制器ENC28J60和NXP公司的射頻芯片PN532組成。

門禁系統(tǒng)結(jié)構(gòu)組成如圖1所示。主芯片STM32通過以太網(wǎng)協(xié)議棧LwIP將數(shù)據(jù)傳輸?shù)紼NC28J60,然后可以通過網(wǎng)線與服務(wù)器直接連接進(jìn)行通信,也可以通過路由器再連接到服務(wù)器。在非接觸式卡通信方面,STM32通過頻率為1MHz的SPI接口與PN532相連。

如何使用STM32設(shè)計(jì)嵌入式以太網(wǎng)控制門禁系統(tǒng)

1.1 STM32外圍電路設(shè)計(jì)

本系統(tǒng)采用意法半導(dǎo)體公司以Cortex—M3為內(nèi)核的32位微處理器STM32F103為主控芯片,其主頻為72 MHz,內(nèi)部集成存儲(chǔ)空間為256K的Flash和64K的SRAM,還包含I2C、SPI、I2S、USART、CAN、ADC看門狗等。性價(jià)比在同類產(chǎn)品中十分突出。硬件連接如圖2所示。

如何使用STM32設(shè)計(jì)嵌入式以太網(wǎng)控制門禁系統(tǒng)

在調(diào)試時(shí)我們采用SWD取代JTAG,因?yàn)镾WD不僅引腳更少,而且在高速模式下更加可靠。

1.2 射頻芯片PN532硬件電路設(shè)計(jì)

PN532是NXP公司推出的一個(gè)高度集成的非接觸式讀寫芯片,它包含80C51微控制器內(nèi)核,集成了13.56 MHz下的各種主動(dòng)/被動(dòng)式非接觸通信方法和協(xié)議。支持ISO14443A/14443B協(xié)議。工作距離超過75 mm。接收來自天線的信號(hào)并對(duì)該數(shù)據(jù)按照ISO14443規(guī)定的幀格式處理數(shù)據(jù)。

PN532支持三種通信方式:SPI、I2C、HUS。由于我們采用SPI方式與主控芯片STM32進(jìn)行通信,所以I0和I1分別設(shè)置為0和1。

PN532外圍電路結(jié)構(gòu)如圖3所示。

如何使用STM32設(shè)計(jì)嵌入式以太網(wǎng)控制門禁系統(tǒng)

1.3 以太網(wǎng)控制器ENC28J60硬件設(shè)計(jì)

主控芯片ENC28J60是帶有行業(yè)標(biāo)準(zhǔn)串行外設(shè)接口(Serial Peripheral Interface,SPI)的獨(dú)立以太網(wǎng)控制器。它可作為任何配備有SPI的控制器的以太網(wǎng)接口。ENC28J60符合IEEE802.3的全部規(guī)范,采用了一系列包過濾機(jī)制以對(duì)傳入數(shù)據(jù)包進(jìn)行限制。它還提供了一個(gè)內(nèi)部DMA模塊,以實(shí)現(xiàn)快速數(shù)據(jù)吞吐和硬件支持的IP校驗(yàn)和計(jì)算。與主控制器的通信通過兩個(gè)中斷引腳和SPI實(shí)現(xiàn),數(shù)據(jù)傳輸速率高達(dá)10 Mb/s。

兩個(gè)專用的引腳用于連接LED,進(jìn)行網(wǎng)絡(luò)活動(dòng)狀態(tài)指示。

應(yīng)當(dāng)注意的是,當(dāng)從ENC28J60讀取多個(gè)數(shù)據(jù)時(shí),即使不需要主控芯片STM32輸出的數(shù)據(jù),每讀取一個(gè)數(shù)據(jù)前也要向SPI發(fā)送緩沖器寫一個(gè)數(shù)據(jù)用來啟動(dòng)SPI的接口時(shí)鐘。

ENC28J60典型應(yīng)用電路如圖4所示。

如何使用STM32設(shè)計(jì)嵌入式以太網(wǎng)控制門禁系統(tǒng)

2 系統(tǒng)軟件設(shè)計(jì)

2.1 以太網(wǎng)協(xié)議LwIP

LwIP是瑞士計(jì)算機(jī)科學(xué)院開發(fā)的小型開源的TCP/IP協(xié)議棧。由于它只需要十幾K的RAM和40K左右的ROM就可以運(yùn)行,所以很適合在硬件資源并不充裕的嵌入式系統(tǒng)中使用。

LwIP屬于比較松散的通信機(jī)制,通過共享內(nèi)存的方式實(shí)現(xiàn)應(yīng)用層與底層協(xié)議之間的通信。它提供了三種API:①RAM API,②LwIP API,③BSD API。

其中的RAM API其缺點(diǎn)就是代碼不易于理解,開發(fā)難度大,其優(yōu)點(diǎn)是相對(duì)于其他兩種方式占用的資源少,效率更加高,更適合于對(duì)于資源相對(duì)少的嵌入式使用,所以我們采用RAM API方式進(jìn)行編寫。

在TCP/IP傳輸層中有TCP和UDP兩種協(xié)議,TCP提供IP環(huán)境下數(shù)據(jù)的可靠傳輸,UDP提供的是不可靠傳輸,由于門禁系統(tǒng)中必須要求傳輸數(shù)據(jù)的正確,所以采用TCP。圖5是LwIP下的TCP處理流程框圖。

RAM API把協(xié)議棧和應(yīng)用程序放在一個(gè)進(jìn)程里,該函數(shù)基于函數(shù)回調(diào)技術(shù),下面是LwIP的部分關(guān)鍵配置和代碼。

(1)LwIP配置

在LwIP的配置文件lwipopts.h中修改如下地方。

是否使用操作系統(tǒng),我們不用,所以填寫為1:

#define NO_SYS 1

配置heap的大小:

#define MEM_SIZE

配置pool的大小

#define PBUF_POOL_SIZE

#define PBUF_POOL_BUFSIZE

以上三個(gè)配置占據(jù)了LwIP協(xié)議棧大部分的內(nèi)存,需要根據(jù)自己的需要修改成合適的值。

(2)LwIP代碼

①分別設(shè)置IP地址,子網(wǎng)掩碼和網(wǎng)關(guān):

IP4_ADDR(&ipaddr,192,168,2,28);

IP4_ADDR(&netmask,255,255,255,0);

IP4_ADDR(&gw,192,168,2,254);

②初始化底層函數(shù),也就是配置MAC地址,初始化ENC28J60,配置最大輸出單元等:

low_level_init(netif);

③連接遠(yuǎn)程主機(jī),當(dāng)連接建立,就會(huì)調(diào)用第4個(gè)參數(shù)Conn_Back:

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

④當(dāng)有新的數(shù)據(jù)接收到時(shí)調(diào)用的回調(diào)函數(shù):

tcp_recv(TCP_pcb.tcp_recv_callback);

⑤服務(wù)器成功接收到數(shù)據(jù)后調(diào)用的回調(diào)函數(shù):

tcp_sent(TCP_pcb,tcp_sent_callback);

⑥處理錯(cuò)誤的回調(diào)函數(shù):

tcp_err(pcb,CMD_conn_err);

⑦是否接收到數(shù)據(jù):

ethernetif_input(&enc28j60);

通信一旦結(jié)束或者出現(xiàn)異常狀況后,一定要使用pbuf_free()函數(shù)釋放pbuf,避免內(nèi)存的浪費(fèi)。還有一點(diǎn)要注意的是,系統(tǒng)在正常運(yùn)行的過程中,定時(shí)器函數(shù)tcp_fasttmr()和tcp_slowtmr()函數(shù)必須以固定的時(shí)間間隔被規(guī)律地調(diào)用。

2.2 門禁系統(tǒng)軟件架構(gòu)與設(shè)計(jì)

門禁系統(tǒng)的主要流程如圖6所示,每次重新啟動(dòng)后,首先初始化相關(guān)寄存器,初始化各個(gè)模塊,確定已經(jīng)連接服務(wù)器,然后進(jìn)入程序主循環(huán)。

如何使用STM32設(shè)計(jì)嵌入式以太網(wǎng)控制門禁系統(tǒng)

首先監(jiān)測(cè)是否需要調(diào)用LwIP內(nèi)部的快速定時(shí)器和慢速定時(shí)器。然后監(jiān)測(cè)服務(wù)器是否有斷開,如果斷開則重新連接服務(wù)器,沒有斷開的話則檢測(cè)是否有智能卡,有的話接收卡中信息進(jìn)行處理然后發(fā)送給服務(wù)器。

結(jié)語

本文對(duì)使用STM32為主控芯片的門禁系統(tǒng)的硬件和軟件架構(gòu)進(jìn)行了相應(yīng)的描述,對(duì)于文中所涉及的芯片和以太網(wǎng)協(xié)議的使用具有指導(dǎo)意義,能夠較大幅度地降低成本,同時(shí)門禁系統(tǒng)的使用會(huì)更加穩(wěn)定,傳輸距離更長(zhǎng)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 射頻
    +關(guān)注

    關(guān)注

    102

    文章

    5477

    瀏覽量

    166976
  • 嵌入式
    +關(guān)注

    關(guān)注

    5046

    文章

    18832

    瀏覽量

    298820
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5292

    瀏覽量

    169733
  • STM32
    +關(guān)注

    關(guān)注

    2258

    文章

    10828

    瀏覽量

    352570
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于嵌入式系統(tǒng)以太網(wǎng)控制器設(shè)計(jì)

    本文主要基于S3C44B0X+uClinux 系統(tǒng)平臺(tái)開發(fā)出嵌入式以太網(wǎng)控制器,該方案和其它設(shè)計(jì)比較具有高性能、低功耗、軟硬件易擴(kuò)展特點(diǎn),是當(dāng)前及今后工業(yè)
    發(fā)表于 10-19 15:58 ?2308次閱讀
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>控制</b>器設(shè)計(jì)

    嵌入式工業(yè)以太網(wǎng)控制器的設(shè)計(jì)和應(yīng)用

    隨著工業(yè)以太網(wǎng)的大規(guī)模應(yīng)用,嵌入式的工業(yè)以太網(wǎng)系統(tǒng)也越來越多地滲入到了工控領(lǐng)域,以ColdFire微處理器和ARM處理器為硬件平臺(tái)的嵌入式
    發(fā)表于 11-17 11:14 ?929次閱讀

    嵌入式工業(yè)以太網(wǎng)的應(yīng)用研究

    以太網(wǎng)在工業(yè)現(xiàn)場(chǎng)中的應(yīng)用與uClinux嵌入式系統(tǒng)是兩個(gè)現(xiàn)在研究的熱點(diǎn)領(lǐng)域,以太網(wǎng)與uClinux在工業(yè)控制領(lǐng)域有著非常好的應(yīng)用前景。本文所
    發(fā)表于 05-21 11:21 ?1451次閱讀
    <b class='flag-5'>嵌入式</b>工業(yè)<b class='flag-5'>以太網(wǎng)</b>的應(yīng)用研究

    高性能嵌入式工業(yè)以太網(wǎng)監(jiān)控系統(tǒng)電路設(shè)計(jì)

    本文提出基于嵌入式工業(yè)以太網(wǎng)技術(shù)的監(jiān)控系統(tǒng),詳細(xì)闡述了嵌入式工業(yè)以太網(wǎng)監(jiān)控裝置的硬件和軟件的設(shè)計(jì)過程,包括32位微處理器
    發(fā)表于 01-21 10:12 ?1148次閱讀
    高性能<b class='flag-5'>嵌入式</b>工業(yè)<b class='flag-5'>以太網(wǎng)</b>監(jiān)控<b class='flag-5'>系統(tǒng)</b>電路設(shè)計(jì)

    怎么實(shí)現(xiàn)基于Cortex-M3的嵌入式以太網(wǎng)門禁系統(tǒng)設(shè)計(jì)?

    的基本原理是先將智能卡放在門禁系統(tǒng)上,系統(tǒng)讀取數(shù)據(jù)并傳送給主芯片STM32進(jìn)行處理,主芯片處理后再通過以太網(wǎng)協(xié)議LwIP將數(shù)據(jù)從ENCN8J
    發(fā)表于 05-24 06:49

    基于嵌入式模塊comX的實(shí)時(shí)以太網(wǎng)

    netX網(wǎng)絡(luò)控制器為處理器的嵌入式模塊comX,是支持所有主流實(shí)時(shí)以太網(wǎng)協(xié)議的嵌入式模塊。本文在介紹了實(shí)時(shí)以太網(wǎng)和netX網(wǎng)絡(luò)
    發(fā)表于 12-20 06:24

    基于CP2200 的嵌入式系統(tǒng)以太網(wǎng)接口設(shè)計(jì)

    隨著單片機(jī)處理能力不斷增強(qiáng),嵌入式系統(tǒng)也越復(fù)雜,控制系統(tǒng)日趨網(wǎng)絡(luò)化,使基于以太網(wǎng)嵌入式系統(tǒng)研究
    發(fā)表于 05-26 16:44 ?15次下載

    嵌入式以太網(wǎng)工業(yè)設(shè)備接入系統(tǒng)的設(shè)計(jì)

    本文首先針對(duì)傳統(tǒng)以太網(wǎng)難以勝任控制中硬實(shí)時(shí)要求的問題,提出一些確保以太網(wǎng)在工業(yè)控制中實(shí)時(shí)性的措施。然后描述了基于以太網(wǎng)
    發(fā)表于 07-10 15:17 ?12次下載

    嵌入式設(shè)備與以太網(wǎng)互連系統(tǒng)的設(shè)計(jì)

    針對(duì)當(dāng)前工業(yè)控制、智能儀器、信息家電等領(lǐng)域大量嵌入式設(shè)備需要接入互聯(lián)網(wǎng)的現(xiàn)狀,提出了一種基于IP2022 單芯片的解決方案,實(shí)現(xiàn)了帶有RS-485 串口的嵌入式設(shè)備與以太網(wǎng)的連接
    發(fā)表于 08-04 08:37 ?13次下載

    基于以太網(wǎng)嵌入式Web Server的控制系統(tǒng)設(shè)計(jì)研究

    介紹了基于以太網(wǎng)嵌入式Web Server 控制系統(tǒng)的設(shè)計(jì)、基本實(shí)現(xiàn)和測(cè)試。系統(tǒng)基于Modbus/UDP 主從協(xié)議對(duì)以太網(wǎng)通信進(jìn)行確定性管
    發(fā)表于 09-16 11:21 ?25次下載

    基于OpenTCP的嵌入式以太網(wǎng)模塊設(shè)計(jì)

    針對(duì)TCP/IP 協(xié)議內(nèi)容多、占空間大、不易嵌入單片機(jī),以及嵌入式以太網(wǎng)模塊參數(shù)一般是固化在單片機(jī)內(nèi)部的問題,給出了基于OpenTCP 協(xié)議和MS9S12NE64 以太網(wǎng)芯片的
    發(fā)表于 01-06 16:50 ?15次下載

    嵌入式以太網(wǎng)設(shè)計(jì)

    嵌入式以太網(wǎng)設(shè)計(jì),隨著半導(dǎo)體技術(shù)的飛速發(fā)展,嵌入式產(chǎn)品已經(jīng)廣泛應(yīng)用于軍事、消費(fèi)電子、網(wǎng)絡(luò)通信、工業(yè)控制等各個(gè)領(lǐng)域,網(wǎng)絡(luò)化是嵌入式
    發(fā)表于 06-27 09:35 ?804次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>以太網(wǎng)</b>設(shè)計(jì)

    嵌入式以太網(wǎng)數(shù)字語音廣播系統(tǒng)技術(shù)設(shè)計(jì)

    嵌入式以太網(wǎng)數(shù)字語音廣播系統(tǒng)技術(shù)設(shè)計(jì) 本文給出一種嵌入式以太網(wǎng)數(shù)字語音廣播系統(tǒng)解決方案,能夠較
    發(fā)表于 04-28 09:43 ?914次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>以太網(wǎng)</b>數(shù)字語音廣播<b class='flag-5'>系統(tǒng)</b>技術(shù)設(shè)計(jì)

    STM32F103VET6和EN28J60的嵌入式以太網(wǎng)接口設(shè)計(jì)

    STM32F103VET6和EN28J60的嵌入式以太網(wǎng)接口設(shè)計(jì)
    發(fā)表于 09-26 09:02 ?49次下載
    <b class='flag-5'>STM32</b>F103VET6和EN28J60的<b class='flag-5'>嵌入式</b><b class='flag-5'>以太網(wǎng)</b>接口設(shè)計(jì)

    基于STM32嵌入式以太網(wǎng)門禁系統(tǒng)設(shè)計(jì)

    問題。 隨著嵌入式技術(shù)日新月異的發(fā)展,以及以太網(wǎng)技術(shù)的普及,使得基于以太網(wǎng)嵌入式產(chǎn)品越來越多,發(fā)展也越來越快。本文研究的就是采用以太網(wǎng)傳輸
    發(fā)表于 11-29 18:37 ?842次閱讀
     基于<b class='flag-5'>STM32</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>門禁</b><b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)