單片機控制電磁閥電路設計
在工程機械和其他施工機械的液壓控制系統中 , 廣泛應用着電磁閥,它是一種將電磁能轉換成機槭能的電磁元件。以往電磁閥的驅動電路普遍由三極管或功率MOSFET等分立元件構成,並需要自行設計故障自診斷 電 路, 可靠性差。 成本高。采用集成驅動芯片L9352B1來驅動電磁閥的方法。
電磁閥是一種將電磁能轉換成機械能的電磁元件,被廣泛應用到液壓控制系統中。如何很好地控制電磁閥是一個很重要的課題。當前電磁閥的驅動電路設計主要采用三極管或功率MOSFET。為了保證電路的可靠性,外圍電路通常需要設計隔離和輔助保護電路。此方法的最大弊端是:如果需要進行電磁閥故障檢測,則需要設計專門的自診斷回路,這無疑增加了成本,而MOSFET易壞的特性容易造成電路可靠性降低。基於此,本文采用ST公司基於ARM內核的STM32F103系列控制專用集成驅動芯片L9352B[1]來控制和監測電磁閥,其優點是:具有驅動與監測功能,成本低,可靠性高。
常見的電磁閥可以分為開關型和比例型,開關型與比例型在控制方式上有所不同。
目前常見的電磁閥控制方法有如下幾種:
(1)由二極管、三極管集成電路或達林頓三極管控制的電路,其典型的電路有:
為代表的電路全部由分立元件如:施密特觸發器、電阻、電容、三極管、繼電器等構成的模擬電路。其優點是電路簡單,但由於其無法像數字電路那樣進行准確控制,只能控制而無法檢測電磁閥故障,這種電路當前使用較少。
為代表的電路,其泵和馬達的電磁閥都是采用數字信號處理器(DSP)作為主控制器再加達林頓三極管進行控制。目前采用DSP、單片機或CPLD/FPGA等作為主控制器,通過PWM或數字輸入輸出接口控制電磁閥的方法也很常見。這種電路的優點是:能對大功率的電磁閥准確控制;缺點是:如果需要檢測電磁閥的故障需要額外增加電路而且需要占用主控制器的AD資源。
(2)由MOSFET控制的典型電路可見參考文獻[4]為代表的電路,控制方法與(1)類似,區別在於MOSFET管是電壓器件而三極管是電流器件,在控制方式上有區別。
(3)在工程機械領域,普遍采用專用控制器,專用控制器可以直接驅動電磁閥,詳見參考文獻[5]。這種方法雖然性能可靠、控制簡單,但價格昂貴。
可見上述3種方法都不具備成本合理、電路簡單、性能可靠並且具有檢測功能的要求。本文介紹的電磁閥控制電路框圖如圖1所示,以ARM為核心,通過磁隔離芯片實現主控芯片與專用驅動芯片L9352B 的隔離, ARM輸出的PWM或者數字輸出信號經過隔離后控制L9352B,從而控制電磁閥;電磁閥的狀態通過L9352B輸出再經隔離后輸入ARM,從而系統能實時了解電磁閥的狀態。
電磁閥控制電路設計
開關型和比例型電磁閥都可采用集成驅動芯片L9352B控制。
集成驅動芯片L9352B的特性
L9352B是ST公司專門為感性負載(如電磁鐵、電磁閥)控制而設計的芯片,它將分立元件的驅動和監測功能集成在一個芯片中,可以控制2路比例電磁鐵和2路開關電磁鐵,允許對感性負載進行調節。其主要特征是:輸出斜坡控制,短路保護,過溫關閉功能可選,開路負載監測,掉電監測,外部時鍾可控,再循環控制,調節器漂移監測,調節器誤差控制,調節器校正電流5 mA,狀態監測,靜電監測。每個通道各由一狀態輸出端口來監測,各通道的推挽狀態輸出具有故障診斷功能。
電磁閥控制電路設計
主控ARM芯片STM32F103ZET6是意法半導體公司生產的ARM 32 bit CortexTM-M3內核帶512 KB閃存的增強型微控制器,其工作頻率最高可達72 MHz,單周期乘法和硬件除法,具有USB、CAN、11個定時器、3個DAC和13個通信接口,非常合適作控制應用。電磁閥控制電路原理圖如圖2所示。
圖2中, STM32F103在控制L9352B時不能直接相連,因為STM32F103為3.3 V供電, L9352B為5 V供電,兩者間需進行電平轉換。四通道數字隔離器ADUM1402工作電壓可兼容3.3 V和5 V系統,不僅能實現電平轉換,而且還可將輸入和輸出隔離,以避免驅動電路對主控芯片產生影響。使能端VE1和VE2都接高電平,通道A和B的數據從ARM傳給L9352B用於ARM發出控制信號,通道C和D的數據從L9352B傳給ARM用於L9352B讀取狀態。
每片L9352B通道1和2驅動開關電磁閥,通道3和4驅動比例電磁閥。所有輸入引腳高電平有效,內部由帶滯回特性的施密特觸發器構成。其供電電壓VS通常接5 V或12 V,VCC和VDD都接5 V電源。電磁閥接到功率輸出通道Q端和PGND端,狀態輸出引腳ST狀態電壓范圍為-0.3 V~6 V。IN1和IN2端輸入開關量控制信號能控制2路開關電磁閥工作,Q1和Q2最大驅動能力為2.5 A;IN3和IN4端輸入PWM控制信號時能方便控制2路比例電磁閥工作,Q3和Q4最大驅動能力為5 A。EN為該芯片的使能端,ARM輸出的V_EN信號經隔離后輸入到EN端,可控制L9352B是否工作。TEST引腳為漂移檢測使能輸入。外部時鍾U15經過12 bit計數器74HC4040分頻后輸入到L9352B的CLK時鍾輸入引腳,J12跳線組可以選擇計數器分頻系數。ST1~ST4引腳保存電磁閥的故障狀態,經過隔離后輸入給ARM以處理故障。
下面是一個用stc89c52單片機對電磁閥進行一些簡單控制的程序
#include
sbit a=P1^0;//下開關
sbit b=P1^1;//上升
sbit c=P1^2;//下降
sbit d=P1^3;//上線位
sbit e=P1^4;//下限位
void main()
{
a=1;// 上開關 常開
b=1;// 上升 常開
c=1;// 下降 常開
d=1;// 上限位開關 常開
e=1;// 下限位開關 常開
while(1) //循環
{
if(a==0) // 判定上開關閉合 執行語句
{
a=1; //斷開開關信號 依舊執行 下降 直到碰到下限位開關
c=0; // 2 啟動下降
}
if(e==0) // 4碰到下限位開關啟動
{
e=1; // 下限位信號保持 依舊執行 上升
c=1; // 2斷開下降電磁閥
b=0; // 1一直啟動上升電磁閥 直到碰到上限位開關
} //
if(d==0) // 3碰到上限位開關
{
P1=0xff; // 斷開所有
}
}
}