摘 要:為解決自動售貨機支付手段落后的弊端,描述并建立基于GSM和RF網絡、銀行支付的自動售貨系統。該系統以客戶端手機為平臺,實現與自動售貨機進行信息的識別和交互,并詳述描述系統各部分的實現方法、主要的硬件電路以及RFID驅動的實現,完成了自動售貨功能,具有一定的實用價值。
關鍵詞:射頻識別; GSM網絡; 自動售貨機; 手機客戶端
中圖分類號:TN911; TP368.1 文獻標識碼:A
文章編號:1004-373X(2010)14-0089-04
Vending System of Bank Payment Based on RFID and GSM Network
CAI Zi-liang , LI Yao-hui
(College of Electrical Information Engineering, Xuchang University, Xuchang 461000, China)
Abstract: A vending system of bank payment based on RF and GSM network was constructed for solving the backward payment of vending machine. The system achieves identification and interaction of information with the vending machine based on client cell-phone, the implementation methods of each part, the main hardware circuit and the realization of RFID drive are described, and the vending function is realized. It has practical value.
Keywords: RFID; GSM network; vending machine; client of cell-phone
手機支付是以短信、語音、WAP、K-JAVA等方式提供的一種移動支付業務[1],而國際防偽領域逐漸興起了一股利用射頻識別技術防偽[2]的潮流,,通過客戶端手機,利用GSM網絡和RFID技術實現銀行支付的自動售貨系統適應了這一要求。標準化也使RFID得到了互通和發展[3] ,共同遵守的工作流程利用到技術合作又防止了技術壁壘[4] 。該系統具有GPS 接收器,內置天線,便于區域管理;采用RFID相關規范技術[5]和嵌入式實時操作系統,實現實時接收、存儲、測試數據,可靠性高;具有較強的交互性、易用性、安全性。用于人流量大的鬧區,方便市民通過手機自主購物。
1 系統的硬件結構
如圖1所示,系統包括銀行服務器終端、銀行前端服務系統、自動售貨機上的讀寫器、客戶端手機、GSM網絡、數據庫、自動售貨機、射頻網絡。
把銀行卡和手機號綁定后的客戶端手機通過與銀行服務器之間進行數據信息的交互,并由銀行服務器終端通過RF信號控制售貨機是否出貨。該系統支持多人同時操作,更大地提高了售貨機的使用效率,還為公交換零提供方便。
1.1 銀行前端服務系統
圖2為銀行前端服務系統。
圖1 系統結構總圖
圖2 銀行前端服務系統結構圖
圖2中,ARM主控模塊采用ARM7芯片;GSM模塊的語音傳輸是基于GSM900網絡系統的OEM模塊;信息預處理模塊主要對GSM模塊中采集到的調制信號進行濾波放大處理,處理后的信號通過耦合電容傳入ARM主控模塊中處理;RFID讀/寫模塊的核心部件是nRF2401芯片,采用ISO18000-B協議,頻率為2.45 GHz,傳輸距離為10 m。
1.2 自動售貨機上的讀寫器
如圖3所示,ARM主控模塊中ARM7及其外圍電路利用經典的微處理器控制 模塊電路,保證了電路的穩定性、實時性、易操作性;嵌入式實時操作系統采用μC/OS-Ⅱ,網絡協議采用LwIP協議,射頻收發模塊的核心部件是nRF2401芯片,RFID讀寫器的發展趨勢是向多功能、多接口、多制式[6] 發展,其工作頻率也就是RFID系統的工作頻率[7],與RFID讀/寫模塊具有相同的協議和頻率,同時用到RFID中間件的主要功能[8]。EMC電磁兼容性濾波器串接于ARM主控模塊與RF模塊之間,用來抑制和消除系統現場的強電磁干擾。
作為射頻的核心模塊nRF2401,其內置地址解碼器、先入先出堆棧區、解調處理器、時鐘處理器、GFSK濾波器、低噪聲放大器、頻率合成器,功率放大器等功能模塊,需要很少的外圍元件,因此使用起來非常方便。它采用QFN24引腳封裝,外形尺寸[9]只有5 mm×5 mm。nRF2401的功能模塊如圖4所示。
圖3 讀寫器結構圖
圖4 nRF2401功能模塊圖
1.3 GSM模塊電路
如圖5所示,GSM模塊由GSM基帶處理器、GSM射頻模塊、供電模塊、閃存、ZIF連接器、天線接口6部分組成;通過ZIF連接器與GSM基帶處理器、GSM射頻模塊、供電模塊、閃存、天線接口相連接。
圖5 GSM模塊電路
2 系統的軟件實現及方法
如圖6所示,銀行卡和手機號綁定后,客戶端通過GSM發送自己的確認碼、銀行服務系統號、確認金額、物品名到移動公司,移動公司通過GSM將信息發送給銀行前端服務系統;前端服務系統對確認碼、銀行服務系統號、確認金額進行識別,并將正確譯碼發到銀行服務器終端,同時將金額和商品通過RF發送給售貨機上的讀寫器;收到確認信息的前端服務系統再將反饋信息通過GSM送給客戶端;一旦客戶端再次確認,信息將再次傳送給服務器終端和售貨機上的讀寫器;售貨機上的讀寫器向售貨機發送出貨命令,服務器終端扣除與手機卡綁定的銀行卡上的金額,同時售貨機上的讀寫器將售貨信息物品名稱及售貨時間存入售貨機上的數據庫中,從而客戶完成自動售貨。
2.1 系統各部分的實現方法
(1) 銀行前端服務系統的實現方法。圖2中銀行前端服務系統收到GSM信息后進入信息預處理模塊,通過解碼確認后將銀行卡信息和物品信息分別通過串口和RFID讀/寫模塊傳送給服務器終端和自動售貨機上的讀寫器,數據存儲模塊對所獲信息進行暫存或緩存,若出現數據錯誤,ARM主控模塊將會通過中斷啟動報警與時鐘模塊,并要求客戶重新發送;若前端服務系統不能正常工作時,復位電路進行復位;USB是與外界進行信息數據更新的接口、電源為整個系統供電。
圖6 實現自動售貨的流程圖
(2) 自動售貨機上讀寫器的實現方法。
如圖3所示,收發天線獲得同頻率的能量被激活;射頻收發模塊將自身編碼等信息經調制通過天線發出;RFID讀/寫模塊接收到其載波信號,雙方根據邏輯運算判斷信息的合法性;RFID讀/寫模塊將物品相關信息按照ISO1800-6 B標準通過收發天線傳送到射頻收發模塊,射頻收發模塊對接收的信號進行解調和解碼,然后經EMC濾波并向RFID讀寫模塊發送確認信號,將物品信息和控制信息送到自動售貨機的控制模塊,發出命令來控制執行機構動作,并將信息存入數據存儲模塊。圖4的nRF2401功能模塊就是在頻率2.45 GHz下實現數據的穩定、準確交互。
2.2 GSM模塊電路的實現方法
圖5所示的GSM模塊電路是將GSM射頻芯片、基帶處理芯片、存儲器、功放器件集成到一起上,GSM模塊具有發送SMS短信,語音通話,GPRS數據傳輸等基于GSM網絡進行通信的所有功能。該系統通過ARM中的RS 232串口與GSM模塊通信,使用標準的AT命令來控制GSM模塊實現各種無線通信功能。模塊上電10 ms后電池電壓必須大于3 V,為了正常工作,在第15腳(IGT)加時長至少為100 ms的低電平信號,且該信號下降沿時間小于1 ms 。啟動后,第15腳的信號應保持高電平。基帶處理器集成一個與ISO 7816-3 IC Card 標準兼容的SIM 接口。為了適合外部的SIM接口。在GSM11.11 為SIM 卡預留5個引腳的基礎上,ZIF連接器為SIM卡接口預留了6個引腳,所添加的CCIN 引腳用來檢測SIM卡支架中是否插有SIM卡。
2.3 系統的軟件驅動開發
系統中的GSM網絡模塊已經相當成熟,所以,這里主要敘述RF無線射頻的驅動開發。需要發送的信息數據是確認碼、服務號、確認金額、物品和日期,采用nRF2401作為核心芯片,其驅動程序開發涉及到nRF2401的初始化、nRF2401工作模式的配置、nRF2401數據收發操作等。
在初始化中有nRF2401_init( )初始化函數、nRF2401_ON( )上電函數、nRF2401_OFF( )掉電函數。初始化I/O將會把nRF2401用到的所有接口初始化為對應的輸入/輸出屬性;還要將nRF2401上電,即置PWR_UP管腳為高電平,且上電以后才能對nRF2401進行控制和讀/寫操作;nRF2401共有18 B命令字,程序中設置一個命令字數組InitData[15],數組中的值分別對應配置信息,如0x08(bit)對應通道1,2的接收數據寬度,0x4f對應接收通道選擇(b15)為通道一,收發模式(b14)為Shock Burst模式,波特率選擇(b13)為250 Kb/s,晶振頻率(b12~b10)為16 MHz,發射功率(b9~b8)為0 dBm。
在工作模式的配置中有寫命令字函數nRF2401_WriteComm and()、設置工作方式函數nRF2401_Mode()。nRF2401_WriteCommand()負責對nRF2401進行初始化配置,將初始化中的InitData[15]一次寫入控制字緩沖區。圖7為nRF2401寫命令字時序圖,圖中當PWR_UP 為高、CE 為低時,置位CS,芯片處于命令字寫入狀態,調用函數nRF2401_WriteByte(InitData[i]),通過通道1向芯片的控制字緩沖區寫入命令字,按照由高位到低位的順序,命令字全部寫入后,將CS置低,nRF2401芯片將會根據命令字配置相應的內部模塊。第一次配置結束后,只有最后2 B的命令字可以更改,前16 B的修改無效,如需修改前16 B的命令字,則需掉電后重新上電,才能對芯片進行徹底初始化操作。nRF2401_Mode()通過改變InitData[14]的最低位(bit0)來設置發送或接收模式。
圖7 nRF2401寫命令字時序圖
數據收發操作包括數據發送和數據接收,在數據發送操作中,nRF2401采用Shock Burst 方式發送數據,由處理器向nRF2401發送數據的函數有:
void nRF2401_SendByte(unsigned int TxData) //發送一個字節數據到nRF2401
void nRF2401_SendWord(unsigned int TxData) //發送一個字數據到nRF2401
void nRF2401_SendBuffer_Byte(unsigned int TxData[],unsigned int DataByte) //發送1字節數組
void nRF2401_SendBuffer_Word(unsigned int TxData[],unsigned int DataWord) //發送1個字數組
發送數據的時序圖如圖8所示。
圖8 處理器向nRF2401發送數據時序圖
圖8中,MSB→LSB的數據格式位,地址高位在前,An~A0為接收機地址,不超過40位,數據在后且高位在前,Dm~D0為待發送數據,數據為測試結果或時間。當處理器將數據發送至nRF2401后,nRF2401會進行打包發射,其數據格式如圖9所示。
圖9 打包的數據格式圖
圖9中PRE為8位的校驗頭;CRC為8位或16位的校驗尾,在Shock Burst模式下由nRF2401自動添加。在發送過程中要注意[10]: Address,Data,CRC的位數之和不超過256;Address長度必須和目標接接收通道的地址一致;Data長度必須和目標接收通道的數據寬度一致;發射端和接收端的RF頻率須一致,如兩端均采用通道1,則二者控制字的bit7~bit1要一致,如接收端采用通道2,則發射端bit7~bit1值比接收端bit7~bit1值大8。對外打包發射函數為:
void nRF2401_SetAddress(unsigned
int Adress[ ],unsigned int AddrByte)
//設置目標地址函數,其中Address[ ]數組為目標nRF2401地址,AddrByte為有效地址的字節數。
void nRF2401_SendByte(unsigned int TxData) //用于向nRF2401發送1幀數據(目標地址+1個字節數據TxData);
void nRF2401_SendWord(unsigned int TxData)
//用于向nRF2401發送1幀數據(目標地址+1個字數據TxData);
void nRF2401_SendBuffer_Byte(unsigned int TxData[ ],unsigned int DataByte)
//用于向nRF2401發送1幀數據(目標地址+1個字節數組TxData[ ]);
void nRF2401_SendBuffer_Word(unsigned int TxData[ ],unsigned int DataWord)
//用于向nRF2401發送1幀數據(目標地址+1個字數組TxData[ ])。
當接收端數據成功后,會置位數據請求管腳DR1/DR2,處理器通過查詢這兩個狀態接收數據。對于數據接收需以下函數:
unsigned int nRF2401_RxStatus()
//判斷nRF2401是否有數據接收
void nRF2401_ReceiveByte(unsigned int RxData[ ]) //以字節方式從nRF2401讀出數據,
接收數據存儲在數組RxData[ ]中;
void nRF2401_ReceiveWord(unsigned int RxData[ ])//以字方式從nRF2401讀出數據,接收數據存儲在數組RxData[ ]中。
接收數據的時序如圖10所示。
圖10 處理器從nRF2401讀取數據時序圖
該設計用到的μClinux的RF射頻傳輸設備的主設備號是160,首先創建設備文件節點:“mknod /dev/nRF2401 c 160 0” ;然后,創建頭文件nRF2401.h和驅動文件nRF2401.c,初始化、配置、數據發送與接收等函數均編輯在驅動文件nRF2401.c中;最后,建立Makefile文件進行編譯,得到RF設備驅動程序模塊nRF2401,在系統中加載“insmod nRF2401”即可使用。
3 結 語
綜上所述,該系統通過GSM網絡和RF網絡,采用嵌入式實時操作系統可快捷、有效地實現客戶端手機、銀行服務系統與自動售貨機之間的信息數據的交互。正常通信下,可保存60 000 個以上商品與用戶信息。手機支付觀念的成熟使得用手機支付逐漸成為一個標準的支付手段,具有一定的應用前景。
參考文獻
[1]李科.基于RFID的“U”時代移動支付研究[J].通訊管理與技術,2008(2):37-38.
[2]THORSTEN St
ke. Extending the EPC network the potential of RFID in anti-counterfeiting ACM Symposium on Applied Computing, 2005(3):1607-1612.
[3]游戰清.無線射頻識別技術(RFID)理論與應用[M].北京:電子工業出版社,2004.
[4]郎為民.射頻識別(RFID)技術原理與應用[M].北京:機械工業出版社,2006.
[5]RAZA Nadeem, BRADSHAW Viv, HAGUE Matthew, et al. Applications of RFID technology[M].[ S.l.] : Institution of Electrical Engineers, 1999.
[6]蔣皓石,張成,林嘉宇.無線射頻識別技術及其應用和發展趨勢[J].電子技術應用,2005,31(5):1-3.
[7]田利海,關強.RFID系統中的頻段特點及主要應用領域[EB/OL].[ 2005-07-21] .http://www.net.ccew.com.cn.
[8]LEAVER Sharyn. Evaluating RFID middleware[ M] . USA: Forrester, 2004.
[9]FINLENZELL Klaus. RFID-handbuch grundlagen und praktische anwendungen induktiver funkanlagen, transponder und kontaktloser chipkarten[ M] .[ S.l.] :[ s.n.] , 2002.
[10]張鵬舉.基于ARM+μCLinux的智能乙醇電子鼻系統的研究與實現[D].杭州:浙江理工大學,2009.