日韩成人激情_欧美黑人xxx_国产一区二精品区在线_精品在线一区_97成人资源_久久久久久一区

產(chǎn)品分類

當(dāng)前位置: 首頁 > 傳感測量產(chǎn)品 > 數(shù)據(jù)采集產(chǎn)品 > RFID系統(tǒng) > 讀寫器

類型分類:
科普知識
數(shù)據(jù)分類:
讀寫器

基于物聯(lián)網(wǎng)的嵌入式以太網(wǎng)終端平臺設(shè)計與實現(xiàn)

發(fā)布日期:2022-05-20 點擊率:67

  物聯(lián)網(wǎng)是在互聯(lián)網(wǎng)的基礎(chǔ)上,將用戶與物品或者物品與物品用互聯(lián)網(wǎng)進行連接,并通過互聯(lián)網(wǎng)進行信息交換和通信的一種概念。物聯(lián)網(wǎng)主要通過信息采集設(shè)備以及能夠?qū)⑦@些信息采集設(shè)備接入互聯(lián)網(wǎng)的終端平臺來實現(xiàn)。近年來,嵌入式系統(tǒng)以其功能完善,設(shè)計方案靈活,功耗可控制等特點,已廣泛應(yīng)用于生活、商業(yè)、醫(yī)療以及工業(yè)等各個領(lǐng)域。比起通用計算機來,嵌入式系統(tǒng)具有針對性更強、體積更 小,成本更低等優(yōu)點,是物聯(lián)網(wǎng)領(lǐng)域應(yīng)用設(shè)計的首選方案。對于一些數(shù)據(jù)量不大,傳輸速率要求不高的應(yīng)用,要考慮用較低的成本實現(xiàn)最可靠的物聯(lián)網(wǎng)服務(wù)。

  一. 平臺硬件設(shè)計

  1.1 平臺結(jié)構(gòu)及原理

  該平臺采用ATMEL公司AT91SAM7X512處理器作為主控芯片,該處理器內(nèi)部集成了以太網(wǎng)控 制器、512kbytes FALSH以及128kbytes SRAM。只需外接一片以太網(wǎng)物理層(PHY)收發(fā)芯片DM9161和一個網(wǎng)絡(luò)變壓器HR601680,即可構(gòu)成以太網(wǎng)終端硬件平臺。 AT91SAM7X512采用3.3 V和1.8 V雙工作電壓,使用頻率為18.432 MHZ的晶振作為時鐘電路的振蕩源,調(diào)試電路采用標(biāo)準(zhǔn)的20針JTAG仿真調(diào)試接口。該方案成本低,功耗小,并且所用芯片集成度很高因而保證了系統(tǒng)的穩(wěn)定 性。

  AT91SAM7X512的以太網(wǎng)控制模塊實現(xiàn)了一個與IEEE802.3標(biāo)準(zhǔn)兼容的以太網(wǎng)MAC,支持全雙工模式,可通過DMA 方式進行數(shù)據(jù)收發(fā)。當(dāng)物理層芯片DM9161接收到來自以太網(wǎng)的上位機數(shù)據(jù)時,ARM通過MII接口(媒體獨立接口)讀取數(shù)據(jù),并在內(nèi)部通過DMA方式將 數(shù)據(jù)讀入 SRAM中交給TCP/IP協(xié)議棧進行處理。同時,當(dāng)RFID射頻讀卡器或者傳感模塊有數(shù)據(jù)需要傳輸時,平臺也能沿著相同的通道將數(shù)據(jù)傳輸至上位機。系統(tǒng) 整體結(jié)構(gòu)如圖1所示。

基于物聯(lián)網(wǎng)的嵌入式以太網(wǎng)終端平臺設(shè)計與實現(xiàn)

圖1 系統(tǒng)結(jié)構(gòu)原理示意圖

  1.2 AT91SAM7X512和DM9161的接口電路設(shè)計

  AT91SAM7X512的以太網(wǎng)控制器和物理層收發(fā)芯片 DM9161之間有MII(Media Independent Interface)和RMII(Reduced Media Independent Interface)兩種接口。這兩種接口都能夠工作在10 Mb/s和100 Mb/s共兩種速率下,在本設(shè)計中采用MII接口。MII數(shù)據(jù)接口總共需要16個信號,包括 TX_ER,TXD《3:0》,TX_EN,TX_CLK,COL,RXD《3:0》,RX_EX,RX_CLK,CRS,RX_DV 等,在時鐘速率25 MHz的情況下以4-bit并行方式發(fā)送和接收數(shù)據(jù)。以太網(wǎng)控制器依靠MDIO接口與物理層芯片進行通信,用于自動協(xié)商期間確保以太網(wǎng)控制器和物理層芯片 被配置為相同的速度和雙工模式。AT91SAM7X512和DM9161的接口電路如圖2所示。

