孫 偉 , 鄧志剛
(1.施耐德電氣(中國)有限公司上海分公司 上海 201203;2.東華大學 上海 201620;3.上海海事大學 上海 201306)
隨著智能技術的發展,工業用電子產品通常需要有很多的邏輯輸入接口,實現產品和外界之間的通信,對產品進行智能控制。通常交流邏輯接口通常使用電阻分壓的方式實現,電阻上損耗的能量大,一般情況下都會有多個邏輯輸入接口,因此產品整體功耗就非常大;另外在傳統的輸入信號識別方法是通過判斷隔離輸出的高低電平來確定輸入的高低,這就導致再有一個小的脈沖的時候就會引起誤判,導致了產品的抗干擾能力差。基于以上問題在輸入端提出了一種阻容分壓的采樣方式,來降低產品功耗,隔離輸出端通過判斷0脈沖的寬度來判斷輸入的狀態,保證產品的可靠性。
圖1描述了一種交流數字信號輸入接口電路實現的原理。
根據IEC61131-2[1]中的規定,邏輯輸入要滿足下面的波形。即:其實現的脈沖電壓-電流操作如圖2所示。

圖1 I/O口定義Fig.1 I/O definition

圖2 U/I工作域Fig.2 U/I operation regions
上圖用圖形的方式描述了交流輸入電壓和電流關系。在工作區包含3個狀態:ON、Transition和OFF。必須同時超過最小UT和IT,并且先大于最小IH,然后大于最小UH,才能離開OFF狀態進入到ON狀態:所有的輸入U-I曲線應該位于ON區域內。電壓小于零的區域僅僅對DC有效。
在IEC61131-2中同時也規定了各個區域的臨界值。本文講述的是交流數字信號輸入接口的設計與分析,滿足的電壓要求為100~240 V,因為要同時滿足這兩種等級,所以門限值的選擇如表1所示。

表1 110~220 VAC I/O的工作范圍定義Tab.1 110~220 VAC operating ranges for digital inputs
交流輸入范圍相對來說非常的寬,這就意味著開和關的電壓水平之間的誤差比固定輸入電壓的要窄。考慮到電源頻率的誤差范圍通常為47~63 Hz,因此在79VAC@47 Hz時,輸入必須為‘ON’,在 40VAC,63 Hz時必須為‘OFF’。 同時,根據標準中的類型 1規定,在‘ON’時輸入電流須大于等于2 mA,在‘OFF’時的輸入電流小于15 mA。通常情況下在120 VAC輸入的時候電流應該為2.6 mA左右,在240 VAC時,輸入電流為1.3 mA左右。
關鍵問題是如何減少交流數字信號輸入對能量的消耗。一個阻性輸入在120V/2.6 mA時產生312 mW的功率。同樣電路負載下,把電壓提高一倍到240 V,那么消耗的功率為增大4倍,將達到到1.248 W。在最大的線電壓輸入時消耗的功率達到了1.5 W。這對于有多個輸入邏輯的產品,如果不在功率消耗或者工作溫度范圍上妥協,阻性輸入結構是不能用在100~240VAC的供電信號上的。因此,本文中介紹的AC輸入結構使用阻容分壓代替電阻分壓方法。
其電路如圖3所示。

圖3 I/O電路圖實現Fig.3 Application circuit of I/O
不使用傳統的電阻分壓方法,此電路初級阻抗分壓使用電容和電阻分壓的方法實現,根據電阻和電容的阻抗設定電壓和電流閾值。考慮到誤差,工作頻率在47~63 Hz之間,讓電容的阻抗大約為阻的阻抗的10倍。這就意味著90%的輸入降壓是在電容上,大大地降低了邏輯輸入的功耗。
輸入斷開的時候,輸入分壓電容上可能會殘留有一個高電壓。如果不小心接觸到輸入端子,這個電壓可能會導致潛在的危害。因此用2.6Meg的電阻R1、R2并聯在分壓電容的兩端,在輸入斷開后快速的放掉電容的殘留電荷。電容在一秒鐘內放電,而且這個阻值對測量電路沒有影響,因為它的阻抗比電容容抗大兩個數量級。
一個小電容C2與4.99 kΩ分壓電阻R3并聯來濾除高頻噪聲。考慮這個電容的積累誤差,因此確定其值為100 nF。由于跨接在這個電容兩端的最大的電壓是光耦二極管正向相電壓加上齊納二極管的門限和正向導通電壓,因此25 V電壓等級的電容完全夠用了。
電壓閾值是由阻容分壓比和齊納二極管的閾值電壓決定的。一旦流過電阻的電壓超過了齊納二極管Z2的穩壓電壓加上光耦U1和Z1的正向導通電壓,那么就會有電流從光耦中流過。當流過光耦二極管的電流足夠大,使得光耦輸出的三極管導通的時候,那么就能看到邏輯0電平了。因為這是交流輸入的交流光耦,邏輯0電平每半個周期出現一次。此處選擇的齊納二極管為6.8 V穩壓。
僅僅考慮RC分壓電路[2],那么上面的電路圖可以簡化圖4所示的電路。

