基于ZigBee和ModBus的分布式電子警察系統
2.3 控制系統軟件設計
2.3.1 ModBus通信的實現
ModBus通信分為RTU和ASCII兩種模式。相對于ASCII模式,RTU模式表達相同的信息需要較少的位數,且在相同通信速率下具有更大的數據流量,因此系統中采用RTU模式。在RTU模式中,新的消息幀以3.5個字節時間間隔的靜默時間開始,緊接著傳送第一個域――從站地址。每個域允許傳輸的字符都是16進制數。網絡設備始終監視著通信總線的活動,包括靜默時間。當接收到第一個信息域(即地址信息)時,每個網絡中的設備都對此進行譯碼,以確定所要尋址的設備;第二個信息域是功能碼,主站發送數據幀的功能碼表示從站需要執行的動作,從站發送的功能碼與接收到的主站發送功能碼一致,表示從站響應主站進行操作;數據域的數據值取決于功能碼,校驗域采用CRC校驗,CRC碼由發送設備計算,放置于發送信息的尾部;接收信息的設備再重新計算接收到信息的CRC碼,比較計算得到的CRC碼是否與接收到的相符,如果兩者不相符,則表明出錯。當一幀數據最后一個域傳輸完畢,再次產生一個3.5個字節時間間隔的靜默時間,表示該幀數據結束。ModBus RTU消息幀格式如表1所示。本文引用地址:http://www.104case.com/article/157815.htm
2.3.2 ModBus控制器軟件設計
控制器完成初始化后開始搜索并申請加入ZigBee網絡。加入ZigBee網絡后對信道進行掃描,掃描是否接收到由網絡中其他控制器發送的數據幀。如果掃描過程中發現接收到數據幀,則對該幀依次進行地址碼校驗,并檢查幀中的目的地址是否為本機地址。如果目的地址非本站地址,則丟棄該幀數據;如果目的地址與本機地址相同,則對數據幀進行CRC校驗,并檢驗功能碼是否合法,若任何一項校驗未通過,則丟棄該幀數據;如校驗全部通過,則回發一個應答幀,并根據幀中的功能碼,向系統其他單元發送命令,軟件流程如圖4所示。
CRC_16校驗的算法實現程序如下:
3 結 語
在資源、環境矛盾越來越突出的今天,道路設施的增長將受到限制。本文提出的基于ZigBee和ModBus的分布式電子警察系統架構,相對于目前的電子警察系統,更加節省占地空間,減少設備安裝施工量,降低施工成本,在智能交通領域有著廣闊的應用前景。
評論