沈 偉,陳曉東,張延杰
(中國空空導(dǎo)彈研究院 凱邁(洛陽)電子有限公司,洛陽 471003)
槍支是公安民警執(zhí)行警務(wù)和對敵斗爭的重要武器。警務(wù)槍支的保管和使用歷來是公安機關(guān)對敵斗爭的重要環(huán)節(jié),如果保管或使用不當(dāng),極易造成負(fù)面影響或嚴(yán)重后果[1]。傳統(tǒng)的槍柜沒有槍支在位檢測裝置,無法自動記錄槍支的領(lǐng)取和歸還時間,槍支管理的信息化建設(shè)滯后,槍支集中保管而彼此沒有鎖槍機構(gòu)及其控制系統(tǒng),若管理疏漏易出現(xiàn)槍支誤取誤拿的情況。2013年公安部頒布的公共安全行業(yè)標(biāo)準(zhǔn)對智能槍柜提出了具體要求,在出現(xiàn)非正常領(lǐng)取槍支和槍支未按時歸還的情況要及時報警,對于槍支彈藥存取信息要有記錄并且不能人工修改或刪除[2]。然而,傳統(tǒng)槍柜人工管理方式落后,槍支配發(fā)、存放、使用等相關(guān)信息不能及時生成,更不能實現(xiàn)信息遠(yuǎn)程及時共享。鑒于此,本文設(shè)計了STM32F103ZET6微控處理器為核心的鎖槍機構(gòu)控制系統(tǒng),構(gòu)造了一個模塊化、可重構(gòu)、可擴充的軟、硬件控制系統(tǒng)[3]。實時檢測和統(tǒng)計槍支的在位情況、記錄槍支的存取狀況,控制鎖槍機構(gòu)來有效管控槍支,從而彌補了傳統(tǒng)槍柜系統(tǒng)的諸多不足。
控制系統(tǒng)實現(xiàn)的功能是采集各路槍支存放狀態(tài)、記錄槍支在位變化和控制某路或多路鎖槍機構(gòu)開啟。每個控制系統(tǒng)可以控制N(N<25)路鎖槍機構(gòu)。每增加N把槍需要管控,只要增加一個控制系統(tǒng)并設(shè)置好地址,掛接到485總線上,即可實現(xiàn)槍支在位的監(jiān)控和鎖槍機構(gòu)開啟的有效控制。
如圖1所示,本系統(tǒng)由STM32F103VET6微控處理器和外圍電路構(gòu)成。微處理器STM32F103VET6是一款32位Coretex-M3內(nèi)核處理器,其工作頻率為72 MHz,內(nèi)置高速存儲器,包括512 KB字節(jié)的閃存、64 KB字節(jié)的SRAM,具有豐富的增強型GPIO端口[4-5]。

圖1 鎖槍機構(gòu)控制系統(tǒng)的總體框架圖Fig.1 Structure diagram of the gun lock control system
STM32微控制器基于ARM體系結(jié)構(gòu),在Keil MDK環(huán)境下主要依托于固件庫函數(shù)開發(fā)[6]。與單片機不同,編程時只需調(diào)用STM32庫函數(shù)即可驅(qū)動相關(guān)硬件資源,這使得開發(fā)不再直接面對底層的寄存器進行操作,無需深入掌握細(xì)節(jié),用戶也可以輕松應(yīng)用每一個外設(shè),程序編寫簡潔而高效。
外圍電路包括:JTAG調(diào)試下載單元、終端地址設(shè)置單元、電源轉(zhuǎn)換單元、終端復(fù)位單元、485總線通信單元和N路(N<25)鎖槍機構(gòu)采集和控制單元。該系統(tǒng)需要外部+7 V直流電源供電,+7 V經(jīng)過AS1117R-3.3芯片轉(zhuǎn)化為+3.3 V給系統(tǒng)中的STM32芯片和485總線芯片供電。JTAG接口用于燒寫程序和在線調(diào)試,它連接著STM32芯片的JTCK、JTMS、JTDI、JTDO、JRST 和/RST 管腳。 終端地址設(shè)置單元由撥碼開關(guān)構(gòu)成,它規(guī)定了該系統(tǒng)的RS-485總線地址。終端復(fù)位單元用于給系統(tǒng)復(fù)位。
該系統(tǒng)作為獨立模塊對外部控制系統(tǒng)提供RS-485總線接口進行通信。RS-485通信總線的外部控制系統(tǒng)作為主站,掛接的多個控制系統(tǒng)作為從站,每個從站有各自的協(xié)議地址。當(dāng)外部控制系統(tǒng)發(fā)送命令到總線上時,各從站都可接收到該命令,但只有地址匹配的從站返回響應(yīng)包。鎖槍機構(gòu)控制系統(tǒng)收到的命令分為2類:一類是獲取各路槍支在位情況,另一類是控制某路或多路鎖槍機構(gòu)開啟。
如圖2所示,鎖槍機構(gòu)采集和控制單元與一路鎖槍機構(gòu)的接口為5XS1,每路鎖槍機構(gòu)需要3個I/O資源,1個輸出I/O用于控制鎖槍機構(gòu)內(nèi)電機的轉(zhuǎn)動與停止,2個輸入I/O用于采集傳感器信號。

