<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Cortex―M3的嵌入式以太網(wǎng)門禁系統(tǒng)設(shè)計

          基于Cortex―M3的嵌入式以太網(wǎng)門禁系統(tǒng)設(shè)計

          作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

          low_level_init(netif);

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

          tcp_connect(TCP_pcb,ipaddr,1026,Conn_back);

          ④當(dāng)有新的數(shù)據(jù)接收到時調(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);

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

          tcp_err(pcb,CMD_conn_err);

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

          ethernetif_input(enc28j60);

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

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

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

          基于Cortex—M3的嵌入式以太網(wǎng)門禁系統(tǒng)設(shè)計

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

          結(jié)語

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


          上一頁 1 2 下一頁

          關(guān)鍵詞: 門禁 Cortex-M3 LwIP PN532 ENC28J60

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();