基于RFID的智能停車場(chǎng)的設(shè)計(jì)與現(xiàn)實(shí)_第1頁
基于RFID的智能停車場(chǎng)的設(shè)計(jì)與現(xiàn)實(shí)_第2頁
基于RFID的智能停車場(chǎng)的設(shè)計(jì)與現(xiàn)實(shí)_第3頁
基于RFID的智能停車場(chǎng)的設(shè)計(jì)與現(xiàn)實(shí)_第4頁
基于RFID的智能停車場(chǎng)的設(shè)計(jì)與現(xiàn)實(shí)_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——基于RFID的智能停車場(chǎng)的設(shè)計(jì)與現(xiàn)實(shí)RFID的設(shè)計(jì)與實(shí)現(xiàn)

基于RFID的智能停車場(chǎng)的設(shè)計(jì)與實(shí)現(xiàn)

1.智能停車場(chǎng)的功能介紹

1.1智能停車場(chǎng)的應(yīng)用環(huán)境

在同一個(gè)小區(qū),或者一個(gè)城市里。所有車輛停車都需求IC卡,主要是用在取車驗(yàn)證。所有車輛都辦有“電子標(biāo)簽〞,粘貼在汽車的擋風(fēng)玻璃內(nèi)。同一個(gè)小區(qū)或者城市里的所有車輛都已經(jīng)辦理好停車“電子標(biāo)簽〞和IC卡,電子標(biāo)簽和IC卡里記載的有車輛和車主的信息,包括:車牌號(hào)、車型號(hào)、車的顏色、車主姓名。

1.2智能停車場(chǎng)的功能要求智能停車場(chǎng)的整體流程:當(dāng)一輛車駛?cè)胪\噲?chǎng)入口時(shí),位于停車場(chǎng)前10M處的識(shí)讀器會(huì)讀到位于車內(nèi)的電子標(biāo)簽,并對(duì)讀到的數(shù)據(jù)進(jìn)行處理。假使是有效的電子標(biāo)簽則記錄信息并傳送給上位機(jī)記錄,并顯示余額。當(dāng)車輛駛進(jìn)入口后,停車場(chǎng)內(nèi)A區(qū),B區(qū),C區(qū),D區(qū)的停車空位顯示屏上會(huì)實(shí)時(shí)顯示出空位供車主進(jìn)行選擇停放位子。當(dāng)車主停好車后,該車位的終端節(jié)點(diǎn)識(shí)讀器會(huì)及時(shí)讀到車上的電子標(biāo)簽,然后把停車的車位信息通過無線方式發(fā)送給數(shù)據(jù)采集器,然后數(shù)據(jù)采集器再通過再把信息匯總發(fā)送到上位機(jī),譬如A區(qū)3號(hào)。車主取車時(shí),根據(jù)進(jìn)入停車場(chǎng)的取車通道處刷IC卡,讀卡器進(jìn)行驗(yàn)證后顯示出停車的位子。最終車主開車駛出停車場(chǎng)。

以上的識(shí)讀器和讀卡器不是同一類型,識(shí)讀器的范圍在1m-2m,而讀卡器的范圍為10cm以內(nèi)。

智能停車場(chǎng)要實(shí)現(xiàn)的功能:1.車輛不停車進(jìn)入停車場(chǎng)。

2.停車場(chǎng)內(nèi)的識(shí)讀器會(huì)及時(shí)記錄車輛停車的位子并傳送給上位機(jī)。3.車主取車時(shí)在崗?fù)に⒖?yàn)證后會(huì)及時(shí)返回給車主車輛的位子。

智能停車場(chǎng)的系統(tǒng)結(jié)構(gòu)

2.RFID系統(tǒng)整體設(shè)計(jì)結(jié)構(gòu)

主控機(jī)(PC)???數(shù)據(jù)采集器數(shù)據(jù)采集器終端節(jié)點(diǎn)終端節(jié)點(diǎn)?終端節(jié)點(diǎn)終端節(jié)點(diǎn)終端節(jié)點(diǎn)?終端節(jié)點(diǎn)

?主控機(jī):該部分位于整個(gè)系統(tǒng)的最上層,負(fù)責(zé)控制和管理網(wǎng)絡(luò)中的所有通信,

并對(duì)收集到的各個(gè)節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行處理??梢允褂肞C機(jī)作為主控機(jī),利用RS-485總線連接多個(gè)數(shù)據(jù)采集器。

?數(shù)據(jù)采集器:在一個(gè)具體的應(yīng)用環(huán)境中,無線系統(tǒng)往往受到通信距離、空間

布局、外部干擾等因素的限制,無線通信端的節(jié)點(diǎn)無法直接與主控計(jì)算機(jī)通信,這就需要使用數(shù)據(jù)采集器作為中間媒介,將無線終端和主控機(jī)連接在一起。數(shù)據(jù)采集器尋常使用處理能力較強(qiáng)、硬件資源較為豐富的高級(jí)單片機(jī),如Winbond公司的W77E58。

