李園園,李 勇
(中山職業(yè)技術(shù)學(xué)院,廣東 中山 528404)
隨著信息技術(shù)、物聯(lián)網(wǎng)技術(shù)、移動(dòng)應(yīng)用技術(shù)等高新技術(shù)的蓬勃發(fā)展,智能化的生活已經(jīng)滲透到我們生活、工作、學(xué)習(xí)的方方面面,各行各業(yè)不僅僅需要信息化的支持,更需要借助物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)人和物品之間更緊密的聯(lián)接。經(jīng)過近些年不斷地發(fā)展,高校的資產(chǎn)管理系統(tǒng)已然實(shí)現(xiàn)了信息化,學(xué)校資產(chǎn)盤點(diǎn)終端主要有兩種技術(shù)手段:條形碼二維碼技術(shù)和射頻技術(shù)。二維碼技術(shù)可以用特定的手持終端或手機(jī)上安裝專門開發(fā)的APP來實(shí)現(xiàn)設(shè)備管理,優(yōu)點(diǎn)是設(shè)備成本低,且操作方便;缺點(diǎn)是操作效率低,一次只能讀取一個(gè)資產(chǎn)的信息,對(duì)于空間狹窄操作設(shè)備無法到達(dá)的地方無法進(jìn)行管理。射頻技術(shù)可以克服二維碼技術(shù)在資產(chǎn)管理方面的缺陷,效率高,可以同時(shí)管理數(shù)百個(gè)資產(chǎn)數(shù)據(jù);管理空間范圍大,遠(yuǎn)到幾十米的范圍進(jìn)行資產(chǎn)信息讀寫。本文設(shè)計(jì)了一種超高頻(Ultrahigh Frequency,UHF)射頻標(biāo)簽讀寫終端以及手機(jī)客戶端的編程流程,能通過藍(lán)牙配合手機(jī)使用同時(shí)進(jìn)行二維碼和射頻標(biāo)簽的讀寫管理。
手持UHF射頻讀寫終端,能滿足電池供電、低功耗、藍(lán)牙功能,射頻標(biāo)簽讀寫功能,硬件的整體結(jié)構(gòu)如圖1所示。
圖1 硬件結(jié)構(gòu)
1.2.1 單片機(jī)
選用意法半導(dǎo)體公司的STM32F103C8T6,該芯片應(yīng)用廣泛,供貨量大,價(jià)格基本與51系列同等功能單片機(jī)持平,性價(jià)比非常高。該芯片使用高性能的ARM? Cortex?-M3 32位的RISC內(nèi)核,工作頻率為72 MHz,內(nèi)置高速存儲(chǔ)器(64 K字節(jié)的閃存和20 K字節(jié)的SRAM),包含2個(gè)12位的ADC、3個(gè)通用16位定時(shí)器和1個(gè)PWM定時(shí)器,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:多達(dá)2個(gè)I 2 C接口和SPI接口、3個(gè)USART接口、一個(gè)USB接口和一個(gè)CAN接口。該單片機(jī)豐富的片上資源以及外設(shè)接口,保證了系統(tǒng)的最小化以及硬件的可靠性。供電電壓為2.0~3.6 V,一系列的省電模式(睡眠模式、停機(jī)模式、待機(jī)模式)保證低功耗應(yīng)用的要求。
1.2.2 射頻模塊
選用曉網(wǎng)電子的一款900 M超高頻模塊RF100,兼容ISO18000-6C/EPC Gen2 協(xié)議。電源電壓支持 3.6~5 V 供電,該模塊參數(shù)如下。
(1)通訊協(xié)議:TTL串口;波特率:115 200 bps。
(2)頻率范圍:840~928 MHz。
(3)模塊尺寸為 20 mm×23 mm×1 mm(未計(jì)算屏蔽罩厚度)。
(4)發(fā)射功率為 15 dBm,26 dBm,軟件可調(diào)。
(5)讀卡距離:2~10 m,依據(jù)使用天線而定。
(6)模塊處于關(guān)閉模式:漏電小于10 μA。
(7)模塊處于深度睡眠模式:功耗小于300 μA。
(8)模塊處于待機(jī)模式:功耗為32 mA左右。
(9)模塊連續(xù)盤存模式:功耗為220~320 mA左右。
(10)模塊發(fā)送連續(xù)波時(shí):功耗為320 mA左右。
(11)多標(biāo)簽讀取>50 張/s。
(12)啟動(dòng)時(shí)間<80 ms。
1.2.3 藍(lán)牙模塊
選用蜂匯物聯(lián)的主從一體藍(lán)牙模塊串口透傳模塊B-0001,該無線模塊是基于TI公司的CC2540F256 芯片研發(fā)的射頻模塊,該模塊可廣泛應(yīng)用于短距離無線通信領(lǐng)域,具有功耗低、體積小、抗干擾能力強(qiáng)等特點(diǎn)。B-0001可以實(shí)現(xiàn)模塊與手機(jī)數(shù)據(jù)透傳,模塊與模塊點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)透傳,通過簡單的 IO 控制便可以快速使用藍(lán)牙低能耗(Bluetooth Low Energy Consumption,BLE)技術(shù)。模塊主從合一,具有命令控制,通過串口可以切換模塊的主從角色,配置串口波特率,修改模塊的廣播名稱,修改廣播間隔和連接參數(shù)。該模塊采用TI CC2541方案,適配BLE4.0協(xié)議,可通過RS232串口與單片機(jī)通信,具有低功耗,超小體積等特點(diǎn)。
以上主要硬件的選擇,保證了系統(tǒng)設(shè)計(jì)的簡潔,功能可靠,并且達(dá)到了便攜式設(shè)備的低功耗的要求。
本文設(shè)計(jì)的便攜式射頻標(biāo)簽讀寫器,以手機(jī)或PC機(jī)作為客戶端通過藍(lán)牙RS232串口控制讀寫器的運(yùn)行(見圖2)。讀寫器的使用方式為:(1)系統(tǒng)開機(jī)上電;(2)手機(jī)端藍(lán)牙尋找配對(duì)設(shè)備;(3)設(shè)備配對(duì)后,可以通過手機(jī)發(fā)送指令對(duì)讀寫器進(jìn)行設(shè)置;(4)RFID標(biāo)簽管理。主要程序功能包含客戶端控制數(shù)據(jù)的封裝與發(fā)送;讀寫器返回?cái)?shù)據(jù)的解封裝;藍(lán)牙接收客戶端數(shù)據(jù)解封裝與封裝成RFID模塊控制命令;RFID將讀取的標(biāo)簽信息轉(zhuǎn)發(fā)至藍(lán)牙端。
圖2 讀寫器程序結(jié)構(gòu)
?幀頭 幀類型 指令代碼 指令參數(shù)長度 指令參數(shù) 校驗(yàn)位 幀尾
手機(jī)客戶端APP開發(fā):Android 還是 iOS,APP軟件編程的使用相同的編程流程,設(shè)備中所用的藍(lán)牙模塊的透傳服務(wù)是 0xFEE0, 傳輸數(shù)據(jù)的特征值是 0xFEE1。APP編程設(shè)計(jì)流程如下。
(1)掃描設(shè)備,掃描到設(shè)備后會(huì)有一個(gè)回調(diào)函數(shù),查找廣播報(bào)文中含有0xFEE0或者根據(jù)服務(wù)0xFEE0這個(gè)參數(shù)去掃描。(2)連接設(shè)備,調(diào)用連接藍(lán)牙的API。連接成功后會(huì)有回調(diào);連接成功之后調(diào)用發(fā)現(xiàn)服務(wù)的API去發(fā)現(xiàn)所有的服務(wù),透傳的服務(wù)是0xFEE0。若有發(fā)現(xiàn)到0xFEE服務(wù),那么接著應(yīng)該去使能特征值0xFEE1,只有使用了這個(gè)開關(guān),模塊才會(huì)發(fā)送數(shù)據(jù)到手機(jī)。(3)調(diào)用發(fā)送函數(shù)去發(fā)送數(shù)據(jù),當(dāng)手機(jī)接收到數(shù)據(jù),會(huì)有一個(gè)接收到數(shù)據(jù)的回調(diào)。
手機(jī)端到讀寫器藍(lán)牙端數(shù)據(jù)分兩類設(shè)置指令和數(shù)據(jù)傳送指令,設(shè)置指令的格式如下。
?幀頭 命令碼 數(shù)據(jù)長度 數(shù)據(jù) 校驗(yàn)和 幀尾
(1)幀頭:固定為“0XFE”。(2)命令碼:(A)OX00表示設(shè)備命名;(B)0X01表示通信波特率設(shè)置;(C)0X02射頻模塊通信功耗設(shè)置。(3)數(shù)據(jù)長度:數(shù)據(jù)部分的長度。(4)數(shù)據(jù):依據(jù)命令碼設(shè)定。(5)校驗(yàn)和:從命令碼到數(shù)據(jù)段按字節(jié)相加,取最后一個(gè)字節(jié)。(6)幀尾:固定為“0X0F”。
數(shù)據(jù)傳送指令格式為如下。
?幀頭 數(shù)據(jù) 幀尾
(1)幀頭:固定為“0XEF”。(2)數(shù)據(jù):所要傳送的內(nèi)容。(3)幀尾:固定為“0X0F”。
讀寫器內(nèi)部單片機(jī)藍(lán)牙通信指令對(duì)藍(lán)牙模塊進(jìn)行具體的控制,所使用指令集分采用蜂匯設(shè)定的指令集,分為兩種,一個(gè)是設(shè)置指令集,一個(gè)查看參數(shù)指令集。
(1)藍(lán)牙模塊設(shè)置命令格式如下。
幀頭 命令碼 數(shù)據(jù)長度 數(shù)據(jù) 幀尾
(2)藍(lán)牙模塊查看參數(shù)指令格式如下。
幀頭(固定) Type 幀尾0xFB 命令號(hào) 0x00 0xAA
指令由幀頭、幀類型、指令代碼、指令數(shù)據(jù)長度、指令參數(shù)、校驗(yàn)碼和幀尾組成,均為十六進(jìn)制表示。
幀頭:0xBB;幀類型:0x00;指令代碼:0x07;指令參數(shù)長度:0x0001;指令參數(shù):0x01;校驗(yàn)位:從幀類型到最后一個(gè)指令參數(shù)累加和,取最后一個(gè)字節(jié);幀尾:0x7E。
本文設(shè)計(jì)了一種和手機(jī)配合使用的射頻標(biāo)簽讀卡器,給出了硬件原理圖框架,以及主要硬件模塊的選型;設(shè)計(jì)了軟件流程框架,給出了手機(jī)端到設(shè)備端通信協(xié)議、設(shè)備內(nèi)部藍(lán)牙模塊管理協(xié)議、設(shè)備內(nèi)部射頻模塊通信協(xié)議。與讀卡器配合手機(jī)使用,利用手機(jī)通信及二維碼掃描的優(yōu)勢,可以同時(shí)實(shí)現(xiàn)二維碼和射頻標(biāo)簽對(duì)資產(chǎn)的管理。