圖2 鎖槍機構(gòu)采集和控制單元原理圖Fig.2 Schematic diagram of sample and control unit for gun lock
一路鎖槍機構(gòu)的鎖開信號接5XS1接口的2腳,該路鎖槍機構(gòu)的鎖開到位信號接5XS1接口的3腳,STM32的I/O輸入管腳CG1_1接一路鎖槍機構(gòu)的鎖開傳感器信號且該管腳通過上拉電阻5R60接+3.3 V。STM32的I/O輸入管腳CG1_2接該路鎖槍機構(gòu)的鎖開到位傳感器信號且該管腳通過上拉電阻5R61接+3.3 V。管腳CG1_1平時為高電平,當(dāng)鎖開信號有效時,STM32檢測到該管腳為低電平。管腳CG1_2平時為高電平,當(dāng)鎖開到位信號有效時,STM32檢測到該管腳為低電平。
SQ1連接鎖槍機構(gòu)內(nèi)部電機供電的正端。當(dāng)STM32將連接CJ1的I/O輸出管腳置為高電平時,三極管5Q1導(dǎo)通,繼電器5K1線圈形成回路,發(fā)光二極管5VL4發(fā)光,繼電器5K1的公共端3和5K1的6端連通,SQ1輸出7 V,電機轉(zhuǎn)動。當(dāng)STM32將連接CJ1的I/O輸出管腳置低電平,三極管5Q1截止,發(fā)光二極管5VL4熄滅,繼電器5K1的公共端3和5K1的5端連通,SQ1輸出0 V,電機停止。
鎖槍機構(gòu)內(nèi)部由開到位傳感器、鎖開傳感器、直流電機、凸輪、撥片和彈簧等器件構(gòu)成。凸輪固定位于直流電機的轉(zhuǎn)軸前端,當(dāng)電機加電轉(zhuǎn)動,凸輪旋轉(zhuǎn)到撥片位置時會推動撥片將鎖打開,此時鎖槍機構(gòu)的鎖開信號有效。正常情況當(dāng)凸輪旋轉(zhuǎn)到開到位傳感器時,電機停止轉(zhuǎn)動,采樣到開到位信號有效,一個開鎖過程結(jié)束。開鎖過程狀態(tài)和圖如圖3所示。開鎖后凸輪停止的位置有個限定范圍,否則會影響到鎖槍機構(gòu)的閉合。在控制中,通過檢測鎖開到位信號就可確定凸輪是否停在限定范圍內(nèi)。

