基于現(xiàn)場總線與虛擬儀器的車輛監(jiān)控系統(tǒng)
1 引言
目前,在控制領域,虛擬儀器系統(tǒng)的應用多局限于采集-反饋-控制的點對點方式。而對于多電機的系統(tǒng),特別是多電機驅動的蓄電池車輛系統(tǒng),則需要實現(xiàn)大量的信息采集、分布式的協(xié)調控制、實時的反應速度等功能。傳統(tǒng)方式硬件組成復雜、走線繁瑣、調試安裝不便、不易擴展,且沒有發(fā)揮虛擬儀器的優(yōu)勢,因此本文提出了一種基于CAN(Controller Area Network)總線的虛擬儀器系統(tǒng)的設計方案,將計算機通訊、現(xiàn)場總線技術和虛擬儀器的概念很好的結合起來,設計出了一套結構簡單、實時性高、擴展性強的分布式監(jiān)控系統(tǒng),在復雜控制系統(tǒng)中實現(xiàn)了多電機控制與監(jiān)測的實時調節(jié)、控制效果的數字化和圖形化。
2 總體方案的提出
圖1 系統(tǒng)的總框圖
設計系統(tǒng)原則是在實用、可靠、經濟的原則基礎上,保證系統(tǒng)不僅能滿足應用需要,而且要有靈活性、可擴展性和通用性。該系統(tǒng)是由虛擬儀器技術、Modbus總線協(xié)議、CAN總線優(yōu)化組合成而成,系統(tǒng)的構成原理圖如圖1所示。系統(tǒng)是利用PC機實現(xiàn)對多臺電機、多組電池及其它輔助設備進行監(jiān)控。主要由上位機、電池管理系統(tǒng)、電機控制系統(tǒng)、其它輔助控制系統(tǒng)組成。各個控制器之間通過CAN總線進行通信,以實現(xiàn)控制指令的發(fā)送和接收、傳感器測量數據的共享等,從而提高系統(tǒng)的控制性能。
電機控制器實現(xiàn)采集電機的電樞電流、電機轉速,判斷工況,接收設定轉速等功能;電池管理控制器實現(xiàn)采集電池溫度、電壓、電流、接收控制指令等功能。上位機用圖形化編程語言LabVIEW編寫,程序以虛擬儀表的形式實時顯示電機轉速、車速、電池的荷電狀態(tài)等值,并通過操作上位機發(fā)控制指令,控制電機電池的狀態(tài)。CAN節(jié)點是本系統(tǒng)的核心部分,通過它把各個分散的部分連接成統(tǒng)一的系統(tǒng)。每個CAN節(jié)點使用統(tǒng)一的硬件平臺,實現(xiàn)不同的工作方式,每個節(jié)點都可以獨立的選擇所連接設備及工作方式。
3 CAN節(jié)點硬件設計
對于車用電控單元來說,為了簡化設計,提高可靠性,采用集成的自帶CAN總線控制器的微處理器。自帶CAN總線控制器的微處理器,不占用處理器的端口資源,可以大大簡化接口電路的設計,減少程序的復雜程度,提高系統(tǒng)的穩(wěn)定性,本系統(tǒng)選用Philips的高性能微控制器P87C591。圖2為節(jié)點硬件設計的功能框圖,針對節(jié)點功能要求與所選擇微處理器資源,敘述如下:
(1) 全雙工增強型UART,帶有可編程波特率發(fā)生器,按規(guī)定的Modbus協(xié)議來完成RS232/RS485通訊;在硬件實現(xiàn)上,RS485總線端使用的是收發(fā)器MAX481;RS232總線端使用的是收發(fā)器MAX232。為了實現(xiàn)串口通道的切換,在該系統(tǒng)中專門設置了跳線槽,用于手動選擇,通過設定不同的輸入信號值,選擇相應的數據通道。
圖2節(jié)點硬件功能框圖
?。?) 微處理器P87C591片內集成并增強了SJA1000(獨立的CAN控制器)的功能,完全兼容CAN2.0協(xié)議,可完成CAN總線數據的收發(fā)等通信任務;CAN接口電路使用CAN總線收發(fā)器PCA82C250,為了增加系統(tǒng)的可靠性和抗干擾能力,在P87C591和PCA82C250之間增加相應的光電隔離電路。
?。?) 自帶的6路模擬輸入的10位ADC,可設置為8位快速ADC,可以基本滿足本系統(tǒng)對采集的精度要求,完成對電機、電池狀態(tài)的測量任務;對模擬信號的采集,采集電路將各個測試點傳感器電信號進行調理(濾波、放大、電量轉換)后,接入微處理器的ADC接口。為抑制共模干擾,放大器基本采用差動輸入。
?。?) 2個8位分辨率的脈寬調制輸出(PWM)為電機控制器提供控制信號,完成對電機速率的調節(jié)。與51系列兼容的可編程I/O口(準雙向、推挽、高阻和開漏),為數字信號提供通道,負責開關量的讀取與設置。
(5) 16K字節(jié)內部程序存儲器,可以滿足本系統(tǒng)的程序空間。帶字節(jié)方式主和從功能的I2C總線串行I/O口,可方便的和外圍存儲芯片接口,實現(xiàn)數據的存儲功能。
硬件部分除了以上主要部分外,還有電源電路、擴展存儲器、以及看門狗電路。電源電路提供所需隔離電源,用于提高節(jié)點的穩(wěn)定性和安全性;E2PROM通過I2C串行總線存放系統(tǒng)的某些參數;看門狗電路主要是保證系統(tǒng)運行的穩(wěn)定性,在上電、掉電以及警戒情況下復位輸出。
4 系統(tǒng)軟件設計
4.1上位機軟件的設計
虛擬儀器軟件主要分為用戶應用層、虛擬設備驅動程序層及硬件設備驅動層三個層次。用戶應用層和用戶需求緊密相關,它主要完成兩個任務:一、為用戶提供各類測試儀器的虛擬界面,進行人機交互,也就是通常所說的界面設計,通過它來顯示收集實測數據和狀態(tài)信息,提供用戶與系統(tǒng)的交互平臺;二、完成對數據的分類、判斷、處理,串口通信,數據的存取操作等任務。
圖3 上位機程序示意圖
其中串口的設備驅動是由VISA完成的,LabVIEW所提供的VISA是虛擬儀器軟件結構體系(Virtual Instrument Software Architecture)簡稱。VISA是在所有LabVIEW工作平臺上控制VXI、GPIB、RS232以及其他種類儀器的接口程序庫。VISA是由組成VXI plug&play系統(tǒng)聯(lián)盟的35家最大的儀器儀表公司所統(tǒng)一采用的標準。采用了VISA標準,就可以不考慮時間及儀器 I/O選擇項,驅動軟件可以相互兼容使用。
4.2節(jié)點程序設計
圖4 節(jié)點主程序框圖
圖4為主程序框圖。它描述了通用模塊設計的基本流程,根據讀入跳線的狀態(tài)和讀入存儲器中設定的狀態(tài),決定本模塊的作用及本模塊的工作方式。選定了工作方式以后,重新進行各自的初始化,主要包括I/O端口的配置、CAN中斷的設置、驗收濾波器的設置、串口工作方式設置、定時器方式設置、波特率設置以及串口I2C的相關設置。在完成初始化設置后,就可以回到工作狀態(tài),進入各自的主循環(huán)。以下分別介紹各個工作方式的實現(xiàn):
1) 總線轉換的實現(xiàn)
通用串口到CAN接口轉換工作方式的設計,主要是實現(xiàn)CAN總線數據與RS232/485總線數據之間的互連通信以及系統(tǒng)的升級。通過內置CAN控制器控制總線工作狀態(tài),結合軟件設計,實現(xiàn)通用串口與CAN接口通信的目的。Modbus規(guī)定了兩種傳輸模式ASCII或RTU,本系統(tǒng)選擇使用RTU模式。Modbus協(xié)議報文與CAN總線報文相互轉化時,由于標準的CAN協(xié)議有11位ID,而Modbus協(xié)議的地址為一個字節(jié),為便于轉換將其ID分為3位和8位兩部分,前3位用于判斷報文所屬類型,后8位為每個模塊的ID值。例如11位Modbus協(xié)議報文向CAN口轉發(fā)時轉化格式規(guī)定如圖5。CAN總線向串口轉發(fā)時需經過收集、排隊、轉發(fā)三個過程。收集是因為作為上位機操作的返回幀,有時會返回多個節(jié)點的數
圖5 Modbus11位報文轉換為CAN標準幀
據,CAN作為串口總線也必須分時的通知并接收每個指定要求返回值的節(jié)點的數據。排隊是因為如果有上位機的返回請求,就把這種數據先發(fā)送,其它數據暫存,發(fā)送返回后再發(fā)送,否則會認為返回的值是錯誤的。經過排隊的數據依次向上位機發(fā)送。
2) 監(jiān)控電機的實現(xiàn)
此工作方式完成電機的監(jiān)控,首先要初始化包括(串口關閉、I2C設定,CAN的初始化,設置接收濾波器),讀取設定參數后進入主循環(huán)。該節(jié)點是智能節(jié)點,已經具備獨立控制電機運行的能力,上位機只負責向其發(fā)送控制繼電器開斷的開關量與設定電機速度的數字量,節(jié)點收到后會自動調節(jié)電機使其達到設定的工作速率,此方式可以大大減輕總線負擔,提高系統(tǒng)的實時性。作為智能節(jié)點本身負責根據預設控制算法調節(jié)電機外,還肩負著采集電機運行狀態(tài)(電流、電壓、溫度、轉速)、判斷異常狀態(tài)、實時發(fā)送數據等工作。
3) 監(jiān)控電池的實現(xiàn)
電機是由電池提供的電能驅動的,電池的狀態(tài)不僅反映本身的工作狀態(tài)而且可以間接反映電機的運行狀態(tài)。電池的電流、電壓、溫度都有各自的閥值,正常工況下,各個節(jié)點按照規(guī)定的時序向上位機發(fā)送自身狀態(tài);當處于不正常工作狀態(tài)時,模塊判斷出現(xiàn)問題的原因并采取相應的措施,并及時的通過CAN總線向上位機報告。如果是不可修復的通信錯誤,不能繼續(xù)通訊,本節(jié)點自動完成關閉電池、電機的任務,本套驅動器自動退出工作,并使電機處于浮動狀態(tài),保證正常運行的車輛不受阻礙。
4) 模塊設定的實現(xiàn)
根據跳線的設置,程序開啟時會判斷什么時候進入設定工作方式。當用戶需要對某一節(jié)點設置時,上位機運行設置軟件,上位機與模塊通過串口相連接,節(jié)點進入設定工作方式(此方式是針對單一模塊逐一設置的),上位機發(fā)送相應功能碼讀取模塊參數,發(fā)送相應功能碼修改模塊參數??梢栽O置的模塊參數包括本模塊的地址、與模塊相連的設備、串口與設備通信的波特率等,這些參數都是存儲在I2C接口的存儲器中。
5) 其它標準設備的實現(xiàn)
Modbus規(guī)約是MODICOM公司開發(fā)的一個為很多廠商支持的開放規(guī)約,標準的Modbus是使用RS-232C兼容串行接口,本模塊串口通訊就是遵循Modbus協(xié)議,因此在擴展上有更大的靈活性,只要上位機有一定的程序相對應,符合Modbus協(xié)議的工控設備就可以通過本模塊輕松的掛接在CAN總線上。
5 結束語
采用總線技術與虛擬技術相結合的設計思路,使系統(tǒng)功能劃分更清晰,設備功能實現(xiàn)更明確,設備對外連線更簡潔,系統(tǒng)擴展與集成更容易。實現(xiàn)了軟件平臺的通用化、軟件協(xié)議的標準化、硬件結構的統(tǒng)一化,從而保證了系統(tǒng)的可移植性和可擴展性,為監(jiān)控系統(tǒng)的設計提供了一種新思路。系統(tǒng)實際運作情況表明,系統(tǒng)設計思路正確,系統(tǒng)實時性、穩(wěn)定性、靈活性均能達到該車輛的設計要求。
本文作者創(chuàng)新點:把虛擬儀器技術、Modbus協(xié)議與CAN總線組成一個統(tǒng)一的系統(tǒng),并且在統(tǒng)一的硬件平臺上滿足了各種不同功能需求。