USB接口技術(shù)應(yīng)用和RFID應(yīng)用系統(tǒng)軟件_第1頁
USB接口技術(shù)應(yīng)用和RFID應(yīng)用系統(tǒng)軟件_第2頁
USB接口技術(shù)應(yīng)用和RFID應(yīng)用系統(tǒng)軟件_第3頁
USB接口技術(shù)應(yīng)用和RFID應(yīng)用系統(tǒng)軟件_第4頁
USB接口技術(shù)應(yīng)用和RFID應(yīng)用系統(tǒng)軟件_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 1-USB接口技術(shù)應(yīng)用摘要:USB是通用串行總線(UniversalSerialBus)的簡稱,是一種應(yīng)用在計(jì)算機(jī)領(lǐng)域的新型接口技術(shù)(也越來越多地應(yīng)用于嵌入式便攜設(shè)備),是當(dāng)前最流行的接口技術(shù)之一。USB以其卓越的易用性、穩(wěn)定性、兼容性、擴(kuò)展性、完備性、網(wǎng)絡(luò)性和低功耗等諸多優(yōu)點(diǎn)得到了迅速發(fā)展和廣泛的應(yīng)用。本畢業(yè)設(shè)計(jì)在對(duì)USB接口技術(shù)原理進(jìn)行深入的理解的基礎(chǔ)上,通過對(duì)一套教學(xué)演示用傳感器套件產(chǎn)品的串口接口改進(jìn)成USB接口的過程,探討USB接口技術(shù)運(yùn)用到實(shí)際設(shè)計(jì)過程當(dāng)中的一種普遍方法。采用PIC16F690控制CH372接口芯片實(shí)現(xiàn)USB的批量傳輸和中斷傳輸,編寫基于VC的PC端配套軟件讀寫單片機(jī)數(shù)據(jù)并顯示來實(shí)現(xiàn)產(chǎn)品的各項(xiàng)功能。論文包括USB原理介紹,CH372接口芯片的使用,USB設(shè)備的軟硬件設(shè)計(jì)以及PC端程序編寫思路。對(duì)USB接口開發(fā)或者對(duì)原有設(shè)備進(jìn)行USB升級(jí)有一定的作用。關(guān)鍵詞:通用串行總線;USBPIC16F690;接口芯片;CH372Abstract:UniversalSerialBus(USB)isspecifiedtobeanindustry-standardextensiontothePCarchitecturewithafocusonPCperipheralsthatenableconsumerandbusinessapplications.Now,becauseofthearchitectureoftheUSB:Ease-of-use,Low-cost,MultiplePeripheralsandFullbackwardcompatibility,USBisfullusedinthedevelopmentofPCperipherals.ThisgraduationdesigndevelopstheUSBportforakindofteachingproductwhatisusedforshowingsensorsanddoingexperimentforstudentsinstandofCOMport.It’sshowedawidespreadmethodofdevelopingtheUSBport.AfterhavingstudiedtheUniversalSerialBusSpecificationdeeply,Ihavedesignedthisproject.TheMicrochipPIC16F690controlstheUSBdeviceICCH372tobulkandinterruptTransactions.Attheendofdesign,IprogrammedaapplicationsoftwarewithVC++6.0toshowtheresultofsensorsandexperiment.ThisthesisincludesUniversalSerialBusSpecification,methodofCH372,hardwareandfirmwareprogrammerandthewayofdevelopinganapplication.ItisusefulfordesignaUSBdeviceordevelopstheexistencedevicewithUSB.Keywords:UniversalSerialBus;USB;PIC16F690;CH3721前言USB是英文UniversalSerialBus的簡稱,是一種應(yīng)用在計(jì)算機(jī)領(lǐng)域的新型接口技術(shù)(也越來越多地應(yīng)用于嵌入式便攜設(shè)備),是當(dāng)前最流行的接口技術(shù)之一。USB以其卓越的易用性、穩(wěn)定性、兼容性、擴(kuò)展性、完備性、網(wǎng)絡(luò)性和低功耗等諸多優(yōu)點(diǎn)得到了迅速發(fā)展和廣泛的應(yīng)用。當(dāng)今的計(jì)算機(jī)外部設(shè)備都在追求高速度和高通用性。為了滿足用戶的需求,以Intel為首的七家公司Intel、Compaq、Microsoft、IBM、DEC、Northern、Telecom以及日本NEC于1994年11月推出了USB(UniversalSerialBus)通用串行總線協(xié)議的第一個(gè)草案專用于低中速的計(jì)算機(jī)外設(shè),USB可把多達(dá)127個(gè)外設(shè)同時(shí)連到用戶的系統(tǒng)上,所有的外設(shè)通過協(xié)議來共享USB的帶寬,其12Mbps的帶寬對(duì)于鍵盤鼠標(biāo)等低中速外設(shè)是完全足夠。隨著USB技術(shù)的應(yīng)用不斷深入,在2000年發(fā)布的USB規(guī)范版本2.0中已經(jīng)將USB支持的帶寬提升到480Mbps。USB正在不斷地占領(lǐng)PC外設(shè)的市場(chǎng),成為了PC外設(shè)的主流接口。在自己的產(chǎn)品中使用USB已經(jīng)成為了一種潮流。如果希望產(chǎn)品被市場(chǎng)接受開發(fā)者往往不得不使用USB?,F(xiàn)在USB不光成為了微機(jī)主板上的標(biāo)準(zhǔn)端口而且還成為了所有微機(jī)外設(shè)(包括鍵盤、鼠標(biāo)、顯示器、打印機(jī)、數(shù)字相機(jī)、掃描儀和游戲手柄等等)與主機(jī)相連的標(biāo)準(zhǔn)協(xié)議之一。這種連接較以往普通并口(Parallelport)和串口(serialport)的連接而言主要的優(yōu)點(diǎn)是速度高、功耗低、支持即插即用(Plug&Play)和使用維護(hù)方便。因此我覺得USB的應(yīng)用將越來越廣泛。特別是在電氣專業(yè)領(lǐng)域,工業(yè)現(xiàn)場(chǎng)控制,便攜測(cè)試設(shè)備等方面。 在對(duì)USB協(xié)議和實(shí)現(xiàn)方法進(jìn)行了深入的研究之后,在導(dǎo)師的支持下,我有幸得到一外資企業(yè)要求設(shè)計(jì)USB接口的教學(xué)演示用傳感器套件的機(jī)會(huì),讓我能夠?qū)⒆约旱乃鶎W(xué)的USB技術(shù)應(yīng)用到實(shí)際產(chǎn)品當(dāng)中去。 該企業(yè)現(xiàn)有一套基于串口教學(xué)演示用傳感器套件產(chǎn)品,用于初高中學(xué)校教學(xué)過程中利用電腦演示物理量,實(shí)驗(yàn)結(jié)果等。由于串口越來越不普遍,給用戶帶來了很大的影響。企業(yè)迫切希望推出基于USB接口的升級(jí)產(chǎn)品來順應(yīng)時(shí)代潮流,更好地滿足用戶需求。2總體設(shè)計(jì)方案2.1分析用戶要求企業(yè)已經(jīng)擁有一套比較完善的傳感器產(chǎn)品。該套產(chǎn)品中有溫度、濕度、導(dǎo)電率、pH、光密度、光電、空氣濕度、磁場(chǎng)等十余種傳感器,銷往包括俄羅斯在內(nèi)的東歐國家。使用時(shí),這些傳感器接入到一個(gè)稱為主機(jī)的設(shè)備上,該設(shè)備將傳感器的模擬量經(jīng)過計(jì)算后存儲(chǔ)并通過串口發(fā)送到PC端。PC端有一套配合使用的軟件,在軟件平臺(tái)上演示傳感器的效果或者實(shí)驗(yàn)結(jié)果。用戶要求所有傳感器都獨(dú)立采用USB接口,即每一個(gè)傳感器都能夠獨(dú)立接入PC端USB接口。用戶允許改變現(xiàn)有傳感器的結(jié)構(gòu),包括測(cè)量方法。PC機(jī)端程序要求實(shí)現(xiàn)原有軟件的所有功能。2.2總體設(shè)計(jì)方案 基于企業(yè)已經(jīng)擁有一套比較完善的傳感器產(chǎn)品,我們的工作只是將傳感器升級(jí)成USB接口,因此首先分析現(xiàn)有傳感器的測(cè)量原理和電路結(jié)構(gòu),在此基礎(chǔ)上進(jìn)行硬件升級(jí)。由于串口操作和USB操作方法的不同,PC端軟件必須重新編寫。系統(tǒng)硬件框圖圖中傳感器部分由實(shí)際的傳感器代替,信號(hào)處理部分主要是對(duì)傳感器信號(hào)的放大和過濾。利用PIC單片機(jī)中集成的10位AD轉(zhuǎn)換功能將模擬量進(jìn)行數(shù)字化后存儲(chǔ)(如有必要進(jìn)行一定的計(jì)算)。利用PIC并口同USB接口芯片進(jìn)行數(shù)據(jù)和命令傳輸,以實(shí)現(xiàn)USB傳輸功能。由于USB的傳輸一定是主機(jī)發(fā)起的,所以PC機(jī)端的應(yīng)用軟件除了要實(shí)現(xiàn)當(dāng)前物理量的顯示功能外,還必須能夠?qū)崿F(xiàn)USB的各項(xiàng)傳輸。出于穩(wěn)定性考慮,我基本采用原來的傳感器的測(cè)量方法和模擬電路,而且現(xiàn)有的產(chǎn)品電路比較成熟。因此,圖中傳感器和信號(hào)處理部分基本上是基于原有電路之上的,我并沒有參與過多的設(shè)計(jì)和改進(jìn)。因此在本論文中不再涉及此部分設(shè)計(jì)思路。3USB的基本原理3.1USB協(xié)議概述USB是英文UniversalSerialBus的簡稱。它以其易用性、穩(wěn)定性、兼容性、擴(kuò)展性、完備性、網(wǎng)絡(luò)性和低功耗等優(yōu)點(diǎn)得到了迅速發(fā)展和廣泛的應(yīng)用。學(xué)習(xí)USB的相關(guān)知識(shí)是進(jìn)行USB項(xiàng)目開發(fā)的基礎(chǔ)。USB系統(tǒng)均有主機(jī)和從機(jī)兩個(gè)部分,要注意的是由于USB系統(tǒng)是被動(dòng)通信系統(tǒng),從機(jī)只能被動(dòng)的執(zhí)行主機(jī)的命令。主機(jī)理論上可以是任何帶有CPU的控制器,目前由于PC的強(qiáng)大的處理能力和存儲(chǔ)空間,被廣泛的應(yīng)用為主機(jī)。USB從機(jī)一般就是指USB設(shè)備,可以實(shí)現(xiàn)一定的功能。這篇認(rèn)識(shí)報(bào)告主要整理了三方面內(nèi)容。第一部分是整理了USB的通信協(xié)議,第二部分主要整理了USB項(xiàng)目開發(fā)的步驟,第三部分主要介紹了USB接口芯片CH372的功能和接口電路,普通的USB通信的實(shí)現(xiàn)。整理的資料對(duì)初學(xué)USB有一定的參考意義。3.2USB的主要優(yōu)點(diǎn)USB有自供電(Self-Powered)和總線供電(Bus-Powered)兩種供電模式。如果3ms內(nèi)沒有總線操作,設(shè)備就自動(dòng)掛起,降低功耗。能夠?qū)崿F(xiàn)即插即用(PnP,PlayandPlug)。在USB的電氣結(jié)構(gòu)上能夠判斷設(shè)備的接入和拔出。3.3USB系統(tǒng)組成USB整體通信模型:也就是USB的星形拓?fù)浣Y(jié)構(gòu),以USB主機(jī)為核心,建立USB主機(jī)與USB設(shè)備之間的數(shù)據(jù)通信,通過USBHub為節(jié)點(diǎn)連接主機(jī)與設(shè)備。USB數(shù)據(jù)通信協(xié)議:以差模串行信號(hào)為載體傳送二進(jìn)制代碼來傳輸信號(hào);數(shù)據(jù)包作為最基本的完整信息單元,包含了一系列數(shù)據(jù)信息。數(shù)據(jù)包也可以包括很多稱為“域”的層次;以包為基礎(chǔ),構(gòu)成USB的四種數(shù)據(jù)傳輸類型,進(jìn)而組成不同的傳輸類型,傳輸各種類型的數(shù)據(jù),實(shí)現(xiàn)USB的各種功能。軟硬件架構(gòu):包括主機(jī),HUB與設(shè)備架構(gòu);主機(jī)與設(shè)備通信的流程、步驟;軟硬件設(shè)計(jì)方法等。這是USB系統(tǒng)開發(fā)工程師最終的目的,也是學(xué)習(xí)和掌握USB技術(shù)的目的。3.4硬件結(jié)構(gòu)USB采用四線電纜來傳輸信號(hào)與電源如圖2.3所示USB電纜定義其中D+和D-是一對(duì)差模的信號(hào)線使用3.3V的電平而VBus和GND則提供了5V的電源而USB正是在電纜和連接點(diǎn)的設(shè)計(jì)上做了處理才使得熱插拔產(chǎn)生的強(qiáng)電流可以被安全地吸收。主機(jī)或Hub的下行端口圖左的D+與D-都用15K電阻接地使得在沒有設(shè)備插入的時(shí)候D+與D-上的電平始終為低,全速設(shè)備的上行端口的D+通過1.5K電阻接到3.3V而低速設(shè)備的上行端口的D-通過1.5K電阻也接到3.3V,使得在設(shè)備插入主機(jī)或Hub的時(shí)候D+或D-上會(huì)產(chǎn)生一個(gè)上升沿,主機(jī)根據(jù)那條線上的電平變化得知接入的設(shè)備速度。USB設(shè)備連接示意圖3.5通信協(xié)議 “包”是USB最基本的數(shù)據(jù)單元,分為令牌包、數(shù)據(jù)包和握手包。包又是由“域”組成,同步序列域、包標(biāo)識(shí)域、地址域、端點(diǎn)域、幀號(hào)域、數(shù)據(jù)域和CRC校驗(yàn)域。 以包為基礎(chǔ),USB定義了4種數(shù)據(jù)的傳輸類型:控制傳輸、中斷傳輸、批量傳輸和同步傳輸。每一種類型都由一定的包按照某種特定的格式組成。 按照協(xié)議規(guī)定:USB總線上首先發(fā)送LSB,然后發(fā)送臨近的下一位。最后發(fā)送MSB。3.5.1域同步序列域(SynchronizationSequence,SYNC)用于時(shí)鐘同步,代表一個(gè)包的起始。8位固定為000001;包標(biāo)識(shí)域(PacketIdentifierField,PID)標(biāo)明包的類型和格式,作為包的錯(cuò)誤檢測(cè)手段的一種。8位,4位標(biāo)識(shí)符和緊跟的4位標(biāo)識(shí)符反碼組成。可以知道標(biāo)識(shí)碼有16種。令牌包:0x01輸出(OUT)啟動(dòng)一個(gè)方向?yàn)橹鳈C(jī)到設(shè)備的傳輸,并包含了設(shè)備地址和標(biāo)號(hào)0x09輸入(IN)啟動(dòng)一個(gè)方向?yàn)樵O(shè)備到主機(jī)的傳輸,并包含了設(shè)備地址和標(biāo)號(hào)0x05幀起始(SOF)表示一個(gè)幀的開始,并且包含了相應(yīng)的幀號(hào)0x0d設(shè)置(SETUP)啟動(dòng)一個(gè)控制傳輸,用于主機(jī)對(duì)設(shè)備的初始化數(shù)據(jù)包:0x03偶數(shù)據(jù)包(DATA0),0x0b奇數(shù)據(jù)包(DATA1)握手包:0x02確認(rèn)接收到無誤的數(shù)據(jù)包(ACK)0x0a無效,接收(發(fā)送)端正在忙而無法接收(發(fā)送)信息0x0e錯(cuò)誤,端點(diǎn)被禁止或不支持控制管道請(qǐng)求特殊包0x0C前導(dǎo),用于啟動(dòng)下行端口的低速設(shè)備的數(shù)據(jù)傳輸?shù)刂酚颍ˋddressField,ADDR)存放設(shè)備在主機(jī)上的地址。7位,地址0000000被命名為零地址,是任何一個(gè)設(shè)備第一次連接到主機(jī)時(shí),在被主機(jī)配置、枚舉前的默認(rèn)地址,由此可知USB主機(jī)只能接127個(gè)設(shè)備。端點(diǎn)域(EndpointField,ENDP)4位,可知一個(gè)USB設(shè)備理論上有的端點(diǎn)數(shù)量最大為16個(gè)。但USB協(xié)議規(guī)定,低速設(shè)備只能定義兩個(gè)端點(diǎn)。幀號(hào)域(FrameField,F(xiàn)RAM)11位,每一個(gè)幀都有一個(gè)特定的幀號(hào),幀號(hào)域最大容量0x800,,只能在起始包中傳遞,對(duì)于同步傳輸有重要意義。數(shù)據(jù)域(DataField,DATA)長度為0~1023字節(jié),在不同的傳輸類型中,數(shù)據(jù)域的長度各不相同,但必須為整數(shù)個(gè)字節(jié)的長度。循環(huán)冗余校驗(yàn)域(CyclicRedundancyChecks,CRC)對(duì)令牌包和數(shù)據(jù)包(對(duì)于包的分類請(qǐng)看下面)中非PID域進(jìn)行校驗(yàn)的一種方法,令牌包采用CRC5,數(shù)據(jù)包采用CRC16。3.5.2包令牌包(TokenPacket)分為輸入包IN,輸出包OUT,設(shè)備包SETUP和幀起始包SOF。輸入包、輸出包和設(shè)置包的格式都是一樣的:SYNC+PID+ADDR+ENDP+CRC5(五位的校驗(yàn)碼)幀起始包的格式:SYNC+PID+11位FRAM+CRC5(五位的校驗(yàn)碼)數(shù)據(jù)包(DataPacket)分為DATA0包和DATA1包,當(dāng)USB發(fā)送數(shù)據(jù)的時(shí)候,當(dāng)一次發(fā)送的數(shù)據(jù)長度大于相應(yīng)端點(diǎn)的容量時(shí),就需要把數(shù)據(jù)包分為好幾個(gè)包,分批發(fā)送,DATA0包和DATA1包交替發(fā)送,即如果第一個(gè)數(shù)據(jù)包是DATA0,那第二個(gè)數(shù)據(jù)包就是DATA1。但也有例外情況,在同步傳輸中(四類傳輸類型中之一),所有的數(shù)據(jù)包都是為DATA0,格式如下:SYNC+PID+0~1023字節(jié)+CRC16握手包(HandshakePacket)結(jié)構(gòu)最為簡單的包,分為三種類型:確認(rèn)包ACK,無效包NAK和錯(cuò)誤包STALL。格式如下:SYNC+PID3.5.3數(shù)據(jù)傳輸類型中斷傳輸(InterruptTransfer)由OUT事務(wù)和IN事務(wù)構(gòu)成,用于鍵盤、鼠標(biāo)等HID設(shè)備的數(shù)據(jù)傳輸中。該傳輸不包括SETUP事務(wù)。批量傳輸(BulkTransfer)由OUT事務(wù)和IN事務(wù)構(gòu)成,用于大容量數(shù)據(jù)傳輸,沒有固定的傳輸速率,也不占用帶寬,當(dāng)總線忙時(shí),USB會(huì)優(yōu)先進(jìn)行其他類型的數(shù)據(jù)傳輸,而暫時(shí)停止批量轉(zhuǎn)輸。同步傳輸(IsochronousTransfer,ISO)由OUT事務(wù)和IN事務(wù)構(gòu)成,有兩個(gè)特殊地方,第一,在同步傳輸?shù)腎N和OUT事務(wù)中是沒有返回包階段的;第二,在數(shù)據(jù)包階段所有的數(shù)據(jù)包都為DATA0控制傳輸(ControlTransfer)最重要的也是最復(fù)雜的傳輸,控制傳輸由三個(gè)階段構(gòu)成(初始設(shè)置階段、可選數(shù)據(jù)階段、狀態(tài)信息步驟),每一個(gè)階段可以看成一個(gè)的傳輸,也就是說控制傳輸其實(shí)是由三個(gè)傳輸構(gòu)成的,用來于USB設(shè)備初次加接到主機(jī)之后,主機(jī)通過控制傳輸來交換信息,設(shè)備地址和讀取設(shè)備的描述符,使得主機(jī)識(shí)別設(shè)備,并安裝相應(yīng)的驅(qū)動(dòng)程序,這是每一個(gè)USB開發(fā)者都要關(guān)心的問題??刂苽鬏斣谒械腢SB設(shè)備中都需要使用,因?yàn)橹鳈C(jī)對(duì)USB設(shè)備的配置命令都需要通過控制傳輸來發(fā)送而設(shè)備的描述信息也需要通過控制傳輸傳遞給主機(jī)至于同步傳輸適用于實(shí)時(shí)性要求較高而準(zhǔn)確性要求較低的場(chǎng)合,比如音頻或視頻設(shè)備要求語音或圖象不能有明顯的滯后而如果傳輸?shù)哪承┳止?jié)出錯(cuò)耳和人眼也無法察覺,就使用同步傳輸來傳輸音頻和視頻。數(shù)據(jù)流中斷傳輸和批量傳輸都屬于異步傳輸方式,它們的主要區(qū)別在于傳輸數(shù)據(jù)的速度不一樣一般來說批量傳輸比中斷傳輸傳輸數(shù)據(jù)要快得多。3.5.4USB設(shè)備類 USB對(duì)一些具有相似特點(diǎn)并提供相似功能的USB設(shè)備進(jìn)行抽象,定義它們所特有的屬性和使用方法,這些被稱為設(shè)備類。設(shè)備類是對(duì)USB各種設(shè)備進(jìn)行分類的方法,使USB總線能夠有效地控制和設(shè)備管理各種設(shè)備,也使得各種設(shè)備的開發(fā)變得規(guī)范、簡便。各類USB設(shè)備都有自己的USB設(shè)備類協(xié)議。目前有18個(gè)USB設(shè)備類。設(shè)備驅(qū)動(dòng)程序通常由操作系統(tǒng)提供,開發(fā)人員可以直接使用,不用自己編寫。所有設(shè)備類都必須支持標(biāo)準(zhǔn)USB描述符和設(shè)備請(qǐng)求。

