基于CAN總線的分布式車間溫濕度檢測系統
3 通信模塊的設計
3.1 通信模塊的硬件設計
通信模塊具有4路通信通道,可分別連接4個計算機COM口,各通信通道相互獨立,大體分為主控器(4個)、RS232/TTL電平轉換電路(2個)、CAN驅動器(4個)3部分組成,統一供+5 V電壓:
(1)主控器選擇Microchip公司生產的PIC18F25K80單片機,該單片機資源豐富,具有32 kB的程序存儲器、3 648 Byte的數據存儲器、1 024 Byte的數據EEPROM,并集成一個CAN控制器。將二路撥碼開關連接至單片機I/O口,用于設置通信模塊在CAN總線上的站號,設定站號范圍為00~11。
(2)通信模塊通過電平轉換電路AX232芯片與計算機COM口進行數據交換,由于1個MAX232支持兩組串口數據獨立收發,因此可供2路通信通道同時使用。
(3)主控器PIC18F25K80自身集成一個CAN控制器,因此無需額外增加CAN控制器,僅需連接一個CAN驅動器PCA82C250即可與CAN總線進行通信。
PIC18F25K80自身集成的CAN控制器廣泛支持CAN1.2、CAN 2.0A、CAN 2.0B Passive和CAN 2.0B Active多個版本的協議,支持DeviceNet數據字節過濾,支持標準幀數據和擴展幀數據,通信速率最高可達1 Mbit·s-1。本文引用地址:http://www.104case.com/article/192794.htm
PCA82C250作為目前應用最廣泛的CAN驅動器,其最大通信速率可達1 Mbit·s-1,最多可支持110個節點,具有多重保護功能,安全可靠。PIC18F25K80的CAN收發引腳CANRX、CANTX與PCA82C250通過2只光耦6N137連接,PCA82C250直接接入CAN總線。
3.2 通信模塊的軟件設計
通信模塊在收到來自上位機的命令后,開始輪詢與之相連接的檢測模塊。通信模塊向與之相連的第一個檢測模塊發出讀數據命令,待被詢檢測模塊返回數據后再向下一個檢測模塊發出讀數據命令,依此類推。如果被詢檢測模塊在1 000ms內沒有返回數據,則重新發送讀數據命令,重復3次后如果被詢檢測模塊依然沒有返回數據,則檢測模塊便茸動將讀數據緩沖數組內相應單元全部置FF,并將相應標志位置1,在下次輪詢時,自動跳過此檢測模塊,待檢修人員排除故障后,再通過監視計算機手動發出清除標志位命令或者將通信模塊斷電復位,即可恢復通信模塊與所有檢測模塊的通信。最后所有檢測模塊讀取完畢,通信模塊自動將數據上傳至上位監視計算機。程序流程圖如圖5所示。
通信模塊向檢測模塊發出的讀數據命令由2 Byte組成:第1 Byte是模塊通道的CAN站號,第2 Byte是被詢檢測模塊的CAN站號。由于檢測模塊向被詢模塊發出的命令僅有讀數據命令一條,因此無需添加命令代碼字節。
在CAN 2.0B規范中,數據幀有兩種幀格式:標準幀數據格式和擴展幀數據格式,兩者的區別在于前者具有11位標識符而后者具有29位標識符,如圖6所示,標準幀格式仲裁段標識符僅有11位,而擴展幀格式仲裁段標識符比標準幀格式仲裁段標識符多出18個標識符,即29個標識符。CAN控箭器會根據用戶對寄存器的設定值按幀格式自動生成輸出脈沖序列。對于開發人員而言,前者僅需要配置2 Byte的TX識別碼,而后者需要配置4 Byte的TX識別碼,用于描述該幀數據在總線上的“數據身份”。鑒于通信與檢測模塊之間的通信關系比較簡單,這里選用標準幀數據格式,2 Byte的TX識別碼分別為數據源和數據目標地址,即對于通信模塊而言,第1 Byte定義為通信模塊某通道的站號,第2 Byte定義為某時刻該通信通道所訪問的檢測模塊站號。
pid控制相關文章:pid控制原理
土壤濕度傳感器相關文章:土壤濕度傳感器原理
評論