基于物聯(lián)網(wǎng)的嵌入式以太網(wǎng)終端平臺設(shè)計與實現(xiàn)

圖2 以太網(wǎng)接口電路原理圖

  當(dāng)系統(tǒng)上電后,由AT91SAM7X512給DM9161提供復(fù)位信號及引腳初始化電平,完成DM9161的上電初始化工作。當(dāng)初始化完成后,系統(tǒng)會通過MII接口讀取DM9161內(nèi)部狀態(tài)寄存器的值來完成對網(wǎng)絡(luò)連接模式和連接狀態(tài)的檢測。

  二. 平臺軟件的實現(xiàn)

  2.1 TCP/IP協(xié)議棧的移植

  LwIP是瑞典計算機科學(xué)研究院(SICS)設(shè)計的一個開源的輕量級TCP/IP協(xié)議棧。它的目的是減少內(nèi)存使用率和代碼大小,使LwIP能夠適用于資源緊張的嵌入式系統(tǒng)。利用μC/OS-Ⅱ提供的信號量和消息傳遞機制等系統(tǒng)服務(wù)可以實現(xiàn)對LwIP的移植。

  2.1.1 信號量操作函數(shù)

  LwIP 使用信號量進行通信,這個信號量可以是計數(shù)信號量,也可以是二值信號量,所以在sys_arch中需要實現(xiàn)與信號量操作相關(guān)的信號量結(jié)構(gòu)體struct sys_sem_t、信號量建立函數(shù)sys_sem_new()、信號量釋放函數(shù)sys_sem_free()、信號量發(fā)出函數(shù) sys_sem_signal()和信號量等待函數(shù)sys_arch_sem_wait()。由于在μC/OS-Ⅱ中已經(jīng)實現(xiàn)了與信號量操作有關(guān)的各種函 數(shù),而且功能和上述幾個LwIP中所需要實現(xiàn)的函數(shù)的功能是完全一致的,所以只要調(diào)用μC/OS-Ⅱ中的信號量操作函數(shù)來重新包裝成LwIP中的信號量操 作函數(shù)即可。

  2.1.2 郵箱操作函數(shù)

  LwIP使用郵箱來進行消息傳遞,用戶可 以用一個隊列來將其實現(xiàn),需要注意的一點是,投遞進郵箱中的消息只能是一個指針。因此要根據(jù)以上要求來實現(xiàn)消息隊列結(jié)構(gòu)sys_mbox_t,以及相應(yīng)的 操作函數(shù):sys_mbox_new()、 sys_mbox_free()、sys_mbox_post()和sys_arch_mbox _fetch()。μC/OS-Ⅱ很好地實現(xiàn)了消息隊列結(jié)構(gòu)及其操作,為消息隊列提供了豐富的管理函數(shù),但μC/OS-Ⅱ沒有對消息隊列中的消息進行管 理,因而不能直接使用,必須在μC/OS-Ⅱ的基礎(chǔ)上重新實現(xiàn)。具體實現(xiàn)時,可創(chuàng)建多個郵箱,并使用單向鏈表將這些郵箱鏈接在一起,每個郵箱可接收消息的 數(shù)量由消息數(shù)組的大小來決定。對消息隊列本身的管理用μC/OS-Ⅱ中的隊列操作函數(shù)來完成,然后通過對鏈表的操作來實現(xiàn)對消息的創(chuàng)建、使用、刪除和回 收,兩部分綜合起來形成了LwIP的郵箱功能。

  2.1.3 創(chuàng)建新線程函數(shù)

  在 μC/OS-Ⅱ中只有任務(wù)的概念,建立一個新的線程實際上就是建立一個新的任務(wù)。因此只需要把OSTaskCreate()封裝一下,就可以實現(xiàn) sys_thread_new()。需要注意的是當(dāng)前μC/OS-Ⅱ 不支持時間片輪番調(diào)度法,不允許兩個或兩個以上的任務(wù)有同樣的優(yōu)先級,所以用戶要事先為LwIP中創(chuàng)建的線程分配好優(yōu)先級。通過對LwIP中的宏 TCPIP_THREAD_PRIO進行包裝,來避免TCPIP線程優(yōu)先級與其他線程相同。

  2.1.4 定時器函數(shù)

  LwIP中每個線程都有一個timeouts鏈表,這個鏈表在建立之后其首地址必須固定。因此用于保存鏈表首地址的sys_timeouts結(jié)構(gòu)必須與 線程一一對應(yīng),而且其地址不能改變,以便能夠隨時得到鏈表的首地址。可用一個靜態(tài)的sys_timeouts結(jié)構(gòu)數(shù)組來存放各個線程的鏈表,以線程的優(yōu)先 級號來作為數(shù)組索引號,這樣每一個線程就能對應(yīng)一個sys-timeouts結(jié)構(gòu)體了,并且在系統(tǒng)運行期間對應(yīng)的結(jié)構(gòu)體數(shù)組成員的地址會一直固定不變。移 植時通過實現(xiàn) stmctsys_timeouts*sys_arch_timeouts(void)函數(shù),來返回目前正處于運行態(tài)的線程所對應(yīng)的timeouts隊列 指針。

  2.2 驅(qū)動程序

  操作系統(tǒng)是通過各種驅(qū)動程序來和各種硬件打交道的,驅(qū)動 程序為用戶屏蔽了各種各樣的硬件設(shè)備,而只提供了簡單明了的函數(shù)接口給操作系統(tǒng)調(diào)用。LwIP已經(jīng)設(shè)計好了這些框架,用戶只需嚴(yán)格按照順序完成與底層硬件 相關(guān)的部分即可實現(xiàn)網(wǎng)絡(luò)接口層和IP層的通信。需要實現(xiàn)的包括:底層網(wǎng)絡(luò)接口初始化函數(shù)ethernetif_init()、網(wǎng)卡接收函數(shù) ethernetif_input()、網(wǎng)卡發(fā)送函數(shù) ethernetif_output()和網(wǎng)卡中斷處理函數(shù)ethernetif_isr()等。驅(qū)動程序完成了對設(shè)備的初始化、釋放和管理,并且完成對 底層以太網(wǎng)數(shù)據(jù)包的接收、搬運和發(fā)送。

  2.3 應(yīng)用程序

  系統(tǒng)應(yīng)用程序的任務(wù)主要是在嵌入式平臺上實現(xiàn)網(wǎng)絡(luò)通信客戶端和HTTP 網(wǎng)頁服務(wù)器兩方面的功能。利用LwIP提供的API,采用TCP協(xié)議客戶端到服務(wù)器通信的模式,實現(xiàn)嵌入式終端和上位機之間的通信。在這種模式下,嵌入式 終端定義為客戶端,主動向服務(wù)器發(fā)起TCP連接;而上位機(PC)定義為服務(wù)器端,始終監(jiān)聽來自網(wǎng)絡(luò)的連接。嵌入式終端主要負(fù)責(zé)采集來自于傳感器或 RFID模塊的數(shù)據(jù),并將這些數(shù)據(jù)通過以太網(wǎng)傳送給上位機。同時嵌入式終端平臺上也運行著一個HTTP網(wǎng)頁服務(wù)器,上位機(PC)可通過網(wǎng)頁對嵌入式終端 平臺進行訪問、查看和設(shè)置。

  三. WEB服務(wù)器的實現(xiàn)

  HTTP定義了瀏覽器與服 務(wù)器交互的不同方法,最基本的方法有4種。本系統(tǒng)的實現(xiàn)只涉及到GET和POST這兩種最基本的方法。GET一般用于向服務(wù)器獲取和查詢資源信息,而 POST一般用于向服務(wù)器上傳和更新沒有長度限制的、大容量的資源信息。一個基本的WEB服務(wù)器要實現(xiàn)動態(tài)網(wǎng)頁服務(wù)的關(guān)鍵是要能夠?qū)g覽器發(fā)送的GET或 POST請求做出響應(yīng)。一般情況下制作動態(tài)網(wǎng)頁需要使用語言:HTML+ASP或 HTML+PHP或HTML+ JSP等。要在資源有限的嵌入式系統(tǒng)上實現(xiàn)這樣的功能是不現(xiàn)實的,一種明智的辦法是通過使用回調(diào)函數(shù)的方式,為瀏覽器的每一種請求都設(shè)計一個服務(wù)函數(shù)與之 對應(yīng)。當(dāng)有新增加的GET或POST請求時,則只需要增加相應(yīng)的服務(wù)函數(shù)即可。具體實現(xiàn)時可設(shè)計一個存放服務(wù)函數(shù)地址的結(jié)構(gòu)體,其成員包括所請求服務(wù)參數(shù) 的長度、名稱和對應(yīng)服務(wù)函數(shù)的地址。然后將所有的結(jié)構(gòu)體都初始化在一個數(shù)組中。

  在編寫應(yīng)用程序的時候,只需抓取瀏覽器所發(fā)送的請求類型 和參數(shù),即可根據(jù)不同的請求來調(diào)用相應(yīng)的服務(wù)函數(shù)。當(dāng)有新的GET或者POST請求增加時,只需要增加與之對應(yīng)的服務(wù)函數(shù)即可,這樣就實現(xiàn)了擴展性很強的 動態(tài)網(wǎng)頁服務(wù)。WEB服務(wù)器響應(yīng)瀏覽器訪問的流程如圖3所示。

