秦立靜,段奇凱,朱美芬,王瑞鵬,高 程,劉 歡
(甘肅農業大學 信息科學技術學院,甘肅 蘭州 730000)
背包是人們日常生活中必不可少的東西,其可以隨身攜帶一些出行必備的物品,給人們提供了很大的便利。然而,丟失背包和背包失竊的事情時有發生。背包通常情況下背在人身后,人們無法隨時看到自己的背包,絕大多數的背包失竊就是因為這個原因。
本項目針對丟失背包和背包失竊這一熱議話題 ,設計了一種基于嵌入式STM32的防盜背包。實驗表明,該防盜系統可以較好的處理背包丟失和背包失竊問題,并且通過警報提醒用戶。
本系統由射頻識別技術(Radio Frequency Identification,RFID)、STM32單片機、TTS報警器等組成,系統拓撲結構如圖1所示。

圖1 系統拓撲結構
RFID是自動識別技術的一種,通過無線射頻方式進行非接觸雙向數據通信,利用無線射頻方式對記錄媒體(電子標簽或射頻卡)進行讀/寫,達到識別目標和數據交換的目的。RFID通過無線電波不接觸快速信息交換和存儲技術,通過無線通信結合數據訪問技術,然后將其連接至數據庫系統,并實現非接觸式的雙向通信,從而達到了識別的目的。RFID用于板塊之間的數據交換,串聯起一個極其復雜的系統[1]。RFID有著方便快捷、識別速度快、數據容量大、使用壽命長、標簽數據可動態更改、較條碼而言具有更好的安全性、動態實時通信等的優點[2]。Curtin(2007)提出RFID技術具有機動性、組織性、系統性、技術性等特征,RFID使裝備其標簽的物體變得智能,且與信息系統進行實時交流,這些特征使該技術得到極大關注,且被認為將帶來下一次信息技術革命[3]。本項目通過RFID讀卡器讀取的信息,判斷RFID卡是否存在,若卡存在,說明背包依舊在,若卡不存在,則說明背包已丟失。
通過STM32單片機控制RFID讀卡器對RFID卡的讀取,若卡不存在,再次通過單片機將信息傳輸到TTS報警器。
文本到語音(Text to Speech, TTS)在內置芯片的支持之下,通過神經網絡的設計,把文字智能地轉化為自然語音流。這個處理過程為:首先對文本內容進行分析;然后調用語音合成引擎,調用語音庫,合成語音;最后通過揚聲器播放語音[4]。本文采用TTS技術對文本文件進行實時轉換,轉換時間之短可以以秒計算。
TTS接收來自STM32單片機的信息,若信息中RFID卡存在,則不報警,反之,則進行報警,提醒使用者背包丟失。
本設計所使用的STM32單片機相比較于其他系列來說,具有以下幾點優勢:
(1)與51系列單片機相比,STM32采用當前移動端廣泛使用的ARM構架,有著較低的功耗和較為成熟的技術,運算速度是51單片機的幾十倍,且外圍接口功能比51系列強大太多。
(2)與MSP430相比,STM32可以進行位操作,并且其程序都是模塊化的,接口的使用更為方便簡單,學習難度小。處理運算時,STM32的速度略快于MSP430,做浮點運算時,速度更是遠快于MSP430,在需要復雜運算的環境中,STM32的優勢極大。
(3)與其他8/16位單片機相比,STM32內存更大、處理速度快,可開發潛力也更大。
針對此款防盜背包系統的特性,本文在設計防盜背包系統的過程中充分考慮了以下性能需求:
(1)穩定性。作為防盜背包系統,保證其正常工作非常重要,系統運行的穩定程度,是判斷此防盜背包系統優良性能的一個重要指標。
(2)實時性。防盜背包系統最為重要的一點是實時性。背包丟失時,使用者應在第一時間接收到系統的反饋,發現背包丟失,因此其響應時間應控制在1 s以內。
(3)易攜帶性。防盜背包系統是一種嵌入背包內部的系統,應當簡單易攜帶質量小。
(4)準確性。防盜背包系統為使用者提供安全保障,須保證背包丟失時使用者第一時間得知,且不允許出任何錯誤。
(5)易操作性。防盜背包適用于各個年齡階段的人,使用者只需將該系統放入背包內部,就可起到防盜的作用。
本系統是通過將RFID卡放入背包中實現防盜。因此,需要在STM32單片機的控制下,在源代碼中編寫RFID讀卡器對RFID卡的循環讀取代碼,由單片機識別讀取信息。若信息中顯示RFID讀卡器顯示“BAG EXIST”,說明卡仍然在背包沒有丟失,TTS語音報警器不會響應報警;若讀卡器讀取到的信息顯示“BAG LOST”,說明RFID卡不在背包已丟失,從而單片機控制TTS語音報警進行報警提醒。
STM32F103單片機是基于ARM的32位通用增強型微控制器,支持實時仿真和跟蹤[5]。STM32F103單片機當下最流行的單片機之一,其廣泛地運用于各種智能設計以及各種嵌入式開發。該控制器實時性能好、功耗低、數據處理能力強和集成整合能力強大,并且易于開發。在STM32單片機中,采用了ARM較為先進架構的內核,其實時性能和功耗控制等方面都較為優良,能夠最大限度地進行整合與集成,同時便于開發,能夠使產品更快速的進入市場[6]。
TTS文字轉語音用途很廣,比如電子郵件、手機短信的閱讀、以及人工智能方面的應用等。在本項目中TTS語音模塊主要通過接收單片機所傳輸的信息,對所接收的信息進行數據分析、判斷。如果背包未丟失,則不發出警報,同時將此信息返回單片機;反之,則發出警報,提醒用戶。
RFID射頻識別技術,是一種非接觸式的自動識別技術,包括RFID讀卡器和RFID卡兩部分[7]。RFID讀卡器是一種能自動閱讀電子標簽數據的識別設備。RFID卡是一個儲存相關數據的射頻識別卡,當與RFID讀卡器距離達到檢測距離時,RFID讀卡器就會自動讀取RFID卡中所包含的信息,數據。如果距離超出檢測范圍,則讀卡器會自己返回相關數據,單片機接收到后會對數據進行分析,以此來判斷RFID卡是否存在。而RFID模塊工作頻率大概為13.56 MHz,該頻率的波長大概為22 m。除了金屬材料外,該頻率的波長可以直接穿過液體等大多數的材料。因此對于本項目而言,波長足夠穿過背包材料,同而增強了此項目的反應敏捷性,以及提高了此項目的抗干擾能力。但是現有的RFID讀卡器在大規模的移動應用中仍存在著一些不足。例如處理速度較慢,人機交互不夠友好,成本較高,不能方便與上位機進行通信等[8]。
本文在完善的硬件系統的基礎上,利用Keil μVision 5開發環境,使用C語言編寫應用程序。
首先為硬件系統通電,并且連接至計算機,打開串口1和串口4。接下來觀察計算機串口1和串口4發送的數據和接受的數據是否異常。若異常,則重新調試串口和接線;若正常,串口1返回數據的第四位為“00”。此時未放置卡片,串口1返回的數據為“bag lost”;此時將卡片放置在RFID模塊上,觀察返回數據:串口1返回的數據第四位為“01”,并且串口4返回的數據為“bag exist”,說明背包丟失。具體步驟如下所示:
(1)連接硬件系統至計算機并為整個系統通電;
(2)打開串口1和串口4;
(3)檢測連接是否異常;
(4)通過放置卡片和不放置卡片返回的數據判斷背包是否丟失。
軟件系統流程如圖2所示。

圖2 軟件系統流程
該程序通過簡單的硬件連接和兩個串口的發送、接收數據來判斷背包是否丟失。系統簡單易操作,且在程序的設計上采用了多種C語言模式構成的一種獨特的防盜系統,使用者只需在背包中裝入RFID識別卡,就可以輕松的解決背包被盜的問題。
本文設計了一種基于STM32的防盜背包。該背包由RFID識別器、STM32單片機和TTS報警器三部分構成。實驗表明,該系統簡單易操作、易于維護,系統的整體性能穩定可靠,可最大限度地滿足人們對便攜性和安全性的需要,有著廣闊的市場前景。該系統不僅可以用于背包,稍作修改,還可以擴展到各式各樣的包。