?終端節(jié)點(diǎn):也就是停車場(chǎng)具體車位上的識(shí)讀器,由于數(shù)量相對(duì)較多,可以使

用通用8051控制器來降低系統(tǒng)成本(如AT89S52)。

無線射頻識(shí)別操作的一個(gè)關(guān)鍵因素是數(shù)據(jù)的傳輸轉(zhuǎn)換,它發(fā)生在RFID標(biāo)簽與識(shí)讀器之間,稱為耦合。這是通過RFID標(biāo)簽的天線與識(shí)讀器的天線進(jìn)行的。磁感應(yīng)耦合的無線射頻范圍讀取范圍小,只有幾厘米。車主取車時(shí)用IC卡驗(yàn)證,用的就是這種方式。電磁波進(jìn)行通信的范圍較大,可以達(dá)到10m以外。停車場(chǎng)入口的地方我們可以用這種方式來實(shí)現(xiàn)車輛駛?cè)胪\噲?chǎng)不用停車。硬件組件:RFID標(biāo)簽、識(shí)讀器和天線。

系統(tǒng)硬件設(shè)計(jì)

標(biāo)簽識(shí)讀器主機(jī)網(wǎng)絡(luò)RFID系統(tǒng)軟件主機(jī)應(yīng)用程序RFID中間件

軟件組成:RFID系統(tǒng)軟件、RFID中間件和主機(jī)應(yīng)用程序。

2.1RFID標(biāo)簽

RFID標(biāo)簽一般由天線、調(diào)制器、編碼發(fā)生器、時(shí)鐘電路及存儲(chǔ)器組成,其工作過程為:時(shí)鐘電路把所有電路功能時(shí)序化,以使存儲(chǔ)器中的數(shù)據(jù)在確切的時(shí)間內(nèi)傳輸至讀寫器,存儲(chǔ)器中的數(shù)據(jù)是應(yīng)用系統(tǒng)規(guī)定的唯一性編碼,標(biāo)簽安裝在識(shí)別對(duì)象(如集裝箱、車輛、動(dòng)物等)前就已寫入。數(shù)據(jù)讀出時(shí),編碼發(fā)生器把存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)編碼,調(diào)制器接收由編碼發(fā)生器編碼后的信息,并通過天線電路將此信息發(fā)射/反射至讀寫器。數(shù)據(jù)寫入時(shí),由控制器控制,將天線接收到的信號(hào)解碼后寫入存儲(chǔ)器。

尋常,RFID標(biāo)簽具有如下功能:

(1)具有一定容量的存儲(chǔ)器,用以存儲(chǔ)被識(shí)別對(duì)象的信息;(2)在一定工作環(huán)境及技術(shù)條件下標(biāo)簽數(shù)據(jù)能被讀出或?qū)懭耄?3)維持對(duì)識(shí)別對(duì)象的識(shí)別及相關(guān)信息的完整;(4)數(shù)據(jù)信息編碼后,工作時(shí)可傳輸給讀寫器;(5)具有確定的使用期限,使用期限內(nèi)無須維修:

(6)對(duì)于有源標(biāo)簽,通過讀寫器能顯示出電池的工作狀況。

2.2RFID射頻讀寫器

射頻讀寫器一般由天線、射頻模塊、讀寫模塊等組成。其中,天線是發(fā)射和接收射頻載波信號(hào)的設(shè)備,在確定的工作頻率和帶寬條件下,天線發(fā)射由射頻模塊產(chǎn)生的射頻載波,并接收從標(biāo)簽發(fā)射或反射回來的射頻載波:射頻模塊可發(fā)射和接收射頻載波,射頻載波信號(hào)由射頻振蕩器產(chǎn)生并被射頻處理器放大。該射頻載波通過天線發(fā)射;射頻模塊將天線接收的從標(biāo)簽發(fā)射/反射回來的載波解調(diào)后傳給讀寫模塊;讀寫模塊接收射頻模塊傳輸?shù)男盘?hào),解碼后獲得標(biāo)簽內(nèi)信息或?qū)⒁獙懭霕?biāo)簽的信息編碼后傳給射頻模塊,完成寫標(biāo)簽操作,同時(shí)還可以通過標(biāo)準(zhǔn)接口將標(biāo)簽內(nèi)容和其他信息傳給計(jì)算機(jī)。

尋常,射頻讀寫器具有如下功能:

(1)讀寫器與標(biāo)簽通信的功能;在規(guī)定的技術(shù)條件下讀寫器可與標(biāo)簽進(jìn)行通信。

(2)讀寫器與計(jì)算機(jī)通信的功能:通過標(biāo)準(zhǔn)接口與計(jì)算機(jī)網(wǎng)絡(luò)連接,并提供本讀寫器的識(shí)別碼、本讀寫器讀出標(biāo)簽的日期和時(shí)間、本讀寫器讀出的標(biāo)簽信息,

系統(tǒng)硬件設(shè)計(jì)

