楊一曼,許連閣
(遼寧機電職業(yè)技術(shù)學院自動控制系,遼寧 丹東 118000)
隨著零售業(yè)的發(fā)展,在信息化及物聯(lián)網(wǎng)技術(shù)快速發(fā)展的背景下,自動售貨機已在全世界范圍內(nèi)分布,其門鎖的智能化和安全性尤為重要。USB是一種串口總線標準,也是一種I/O接口的技術(shù)規(guī)范,實現(xiàn)了主機和外部設備的通訊,具有標準統(tǒng)一、攜帶方便、可以熱插拔等特點,是應用廣泛的串行接口總線[1]。在自動售貨機電磁鎖中應用USB通信技術(shù),將使電磁鎖的控制系統(tǒng)結(jié)構(gòu)簡單、成本低、安全性得到保障。單片機具有性價比高、應用靈活、性能穩(wěn)定等特點,以單片機為控制核心的應用技術(shù)越來越廣,能夠?qū)崿F(xiàn)實時、穩(wěn)定地傳送數(shù)據(jù)。將USB通信技術(shù)與單片機控制相結(jié)合,設計了以單片機為控制核心的USB通信電磁鎖控制系統(tǒng),能夠?qū)崿F(xiàn)電磁鎖的控制技術(shù)要求。
1)外接電源:AC85~265 V 50 Hz,<12 W;
2)輸出配接12 V接線方式,即電磁鎖采用并聯(lián)線圈的方式;
3)配接電磁鎖容量:12 V,<0.8 A;
4)USB連接線用USB-B型接口;
5)USB驅(qū)動問題,一般 Win 7 以上系統(tǒng)能夠自動識別但XP系統(tǒng)不能識別的系統(tǒng),安裝CH340的驅(qū)動程序即可;
6)具有掉電記憶功能,即在停電恢復供電后,鎖的狀態(tài)是停電前的狀態(tài);
7)指示燈:紅色為交流電源指示,黃色為USB接入指示,綠色常亮表示已鎖門,綠色閃爍表示門鎖已打開。
基于單片機的USB通信電磁鎖控制系統(tǒng)由單片機控制系統(tǒng)、電磁鎖驅(qū)動電路、USB信號轉(zhuǎn)換RS232TTL電路和電源轉(zhuǎn)換電路組成(圖1)。
STC15系列單片機是新一代8051單片機,具有高速、低功耗、高可靠性、強抗干擾能力、無法解密的加密技術(shù)、指令代碼與傳統(tǒng)8051指令代碼兼容、易于編程,同時內(nèi)部具有EEPROM可擦寫十萬余次、掉電不丟失數(shù)據(jù)等特點;另外可以省掉外部晶振和外部復位電路,降低了硬件電路的復雜程度,同時也能夠節(jié)約成本。基于以上優(yōu)點,系統(tǒng)選擇型號為STC15W202S的單片機[2]作為控制核心。此單片機工作電壓是 5.5~2.5 V,Flash程序存儲器存儲空間是 2 k 字節(jié),SRAM的存儲空間是256字節(jié),EEPROM的存儲空間是 3 k 字節(jié),有一組串行口,內(nèi)部具有看門狗電路。
通過串口接收和發(fā)送數(shù)據(jù),實現(xiàn)電磁鎖的開閉,同時系統(tǒng)也設置手動開關(guān)門調(diào)試按鈕和開關(guān)門指示燈。單片機控制系統(tǒng)如圖1所示,單片機引腳P 3.0接電阻R9和引腳P3.1,接隔離二極管的作用是防止USB器件給單片機供電;在電源線Vcc與Gnd之間加上電源去耦電容C6和C10,作用是去除電源線噪聲,電容容量較大者吸收低頻噪音,電容容量較小者吸收高頻噪音,提高抗干擾能力。
圖1 單片機控制系統(tǒng)Fig.1 Single chip microcomputer control system
為了增加安全性,降低電路干擾,使之前端與電磁鎖完全隔離,所以選擇PC817應用電路作為電磁鎖驅(qū)動電路,PC817為單通道緊湊型光電耦合器,當發(fā)光二極管發(fā)光,照射到光敏三級管上使之導通,PC817的引腳3與場效應管V1的柵極相連接,當光敏三極管導通時場效應管導通,電磁鎖得電。由于電磁鎖是電感性元件,電感通電后電磁飽和,當斷電瞬間V1截止時,在電感兩端因電感阻礙電流變化的特性,產(chǎn)生一個與電源電壓幅值相同的反向電動勢,即-12 V,與電源電壓疊加,在V1的源極上產(chǎn)生 24 V 的電壓。為避免場效應管V1被高電壓擊穿損壞,在電磁閥線圈兩端反向并聯(lián)續(xù)流二極管,吸收這個反電動勢,以保護場效應管V1安全工作。電磁鎖驅(qū)動電路如圖2所示。
圖2 電磁鎖驅(qū)動電路Fig.2 Drive circuit of electromagnetic lock
圖3 USB信號轉(zhuǎn)換RS232TTL電路Fig.3 USB signal conversion RS232TTL circuit
單片機的TXD、RXD是TTL電平,所以將USB信號轉(zhuǎn)換成RS232TTL電平,只有這樣才能與單片機TTL電平兼容,上位機與單片機才能完成通訊。PL-2303雖然成本低,但是外圍電路復雜,CH340雖然成本相對高,但是其性能穩(wěn)定,外圍電路簡單,所以選擇CH340將USB信號轉(zhuǎn)換成RS232。CH340芯片內(nèi)置了電源上電復位電路,UD+和UD-引腳與USB總線的D+和D-連接,時鐘信號由其內(nèi)置的反相器和晶體穩(wěn)頻震蕩產(chǎn)生,晶體X1、電容C7和C8構(gòu)成時鐘振蕩電路,C5電容濾掉直流電源中的高頻波動,C9電解電容濾掉直流電源中的低頻波動。PCB布局時,C5和C9與CH340相連引腳越近越好。為了減少外界的信號干擾,D+和D-信號線平行布置,在兩側(cè)提供地線或覆銅;為了減少高頻干擾,盡量縮短晶體振蕩的輸入端和反相輸出端長度,可以在其附近環(huán)繞地線或覆銅。給USB串口協(xié)議簡單,自動售貨機電磁鎖對USB通信的傳輸速度要求不高,所以選擇USB-B接口電路[3]。USB信號轉(zhuǎn)換RS232TTL電路如圖3所示。
電子電路正常工作需要直流穩(wěn)壓電源,而常用的電源是交流電,需將交流輸入電壓轉(zhuǎn)換成穩(wěn)定的直流電壓。電磁鎖[4]是上電動作型,得電上鎖,失電開鎖,工作電壓為 12 V,需要驅(qū)動的電磁鎖工作電流約為 0.8 A,所以選擇 12 V 1 A 單路輸出的開關(guān)電源模塊,用于交流電轉(zhuǎn)換成直流電,采用電容和電感進行濾波,使輸出的直流電壓更加平穩(wěn)。HT7550穩(wěn)壓模塊為STC15W202S單片機、USB轉(zhuǎn)串口芯片CH340、光電耦合器PC817、USB-B接口電路提供穩(wěn)壓5V電源。電源轉(zhuǎn)換電路如圖4所示。
圖4 電源轉(zhuǎn)換電路Fig.4 Power conversion circuit
圖5 通信中斷子程序流程Fig.5 Sub-flow chart of communication interrupt
基于單片機的USB通信電磁鎖控制系統(tǒng)程序開發(fā)環(huán)境選擇Keil C編程軟件,頭文件包括“STC15W202S.H”“intrins.h”和“STCEEPROM.H”。程序包括主程序、定時器中斷子程序和串口通信中斷子程序,主程序包括端口初始化、定時器初始化、串口初始化[5]、鎖狀態(tài)變化標志位為0,看門狗程序、判斷鎖狀態(tài)變化標志位,如果有變化,將鎖狀態(tài)寫入EEPROM中,實現(xiàn)掉電前鎖的狀態(tài)讀取,如果沒有變化繼續(xù)從看門狗程序循環(huán)掃描。在單片機控制系統(tǒng)中,單片機的工作時常受到外界電磁場的干擾,程序跑飛,進而陷入死循環(huán),使單片機控制系統(tǒng)無法正常工作,造成不良后果,所以便有了“看門狗”電路對單片機運行狀態(tài)進行實時監(jiān)測。STC15W202S-SOP8單片機自帶看門狗電路,其工作原理是:在主程序中定時掃描看門狗程序,一旦發(fā)生單片機程序跑飛而進入某一段程序沒有循環(huán)執(zhí)行主程序時,看門狗程序沒有被執(zhí)行,這時看門狗電路得不到單片機送來的信號,累計到一定程度,便在單片機內(nèi)部產(chǎn)生復位信號。單片機復位后,程序計數(shù)器PC被賦值0000H,程序從ROM起始位置0000H開始執(zhí)行,保證單片機程序正常執(zhí)行。定時器中斷子程序?qū)崿F(xiàn)的功能是控制鎖狀態(tài)指示燈和檢測按鍵,按鍵長按 2 s 以上,開關(guān)鎖狀態(tài)取反。
接收主機開關(guān)鎖信號格式為4字節(jié),格式為:識別碼1,識別碼2,命令,結(jié)束符。開鎖命令為:0x58 0x55 0x4b 0xee,關(guān)鎖命令為:0x58 0x55 0x47 0xee。串口通信中斷子程序接收上位機發(fā)送的數(shù)據(jù),判斷是否是開關(guān)鎖命令后執(zhí)行開關(guān)門動作,當接收到主機查詢命令,開鎖發(fā)送返回值為:0xfe 0x4b 0xef,關(guān)鎖發(fā)送返回值為:0xfe 0x47 0xef。通信中斷子程序流程如圖5所示。
1)通訊參數(shù):波特率 9.6 Kbps,8位數(shù)據(jù),無校驗位,1位停止位;
2) 通訊格式:關(guān)門= 0x58 0x55 0x47 0xee;
3)通訊格式:開鎖= 0x58 0x55 0x4b 0xee;
4)通訊格式:查鎖=0x58 0x55 0x4f 0xee;
5)開關(guān)鎖返回值:0xfe [0x4b/0x47] 0xef。
通過測試系統(tǒng)能夠正常發(fā)送和接收開關(guān)鎖命令并實現(xiàn)電磁鎖的開關(guān),并接收主機查詢命令;返回開關(guān)鎖狀態(tài)值,通過斷電-通電測試掉電前鎖的記憶功能,實現(xiàn)了USB電磁鎖控制系統(tǒng)的所有技術(shù)要求。
基于單片機的USB通信電磁鎖控制系統(tǒng),以STC15W202S單片機為控制核心,USB通信控制電磁鎖的開關(guān),根據(jù)STC15W202S單片機性能特點和USB串口標準統(tǒng)一、攜帶方便、可以熱插拔等特點,對系統(tǒng)進行硬件設計和軟件設計測試。測試表明:系統(tǒng)結(jié)構(gòu)簡單,應用靈活,成本較低,性能安全可靠,具有推廣價值。