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