以實(shí)現(xiàn)多個(gè)讀寫器在系統(tǒng)網(wǎng)絡(luò)中運(yùn)行。

(3)有些應(yīng)用系統(tǒng)的讀寫器還具有以下功能:能在讀寫區(qū)內(nèi)查詢多個(gè)標(biāo)簽,并能正確區(qū)分各標(biāo)簽:適用于固定和移動(dòng)對(duì)象‘T能提醒讀寫過程中的錯(cuò)誤信息;對(duì)于有源標(biāo)簽,能讀出標(biāo)簽電池有關(guān)信息(如電池電量指示)。

在RFID系統(tǒng)設(shè)計(jì)中,本人主要工作是進(jìn)行射頻讀寫器的設(shè)計(jì)。由于超高頻射頻芯片造價(jià)太高,接下來本人設(shè)計(jì)驗(yàn)證時(shí)用M1(Mifare卡)來代替RFID標(biāo)簽,RC500射頻芯片來代替超高頻射頻芯片RMU900。

3.硬件設(shè)計(jì)與實(shí)現(xiàn)

系統(tǒng)硬件電路以AT89C52單片機(jī)、RC500射頻芯片和nRF905模塊為核心元件,由單片機(jī)的I/O端口分別控制RC500和nRF905。系統(tǒng)硬件組成電路如下圖所示:

RC500A0-A7NWRNRDNCSIRQALEP0-P7WRRDP2.7P3.2ALEAT89C52P2.6P1.2P1.3P2.2P2.3P1.6P1.5P1.4P2.4P2.5模式控制端口SPI端口MISO狀態(tài)輸出nRF905

MFRC500和單片機(jī)AT89S52都是采用標(biāo)準(zhǔn)TTL電平,不需電平轉(zhuǎn)換。系統(tǒng)硬件設(shè)計(jì)中的關(guān)鍵接口部分連接如下:

MFRC500的AD0-AD7為帶施密特觸發(fā)器的雙向數(shù)據(jù)和地址復(fù)用總線,接單片機(jī)AT89C52的AD0-AD7。MFRC500的NWPdRNW為帶施密特觸發(fā)器的寫阻止/只讀信號(hào),接單片機(jī)的寫信號(hào)wR。MFRC500的NRD/NDS為帶施密特觸發(fā)器的讀阻止,數(shù)據(jù)選通阻止信號(hào),接單片機(jī)的讀信號(hào)RD。MFRC500的NCS為帶施密特觸發(fā)器的片選阻止信號(hào).接單片機(jī)的I/0口線P2.7。MFRC500的ALE為帶施密特觸發(fā)器的地址鎖存使能信號(hào),接單片機(jī)的地址鎖存信號(hào)。MFRC500的IRQ為帶施密特

系統(tǒng)硬件設(shè)計(jì)

觸發(fā)器的中斷請(qǐng)求信號(hào),接單片機(jī)的中斷口。3.1MCU控制模塊

MCU模塊中,控制核心采用AT89S52單片機(jī),硬件電路如圖3-1所示。其中,P0口控制MFRC500的數(shù)據(jù);晶振Y選用11.0592MHz(若用22.1184MHz晶振,可在程序內(nèi)部直接改寫即可);

圖3-1

3.2射頻模塊

射頻基站模塊是射頻卡讀寫器的關(guān)鍵部件,通過該模塊與射頻卡進(jìn)行數(shù)據(jù)通信。射頻基站模塊的主要部件就是射頻基站芯片,選用philip公司的MFRC500射頻基站芯片,其功能框圖如圖3-2-1所示。

圖3-2-1

MFRC500是應(yīng)用于13.56Mllz非接觸式通信中高集成讀卡IC系列中的一員。

系統(tǒng)硬件設(shè)計(jì)

讀卡IC系列利用先進(jìn)的調(diào)制和解調(diào)概念,完全整合了在13.56MHz下任何類型的被動(dòng)非接觸式通信方式和協(xié)議。它內(nèi)部包括微控制器接口單元、模擬信號(hào)處理單元和IS014443A規(guī)定的協(xié)議處理單元,以及Mifare卡特別的Cryptol安全密鑰存儲(chǔ)單元。它可以與所有兼容Intel或Motorola總線的微控制器實(shí)現(xiàn)8位并行“無縫〞接口(直接連接),其內(nèi)部還具有64個(gè)字節(jié)的先進(jìn)先出(FIFO)隊(duì)列,可以和微控制器之間高速傳輸數(shù)據(jù);其片內(nèi)的IS014443A協(xié)議處理單元包括狀態(tài)和控制單元、數(shù)據(jù)轉(zhuǎn)換處理單元;片內(nèi)的模擬單元能夠?qū)?shù)字信號(hào)處理單元的數(shù)據(jù)信息調(diào)制并發(fā)送到天線中,也可以將天線接收到的信息解調(diào)成數(shù)字信號(hào)傳送給協(xié)議處理單元,帶有一定的天線驅(qū)動(dòng)能力。MFRC500支持IS014443A任何的層,內(nèi)部的發(fā)送器部分無需增加有源電路就能夠直接驅(qū)動(dòng)近操作距離的天線(可達(dá)lOOmm);接收器部分提供一個(gè)穩(wěn)固而有效的解調(diào)和解碼電路,用于IS014443兼容的應(yīng)答器信號(hào);數(shù)字部分處理IS014443A幀和錯(cuò)誤檢測(cè)(奇偶&CRC)。此外它還支持快速CRYPTOI加密算法,用于驗(yàn)證Mifare系列產(chǎn)品。便利的并行接口可直接連接到任何8位微處理器,給讀卡器/終端的設(shè)計(jì)提供了極大的靈活性。