圖4 電路簡化圖Fig.4 Simplified circuit
其中 uS(t)=Vm×sinωt,有很多方法可以求出電阻兩端的電壓[3],此處利用解微分方程的方法[4],公式如下:

即:

解這個微分方程可得:

其中第二項為暫態量,A為任意常數,把U|t=0時的電壓值代入就可以求出A的值,因為此處考慮電路的穩定狀態,所以忽略第二項。因此進一步化簡后可得:

由此可以推出電路穩定狀態下的電阻上的輸出電壓函數為:

通過此公式,然后在考慮兩個齊納二極管的和光耦的工作情況就能分析電阻上的分壓和流過光耦的電流,由此就能推導出光耦的輸出波形。
用 pSpice[5]仿真 79 VAC@47 Hz和 40 VAC@63 Hz的波形如圖5所示。

圖5 仿真圖( 40VAC, 79VAC)Fig.5 Simulation( 40VAC, 79VAC)
根據MCU的特性,當光耦脈沖輸出低于1.75 V時為邏輯0,邏輯1則為高于3.25 V,因此根據仿真結果就可以得出在79VAC@47Hz時,邏輯0的寬度為5.94ms,在40VAC@63Hz時的邏輯0為2.28 ms。考慮一個10%的誤差,則選取連接和斷開的值為6.5 ms和2.5 ms。
此輸入接口是使用交流光耦的實現的,因此0脈沖每半個周期就會出現一次。由0脈沖的寬度決定輸入的狀態:如果這個脈沖足夠寬,那么輸入為ON狀態。如果脈沖不夠寬,則為OFF狀態。所以當0脈沖出現時,必須檢查其寬度,然后確定其0脈沖的寬度是否足夠長。文中通過兩級測量實現對AC數字輸入狀態的判斷。
第1級是一個100 μs的中斷,讀取的輸入引腳狀態并且對兩個計數器進行累加,其中一個邏輯1計數,另一個為邏輯0計數。這個中斷只做計數,以保證對CPU的開銷最小。
第2級是一個狀態機[5],每毫秒檢測一次狀態。該狀態機定義有3個狀態:OFF,PRE和ON。
輸入狀態由狀態機[6]的狀態確定,在ON態時為開,OFF態時為關,PRE定義為保持原來的輸入狀態。當設備復位的時候,輸入設為初始狀態OFF。狀態機讀取輸入計數器并且把它復位為0,然后使用讀取的值去跟蹤輸入處在邏輯0或者1的時間長度,并且檢查在最后的1 ms中是否出現上升沿,即:從邏輯0變為邏輯1。狀態機如圖6所示。

圖6 狀態機Fig.6 State machine

表2 事件列表Tab.2 Events list
基于時間的輸入,狀態轉換出現在邏輯1和邏輯0并有一個上升沿。在每一個狀態轉換后,狀態機把邏輯1和邏輯題0的定時器復位為零。如果邏輯1的時間超過7.5 ms,并且上升沿是在最后1 ms出現;和輸入邏輯為0的時間小于3.7 ms,狀態機往下轉換,也就是從ON轉到PRE或者從PRE到OFF。如果狀態機處于OFF狀態,邏輯1和邏輯0定時器會被復位為0,也不會發生狀態轉換。如果在最后1 ms出現上升沿并且輸入邏輯0保持了2.5 ms或者更久,那么狀態機向上轉換,也就是:從OFF轉到PRE,在PRE狀態下,邏輯0的保持時間大于6.5 ms,則從PRE跳轉轉到ON。如果狀態機處于ON狀態,邏輯1和0定時器被復位變為0,但是此時不會發生狀態轉變。如果邏輯0超過12 ms,狀態機會發出內部故障的標識,因為半個脈沖的最大值為10.68 ms,考慮誤差閾值選為12 ms。對于邏輯0持續時間超過12 ms的唯一解釋就是輸入電路出現了故障。PRE狀態定義為輸入有個小的干擾脈沖,而不至于導致狀態變化的一個保持狀態。
此設計的優點主要是把傳統的電阻分壓實現采樣轉換成了阻容分壓的方式實現,通過判斷邏輯0的寬度來決定確定輸入的狀態,有效提高了干擾能力。這樣產品在使用中大大減少了功率,提高了抗干擾能力,達到了設計要求,多年的使用中也證明了其低功耗和可靠性的特點。
[1]IEC 61131-2 Programmable controllers-Part2:Equipment requirements and tests[C]//Second edition,2003:31-35.
[2](美)尼爾森(Nilsson,J.W.)等著,張民 改編 電路分析基礎[M].北京:電子工業出版社,2007.
[3]鄭君里,應啟珩,楊為理.信號與系統[M].2版.北京,高等教育出版社, 2000(2001重印).
[4]同濟大學應用數學系.高等數學[M].5版(下冊).北京:高度教育出版社,2002.
[5]李世瓊,宗偉.基于PSpice的電路計算機輔助分析[M].北京:中國電力出版社,2007.
[6]楊剛.基于狀態機的嵌入式系統開發[M].北京:清華大學出版社,2010.