李敏 王朋濤
摘要:通過多個基于W7100A的高速物聯(lián)網采集器實現(xiàn)了一個采集系統(tǒng),并給出了該系統(tǒng)的外圍電路設計, 對溫濕度采集和顯示模塊進行了詳細的闡述,編寫了相關的顯示和采集程序,實現(xiàn)了以太網遠程高速數據采集。由于W7100A是硬核TCP/IP 技術來進行數據采集,所以可以作為物聯(lián)網采集器的一種實現(xiàn)方式,且可以通過撥碼開關區(qū)分IP地址,實現(xiàn)模塊化。
關鍵詞:物聯(lián)網;W7100A;DS18B20;TCP/IP
中圖分類號:TP39文獻標識碼:A
doi:10.14031/j.cnki.njwx.2017.09.002
0引言
物聯(lián)網用途廣泛,遍及智能交通、環(huán)境保護、政府工作、公共安全、平安家居、智能消防、工業(yè)監(jiān)測、環(huán)境監(jiān)測、路燈照明管控、景觀照明管控、樓宇照明管控、廣場照明管控、老人護理、個人健康、花卉栽培、水系監(jiān)測、食品溯源、敵情偵查和情報搜集等多個領域,其中采集器是物聯(lián)網實現(xiàn)環(huán)節(jié)中的重要一環(huán)。
1采集系統(tǒng)框架
該系統(tǒng)包含多個W7100A采集控制器,每個采集器通過交換機與控制服務器相連接組成控制系統(tǒng)。通過設定每個板子上撥碼開關的值來調整相應的IP地址,可以實現(xiàn)多個采集控制器的動態(tài)加入。其中每個控制器又包含KEY輸入、LCD顯示、溫濕度傳感器、PWM、UART串行口、繼電器和以太網模塊。按鍵通過595芯片做串行移位,僅用一個IO端口就可以實現(xiàn)8個按鍵的輸入。顯示部分采用LCD12232液晶作為顯示模塊,與移位按鍵配合做設定報警信息和實時顯示。溫度傳感器采用數字溫度器件DS18B20采集溫度;UART用于連接其他采集控制模塊;繼電器用于控制其他機械設備的啟動和停止;PWM用于精確控制機械傳動中的電磁閥。
該系統(tǒng)通過交換機把多個模塊采集的數據發(fā)送到服務器,由服務器實時處理后保存到本地數據庫并發(fā)送到Internet。向下通過每塊W7100A控制器的IO口采集當前環(huán)境的信息數據,利用W7100A自帶的以太網模塊把采集到的數據和服務器實現(xiàn)數據的交換。系統(tǒng)結構如圖1所示。
2硬件電路設計
2.1顯示電路設計
LCD選用帶中文字庫的LCM12864R,由于W7100A是可以直接驅動LCD12864R,兩個器件相互連接的時候無需進行電平轉換,采用串行輸入方式。其接口和電路如圖2和圖3所示。
2.2可擴展電路設計
可擴展部分采用撥碼開關設計,利用W7100A的IO口讀取撥碼開關的狀態(tài)來判斷自身的IP地址。使用的時候,只需設置撥碼開關的撥齒到不同的位置,極大地方便了現(xiàn)場的使用。其電路如圖4所示。
2.3以太網設計
由于W7100A內部不僅集成了MAC模塊還集成了PHY模塊,所以簡化了電路部分的設計,但是需要注意布局和布線,同時還要考慮W7100A的散熱。一般集成MAC和PHY的芯片正常工作的時候發(fā)熱都比較嚴重,可以考慮加裝散熱片來解決。對于布局布線主要是對差分線對的處理,這點比較重要。芯片出來的RX+/TX+、RX-/TX-為差分線對(切勿走成RX+/RX-和TX+/TX-),應該優(yōu)先布差分線,保持平行、等長和緊靠,且避免交叉。同時應避免差分線周圍走其他信號線,而且差分線要包地,包地的周圍隔一段距離就要打地孔。這兩組差分信號布的好壞,會嚴重影響網卡的工作。電路如圖5所示。
3軟件設計流程
該采集系統(tǒng)在軟件設計上分為兩部分:一部分是W7100A采集控制器的控制和上傳數據程序;另一部分是服務器上上位機各個采集器集中處理的程序。服務器通過TCP/IP收集各個控制器上傳的數據,然后進行信息融合后,做出判斷,再發(fā)出控制命令使各個采集器執(zhí)行不同的機械動作。同時也可以以外接GPRS模塊短信命令來實現(xiàn)人機交互。
3.1采集器程序設計
采集器的程序分為5個部分,分別是:按鍵處理、LCD12864顯示、網絡接收和發(fā)送數據、繼電器的接通和斷開以及IP地址的識別。
按鍵硬件上接上拉電阻,因此有鍵按下時電平是低電平。按鍵采用循環(huán)掃描的模式來處理。
顯示程序主要根據LCD12864的時序把需要顯示的數據寫入顯存里。
網絡收發(fā)數據采用循環(huán)掃描的方法不斷查詢是否有數據要發(fā)送或接收,先查詢Sock0_Connect標志位,若為高電平表明已經建立了TCP連接,如果已經建立了連接,則查詢Sock0_Recv標志,若為Sock0_Recv高電平則先清零該標志,再去讀取網絡緩沖區(qū)里面數據幀的幀頭數據。如果幀頭是0x66、0xA8、0x55說明主機發(fā)送的是上傳數據命令,此時同時把上傳標志upload_flag置1。主程序會根據upload_flag的標志轉去執(zhí)行上傳數據函數;如果幀頭是0x66、0xA8、0xAA說明主機發(fā)送的是寫入命令,W7100A需要從緩沖區(qū)的第4個字節(jié)開始讀取且連續(xù)讀取22個字節(jié)數據,然后根據接收到的數據執(zhí)行相應的命令。
3.2上位機程序
上位機用VC編寫,基于socket的服務器。Socket是應用層與TCP/IP協(xié)議族通信的中間軟件抽象層,它是一組接口。在設計中,Socket其實就是一個門面模式,它把復雜的TCP/IP協(xié)議族隱藏在Socket接口后面,對用戶來說,一組簡單的接口就是全部。
編寫步驟一般是先加載套接字接口,再綁定套接字到IP和端口,其次監(jiān)聽套接字接口以等待連接請求的到來,然后根據各個采集器上傳的數據進行融合并發(fā)送數據,最后關閉套接字接口。在該系統(tǒng)中綁定的TCP端口為9998,待連接請求到來時,讀取數據并進行數據的處理。通信結束,則返回并關閉套接字。采集到的數據如圖6 所示。
4總結
本文以集成硬件TCP/IP核的W7100A設計并實現(xiàn)了一個采集控制器的子系統(tǒng),再經過多個采集子系統(tǒng)構成一個整體的可擴展的控制系統(tǒng),然后通過網絡上傳數據到服務器。基本實現(xiàn)了顯示、溫濕度、繼電器通斷的控制。相比傳統(tǒng)的8051控制器,系統(tǒng)具有較高的實時行和大的數據吞吐量,同時也易于擴展,且設置靈活,有一定的實用性。
參考文獻:
[1]陳得民.基于W7100的數據采集系統(tǒng)設計[J].產品設計,2010(5):22.
[2]Chen De-min. The Design of Data Acquisition System Based on W7100 [J].Product Design, 2010(5):22.
[3]董紅政,史曉鵬,王忠勇,IPv6環(huán)境下信息家電系統(tǒng)網絡終端設計[J]. 微計算機信息,2007(35).
[4]溫冬偉,王平立,宋斌.基于W7100的以太網讀卡器的設計與實現(xiàn)[J]. 電子設計工程,2011(9).
[5]楊波.利用W7100芯片的遠程控制器研究[J].廊坊師范學院學報(自然科學版),2014(2).
[6]薛大為,楊春蘭.基于ST7920 控制器的中小尺寸液晶顯示的實現(xiàn)[J].電子世界,2013(19):65.
[7]WIZnet Co.,INC. Internet embedded MCU W7100A datasheet[OL].[2009]http://www.Wiznet.co.kr.
(05)endprint