icode射頻卡的通信原理與讀卡方案.doc_第1頁(yè)
icode射頻卡的通信原理與讀卡方案.doc_第2頁(yè)
icode射頻卡的通信原理與讀卡方案.doc_第3頁(yè)
icode射頻卡的通信原理與讀卡方案.doc_第4頁(yè)
icode射頻卡的通信原理與讀卡方案.doc_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余30頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1原理簡(jiǎn)介無(wú)線射頻識(shí)別技術(shù)(Radio Frequency Identification , RFID)是一種非接觸的自動(dòng)識(shí)別技術(shù),其基本原理是利用射頻信號(hào)和空間耦合(電感或者電磁耦合)傳輸特性,實(shí)現(xiàn)對(duì)被識(shí)別物體的自動(dòng)識(shí)別。圖1 基本的 RFID 系統(tǒng)一個(gè)最基本的 RFID 系統(tǒng)有以下幾部分組成:標(biāo)簽(Tag):由耦合元件及芯片組成,每個(gè)標(biāo)簽具有唯一的電子編碼,附著在物體上標(biāo)識(shí)目標(biāo)對(duì)象;閱讀器(Reader):讀?。ㄓ袝r(shí)還可以寫入)標(biāo)簽信息的設(shè)備,可設(shè)計(jì)為手持式或固定式;天線(Antenna):在標(biāo)簽和閱讀器間傳遞射頻信號(hào);在RFID的實(shí)際應(yīng)用中,電子標(biāo)簽附著在被識(shí)別的物體上(表面或者內(nèi)部),當(dāng)帶有電子標(biāo)簽的被識(shí)別物體通過(guò)其可識(shí)讀范圍時(shí),閱讀器自動(dòng)以無(wú)接觸的方式將電子標(biāo)簽中的約定識(shí)別信息讀取出來(lái),從而實(shí)現(xiàn)自動(dòng)識(shí)別物體的功能。讀頭系統(tǒng)又包括讀頭和天線。無(wú)線射頻識(shí)別技術(shù)的不同分類方法:1 按標(biāo)簽的供電形式分為有源系統(tǒng)和無(wú)源系統(tǒng)。有源標(biāo)簽傳輸距離遠(yuǎn),穩(wěn)定性好,但是體積大,不易做成薄片卡,價(jià)格高。無(wú)源標(biāo)簽傳輸距離短,但是體積小,壽命長(zhǎng),便宜。2 按標(biāo)簽的數(shù)據(jù)調(diào)制方式可以分為主動(dòng)式、被動(dòng)式和半主動(dòng)式根據(jù)調(diào)制方式的不同,可以分為主動(dòng)式、被動(dòng)式和半主動(dòng)式。一般來(lái)講,無(wú)源系統(tǒng)為被動(dòng)式,有源系統(tǒng)為主動(dòng)式。主動(dòng)式的射頻系統(tǒng)用自身的射頻能量主動(dòng)地發(fā)送數(shù)據(jù)給讀寫器(讀頭),調(diào)制方式可以為調(diào)幅、調(diào)頻和調(diào)相。被動(dòng)式的射頻系統(tǒng),使用調(diào)制散射方式發(fā)送數(shù)據(jù),它必須利用讀寫器的載波來(lái)調(diào)制自己的信號(hào),其讀寫器只能確保激活一定范圍內(nèi)的射頻系統(tǒng)。一般來(lái)講,無(wú)源被動(dòng)式的標(biāo)簽為我們射頻系統(tǒng)中常用的標(biāo)簽。3 按標(biāo)簽的工作頻率可以分為低頻、高頻和超高頻系統(tǒng)讀頭發(fā)送無(wú)線信號(hào)時(shí)所使用的頻率被稱為RFID系統(tǒng)的工作頻率,基本上劃分為五個(gè)工作主要范圍:低頻(30300KHz)、高頻(330MHz)和超高頻(300MHz3GHz)。低頻系統(tǒng)一般工作在100500KHz,常見的低頻工作頻率為125KHz、134.2KHz;高頻系統(tǒng)工作頻率為1015MHz,常見的高頻工作頻率為13.56MHz;超高頻工作頻率850960MHz,常見的工作頻率為915MHz;4 按標(biāo)簽的可讀寫性分為只讀、讀寫和一次寫入多次讀寫卡根據(jù)射頻標(biāo)簽內(nèi)部使用存儲(chǔ)器類型的不同可分為三種:可讀寫卡(RW)、一次寫入多次讀出卡(WORM)和只讀卡(RO)??勺x可寫標(biāo)簽內(nèi)部的存儲(chǔ)器除了ROM、RAM和緩沖存儲(chǔ)器之外,還有非活動(dòng)可編程記憶存儲(chǔ)器(例如EEPROM)。我們打算設(shè)計(jì)電子標(biāo)簽基于 ISO15693 標(biāo)準(zhǔn),工作頻率為 13.56MHz。這種標(biāo)簽所屬的射頻識(shí)別系統(tǒng)是一種典型的電感耦合射頻系統(tǒng)。下面將介紹這個(gè)系統(tǒng)的工作原理。13.56MHz 系統(tǒng)因頻率較低,所以只能采用電感耦合作為通訊。電感耦合電子標(biāo)簽由一個(gè)電子數(shù)據(jù)作載體,通常是由單個(gè)微型芯片以及用作天線的大面積的線圈等組成。電感耦合電子標(biāo)簽幾乎都是無(wú)源工作的。這意味著:微型芯片工作所需要的全部能量必須由閱讀器供應(yīng)。高頻的強(qiáng)電磁場(chǎng)由閱讀器的天線線圈產(chǎn)生,這種磁場(chǎng)穿過(guò)線圈橫截面和線圈周圍的空間。因?yàn)槭褂妙l率范圍(13.56MHz:22.1m)內(nèi)的波長(zhǎng)比閱讀器天線和電子標(biāo)簽之間的距離大好多倍,可以把電子標(biāo)簽到天線的距離間的電磁場(chǎng)當(dāng)作簡(jiǎn)單的交變磁場(chǎng)來(lái)對(duì)待。發(fā)射磁場(chǎng)的一小部分磁力線穿過(guò)距閱讀器天線線圈一定距離的電子標(biāo)簽天線線圈。通過(guò)感應(yīng),在電子標(biāo)簽的天線線圈上產(chǎn)生一個(gè)電壓 Ui。將其整流后作為數(shù)據(jù)載體(微型芯片)的電源。電容器與天線線圈的電感一起,形成諧振頻率與閱讀器發(fā)射頻率相符的并聯(lián)振蕩回路。該回路的諧振使得閱讀器天線線圈產(chǎn)生非常大的電流,這種方法也可用于產(chǎn)生供遠(yuǎn)距離電子標(biāo)簽工作所需要的場(chǎng)強(qiáng)。電子標(biāo)簽的天線線圈和電容器 C1構(gòu)成振蕩回路,調(diào)諧到閱讀器的發(fā)射頻率。通過(guò)該回路的諧振,電子標(biāo)簽線圈上的電壓 U 達(dá)到最大值。這兩個(gè)線圈的結(jié)構(gòu)也可以解釋作變壓器(變壓器的耦合),變壓器的兩個(gè)線圈之間只存在很弱的耦合。閱讀器的天線線圈與電子標(biāo)簽之間的功率傳輸效率與工作頻率 f、標(biāo)簽線圈的匝數(shù) n、被標(biāo)簽線圈包圍的面積 A、兩個(gè)線圖的相對(duì)角度以及它們之間的距離成比例。簡(jiǎn)單的概括如下:1、讀寫器上電工作以后,在一個(gè)區(qū)域內(nèi)發(fā)出射頻信號(hào)。2、電子標(biāo)簽進(jìn)入該區(qū)域后,接收到讀寫器的射頻信號(hào),其芯片內(nèi)部的數(shù)據(jù)解調(diào)電路從該信號(hào)中解調(diào)出命令和數(shù)據(jù)并送到邏輯控制部分,完成數(shù)據(jù)存儲(chǔ)、發(fā)送或其他操作。3、讀寫器接收到返回的數(shù)據(jù)后,對(duì)其進(jìn)行解碼以及錯(cuò)誤校驗(yàn)等操作來(lái)決定數(shù)據(jù)的有效性,然后進(jìn)行處理,處理完畢的數(shù)據(jù)可以通過(guò)RS232、RS485、RJ45或是無(wú)線接口上傳至計(jì)算機(jī)中。2讀寫器與ICODEI射頻卡的通信協(xié)議設(shè)計(jì)為完成本次嵌入式設(shè)計(jì)大賽的主要任務(wù)是設(shè)計(jì)能夠?qū)Ψ螴CODE1規(guī)范協(xié)議的射頻卡進(jìn)行各種操作的讀寫器。因此本章主要介紹這兩種射頻卡的特性及讀寫器和射頻卡之間的通信協(xié)議。 根據(jù)工作距離的不同,中低頻段的射頻卡又可以分為以下三種,國(guó)際標(biāo)準(zhǔn)化組織己經(jīng)對(duì)其建立了相應(yīng)的標(biāo)準(zhǔn)。 密耦合卡(Closed Coupled Cards):支持ISO/IEC10536協(xié)議,讀寫距離小于1 cm; 近耦合卡(Proximity Cards):支持ISO/IEC 14443協(xié)議,讀寫距離小于10cm; 疏耦合卡(Vicinity Cards):支持ISO/IEC 15693協(xié)議,讀寫距離小于100cm;本機(jī)所支持的ICODE1射頻卡均為疏耦合卡,基于ISO/IEC 15693協(xié)議,工作頻率為13.56MHz。2. 1 ICODE1卡的特點(diǎn)和基本結(jié)構(gòu) ICODE1卡是一款遠(yuǎn)距離讀寫射頻芯片,主要適用于航空包裹和行李識(shí)別、郵件分選、商品流通控制以及電子防盜等領(lǐng)域。配合適當(dāng)?shù)奶炀€其有效作用距離可以達(dá)到75cm,具備防沖突功能,使得讀寫器能同時(shí)處理多張卡片。 ICODE1卡內(nèi)部具有512位的EEPROM,其數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)如表2.1所示。其中,X表示數(shù)據(jù)待定。表2.1 ICODEI卡的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)塊字節(jié)0字節(jié)1字節(jié)2字節(jié)3第0塊SNR0SNR1SNR2SNR3第1塊SNR4SNR5SNR6SNR7第2塊F0FFFFFF第3塊XXXX第4塊FCAPIXX第5塊XXXX第15塊XXXX由表2.1可見,EEPROM被分為16塊,每塊4個(gè)字節(jié),塊是最小的可讀寫單位。(1)第0塊和第1塊存放射頻卡的唯一序列號(hào)SNR(Serial Number),它在芯片制作過(guò)程中寫入,并且不能被改寫。(2)第2塊用于標(biāo)示各數(shù)據(jù)塊的寫保護(hù)狀態(tài),這32位被分為16個(gè)2比特控制組,每個(gè)比特控制組對(duì)應(yīng)一個(gè)數(shù)據(jù)塊,其映射關(guān)系如表2.2所示。一旦進(jìn)入寫保護(hù)狀態(tài),就不能再恢復(fù)可寫狀態(tài)了。比特控制組為l|l時(shí)表示可寫,為0|0時(shí)表示寫保護(hù)。這種特性使其可以適應(yīng)不同用戶的需求。表2.2寫保護(hù)位與第2塊之間的映射關(guān)系第二塊的字節(jié)Byte3Byte2Byte1Byte0對(duì)應(yīng)數(shù)據(jù)塊1514131211109876543210(3)第3塊的Byte0控制著特殊功能的設(shè)置。其中Bit1和Bit0用于電子商品防盜EAS功能的設(shè)置,當(dāng)Bit1,0=l|l時(shí),EAS功能被激活,在此狀態(tài)下射頻卡響應(yīng)EAS命令。Bit2和Bit3用于休眠QUIET功能的設(shè)置,當(dāng)Bit3,2=1|1時(shí),QUIET功能被激活,在此狀態(tài)下,射頻卡只響應(yīng)Reset Quiet Bit和EAS命令。(4)第4塊的Byte0, Bytel分別用于存儲(chǔ)家族代碼FC(Family Code)和應(yīng)用類型標(biāo)識(shí)符API(Application Identifier)。當(dāng)讀寫器發(fā)送的命令中包含F(xiàn)C和API信息且不為全零時(shí),射頻卡會(huì)核對(duì)自己的FC和API是否和命令中指定值相同,如果相同則執(zhí)行,否則不進(jìn)行任何操作。利用這一特性可以對(duì)射頻卡進(jìn)行分類,具有相同的FC或API值的卡稱之為同一族。FC和API的值是相互獨(dú)立的,這意味著如果其中之一為全零時(shí),只有與另一標(biāo)示符相匹配的卡才做出響應(yīng)。(5)第5塊至第15塊存放用戶自定義的數(shù)據(jù)。對(duì)于ICODE1射頻卡,用戶可使用44字節(jié)來(lái)存儲(chǔ)信息,可以滿足大多數(shù)的應(yīng)用場(chǎng)合。而且當(dāng)指令中的FC和API相應(yīng)參數(shù)為全零時(shí),表明不使用該特性,則第4塊也可以作為普通的用戶數(shù)據(jù)塊使用。2.2 射頻通訊格式 (1)數(shù)字調(diào)制方法在實(shí)際的通信系統(tǒng)中,很多信道都不能直接傳送基帶信號(hào),必須用基帶信號(hào)對(duì)載波波形的某些參量進(jìn)行控制,使載波的這些參量隨基帶信號(hào)的變化而變化。由于正弦信號(hào)形式簡(jiǎn)單,便于產(chǎn)生及接收,大多數(shù)數(shù)字通信系統(tǒng)中都采用正弦信號(hào)作為載波,即正弦載波調(diào)制。數(shù)字調(diào)制技術(shù)是用載波信號(hào)的某些離散狀態(tài)來(lái)表示所傳送的信息,在接收端也只要對(duì)載波信號(hào)的離散調(diào)制參量進(jìn)行檢測(cè)。數(shù)字調(diào)制信號(hào),在二進(jìn)制時(shí)有振幅鍵控(ASK)、移頻鍵控(FSK)和移相鍵控(PSK)三種基本信號(hào)形式,如圖2.1所示。圖2.1正弦載波的鍵控波形 由圖2.2可見,在二進(jìn)制振幅鍵控方式下,當(dāng)基帶信號(hào)的值為1時(shí),載波幅度為u1;當(dāng)基帶信號(hào)的值為0時(shí),載波幅度為u2。定義調(diào)制系數(shù)為m=(ul-u2)/(ul+u2)。當(dāng)u2為0時(shí),調(diào)制系數(shù)m=100%,如圖2.1(a)所示。圖2.2 ASK調(diào)制波形 移頻鍵控是載波頻率隨二進(jìn)制基帶信號(hào)在兩種頻率f1和f2之間進(jìn)行切換。 相移鍵控是將二進(jìn)制狀態(tài)0和1轉(zhuǎn)換成載波相對(duì)基準(zhǔn)相位的相應(yīng)相位狀態(tài),即在0度和180度之間切換。 (2)采用副載波的調(diào)制方法 就射頻識(shí)別系統(tǒng)而言,用副載波的調(diào)制法主要用在頻率范圍為6.78MHz, 13.56MHz或27.125MHz的電感耦合系統(tǒng)中從電子標(biāo)簽到讀寫器的數(shù)據(jù)傳輸。其實(shí)現(xiàn)方法是:用基帶編碼的數(shù)據(jù)信息首先調(diào)制低速率的副載波,可以選擇ASK,F(xiàn)SK或PSK。副載波是通過(guò)對(duì)最高載頻分頻得到的,如對(duì)于13.56MHz系統(tǒng),采用的副載波可以是847KHz(13.56MHz/16)、424KHz(13.56MHz/32)或212KHz(13.56MHz/64)。 為什么采用副載波調(diào)制,可以通過(guò)分析副載波的頻譜來(lái)得出結(jié)論:副載波調(diào)制后,在最高載頻F兩邊f(xié)(副載波頻率)處產(chǎn)生兩條譜線?;鶐?shù)據(jù)信息隨著基帶編碼的數(shù)據(jù)流對(duì)副載波的調(diào)制被分散到兩條副載波的譜線中。通過(guò)這種頻譜搬移,讀寫器可以對(duì)兩個(gè)副載波調(diào)制信號(hào)的任意一個(gè)進(jìn)行濾波解調(diào),選用F+f或者F-f都可以,因?yàn)閮蓚€(gè)邊帶中都包含了所需信息,這就體現(xiàn)了副載波調(diào)制的優(yōu)點(diǎn)。圖2.3說(shuō)明了ASK副載波調(diào)制生成示意圖。圖2.3 ASK副載波調(diào)制生成示意圖(3)下行數(shù)據(jù)編碼(讀寫器向射頻卡傳輸數(shù)據(jù))ICODEI射頻卡所采用的載波頻率為13.56MHz。由于數(shù)字信號(hào)調(diào)制在高頻載波上,才能在空間中傳播。調(diào)制系數(shù)(調(diào)制度)是一個(gè)重要的指標(biāo)。過(guò)高的調(diào)制度,將使載波幅度減少,使無(wú)源射頻卡無(wú)法獲得足夠的能量工作。過(guò)低的調(diào)制度,又會(huì)使數(shù)字信號(hào)淹沒在噪聲中,使射頻卡無(wú)法在載波中恢復(fù)數(shù)字信號(hào)。Phil畢s公司的ICODEI卡的解調(diào)電路能夠檢測(cè)到載波幅度10%的調(diào)幅信號(hào)。考慮到接收天線的高Q值(通常為Q =100)和片上解調(diào)電路的抗干擾能力,經(jīng)驗(yàn)證明,調(diào)制度為14%是效果最好的數(shù)據(jù)既能克服噪聲干擾,被射頻卡所識(shí)別,又能為卡提供足夠的能量。ICODEI卡的基帶信號(hào)編碼方式有兩種:標(biāo)準(zhǔn)模式和快速模式。標(biāo)準(zhǔn)模式標(biāo)準(zhǔn)模式采用的是一種稱為“256選1” (1 out of 256)的脈沖位置編碼方式。如圖2.4所示,用256個(gè)時(shí)隙表示8bit數(shù)據(jù),通過(guò)控制調(diào)制脈沖出現(xiàn)的位置來(lái)表示0255范圍內(nèi)的數(shù)據(jù)。圖中在第225個(gè)位置出現(xiàn)調(diào)制脈沖(9.44us高電平和9.44us低電平),表示所傳輸?shù)臄?shù)據(jù)為十六進(jìn)制數(shù)EI,9.44us低電平處表示對(duì)載波進(jìn)行調(diào)制,一個(gè)字節(jié)幀長(zhǎng)為4.833ms。其中傳輸數(shù)據(jù)0時(shí),不進(jìn)行任何調(diào)制,即整個(gè)4.833ms內(nèi)為未經(jīng)調(diào)制的載波;因此第256個(gè)位置是不用的。每個(gè)命令幀的第一個(gè)字節(jié)都有一個(gè)起始脈沖,長(zhǎng)度為18.88us,在其后半部分9.44us進(jìn)行調(diào)制??焖倌J娇焖倌J叫枰俚妮椛涔β?,它適用于讀寫距離更短或者是對(duì)響應(yīng)時(shí)間要求短的場(chǎng)合??焖倌J讲捎玫氖荝Z歸零編碼,編碼按比特位進(jìn)行,低位在前。圖2.5給出了起始位、邏輯1和邏輯0的編碼方式。其中邏輯0為全高,不調(diào)制載波。圖2.6所示為快速模式下E1的編碼格式。圖2.5快速模式下起始位、邏輯1、邏輯0的編碼圖2.6快速模式編碼舉例在這兩種模式下,起始脈沖只在每個(gè)命令幀的首字節(jié)出現(xiàn),射頻卡根據(jù)起始脈沖的寬度來(lái)識(shí)別兩種編碼模式??焖倌J较?,從讀寫器到射頻卡的數(shù)據(jù)傳輸率為26.5K波特,比標(biāo)準(zhǔn)模式要快16倍。(4)上行數(shù)據(jù)編碼(射頻卡向讀寫器傳輸數(shù)據(jù))由射頻卡返回的數(shù)據(jù)采用13.56MHz載波加上423.75KHz副載波的曼徹斯特編碼調(diào)制,如圖2.7所示。對(duì)于快速模式和標(biāo)準(zhǔn)模式,上行數(shù)據(jù)的格式是一致的。圖2.7上行數(shù)據(jù)編碼方式2. 3 狀態(tài)圖和指令集ICODE1系統(tǒng)工作在“讀寫器先發(fā)言”RTF (Reader Talks First)的機(jī)制下。首先讀寫器發(fā)送一個(gè)命令,射頻卡執(zhí)行該指令并向讀寫器返回響應(yīng)。如果射頻場(chǎng)內(nèi)有多個(gè)射頻卡,那么就需要一種機(jī)制對(duì)響應(yīng)進(jìn)行分離。ICODEI系統(tǒng)通過(guò)時(shí)隙機(jī)制實(shí)現(xiàn)這種分離。進(jìn)入射頻場(chǎng)后,ICODEl卡共有非選定、選定、終止和休眠四種狀態(tài),其狀態(tài)轉(zhuǎn)換關(guān)系見圖2.8。表2.3所示為ICODE1卡支持的指令說(shuō)明,對(duì)于某些命令讀寫器需要發(fā)送確認(rèn)信號(hào)QUIT幀。表2.3 ICODEI射頻卡的指令集指令名稱功能說(shuō)明Anticollision/Select選擇場(chǎng)內(nèi)的射頻卡Selected Read從非選定狀態(tài)下的射頻卡中讀取一個(gè)或多個(gè)連續(xù)的數(shù)據(jù)塊Unselected Read從選定狀態(tài)下的射頻卡中讀取一個(gè)或多個(gè)連續(xù)的數(shù)據(jù)塊Write Block向選定狀態(tài)下的射頻卡中寫入一個(gè)數(shù)據(jù)塊Halt將射頻卡置為終止模式,使其不再響應(yīng)任何命令Reset QUIET Bit將QUIET位清零,QUIET功能置為無(wú)效EAS使EAS功能被激活的射頻卡發(fā)送256位特征響應(yīng)QUIT幀對(duì)每個(gè)時(shí)隙的卡分別發(fā)送,適于nticollision/Select, Write Block和Halt在非選定狀態(tài)下,射頻卡通過(guò)一種偽隨機(jī)算法計(jì)算時(shí)隙位置。當(dāng)多張卡在同一時(shí)隙發(fā)送響應(yīng)時(shí),讀寫器可檢測(cè)到?jīng)_突,但無(wú)法正確接收響應(yīng)。 通過(guò)防沖突/選擇命令將射頻卡轉(zhuǎn)換為選定狀態(tài),每個(gè)處于選定狀態(tài)的射頻卡都在固定的時(shí)隙發(fā)送響應(yīng)。只有處于選定狀態(tài)的卡才響應(yīng)Selected Read Write Block和Halt指令。 對(duì)于Write Block和Halt指令,選定狀態(tài)下的射頻卡在收到命令后返回各自的序列號(hào),但是只有收到讀寫器在相應(yīng)時(shí)隙發(fā)送的確認(rèn)信號(hào)QUIT幀以后才真正執(zhí)行操作。 對(duì)于EAS指令,所有EAS功能被激活的射頻卡在同一個(gè)時(shí)間以相同的格式返回256位特征數(shù)據(jù)。處于休眠狀態(tài)的射頻卡在收到Reset QUIET Bit命令后并不向讀寫器發(fā)送響應(yīng),只是將QUIET位清零。由于需要對(duì)EEPROM進(jìn)行寫操作,因此在發(fā)送下一個(gè)命令之前需要大約6000us的延時(shí)。圖2.8 ICODE1射頻卡的狀態(tài)圖2. 4 指令幀格式ICODEl卡收到讀寫器發(fā)送的指令后,對(duì)指令代碼進(jìn)行分析并作出相應(yīng)的響應(yīng)。下面分別介紹各指令的幀格式,假定總的時(shí)隙個(gè)數(shù)為n,括號(hào)中為快速模式下所用時(shí)間。(1) Anticollision/Select,Write Block和Halt指令的幀格式。圖2.9 防沖突/選擇指令的幀格式Anticollision/Select(AC/S),Write Block和Halt指令的幀格式完全相同。首先讀寫器發(fā)送命令,射頻卡在相應(yīng)的時(shí)隙發(fā)送其序列號(hào)以及2字節(jié)CRC 16值,在各自的響應(yīng)時(shí)隙收到讀寫器發(fā)送的正確QUIT幀后,真正執(zhí)行命令中規(guī)定操作(置為選定狀態(tài),寫數(shù)據(jù)或置為終止?fàn)顟B(tài))。其中命令與第一個(gè)時(shí)隙的響應(yīng)之間,上一個(gè)時(shí)隙的QUIT幀和下一個(gè)時(shí)隙的響應(yīng)之間都有326us的時(shí)間間隔(以下命令類似);同一個(gè)時(shí)隙的響應(yīng)和QUIT幀之間的間隔在標(biāo)準(zhǔn)模式下為278us,快速模式下為269us。因此,執(zhí)行每一個(gè)命令的總時(shí)間如下: 標(biāo)準(zhǔn)模式:38.7ms+n*(326us+3.02ms+278us+ 4.83ms)=38.7ms+n*8.454ms 快速模式:2.44ms+n*(326us+3.02ms+269us+311.52us)=38.7ms+n*3.927ms(2) Unselected Read和Selected Read指令幀格式圖2.10選擇讀指令的幀格式 Unselected Read和Selected Read指令的幀格式完全相同。首先讀寫器發(fā)送命令,然后射頻卡在相應(yīng)的時(shí)隙發(fā)送X個(gè)數(shù)據(jù)塊的內(nèi)容以及2字節(jié)CRC 16值。其中兩個(gè)時(shí)隙的響應(yīng)之間有302us的時(shí)間間隔。執(zhí)行每個(gè)命令的總時(shí)間如下: 標(biāo)準(zhǔn)模式:38.7ms+326us+n*(X*1.208ms+0.604ms+302us) =39.026ms+n*(X*1.208+0.906)ms 快速模式:2.44ms+326us+n*(X* 1.208ms+0.604ms+302us) = 2.766ms +n*(X*1.208+0.906)ms(3) EAS的指令幀格式圖2.11 EAS指令的幀格式EAS的指令幀格式比較簡(jiǎn)單,當(dāng)讀寫器發(fā)送命令后,EAS功能被激活的所有射頻卡都在同一個(gè)時(shí)隙發(fā)送256位EAS特征響應(yīng)。執(zhí)行EAS命令的總時(shí)間如下: 標(biāo)準(zhǔn)模式:38.7ms+326us+9.677ms=48.703ms 快速模式:2.44ms+326us+9.677ms=12.443ms(4) Reset QUIET Bit的指令幀格式圖2.12喚醒指令的幀格式讀寫器發(fā)送Reset QUIET Bit后,射頻卡并不發(fā)送任何響應(yīng),只是處于休眠狀態(tài)的射頻卡將QUIET位清零。在開始一個(gè)新的命令或關(guān)閉射頻場(chǎng)之前,應(yīng)給寫EEPROM留出至少5154.24us的延時(shí)。執(zhí)行Reset QUIET Bit命令的總時(shí)間如下:標(biāo)準(zhǔn)模式:38.7ms+5154.24us=43.854ms快速模式:2.44ms+5154.24us=7.594ms2. 5 防沖突的實(shí)現(xiàn)在射頻識(shí)別系統(tǒng)中,為了防止多個(gè)射頻卡同時(shí)與讀寫器交換數(shù)據(jù)所引起的沖突,需采用一定的防沖突算法,這也是RFID技術(shù)的重點(diǎn)與難點(diǎn)。ICODE1卡采用一種基于時(shí)隙的防沖突算法:讀寫器利用分配時(shí)隙給每個(gè)射頻卡來(lái)為它們分別建立邏輯通道,采用信息級(jí)沖突檢測(cè),可直接由軟件控制,并且能夠達(dá)到較快的識(shí)別速度。 (1)防沖突算法的基本原理 由前面所述可知,處于選定狀態(tài)的ICODEI卡在己分配好的時(shí)隙內(nèi)響應(yīng)讀寫等命令,如果每個(gè)射頻卡的時(shí)隙各不相同,則可以實(shí)現(xiàn)無(wú)沖突的操作。 AC/S命令用于給每個(gè)射頻卡分配時(shí)隙并置為選定狀態(tài)。當(dāng)射頻場(chǎng)內(nèi)所有處于非選定狀態(tài)的射頻卡收到AC/S命令后,計(jì)算各自的響應(yīng)時(shí)隙并在該時(shí)隙發(fā)送64位序列號(hào)作為響應(yīng)。由于每個(gè)射頻卡的序列號(hào)各不相同,而且返回的數(shù)據(jù)采用曼徹斯特編碼。因此當(dāng)兩個(gè)或多個(gè)射頻卡同時(shí)返回其唯一的序列號(hào)時(shí),一定會(huì)在某一位或某兒位上有不同的值,疊加之后上升沿和下降沿相互抵消,以至無(wú)電平跳變,讀寫器據(jù)此判斷該位出現(xiàn)沖突。讀寫器在無(wú)沖突的時(shí)隙發(fā)送一個(gè)確認(rèn)信號(hào),為處于該時(shí)隙的卡分配唯一的時(shí)隙號(hào)并且將其由非選定狀態(tài)轉(zhuǎn)換為選定狀態(tài),以此實(shí)現(xiàn)無(wú)沖突操作。 (2)防沖突算法的實(shí)現(xiàn)流程 根據(jù)上述原理,本文設(shè)計(jì)并實(shí)現(xiàn)了讀寫器端對(duì)ICODE1卡操作的防沖突算法。其基本流程如圖2.13所示。為了減小通信時(shí)間,每當(dāng)開始執(zhí)行防沖突功能時(shí),都將時(shí)隙指數(shù)預(yù)置為1,根據(jù)每次AC/S命令后沖突的次數(shù)自動(dòng)調(diào)整。 射頻卡進(jìn)入讀寫器天線的作用范圍后,被置為非選定狀態(tài)。讀寫器發(fā)送AC/S命令,用于為場(chǎng)中的射頻卡分配不同的時(shí)隙。 射頻卡響應(yīng)AC/S指令,計(jì)算出響應(yīng)時(shí)隙并在該時(shí)隙返回各自的序列號(hào)。在每個(gè)時(shí)隙都會(huì)有下述三種情況之一發(fā)生:A.無(wú)卡響應(yīng);B.有唯一卡響應(yīng);C.有多個(gè)卡響應(yīng),讀寫器檢測(cè)到?jīng)_突。 讀寫器在發(fā)送完命令后的每個(gè)時(shí)隙從接收端譯碼,并根據(jù)該時(shí)隙的響應(yīng)情況進(jìn)行相應(yīng)操作。A.無(wú)卡響應(yīng),則繼續(xù)判斷下一個(gè)時(shí)隙;B.有唯一卡響應(yīng),如果該時(shí)隙被占有則繼續(xù)判斷下一個(gè)時(shí)隙,否則發(fā)送QUIT幀后再繼續(xù)判斷下一個(gè)時(shí)隙;C.有多個(gè)卡響應(yīng),則記錄沖突次數(shù)然后判斷下一個(gè)時(shí)隙。 將每個(gè)射頻卡固定在不同的時(shí)隙后,執(zhí)行選定狀態(tài)下的讀寫數(shù)據(jù)等其它操作。對(duì)處于選定狀態(tài)的卡操作完畢后,將它們置為終止?fàn)顟B(tài),釋放時(shí)隙號(hào)。然后繼續(xù)循環(huán)執(zhí)行防沖突/選定讀寫數(shù)據(jù)終止等操作。圖2.13基于時(shí)隙的防沖突算法的流程圖3 讀寫器硬件系統(tǒng)設(shè)計(jì)本設(shè)計(jì)采用STR912FW44X6控制專用射頻讀寫芯片,構(gòu)成一臺(tái)完整的13.56MHz近距離非接觸式IC卡手持讀寫設(shè)備。讀寫器支持Philips公司的ICODEl射頻卡,具有多卡尋卡以及單卡讀寫能力,支持標(biāo)準(zhǔn)卡的全部用戶讀寫命令。3.1 讀寫器的性能及工作原理介紹讀寫器的技術(shù)規(guī)范一般包括工作頻率、支持標(biāo)簽類型、通信接口與速率等,本機(jī)的詳細(xì)技術(shù)規(guī)范指標(biāo)如表3.1所示。表3.1手持式讀寫器的技術(shù)規(guī)范指標(biāo)序號(hào)技術(shù)項(xiàng)目手持式讀寫器指標(biāo)1工作頻率13.56MHz2讀寫距離50mm3通訊接口與速率RS-232串行通訊接口,57600bps4讀寫芯片TI公司的RI-R6C-001A芯片5支持的Tag類型Philips公司1CODE 1卡6防沖突功能有,可用于尋卡操作7天線有8蜂鳴器有(用于檢測(cè)EAS標(biāo)簽和提示特定工作狀態(tài)等)9顯示TFT真彩顯示屏(TFT6758)10電源電壓充電電池供電,電壓5V(芯片工作電壓為3.3V)11外設(shè)存儲(chǔ)器2M NOR Flash存儲(chǔ)器(SST39VF1601)和4M PSRAM存儲(chǔ)器(IS61LV25616)根據(jù)表3.1中所要求的性能指標(biāo),設(shè)計(jì)了本機(jī)的硬件電路,其系統(tǒng)組成框圖見圖3.1,由主控制器、射頻收發(fā)電路、顯示器、鍵盤、實(shí)時(shí)鐘、RS-232通信接口、電源及穩(wěn)壓電路、大容量存儲(chǔ)器及輔助電路組成。圖3.1讀寫器組成框圖主控制器是系統(tǒng)的核心部分,它負(fù)責(zé)接收用戶命令、對(duì)發(fā)送信號(hào)進(jìn)行編碼和對(duì)接收信號(hào)進(jìn)行解碼,主控制器與應(yīng)答器的通信過(guò)程經(jīng)由射頻收發(fā)模塊實(shí)現(xiàn)。JTAG(Joint Test Action Group)接口主要用于在線調(diào)試以及設(shè)置主控制器的熔絲位等。通過(guò)串行通信接口可以實(shí)現(xiàn)與計(jì)算機(jī)的通信,進(jìn)行數(shù)據(jù)上傳以及更新程序和字庫(kù)等操作。由于串口是Windows系統(tǒng)下編程控制最簡(jiǎn)單的通訊端口,因此可以極大節(jié)省二次開發(fā)時(shí)耗費(fèi)在通訊編程上的時(shí)間。存儲(chǔ)模塊用于保存字庫(kù)以及用戶對(duì)射頻卡進(jìn)行操作的結(jié)果,適合移動(dòng)式應(yīng)用。實(shí)時(shí)鐘模塊為系統(tǒng)提供準(zhǔn)確時(shí)間,用于記錄特定事件和操作的發(fā)生時(shí)刻,這使得手持機(jī)的功能更加完善。電池組用于給上述各模塊供電,由于電池剛充滿電和接近放電中止時(shí)的端電壓相差較大,因此采用需要進(jìn)行穩(wěn)壓。本系統(tǒng)支持的射頻卡均為無(wú)源式射頻卡,它需要從讀寫器天線形成的磁場(chǎng)中接收能量,因此讀寫距離也受到了一定的限制。本系統(tǒng)的基本工作流程如下: 主控制器通過(guò)用戶按鍵與LCD顯示信息獲得用戶指令并對(duì)其進(jìn)行編碼; 編碼后的命令被射頻讀寫芯片調(diào)制為頻率在13.56MHz的射頻信號(hào),然后通過(guò)天線發(fā)射出去; 當(dāng)射頻卡進(jìn)入天線的有效工作區(qū)域時(shí)產(chǎn)生感應(yīng)電流,射頻卡獲得能量被激活; 射頻卡分析收到的命令,并將相應(yīng)的信息通過(guò)卡內(nèi)置天線發(fā)送出去; 從射頻卡發(fā)送來(lái)的載波信號(hào)被讀寫器的天線接收,經(jīng)射頻讀寫芯片解調(diào)送回主控制器; 讀寫器從射頻讀寫芯片讀出響應(yīng),進(jìn)行解碼,然后在LCD上顯示操作結(jié)果。此外,讀寫器的軟件系統(tǒng)需要根據(jù)邏輯運(yùn)算判斷該卡的合法性,針對(duì)不同的設(shè)定做出相應(yīng)的處理和控制,發(fā)出指令信號(hào)控制執(zhí)行機(jī)構(gòu)的動(dòng)作。3. 2 系統(tǒng)硬件電路設(shè)計(jì)本節(jié)詳細(xì)介紹每個(gè)模塊的原理及功能。3. 2. 1微控制器的選擇我們選用的芯片是ST公司出品的基于ARM966E-S內(nèi)核的新型多功能芯片STR912FW44X6,這款芯片的主要性能指標(biāo)有: 采用了系統(tǒng)級(jí)封裝(SiP)技術(shù)。 有多種封裝選擇形式:128-pin (14 x 14 mm) 80-pin (12 x 12 mm)LQFP 和LFBGA144 (10 x 10 mm) 封裝。 包含Burst Flash 內(nèi)存接口。 包含許多時(shí)鐘控制單元如: CPU, fCPUCLK Advanced High-performance Bus (AHB), fHCLK Advanced Peripheral Bus (APB), fPCLK Flash Memory Interface (FMI), fFMICLK External Memory Interface (EMI), fBCLK UART Baud Rate Generators, fBAUD USB, fUSB STR91xF系列芯片需要兩套不同的電壓供應(yīng),CPU和內(nèi)存操作時(shí),在VDD引腳上供應(yīng)電壓為1.65V 到 2.0V;I/O操作時(shí),在VDDQ引腳上供應(yīng)電壓為2.7V 到 3.6V。 含有IEEE-1149.1標(biāo)準(zhǔn)的JTAG接口,基于ISP,可以觀測(cè)內(nèi)存,測(cè)試引腳,調(diào)試CPU。 提供基于IEEE-802.3-2002標(biāo)準(zhǔn)的MAC,用于以太網(wǎng)的連接,通過(guò)工業(yè)級(jí)標(biāo)準(zhǔn)MII接口進(jìn)行連接。STR91xF系列芯片需要一個(gè)額外的PHY設(shè)備來(lái)連接physical LAN bus。 包含USB2.0接口,支持USB低速和高速運(yùn)行。 包含CAN2.0B接口,可以進(jìn)行CAN通訊的研發(fā)。 STR91xF系列芯片提供三個(gè)獨(dú)立的UART串行接口,UART0,UART1,和UART2,最大比特率可以到1.5 Mbps。 含有兩個(gè)獨(dú)立的I2C串行接口,I2C0和I2C1。 提供了兩個(gè)同步串行SSP接口,SSP0和SSP1。每一個(gè)SSP接口都支持SPI協(xié)議。 在128針和144針?lè)庋b的設(shè)備中,含有多達(dá)80個(gè)GPIO引腳,一共分為10個(gè)I/O口,每一個(gè)引腳都是高阻抗輸入模式,所有的GPIO引腳都是5V耐壓。 包含8通道,10位精度的A/D轉(zhuǎn)換器。 集成了一個(gè)三相的電磁電機(jī)控制器,用10位的PWM計(jì)數(shù)器來(lái)產(chǎn)生三路PWM,分別控制U、V、W,含有可編程的6位的死區(qū)來(lái)控制PWM的延遲。 EMI接口總線,用來(lái)擴(kuò)展存儲(chǔ)器,含有4個(gè)片選信號(hào)(EMI_CS0n .EMI_CS3n)。圖3.2 STR91xF系列芯片功能框圖3. 2. 2電源及穩(wěn)壓電路圖3.3 +5V電源輸出圖3.4 +3.3V電源輸出圖3.5 +1.8V電源輸出系統(tǒng)的5V電源電路的穩(wěn)壓芯片使用的是LM2576開關(guān)電源芯片,如圖,LM2576能夠?yàn)殚_發(fā)提供足夠的電流。SPX1117系列的LDO芯片輸出電流大,輸出電壓精度高,穩(wěn)定性好。其輸出電流可達(dá)800mA,輸出精度在正負(fù)1以內(nèi),還具有電流限制和熱保護(hù)功能,廣泛應(yīng)用于手持式設(shè)備、數(shù)字家電和工業(yè)控制等領(lǐng)域。3. 2. 3射頻收發(fā)電路射頻收發(fā)電路由天線、射頻讀寫芯片及其相應(yīng)外圍電路組成,它是實(shí)現(xiàn)控制器與射頻卡通信的橋梁。具體電路如圖3.6所示。圖3.6射頻收發(fā)電路原理圖本機(jī)使用TI公司的RI-R6C-001 A作為專用射頻讀寫芯片,它是TI公司最新開發(fā)的針對(duì)非接觸式IC卡讀寫的多協(xié)議收發(fā)器,支持的協(xié)議包括ISO/IEC 15693-2,ISO/IEC14443-2(TYPE A)。其標(biāo)準(zhǔn)工作頻率為13.56MHz。芯片與MCU之間通過(guò)SCLOCK, M ERR, DIN, DOUT共4條數(shù)據(jù)線進(jìn)行通信。芯片的XTAL CLK為晶體振蕩器緩沖端,它可以輸出13:56MHz的時(shí)鐘信號(hào),由此提供MCU工作所需要的時(shí)鐘。RI-R6C-001 A由發(fā)送器、接收器、電源供應(yīng)、參考時(shí)鐘和內(nèi)部振蕩器、默認(rèn)的復(fù)位設(shè)置和電源管理,串行通信接口等幾部分組成。該芯片通常是SV供電,內(nèi)部封裝有發(fā)送編碼器,調(diào)制器,接收器和解調(diào)器,SV電源供電時(shí)發(fā)送的射頻功率可達(dá)200mW , 3 V電源供電時(shí)為80mW,有IDLE, POWER DOWN, FULL POWER三種電源管理功能。它提供給用戶數(shù)字接口的信號(hào)線為DIN, DOUT, SCLOCK,通過(guò)這三根線可以完成控制器與RI-R6C-OOlA芯片之間的數(shù)據(jù)傳輸。當(dāng)RI-R6C-001 A要發(fā)送數(shù)據(jù)時(shí),時(shí)鐘由STR912FW44X6控制,當(dāng)它要接收數(shù)據(jù)時(shí),時(shí)鐘由該芯片控制。DOUT除了在接收數(shù)據(jù)期間有把接收到的數(shù)據(jù)輸出給STR912FW44X6的功能外,還用來(lái)表征RI-R6C-001A內(nèi)部FIFO的情況。DOUT具有內(nèi)部下拉電路,平時(shí)為低電平。輸入數(shù)據(jù)過(guò)程中,當(dāng)RI-R6C-001 A的16位FIFO寄存器滿時(shí),DOUT線會(huì)自動(dòng)跳變?yōu)楦唠娖?,直到FIFO寄存器空,DOUT線又會(huì)跳變?yōu)榈碗娖健S捎谠贒OUT為高電平期間,輸入數(shù)據(jù)無(wú)效,因此軟件設(shè)計(jì)時(shí)STR912FW44X6每發(fā)一位數(shù)據(jù)都要檢測(cè)DOUT的狀態(tài)。由于電路中的發(fā)射器一直工作,因此,應(yīng)增大集成電路散熱片的尺寸以增加散熱面積。設(shè)計(jì)電路時(shí),應(yīng)避免過(guò)大的分布電容,當(dāng)電路板分布電容過(guò)高時(shí),可配合晶振調(diào)整電容CS的值,以減少時(shí)鐘的不穩(wěn)定性。推薦CS值為22pF。通過(guò)軟件處理可使收發(fā)器的調(diào)制度為100%或者10%。 ISO/TEC15693協(xié)議規(guī)定標(biāo)簽允許執(zhí)行10%30%之間的調(diào)制度(除100%之外),通過(guò)改變R_MOD端所連電阻R2的值可以達(dá)到這個(gè)要求,R2的阻值和調(diào)制深度之間的關(guān)系如表3.2所示。 表3.2調(diào)制度和R2之間的關(guān)系調(diào)制度m(%)R2()說(shuō)明1012最小調(diào)制度2018推薦調(diào)制度3025最大調(diào)制度RI-R6C-001A芯片支持多種工作模式:直接模式、寄存器模式和正常模式。其中寄存器模式支持直接讀取TI公司的射頻卡;在直接模式下,通過(guò)MCU直接操作DIN線對(duì)13.560MHz載波進(jìn)行調(diào)幅(ASK),芯片同時(shí)可對(duì)收到的ASK信號(hào)解調(diào),從DOUT線輸出給MCU,輸入輸出信號(hào)均為曼徹斯特編碼的基帶信號(hào)。因此采用直接模式可以間接讀取Philips公司的ICODE 1射頻卡。RI-R6C-001 A芯片具有射頻和基帶處理電路,支持簡(jiǎn)單的無(wú)源讀寫天線,芯片的射頻輸出引腳到讀寫天線之間需要外接一組LC諧振和濾波網(wǎng)絡(luò),電路形式與芯片手冊(cè)上提供的典型應(yīng)用電路完全相同,LC元件參數(shù)依據(jù)PCB參數(shù)不同。本機(jī)要求使用ICODE 1卡,用一只簡(jiǎn)單的單繞組天線實(shí)現(xiàn)數(shù)據(jù)的發(fā)送和接收。ICODE 1的調(diào)制方式是ASK,帶寬接近1 MHz,對(duì)這種ASK調(diào)制,天線帶寬十分重要。3. 2. 4 外擴(kuò)存儲(chǔ)器電路(1)鎖存電路圖3.7 鎖存電路因?yàn)镾TR912FW44X6芯片的數(shù)據(jù)位和地址位是復(fù)用的,對(duì)于16位的數(shù)據(jù)傳輸來(lái)說(shuō),應(yīng)該將復(fù)用的信號(hào)鎖存來(lái)傳輸?shù)刂肺?。?)擴(kuò)展存儲(chǔ)電路圖3.8 外擴(kuò)存儲(chǔ)電路本系統(tǒng)擴(kuò)展了4M的PSRAM(芯片型號(hào)為IS61LV25616)和2M的FLASH(芯片型號(hào)為SST39LF160)。電路如圖 ,分配Bank0地址為FLASH的地址空間,Bank1地址為PSRAM的地址空間。用FLASH來(lái)引導(dǎo)程序的運(yùn)行。由于SST39LF160和IS61LV25616都是16位總線接口,所以使用經(jīng)過(guò)鎖存器鎖存的地址信號(hào)與它們相連。為了能對(duì)IS61LV25616的字單元進(jìn)行單獨(dú)的字節(jié)操作,將STR912FW44X6芯片的EMI_WRHn 和EMI_BWR_WRLn 信號(hào)與EMI_RDn信號(hào)分別與操作以后接到IS61LV25616的LB和UB引腳。3. 2. 5 按鍵電路考慮到本機(jī)要實(shí)現(xiàn)的功能,應(yīng)該具備09十個(gè)數(shù)字鍵和一些必須的功能鍵,因此采用7*3的矩陣式薄膜按鍵。采用10根I/O口線實(shí)現(xiàn)了21個(gè)按鍵,與獨(dú)立式按鍵結(jié)構(gòu)相比節(jié)省了一半的I/O口。鍵盤原理圖及其與STR912FW44X6之間的接口分布圖如圖3.9所示。在圖3.9中,行線(P6.0P6.7)、列線(P2.2P2.4)分別連接到按鍵開關(guān)的兩端,列線作為掃描輸出,行線作為掃描輸入。由于STR912FW44X6的P6和P2端口都有與電壓無(wú)關(guān)的上拉電阻,因此行線無(wú)需外接上拉。根據(jù)為低電平的行線和當(dāng)前掃描列即可判斷出哪個(gè)鍵被按下。圖3.9 薄膜按鍵電路3. 2. 6 RS-232串行通信接口電路作為一個(gè)手持式的設(shè)備,所存儲(chǔ)的數(shù)據(jù)需要定期上傳到PC機(jī)中進(jìn)行保存或者進(jìn)一步的處理;此外,本手持機(jī)還可以更新程序或者字庫(kù)等。這些操作都需要在手持機(jī)和PC機(jī)之間進(jìn)行數(shù)據(jù)傳輸。本文選用RS-232作為手持機(jī)與PC機(jī)之間的接口方式。 在本文的設(shè)計(jì)中,手持機(jī)與外界采用RS-232串行接口進(jìn)行數(shù)據(jù)傳輸。其電路圖如圖3.10所示。STR912FW44X6具有全雙工的串行通訊接口,通過(guò)它與PC機(jī)實(shí)現(xiàn)數(shù)據(jù)通信。本機(jī)采用MAX3232芯片實(shí)現(xiàn)RS-232電平與TTL電平之間的轉(zhuǎn)換。圖3.10 串行通訊電路SP3232E是Sipex公司生產(chǎn)的一種RS232接口芯片,使用單一電源電壓供電,電源電壓在3.0V5.5V范圍內(nèi)都可以正常工作,其額定電流為300uA。只需外接四個(gè)0.1uF的電容,保證數(shù)據(jù)傳輸速率在120kbps下保持RS232輸出電平??梢院芊奖愕赝瓿蒚TL電平與RS232電平之間的轉(zhuǎn)換。3. 2. 7 USB接口電路圖3.11 USB接口電路 為了以后開發(fā)USB功能先將USB口設(shè)置出來(lái)。3. 2. 8 LCD顯示模塊圖3.12 LCD顯示模塊3. 2. 9 SPI總線與串行存儲(chǔ)電路圖3.13 SPI總線與串行存儲(chǔ)電路3. 2. 10 基于I2C總線的EEPROM芯片電源復(fù)位電路由于ARM芯片的高速、低功耗和低工作電壓導(dǎo)致其噪聲容限低,對(duì)于電源的波紋。瞬態(tài)響應(yīng)性能、時(shí)鐘源的穩(wěn)定性和電源監(jiān)控可靠性等諸多方面也提出了更高的要求。本文設(shè)計(jì)了基于I2C總線的EEPROM芯片CAT1025的電源復(fù)位電路,提高了系統(tǒng)的可靠性,也可以為以后I2C編程打下硬件基礎(chǔ)。圖3.14 EEPROM芯片電源復(fù)位電路3. 2. 11 蜂鳴器電路本手持機(jī)中蜂鳴器主要用于在檢測(cè)到EAS激活時(shí)發(fā)出報(bào)警指示音,或者在各項(xiàng)操作成功/失敗及其它特定狀態(tài)時(shí)鳴響。圖3.15蜂鳴器驅(qū)動(dòng)電路圖由于STR912FW44X6芯片IO口的驅(qū)動(dòng)能力有限,不能直接驅(qū)動(dòng)壓電式蜂鳴器,因此選用PNP型三極管組成驅(qū)動(dòng)電路,利用芯片的P4.7口(T3.OCMP2 / P4.7) 輸出經(jīng)驅(qū)動(dòng)電路放大后即可驅(qū)動(dòng)蜂鳴器。通過(guò)T3.OCMP2 / P4.7高低電平的變化控制蜂鳴器的發(fā)聲次數(shù)及頻率。4 讀寫器軟件系統(tǒng)設(shè)計(jì)本文設(shè)計(jì)的手持機(jī)需要支持ICODEl卡的所有用戶命令,能夠?qū)崿F(xiàn)在應(yīng)用編程IAP功能,具有鍵盤、LCD、外部存儲(chǔ)、實(shí)時(shí)鐘、蜂鳴器等外部設(shè)備。因此可將軟件設(shè)計(jì)分為三部分:主程序、射頻卡讀寫程序以及外部設(shè)備的驅(qū)動(dòng)程序。4. 1編程思想及編程語(yǔ)言的選擇 一個(gè)好的程序要有一個(gè)好的編程思想。本論文采用模塊化編程和結(jié)構(gòu)化編程的思想,二者是相輔相成的。模塊化編程:完全實(shí)現(xiàn)本機(jī)所有的技術(shù)指標(biāo)需要大量而有效的程序來(lái)實(shí)現(xiàn),煩瑣的程序需要采用模塊化編程的方法,即將一個(gè)大的程序分成若干小的模塊,各個(gè)模塊保持相對(duì)的獨(dú)立性,模塊之間只靠少量的出入口參數(shù)相聯(lián)系。這樣各個(gè)程序模塊分別設(shè)計(jì),從而使程序的調(diào)試、修改和維護(hù)都變得比較容易。結(jié)構(gòu)化編程:各個(gè)子程序之間使用結(jié)構(gòu)良好的轉(zhuǎn)移和調(diào)用,這樣各個(gè)模塊可有效地組合成一個(gè)整體,使流程明確地從一個(gè)程序模塊轉(zhuǎn)移到下一個(gè)程序模塊。在這個(gè)過(guò)程中,要注意嚴(yán)格控制使用任意轉(zhuǎn)移語(yǔ)句。 單片機(jī)開發(fā)所使用的語(yǔ)言通常為匯編語(yǔ)言和C語(yǔ)言。匯編語(yǔ)言的代碼生成效率很高,程序執(zhí)行速度快,但是不同系列的單片機(jī)支持的匯編語(yǔ)言指令差別很大,程序的可讀性和可移植性都較差、程序開發(fā)周期比較長(zhǎng)。C語(yǔ)言則是比較通用的程序設(shè)計(jì)語(yǔ)言,既可用來(lái)編寫計(jì)算機(jī)的系統(tǒng)程序,也可用來(lái)編寫一般的應(yīng)用程序。C程序最大的優(yōu)點(diǎn)就是可讀性強(qiáng),移植性很好,但是與匯編語(yǔ)言相比,其代碼生成效率要低1020。從本機(jī)要實(shí)現(xiàn)的具體功能考慮,采用C語(yǔ)言和匯編語(yǔ)言嵌套的方式。由于對(duì)射頻卡以及實(shí)時(shí)鐘、串行Flash, LCD等外設(shè)進(jìn)行操作時(shí),需要遵守嚴(yán)格的時(shí)序關(guān)系,因此與之相關(guān)的程序采用匯編語(yǔ)言編寫;主程序?qū)崿F(xiàn)功能較多,而且對(duì)時(shí)間要求不太嚴(yán)格,因此采用可讀性和移植性很強(qiáng)的C語(yǔ)言編寫。4. 2主程序STR912FW44X6具有在應(yīng)用編程IAP(In-Application Programming)和在系統(tǒng)編程ISP(In-System Programming)的能力。ISP和IAP技術(shù)是未來(lái)儀器儀表的發(fā)展方向。ISP是指電路板上的空白器件可以通過(guò)編程寫入最終用戶代碼,而不需要從電路板上取下器件,已經(jīng)編程的器件也可以用ISP方式擦除或再編程。IAP則是指MCU可以在系統(tǒng)中獲取新代碼并對(duì)自己重新編程,即可用程序來(lái)改變程序。ISP的實(shí)現(xiàn)比較簡(jiǎn)單,一般通用做法是內(nèi)部的存儲(chǔ)器可以由上位機(jī)的軟件通過(guò)串口來(lái)進(jìn)行改寫。對(duì)于單片機(jī)來(lái)講可以通過(guò)SPI或其它的串行接口接收上位機(jī)傳來(lái)的數(shù)據(jù)并寫入存儲(chǔ)器中。所以即使將芯片焊接在電路板上,只要留出和上位機(jī)接口的這個(gè)串口,就可以實(shí)現(xiàn)芯片內(nèi)部存儲(chǔ)器的改寫,而無(wú)須再取下芯片。 IAP的實(shí)現(xiàn)相對(duì)要復(fù)雜一些,在實(shí)現(xiàn)IAP功能時(shí),單片機(jī)內(nèi)部一定要有兩塊存儲(chǔ)區(qū),一般被稱為引導(dǎo)區(qū)和應(yīng)用區(qū)。單片機(jī)上電在引導(dǎo)區(qū)運(yùn)行,如果有外部改寫程序的條件滿足,則對(duì)應(yīng)用區(qū)的程序進(jìn)行改寫操作。如果外部改寫程序的條件不滿足,程序指針跳到應(yīng)用區(qū),開始執(zhí)行放在應(yīng)用區(qū)的程序,這樣便實(shí)現(xiàn)了IAP功能。 STR912FW44X6的程序存儲(chǔ)器由兩部分構(gòu)成,應(yīng)用區(qū)Application Section(簡(jiǎn)稱APP區(qū))和引導(dǎo)區(qū)Boot Loader Section(簡(jiǎn)稱BOOT區(qū)),兩個(gè)區(qū)的存儲(chǔ)空間大小由熔絲位進(jìn)行配置。BOOT區(qū)為通過(guò)MCU本身來(lái)下載和上載程序代碼提供了一個(gè)真正的同時(shí)讀寫RWW(Read While-Write)自編程機(jī)制。這一特點(diǎn)使得系統(tǒng)可以在MCU的控制下,通過(guò)駐留于程序存儲(chǔ)器的BOOT區(qū),靈活地進(jìn)行應(yīng)用軟件升級(jí)。本機(jī)為用戶提供二次開發(fā)的功能,并且可以更新字庫(kù)。根據(jù)STR912FW44X6所具有的優(yōu)點(diǎn),將下載程序和下載字庫(kù)的功能放在BOOT區(qū)實(shí)現(xiàn),對(duì)射頻卡的所有操作等放在APP區(qū)實(shí)現(xiàn)。下面對(duì)兩個(gè)程序區(qū)的主程序分別作以介紹。4. 2. 1引導(dǎo)區(qū)程序通過(guò)對(duì)熔絲位BOOT1, BOOT0和BEN的設(shè)置可以確定BOOT區(qū)的大小,以及復(fù)位向量的位置。當(dāng)BOOTT為1時(shí),從應(yīng)用區(qū)啟動(dòng);當(dāng)BOOTT為0時(shí),從BOOT區(qū)啟動(dòng)。本機(jī)中將熔絲位設(shè)為BEN=0,BOOT1=0,BOOT0=0。圖4.1 BOOT區(qū)主程序流程圖上電后執(zhí)行BOOT區(qū)的程序,其流程圖如圖4.1所示。首先顯示開機(jī)界面,然后等待按鍵。如果在1秒內(nèi)按下菜單鍵“Menu”;,那么顯示下載界面并再次等待用戶按鍵;否則跳轉(zhuǎn)到APP區(qū)執(zhí)行程序。在顯示下載界面狀態(tài)下,按下鍵“1”則執(zhí)行下載字庫(kù)操作,按下鍵“2”;則執(zhí)行下載程序操作,按下鍵“3”則返回APP區(qū)執(zhí)行應(yīng)用程序。 (1)下載字庫(kù) 常用的漢字庫(kù)大約有266Kbytes,本設(shè)計(jì)中將其最后544頁(yè)作為字庫(kù)區(qū),其余作為進(jìn)行讀卡操作時(shí)的存儲(chǔ)區(qū)。下載字庫(kù)時(shí),通過(guò)串口與上位機(jī)進(jìn)行數(shù)據(jù)交換,流程如圖4.2所示??紤]到STR912FW44X6內(nèi)部RAM的大小,下載字庫(kù)時(shí)按幀進(jìn)行操作,每幀包含128個(gè)字節(jié)數(shù)據(jù),其幀格式如表4.2所示,前兩個(gè)字節(jié)為幀頭AAH,55H,第三個(gè)字節(jié)為本幀所包含的數(shù)據(jù)內(nèi)容長(zhǎng)度L,然后是數(shù)據(jù)內(nèi)容,最后為校驗(yàn)和,這里采用求和校驗(yàn)的方式。圖4.2下載字庫(kù)流程圖表4.1下載字庫(kù)的幀格式幀頭數(shù)據(jù)長(zhǎng)度數(shù)據(jù)內(nèi)容校驗(yàn)和AAH,55H=128L個(gè)字節(jié)1字節(jié)表4.2下載字庫(kù)時(shí)的通信協(xié)議符號(hào)數(shù)據(jù)內(nèi)容(十六進(jìn)制)含義ZK_DOWN_HANDSHAKE5A,4B,44,4F,57,4E下載字庫(kù)時(shí),上位機(jī)發(fā)送的握手信號(hào)ZK_UP_HANDSHAKE5A,4B,52,45,41,44,59下載字庫(kù)時(shí),下位機(jī)發(fā)送的握手信號(hào)ZK_TOO_LARGEAA,55,46字庫(kù)長(zhǎng)度太大ZK_LENGTH_OKAA,55,44字庫(kù)長(zhǎng)度符合要求ZK_WT_OKAA,55,00當(dāng)前幀寫入完畢,要求發(fā)送下一幀ZK_CAL_ERRORAA,55,01字庫(kù)接收錯(cuò)誤,需要重新發(fā)送當(dāng)前幀ZK_OVERFLOWAA,55,FF字庫(kù)區(qū)以滿,停止下載ZK_DOWN_OKAA,55,02字庫(kù)下載完畢(2)下載程序?qū)OOT區(qū)程序的設(shè)計(jì)是實(shí)現(xiàn)IAP的關(guān)鍵所在。它必須能夠通過(guò)一個(gè)通信接口,采用某種協(xié)議正確地接收數(shù)據(jù),再將完整的數(shù)據(jù)寫入到APP程序區(qū)中。本機(jī)通過(guò)串口接收待更新的程序代碼,然后通過(guò)SPM指令寫入APP區(qū)中。程序流程見圖4.3,返回0表示下載成功,返回0xFF則表示下載失敗。其余子程序流程圖略。下載程序時(shí)的數(shù)據(jù)傳輸同樣按幀進(jìn)行,根據(jù)Intel hex文件格式的特點(diǎn),設(shè)計(jì)幀格式如表4.3所示。校驗(yàn)和是從數(shù)據(jù)長(zhǎng)度字節(jié)開始

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論