MFRC500的AD卜AD7為帶施密特觸發(fā)器的雙向數(shù)據(jù)和地址復(fù)用總線,接單片機(jī)AT89C52的ADn~D7。MFRC500的NWPdRNW為帶施密特觸發(fā)器的寫阻止/只讀信號(hào),接單片機(jī)的寫信號(hào)wR。MFRC500的NRD/NDS為帶施密特觸發(fā)器的讀阻止,數(shù)據(jù)選通阻止信號(hào),接單片機(jī)的讀信號(hào)RD。MFRC500的NCS為帶施密特觸發(fā)器的片選阻止信號(hào).接單片機(jī)的I/0口線P2.7。MFRC500的ALE為帶施密特觸發(fā)器的地址鎖存使能信號(hào),接單片機(jī)的地址鎖存信號(hào)。MFRC500的IRQ為帶施密特觸發(fā)器的中斷請(qǐng)求信號(hào),接單片機(jī)的中斷口。其接口電路圖如圖3-2-2所示。

圖3-2-2

3.3串行通信模塊

在本系統(tǒng)中,PC機(jī)與單片機(jī)之間的通信是近距離的串行通信,可以采用RS232實(shí)現(xiàn)。單片機(jī)串口的輸入輸出均為TTL低電平,而PC機(jī)的RS232接口為了提高抗干擾性能,采用RS232標(biāo)準(zhǔn)的EIA電平,所以要實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的串行通信,其接口必需進(jìn)行電平轉(zhuǎn)換。選用MAX232芯片實(shí)現(xiàn)這兩種電平之間的轉(zhuǎn)化。硬件接口電路如圖3-3所示,其中E5、E6、E7、E8均為0.1uF電容,數(shù)據(jù)也可以以無線的方式將數(shù)據(jù)發(fā)給PC機(jī)。

系統(tǒng)硬件設(shè)計(jì)

圖3-3

3.4天線設(shè)計(jì)

天線部分主要包括低通濾波器、接收電路、天線匹配電路和天線線圈,其工作過程為:天線拾取的信號(hào)經(jīng)過天線匹配電路送到Rx腳。MFRC500的內(nèi)部接收器對(duì)信號(hào)進(jìn)行檢測(cè)和解調(diào)并根據(jù)寄放器的設(shè)定進(jìn)行處理。然’后數(shù)據(jù)發(fā)送到并行接口。由微控制器進(jìn)行讀取。MFRC500對(duì)驅(qū)動(dòng)部分使用單獨(dú)電源供電。電路設(shè)計(jì)天線直接連接的匹配電路如3-4-1所示。

圖3-4-1

MFRC500的非接觸式天線接口主要引腳功能如表3-4-2所示。

非接觸式天線使用以下4個(gè)管腳:

名稱類型功能

系統(tǒng)硬件設(shè)計(jì)

TX1,TX2WMIDRX輸出緩沖模擬輸入模擬天線驅(qū)動(dòng)器參考電壓天線輸入信號(hào)圖3-4-2

4.軟件設(shè)計(jì)

4.1軟件設(shè)計(jì)思路

根據(jù)系統(tǒng)要求,軟件部分設(shè)計(jì)包括兩大部分,即:上位機(jī)對(duì)讀卡器的操作、數(shù)據(jù)的讀寫、密碼的管理、功能的測(cè)試等等;讀卡器對(duì)卡的實(shí)時(shí)監(jiān)控,顯示并將數(shù)據(jù)發(fā)給上位機(jī)。程序設(shè)計(jì)采用單片機(jī)匯編語言和Kei1C51混合編程??撮T狗定時(shí)器中斷服務(wù)程序采用匯編語言編寫,其它程序采用C語言編寫。程序的每一部分按模塊化設(shè)計(jì)成一個(gè)文件,單獨(dú)調(diào)試通過后,再在KeilC51環(huán)境下參與到工程文件中匯編生成HEX文件,用仿真器進(jìn)行仿真通過后,寫入AT89S52芯片中,然后脫離仿真器運(yùn)行。

系統(tǒng)開始運(yùn)行時(shí),首先進(jìn)行初始化,其過程為:對(duì)RC500配置的初始化,液晶顯示的初始化和定時(shí)器波特率的初始化。

