嵌入式系統中BACnet-MS/TP協(xié)議棧的實(shí)現
3.4 數據鏈路層(MS/TP)模塊
MS/TP是一個(gè)主從/令牌傳遞的數據鏈路協(xié)議,物理層采用RS-485半雙工通信標準。MS/TP層包含兩個(gè)狀態(tài)機,分別是主節點(diǎn)狀態(tài)機和接收幀狀態(tài)機;接收幀狀態(tài)機負責幀的接收,如是數據幀則調用與網(wǎng)絡(luò )層接口上傳給網(wǎng)絡(luò )層,主節點(diǎn)狀態(tài)機負責幀(包括數據幀和控制幀)的發(fā)送。兩個(gè)狀態(tài)機分時(shí)實(shí)現,根據兩者之間的關(guān)系,接收幀狀態(tài)機可放在主節點(diǎn)狀態(tài)機中統一調度。其中,接收模塊實(shí)現接收幀狀態(tài)機;發(fā)送模塊實(shí)現主節點(diǎn)狀態(tài)機;串口控制模塊實(shí)現串口驅動(dòng)與收發(fā)控制,串口讀寫(xiě)采用中斷方式;
網(wǎng)絡(luò )層接口模塊定義接口及接口函數調用模塊,使用服務(wù)原語(yǔ)DL_UNITDATA.request()和DL_UNITDATA.indication()來(lái)實(shí)現。
4 結束語(yǔ)
本文提出了BACnet-MS/TP協(xié)議在MCU中的軟件實(shí)現方案,解決了BACnet控制器的通訊功能。如果進(jìn)一步采用嵌入式操作系統實(shí)現多任務(wù)處理,配合數據采集、控制和組態(tài)模塊,就可以開(kāi)發(fā)出實(shí)用的BACnet控制器。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)c++相關(guān)文章:c++教程
評論