4USB接口芯片4.1接口芯片的選擇Cypress公司是生產(chǎn)USB接口芯片的專業(yè)廠家,它擁有很多種類USB芯片,包括全速,高速,低速,無線USB,OTG等。由于這類芯片開發(fā)需要較昂貴的開發(fā)設(shè)備,資料比較有限,大部分芯片帶有CPU,應(yīng)用不靈活。因?yàn)閁SB接口芯片功能的相似性,我項(xiàng)目中選擇了相對(duì)比較簡單和基礎(chǔ)的CH372芯片。CH372芯片是一款由南京沁恒出品的國產(chǎn)芯片,但在已知的USB設(shè)備中也有著一定的應(yīng)用。4.2CH372介紹CH372是一個(gè)USB總線的通用設(shè)備接口芯片,是CH371的升級(jí)產(chǎn)品,是CH375芯片的功能簡化版。在本地端,CH372具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機(jī)/DSP/MCU/MPU等控制器的系統(tǒng)總線上;在計(jì)算機(jī)系統(tǒng)中,CH372的配套軟件提供了簡潔易用的操作接口,與本地端的單片機(jī)通訊就如同讀寫文件。CH372內(nèi)置了USB通訊中的底層協(xié)議,具有省事的內(nèi)置固件模式和靈活的外置固件模式。在內(nèi)置固件模式下,CH372自動(dòng)處理默認(rèn)端點(diǎn)0的所有事務(wù),本地端單片機(jī)只要負(fù)責(zé)數(shù)據(jù)交換,所以單片機(jī)程序非常簡潔。在外置固件模式下,由外部單片機(jī)根據(jù)需要自行處理各種USB請(qǐng)求,從而可以實(shí)現(xiàn)符合各種USB類規(guī)范的設(shè)備。CH372的引腳圖如下,采用超小型20引腳貼片封裝。CH372引腳定義20個(gè)引腳功能如下:引腳號(hào)引腳名稱類型引腳說明20VCC電源正電源輸入端,需要外接0.1uF電源退耦電容18GND電源公共接地端,需要連接USB總線的地線5V3電源在3.3V電源電壓時(shí)連接VCC輸入外部電源,在5V電源電壓時(shí)外接容量為0.01uF退耦電容8XI輸入晶體振蕩的輸入端,需要外接晶體及振蕩電容9XO輸出晶體振蕩的反相輸出端,需要外接晶體及振蕩電容6UD+雙向三態(tài)USB總線的D+數(shù)據(jù)線,內(nèi)置可控的上拉電阻7UD-雙向三態(tài)USB總線的D-數(shù)據(jù)線17~10D7~D0雙向三態(tài)8位雙向數(shù)據(jù)總線,內(nèi)置上拉電阻3RD#輸入讀選通輸入,低電平有效,內(nèi)置上拉電阻2WR#輸入寫選通輸入,低電平有效,內(nèi)置上拉電阻19CS#輸入片選控制輸入,低電平有效,內(nèi)置上拉電阻1INT#輸出中斷請(qǐng)求輸出,低電平有效4A0輸入地址線輸入,區(qū)分命令口與數(shù)據(jù)口,內(nèi)置上拉電阻,當(dāng)A0=1時(shí)可以寫命令,當(dāng)A0=0時(shí)可以讀寫數(shù)據(jù)CH372引腳定義4.3CH372硬件電路CH372芯片正常工作時(shí)需要外部為其提供12MHz的時(shí)鐘信號(hào)。一般情況下,時(shí)鐘信號(hào)內(nèi)置的反相器通過晶體穩(wěn)頻振蕩產(chǎn)生。外圍電路只需要在XI和XO引腳之間連接一個(gè)標(biāo)稱頻率為12MHz的晶體,并且分別為XI和XO引腳對(duì)地連接一個(gè)高頻振蕩電容。如果從外部直接輸入12MHz時(shí)鐘信號(hào),那么應(yīng)該從XI引腳輸入,而XO引腳懸空。通用的被動(dòng)并行接口與控制器進(jìn)行數(shù)據(jù)讀寫。8位雙向數(shù)據(jù)總線D7~D0、讀選通輸入引腳RD#、寫選通輸入引腳WR#、片選輸入引腳CS#、中斷輸出引腳INT#以及地址輸入引腳A0。通過被動(dòng)并行接口,CH372芯片可以很方便地掛接到各種8位單片機(jī)、DSP、MCU的系統(tǒng)總線上,并且可以與多個(gè)外圍器件共存。 CH372芯片支持5V電源電壓或者3.3V電源電壓。當(dāng)使用5V工作電壓時(shí),CH372芯片的VCC引腳輸入外部5V電源,并且V3引腳應(yīng)該外接容量為0.01uF左右的電源退耦電容。當(dāng)使用3.3V工作電壓時(shí),CH372芯片的V3引腳應(yīng)該與VCC引腳相連接,同時(shí)輸入外部的3.3V電源,并且與CH372芯片相連接的其它電路的工作電壓不能超過3.3V。5單片機(jī)及系統(tǒng)實(shí)現(xiàn)5.1單片機(jī)的選擇 由于CH372芯片本身不帶CPU,因此我們需要另外選擇一塊主控芯片來實(shí)現(xiàn)對(duì)CH372芯片的控制從而實(shí)現(xiàn)USB傳輸?,F(xiàn)在主流的MCU都能實(shí)現(xiàn)對(duì)CH372的控制,我經(jīng)過綜合考慮之后最終選擇了MicroChip的PIC16F690單片機(jī),因?yàn)樵撔酒邆銹IC單片機(jī)運(yùn)行速度快、功耗低、驅(qū)動(dòng)能力強(qiáng)、外接電路簡潔、開發(fā)方便等優(yōu)勢(shì),且價(jià)格適中,具備這個(gè)項(xiàng)目必須的AD轉(zhuǎn)換和電平變換中斷功能。其引腳數(shù)量少,體積小能夠最大限度的減小產(chǎn)品的體積。5.2PIC實(shí)現(xiàn)CH372控制5.2.1硬件部分設(shè)計(jì)由于PIC16F690單片機(jī)只支持被動(dòng)PSP功能,故采用了非總線的方式與CH372芯片進(jìn)行接口通訊,單片機(jī)通過普通I/O端口模擬并口時(shí)序操作CH372芯片。外圍電路設(shè)計(jì)如圖所示:CH372外圍電路原理圖PIC16F690外圍電路原理圖如圖所示,PIC16F690利用RA0和RA1分別模擬WR和RD端口功能,RB6模擬A0端口。通過程序產(chǎn)生符合CH372要求的讀寫時(shí)序,以控制USB正常傳輸。外部中斷INT與CH372的中斷引腳相連,以此來響應(yīng)CH372的USB中斷,以便處理。5.2.2軟件部分設(shè)計(jì) 基于硬件設(shè)計(jì),PIC16F690的固件中USB通訊部分的程序設(shè)計(jì)是通過程序模擬時(shí)序來完成的。CH372芯片并口時(shí)序根據(jù)CH372芯片并口操作時(shí)序圖,我以PICC語言子函數(shù)的形式來進(jìn)行讀寫操作。部分讀寫函數(shù)如下:對(duì)CH372芯片寫命令操作時(shí)序C語言實(shí)現(xiàn)方式如下:voidCH375_WR_CMD(ucharcmd){A0=1;//選擇命令地址口RD=1;//讀選通輸入關(guān)閉WR=0;//寫選通輸入開啟Data_Bus=cmd;//單片機(jī)將數(shù)據(jù)放入輸出緩沖區(qū)Data_Dir=OUT;//單片機(jī)端口切換成輸出狀態(tài),將輸出緩沖區(qū)中的數(shù)據(jù)送到端口上DelayNOP(0);//delay14usWR=1;//寫選通輸入關(guān)閉A0=0;//選擇數(shù)據(jù)地址口Data_Dir=IN;//單片機(jī)端口切換成輸入狀態(tài)}對(duì)CH372芯片寫數(shù)據(jù)操作時(shí)序C語言實(shí)現(xiàn)方式如下:voidCH375_WR_DAT(uchardat){A0=1;//選擇數(shù)據(jù)地址口RD=1;//讀選通輸入關(guān)閉WR=0;//寫選通輸入開啟Data_Bus=dat;//單片機(jī)將數(shù)據(jù)放入輸出緩沖區(qū)Data_Dir=OUT;//單片機(jī)端口切換成輸出狀態(tài),將輸出緩沖區(qū)中的數(shù)據(jù)送到端口上DelayNOP(0);//delay14usWR=1;//寫選通輸入關(guān)閉Data_Dir=IN;//單片機(jī)端口切換成輸入狀態(tài)}對(duì)CH372芯片讀數(shù)據(jù)操作時(shí)序C語言實(shí)現(xiàn)方式如下:ucharCH375_RD_DAT(void){ucharCH375_DAT_PORT;//定義一個(gè)無符號(hào)字節(jié)變量WR=1;//寫選通輸入關(guān)閉RD=0;//讀選通輸入開啟Data_Dir=IN;//單片機(jī)端口切換成輸入狀態(tài)DelayNOP(0);//delay14usCH375_DAT_PORT=Data_Bus;//讀取單片機(jī)端口數(shù)據(jù)RD=1;//讀選通輸入關(guān)閉return(CH375_DAT_PORT);//返回單片機(jī)端口數(shù)據(jù)}5.3綜合功能實(shí)現(xiàn)PIC16F690除了要處理USB通訊以外,還需要完成傳感器信號(hào)的采集和轉(zhuǎn)換等。由于這一部分不是本論文討論的重點(diǎn),這里以溫度傳感器為例。簡單介紹基本的軟硬件設(shè)計(jì)思路。熱敏電阻采集原理圖通過不同的傳感器和測(cè)量電路得到物理量的值(一般為模擬量),通過PIC的10位AD轉(zhuǎn)換后存儲(chǔ)并在寄存器中。當(dāng)有CH372產(chǎn)生的中斷要求得到數(shù)據(jù)則將數(shù)據(jù)通過CH372傳輸給PC。整體基本流程圖如下(圖中主循環(huán)省去):程序結(jié)構(gòu)流程框圖

