張麗
(陜西職業技術學院 陜西 西安 710100)
隨著社會經濟的發展,機車設備需要更好的﹑能夠識別早期故障的新技術為機車檢測提供服務,以確保人身和設備的安全;維修部門也要求預知和跟蹤機車設備各組成部分的故障發展狀態,以便科學的安排檢修計劃,杜絕突發事故。為了解決這些問題,也需要對機車設備進行實時檢測與故障診斷研究的支持。
內燃機車在線檢測系統要對多個信號進行采集。對多路信號采集通常有兩種方式,一種是每個通道使用一個獨立的采樣單元,每個通道可獨立地設定采樣頻率、采樣啟動和停止時間、采樣數據的保存方式以及采樣單元和數據處理計算機之間的數據傳輸方式。這種方式一般用于較大的數據系統,每個通道的采樣數據量較大,采樣頻率較高;另一種方式是多個通道采用共享A/D轉換器的方式,該方式下的各個通道共用一個多路轉換開關,按某一時間間隔,依次將各個通道的信號輸入到采樣保持電路,再經A/D轉換器將模擬信號轉換成計算機能夠處理的數字信號。
在內燃機車在線監測系統中,機車數據采集是其基礎環節。其基本任務是將機車設備中可以體現故障狀態的物理量采集出來,并傳給上位機進行存儲、運算和處理。系統中包括機車設備狀態量的選擇,傳感器輸出信號的傳輸,多路模擬信號A/D轉換采集電路設計,多路數字信號采集電路設計。
此次設計的機車狀態監測系統是整個“機車故障診斷系統”中的一個子系統,整個“機車故障診斷系統”包括3個子系統:機車狀態監測系統、無線數據通信系統、數據處理與故障診斷系統。無線數據通信系統的作用是將本系統采集的設備運行數據用無線的方式傳輸到地面的調度室與檢修部門中的數據處理與故障診斷系統中;故障診斷系統的作用是將收到的數據進行處理,分析機車的故障情況并)1=給出合理的施修方案,還對長期積累的數據進行綜合分析以給出機車設備最合理的檢修方案。
本系統的基本功能是在不影響機車原有設備正常工作的條件下選擇合適的監測點與監測量,在線檢測機車設備的狀態信息并進行故障信息的錄波,以實現那些只在運行過程中可以出現的故障的記錄,并實現這些信息與無線數據通信直接的通信。
硬件電路的總體流程圖如圖1所示。

