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