基于物聯(lián)網(wǎng)的嵌入式以太網(wǎng)終端平臺設(shè)計與實現(xiàn)

圖3 瀏覽器請求響應(yīng)流程圖

  POST請求分為帶參數(shù)和不帶參數(shù)兩類,帶參數(shù)的POST請求,如:設(shè)置IP地址,子網(wǎng)掩碼等操作,需要提取相關(guān)參數(shù)后再調(diào)用服務(wù)函數(shù)進行處理。不帶參 數(shù)的POST請求只需直接調(diào)用相應(yīng)服務(wù)函數(shù)即可,如:重啟系統(tǒng)、恢復(fù)默認(rèn)參數(shù)等操作。遠端PC可以通過該動態(tài)WEB服務(wù)器來對平臺進行訪問,完成上述幾項 操作。在第一次啟動本系統(tǒng)時,系統(tǒng)通過運行DHCP客戶端程序,向DHCP服務(wù)器(路由器等設(shè)備)主動申請IP地址,獲得IP后,遠端PC即可通過該IP 地址對本系統(tǒng)進行訪問和設(shè)置。

  四. 結(jié)束語

  平臺采用AT91SAM7X512處 理器和DM9161以太網(wǎng)物理層芯片。兩者通過MII接口連接,高集成度的處理器提高了系統(tǒng)穩(wěn)定性,降低了數(shù)據(jù)傳輸出錯機率。通過向終端平臺移植LwIP 協(xié)議,使終端具備連入以太網(wǎng)的能力,并通過調(diào)用函數(shù)的方式在該低成本平臺上實現(xiàn)了動態(tài)網(wǎng)頁服務(wù)器。在局域網(wǎng)條件下運行該終端和上位機PC進行連接,能很好 的通過網(wǎng)絡(luò)傳遞RFID讀卡器采集的信息,并且上位機PC能夠通過網(wǎng)頁對本終端進行訪問和參數(shù)設(shè)置。針對更復(fù)雜的遠程網(wǎng)絡(luò)連接和訪問,網(wǎng)絡(luò)延遲和丟包等問 題還有待進一步的研究。

