




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新能源材料性能測(cè)試服務(wù)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 油畫創(chuàng)作在線平臺(tái)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 紡織印染廢氣除塵設(shè)備行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 殺菌劑環(huán)保配方研究行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 污泥碳化減容技術(shù)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025年登高架設(shè)考試試題題庫
- PEP小學(xué)四年級(jí)英語聽力訓(xùn)練計(jì)劃
- 2025年人教版八年級(jí)道德與法治課題研究計(jì)劃
- 家電維修售后服務(wù)流程管理
- 輸電線路工程(勘察設(shè)計(jì))強(qiáng)條實(shí)施監(jiān)理檢查表
- 蘇教版數(shù)學(xué)二年級(jí)下冊(cè)《數(shù)學(xué)繪本:公主殿下來的那一天》區(qū)級(jí)展示課(定稿)
- 促進(jìn)市級(jí)醫(yī)院臨床技能與臨床創(chuàng)新三年行動(dòng)計(jì)劃
- 主觀幸福感(GWB)量表
- 中國傳媒大學(xué)-導(dǎo)演手冊(cè)-課件
- 健康狀況詢問與接種禁忌核查表
- 新電務(wù)系統(tǒng)作業(yè)標(biāo)準(zhǔn)匯編一1現(xiàn)場(chǎng)信號(hào)工
- Word版中國空白地圖大全
- 面板滑膜專項(xiàng)施工方案
- 鋼筆字練習(xí)田字格
- 國家開放大學(xué)《物流管理基礎(chǔ)》形考任務(wù)1-4參考答案(2)
- 產(chǎn)品研發(fā)項(xiàng)目管理流程及表單
評(píng)論
0/150
提交評(píng)論