6PC端軟件的實(shí)現(xiàn)6.1USB設(shè)備驅(qū)動(dòng) 為了使自定義的USB設(shè)備能夠被PC操作系統(tǒng)識(shí)別并枚舉,PC端必須安裝設(shè)備驅(qū)動(dòng)。通常我們需要自己編寫與自定義設(shè)備相適應(yīng)的驅(qū)動(dòng)程序,但這涉及到了操作系統(tǒng)認(rèn)識(shí)和設(shè)備驅(qū)動(dòng)的編寫,對(duì)我們專業(yè)來說是相對(duì)比較陌生的知識(shí)。好在CH372提供了一個(gè)可以直接用的設(shè)備驅(qū)動(dòng)程序,只要進(jìn)行安裝就可以用來驅(qū)動(dòng)CH372設(shè)備。6.2CH372的動(dòng)態(tài)鏈接庫 有了驅(qū)動(dòng)程序的支持之后,我們必須能夠在應(yīng)用軟件中操作CH372。CH372為我們提供了基于它自帶的驅(qū)動(dòng)的一個(gè)DLL(動(dòng)態(tài)鏈接庫)文件。通過這個(gè)庫文件我們能夠輕松的操作CH372實(shí)現(xiàn)USB功能。使用時(shí)只要將CH375DLL.h(CH372同樣可以使用)添加到工程當(dāng)中,在需要用到的CPP文件中包含后即可使用。下面例舉了一些比較常用的函數(shù)和用法:HANDLE WINAPI CH375OpenDevice(ULONGiIndex);用來打開CH372設(shè)備,iIndex指定CH375設(shè)備序號(hào),0對(duì)應(yīng)第一個(gè)設(shè)備,設(shè)備打開后才能對(duì)其進(jìn)行讀寫操作;―――――――――VOID WINAPI CH375CloseDevice(ULONGiIndex);關(guān)閉CH375設(shè)備,結(jié)束對(duì)設(shè)備操作后進(jìn)行關(guān)閉操作;―――――――――BOOL WINAPI CH375ReadData(ULONGiIndex,PVOIDoBuffer,PULONGioLength);讀取數(shù)據(jù)塊操作;―――――――――BOOL WINAPI CH375WriteData(ULONGiIndex,PVOIDiBuffer,PULONGioLength);寫出數(shù)據(jù)塊操作;―――――――――BOOL WINAPI CH375SetIntRoutine(ULONGiIndex, mPCH375_INT_ROUTINEiIntRoutine);設(shè)定中斷服務(wù)程序,指定中斷服務(wù)程序,為NULL則取消中斷服務(wù),否則在中斷時(shí)調(diào)用該程序;―――――――――BOOL WINAPI CH375ReadInter(ULONGiIndex, PVOIDoBuffer,PULONGioLength);讀取中斷數(shù)據(jù);在熟練掌握上述函數(shù)的用法和功能后就可以在編程環(huán)境中輕松操作CH372的傳輸。CH372程序上可以實(shí)現(xiàn)批量傳輸和中斷傳輸兩種類型。 因?yàn)镃H372的驅(qū)動(dòng)程序已經(jīng)處理的底層的協(xié)議,在應(yīng)用層我們只需要通過建立回調(diào)函數(shù)來實(shí)現(xiàn)即可,基本流程如下:CH372實(shí)現(xiàn)中斷傳輸?shù)某绦蛄鞒膛總鬏斂梢钥焖賯鬏敶笈繑?shù)據(jù),在USB傳輸中是比較常用的一種傳輸方式?;镜呐總鬏斪x寫操作流程如下:CH372實(shí)現(xiàn)BULK(批量)傳輸?shù)某绦蛄鞒?.3應(yīng)用層協(xié)議 PC端軟件編程環(huán)境選用MicrosoftVisualC++6.0,在該環(huán)境下實(shí)現(xiàn)API函數(shù)的調(diào)用即可以實(shí)現(xiàn)USB傳輸。在此基礎(chǔ)上為了完成軟件功能的設(shè)計(jì),PC機(jī)和單片機(jī)之間必須定義一套應(yīng)用層協(xié)議才能完成單片機(jī)和PC之間的真正通信。協(xié)議的制定時(shí)實(shí)現(xiàn)軟件功能的基礎(chǔ),我進(jìn)行了多次修改和完善,最終確定了一套僅僅應(yīng)用于該系統(tǒng)的自定義應(yīng)用層協(xié)議。 首先,由于傳感器類型多樣,為了能夠讓PC根據(jù)不同的傳感器進(jìn)行不同處理,我對(duì)傳感器進(jìn)行了編碼:編碼英文名稱中文名稱0x01Temperaturesensor溫度傳感器0x02Conductivitysensor電導(dǎo)率傳感器0x03pHsensorPH傳感器0x04Opticaldensitysensor光電傳感器0x05Gasvolumesensor氣體體積傳感器0x06Optoelectricsensor通光率傳感器0x07Frequencyrotationsensor轉(zhuǎn)速傳感器0x08Anglerotationsensor角度傳感器0x09Pressuresensor壓力傳感器0x0AAirhumiditysensor空氣濕度傳感器0x0BMagnetfieldsensor磁場(chǎng)傳感器0x0CVoltagemeasurement電壓計(jì)傳感器代碼編碼有了如上的編碼,PC端可以通過詢問傳感器代碼得到傳感器類型,針對(duì)不同的傳感器采用不同的USB傳輸方式和數(shù)據(jù)處理方法。 針對(duì)具體的傳感器,我又制定了各自的傳輸協(xié)議,以溫度傳感器為例:主機(jī)功能代碼數(shù)據(jù)值備注查詢傳感器類型01查詢當(dāng)前值02查詢批量數(shù)據(jù)03在批量情況下有效批量開始07批量結(jié)束08設(shè)備返回傳感器類型01TemperaturesensorCODE返回當(dāng)前值02uc_AD_H,uc_AD_Luc_AD_H:AD轉(zhuǎn)換值高8位uc_AD_L:AD轉(zhuǎn)換值低8位當(dāng)前熱敏電阻值為:R=47*(256*uc_AD_H+uc_AD_L)/(1023-(256*uc_AD_H+uc_AD_L));返回批量數(shù)據(jù)03uc_AD_Hi,uc_AD_Li,uc_T_Hi,uc_T_Li,uc_AD_Hi:第i個(gè)AD轉(zhuǎn)換值高8位uc_AD_Li:第i個(gè)AD轉(zhuǎn)換值低8位uc_T_Hi:第i個(gè)時(shí)基高8位uc_T_Li:第i個(gè)時(shí)基低8位第i個(gè)時(shí)基為:T=(uc_T_Hi*256+uc_T_Li)*100ms批量開始070x00成功0xff失敗批量結(jié)束080x00成功0xff失敗應(yīng)用層協(xié)議(以溫度傳感器為例)如上協(xié)議定義,由于PC端應(yīng)用程序必須完成瞬時(shí)數(shù)值顯示,也要完成一段時(shí)間內(nèi)的數(shù)值變化,所以定義了兩類傳輸,一類是當(dāng)前值查詢,單片機(jī)只需發(fā)送當(dāng)前物理量的值。一類是批量數(shù)據(jù)查詢。當(dāng)開始批量后,單片機(jī)要存儲(chǔ)一定時(shí)間內(nèi)的數(shù)據(jù),當(dāng)PC端需要批量數(shù)據(jù)時(shí)將一段時(shí)間內(nèi)的數(shù)據(jù)發(fā)送給PC,由PC端來處理。6.4軟件功能的實(shí)現(xiàn)利用VC6.0強(qiáng)大的MFC應(yīng)用程序框架可以滿足本次軟件的設(shè)計(jì)要求。我建立了一個(gè)基于FormView的單文檔應(yīng)用程序。在此基礎(chǔ)上進(jìn)行了開發(fā),建立了若干CDialogBar類和CHtmlView類,設(shè)計(jì)完成了軟件的各項(xiàng)功能。程序主界面:軟件主界面6.4.1傳感器演示功能 傳感器演示功能是用于用戶測(cè)試傳感器狀況,演示傳感器物理量當(dāng)前值功能的界面。我采用軟件定時(shí)論詢的方式,定時(shí)請(qǐng)求單片機(jī)傳送傳感器當(dāng)前值,通過對(duì)當(dāng)前值的計(jì)算和顯示,完成這項(xiàng)功能,該功能程序界面如下:傳感器演示功能界面6.4.2實(shí)驗(yàn)?zāi)M功能 模擬實(shí)驗(yàn)功能是用于用戶基于這套傳感器產(chǎn)品進(jìn)行實(shí)驗(yàn)演示的。這個(gè)功能可以讓用戶將物理量的變化以圖形地形式直觀地反映在計(jì)算機(jī)上,并且記錄地?cái)?shù)據(jù)還必須能夠用于精確計(jì)算。 我在這個(gè)功能的軟件設(shè)計(jì)上,采用傳感器批量傳輸?shù)姆椒▽?shí)現(xiàn)。當(dāng)用戶開始測(cè)量時(shí)啟用單片機(jī)批量,應(yīng)用程序定時(shí)詢問批量數(shù)據(jù),根據(jù)批量數(shù)據(jù)進(jìn)行一段時(shí)間內(nèi)的繪圖過程。該功能程序界面如下:實(shí)驗(yàn)?zāi)M功能界面7總結(jié)在工程技術(shù)實(shí)習(xí)期間,我基本了解了USB的基本原理和通訊協(xié)議,認(rèn)識(shí)了USB主從機(jī)的系統(tǒng)組成。在畢業(yè)設(shè)計(jì)期間又有機(jī)會(huì)參與實(shí)際的USB項(xiàng)目的開發(fā)過程,加深了我對(duì)USB原理和實(shí)現(xiàn)方法的進(jìn)一步理解,熟悉了USB接口的軟硬件開發(fā)流程。這是一個(gè)進(jìn)步的過程,更是一個(gè)學(xué)習(xí)的過程。在實(shí)驗(yàn)室同學(xué)的大力支持,經(jīng)過自己的不斷努力和導(dǎo)師的悉心指點(diǎn),我最終完成了這套傳感器產(chǎn)品USB部分的軟件硬件部分的設(shè)計(jì),編寫了PC端應(yīng)用程序,經(jīng)過初步調(diào)試,基本實(shí)現(xiàn)了各項(xiàng)功能。這些進(jìn)一步提高了我發(fā)現(xiàn)問題、解決問題的能力。雖然畢業(yè)設(shè)計(jì)結(jié)束了,但在畢業(yè)設(shè)計(jì)過程中遇到的困難讓我感觸很深:首先,模擬電路基礎(chǔ)不扎實(shí)。原有的傳感器產(chǎn)品很大程度上是模擬電路的知識(shí),運(yùn)算方大電路更是常見,由于模擬電路知識(shí)不扎實(shí),在分析傳感器測(cè)量電路的過程中遇到了極大的阻礙。最終,在實(shí)驗(yàn)室同學(xué)和導(dǎo)師的幫助下,才得以完成模擬部分電路的分析和設(shè)計(jì)。這點(diǎn)讓我更加感覺到學(xué)好專業(yè)基礎(chǔ)課的重要性。其次,英語水平不足。在USB的認(rèn)識(shí)過程當(dāng)中,要翻閱大量的USB技術(shù)文檔,這些文檔都是英文原版,雖然有一小部分網(wǎng)絡(luò)上有國內(nèi)的熱心網(wǎng)友自發(fā)的翻譯,但是難免存在紕漏和錯(cuò)誤。所以,英語學(xué)習(xí)對(duì)專業(yè)研究非常重要。因此,我覺得這次畢業(yè)設(shè)計(jì)對(duì)我來說是具有十分重要的意義,將是我走上社會(huì)崗位前的一次大鍛煉。我一定會(huì)將畢業(yè)設(shè)計(jì)中學(xué)習(xí)到的知識(shí)和方法運(yùn)用到以后的研究和生活當(dāng)中去,因?yàn)槲蚁嘈潘鼘⑹苡靡簧?。致謝深深感謝我的指導(dǎo)老師項(xiàng)小東老師,是他指引了我學(xué)好專業(yè)的方法,培養(yǎng)了我對(duì)專業(yè)的興趣。不管是在工程實(shí)習(xí)期間還是后來的畢業(yè)設(shè)計(jì)期間,他都給了我很大的支持和鼓勵(lì),讓我更加努力的學(xué)習(xí)專業(yè)知識(shí)。在平時(shí)生活中他更是時(shí)刻向我們灌輸一種做人哲學(xué)的思想,讓我們能夠有更完善的人格。這一切都是我受用終生的。還有感謝一起在615實(shí)驗(yàn)室度過大四生活的同學(xué)們。他們的勤奮好學(xué),無私奉獻(xiàn)都讓我非常感動(dòng)。在我的畢業(yè)設(shè)計(jì)過程中,同學(xué)們經(jīng)常和我一起論證解決方案,幫助我解決了很多遇到的困難,讓我能夠順利的完成畢業(yè)設(shè)計(jì)。在此,同樣要感謝各科的老師在四年來的學(xué)習(xí)生活中給予我的精心指導(dǎo)、照顧和鼓勵(lì)。衷心感謝所有那些給過我?guī)椭睦蠋?、同學(xué)和朋友。參考文獻(xiàn):王成儒李英偉.USB2.0原理與工程開發(fā)[M].國防工業(yè)出版社,2004年.錢峰.EZ-USBFX2單片機(jī)原理、編程及應(yīng)用[M].北京航空航天大學(xué)出版社,2006年.李學(xué)海.PIC單片機(jī)實(shí)用教程基礎(chǔ)篇[M].北京航空航天大學(xué)出版社,2002年8月.陳國先.PIC單片機(jī)原理與接口技術(shù)[M].電子工業(yè)出版社,2004年8月.康華光.電子技術(shù)基礎(chǔ)(模擬部分)[M].高等教育出版社,1999年3月.朱戰(zhàn)立.面向?qū)ο蟪绦蛟O(shè)計(jì)與C++語言[M].西安電子科技大學(xué)出版社,2002年4月.孫鑫余安萍.VC++深入詳解[M],電子工業(yè)出版社,2006年06月.王云飛.USB系統(tǒng)研究[D].清華大學(xué),2001年.USB-IF.UniversalSerialBusSpecification[PDF].,April27,2000MicroChip.PIC16F631/677/685/687/689/690DataSheet[PDF].,2007RFID應(yīng)用系統(tǒng)軟件摘要:近年來,隨著射頻識(shí)別技術(shù)(RFID)的進(jìn)步和成熟,這項(xiàng)技術(shù)的應(yīng)用領(lǐng)域日益擴(kuò)大,現(xiàn)已涉及到人們?nèi)粘I畹母鱾€(gè)方面,并將成為未來信息社會(huì)建設(shè)的一項(xiàng)基礎(chǔ)技術(shù)。RFID在城市交通的應(yīng)用也是一個(gè)重要的方面。城市公共交通在我國城市交通中占有重要的地位,是同我國城市居民生產(chǎn)、生活等活動(dòng)密切相關(guān)的系統(tǒng).如今在城市交通中,很多城市已經(jīng)用IC卡代替了原有的紙制月票,杜絕了公交月票的假冒行為,緩解了高峰客流,提高了服務(wù)水平,為公司運(yùn)營提供了科學(xué)的管理手段,社會(huì)反映良好。另一方面,通過公交IC卡可使城市公共交通實(shí)現(xiàn)智能化。城市公共交通實(shí)行智能化能夠把握客流數(shù)據(jù)的變化規(guī)律,隨著公交采用IC卡進(jìn)行公交收費(fèi)的普及,使得我們有了新的客流數(shù)據(jù)采集方式。本次探討、設(shè)計(jì)的公交IC卡充值系統(tǒng)將具有售卡、充值等一系列功能。以單片機(jī)為控制器的IC卡讀寫器可以實(shí)現(xiàn)制卡、售卡、自動(dòng)收費(fèi)等功能,具有安全、實(shí)用、方便、快捷、可靠性高的特點(diǎn),解決了城市公共交通服務(wù)行業(yè)既頻繁又瑣碎的收費(fèi)管理問題。關(guān)鍵詞:RFID;城市公交;讀卡器Abstract:Inrecentyears,withtheprogressandmatureoftheradiofrequencyidentification(RFID)Technology,theapplicationofthistechnologyinthefieldareexpanding.Peoplehavebeeninvolvedinallaspectsofdailylife,andwillbecomeatechnicalbasisofthefuturebuildingoftheinformationsociety.Theapplicationintheurbanpublictransportisalsooneoftheimportantaspects.UrbanpublictransportincitytrafficoccupyanimportantpositionofChina'surbanresidentsisthesameproduction,lifeactivitiescloselyrelatedtothesystem.Nowinurbantraffic,ManycitiesalreadyuseICcardsinsteadoftheoriginalpaperpass,stopthetransitofcounterfeittickets,easingthepeakpassengerflow,improvethelevelofservice,theoperationofthecompanyandprovidesascientificmeansofmanagement,reflectthesocialgood.Ontheotherhand,urbanpublictransportcanintelligentbybusICcard.Theintelligenturbanpublictransportimplementcangraspthelawofthechangesdataflow.WiththeuniversaluseintheurbanpublictransportICcardssystem,wehaveanewacquisitionmodeofthedataflow.ThisdesignofpublictransportICcardrechargingsystemhasaseriesfunction.MicroprocessorcontrollerICCardReadercardsystemcanbeachieved,automaticcharges,andotherfunctions,issafe,practicalandconvenient,fast,highreliability.Itsolvestheproblemofthefrequentlytrivialurbanpublictransportchargesmanagement.Keywords:RFID;Urbanpublictransport;reader1緒論近年來,隨著射頻識(shí)別技術(shù)的進(jìn)步和成熟,這項(xiàng)技術(shù)的應(yīng)用領(lǐng)域日益擴(kuò)大,現(xiàn)已涉及到人們?nèi)粘I畹母鱾€(gè)方面,并將成為未來信息社會(huì)建設(shè)的一項(xiàng)基礎(chǔ)技術(shù)。RFID典型應(yīng)用包括:在物流領(lǐng)域用于倉庫管理、生產(chǎn)線自動(dòng)化、日用品銷售;在交通運(yùn)輸領(lǐng)域用于集裝箱與包裹管理、高速公路收費(fèi)與停車收費(fèi);在農(nóng)牧漁業(yè)用于羊群、魚類、水果等的管理以及寵物、野生動(dòng)物跟蹤;在醫(yī)療行業(yè)用于藥品生產(chǎn)、病人看護(hù)、醫(yī)療垃圾跟蹤;在制造業(yè)用于零部件與庫存的可視化管理;RFID還可以應(yīng)用于圖書與文檔管理、門禁管理、定位與物體跟蹤、環(huán)境感知和支票防偽等多種應(yīng)用領(lǐng)域。城市公共交通在我國城市交通中占有重要的地位,是同我國城市居民生產(chǎn)、生活等活動(dòng)密切相關(guān)的系統(tǒng).如今在城市交通中,很多城市已經(jīng)用IC卡代替了原有的紙制月票,杜絕了公交月票的假冒行為,緩解了高峰客流,提高了服務(wù)水平,為公司運(yùn)營提供了科學(xué)的管理手段,社會(huì)反映良好。以單片機(jī)為控制器的IC卡讀寫器可以實(shí)現(xiàn)制卡、售卡、自動(dòng)收費(fèi)等功能,具有安全、實(shí)用、方便、快捷、可靠性高的特點(diǎn),解決了城市公共交通服務(wù)行業(yè)既頻繁又瑣碎的收費(fèi)管理問題。另一方面,通過公交IC卡使城市公共交通實(shí)現(xiàn)智能化。城市公共交通實(shí)行智能化能夠把握客流數(shù)據(jù)的變化規(guī)律,隨著公交采用IC卡進(jìn)行公交收費(fèi)的普及,使得我們有了新的客流數(shù)據(jù)采集方式。與人工調(diào)查相比,利用IC卡收費(fèi)系統(tǒng)進(jìn)行客流數(shù)據(jù)采集的投入小得多,幾乎不需要額外成本,并且可以提供大量詳細(xì)、準(zhǔn)確的動(dòng)態(tài)數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步挖掘也更容易。因此公交IC卡系統(tǒng)對(duì)城市公交以及公交的智能化調(diào)度、線路的開辟、優(yōu)化、站點(diǎn)的設(shè)置等都具有極其重要的意義?;谏鲜鲈?,設(shè)計(jì)一款以射頻識(shí)別為核心技術(shù)的公交收費(fèi)系統(tǒng)將給城市公交帶來長期的效益。本次探討、設(shè)計(jì)的應(yīng)用系統(tǒng)將具有售卡、充值等一系列功能。2系統(tǒng)總體設(shè)計(jì)介紹2.1系統(tǒng)功能介紹將RFID技術(shù)應(yīng)用到公交充值系統(tǒng)中,實(shí)現(xiàn)公交充值系統(tǒng)的以下功能。制卡制卡功能專門用于對(duì)卡片進(jìn)行初始化,卡片在正式投入使用前必須經(jīng)過初始化,初始化的工作就是對(duì)卡片內(nèi)的空間按照規(guī)定進(jìn)行化分,然后將密鑰、存取權(quán)限寫入卡內(nèi)。[1]售卡充值乘客可到車站的售卡充值系統(tǒng)中辦理購卡、充值手續(xù)。該系統(tǒng)現(xiàn)場(chǎng)為用戶的IC卡寫入充值金額,并將用戶信息輸入管理系統(tǒng)數(shù)據(jù)庫中保存。退卡、掛失、解掛退卡:刪除數(shù)據(jù)庫中該用戶的記錄,收回舊卡。舊卡經(jīng)過數(shù)據(jù)清理可實(shí)現(xiàn)再利用。掛失:將原卡進(jìn)行備注,列入黑名單。用戶可重新辦理新卡,并將舊卡中的余額寫入新卡中,減少用戶損失。解掛:可重新使卡有效。信息管理通過上位機(jī)軟件可查看數(shù)據(jù)庫中的信息,獲息用戶相關(guān)信息。2.2RFID簡介2.2.1RFID系統(tǒng)組成最基本的RFID系統(tǒng)由三部分組成:標(biāo)簽(Tag,即非接觸式IC卡):由耦合元件及芯片組成,標(biāo)簽含有內(nèi)置天線,用于和射頻天線間進(jìn)行通信。讀卡器:讀取(在讀寫卡中還可以寫入)標(biāo)簽信息的設(shè)備。天線:在標(biāo)簽和讀取器間傳遞射頻信號(hào)。[2]2.2.2RFID通訊原理系統(tǒng)的基本工作流程是:讀卡器通過發(fā)射天線發(fā)送一定頻率的射頻信號(hào),卡片內(nèi)有一個(gè)LC串聯(lián)諧振電路,其頻率與讀卡器發(fā)射的頻率相同,在電磁波的激勵(lì)下,LC諧振電路產(chǎn)生共振,從而使電容內(nèi)有了電荷,在這個(gè)電容的另一端,接有一個(gè)單向?qū)ǖ碾娮颖茫瑢㈦娙輧?nèi)的電荷送到另一個(gè)電容內(nèi)儲(chǔ)存,當(dāng)所積累的電荷達(dá)到2V時(shí),此電容可做為電源為其它電路提供工作電壓。因此當(dāng)射頻卡進(jìn)入發(fā)射天線工作區(qū)域時(shí)產(chǎn)生感應(yīng)電流,射頻卡獲得能量被激活;射頻卡將自身編碼等信息通過卡內(nèi)置發(fā)送天線發(fā)送出去;系統(tǒng)接收天線接收到從射頻卡發(fā)送來的載波信號(hào),經(jīng)天線調(diào)節(jié)器傳送到讀寫器,讀卡器對(duì)接收的信號(hào)進(jìn)行解調(diào)和解碼然后送到后臺(tái)主系統(tǒng)進(jìn)行相關(guān)處理;主系統(tǒng)根據(jù)邏輯運(yùn)算判斷該卡的合法性,針對(duì)不同的設(shè)定做出相應(yīng)的處理和控制,發(fā)出指令信號(hào)控制執(zhí)行機(jī)構(gòu)動(dòng)作。2.2.3非接觸式IC卡的優(yōu)點(diǎn)與接觸式IC卡相比較,非接觸式IC卡具有以下優(yōu)點(diǎn):可靠性高非接觸式IC卡與讀寫器之間無機(jī)械接觸,避免了由于接觸讀寫而產(chǎn)生的各種故障。例如:

由于粗暴插卡,非卡外物插入,灰塵或油污導(dǎo)致接觸不良造成的故障。此外,非接觸式卡表面無裸露芯片,無須擔(dān)心芯片脫落,靜電擊穿,彎曲損壞等問題,既便于卡片印刷,又提高了卡片的使用可靠性。操作方便由于非接觸通訊,讀寫器在10CM范圍內(nèi)就可以對(duì)卡片操作,所以不必插撥卡,非常方便用戶使用。非接觸式卡使用時(shí)沒有方向性,卡片可以在任意方向掠過讀寫器表面,既可完成操作,這大大提高了每次使用的速度。防沖突非接觸式卡中有快速防沖突機(jī)制,能防止卡片之間出現(xiàn)數(shù)據(jù)干擾,因此,讀寫器可以"同時(shí)"處理多張非接觸式IC卡。這提高了應(yīng)用的并行性,無形中提高系統(tǒng)工作速度??梢赃m合于多種應(yīng)用非接觸式卡的序列號(hào)是唯一的,制造廠家在產(chǎn)品出廠前已將此序列號(hào)固化,不可再更改。非接觸式卡與讀寫器之間采用雙向驗(yàn)證機(jī)制,即讀寫器驗(yàn)證IC卡的合法性,同時(shí)IC卡也驗(yàn)證讀寫器的合法性。