下一篇: PLC、DCS、FCS三大控

上一篇: 關(guān)于大數(shù)據(jù)治理的研究

推薦產(chǎn)品

更多
主站蜘蛛池模板: 精品一区二区三 | a级性视频 | 日韩欧美国产精品 | 人人玩人人添人人澡欧美 | 久久久国产一区二区 | 成人中文字幕在线 | 精品日韩一区 | 欧美日韩第一页 | 午夜免费视频 | 欧美精品在线播放 | 成年人视频免费在线观看 | 日韩国产精品一区二区三区 | 18性欧美 | 日日日干干干 | 国产剧情一区 | 日本视频中文字幕 | 中文字幕一区二区在线观看 | 国产精品伦一区二区三级视频 | 偷拍自拍网 | 日本中文字幕在线观看 | 欧美成人免费在线 | 黄色免费看 | 久久999 | 亚洲精品一区二区另类图片 | 欧洲精品久久久久毛片完整版 | 成人一区av偷拍 | 亚洲精品一区二区三区中文字幕 | 狠狠爱网址 | 水蜜桃久久夜色精品一区 | 精品久久久久久亚洲综合网站 | 都市激情亚洲 | 夜夜夜久久久 | 中文在线视频 | 91高清视频在线观看 | 国产视频第一页 | 日韩福利一区 | 国产在线精品一区二区三区 | 五月婷婷激情网 | 日本欧美在线视频 | 国产三级网站 | 免费观看的黄色网址 |