• 沒有找到結果。

第五章 網路服務客戶端的設計

5.1 射頻辨識讀寫功能的設計

對追溯系統而言最重要的是條碼的內容,有了條碼的資訊才能進行後續的追溯行為。而 花卉追溯系統的載具使用的是射頻辨識標籤,因此本節介紹本研究中射頻辨識系統的部份,

包括整個系統架構、硬體以及讀寫功能等軟體的設計。本節共分做兩小節,5.4.1 為射頻辨識 硬體架構,5.4.2 則介紹射頻辨識軟體架構。

5.1.1 射頻辨識硬體架構

圖 5.1 是一個標準的射頻辨識系統的硬體架構圖,透過連結讀取器的天線所放出的電磁 波與貼在容器或商品上的標籤進行溝通,而客戶端的應用程式透過通訊協定與讀取器溝通得 到條碼的資訊。

圖 5.1 RFID 系統架構圖

射頻辨識系統主要的硬體設備包括讀取器、天線、標籤等。在讀取器部分,本研究採用 美商 Intermec 公司所發行的 IF5 射頻辨識讀取器,它是一套以 Linux 2.6 為核心的嵌入式系統 主機 [18]。而就讀取器的運作可分為訊號輸入與訊號輸出兩部分。在訊號輸入的部分,透過 銅軸電纜與天線相連接,當射頻辨識標籤進入天線可接收的範圍,會將資料傳回給天線,再 透過銅軸電纜傳回給讀取器;訊號輸出的部份,使用乙太網路輸出,使得應用程式可以透過 網際網路上各式各樣的通訊協定取得標籤內的資訊。IF5 讀取器如圖 5.2。而讀取器的規格及 支援性如表 5.1。

圖 5.2 IF5 射頻辨識讀取器[18]

表 5.1 IF5 讀取器的規格及支援性[18]

類別 規格

Linux base Linux 2.6.11

Configuration Done through a user interface either through the serial port or through a Web brower interface.

Antennas The reader has 4 antennas that can be controlled.

GPIO The reader has 4 inputs port and 4 output ports.

JVM A J2ME v1.0-compliant CDC/Foundation JVM.

JavaScript JavaScript Support.

JDBC JDBC Support

FTP FTP Server for downloading files to the IF5.

User Space 2MB, plus 64MB of Compact Flash storage capability.

射頻辨識標籤是由內含數 Byte~數千 Byte 大小的記憶體及簡單邏輯電路的 IC 晶片以及小 型天線所組成。天線的部份是感應射頻電波,以磁生電的方式啟動晶片,使得標籤具有讀寫 功能;而晶片的部份主要是記載資料的記憶體區塊,而記憶體區塊又可分為唯讀區塊的 UID 識別碼及可讀寫的資料區塊。UID 碼為出廠時的識別碼,用於辨識標籤的唯一性,UID 碼不 可修改;可讀寫的資料區塊用於儲存商品唯一識別碼的地方,也是讀取器真正要取得資料的 地方。標籤規格如圖 5.3 所示。

圖 5.3 射頻識別標籤規格[18]

在 3.4 節中已經提到本研究中 Index 的設計,接著透過 RFID 讀取器對標籤進行寫入的動 作,圖 5.4 為標籤條碼的示意圖。以此片標籤為例,『HEF04B4946433936』是出廠時的 UID 碼,Data 中的第 2 碼到第 13 碼『096AAA001032』為供應商所提供的生產批號,接著四碼『KIFC』

為高雄批發市場提供網路服務的服務名稱,第 18 到 33 碼『960326LCA1800301』為批發市場 的拍賣序號,34 到 42 碼『096000231』為承銷商的進貨編號。

圖 5.4 射頻識別標籤內容

5.1.2 射頻辨識軟體架構

射頻辨識系統的軟體部份所扮演的角色,主要是讓使用者能夠透過一種方式對讀取器進 行操作,包括系統的設定等,主要的功能是對射頻辨識標籤進行讀取、寫入的動作。

Intermec 公司針對這個 IF5 讀取器開發一套 BRI(Basic Reader Interface)指令集,讓使用者 可以透過簡單的方式對內部及外部的應用程式進行操作,包括對射頻辨識標籤進行讀取、寫 入等動作。BRI 的指令與說明約略如表 5.2。

BRI 的各指令也有其參數,以本程式為例,從第二個字串開始寫入 20 個字元,如 Write String(2,20)=”KIFC960326LCA1800301”,同理,讀取這段字串則為 Read String(2,20),此外還 有很多參數,包括 Hex()、Int()等,詳情請參考說明手冊。

IF5 讀取器支援透過各種的通訊協定與其溝通,例如 telnet、http、ftp 等通訊協定。透過 通訊協定,一般應用程式可以簡單的對 IF5 建立一個 Socket 連線,並傳送 BRI 指令進行操作。

Socket 為兩個程式之間的通信方法,透過與目的端位址建立連線後,將寫入 Socket 的資料傳 送到目的端,而目的端也將執行結果透過 Socket 傳送回來,完成一次 Socket 的傳輸。

以追溯系統來說,射頻辨識讀寫器可視回 Socket 目的端,而追溯系統的客戶端即為 Socket 的本地端。對目的端而言,ServerSocket 這個物件在預設阜號 2189 建立一個 ServerSocket 物 件,並透過 accept()這個方法傾聽來自本地端的連線。對本地端而言,透過 2189 這個阜號,

將 Socket 封包傳送到遠端,經過遠端 accept()方法的確認後將成功訊息回傳給本地端,完成 Socket 的連線。

接著本地端要對讀取器進行操作,例如讀取標籤上的代碼。首先本地端將 BRI 中的 READ 指令封裝到 Socket 裡傳送給目的端,讀取器收到 READ 指令後透過天線讀取到標籤上的代碼 並將其封裝到 Socket 裡面再回傳給本地端,本地端收到代碼後透過 close()的方法結束 Socket 連線。追溯系統客戶端透過 Socket 與射頻辨識讀取器溝通的架構如圖 5.5 所示。

圖 5.5 追溯系統客戶端與射頻辨識讀取器溝通架構

而追溯系統的 Socket 程式碼如圖 5.6 所示,透過這個 Socket 程式,即可透過讀取器所讀 到的標籤而取得其標籤內容,包括 Service Name 與條碼序號。

圖 5.6 追溯系統客戶端 Socket 程式碼

相關文件