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