a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 基于以太網和CAN總線的樓宇自動化系統設計

基于以太網和CAN總線的樓宇自動化系統設計

作者: 時間:2012-11-21 來源:網絡 收藏

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

本文引用地址:http://www.j9360.com/article/159681.htm

e.JPG


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

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

b.JPG



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


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