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