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