薛磊,張珺,鄔明剛
(上海電氣自動化設(shè)計研究所有限公司,上海 200023)
IO板及其軟件控制實現(xiàn)
薛磊,張珺,鄔明剛
(上海電氣自動化設(shè)計研究所有限公司,上海 200023)
為使IO板功能能滿足日益增加的AFC終端系統(tǒng)的需求。采用AVR單片機設(shè)計模擬電路,在Atmel studio環(huán)境下開發(fā)軟件。經(jīng)過仿真調(diào)試,IO板性能達到預(yù)期。新概念的IO板性能的實現(xiàn)大大提高了AFC終端設(shè)備的工作效率,新型IO板將成為AFC發(fā)展道路中不可取代的元素。
自動售檢票系統(tǒng);IO輸入/輸出;PWM調(diào)制;多線程;單片機
single chip
軌道交通整個機電系統(tǒng)中,自動售檢票系統(tǒng)(Automatic Fare Collection簡稱AFC系統(tǒng))作為機械智能化設(shè)計的典型代表,不僅取代了售票員、檢票員、會計、統(tǒng)計、審計等人工操作員,而且通過準確的數(shù)據(jù)收集整理實現(xiàn)了票務(wù)和現(xiàn)金管理的高度自動化[1]。隨著城市軌道交通的日新月異的發(fā)展,地鐵AFC系統(tǒng)的要求和需求也不斷的改變,AFC系統(tǒng)終端設(shè)備對于各個模塊工作時各種輸入與輸出信號處理的速度和準確性要求也越來越高。因此,對于專門進行批量高效信號處理的專用電路板——信號輸入輸出控制板(簡稱IO板)的性能要求也越來越高。
為解決IO信號處理的高效性和準確性的問題,本文將基于AVR的8系列單片機芯片為主控單元的硬件平臺,提出一種新型的IO板設(shè)計方案,并采用多線程的嵌入式軟件技術(shù)和準確的信號處理邏輯算法來加以實現(xiàn)。
對于IO板的AVR芯片進行編程后,程序通過片選信號選通IO板電路某片區(qū)域,這個時候,IO板的芯片可以對這一路的信號進行采集或者輸出控制操作。
IO板輸入端、輸出端均具有多路信號,操作時需要多次片選,程序要獲得實時的輸入信號,需要利用AVR芯片的定時器設(shè)置時間片,使IO板每隔一個時間片就獲取一次實時的IO輸入信號,這些IO輸入信息會存入相應(yīng)的地址以便上位機調(diào)用。
IO輸出由串口控制,串口接收到上位機相應(yīng)的IO輸出命令后,IO板會根據(jù)命令進行片選讓目標管腳進行輸出操作[2]。
AFC系統(tǒng)的終端設(shè)備中,涉及到許多需要通過IO板來進行控制的電磁鐵,如自動售票機的硬幣投幣口、自動檢票機的回收口等等,由于電磁鐵的自身特性,無法長期持續(xù)地接收高電平信號,否則將因為溫度過高、負荷過大而損壞,因此,本文設(shè)計的IO板采用PWM調(diào)制的技術(shù)手段來解決向電磁鐵輸出IO信號的問題。當(dāng)使用PWM脈沖寬度調(diào)制時,IO板對電磁鐵輸出一個占空比可控的PWM方波,電磁鐵工作時則不必持續(xù)地接收高電平信號,這樣電磁鐵的負擔(dān)大大降低,電磁鐵的溫度也能夠控制在一個相對較低的范圍,壽命也因此加長[3]。
IO板利用AVR8系列單片機芯片的8位定時器/計數(shù)器T/C0輸出PWM波。T/C0是一個通用的、單通道8位定時器/計數(shù)器模塊。
相位修正PWM模式:
相位修正PWM模式(WGM01:0=1)基于雙斜波操作,為用戶提供一個獲得高精度相位修正PWM波形的方法。計數(shù)器重復(fù)地從BOTTOM計數(shù)到MAX計數(shù)器時若發(fā)生TCNT0與OCR0的匹配,OC0將清零為低電平;而在計數(shù)器往BOTTOM計數(shù)時若發(fā)生了TCNT0與OCR0的匹配,OC0將置位為高電平。工作于反向輸出比較時,則正好相反。與單斜波操作相比,雙斜波操作可獲得的最大頻率要小。但由于其對稱的特性,十分適合于電機控制。
相位PWM模式的PWM精度固定為8比特。計數(shù)器不斷地累加到MAX,然后開始減計數(shù)。在一個定時器時鐘周期里TC-NT0的值等于MAX。時序如圖1所示。圖1中TCNTn的數(shù)值用斜線圖表示,以說明雙斜線操作。本圖同時說明了普通PWM的輸出和反向PWM輸出。TCNTn斜線上的小橫條表示OCR0和TCNT0的匹配。
圖1 相位修正PWM模式時的計數(shù)器時序圖
當(dāng)計數(shù)器達到BOTTOM時,T/C溢出標志位TOV0置位。此標志位可用來產(chǎn)生中斷。工作于相位修正PWM模式時,比較單元可以在OC0引腳產(chǎn)生PWM波形;將COM01:0設(shè)置為2,產(chǎn)生普通相位的PWM;設(shè)置COM01:0為3,產(chǎn)生反向PWM信號。實際的OC0數(shù)值只有在端口設(shè)置為輸出時才可以在引腳上出現(xiàn)。OCR0和TCNT0比較匹配發(fā)生時,OC0寄存器將產(chǎn)生相應(yīng)的清零或置位得:
式中變量N標識預(yù)分頻因子(1、8、32、64、128、256或1 024)。
這樣通過計算給OCR0賦值就可以在IO板輸出相應(yīng)頻率PWM波,從而實現(xiàn)對電磁鐵的控制。
閘機是地鐵AFC系統(tǒng)中直接面對乘客的十分重要的前端收費設(shè)備,乘客通過閘機進出地鐵付費區(qū)和非付費區(qū)。閘機運行是否正常,不僅影響到地鐵在廣大乘客中的形象,而且也更直接影響到地鐵的票務(wù)收益。如何讓持有效車票的乘客快速、安全的通過閘機,并合理地阻擋持無效車票的乘客和試圖作弊的乘客,是閘機通行邏輯設(shè)計的目標。因此,閘機通行邏輯技術(shù)是閘機設(shè)計的關(guān)鍵[4]。下面介紹一種以IO板進行對通行邏輯模塊的控制方案。
IO板控制閘機扇門時,需通過扇門的通行邏輯模塊來進行信號處理。IO板通過對通行邏輯板的輸入/輸出,可實現(xiàn)對扇門進行相應(yīng)的操作。
IO輸入控制:
當(dāng)扇門處于打開狀態(tài)時,通行邏輯板能通過光電傳感器進行檢測,判斷是否有人通過,若判斷有1人通過則通行邏輯板會對IO板的Pack_B端輸入一個100ms的低電平信號,若有N人通過則通行邏輯板會發(fā)出N個100ms的低電平信號。電路原理如圖2所示,Pack_B端無操作時默認輸入24 V,此時光電二極管TLP181處于導(dǎo)通狀態(tài),所以此時IO輸入端IN18為低電平;而當(dāng)通行邏輯板對Pack_B輸出低電平信號時,光電二極管TCP181閉合,電容C49放電,IO輸入端IN18為高電平。
若要實現(xiàn)放行多個人通過時,則需要對Pack_B低電平進行計數(shù),這就需要通過底層程序去完成。具體操作方式是捕獲IO輸入端IN18的實時狀態(tài)后存入AVR單片機的寄存器,然后將前后狀態(tài)進行比較,若出現(xiàn)了上升沿則,Pack_B計數(shù)加1,否則計數(shù)不變。代碼實現(xiàn):
圖2 Pack_B端電路原理圖
IN18new=PIND&0x02; //獲取IN18的實時狀態(tài)并存入IN18new
PackB+=!IN18old&&IN18new; //通過前后狀態(tài)對比,計算上升沿次數(shù)
IN18old=IN18new; //更新IN18的實時狀態(tài)
IO輸出控制:
IO板對通行邏輯板Paut_B端輸出一個100 ms低電平信號時,可以控制扇門,使扇門從閉合狀態(tài)打開。電路原理如圖3所示,IO端Out14常態(tài)輸出高電平,此時光電二極管不導(dǎo)通,MOS管也不導(dǎo)通,Paut_B被拉高;而當(dāng)IO端Out14輸出低電平時,光電二極管導(dǎo)通,MOS管導(dǎo)通,此時Paut_B變?yōu)榈碗娖剑?]。
圖3 Paut_B端電路原理圖
Atmega128單片機內(nèi)部提供兩個10位的預(yù)定比例分頻器,一個給T/C0獨自用,另一個給其他3個T/C共用。
軟件設(shè)計時,程序給每個任務(wù)都設(shè)置了時間片,通過使用AVR單片機的定時器1,定時器1每1ms中斷溢出時對任務(wù)時間片函數(shù)作處理,判斷即將運行的任務(wù),如此反復(fù),則可以通過程序任務(wù)的時間片處理來實現(xiàn)多線程處理。定時器1的處理函數(shù)如下:
其中TaskComps[i]的內(nèi)容為各個任務(wù)子函數(shù),ItvTimer為任務(wù)運行的時間間隔,TaskComps[i].Run為任務(wù)可執(zhí)行標志,當(dāng)任務(wù)子函數(shù)Run為“1”時,任務(wù)為可執(zhí)行狀態(tài)[6]。
IO板邏輯處理和多線程任務(wù)處理的實現(xiàn),能夠增加AFC各終端設(shè)備的工作協(xié)調(diào)性以及工作效率,同時減少各模塊處理IO的壓力,減少錯誤,降低資源消耗,使得AFC設(shè)備的運行更穩(wěn)定可靠。
[1]鄧先平,陳鳳敏.我國城市軌道交通AFC系統(tǒng)的現(xiàn)狀及發(fā)展[J].都2011.
[2]于正林,蘇成志,曹國華.AVR單片機原理及應(yīng)用[M].北京:國防工業(yè)出版社,2009.
[3]孫孝峰,王立喬.三相變流器調(diào)制與控制技術(shù)[M].北京:國防工業(yè)出版社,2010.
[4]羅煌,洪瀾.SSH框架的AFC測試管理系統(tǒng)的設(shè)計與實現(xiàn)[J].軌道交通縱橫,2011,24(4).32-34.
[5]沈建良,趙文宏,賈玉坤.ATmega128單片機入門與提高[M].北京:北京航空航天大學(xué)出版社,2009.
[6]周興華.AVR單片機C語言高級編程設(shè)計[M].北京:中國電力出版社,
The IO Board and the Realization of its Software Control
XUE Lei,ZHANG Jun,WU Ming-gang
(Shanghai Electrical Automation Design&Research Institute Co.,Ltd.,Shanghai200023,China)
Tomake the IO board meet the ever-increasing demand of the AFC terminal system,we adopt the AVR single chip machine to design an analog circuit and develop software in Atmel studio environment.Through simulation and debugging,the IO board can perform the expected performance.The performance of the new concept of IO board greatly increases the working efficiency of the AFC terminal system,and the novel IO board will become an irreplaceable element in the future development of AFC.
AFC;input/output;PWM modulation;multi-threading;
10.3969/j·issn.1000-3886.2014.04.031
TP368
A
1000-3886(2014)04-0091-02
薛磊(1977-)女,上海人,工程師,研究方向:設(shè)備監(jiān)控。
張珺(1981-)女,江蘇鎮(zhèn)江人,工程師,研究方向:智能控制。市快軌交通.2005,18(3):18-21.
定稿日期:2014-04-10
本項研究工作得到了上海市科學(xué)技術(shù)委員會的資助,資助課題編號為12DZ2250900