基于單片機(jī)AT89C51和CAN控制器實(shí)現(xiàn)柴油發(fā)動機(jī)測試系統(tǒng)的設(shè)計(jì)
掃描二維碼
隨時隨地手機(jī)看文章
1. 引言
許多現(xiàn)在正在使用的柴油發(fā)動機(jī)測試平臺都是通過儀表讀數(shù)來分析、判斷一臺柴油發(fā)動機(jī)測試時的工作狀態(tài),不僅效率低、精度差,而且綜合分析判斷能力有限。為了能夠更加全面、直觀地了解柴油發(fā)動機(jī)測試過程,迅速發(fā)現(xiàn)并排除故障隱患,使測試操作人員提高分析判斷能力,結(jié)合企業(yè)技術(shù)改造,我們開發(fā)了基于CAN現(xiàn)場總線的柴油發(fā)動機(jī)測試系統(tǒng),實(shí)現(xiàn)了同時對多臺柴油發(fā)動機(jī)測試過程的監(jiān)控與測試。
2. 測試系統(tǒng)結(jié)構(gòu)組成
根據(jù)柴油發(fā)動機(jī)的測試要求,本系統(tǒng)主要完成對柴油發(fā)動機(jī)測試過程中各種傳感信號的處理以及柴油機(jī)工況數(shù)據(jù)的采集,并將數(shù)據(jù)通過CAN總線送上位機(jī),要求處理16路模擬信號、16路I/O信號。采集的參數(shù)主要有:機(jī)油壓力和溫度、冷卻水溫度、進(jìn)排氣溫度、燃油液位、啟動蓄電池電壓、轉(zhuǎn)速等。
柴油發(fā)動機(jī)測試系統(tǒng)的關(guān)鍵是引入了CAN總線技術(shù),形成基于CAN總線的分布式測控體系模型,由于CAN總線作為現(xiàn)場總線的類型之一,屬于開放式底層控制網(wǎng)絡(luò),是應(yīng)用于生產(chǎn)現(xiàn)場、在微機(jī)化測量控制設(shè)備之間實(shí)現(xiàn)雙向串行多節(jié)點(diǎn)數(shù)字通信的系統(tǒng),因此基于CAN總線的分布式測控系統(tǒng)是開放式的,而不是封閉和專用的。這種測試系統(tǒng)將監(jiān)控功能分散到每個試車臺,每個試車臺均由一個CAN智能節(jié)點(diǎn)完成監(jiān)控任務(wù)。每個CAN總線節(jié)點(diǎn)的組成是相同的,都包括:主控單元、CAN總線通信管理單元、數(shù)據(jù)采集與處理單元等。各節(jié)點(diǎn)通過CAN總線與上位機(jī)相連,通過總線完成彼此間的通信。
3. 測試系統(tǒng)硬件設(shè)計(jì)
柴油發(fā)動機(jī)測試系統(tǒng)采用兩級分布式結(jié)構(gòu)。上位機(jī)采用PC機(jī),在上位機(jī)的PCI總線插槽中安裝了PC-CAN總線適配卡,這樣就可以通過CAN總線將上、下位機(jī)聯(lián)系在一起構(gòu)成控制網(wǎng)絡(luò)。下位機(jī)控制器采用單片機(jī)AT89C51和CAN總線控制器SJA1000共同組成的智能節(jié)點(diǎn),它們直接對各現(xiàn)場設(shè)備(如:傳感器、繼電器、電機(jī)等進(jìn)行控制,采集現(xiàn)場數(shù)據(jù),并根據(jù)接收到的命令或者主動將數(shù)據(jù)發(fā)送到CAN總線。
通過事先設(shè)置驗(yàn)收碼和驗(yàn)收屏蔽碼可以控制智能節(jié)點(diǎn)從總線上接收哪些數(shù)據(jù)或命令。如果某些數(shù)據(jù)需要進(jìn)一步復(fù)雜的處理(如動態(tài)顯示),則上位計(jì)算機(jī)可以從總線上接收數(shù)據(jù)。當(dāng)上位機(jī)需要對某個節(jié)點(diǎn)施加控制動作時,可以采用點(diǎn)對點(diǎn)方式與該節(jié)點(diǎn)通訊,而當(dāng)它要同時對所有節(jié)點(diǎn)施加控制動作時,可以采用廣播方式將命令發(fā)送到總線。這樣當(dāng)系統(tǒng)正常運(yùn)行時完全可以沒有上位機(jī)的參與,大大減少了數(shù)據(jù)的傳輸量,同時提高了系統(tǒng)的實(shí)時性和可靠性。
柴油發(fā)動機(jī)測試系統(tǒng)的硬件設(shè)計(jì)主要涉及上位機(jī)中的PC-CAN適配卡以及下位機(jī)CAN智能節(jié)點(diǎn)。這里重點(diǎn)分析CAN智能節(jié)點(diǎn)的結(jié)構(gòu)組成。
在圖2CAN智能節(jié)點(diǎn)中,核心器件是CAN總線控制器SJA1000、CAN總線驅(qū)動器82C250以及單片機(jī)AT89C51。AT89C51主要有兩方面的任務(wù):一是負(fù)責(zé)對CAN控制器SJA1000的初始化,并通過控制SJA1000實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù);二是負(fù)責(zé)對現(xiàn)場信號的采集以及對現(xiàn)場設(shè)備的控制。
SJA1000是Philips公司的CAN控制器,它實(shí)現(xiàn)了CAN總線網(wǎng)絡(luò)中的數(shù)據(jù)鏈路層和物理層功能,通過對其編程,微處理器可以設(shè)置它的工作方式,控制它的工作狀態(tài),進(jìn)行數(shù)據(jù)的發(fā)送和接收,把應(yīng)用層建立在它的基礎(chǔ)之上。在本設(shè)計(jì)中,為了增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能力,采用SJA1000的具有光電隔離的CAN總線接口。SJA1000的發(fā)送輸出端TX0與接收輸入端RX0、RX1分別經(jīng)高速集成光電耦合器6N137隔離后與CAN總線接口驅(qū)動芯片82C250的TXD和RXD相連,82C250則直接與CAN物理總線相連。
上位機(jī)監(jiān)控軟件采用組態(tài)軟件進(jìn)行開發(fā)。組態(tài)軟件作為用戶可定制功能的軟件平臺工具,是隨著分布式控制系統(tǒng)及計(jì)算機(jī)控制技術(shù)的日趨成熟而發(fā)展起來的
當(dāng)前,隨著現(xiàn)場總線技術(shù)的逐步推廣,現(xiàn)場總線和開放系統(tǒng)已成為組態(tài)軟件成長所依賴的外部環(huán)境,這使得組態(tài)軟件更易于與眾多的輸入/輸出設(shè)備連接,從而促進(jìn)了組態(tài)軟件在現(xiàn)場總線控制系統(tǒng)中的應(yīng)用。通過對現(xiàn)有組態(tài)軟件性能及價格的比較,同時結(jié)合本技改項(xiàng)目的實(shí)際需要,選擇國產(chǎn)“世紀(jì)星”組態(tài)軟件來開發(fā)CAN總線系統(tǒng)的監(jiān)控程序。為了將上位機(jī)人機(jī)界面程序與下位機(jī)數(shù)據(jù)采集與交換程序有機(jī)地結(jié)合起來,我們把臨控程序分成兩部分,即:將服務(wù)器-客戶機(jī)結(jié)構(gòu)應(yīng)用到CAN總線控制系統(tǒng)的組態(tài)軟件設(shè)計(jì)中,實(shí)現(xiàn)以人機(jī)界面程序作為客戶機(jī)端程序,以與硬件進(jìn)行數(shù)據(jù)交換的程序作為服務(wù)器端程序。
(2) 下位機(jī)軟件:
每個柴油發(fā)動機(jī)試車臺作為CAN總線的一個智能節(jié)點(diǎn),通過CAN通信接口將各試車臺的檢測狀態(tài)和控制結(jié)果等信息向上位機(jī)傳送,并隨時準(zhǔn)備接收上位機(jī)的控制指令。下位機(jī)控制程序采用模塊化編程,包括CAN總線通信管理模塊、柴油發(fā)動機(jī)運(yùn)行狀態(tài)監(jiān)控模塊、A/D巡檢采樣及數(shù)據(jù)轉(zhuǎn)存模塊、I/O開關(guān)量信號處理模塊等。其中,CAN節(jié)點(diǎn)通信模塊部分至關(guān)重要,它關(guān)系到整個分布式控制網(wǎng)絡(luò)能否正常工作。CAN節(jié)點(diǎn)通信模塊由CAN初始化子程序、CAN中斷程序和CAN數(shù)據(jù)收發(fā)子程序組成,如圖4所示。
4. 結(jié)束語
本論文的研究內(nèi)容在圍產(chǎn)135系列柴油發(fā)動機(jī)的試車臺上已經(jīng)過試驗(yàn)并運(yùn)行良好,實(shí)踐表明:基于CAN總線的分布式測試系統(tǒng)穩(wěn)定可靠,具有配置靈活簡單、成本低、可靠性高、抗干擾能力強(qiáng)和可擴(kuò)充性好等優(yōu)點(diǎn),可以對柴油機(jī)的測試過程進(jìn)行全面監(jiān)控,大大減少了測試時間,改善了監(jiān)控工作條件,提高了對設(shè)備的科學(xué)化管理,對某些故障還能夠及早發(fā)現(xiàn),防止滯后處理所造成的損失。