基于CAN總線分布式網架健康狀態監測系統
相對于傳統的485總線來講,控制器局域網CAN(Controller Area Network)作為現場總線的一種,以其分時多主、非破壞性總線仲裁和自動檢錯重發等靈活、可靠的通信技術解決了485總線現場調試困難、開發周期長等問題[1]。尤其在較為艱苦的安裝環境中,其高效的現場調試性能顯得尤為實用。作為一種分散式、數字化、雙向多點、具有高速率高可靠性特點的通信系統,CAN可以構建靈活的多主通訊機制,也可以建立主從式結構,而且這兩種方式下的硬件物理聯接完全相同。其自動進行數據編碼、CRC冗余校驗、出錯自動重發的功能保證了數據的準確率,某一節點嚴重出錯時能自動脫離總線保證了系統的穩定性,且其具有極強的帶負載能力,可驅動多達110個節點,可滿足本系統高速、精確、多負載的要求。
1 采集卡硬件電路的設計
1.1 CAN總線分布式系統結構設計
系統結構如圖1所示。本系統由上位監控PC機、CAN總線適配卡和控制單元三部分組成。上位監控PCs機采用IBM-PC兼容機,主要負責對系統數據的接收與管理、控制命令的發送以及各控制單元動態參數和設備狀態的實時顯示;CAN總線適配卡可以使PC機方便地連接到CAN總線上;控制單元以單片機為核心,主要負責對現場的環境參數和設備狀態進行監測,對采集來的數據進行打包處理并將處理過的數字信號通過CAN通信控制器SJA1000送入CAN總線。
1.2 控制單元模塊設計及關鍵問題的解決
控制單元的主要功能是將現場采集的模擬信號轉換成數字信號,通過CPU處理后再由CAN總線控制器打包送上CAN總線以便上位機接收處理;接收上位機控制信號,實現現場控制的具體操作。具體需要解決的問題為:①CAN模塊設計;②A/D模塊設計。
1.2.1 CAN模塊設計
控制單元以8位單片機AT89C51為核心,選用器件SJA1000作為CAN控制器,并選用芯片82C250和6N137作為CAN控制器接口和光耦隔離。硬件電路如圖2所示。
系統采用的CAN總線通信控制器SJA1000是PHILIPS公司生產的一種獨立式CAN器件,其原理框圖如圖3所示。它與CAN2.OB相兼容[1],同時支持11位(BasicCAN模式)和29位(PeliCAN模式)識別碼。
圖2中AT89C51單片機的ALE、WR、RD端分別控制SJA1000的ALE/AS、WR、RD端,地址和數據線ADO~AD7由P0口分時復用實現。SJA1000的中斷請求信號INT在中斷允許且有中斷發生時,由高電來此跳變到低電平,所以INT和AT89C51的INT0直接相連。片選信號CS由GAL譯碼電路控制,當CS接到低電平時,SJA1000被選中,CPU可對SJA1000進行讀/寫操作。為了增強控制節點的抗干擾能力,防止線路間串擾,SJA1000通過光耦6N137與82C250相連,從而使總線上各個CAN節點之間實現隔離,以保護CAN控制器正常工作。82C250是CAN總線收發器,是CAN控制器SJA1000正常工作與CAN總線的接口器件,對CAN總線以差分方式發送。其引腳RS用于選擇82C250的工作模式(高速、斜率控制或等待)。RS腳接地,82C250工作于高速方式,RS腳串接一個電阻R后再接地,若82C250處于CAN總線的網絡終端,總線接口部分必須加一個120Ω的匹配電阻,以保護82C250免受過流的沖擊。
1.2.2 A/D模塊設計
A/D芯片選用12位高速采集芯片AD574。在本設計中,A/D模塊的功能是將外部模擬信號通過AD574轉換成數字信號后并行輸入到AT89C51,然后AT89C51將其打包,并行輸出至CAN總線通信控制器SJA1000,經總線收發器至CAN總線。其監控電路采用DS1232,它具有電源監控、手動復位和看門狗功能,還能同時輸出高低電平的兩路復位信號,分別輸出至AT89C51和SJA1000的復位端,以滿足本次設計的要求。
評論