基于微處理器與CAN的工業聯機控制系統
在編程時有一點要注意,PORTB口RB7-RB4端有電平變化時可以產生中斷,但只有當I/O引腳設置為輸入狀態時才能發生中斷。芯片通過把RB7-RB4端口的輸入信號與上次讀入的鎖存值進行比較,如不等,則二者異或后輸出,產生變化中斷,使標志位RBIF為1。控制板程序運行時,控制板的程序接收各塊電機板的狀態,然后在控制板液晶上顯示電機臺數和水箱的水位狀態。控制板收到鍵盤和遙控器的命令,向總線發送信息。電機板接受總線信息,執行控制板的命令動作。同時定期發送水位的狀態值給控制板。其中冷凍功能就是同時執行沖洗功能和通風功能。冷凍功能程序是電機板程序的子程序。每次冷凍結束后必須執行清洗,保持過濾網清潔。
CAN控制器MCP2510與控制芯片PIC16F873采用SPI通訊方式。PIC微控制器工作于主模式下,可實現完全SPI功能。數據的收發采用軟件緩沖區。發送數據時,軟件緩沖區裝入所發數據,同時發出SPI中斷。CAN總線廢除了站地址編碼,對通訊數據進行編碼。數據的編碼通過幀ID號來識別。可以通過編碼開關設定數據ID號。總線仲裁指如果2個或2個以上的單元同時開始傳送報文,那么就會有總線訪問沖突。通過使用了識別符的逐位仲裁可以解決這個沖突。仲裁的機制確保了報文和時間均不損失。當具有相同識別符的數據幀和遠程幀同時初始化時,數據幀優先于遠程幀。仲裁期間,每一個發送器都對發送位的電平與被監控的總線電平進行比較。
本文作者創新點
本文構建了基于工業設備控制系統的CAN總線節點,按照功能的不同,設計三種不同功能的節點。設計了不同節點的硬件結構。采用PIC的匯編程序,實現了基本CAN通訊的方式和不同節點的功能要求。本文設計的CAN總線節點解決了在傳統的工業通訊控制方式485總線中的一些弊端,如無法構成多主結構,主節點任務繁忙,主節點故障可能引起系統癱瘓,數據傳輸效率降低;實時性差,錯誤處理能力不強等。
評論