圖3 開鎖過程的狀態(tài)機圖Fig.3 State machine diagram of opening gun lock process
系統(tǒng)控制的鎖槍機構(gòu)具有特殊性:因鎖開到位信號和與直流電機電源正輸入信號物理上連接,即有關(guān)聯(lián)性。若電機一直加電轉(zhuǎn)動,即使凸輪按壓到鎖開到位傳感器,依然獲取不到低電平信號。只有當(dāng)電機掉電且凸輪按壓到開到位傳感器這兩個條件同時滿足時才能獲得低電平信號。所以,為了捕捉到有效的鎖開到位信號,電機要處于 “轉(zhuǎn)動-停止”交替狀態(tài)。鎖槍機構(gòu)這樣設(shè)計的優(yōu)點是:采樣到鎖開到位信號有效時,電機已停止加電,凸輪因慣性停止到撥片位置造成鎖槍機構(gòu)無法鎖閉的情況不易產(chǎn)生。其缺點是:由于雙重條件才會產(chǎn)生有效信號,若信號采樣頻率不夠快,電機“轉(zhuǎn)動-停止”交替的時間間隔設(shè)置不合適,就無法在電機轉(zhuǎn)動一圈內(nèi)采集鎖開到位信號有效,導(dǎo)致鎖開啟后凸輪調(diào)整時間增加。在每路鎖槍機構(gòu)開啟過程中,凸輪將撥片推開所需的瞬時電流最高為1 A。因此,當(dāng)需開啟多路鎖槍機構(gòu)時,考慮到硬件電路瞬時功耗較大,要控制各路間隔0.5 s依次開啟而非同時開啟。
鎖槍機構(gòu)閉合時槍支的扳機護環(huán)被鎖住,領(lǐng)取槍支時系統(tǒng)控制鎖槍機構(gòu)自動打開,槍支可以取出,但歸還槍支時需要人工手動閉合鎖槍機構(gòu)。
根據(jù)鎖槍機構(gòu)的特性,開鎖過程分為初始態(tài)、開啟態(tài)、調(diào)整態(tài)和校驗態(tài)4個狀態(tài)。
初始態(tài)鎖槍機構(gòu)閉合,其內(nèi)部電機處于停止?fàn)顟B(tài)。
開啟態(tài)電機加電轉(zhuǎn)軸和凸輪處于轉(zhuǎn)動狀態(tài),若限定時間檢測到鎖開信號有效則進入調(diào)整態(tài),否則結(jié)束開鎖過程跳轉(zhuǎn)到初始態(tài)。
調(diào)整態(tài)此態(tài)鎖槍機構(gòu)已經(jīng)開啟,但其內(nèi)部凸輪沒有轉(zhuǎn)動到限定范圍,故電機處于“轉(zhuǎn)動-停止”交替的狀態(tài)來調(diào)整凸輪位置。若在限定時間內(nèi)檢測鎖開到位信號有效則進入校驗態(tài),否則結(jié)束開鎖過程跳轉(zhuǎn)到初始態(tài)。
校驗態(tài)在校驗態(tài)中電機已經(jīng)停止轉(zhuǎn)動,進入該狀態(tài)0.5 s后檢測鎖開到位信號,若有效則開鎖過程結(jié)束進入初始態(tài),否則跳轉(zhuǎn)到開啟態(tài)中。
系統(tǒng)一方面輪詢各路鎖槍機構(gòu)獲取槍位狀態(tài);另一方面響應(yīng)收到的獲取槍位狀態(tài)和控制鎖槍機構(gòu)開啟命令。具體的流程如圖4所示。

圖4 控制系統(tǒng)的軟件流程圖Fig.4 Software flow chart of the control system
系統(tǒng)上電后首先初始化了STM32芯片定時器、UART串口、GPIO、RTC、FLASH等模塊,然后進入主流程[7-9]。在主流程超級循環(huán)中響應(yīng)外部控制系統(tǒng)發(fā)送的命令并記錄槍位變化事件到STM32的片內(nèi)FLASH中。在系統(tǒng)20 ms定時器中斷中實時檢測當(dāng)前各路槍位的狀態(tài),并比對每路槍位狀態(tài)是否變化。
本文提出了一種基于STM32的鎖槍機構(gòu)控制系統(tǒng)設(shè)計,實現(xiàn)了鎖槍機構(gòu)的自動解鎖和槍支在位檢測及記錄功能,從而解決了槍支在傳統(tǒng)槍柜存放及人工管理方式中效率低、可控性差、信息不可追溯等缺點。控制系統(tǒng)采用485總線方式與外部通信,便于擴展、靈活、可靠性強。本設(shè)計已經(jīng)應(yīng)用到某地公安槍柜管理系統(tǒng)中,實踐表明該控制系統(tǒng)使用方便、安全、穩(wěn)定。由于控制系統(tǒng)相對獨立,在位檢測與可控物品的范圍不拘泥于槍支,因而有更廣闊的應(yīng)用前景。
[1]張七利.多功能一次性壓舌板槍支信息指紋智能管理系統(tǒng):中國,CN200610155146[P].2007-09-12.
[2]GA 1051-2013.中華人民共和國公共安全行業(yè)標(biāo)準(zhǔn),槍支彈藥專用保險柜[S].北京:中國標(biāo)準(zhǔn)出版社,2013.
[3]周永龍,雷金奎.基于STM32的數(shù)字舵機控制系統(tǒng)的設(shè)計[J].計算機測量與控制,2011,19(1):66-68.
[4]蒙博宇.STM32自學(xué)筆記[M].北京:北京航空航天大學(xué)出版社,2012.
[5]彭剛,秦志強.基于ARM Cortex-M3的STM32系列嵌入式微控制器應(yīng)用實踐[M].北京:電子工業(yè)出版社,2011.
[6]唐定兵,高曉丁,薛世潤.基于STM32F103ZET6的開放式數(shù)控運動控制系統(tǒng)[J].機電工程,2014,31(8):1062-1066.
[7]張逢雪,王香婷,王通生,等.基于STM32單片機的無線智能家居控制系統(tǒng)[J].自動化技術(shù)與應(yīng)用,2011,30(8):98-101.
[8]張國營,劉鳳林,李進香,等.以STM32F103為核心的智能滅火機器人[J].單片機與嵌入式系統(tǒng)應(yīng)用,2014(3):73-75.
[9]蘇鵬,周風(fēng)余,陳磊.基于STM32的嵌入式語音識別模塊設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2011(2):42-45.