防撞擺閘模塊設(shè)計防撞擺閘
防撞擺閘模塊需要根據(jù)防撞擺閘系統(tǒng)的功能要求,實(shí)現(xiàn)與多種外部設(shè)備的串口協(xié)議通信,從而實(shí)現(xiàn)對設(shè)備的控制和數(shù)據(jù)反饋。該模塊通過封裝定制協(xié)議,在模塊內(nèi)實(shí)現(xiàn)數(shù)據(jù)收發(fā)控制管理,然后提供函數(shù)接口供相關(guān)模塊調(diào)用,防撞擺閘系統(tǒng)設(shè)備控制模塊需要具有通信穩(wěn)定、安全可靠的特點(diǎn)。
防撞擺閘系統(tǒng)控制模塊的設(shè)計;
首先,數(shù)據(jù)幀定義。防撞擺閘的設(shè)備控制模塊與IO模塊、通行算法模塊之間的通信采用主從通信模式,主動啟動通信的是命令幀、命令接收者回復(fù)相應(yīng)的應(yīng)答幀,設(shè)備控制模塊與硬件相互主從。針對防撞擺閘的需要,需要實(shí)現(xiàn)串口通信的穩(wěn)定性和安全性,因此需要定義可靠的通信協(xié)議,使兩者之間的通信分為命令幀和應(yīng)答幀,
第二,收發(fā)控制流程。防撞擺閘控制系統(tǒng)和硬件部件之間的通信采用主從方式,雙方互為主從關(guān)系,現(xiàn)以控制系統(tǒng)為主設(shè)備為例,介紹詳細(xì)的收發(fā)流程,當(dāng)外部模塊調(diào)用設(shè)備控制函數(shù)接口時,將參數(shù)傳遞給接口函數(shù),接口函數(shù)實(shí)現(xiàn)協(xié)議命令幀的組幀,并將數(shù)據(jù)添加到數(shù)據(jù)發(fā)送隊列中。當(dāng)防撞擺閘的數(shù)據(jù)檢測定時器檢測到有數(shù)據(jù)時,取出一幀數(shù)據(jù),同時啟動發(fā)送控制定時器進(jìn)行數(shù)據(jù)發(fā)送控制,從機(jī)器收到數(shù)據(jù)后,將回復(fù)數(shù)據(jù)發(fā)送到串口,收發(fā)接口將數(shù)據(jù)添加到接收隊列,數(shù)據(jù)接收控制處理流程從接收隊列中取出數(shù)據(jù),終止發(fā)送控制定時器,同時接口函數(shù)返回。
第三,異常處理。由于防撞擺閘串口通信易受外界干擾等影響,通信不穩(wěn)定。在數(shù)據(jù)發(fā)送過程中,數(shù)據(jù)重新發(fā)送,如應(yīng)答響應(yīng)超時、幀序號錯誤、CRC校驗(yàn)錯誤等。,定時器觸發(fā)定時重新發(fā)送數(shù)據(jù),超過防撞擺閘設(shè)定重新發(fā)送次數(shù)時退出。