圖1 系統總體結構圖Fig.1 Whole system structure diagram
對64路I/O信號用8片74LS373分成8組然后分時地傳送給CPU;9路模擬量要求相互之間采用光耦隔離后傳送到CPU的A/D通道。
本次設計針對內部電路的設計,在選擇系統下位機CPU芯片時,考慮到C8051系列容易調試、功能強大、使用簡便,而在8051系列中C8051F021的使用最為簡潔,運行速度很快,功能也極為強大,所以被選做本次設計的CPU芯片。對9路模擬量電路進行調理,首先對信號進行分壓處理(要求分壓處理后保持在≤2.5 V),為了提高輸入阻抗以及保證不影響分壓采用跟隨器電路,然后對信號進行濾波放大以及V/F轉換,產生頻率信號,使用TLP521對其進行光耦隔離,再把共地的頻率信號轉換回電壓信號,然后再傳送到8051f021的A/D通道。而在64路I/O信號的處理過程中,64路I/O信號分別接入到8片74LS373中,即分為8組,然后將得到的8路I/O信號使用74LS138通過CPU對其進行端口選通,分時的傳送到CPU中。
上述方案中,對9路模擬量的調理過程中,把頻率信號直接轉換為電壓信號傳送到A/D通道,其操作過程非常簡單方便,在以后的調試中也較為容易,64路的I/O信號處理中,把64路I/O信號接入到8片74LS373中,利用74LS138進行端口選通,整個方案保證了系統功能的完整,設計合理,調試方便,運行也十分的穩定,所以在系統硬件的設計中采用了上述方案。
下位機采用8051F021單片機,開關量采用TLP521光耦將信號與單片機隔離。用8片74LS373將64路I/O信號分成8組,利用74LS138對74LS373進行端口選通,分時地將64路I/O信號傳送給CPU。
本次設計針對內部電路的設計,在選擇系統下位機CPU芯片時,考慮到C8051系列容易調試、功能強大、使用簡便,而在8051系列中C8051F021的使用最為簡潔,運行速度很快,功能也極為強大,所以被選做本次設計的CPU芯片。對9路模擬量電路進行調理,首先對信號進行分壓處理(要求A/D轉換前保持在≤2.5 V),為了提高輸入阻抗以及保證不影響分壓采用跟隨器電路,然后對信號進行濾波放大以及V/F轉換,產生頻率信號,使用TLP521對其進行光耦隔離,再把共地的頻率信號轉換回電壓信號,然后再傳送到8051f021的A/D通道。而在64路I/O信號的處理過程中,64路I/O信號分別接入到8片74LS373中,即分為8組,然后將得到的8路I/O信號使用74LS138通過CPU對其進行端口選通,分時的傳送到CPU中。
C8051F021器件是完全集成的混合信號系統級MCU芯片,具有32個數字I/O引腳。
具有片內VDD監視器、看門狗定時器和時鐘振蕩器的C8051F021是真正能獨立工作的片上系統。所有模擬和數字外設均可由用戶固定使能/禁止和配置。FLASH存儲器還具有在系統重新編程能力,可用于非易失行數據存儲,并允許現場更新8051固件。
片內JTAG調試電路允許使用安裝在最終應用系統上的產品MCU進行非侵入式(不占用片內資源)、全速、在系統調試。該調試系統支持觀察和修改存儲器和寄存器,支持斷點、觀察點、單步及運行和停機命令。在使用JTAG調試時,所有的模擬和數字外設都可全功能運行。
CIP-51有標準的8051程序和數據地址配置。它包括256字節的數據RAM,其中高128字節為雙映射。用間接尋址訪問通用RAM的高128字節,用直接尋址訪問128字節的SFR地址空間。數據RAM的低128字節可用直接或間接尋址方式訪問。前32個字節為4個通用寄存器區,接下來的16字節既可以按字節尋址也可以按位尋址。C8051F021中的CIP-51還另有位于外部數據存儲器地址空間的4K字節的RAM塊和一個可用于訪問外部數據存儲器的外部存儲器接口(EMIF)。這個片內的4K字節RAM塊可以在整個64K外部數據存儲器地址空間中被尋址(以4K為邊界重疊)。外部數據存儲器地址空間可以只映射到片內存儲器、只映射到片外存儲器、或兩者的組合(4K以下的地址指向片內,4K以上的地址指向EMIF)。EMIF可以被配置為地址/數據線復用方式或非復用方式。MCU的程序存儲器包含64K字節的FLASH。該存儲器以512字節為一個扇區,可以在系統編程,且不需特別的外部編程電壓。從0xFE00到0xFFFF的512字節被保留,由工廠使用。還有一個位于地址0x10000-0x1007F的128字節的扇區,該扇區可作為一個小的軟件常數表使用。
系統選用C8051F021為CPU,其芯片及外部電路圖如圖2所示,由圖可以看出,CPU外接電路中有一個晶振,一個復位RST,還有一組輔助指示燈,在3個輔助指示燈中,有一個電源指示燈,一個系統運行指示燈,一個通信指示燈。其外部電路圖如圖2所示。

圖2 CPU及外部電路圖Fig.2 CPU and the external circuit diagram
本次軟件部分的設計側重于下位機的軟件設計,下位機軟件采用C語言,利用keilC51編譯環境對64路開關量和9路模擬量進行分時采集,然后打包以串行的方式發送給上位機。
主程序調用config函數對CPU進行設置,主要設置看門狗、A/D轉換、串口初始化、中斷初始化等,然后調用初始化函數,主要設置程序運行狀態標志變量、通訊標志變量、各模擬量閾值等,之后開始對64路開關量和9路模擬量進行分時采集。將64路數字量分成8組,用8個74LS373采集,然后用74LS138通過CPU對8個74LS373進行端口選通,分時地將64路I/O信號傳送給CPU;在整個系統中,利用9路隔離型模擬量信號采集電路,按其信號性質的不同,共分為5大類,分別是2路1.5 V直流電壓電路,1路900 V交流電壓電路,1路6 V(1 WHz)交流電壓信號,2路10 mA電流電路,3路110 V直流電壓電路。對9路模擬量的調理過程中,把頻率信號直接轉換為電壓信號傳送到A/D通道,然后發送給CPU。在采集結束后,還會有一個延時程序。經過多次數據采集無誤后,將數據打包發送給上位機。