非接觸式卡在處理前要與讀寫器之間進(jìn)行三次相互認(rèn)證,而且在通訊過程中所有的數(shù)據(jù)都加密。此外,卡中各個(gè)扇區(qū)都有自己的操作密碼和訪問條件。

接觸式卡的存儲(chǔ)器結(jié)構(gòu)特點(diǎn)使它一卡多用,能運(yùn)用于不同系統(tǒng),用戶可根據(jù)不同的應(yīng)用設(shè)定不同的密碼和訪問條件。加密性能好非接觸式IC卡由IC芯片,感應(yīng)天線組成,并完全密封在一個(gè)標(biāo)準(zhǔn)PVC卡片中,無外露部分。非接觸式IC卡的讀寫過程,通常由非接觸型IC卡與讀寫器之間通過無線電波來完成讀寫操作。

非接觸型IC卡本身是無源體,當(dāng)讀寫器對(duì)卡進(jìn)行讀寫操作時(shí),讀寫器發(fā)出的信號(hào)由兩部分疊加組成:一部分是電源信號(hào),該信號(hào)由卡接收后,與其本身的L/C產(chǎn)生諧振,產(chǎn)生一個(gè)瞬間能量來供給芯片工作。另一部分則是結(jié)合數(shù)據(jù)信號(hào),指揮芯片完成數(shù)據(jù)、修改、存儲(chǔ)等,并返回給讀寫器。由非接觸式IC卡所形成的讀寫系統(tǒng),無論是硬件結(jié)構(gòu),還是操作過程都得到了很大的簡化,同時(shí)借助于先進(jìn)的管理軟件,可脫機(jī)的操作方式,都使數(shù)據(jù)讀寫過程更為簡單。

