基于以太網(wǎng)和CAN總線(xiàn)的樓宇自動(dòng)化系統設計
3.3 嵌入式TCP/IP協(xié)議棧的實(shí)現方法
嵌入式TCP/IP協(xié)議棧同樣由套接字來(lái)實(shí)現,主要包括IP、ARP、ICMP、TCP、UDP協(xié)議等等。TCP/IP模型結構分為4層,由上到下分別是:應用層、運輸層、網(wǎng)絡(luò )層、物理和數據鏈路層。數據從應用層發(fā)出,經(jīng)過(guò)套接字封裝,傳輸至數據鏈路層,交由以太網(wǎng)發(fā)送模塊處理。同樣的,以太網(wǎng)接收模塊收到的數據,經(jīng)過(guò)解包,最終交由應用層接收??紤]到系統實(shí)時(shí)性,我們采用UDP傳輸協(xié)議進(jìn)行數據和命令的傳送。編寫(xiě)UDP通信的任務(wù)時(shí)分為服務(wù)器方式和客戶(hù)機方式兩種,服務(wù)器方式是先接收到數據再進(jìn)行處理,而客戶(hù)機則是先發(fā)生數據,然后等待回應處理。UDP進(jìn)程的流程如圖4所示。本文引用地址:http://dyxdggzs.com/article/159681.htm
數據報的接收是通過(guò)一個(gè)任務(wù)來(lái)進(jìn)行的。該任務(wù)優(yōu)先級較高,可以通過(guò)時(shí)問(wèn)片來(lái)觸發(fā),也可以通過(guò)中斷來(lái)觸發(fā)。Rec_Packet()函數是底層的驅動(dòng)程序函數,它在接收時(shí)調用了Rec_Ethemet_Packed()函數進(jìn)行以太網(wǎng)層處理,而Rec_Ethemet_Packed()函數又調用了IP_PROCESS()函數。IP層的處理由IP_PROESS()函數執行,它將UDP報通過(guò)消息隊列交給UDP處理任務(wù)去執行。
數據報的發(fā)送與數據報的接收是一個(gè)相反的過(guò)程,是由上層協(xié)議函數調用下層協(xié)議函數來(lái)進(jìn)行的。上層UDP處理函數或Socket接口函數都是通過(guò)調用Send_Ip_Frame()函數來(lái)發(fā)送IP報的,而Send_Ip_Frame()函數則調用Send_Ip_To_LLC()函數來(lái)處理IP地址對應MAC地址的事情,然后Send_Ip_To_LLC()再調用Send_Ethemet_Frame()函數,把對應的MAC地址寫(xiě)入發(fā)送區,最后調用驅動(dòng)程序的發(fā)送函數Send_Packet()。
4 關(guān)鍵部位實(shí)驗驗證
設備節點(diǎn)樣機如圖5所示,它帶有一個(gè)DS18B20數字溫度傳感器,實(shí)時(shí)將溫度數據通過(guò)CAN傳輸至上位機,再通過(guò)局域網(wǎng)傳至主控計算機;具有多路I/O接口(可外接繼電器),能接收上位機命令改變I/O口的輸出。上位機使用ARM核心板外擴通信接口作為實(shí)驗板,主控機使用路由器接入,控制界面由VC++編寫(xiě)。實(shí)驗時(shí)將IP地址設為一固定的私有IP,網(wǎng)關(guān)IP設為內置交換機的TP-LINK路由器IP,設置好路由器工作方式后即可運行。以溫度采集與繼電器控制為例,驗證了主控機對設備節點(diǎn)的監控和管理功能,表明該方案技術(shù)切實(shí)可行。
5 結束語(yǔ)
提出了一種實(shí)時(shí)性較高、實(shí)用性較強的樓宇自動(dòng)化控制系統解決方案,并對關(guān)鍵技術(shù)進(jìn)行了驗證。系統技術(shù)成熟,易于維護和擴展,可以將建筑內各種機電設備的信息進(jìn)行分析、歸類(lèi)、處理、判斷,對各系統設備進(jìn)行集中監控和管理,使各下屬設備協(xié)調有序的工作,并及時(shí)處理故障。
評論