關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于以太網(wǎng)和CAN總線的樓宇自動化系統(tǒng)設(shè)計

基于以太網(wǎng)和CAN總線的樓宇自動化系統(tǒng)設(shè)計

作者: 時間:2012-11-21 來源:網(wǎng)絡(luò) 收藏

3.3 嵌入式TCP/IP協(xié)議棧的實現(xiàn)方法
嵌入式TCP/IP協(xié)議棧同樣由套接字來實現(xiàn),主要包括IP、ARP、ICMP、TCP、UDP協(xié)議等等。TCP/IP模型結(jié)構(gòu)分為4層,由上到下分別是:應(yīng)用層、運輸層、網(wǎng)絡(luò)層、物理和數(shù)據(jù)鏈路層。數(shù)據(jù)從應(yīng)用層發(fā)出,經(jīng)過套接字封裝,傳輸至數(shù)據(jù)鏈路層,交由發(fā)送模塊處理。同樣的,接收模塊收到的數(shù)據(jù),經(jīng)過解包,最終交由應(yīng)用層接收??紤]到系統(tǒng)實時性,我們采用UDP傳輸協(xié)議進行數(shù)據(jù)和命令的傳送。編寫UDP通信的任務(wù)時分為服務(wù)器方式和客戶機方式兩種,服務(wù)器方式是先接收到數(shù)據(jù)再進行處理,而客戶機則是先發(fā)生數(shù)據(jù),然后等待回應(yīng)處理。UDP進程的流程如圖4所示。

本文引用地址:http://butianyuan.cn/article/159681.htm

e.JPG


數(shù)據(jù)報的接收是通過一個任務(wù)來進行的。該任務(wù)優(yōu)先級較高,可以通過時問片來觸發(fā),也可以通過中斷來觸發(fā)。Rec_Packet()函數(shù)是底層的驅(qū)動程序函數(shù),它在接收時調(diào)用了Rec_Ethemet_Packed()函數(shù)進行層處理,而Rec_Ethemet_Packed()函數(shù)又調(diào)用了IP_PROCESS()函數(shù)。IP層的處理由IP_PROESS()函數(shù)執(zhí)行,它將UDP報通過消息隊列交給UDP處理任務(wù)去執(zhí)行。
數(shù)據(jù)報的發(fā)送與數(shù)據(jù)報的接收是一個相反的過程,是由上層協(xié)議函數(shù)調(diào)用下層協(xié)議函數(shù)來進行的。上層UDP處理函數(shù)或Socket接口函數(shù)都是通過調(diào)用Send_Ip_Frame()函數(shù)來發(fā)送IP報的,而Send_Ip_Frame()函數(shù)則調(diào)用Send_Ip_To_LLC()函數(shù)來處理IP地址對應(yīng)MAC地址的事情,然后Send_Ip_To_LLC()再調(diào)用Send_Ethemet_Frame()函數(shù),把對應(yīng)的MAC地址寫入發(fā)送區(qū),最后調(diào)用驅(qū)動程序的發(fā)送函數(shù)Send_Packet()。

4 關(guān)鍵部位實驗驗證
設(shè)備節(jié)點樣機如圖5所示,它帶有一個DS18B20數(shù)字溫度傳感器,實時將溫度數(shù)據(jù)通過CAN傳輸至上位機,再通過局域網(wǎng)傳至主控計算機;具有多路I/O接口(可外接繼電器),能接收上位機命令改變I/O口的輸出。上位機使用ARM核心板外擴通信接口作為實驗板,主控機使用路由器接入,控制界面由VC++編寫。實驗時將IP地址設(shè)為一固定的私有IP,網(wǎng)關(guān)IP設(shè)為內(nèi)置交換機的TP-LINK路由器IP,設(shè)置好路由器工作方式后即可運行。以溫度采集與繼電器控制為例,驗證了主控機對設(shè)備節(jié)點的監(jiān)控和管理功能,表明該方案技術(shù)切實可行。

b.JPG



5 結(jié)束語
提出了一種實時性較高、實用性較強的解決方案,并對關(guān)鍵技術(shù)進行了驗證。系統(tǒng)技術(shù)成熟,易于維護和擴展,可以將建筑內(nèi)各種機電設(shè)備的信息進行分析、歸類、處理、判斷,對各系統(tǒng)設(shè)備進行集中監(jiān)控和管理,使各下屬設(shè)備協(xié)調(diào)有序的工作,并及時處理故障。


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

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

關(guān)閉