1、初始化系統(tǒng)

/////////////////////////////////////////////////////////////////////////系統(tǒng)初始化

///////////////////////////////////////////////////////////////////////voidinit(void){ET2=0;//cpu的定時(shí)溢出中斷2開放控制位T2CON=0x04;//啟動(dòng)定時(shí)器2

PCON=0x80;//串口波特加倍SCON=0x70;

TMOD=0x21;//采用定時(shí)器1的工作模式2,采用定時(shí)器0的工作模式1//TMOD=0x22;TH1=0xfd;//0xfdTL1=0xfd;//0xfdTR1=1;//啟動(dòng)T1開始計(jì)數(shù)TH0=0x60;TL0=0x60;

TR0=0;//啟動(dòng)T0開始計(jì)數(shù)

ET0=0;//阻止定時(shí)/計(jì)數(shù)器0溢出產(chǎn)生中斷ET1=0;//阻止定時(shí)/計(jì)數(shù)器1溢出產(chǎn)生中斷EA=1;//開總中斷EX0=1;//阻止外部中斷0IT0=1;//外部中斷為邊沿觸發(fā)方式TR2=0;//T2中止計(jì)數(shù)

系統(tǒng)硬件設(shè)計(jì)

ES=1;//響應(yīng)串行口中斷//SPEAKER=1;//P2.6蜂鳴器響//delay_10ms(30);//延時(shí)0.3秒//SPEAKER=0;//蜂鳴器滅//delay_10ms(30);//SPEAKER=0;}

/*****************************************************************************

*復(fù)位并初始化RC500

*注意:RC500上電后應(yīng)延時(shí)500ms才能可靠初始化

******************************************************************************/

charPcdReset(){

charstatus=MI_OK;charn=0;

uinti=0x4000;RC500_CE=0;RC500_RST=1;DelayMs(100);RC500_RST=0;

while(i!=0i--;}

while(i!=0i--;}

if(i!=0){

WriteRawRC(RegPage,0x80);n=0x80;

while((i!=0)i--;}

if(i==0||(n}}else{

status=MI_RESETERR;}

if(status==MI_OK){

WriteRC(RegClockQControl,0x0);WriteRC(RegClockQControl,0x40);DelayUs(100);

ClearBitMask(RegClockQControl,0x40);WriteRC(RegBitPhase,0xad);WriteRC(RegRxThreshold,0xff);WriteRC(RegRxControl2,01);WriteRC(RegFIFOLevel,0x1a);WriteRC(RegTimerControl,0x02);WriteRC(RegIRqPinConfig,0x02);WriteRC(RegTxControl,0x5b);}

returnstatus;}

4.2射頻讀寫卡程序設(shè)計(jì)

讀寫卡過程是一個(gè)很繁雜的程序執(zhí)行過程,要執(zhí)行一系列的操作指令,調(diào)多個(gè)C51函數(shù),包括裝載密碼,詢卡,防沖突,選卡,驗(yàn)證密碼,讀寫卡,卡。這一系列的操作必需按固定的順序進(jìn)行。在沒有Mifare卡進(jìn)入射頻天有效范圍時(shí),在低5位顯示當(dāng)前時(shí)鐘,當(dāng)有Mifare卡進(jìn)入到射頻天線的有范圍,讀卡程序驗(yàn)證卡及密碼成功后,將卡號(hào)和讀卡時(shí)間及相關(guān)數(shù)據(jù)作為一記錄存入E2pROM存儲(chǔ)器中,并在LED顯示器高5位上顯示卡號(hào)。程序流程圖如圖4-2所示:

系統(tǒng)硬件設(shè)計(jì)

RC500復(fù)位與初始化探尋IC卡IC卡防沖突選擇IC卡認(rèn)證命令轉(zhuǎn)移讀塊寫塊增值減值暫停N是否改變?cè)L問分區(qū)?Y圖4-2

1.寫(設(shè)置)RFID卡

第一部分功能為上位機(jī)對(duì)讀卡器的操作,讀卡器對(duì)卡進(jìn)行數(shù)據(jù)的讀寫,密碼的管理和功能的測(cè)試,通過上位機(jī)發(fā)送的命令,可以進(jìn)行尋卡,防沖突,選擇和終止等功能。對(duì)16個(gè)扇區(qū)密碼的下載,及AB組密碼的選擇。對(duì)16個(gè)扇區(qū),每個(gè)扇區(qū)3個(gè)塊的數(shù)據(jù)讀寫。塊值操作,包括初始化,讀值,加值和減值;密碼的修改。

射頻卡處理部分,voidcmd—execution(void)詳細(xì)的寫出了怎樣進(jìn)行各

種設(shè)置,包括12種功能設(shè)置:終止卡操作;尋卡,防沖突,選擇卡,返回值操作;防沖突讀卡的系列號(hào)MLastSelectedSnr;選擇卡SelectCard:校驗(yàn)卡密碼(E2);下載密碼(E2);直接校驗(yàn)密碼;讀卡;寫卡下載密碼;參數(shù)設(shè)置。

