DPF系列電子膨脹閥由主閥和定子線圈組成,電子膨脹閥的驅動部件是一個脈沖步進電機。電子膨脹閥的執行機構有多種形式,但專門用于測試膨脹閥性能的試驗機卻并不多見。因此,開發出一種合適的試驗機,以測試DPF系列電子膨脹閥的一些重要性能及參數就變得很有意義,如通過閥的循環開閉來測試閥的壽命、通過閥的開度來進行流量系數、流量與閥的開度實驗等。
1系統硬件設計
DPF電子膨脹閥試驗機主要由鍵盤操作來控制。系統主要功能鍵分為兩大類:設置顯示鍵和控制鍵。設置顯示鍵主要設置及顯示試驗機參數,控制鍵主要用來控制閥的各種性能測試試驗。
整個系統采用模塊化設計。系統硬件電路主要由單片機、鍵盤、顯示、A/D采樣電路、步進電機驅動電路等部分組成。其硬件電路框圖如圖1所示。
由于程序比較大、中間變量比較多,我們采用了ATMEL公司的AT89C52的單片機。它具有8KB的flash程序存儲空間、256字節的RAM。因試驗機對常用的參數要進行保護,所以,單片機外接了一個EEPROM。為了減少數字電路對模擬驅動電路和采樣電路的影響,在它們中間加光耦進行隔離。
為了使采樣電壓的精度達到0.1%,翻蓋試驗機本系統中采用了內部帶有采樣保持器、十二位串行輸出的A/D采集芯片MAX186。為了準確控制數據的轉換及傳送,利用軟件和通過一個I/O口發控制脈沖。在本系統中,MAX186 和單片機的接口有四根線:轉換信號線(ADCS)、時鐘線(CLOCK)、數據輸入線(MISO)、數據輸出線(MOSI)。軟件利用單片機的P1.6和 P1.7口模擬ADCS和CLOCK時序,通過P1.4口輸出相應的控制字到MAX186,從P1.5得到12bit的電壓采樣數據,并存入相應的數據存儲區。由于步進電機的驅動電壓一般為12V,而MAX186的最大測量值為4.096V,因此,輸入的電壓還要經過降壓處理;為了提高帶負載能力,中間還加入了電壓跟隨器。
試驗機工作原理大致如下:單片機通過154控制燈位、通過8255的B口輸出當前的段碼值來定時刷新顯示,通過8255C口定時掃描鍵盤。當有鍵按下時,如“位置1”鍵按下,CPU通過掃描8255C口狀態且延時去鍵抖動后,確認是“位置1”鍵按下,于是,系統就進入“控制”模塊中的“位置1”子程序。系統根據設置的膨脹閥轉到“位置1”所需的脈沖數和當前的脈沖數循環調用單步轉動子程序。在單步轉動子程序中,軟件把電機控制字節寫到8255,并通過 8255的A口,經過光耦的隔離,輸入步進電機驅動電路,通過控制功率開關三極管的開斷,進而控制步進電機的正反轉動,實現膨脹閥的開閉,同時系統更改當前的“實時脈沖”值,并通過LED顯示出來。這樣,通過全程脈沖數和“實時脈沖”值就可知道當前的閥的開度。在電機轉動的過程中,通過采樣電路把采集到的驅動相電壓值送入單片機,并通過LED實時顯示。
2軟件設計
在本程序設計中,采用置事件標志和分時控制的辦法對事件進行處理。如在T0中斷子程序中,每隔lms進行LED動態掃描,每隔60ms對鍵盤進行掃描。當通過EX0外部中斷子程序得到某“控制”鍵鍵值時,在主程序中則置一相應的標志位。當進入下一T0中斷時,T0中斷子程序中除了對LED動態掃描事件進行處理外,還對步進電機驅動脈沖寬度進行控制;若此時的時間片為60ms,則還對鍵盤掃描事件進行處理。此外,為了提高事件的實時響應程度,我們把中斷子程序中耗時長的部分交給主程序來做(主程序把處理的結果放到相應的緩沖區)。當中斷子程序處理到相應的事件時,只需從緩沖區把數據讀入,并把數據放到相應的數據區即可。如在本系統中,經常要通過鍵盤對LED顯示的參數數值進行更改,則系統需要對參數所對應的以二進制形式存儲的內部數據進行相應的更改操作,并把它轉換為相應的七段碼和顯示在 LED上,此時可把數據轉換這一耗時長的程序交給主程序來做,主程序把得到的相應的七段碼放到一個緩沖區中,當進入T0中斷子程序對LED內容刷新時,只需把緩沖區中的數據寫入到8255的相應口。運用這種處理方法,使系統可以實時有序地處理各種事件。
整個軟件采用結構化的程序設計方法設計。程序分為三大模塊:主程序模塊、EX0中斷服務子程序模塊、T0中斷服務子程序模塊。
主程序模塊按照功能又分為三大子程序:初始化子程序、設置顯示子程序、控制子程序。由于試驗機的操作都由鍵盤中斷來控制,所以,在主程序中通過查詢鍵值來進入相應的子程序。其流程圖如圖2所示。在初始化子程序中,主要對AT89C52的系統資源,如定時器、寄存器等的初始化,把EEPROM存儲的參數寫入到相應的RAM、8255、參數寄存器等。
在設置顯示子程序中,主要根據讀入的鍵值顯示設置的參數或進行更改并保存到相應的EEPROM和RAM。
在控制子程序中,根據讀入的鍵值和設置的參數驅動電機作相應的動作,循環轉動或復位。同時采集相應的相電壓,并把電壓值存儲到相應的緩存區。