本次軟件設計的采集程序包括2部分:64路數字量的采集和9路模擬量的采集。對于數字量的采集,將64路數字量分成8組,用8個74LS373進行采集,然后用74LS138通過CPU對8個74LS373進行端口選通,分時地將64路I/O信號傳送給CPU。在這里,將74LS138的3個輸入端由A,B,C表示,設為000到111八個狀態,分別對應8個74LS373,由74LS138通過CPU對8個74LS373進行端口選通,將采集到的值發送給CPU。
64路數字量采集程序如下:

9路模擬量要求相互隔離,首先對電壓信號分壓處理,為了提高輸入阻抗,采用跟隨器電路;然后對信號進行濾波放大處理,采用V/F得到頻率信號并用TLP521光耦將其隔離;隔離后再將共地的頻率信號轉換為電壓信號,傳送到CPU的A/D通道。在整個系統中,利用9路隔離型模擬量信號采集電路,按其信號性質的不同,共分為5大類,分別是2路1.5 V直流電壓電路,1路900 V交流電壓電路,1路6 V(1 WHz)交流電壓信號,2路10 mA電流電路,3路110 V直流電壓電路。對9路模擬量的調理過程中,把頻率信號直接轉換為電壓信號傳送到A/D通道,然后發送給CPU。
模擬量一共需要采集9種,分別是油溫、水溫、輔壓、次發電壓、L電壓、F電壓、燃油溫度、滑油壓力和轉速。這9路模擬量的采集程序大同小異,就拿油溫采集程序加以說明,對于油溫的采集,采用了多次采集取平均值的方法。9路模擬量采集程序如下:

本段程序是9路模擬量采集中的油溫采集程序,采取了采集32次取平均值的方法。首先進行config設置,然后對油溫參數進行隔離、分時采集,經過數據處理后,進入一個判斷程序。只有在采集次數達到32次時,程序結束;當采集次數不足32次時,循環采集直到采夠32次為止。
該測試系統采用具有高速數據采集卡的便攜式測試計算機為硬件平臺,軟件設計采用模塊化設計思想,提高了系統的可靠性和維護性。該測試系統已用于某型內燃機車進行測試,實際應用表明該測試系統具有測試準確、穩定可靠、人機界面友好等特點,達到了設計要求。
[1]郭天祥.51單片機C語言教程[M].北京:電子工業出版社,2005.
[2]曾鵬,王中鋒.分布式無線傳感器網絡通信協議研究[J].通信學報,2007,25(10):102-11.ZENG Peng,WANG Zhong-feng.Research of distributed communication protocol for wireless sensor networks[J].Journal Of Communication.2008,29(2):457-459.
[3]鄔正義,范瑜,徐惠鋼,等.現代無線通信技術[M].北京:高等教育出版社,2006.
[4]王建新,楊世鳳,隋美麗,等.Labwindows/CVI測試技術及工程應用[M].北京:化學工業出版社,2006.
[5]周承仙,李仰軍,武錦輝,等.基于Labwindows/CVI的多路高速數據采集系統設計[J].電子測量技術,2007,30(12):66-69.ZHOU Cheng-xian,LI Yang-jun,WU Jin-hui,et al.Design for multi-channel high speed data acquisition system based on Labwindows/CVI[J].Electronic Measurement Technology,2007,30(12):66-69.
[6]關萍萍,翟正軍,姜紅梅,等.基于LabWindows/CVI測控系統通用報表的設計與實現[J].計算機工程與設計,2010,31(1):203-205.GUAN Ping-ping,ZHAI Zheng-jun,JIANG Hong-mei,et al.Design and implementation of universal control system report based on Labwindows/CVI[J].Computer Engineering and Design,2010,131(1):203-205.