/*****************************************************************************

系統(tǒng)硬件設(shè)計(jì)

*原型:charPcdRequest(ucharreq_code)*功能:尋卡

*input:req_code=尋卡方式

*req_code=0x52:尋天線區(qū)內(nèi)所有符合14443A標(biāo)準(zhǔn)的卡*req_code=0x26:只尋未進(jìn)入休眠狀態(tài)的卡*ouput:status=MI_OK:尋卡成功

*****************************************************************************/

/*****************************************************************************

*原型:charPcdAnticoll(uchar*snr)*功能:防沖撞

*尋卡成功后,通過此函數(shù)向天線區(qū)內(nèi)卡片發(fā)送防沖撞命令,無論天線區(qū)內(nèi)有幾張卡

*此函數(shù)只得到一張卡片的序列號(hào),再用Pcdselect()函數(shù)選定這張卡,則所有后續(xù)

*命令針對(duì)此卡,操作完畢后用PcdHalt()命令此卡進(jìn)入休眠狀態(tài),再尋未進(jìn)入休眠

*狀態(tài)的卡,可進(jìn)行其它卡片的操作

*input:snr=存放序列號(hào)(4byte)的內(nèi)存單元首地址*output:status=MI_OK:成功

*得到的序列號(hào)放入指定單元

*****************************************************************************/

/*****************************************************************************

*原型:charPcdSelect(uchar*snr)*功能:選定一張卡

*input:snr=存放序列號(hào)(4byte)的內(nèi)存單元首地址*output:status=MI_OK:成功

*****************************************************************************/

/*****************************************************************************

*原型:charChangeCodeKey(uchar*uncoded,uchar*coded)

*功能:將密鑰轉(zhuǎn)換為RC500接收格式,密鑰格式見048020.PDF第67頁密鑰準(zhǔn)備

*input:uncoded=6字節(jié)未轉(zhuǎn)換的密鑰首地址*coded=12字節(jié)轉(zhuǎn)換后的密鑰存放首地址*output:status=MI_OK:成功

*轉(zhuǎn)換后的密鑰存入指定單元

*********************************************************************

系統(tǒng)硬件設(shè)計(jì)

********/

/*****************************************************************************

*原型:charPcdAuthKey(uchar*keys)

*功能:將已轉(zhuǎn)換格式后的密鑰送到RC500的FIFO中*input:keys=12字節(jié)密鑰存放首地址*output:status=MI_OK:成功

*****************************************************************************/

/*****************************************************************************

*原型:charPcdAuthState(ucharauth_mode,ucharblock,uchar*snr)*功能:用存放RC500的FIFO中的密鑰和卡上的密鑰進(jìn)行驗(yàn)證*input:auth_mode=驗(yàn)證方式,0x60:驗(yàn)證A密鑰,0x61:驗(yàn)證B密鑰*block=要驗(yàn)證的絕對(duì)塊號(hào)*snr=序列號(hào)首地址*output:status=MI_OK:成功

*****************************************************************************/

/*****************************************************************************

*原型:charPcdRead(ucharaddr,uchar*readdata)*功能:讀卡上一塊(block)數(shù)據(jù)(16字節(jié))*input:adde=要讀的絕對(duì)塊號(hào)

*readdata=讀出的數(shù)據(jù)存放首地址*output:status=MI_OK:成功

*讀出的數(shù)據(jù)存入readdata指向的單元

*****************************************************************************/

/*****************************************************************************

*原型:charPcdValue(uchardd_mode,ucharaddr,uchar*value)*功能:扣款和充值

*input:dd_mode=命令字,0xc0:扣款,0xc1:充值*addr=錢包的絕對(duì)塊號(hào)

*value=4字節(jié)增(減)值首地址,16進(jìn)制數(shù),低位在前*output:status=MI_OK:成功

*****************************************************************************/

5.PCB設(shè)計(jì)

5.1PCB設(shè)計(jì)思想

在PCB設(shè)計(jì)過程中,合理的布局、布線是及其關(guān)鍵的。所謂布局就是把電路

系統(tǒng)硬件設(shè)計(jì)

