長(zhǎng)距離通信器S1503的應(yīng)用編程原理
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞:S1503 通信器 事件 射頻識(shí)別
S1503是瑞典TagMaster AB公司生產(chǎn)的長(zhǎng)距離通信器,工作頻率為2.45GHz,具有圓極化天線波速的讀/寫(xiě)工作站;用于讀/定CONFIDENT系統(tǒng)中射頻識(shí)別標(biāo)簽,在車(chē)輛收費(fèi)管理、車(chē)場(chǎng)車(chē)輛進(jìn)出口管理以及列車(chē)車(chē)次識(shí)別等系統(tǒng)中有廣泛的應(yīng)用。其主要特點(diǎn)是:①具有6m的長(zhǎng)閱讀距離;②能進(jìn)行5m范圍內(nèi)的運(yùn)動(dòng)監(jiān)測(cè);③提供C、Delphi以及VB的驅(qū)動(dòng)接口程序;④具有閃速EEPROM的數(shù)據(jù)庫(kù);⑤提供DTMF及LED接口;⑥提供與主機(jī)通信的RS232和2/4線制RS485接口;⑦具有抗EMI的DC/DC轉(zhuǎn)換器;⑧采用24V/12V的工作電源。
圖1為S1503的內(nèi)部結(jié)構(gòu)示意圖。
1 系統(tǒng)結(jié)構(gòu)
(1)硬件結(jié)構(gòu)
CONFIDENT自動(dòng)識(shí)別系統(tǒng)一般包括標(biāo)簽(如S1251)、通信器(S1503)以及一臺(tái)主機(jī)。通信器通過(guò)RS232/485與主機(jī)連接實(shí)現(xiàn)通信。通信器與標(biāo)簽 是通過(guò)微波實(shí)現(xiàn)通信的。
(2)軟件結(jié)構(gòu)
圖2為軟件系統(tǒng)結(jié)構(gòu)示意圖。
Confilib:CONFIDENT函數(shù)庫(kù)名。該庫(kù)中包含幾百個(gè)通信器管理函數(shù)以及ConfiTalk通信協(xié)議接口函數(shù),同時(shí)提供適合于DOS、Windows3.1以及Windows 95/NT的不同平臺(tái)要求的Confilib版本。PC平臺(tái)的Confilib應(yīng)用程序接口是以C/C++動(dòng)態(tài)連接庫(kù)DLL的形式提供的,同時(shí)也提供Visual Basic、Delphi語(yǔ)言接口,適用于通信器的Confilib是C語(yǔ)言庫(kù)。這些函數(shù)庫(kù)包含諸如閱讀、寫(xiě)入、格式化標(biāo)簽,讀、寫(xiě)、檢索數(shù)據(jù)庫(kù),軟、硬件設(shè)置,讀、寫(xiě)I/O接口,發(fā)送、接收ConfiTalk命令,定時(shí)器,緩存區(qū)管理和郵件管理等函數(shù)。
ConfiTalk:標(biāo)準(zhǔn)通信協(xié)議。該協(xié)議規(guī)定通信器傳送和接收數(shù)據(jù)、處理數(shù)據(jù)流、重復(fù)傳送、校驗(yàn)以及數(shù)據(jù)透明的方式。該協(xié)議還可用于點(diǎn)對(duì)點(diǎn)通信和多點(diǎn)網(wǎng)絡(luò)通信,并采用查詢方式。信息幀結(jié)構(gòu)為:
STX | ADR | MESSAGE | CS | ETX |
STX:起始符;ADR:地址及序列;MESSAGE:需要傳送的數(shù)據(jù);CS:校驗(yàn)和;ETX:結(jié)束符。
用戶可自己編寫(xiě)通信協(xié)議來(lái)替代ConfiTalk。
Pyramid:S1503出廠時(shí)預(yù)裝的標(biāo)準(zhǔn)應(yīng)用程序。安裝了Pyramid的S1503在閱讀到標(biāo)簽或檢測(cè)到運(yùn)動(dòng)時(shí),能夠自己作出判斷和決定;同時(shí)S1503也可以通過(guò)串行接口接收并執(zhí)行CohnfiTalk命令。Paramid有四個(gè)運(yùn)動(dòng)模式:On、Off、Read beep以及Program beep。在On模式下,S1503可單機(jī)運(yùn)行,內(nèi)置在S1503中的數(shù)據(jù)庫(kù)保存著注冊(cè)標(biāo)簽的信息,當(dāng)閱讀到標(biāo)簽或檢測(cè)到運(yùn)動(dòng)時(shí),應(yīng)用程序改變繼電器、發(fā)光管和蜂鳴器的狀態(tài)。應(yīng)用程度同時(shí)還可以將記錄信息通過(guò)郵件發(fā)送到主機(jī)。Off模式時(shí),通信器處于被動(dòng)運(yùn)行狀態(tài),這時(shí)由主機(jī)利用ConfiTalk命令控制通信器S1503,Pyramid總是聽(tīng)取主機(jī)的ConfiTalk命令和郵件信息。通信器不產(chǎn)生記錄內(nèi)容,不作任何動(dòng)作。當(dāng)需要主機(jī)通過(guò)串行口利用Confilib命令(遠(yuǎn)程函數(shù)調(diào)用)控制通信器時(shí),采用這種模式。Read beep模式是用來(lái)在安裝通信器時(shí)確定其閱讀區(qū)域的。在Read beep模式下,通信器每讀到一個(gè)標(biāo)簽,就發(fā)了同一個(gè)短暫的蜂鳴,但閱讀的標(biāo)簽不會(huì)被記錄。Program beep模式是用來(lái)確定通信器的寫(xiě)標(biāo)簽區(qū)域。在該模式下,Pyramid不斷地嘗試給標(biāo)簽寫(xiě)信息,每寫(xiě)完一組信息后,程序發(fā)出短暫的蜂鳴。
2 編程控制原理
開(kāi)發(fā)S1503系統(tǒng)軟件的工具包括編譯器、裝載器、驅(qū)動(dòng)程序和函數(shù)庫(kù)等。利用交叉編譯器Conficomp,可以在PC平臺(tái)上開(kāi)發(fā)、調(diào)試通信器應(yīng)用程序,然后利用Confiload下載軟件,將通信器應(yīng)用程序下載。PC機(jī)應(yīng)用程序可以利用任何軟件進(jìn)行開(kāi)發(fā),包括使用Confilib函數(shù)庫(kù)。
在CONFIDENT系統(tǒng)中,如何編程控制通信器是關(guān)鍵,有四種控制方式可供參考。
(1)通信器應(yīng)用程序
該方式是用用戶在Confilib庫(kù)函數(shù)基礎(chǔ)上編寫(xiě)的應(yīng)用程序取代標(biāo)準(zhǔn)通信器應(yīng)用程序Pyramid,所有邏輯判斷均由用戶所編寫(xiě)的通信器應(yīng)用程序完成。主機(jī)可不定期地連接到通信器上讀取通信器記錄信息,并更新通信器數(shù)據(jù)庫(kù)。該方式的優(yōu)點(diǎn)是運(yùn)行速度快,可單機(jī)運(yùn)行;缺點(diǎn)是需要PROM寫(xiě)入器,缺少方便的界面。
(2)利用Confilib命令的主機(jī)應(yīng)用程序
在該方式中,通信器S1503完全由利用Confilib庫(kù)函數(shù)或其它軟件開(kāi)發(fā)的主機(jī)程序控制,系統(tǒng)智能部分在主機(jī),通信器不做任何邏輯判斷。當(dāng)主機(jī)應(yīng)用程序調(diào)用Confilib函數(shù)時(shí),自動(dòng)將Confilib命令翻譯成ConfiTalk命令,然后傳遞給S1503。S1503根據(jù)該命令招待對(duì)應(yīng)的Confilib命令。這種方式的優(yōu)點(diǎn)是:與通信器應(yīng)用程序Pyramid控制方式相比,擁有更加方便的界面,主機(jī)應(yīng)用程序更加便于開(kāi)發(fā)、調(diào)試;缺點(diǎn)是執(zhí)行速度慢。
(3)主機(jī)應(yīng)用程序與Pyramid通信
這種方式與第二種方式相似。主要區(qū)別在于主機(jī)與S1503的標(biāo)準(zhǔn)應(yīng)用程序Pyramid通信,而不是直接同Confilib通信。主機(jī)程序與通信器標(biāo)準(zhǔn)應(yīng)用程序通過(guò)互送郵件實(shí)現(xiàn)通信。采用這種方式的優(yōu)點(diǎn)是:主機(jī)應(yīng)用程序簡(jiǎn)單,部分邏輯判斷可交給通信器應(yīng)用程序,從而獲得較快的運(yùn)行速度;缺點(diǎn)是:Pyramid郵件不支持寫(xiě)標(biāo)簽和數(shù)據(jù)庫(kù)管理功能,不過(guò),這些功能可通過(guò)Confilib/Confitalk命令實(shí)現(xiàn)。
(4)用戶協(xié)議
這種方式除了通信器中的Confilib之外,所有軟件均由用戶編寫(xiě),當(dāng)系統(tǒng)使用ConfiTalk以外的協(xié)議時(shí),采用這種方式。該方式的優(yōu)點(diǎn)是:可實(shí)現(xiàn)通信器ConfiTalk以外的協(xié)議通信;缺點(diǎn)是編寫(xiě)程序量大,開(kāi)發(fā)周期長(zhǎng)。
3 應(yīng)用編程
事件是指正常程序運(yùn)行以外不定期發(fā)生的事情。事件可來(lái)自外部(如按鍵),也可以來(lái)自內(nèi)部(如定時(shí)器)。S1503程序庫(kù)的核心是一個(gè)稱作事件器的模塊,其絕大部分應(yīng)用是由事件驅(qū)動(dòng)的。Confilib庫(kù)中有七個(gè)模塊產(chǎn)生事件,可能產(chǎn)生的事件包括:DTMF(雙音多頻接口輸入)、Push_Button(通信器控制盤(pán)上的按鍵被按下)、Doppler_Radar(多譜勒雷達(dá)檢測(cè)到運(yùn)動(dòng)物體)、Par_In(并行輸入口輸入)、Timer(設(shè)置的計(jì)時(shí)器到達(dá)時(shí)間)、Tag(成功閱讀到一個(gè)標(biāo)簽)、Tamper_Switch(防護(hù)開(kāi)關(guān)動(dòng)作)、Null_Event(自上次查詢后,沒(méi)有事件發(fā)生)、Reset_Event(系統(tǒng)復(fù)位)。防護(hù)開(kāi)關(guān)除外,其它所 有事件模塊必須經(jīng)過(guò)初始化后才能夠產(chǎn)生事件。當(dāng)事件產(chǎn)生時(shí),系統(tǒng)及時(shí)響應(yīng)并存入通信器事件處理器,應(yīng)用程序通信調(diào)用Bsw_Event_Handler_Get_Event()從通信器讀取事件;若有事件發(fā)生,調(diào)用以上函數(shù)返回其事件類型、相應(yīng)數(shù)據(jù);若無(wú)事件發(fā)生,返回Null_Event。因此,應(yīng)用程序應(yīng)是一個(gè)等待事件的死循環(huán)。當(dāng)事件發(fā)生時(shí),應(yīng)用程序調(diào)用適當(dāng)?shù)氖录幚沓绦騺?lái)響應(yīng)該事件。應(yīng)用程序流程如圖3所示。
4 通信編程
通信器S1503與主機(jī)進(jìn)行通信交換信息,有三種方法:①利用CONFIDENT庫(kù)函數(shù)所支持的動(dòng)態(tài)緩沖區(qū);②利用公司所提供的串行通信接口字節(jié)級(jí)設(shè)備驅(qū)動(dòng)函數(shù)來(lái)自定義的通信協(xié)議;③利用CONFIDENT軟件庫(kù)提供的郵件交換系統(tǒng)。在S1503的實(shí)際應(yīng)用中,郵件交換系統(tǒng)應(yīng)用十分廣泛。
通信器通過(guò)調(diào)用函數(shù)Msw_Mail_Init、Msw_Mail_Send以及Msw_Mail_Receive等來(lái)使用郵件交換系統(tǒng)。使用郵件交換系統(tǒng)的前提是系統(tǒng)至少有一個(gè)空閑的動(dòng)態(tài)緩沖區(qū)。在初始化郵件系統(tǒng)時(shí),函數(shù)將占據(jù)編號(hào)最高的動(dòng)態(tài)緩沖區(qū)。使用郵件交換系統(tǒng)包括兩部分:主機(jī)通信流程(圖4)和通信器通信流程(圖5),其它現(xiàn)功能是主機(jī)接收通信器發(fā)送來(lái)的郵件,并將郵件內(nèi)容顯示在屏幕上;同時(shí),每當(dāng)空格鍵被按下時(shí),改變通信器的安靜模式;通信器閱讀標(biāo)簽事件,并將標(biāo)簽數(shù)據(jù)通過(guò)郵件發(fā)送給主機(jī)。主機(jī)可通過(guò)郵件將通信器設(shè)置為安靜模式,主機(jī)在通信器為非安靜模式時(shí)讀取標(biāo)簽數(shù)據(jù)郵件。
在實(shí)際應(yīng)用中,可選擇合適的系統(tǒng)結(jié)構(gòu)和控制方式。應(yīng)用編程也很靈活,用戶可根據(jù)自己的特點(diǎn)來(lái)選擇合適的語(yǔ)言。因此,S1503及其同類產(chǎn)品在自動(dòng)識(shí)別控制系統(tǒng)中有廣泛的應(yīng)用前景。