基于CAN總線的PC與RFID讀寫器通信實現(xiàn)
文章出處:http://m.luckydriving.com 作者:王啟剛 譚杰 人氣: 發(fā)表時間:2011年10月23日
射頻識別(Radio Frequency Identification,RFID)是一種非接觸的無線自動識別技術(shù),其基本原理是利用射頻信號和空間耦合(電感耦合或電磁耦合)傳輸特性實現(xiàn)對被識別物體的自動識別⋯。近年來,RFID技術(shù)迅速發(fā)展,被廣泛應用于工業(yè)、農(nóng)業(yè)、體育休閑、交通管理和防偽防盜等眾多領域。根據(jù)RFID應用的具體特點,本文以制衣流程過程為基礎,提出了一種RFID技術(shù)在制造業(yè)生產(chǎn)流水線上的應用通信方案及其詳細實現(xiàn)。
制衣生產(chǎn)線和很多其他工業(yè)生產(chǎn)線一樣,每條流水線上有幾個、幾十個甚至更多的加工站點。為了在這種多站點生產(chǎn)線上應用RFID技術(shù),一般需要在每一個工作站點部署一到兩個RFID讀寫器(Reader)用以控制各個工作站點的任務調(diào)度,實現(xiàn)各工作站點和工作人員的自動管理。然而,由于工作站點的個數(shù)較多,生產(chǎn)線監(jiān)控管理上位機(Pc)還要實現(xiàn)各個工作站點的實時信息采集和監(jiān)控,這就要求PC與各個工作站點的RFID讀寫器之間實現(xiàn)可靠的實時通信。為此,本文提出了用CAN總線實現(xiàn)PC與RFID讀寫器通信的方案。
1 CAN總線與RS485總線
RS485總線曾經(jīng)在工業(yè)控制系統(tǒng)的發(fā)展過程中發(fā)揮了重要作用。但是,隨著工業(yè)控制系統(tǒng)功能分散化、任務多元化、整體復雜化程度的提高,工業(yè)控制系統(tǒng)對于可靠性、實時性、靈活性的要求也越來越高,工業(yè)數(shù)據(jù)總線領域中原有的RS485總線通信標準已經(jīng)不能滿足工業(yè)過程控制和制造業(yè)自動化的需要。在這種情況下,現(xiàn)場總線(Field Bus)技術(shù)以其自身的高性價比而成為了工業(yè)數(shù)據(jù)領域中的一種新通信方式??刂凭钟蚓W(wǎng)絡(Control Area Network,CAN)總線是目前業(yè)界公認的最有前途的幾種現(xiàn)場總線之一。
RS485總線的局限性主要表現(xiàn)在:(1)RS485總線可以互聯(lián)的設備節(jié)點數(shù)一般不超過32個,這顯然不能夠滿足多點工作站的需求和生產(chǎn)線的規(guī)模擴展的需要,比如每條制衣生產(chǎn)線的工作站點很多都在40個以上;(2)RS485總線多為查詢工作方式,由上位機定時輪詢各個工作站點,效率低,實時性差;(3)RS485總線構(gòu)成的通信系統(tǒng)可靠性不好,當由于某種原因使得兩個或更多從節(jié)點同時向總線發(fā)送數(shù)據(jù)時,將導致通信混亂甚至RS485驅(qū)動損壞;(4)RS485總線通信過程實現(xiàn)復雜,由于RS485僅僅是一種電氣協(xié)議規(guī)定,并沒有實現(xiàn)可靠的通信方法,這給通信軟件開發(fā)與程序調(diào)度實現(xiàn)增加了額外負擔。
CAN總線是20世紀80年代德國Bosch公司為了解決現(xiàn)代汽車中眾多控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,其對應的國際標準ISO11898已經(jīng)在1993年11月由ISO組織頒布。與RS485總線相比較,CAN總線的主要技術(shù)優(yōu)勢表現(xiàn)在:(1)CAN總線可同時互聯(lián)的節(jié)點數(shù)目多,實際可連接1 10個節(jié)點;(2)CAN總線用數(shù)據(jù)塊編碼的方式替代了節(jié)點地址編碼,各節(jié)點通過濾波的方式實現(xiàn)多地址幀傳送;實現(xiàn)了面向數(shù)據(jù)而不是節(jié)點的通信,方便系統(tǒng)配置;(3)CAN 總線采用基于節(jié)點優(yōu)先權(quán)設定的非破壞性總線仲裁技術(shù),有效避免了總線上的數(shù)據(jù)傳輸沖突,使網(wǎng)絡在高負載運行的情況下也不會出現(xiàn)網(wǎng)絡癱瘓的情況,可靠性高;(4)CAN 總線有自己的用戶層可靠通信協(xié)議和數(shù)據(jù)錯誤自診斷功能,采用循環(huán)冗余校驗判斷報文是否有傳輸錯誤,采用8B數(shù)據(jù)段區(qū)域,既滿足了工業(yè)領域中控制命令、數(shù)據(jù)傳輸?shù)鹊囊话阋螅直WC了通信的實時性。這不僅方便了上位機軟件開發(fā),還有利于系統(tǒng)的穩(wěn)定可靠運行。
2通信實現(xiàn)的系統(tǒng)結(jié)構(gòu)
圖1顯示了使用USB—CAN智能轉(zhuǎn)換卡連接PC與RFID讀寫器的生產(chǎn)線控制系統(tǒng)結(jié)構(gòu)。在這一系統(tǒng)中,USB—CAN智能轉(zhuǎn)換卡是上位機PC 采集和發(fā)送信息的通道接13,USB—CAN 智能轉(zhuǎn)換卡下端通過雙絞線連接各個控制節(jié)點— — RFID讀寫器。RFID讀寫器通過延長線連接的天線讀取電子標簽信息,經(jīng)過RFID讀寫器處理后再經(jīng)過CAN總線傳送到上位機處理,同時通過CAN總線接收上位機的各種控制命令和信息提示。上位機負責整個系統(tǒng)的監(jiān)控和管理,其控制信息經(jīng)過CAN總線而傳送到RFID讀寫器。
圖1應用CAN總線連接PC與RFID讀寫器的系統(tǒng)結(jié)構(gòu)
2.1 CAN總線通信中應該注意的問題
(1)USB—CAN 智能轉(zhuǎn)換卡所支持的最擴展幀轉(zhuǎn)換率為5000幀/s,如果是標準幀或者請求幀,其速率會更快。在使用USB—CAN智能轉(zhuǎn)換卡實現(xiàn)CAN總線與上位機的連接時要充分考慮節(jié)點的規(guī)模和應用中的最大的瞬間數(shù)據(jù)傳輸總量,以保證系統(tǒng)的實時性和可靠性。
(2)上位機PC中USB—CAN設備的驅(qū)動程序安裝,不同于RS485總線和CAN/RS232接13卡,USB接13需要安裝USB—CAN設備自帶的設備驅(qū)動程序才能正常工作。
(3)CAN總線終端匹配電阻的連接,為了增強CAN總線通信的可靠性,CAN總線網(wǎng)絡的兩個斷電通常要連接兩個終端匹配電阻。匹配電阻值的大小根據(jù)CAN總線網(wǎng)絡使用的傳輸介質(zhì)的阻抗特性而定。系統(tǒng)中采用的是阻抗特性為120歐姆的雙絞線,連接方式如圖2所示。
圖2用雙絞線連接的CAN總線網(wǎng)絡
2.2通信協(xié)議說明
CAN總線的ISO標準中規(guī)定了自己的通信協(xié)議格式,在這個應用中為使用方便并滿足更多節(jié)點擴展的需要,信息幀統(tǒng)一采用符合CAN2.0B協(xié)議(表1)實現(xiàn)系統(tǒng)中的信息傳輸。與RFID讀寫器通信的協(xié)議幀的意義表示(表2)以及與CAN總線協(xié)議擴展幀的對應解釋如下,其中表1中x表示CAN協(xié)議中的保留位。
表1 CAN總線CAN2.0B協(xié)議奠結(jié)構(gòu)
表2 RFID通信協(xié)議奠的規(guī)定
在RFID通信協(xié)議幀的規(guī)定中,信息被分為4個域(表1),其中,信號類型域用來表示信息的傳輸方向,即是上位機發(fā)送到RFID讀寫器還是相反, 占用CAN2.0協(xié)議擴展幀數(shù)據(jù)域的第1個字節(jié)(字節(jié)6)。站點域,即報文識別碼區(qū)域,總共有4個字節(jié)(29位二進制數(shù)+3位保留位,字節(jié)2~5),此處采用報文識別碼的前兩個字節(jié)作為目的地址字節(jié),作為識別符參與濾波的有效部分,以達到表示每個工作站的目的地址的作用;采用后兩個字節(jié)的13位二進制數(shù)表示信息的來源地址,它們不參與濾波;通信中采用的是數(shù)據(jù)幀,而非遠程幀,所以數(shù)據(jù)域的長度為1-8個字節(jié),由CAN2.0協(xié)議擴展幀中的DLC區(qū)域表示;規(guī)定中的數(shù)據(jù)域?qū)嶋H上只剩下7個字節(jié)(字節(jié)7—13),用以表示通信中的命令或信息內(nèi)容。這里的信息對應內(nèi)容即是CAN 總線通信協(xié)議幀解析時,程序要做的工作。
2.3 USB-CAN智能轉(zhuǎn)換卡與上位機PC通信的軟件實現(xiàn)
以中科院自動化所開發(fā)的手操器式RFID讀寫器作為終端通信節(jié)點,以某公司生產(chǎn)的USBCAN—I型USB—CAN轉(zhuǎn)換接13卡作為連接PC 與CAN 總線的硬件設備,基于Microsoft.NET 2003的MFC開發(fā)環(huán)境,本文實現(xiàn)了基于CAN總線的PC與多RFID讀寫器之間的通信。在上位機PC要實現(xiàn)的功能中,首先是要配置CAN總線通信的相關(guān)參數(shù),如定時器設置、濾波方式、工作模式等,并初始化USB—CAN智能轉(zhuǎn)換卡,然后才可以啟動USB—CAN設備。圖3顯示了上位機PC與RFID讀寫器通信過程操作的主要流程。
圖3上位機PC與USB-CAN通信主要流程
該流程中,信息的讀取解析與發(fā)送過程是通信的核心部分,其相應的USB 13監(jiān)聽線程程序的說明如下:
該段程序中協(xié)議規(guī)定的命令類型解析部分和數(shù)據(jù)內(nèi)容處理部分是PC實現(xiàn)與RFID讀寫器通信的核心。程序?qū)崿F(xiàn)時應特別注意協(xié)議幀中保留位的處理方法。在接收到一幀信息時報文識別碼區(qū)域共占用4個字節(jié),但是字節(jié)5低三位作為保留位而沒有使用,因此解析字節(jié)2~字節(jié)5時應首先將這4個字節(jié)的內(nèi)容右移3位去掉保留位的內(nèi)容,然后處理報文識別碼的真正內(nèi)容,否則就會解析出錯。
該段程序在確認相應的命令類型的基礎之上,對接收到的各種數(shù)據(jù)信息作出進一步解析和響應(在ProcessData(、、、 )函數(shù)中實現(xiàn))。ProcessData(⋯ )函數(shù)所完成的任務,要根據(jù)不同工程中規(guī)定的協(xié)議意義做出解析和響應。比如,在本文的通信中把十六進制的“AABB”放入擴展幀中的字節(jié)7-13中表示上位機的握手查詢命令,而如果接收到的幀中7~13字節(jié)的內(nèi)容是十六進制的“BB AA+站點當前接入的設備ID”,則表示RFID讀寫器的握手應答信息。
3結(jié)論
在介紹了RFID技術(shù)的一些應用后,針對生產(chǎn)線上幾十個RFID讀寫器的應用情況,對RS485總線和CAN總線的關(guān)鍵技術(shù)特性作出了詳細的對比,給出了一種基于CAN總線的PC與多RFID讀寫器通信的硬件結(jié)構(gòu)和軟件實現(xiàn)的關(guān)鍵部分說明。在RFID技術(shù)廣泛應用的今天,這樣一種基于CAN總線的PC與多RFID讀寫器的連接通信方式對于促進RFID技術(shù)在工業(yè)自動化領域中的應用具有積極意義。
基金項目:國家“863”計劃基金資助項目(2005AA420050)
作者簡介:王啟~(1982-),男,碩士生,主研方向:RFID技術(shù)及其應用;譚杰,副研究員、碩士
參考文獻
1游戰(zhàn)清,李蘇劍.無線射頻識別技術(shù)(RFID)理論與應用[M].北京:電子工業(yè)出版社,2004.
2史久根,陳真勇.CAN現(xiàn)場總路線系統(tǒng)設計技術(shù)[M].北京:國防工業(yè)出版社,2004.
3王偉杰,趙龍軍,趙學增,等.基于CAN 總線的工業(yè)測控系統(tǒng)的構(gòu)建[C]//中國控制與決策學術(shù)年會.2002.
4廣州周立功單片機發(fā)展有限公司.USBCAN 用戶手冊VI.2[z].2oo3.
5廣州周立功單片機發(fā)展有限公司.CAN—bus通用測試軟件及接口函數(shù)庫使用手冊[Z/.2003.