圖上所有的元器件都合理地安排到有限面積的上,而布線就是在布局之后通過設(shè)計(jì)銅鉑的走線圖,依照原理圖連通所有的走線。顯然布局的合理程度直接影響布線的成功率,往往在布線過程中還需要對(duì)布局作適當(dāng)?shù)恼{(diào)整,布線設(shè)計(jì)可以采用雙層走線和單層走線。對(duì)于極其繁雜的設(shè)計(jì)也可以考慮采用多層布線方案。

本系統(tǒng)PCB板的設(shè)計(jì)思路為:模擬電路和數(shù)字電路的布局相對(duì)獨(dú)立,但又不完全分開:連接插座基本都設(shè)計(jì)在PCB板的外圍,便利拔插和使用。并采用了雙層布線方式,使讀寫器的電路板更加趨于合理。設(shè)計(jì)過程中,全部采用貼片式的元器件,這樣可有效的節(jié)省空間和縮小體積,使整個(gè)電路板看上去美觀、大方。天線部分的設(shè)計(jì)將銅鉑的走線和元器件有效的分開,這樣有利于實(shí)際產(chǎn)品的生產(chǎn)和加工、安裝,而且又美觀。地線盡量擴(kuò)大,由于整個(gè)電路板采用了雙層布線,又加之是混合電路(模擬電路和數(shù)字電路),所以設(shè)計(jì)時(shí)就將一面作為主要的信號(hào)走線,而另一面作為主要地的走線,這有利于電磁兼容性(EMC)和戰(zhàn)勝干擾等問題。RFID讀寫器原理圖的PCB板為圖5-l所示,系統(tǒng)頂層圖見圖4—2。其中,本系統(tǒng)為5V供電(阻止電壓高于5.25V)。

圖5-1

結(jié)論與展望

無線RFID讀寫器,具有功能多樣、安全可靠、性價(jià)比高等特點(diǎn),可以在馬路不停車收費(fèi)和交通管理、資產(chǎn)設(shè)備管理、物流倉儲(chǔ)管理、校園考勤、進(jìn)銷存、餐飲消遣管理、檢票系統(tǒng)、畜牧管理等方面可以發(fā)揮重要作用。本文通過對(duì)無線RFID讀寫器系統(tǒng)的設(shè)計(jì)和開發(fā),得出如下結(jié)論:

1)論述了無線RFID讀寫器系統(tǒng)的主要應(yīng)用領(lǐng)域和發(fā)展動(dòng)向,介紹了硬件系統(tǒng)、軟件系統(tǒng)的開發(fā)過程,提出了切實(shí)可行的應(yīng)用方案。

2)通過對(duì)硬件系統(tǒng)和軟件系統(tǒng)的細(xì)心調(diào)試,發(fā)現(xiàn)了存在的一些問題,在調(diào)試

系統(tǒng)硬件設(shè)計(jì)

過程中把問題逐一解決,從而保證各功能完美實(shí)現(xiàn),保證系統(tǒng)安全、可靠運(yùn)行,實(shí)用范圍十分廣泛。

3)對(duì)系統(tǒng)開發(fā)過程中用到的關(guān)鍵技術(shù),如IC卡防沖突機(jī)制、無線應(yīng)用等技術(shù)進(jìn)行了詳細(xì)研究.可利用Delphi開發(fā)前臺(tái)應(yīng)用程序?qū)崿F(xiàn)對(duì)后臺(tái)SQLServer2000數(shù)據(jù)庫的調(diào)用,從而使其應(yīng)用更加廣泛。

4)本系統(tǒng)如加以修改和提升,還可以設(shè)計(jì)成萬能卡讀寫器(市場(chǎng)上只要有的13.5M射頻卡都可以進(jìn)行讀寫),當(dāng)然要增加硬件和重新設(shè)計(jì)軟件。

5)本系統(tǒng)如還可以在增加存儲(chǔ)容量和修改軟件的基礎(chǔ)上,將其設(shè)計(jì)成為一個(gè)手持的便攜式讀寫器,這樣其應(yīng)用范圍就更加廣泛。

附錄:

/*****************************************************************************

*延時(shí)

*****************************************************************************/

voidDelayMS(ucharj){

uchari,n;

for(i=0;i

系統(tǒng)硬件設(shè)計(jì)status=MI_BITCOUNTERR;}else{MfComData.MfCommand=PCD_AUTHENT2;MfComData.MfLength=0;if((status=PcdComTransceive(pi))==MI_OK){if(ReadRC(RegControl)else

status=MI_AUTHERR;}}}}

returnstatus;}

/*****************************************************************************

*原型:charPcdRead(ucharaddr,uchar*readdata)*功能:讀卡上一塊(block)數(shù)據(jù)(16字節(jié))*input:adde=要讀的絕對(duì)塊號(hào)

*readdata=讀出的數(shù)據(jù)存放首地址*output:status=MI_OK:成功

*讀出的數(shù)據(jù)存入readdata指向的單元

*****************************************************************************/