2.2.4射頻卡的標(biāo)準(zhǔn)及分類目前生產(chǎn)RFID產(chǎn)品的很多公司都采用自己的標(biāo)準(zhǔn),國際上還沒有統(tǒng)一的標(biāo)準(zhǔn)。目前,可供射頻卡使用的幾種標(biāo)準(zhǔn)有ISO10536、ISO14443、ISO15693和ISO18OOO。應(yīng)用最多的是ISO14443和ISO15693,這兩個(gè)標(biāo)準(zhǔn)都由物理特性、射頻功率和信號(hào)接口、初始化和反碰撞以及傳輸協(xié)議四部分組成。按照不同得方式,射頻卡有以下幾種分類:按供電方式分為有源卡和無源卡。有源是指卡內(nèi)有電池提供電源,其作用距離較遠(yuǎn),但壽命有限、體積較大、成本高,且不適合在惡劣環(huán)境下工作;無源卡內(nèi)無電池,它利用波束供電技術(shù)將接收到的射頻能量轉(zhuǎn)化為直流電源為卡內(nèi)電路供電,其作用距離相對(duì)有源卡短,但壽命長且對(duì)工作環(huán)境要求不高。按載波頻率分為低頻射頻卡、中頻射頻卡和高頻射頻卡。低頻系統(tǒng)主要用于短距離、低成本的應(yīng)用中,如多數(shù)的門禁控制、校園卡、動(dòng)物監(jiān)管、貨物跟蹤等。中頻系統(tǒng)用于門禁控制和需傳送大量數(shù)據(jù)的應(yīng)用系統(tǒng);高頻系統(tǒng)應(yīng)用于需要較長的讀寫距離和高讀寫速度的場(chǎng)合,其天線波束方向較窄且價(jià)格較高,在火車監(jiān)控、高速公路收費(fèi)等系統(tǒng)中應(yīng)用。按調(diào)制方式的不同可分為主動(dòng)式和被動(dòng)式。主動(dòng)式射頻卡用自身的射頻能量主動(dòng)地發(fā)送數(shù)據(jù)給讀寫器;被動(dòng)式射頻卡使用調(diào)制散射方式發(fā)射數(shù)據(jù),該類技術(shù)適合用在門禁或交通應(yīng)用中,因?yàn)樽x卡器可以確保只激活一定范圍之內(nèi)的射頻卡。按作用距離可分為密耦合卡(作用距離小于1厘米)、近耦合卡(作用距離小于15厘米)、疏耦合卡(作用距離約1米)和遠(yuǎn)距離卡(作用距離從1米到10米,甚至更遠(yuǎn))。按芯片分為只讀卡、讀寫卡和CPU卡。[2]2.2.5RFID技術(shù)發(fā)展的瓶頸隱私權(quán)問題失業(yè)問題國際標(biāo)準(zhǔn)的制定與推行成本的降低技術(shù)的突破2.3系統(tǒng)硬件結(jié)構(gòu)系統(tǒng)的上位機(jī)主要負(fù)責(zé)傳輸讀寫命令給下位機(jī),進(jìn)行用戶數(shù)據(jù)信息的統(tǒng)一管理,并實(shí)現(xiàn)良好的人機(jī)交互。系統(tǒng)的下位機(jī)主要負(fù)責(zé)和讀卡器之間進(jìn)行數(shù)據(jù)傳輸,再通過讀卡器和IC卡進(jìn)行數(shù)據(jù)交換,并將響應(yīng)數(shù)據(jù)傳回給上位機(jī)。圖1系統(tǒng)硬件結(jié)構(gòu)圖圖1系統(tǒng)硬件結(jié)構(gòu)圖圖1為系統(tǒng)的硬件結(jié)構(gòu)圖。系統(tǒng)的IC卡采用Mifare標(biāo)準(zhǔn)IC卡MF1ICS50,讀卡器采用周立功內(nèi)置PHILIPS高集成ISO14443A讀卡芯片MFRC500的ZLG500AT讀卡模塊。系統(tǒng)的MCU采用MICROCHIP公司的PIC系列單片機(jī),采用內(nèi)部的USART模塊與讀卡器進(jìn)行通信,通過RC500芯片與IC卡進(jìn)行無線數(shù)據(jù)收發(fā),并通過RS485與計(jì)算機(jī)相連接。另外,下位機(jī)還帶有顯示功能。上位機(jī)軟件通過ACCESS數(shù)據(jù)庫對(duì)用戶數(shù)據(jù)信息進(jìn)行管理。2.4上位機(jī)控制界面設(shè)計(jì)采用VisualC++編寫上位機(jī)軟件程序,運(yùn)用MFC中的CRecordSet類與Access數(shù)據(jù)庫相連接,行進(jìn)數(shù)據(jù)交換。界面采用樹和列表的視圖方式,實(shí)現(xiàn)良好的人機(jī)交互功能。上位機(jī)與下位機(jī)的通信采用485通信,運(yùn)用VC中的MSCOMM控件來控制計(jì)算機(jī)的串口數(shù)據(jù)的接收和發(fā)送。2.5下位機(jī)軟件流程下位機(jī)的工作流程為:PIC單片機(jī)通過控制ZLG500AT讀卡模塊中的MFRC500讀卡芯片,與Mifare標(biāo)準(zhǔn)IC卡進(jìn)行數(shù)據(jù)通信,并通過RS485與計(jì)算機(jī)交換數(shù)據(jù)信息的。首先,單片機(jī)上電后對(duì)各模塊進(jìn)行初始化,然后接收上位機(jī)的指令,根據(jù)不同的指令,對(duì)卡實(shí)行不同的數(shù)據(jù)操作。下圖為軟件流程圖:圖2系統(tǒng)軟件流程圖圖2系統(tǒng)軟件流程圖3PIC16F877單片機(jī)3.1PIC16F877系統(tǒng)硬件概況3.1.1內(nèi)核及外圍模塊圖3PIC圖3PIC16F877內(nèi)核與外圍模塊3.1.2內(nèi)核結(jié)構(gòu)的特點(diǎn)采用哈佛結(jié)構(gòu)程序空間8K字節(jié),共35條指令512字節(jié)RAM,使用寄存器文檔的概念8層硬件堆棧指令采用流水線機(jī)制,指令順序執(zhí)行時(shí)只需一個(gè)指令周期,程序分支跳轉(zhuǎn)需2個(gè)字節(jié)具有獨(dú)立看門狗3.1.3存儲(chǔ)器尋址方式數(shù)據(jù)寄存器尋址:直接尋址:由于在指令編碼中只有最低7位數(shù)據(jù)代表了尋址操作數(shù)地址,而有512字節(jié)RAM,因此需要利用STATUS中的RP1:RP0來實(shí)現(xiàn)高2位的尋址,即劃分BANK區(qū)。間接尋址:利用特殊寄存器FSR和STATUS的第7位IRP來表示9位地址,用INDF寄存器來實(shí)現(xiàn)間接尋址。即對(duì)INDF的任何操作,操作對(duì)象都被轉(zhuǎn)到FSR+IRP構(gòu)成的9位地址處的寄存器。程序存儲(chǔ)器尋址:直接尋址:由于在指令編碼中只有11位數(shù)據(jù)代表了跳轉(zhuǎn)的目的地址,而程序空間有8K字節(jié),因此需要利用PCLATH的3:4位來實(shí)現(xiàn)高2位的尋址,即分頁的概念。當(dāng)執(zhí)行跳轉(zhuǎn)指令時(shí),會(huì)自動(dòng)把兩者結(jié)合送入PC中,實(shí)現(xiàn)程序的正確跳轉(zhuǎn)。間接尋址:由PCLATH的低5位和PCL來表示13位地址。當(dāng)指令的操作數(shù)為PCL時(shí),那么當(dāng)指令把結(jié)果寫回PCL的同時(shí),內(nèi)核會(huì)自動(dòng)把PCLATH的低5位同步寫入PCH中,實(shí)現(xiàn)程序的正確跳轉(zhuǎn)。[3]3.1.4中斷機(jī)制PIC系列單片機(jī)只有一個(gè)中斷入口(004H),所有的中斷都通過該入口進(jìn)入中斷服務(wù)子程序,至于是哪一個(gè)中斷源,只有在進(jìn)入中斷服務(wù)子程序后查詢中斷標(biāo)志才能確認(rèn)。該單片機(jī)沒規(guī)定中斷的優(yōu)先級(jí),也沒有用于設(shè)定中斷優(yōu)先級(jí)的寄存器,中斷的優(yōu)先級(jí)是由于中斷服務(wù)子程序中斷查詢中斷標(biāo)志的順序確定的。CPU響應(yīng)一個(gè)中斷并進(jìn)入中斷服務(wù)程序后,全局中斷允許位GIE被自動(dòng)清零,CPU在此期間不響應(yīng)其它中斷,也不能形成中斷嵌套。中斷大致可以分為兩類:一類是由中斷控制器INTCON直接控制的中斷,包括外部引腳中斷INT的RB口電平變化中斷以及定時(shí)器TMRO溢出中斷,它們的中斷允許位和中斷標(biāo)志都在INTCON寄存器中。引腳中斷INT和定時(shí)器TMRO溢出中斷與其它微處理器相同。RB口電平變化中斷是PIC單片機(jī)特有的中斷,當(dāng)把RB口高4位I/O口線設(shè)置為輸入時(shí),只要這4位I/O口線上的電平發(fā)生變化就會(huì)引起中斷;另一類是外圍接口中斷,包括定時(shí)器TMR1溢出中斷、TMR溢出或匹配中斷、同步串行口中斷、異步串行口中斷、并行從動(dòng)口中斷、A/D轉(zhuǎn)換完成中斷和CCP(Capture/Compare/PWM)中斷等。這些中斷的允許位分別在PIE1和PIE2寄存器,而中斷標(biāo)志則分別在PIR1和PIR2中。圖4PIC圖4PIC16F877中斷邏輯圖3.2USART通信模塊通用同步異步接收發(fā)送模塊(USART)是二線制串行通信接口,它可以被定義如下三種工作方式:全雙工異步方式、半雙工同步主控方式、半雙工同步從動(dòng)方式。USART功能模塊含有兩個(gè)8位可讀/寫的狀態(tài)/控制寄存器,它們是發(fā)送狀態(tài)/控制寄存器TXSTA和接收狀態(tài)/控制寄存器RCSTA。USART帶有一個(gè)8位波特率發(fā)生器BRG(BaudRatoGenerator),這個(gè)BRG支持USART的同步和異步工作方式。用SPBRG寄存器控制一個(gè)獨(dú)立的8位定時(shí)器的周期。在異步方式下,發(fā)送狀態(tài)/控制寄存器TXSTA的BRGH位也被用來控制波特率。在發(fā)送或接收數(shù)據(jù)時(shí),通過查詢發(fā)送/接收中斷標(biāo)志位即可判斷是否發(fā)送完一個(gè)數(shù)據(jù)/接收到一個(gè)數(shù)據(jù)。發(fā)送/接收中斷標(biāo)地不需要也不用軟件復(fù)位。在異步串行發(fā)送的過程中,只要TXREG寄存器為空,中斷標(biāo)志TXIF就置位。因此,TXIF為1并不是發(fā)送完畢的標(biāo)志,但仍可以用TXIF標(biāo)志來判斷。因此當(dāng)TXREG為空時(shí),將數(shù)據(jù)送入后,數(shù)據(jù)會(huì)保留在TXREG寄存器中,直到前一個(gè)數(shù)據(jù)從發(fā)送移位寄存器中移出,即前一個(gè)數(shù)據(jù)發(fā)送完。圖5USART發(fā)送模塊圖5USART發(fā)送模塊圖6USART接收模塊圖6USART接收模塊本系統(tǒng)中利用USART模塊的異步通信功能,通過MAX485芯片實(shí)現(xiàn)和上位機(jī)的通信。為了把RC6和RC7分別設(shè)置成串行通信接口的發(fā)送/時(shí)鐘(TX/CK)線和接收/數(shù)據(jù)(TX/DT)線,必須首先把SPEN位(TCSTAT的RD7)和方向寄存器TRISC的D7:D6置1。3.3定時(shí)器3.3.1定時(shí)器0Timer0是一個(gè)8位定時(shí)器,只要程序在運(yùn)行,TMR0的遞增計(jì)數(shù)就不會(huì)停止,TMR0寄存器用來存放計(jì)時(shí)值。Timer0的時(shí)鐘源選擇是由0PTl0N_REG寄存器中的T0CS位來決定的,將此位設(shè)為0表示使用內(nèi)部的時(shí)鐘源,設(shè)為1則使用外部時(shí)鐘。使用內(nèi)部時(shí)鐘時(shí),定時(shí)器會(huì)每一個(gè)指令周期增量一次,也就是時(shí)鐘頻率為Fosc/4(在不使用頓分頻器的情況下)。Timer0有一個(gè)預(yù)定標(biāo)器(也叫預(yù)分頻器),通過預(yù)分頻器的使用,可以使得定時(shí)器可計(jì)算的時(shí)間范圍增加不少。這個(gè)預(yù)分頻器也可分配給WDT作為后分頻器使用,至于預(yù)分頻器是給WDT還是Timer0使用,則是由0PTION_REG寄存器中的PSA位來決定的。當(dāng)PSA位為0時(shí),表示作為Timer0的預(yù)分頻器:當(dāng)PSA位為1時(shí),表示作為WDT的后分頻器。這個(gè)預(yù)分頻器的比例由OPTlON_REG寄存器中PS2、PSl與PS0三個(gè)標(biāo)志位來設(shè)置。3.3.2定時(shí)器116位計(jì)數(shù)寬度。可工作在同步定時(shí)器方式,同步計(jì)數(shù)器方式,異步計(jì)數(shù)器方式。Timer1的外部時(shí)鐘輸入引腳有2個(gè),分別是RC0/T10SO/T1CKI和RCl/T1OSI/CCP2引腳。在單片機(jī)內(nèi)部,這2個(gè)引腳之間內(nèi)置了一個(gè)振蕩器電路。在進(jìn)入休眠模式后,振蕩器依然會(huì)繼續(xù)輸出,因此可以繼續(xù)Timer1的累計(jì)動(dòng)作。和CCP模塊功能結(jié)合時(shí),必須工作于同步模式。3.3.3定時(shí)器28位計(jì)數(shù)寬度。有一個(gè)前置預(yù)分頻器和后置預(yù)分頻器。Timer2另外一個(gè)特點(diǎn)就是帶有一個(gè)PR2寄存器,稱之為周期寄存器,這個(gè)寄存器可以被填入適當(dāng)?shù)闹怠.?dāng)TMR2寄存器的值增量到與PB2寄存器的值相等時(shí),便會(huì)產(chǎn)生Timer2的中斷??捎贑CP模塊結(jié)合,產(chǎn)生PWM。4Mifare標(biāo)準(zhǔn)IC卡MF1ICS504.1Mifare標(biāo)準(zhǔn)IC卡MF1ICS50簡介4.1.1主要指標(biāo)容量為8K位EEPROM分為16個(gè)扇區(qū),每個(gè)扇區(qū)為4塊,每塊16個(gè)字節(jié),以塊為存取單位每個(gè)扇區(qū)有獨(dú)立的一組密碼及訪問控制每張卡有唯一序列號(hào),為32位具有防沖突機(jī)制,支持多卡操作無電源,自帶天線,內(nèi)含加密控制邏輯和通訊邏輯電路數(shù)據(jù)保存期為10年,可改寫10萬次,讀無限次工作頻率:13.56MHZ通信速率:106KBPS[4]圖7圖7MF1ICS50示意圖4.1.2結(jié)構(gòu)組成RF接口:調(diào)制器解調(diào)器,整流器,時(shí)鐘再生器,上電復(fù)位,電壓調(diào)整器反沖突:在同一區(qū)域中的卡可以被順序選中執(zhí)行操作確認(rèn):確認(rèn)過程確保只有通過每個(gè)段的兩個(gè)密鑰才能對(duì)這個(gè)段進(jìn)行任何存儲(chǔ)器操作控制和算術(shù)邏輯單元:值以特殊的冗余格式保存而且可以增加和減少EEPROM接口Crypto單元:Mifare經(jīng)典系列經(jīng)區(qū)域驗(yàn)證的CRYPTO1流密碼確保數(shù)據(jù)交換的保密性EEPROM:有1K字節(jié)分成16個(gè)區(qū)每區(qū)又分成4段每一段中有16個(gè)字節(jié)每個(gè)區(qū)的最后一個(gè)段叫尾部它包括兩個(gè)密鑰和這個(gè)區(qū)中每一個(gè)段的訪問條件。圖8USART接收模塊圖8USART接收模塊4.2EEPROM存儲(chǔ)器4.2.1存儲(chǔ)結(jié)構(gòu)M1卡分為16個(gè)扇區(qū),每個(gè)扇區(qū)4段(段0、段1、段2、段3),每段16字節(jié)。第0扇區(qū)的段0,它用于存放廠商代碼,已經(jīng)固化,不可更改。每個(gè)扇區(qū)的段0、段1、段2為數(shù)據(jù)段,可用于存貯數(shù)據(jù)。數(shù)據(jù)段可作兩種應(yīng)用:一般的數(shù)據(jù)保存,可以進(jìn)行讀、寫操作;數(shù)據(jù)值,可以進(jìn)行初始化值、加值、減值、讀值操作。每個(gè)扇區(qū)的段3為控制塊,包括了密碼A、存取控制、密碼B。圖9卡捏存儲(chǔ)結(jié)構(gòu)圖圖9卡捏存儲(chǔ)結(jié)構(gòu)圖4.2.2存儲(chǔ)器訪問每個(gè)扇區(qū)的密碼和存取控制都是獨(dú)立的,可以根據(jù)實(shí)際需要設(shè)定各自的密碼及存取控制。每個(gè)數(shù)據(jù)段和區(qū)尾的訪問條件由3個(gè)位來定義它們以取反和不取反的形式保存在指定區(qū)的區(qū)尾中。存取控制為4個(gè)字節(jié),共32位。扇區(qū)中的每個(gè)塊(包括數(shù)據(jù)塊和控制塊)的存取條件是由密碼和存取控制共同決定的,在存取控制中每個(gè)塊都有相應(yīng)的三個(gè)控制位,定義如下:塊0:C10C20C塊1:C11C21C塊2:C12C22C塊3:C13C23C三個(gè)控制位以正和反兩種形式存在于存取控制字節(jié)中。密鑰和訪問位的讀寫訪問可分為從不、密鑰A、密鑰B或密鑰A|B。詳細(xì)的數(shù)據(jù)段及尾區(qū)的訪問條件如下表所示。根據(jù)系統(tǒng)需要,各訪問權(quán)限設(shè)定為:段3:011,段2-0:110。表1尾區(qū)的訪問條件列表表1尾區(qū)的訪問條件列表表2數(shù)據(jù)段的訪問條件列表表2數(shù)據(jù)段的訪問條件列表4.3流程示意圖10圖10IC卡工作流程圖請(qǐng)求標(biāo)準(zhǔn)所有(request): 當(dāng)有卡片進(jìn)入讀寫器的操作范圍時(shí),讀寫器以特定的協(xié)議與它通訊,從而確定該卡是否為M1射頻卡,即驗(yàn)證卡片的卡型;若沒有則一直處于等待狀態(tài)。反沖突環(huán)(Anticollision):反沖突環(huán)可以讀出卡的序列號(hào)。如果在RWD的工作范圍內(nèi)有幾張卡RWD,通過唯一的序列號(hào)來區(qū)別它們,而且每次選擇其中一張卡進(jìn)行下一步操作,沒有被選中的卡會(huì)回到準(zhǔn)備模式等待新的請(qǐng)求命令。選擇卡(SelectTag):RWD使用選擇卡命令選中其中一張卡進(jìn)行確認(rèn)和存儲(chǔ)器相關(guān)操作。卡返回AnswerToSelect(ATS)碼(=08h),RWD通過ATS可以確定被選中的卡的類型。3輪確認(rèn)(3PassAuthentication):選中了一張卡之后,RWD指出了接著要訪問的存儲(chǔ)器位置,然后使用相應(yīng)的密鑰進(jìn)行3輪確認(rèn),在成功確認(rèn)后所有的存儲(chǔ)器操作都是保密的。[4]存儲(chǔ)器操作:確認(rèn)之后可以執(zhí)行以下的任何操作:讀存儲(chǔ)器段寫存儲(chǔ)器段減存儲(chǔ)器段的內(nèi)容并將結(jié)果保存在臨時(shí)的內(nèi)部數(shù)據(jù)寄存器中增加存儲(chǔ)器段的內(nèi)容并將結(jié)果保存在數(shù)據(jù)寄存器中恢復(fù)將存儲(chǔ)器段的內(nèi)容移到數(shù)據(jù)寄存器傳送將臨時(shí)內(nèi)部數(shù)據(jù)寄存器的內(nèi)容寫到值存儲(chǔ)器段中4.4保密性這個(gè)卡一個(gè)特殊的要點(diǎn)是保密,防止欺騙。需要通過3輪相互詢問和響應(yīng)確認(rèn)(ISO/IECDIS9798-2),數(shù)據(jù)保密和報(bào)文確認(rèn)檢查防止系統(tǒng)受到任何干擾,RF信道的數(shù)據(jù)加密,有重放攻擊保護(hù),使購票應(yīng)用更有吸引力。每個(gè)設(shè)備有唯一的序列號(hào),且該序列號(hào)不可修改,保證了每張卡都是唯一的。每個(gè)區(qū)有兩套獨(dú)立的密鑰,支持帶密鑰層次的多應(yīng)用,在運(yùn)輸過程中訪問EEPROM有傳輸密鑰保護(hù)。4.5數(shù)據(jù)存儲(chǔ)地址根據(jù)系統(tǒng)需要,將用戶賬號(hào)、卡類、剩余金額、車載機(jī)號(hào)及最后刷卡時(shí)間等數(shù)據(jù)存儲(chǔ)到如下地址:變量長度地址賬號(hào)3個(gè)字節(jié)30(0,1,2)卡類1個(gè)字節(jié)30(3)金額2個(gè)字節(jié)29(0,1)車載機(jī)號(hào)2個(gè)字節(jié)29(2,3)時(shí)間5個(gè)字節(jié)29(4年,5月,6日,7時(shí),8分)表3系統(tǒng)數(shù)據(jù)存儲(chǔ)地址表3系統(tǒng)數(shù)據(jù)存儲(chǔ)地址5ZLG500A讀卡模塊5.1模塊特性概述ZLG500AT讀卡模塊內(nèi)置最新PHILIPS高集成ISO14443A讀卡芯片MFRC500,能讀寫RC500內(nèi)EEPROM。采用三線SPI接口(三線分別為片選SS時(shí)鐘線SCLK和數(shù)據(jù)線SDATA),能與任何MCU接口。模塊采用四層電路板設(shè)計(jì),雙面表貼,EMC性能優(yōu)良。無源蜂鳴器信號(hào)輸出口能用軟件控制輸出頻率及持續(xù)時(shí)間。[5]下圖為天線一體化的讀卡模塊:圖11圖11天線一體化模塊5.2MFRC500芯片5.2.1概述MFRC500是應(yīng)用于13.56MHz非接觸式通信中高集成讀卡IC系列中的一員。該讀卡IC系列利用了先進(jìn)的調(diào)制和解調(diào)概念,完全集成了在13.56MHz下所有類型的被動(dòng)非接觸式通信方式和協(xié)議。MFRC500支持ISO14443A所有的層。內(nèi)部的發(fā)送器部分不需要增加有源電路就能夠直接驅(qū)動(dòng)近操作距離的天線可達(dá)100mm。接收器部分提供一個(gè)堅(jiān)固而有效的解調(diào)和解碼電路,用ISO14443A兼容的應(yīng)答器信號(hào)。數(shù)字部分處理ISO14443A幀和錯(cuò)誤檢測(cè)(奇偶&CRC)。此外,它還支持快速CRYPTO1加密算法用于驗(yàn)證MIFARE系列產(chǎn)品。方便的并行接口可直接連接到任何8位微處理器,這樣給讀卡器/終端的設(shè)計(jì)提供了極大的靈活性。5.2.2內(nèi)部結(jié)構(gòu)圖圖12圖12RC500內(nèi)部結(jié)構(gòu)圖并行微控制器接口自動(dòng)檢測(cè)連接的8位并行接口的類型。它包含一個(gè)易用的雙向FIFO緩沖區(qū)和一個(gè)可配置的中斷輸出。這樣就為連接各種MCU提供了很大的靈活性。即使使用非常低成本的器件也能滿足高速非接觸式通信的要求。數(shù)據(jù)處理部分執(zhí)行數(shù)據(jù)的并行-串行轉(zhuǎn)換。它支持的幀包括CRC和奇偶校驗(yàn)。它以完全透明的模式進(jìn)行操作,因而支持ISO14443A的所有層。狀態(tài)和控制部分允許對(duì)器件進(jìn)行配置以適應(yīng)環(huán)境的影響并使性能調(diào)節(jié)到最佳狀態(tài)。當(dāng)與MIFAREStandard和MIFARE產(chǎn)品通信時(shí),使用高速CRYPTO1流密碼單元和一個(gè)可靠的非易失性密匙存儲(chǔ)器。模擬電路包含了一個(gè)具有非常低阻抗橋驅(qū)動(dòng)器輸出的發(fā)送部分。這使得最大操作距離可達(dá)100mm。接收器可以檢測(cè)到并解碼非常弱的應(yīng)答信號(hào)。由于采用了非常先進(jìn)的技術(shù),接收器已不再是限制操作距離的因素了。[6]5.3串行接口5.3.1接口原理圖13圖13ZLG500AT與PIC16F877的接口圖示接口空閑時(shí)主機(jī)SS=1,SCLK=0,SDATA=0,從機(jī)SS=1,SCLK=1,SDATA=0。其中SS和DATA是雙向的,而時(shí)鐘線SCLK是單向的,即時(shí)鐘只能由主控制器產(chǎn)生,該信號(hào)必須嚴(yán)格遵守時(shí)序規(guī)范,否則將出現(xiàn)通信錯(cuò)誤,讀卡模塊必須釋放該線。SS為數(shù)據(jù)發(fā)送使能,若一方有數(shù)據(jù)要發(fā)送給另一方,則該方控制SS線為低,并在發(fā)送結(jié)束后將該線置高,接收數(shù)據(jù)方不得控制該線。雙方必須遵守通信協(xié)議,不得同時(shí)控制該線。SDATA為數(shù)據(jù)線,由數(shù)據(jù)發(fā)送端控制,數(shù)據(jù)接收端必須釋放該線。該線在一次傳輸開始時(shí)還同時(shí)作為數(shù)據(jù)接收端的響應(yīng)信號(hào)。5.3.2時(shí)序圖圖14圖14ZLG500AT與PIC16F877的接口圖示t1—數(shù)據(jù)接收器響應(yīng)至MCU產(chǎn)生第一個(gè)SCLK上升沿的時(shí)間t2—兩個(gè)字節(jié)傳輸之間,SCLK低電平的持續(xù)時(shí)間t3—傳輸最后一個(gè)字節(jié)的最后一位的SCLK信號(hào)的上升沿至SS上升沿的時(shí)間tH—SCLK信號(hào)的高電平持續(xù)時(shí)間tL—SCLK信號(hào)的低電平持續(xù)時(shí)間5.3.3數(shù)據(jù)讀寫寫數(shù)據(jù):除響應(yīng)信號(hào)外,三根線上的信號(hào)全由MCU產(chǎn)生。MCU在SS線上產(chǎn)生一個(gè)下降沿。發(fā)出請(qǐng)求數(shù)據(jù)傳輸?shù)男盘?hào),等待ZLG500響應(yīng)后,本次數(shù)據(jù)傳輸開始,ZLG500將在SCLK為高時(shí)讀取SDATA線上的數(shù)據(jù)。傳輸完畢后,MCU應(yīng)在SS線上產(chǎn)生一個(gè)上升沿結(jié)束本次傳輸。傳輸過程中,必須嚴(yán)格遵守以下時(shí)間要求:t1>7us,t2>14us,tH>7us,tL>9us,t3=任意。讀數(shù)據(jù):響應(yīng)信號(hào)、SCLK信號(hào)由MCU產(chǎn)生,SS信號(hào)和SDATA信號(hào)由ZLG500產(chǎn)生。ZLG500會(huì)在SS線上產(chǎn)生一個(gè)下降沿,發(fā)出請(qǐng)求數(shù)據(jù)傳輸?shù)男盘?hào),等待MCU響應(yīng)后,本次數(shù)據(jù)傳輸開始,MCU將在SCLK為高時(shí)讀取SDATA線上的數(shù)據(jù)。傳輸完畢后,ZLG500將會(huì)在SS線上產(chǎn)生一個(gè)上升沿結(jié)束本次傳輸。傳輸過程中必須嚴(yán)格遵守以下時(shí)間要求:t1>14us,t2>16us,tH>6us,tL>6us,t3>9us。5.4數(shù)據(jù)傳輸協(xié)議5.4.1協(xié)議描述通信必須先由MCU發(fā)送命令和數(shù)據(jù)給ZLG500,ZLG500執(zhí)行命令完畢后,將命令執(zhí)行的狀態(tài)和響應(yīng)數(shù)據(jù)發(fā)回MCU。開始通信前,收

溫馨提示

  • 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)論