charPcdRead(ucharaddr,uchar*readdata){

charstatus;uchari;

idatastructTranSciveBuffer{ucharMfCommand;ucharMfLength;ucharMfData[16];}MfComData;structTranSciveBuffer*pi;

pi=PcdSetTmo(4);

WriteRC(RegChannelRedundancy,0x0F);MfComData.MfCommand=PCD_TRANSCEIVE;MfComData.MfLength=2;

MfComData.MfData[0]=PICC_READ;

系統(tǒng)硬件設(shè)計(jì)

MfComData.MfData[1]=addr;

status=PcdComTransceive(pi);if(status==MI_OK){

if(MfComData.MfLength!=0x80){

status=MI_BITCOUNTERR;}else{

for(i=0;iMfCommand=RC500命令字*pi->MfLength=發(fā)送的數(shù)據(jù)長(zhǎng)度*pi->MfData[]=發(fā)送數(shù)據(jù)*output:status=錯(cuò)誤字

*pi->MfLength=接收的數(shù)據(jù)長(zhǎng)度*pi->MfData[]=接收數(shù)據(jù)

*****************************************************************************/

idatastructTranSciveBuffer{ucharMfCommand;ucharMfLength;ucharMfData[19];};

charPcdComTransceive(structTranSciveBuffer*pi){

bitrecebyte=0;charstatus;

ucharirqEn=0x00;ucharwaitFor=0x00;ucharlastBits;ucharn;uinti;

switch(pi->MfCommand){

casePCD_IDLE:irqEn=0x00;waitFor=0x00;break;

casePCD_WRITEE2:irqEn=0x11;waitFor=0x10;break;

系統(tǒng)硬件設(shè)計(jì)

casePCD_READE2:irqEn=0x07;waitFor=0x04;recebyte=1;break;

casePCD_LOADCONFIG:casePCD_LOADKEYE2:casePCD_AUTHENT1:irqEn=0x05;waitFor=0x04;break;

casePCD_CALCCRC:irqEn=0x11;waitFor=0x10;break;

casePCD_AUTHENT2:irqEn=0x04;waitFor=0x04;break;

casePCD_RECEIVE:irqEn=0x06;waitFor=0x04;recebyte=1;break;

casePCD_LOADKEY:irqEn=0x05;waitFor=0x04;break;

casePCD_TRANSMIT:irqEn=0x05;waitFor=0x04;break;

casePCD_TRANSCEIVE:irqEn=0x3D;waitFor=0x04;recebyte=1;break;default:

pi->MfCommand=MI_UNKNOWN_COMMAND;break;}

if(pi->MfCommand!=MI_UNKNOWN_COMMAND){

WriteRC(RegPage,0x00);

系統(tǒng)硬件設(shè)計(jì)

WriteRC(RegInterruptEn,0x7F);WriteRC(RegInterruptRq,0x7F);WriteRC(RegCommand,PCD_IDLE);SetBitMask(RegControl,0x01);

WriteRC(RegInterruptEn,irqEn|0x80);for(i=0;iMfLength;i++){

WriteRC(RegFIFOData,pi->MfData[i]);}

WriteRC(RegCommand,pi->MfCommand);i=0x2000;do{

n=ReadRC(RegInterruptRq);i--;}

while((i!=0)status=MI_COM_ERR;

if((i!=0)if(recebyte){

n=ReadRC(RegFIFOLength);

lastBits=ReadRC(RegSecondaryStatus)if(lastBits){pi->MfLength=(n-1)*8+lastBits;}else{pi->MfLength=n*8;}if(n==0){n=1;}for(i=0;iMfData[i]=ReadRC(RegFIFOData);}}

系統(tǒng)硬件設(shè)計(jì)

}}

elseif(n}else{

status=MI_COM_ERR;}

WriteRC(RegInterruptEn,0x7F);WriteRC(RegInterruptRq,0x7F);}

returnstatus;}

/*****************************************************************************

*原型:voidWriteRC(ucharAddress,ucharvalue)*功能:寫RC500寄放器*input:Address=寄放器地址*value=要寫入的值*ouput:無

******************************************************************************/

voidWriteRC(ucharAddress,ucharvalue){

ucharpdata*pa;pa=RegPage;*pa=Address>>3;pa=Address;*pa=value;}

/*****************************************************************************

*原型:voidWriteRawRC(ucharAddress,ucharvalue)*功能:寫RC500寄放器

*該寄放器須在當(dāng)前頁內(nèi)*input:Address=寄放器地址*value=要寫入的值*ouput:無

******************************************************************************/

系統(tǒng)硬件設(shè)計(jì)

voidWriteRawRC(ucharAddress,ucharvalue){

ucharpdata*pa;pa=Address;*pa=value;}

/*****************************************************************************

*原型:ucahrReadRC(ucharAddress)*功能:讀RC500寄放器*input:Address=寄放器地址*ouput:讀出的值

******************************************************************************/

ucharReadRC(ucharAddress){

ucharpdata*pa;pa=RegPage;*pa=Address>>3;pa=Address;return(*pa);}

/*****************************************************************************

*原型:ucharReadRawRC(ucharAddress)*功能:讀RC500寄放器

*該寄放器須在當(dāng)前頁內(nèi)*input:Address=寄放器地址*ouput:讀出的值

******************************************************************************/

ucharReadRawRC(ucharAddress){

ucharpdata*pa;pa=Address;return(*pa);}

/*****************************************************************************

*原型:voidSetBitMask(ucharreg,ucharmask)*功能:置RC500寄放器位

系統(tǒng)硬件設(shè)計(jì)

*input:reg=寄放器地址*mask=置位值*output:無

**************************************************************

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論