<strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

        <em id="tpvd9"></em>

          <address id="tpvd9"></address>
            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

            <thead id="tpvd9"><noframes id="tpvd9">
            <ruby id="tpvd9"></ruby>

                  <thead id="tpvd9"></thead>
                  歡迎您訪(fǎng)問(wèn)鄭州興邦電子股份有限公司官方網(wǎng)站!
                  阿里巴巴誠信通企業(yè)
                  全國咨詢(xún)熱線(xiàn):40000-63966
                  興邦電子,中國水控機第一品牌

                  聯(lián)系興邦電子

                  全國咨詢(xún)熱線(xiàn):40000-63966

                  售后:0371-55132951/55132952

                  工廠(chǎng):河南省 鄭州市 高新區蓮花街電子電器產(chǎn)業(yè)園

                  FR 100 型IC 卡讀寫(xiě)器的研制

                  文章出處:http://psychicreadingswithdeb.com 作者:葉樹(shù)林, 華蕊, 劉軍, 羅中良&nbsp;&nbsp; 人氣: 發(fā)表時(shí)間:2011年10月15日

                  [文章內容簡(jiǎn)介]:在對各種IC 卡的讀寫(xiě)機制進(jìn)行深入分析的基礎上, 介紹了IC 卡的觸點(diǎn)定義及讀寫(xiě)操作的基本步驟, 并著(zhù)重從提高讀寫(xiě)器的兼容性和開(kāi)放性?xún)煞矫骊U述了FR100 型IC 卡讀寫(xiě)器硬件設計和軟件設計的基本思路和方法。

                      IC 卡讀寫(xiě)器是聯(lián)接IC 卡和應用系統之間的信息橋梁, 是IC 卡應用中至關(guān)重要的一個(gè)環(huán)節。作為IC 卡應用系統中的一個(gè)關(guān)鍵性基礎設備, IC 卡讀寫(xiě)器的性能對IC 卡應用系統的開(kāi)發(fā)進(jìn)程及整體使用性能具有重要的影響。隨著(zhù)IC 卡應用范圍的不斷擴大及應用水平的不斷提高, 對IC 卡讀寫(xiě)器提出的要求也越來(lái)越高。因此開(kāi)發(fā)出具有良好使用性能的IC卡讀寫(xiě)器對IC 卡技術(shù)的推廣應用具有重要的意義。

                      早期的IC 卡讀寫(xiě)器一般只是簡(jiǎn)單地將上位機的指令數據轉化成IC 卡可以接受的符合ISO 7816- 3 標準的數據格式, 不僅功能單一, 而且往往只能對一種或少數幾種卡進(jìn)行讀寫(xiě)。隨著(zhù)IC 卡技術(shù)水平和應用水平的發(fā)展, 對IC 卡讀寫(xiě)設備的性能提出了越來(lái)越高的要求, 雖然經(jīng)過(guò)多年的發(fā)展, IC 卡讀寫(xiě)器的性能有了很大的提高, 但是由于技術(shù)保密及為了推銷(xiāo)IC 卡所采取的保護策略等原因, 目前市場(chǎng)上具有良好兼容性和開(kāi)放性的IC 卡讀寫(xiě)器還較少。

                      目前, IC 卡可以分為接觸式和非接觸式兩大類(lèi), 其中以接觸式IC 卡的應用最為普及。本文研制的F100 型IC 卡讀寫(xiě)器以接觸式IC 卡為讀寫(xiě)對象, 該讀寫(xiě)器采用89C51 單片機控制, 可以通過(guò)軟件來(lái)自動(dòng)識別當前IC 卡的類(lèi)型, 并根據卡的類(lèi)型來(lái)產(chǎn)生不同讀寫(xiě)控制信號。

                      1 IC 卡的讀寫(xiě)機制

                      雖然IC 卡的種類(lèi)繁多, 不同的IC 卡在功能、觸點(diǎn)定義、讀寫(xiě)機制方面都存在一定的差異, 但它們都共同遵守ISO 7816- 1, 2, 3, 4 標準協(xié)議。與IC 卡讀寫(xiě)機制有直接關(guān)系的是ISO 7816- 2, 3 協(xié)議。其中ISO 7816- 2 協(xié)議規定了IC 卡各觸點(diǎn)的尺寸、位置和功能, 表1 列出了該協(xié)議對IC 卡8 個(gè)觸點(diǎn)功能的定義。ISO 7816- 3 協(xié)議則規定了IC 卡的傳輸協(xié)議,該協(xié)議對IC 卡的讀寫(xiě)機制作了詳盡的描述, 它規定接口設備( IC 卡讀寫(xiě)器) 和IC 卡之間的數據交換按以下操作步驟進(jìn)行: 

                      ( 1) 判斷卡是否插入; (2) 接口設備“激活”觸點(diǎn); (3) 卡的復位(Reset) ; (4) 卡對復位的應答(A n sw er To Reset) ; (5) 在卡與接口設備之間連續進(jìn)行信息交換; (6) 接口設備" 釋放"觸點(diǎn);

                      接口設備“激活”觸點(diǎn)由以下操作順序實(shí)現;

                      (1) RST 處于L 狀態(tài); (2) V cc 供電; (3) 接口設備的“激活”觸點(diǎn);(3)卡的復位(reset);(4) Vpp 上升為空閑狀態(tài); (5) RST 處于H 狀態(tài)(同步傳輸) ; (6) 提供穩定的CL K;

                      接口設備“釋放”觸點(diǎn)由以下操作順序實(shí)現:

                      (1) RST 為狀態(tài)L (低電平) ; (2) CL K 為狀態(tài)L (低電平) ; (3) Vpp 不起作用; (4) I/O為狀態(tài)A (空號) ; (5) V cc 不起作用;

                      從讀寫(xiě)機制來(lái)看, IC 卡可以分為同步卡(如存儲卡、邏輯加密卡) 和異步卡(如CPU卡)。同步卡和異步卡在卡的復位、卡對復位的應答以及卡與接口設備之間信息交換的方式等方面存在很大的差異。表2 簡(jiǎn)述了兩種卡的讀寫(xiě)機制。 

                      過(guò)程同步卡異步卡

                      卡的復位

                      接口設備“激活”觸點(diǎn)后, RST信號上升, 要求RST 維持在狀態(tài)H至少50Ls。在RST 上升沿之后的5Ls 后, 加上時(shí)鐘脈沖CL K, CL K處于狀態(tài)H 的時(shí)間可在10~ 50Ls之間, 當RST 處于狀態(tài)H 時(shí), 不允許加上1 個(gè)以上的時(shí)鐘脈沖。CL K與RST 下降沿之間的時(shí)間間隔不小于5Ls。

                      接口設備“激活”觸點(diǎn)后的200時(shí)鐘周期內, I/O 線(xiàn)將被置于狀態(tài)Z (傳號)。使用低電平復位的卡, 是依靠RST 維持在狀態(tài)L 來(lái)進(jìn)行復位的。RST 處于狀態(tài)L 至少40000個(gè)時(shí)鐘周期, 當RST 從狀態(tài)L 變化到狀態(tài)H 之后的400~ 40000 個(gè)時(shí)鐘周期之間, I/O 線(xiàn)上的復位應答將開(kāi)始 

                      過(guò)程同步卡異步卡

                      卡對復位的應答

                      復位過(guò)程之后, 時(shí)鐘脈沖控制輸出信息, 在RST 下降沿后的10~100Ls 產(chǎn)生第一個(gè)時(shí)鐘脈沖, 從卡中讀取數據位??ǖ膹臀粦鹦畔粋€(gè)從卡發(fā)送到接口設備的標頭, 標頭的長(cháng)度固定為32 位, 并由兩個(gè)8 位字段字段H1 和H2 開(kāi)始。標頭信息給出了該卡所采用的協(xié)議類(lèi)型及協(xié)議參數等。復位應答信號以字符幀進(jìn)行傳送。每個(gè)字符幀由10 位組成, 1 位起始位, 8 位數據位, 1 位偶校驗位。復位應答信息長(cháng)度與卡的種類(lèi)有關(guān),但不超過(guò)32 個(gè)字符。應答信息按以下順序傳送: 初始字符TS、格式字符T 0、接口字符、歷史字符以及校驗字符。應答信息給出了該卡所采用的協(xié)議類(lèi)型及有關(guān)參數等。

                      信息交換

                      按照標頭信息給出的協(xié)議類(lèi)型和參數, 在同步脈沖CL K 的控制下,卡與接口設備之間按位進(jìn)行信息交換。

                      按照復位應答信息所給出的協(xié)議類(lèi)型和參數, 卡與接口設備之間以一定的波特率進(jìn)行異步數據通訊。

                      2 讀寫(xiě)器的硬件電路設計

                      FR100 型IC 卡讀寫(xiě)器的硬件結構框圖如圖1 所示。它由89C51 單片機、RS232 電平轉換電路、IC 卡讀寫(xiě)控制電路、EEPROM、設置開(kāi)關(guān)等組成。89C51 單片機是整個(gè)讀寫(xiě)器的控制中心, 它一方面通過(guò)RS232 串行接口接收上位機的指令, 并對指令進(jìn)行解釋, 然后通過(guò)IC卡讀寫(xiě)控制電路對IC 卡進(jìn)行相應的操作, 并將操作結果通過(guò)RS232 串行接口傳送給上位機。 

                  FR100 型IC 卡讀寫(xiě)器的硬件構成框圖

                      IC 卡讀寫(xiě)控制電路由卡的插入?退出識別、電源供給、時(shí)鐘信號產(chǎn)生、信號隔離與驅動(dòng)等電路組成, 它的功能是提供讀寫(xiě)IC 卡所需的各種狀態(tài)和控制信號。由于不同類(lèi)型的IC 卡在讀寫(xiě)機制上存在著(zhù)一定的差異, 為了使研制的FR100 型IC 卡讀寫(xiě)器具有較好的兼容性,能夠正確讀寫(xiě)各類(lèi)存儲卡、邏輯加密卡和微處理器卡(CPU 卡) 等目前常用的接觸式IC 卡,讀寫(xiě)控制電路各種控制信號的產(chǎn)生都受89C51 單片機的I/O 口控制, 因此可以通過(guò)軟件編程來(lái)產(chǎn)生讀寫(xiě)不同種類(lèi)的IC 卡所需的讀寫(xiě)控制信號。例如, 采用圖2 所示的時(shí)鐘信號發(fā)生電路, 當89C51 單片機的P1. 0、P1. 1 口輸出高電平時(shí), 該電路輸出頻率為3. 5712MHz 的穩定時(shí)鐘信號, 可以滿(mǎn)足異步卡對CL K 信號的要求; 而當P1. 0 口輸出低電平時(shí), 電路的輸出與P1. 1 口的狀態(tài)反相, 若通過(guò)軟件編程在P1. 1 口輸出一個(gè)同步脈沖, 則可以滿(mǎn)足同步卡 

                  時(shí)鐘信號發(fā)生電路原理圖

                      對CL K 信號的要求。

                      EEPROM 是用來(lái)存儲讀寫(xiě)器的系統參數及下載用戶(hù)程序的。由于用89C51 的RD 信號和PSEN 信號相與后作為EEPROM 存儲器的RD 信號, 因此EEPROM 不僅可以存儲系統的一些數據, 還可以用來(lái)存儲用戶(hù)程序代碼。設置開(kāi)關(guān)是用來(lái)設置讀寫(xiě)器工作方式的, 當開(kāi)關(guān)處于ON 狀態(tài)時(shí), EEPROM 的WR 線(xiàn)與89C51 的WR 線(xiàn)連通, 讀寫(xiě)器工作在聯(lián)機工作方式, 此時(shí)用戶(hù)可以通過(guò)RS232 串行口來(lái)控制讀寫(xiě)器的操作, 也可以下載用戶(hù)程序; 當開(kāi)關(guān)處于O FF 狀態(tài)時(shí), 讀寫(xiě)器處于脫機工作方式, 此時(shí)讀寫(xiě)器執行用戶(hù)下載到EEPROM 中的程序, 讀寫(xiě)器的操作完全由用戶(hù)程序決定。而且此時(shí)EEPROM 的WR 線(xiàn)與89C51 的WR線(xiàn)斷開(kāi), 可以防止EEPROM 中的用戶(hù)程序被非法修改。該讀寫(xiě)器的用戶(hù)程序下載功能, 使其二次開(kāi)發(fā)能力大大增強, 提高了讀寫(xiě)器的開(kāi)放性。

                      3 讀寫(xiě)器的軟件設計

                      FR100 型IC 卡讀寫(xiě)器的軟件在設計上采用了模塊化的結構, 主要包括IC 卡類(lèi)型判別模塊、讀寫(xiě)控制模塊、與上位機的通訊接口模塊等。

                      IC 卡類(lèi)型判別模塊是以IC 卡對復位的應答信息(A TR ) 為依據來(lái)判斷當前插入的IC卡的類(lèi)型。從前面的分析可知, IC 卡在復位之后都要輸出A TR, 而且不同的IC 卡的A TR也是不同的,A TR 可以正確區分各類(lèi)IC 卡。IC 卡類(lèi)型判別程序的流程圖如圖3 所示。由于IC 卡有同步卡和異步卡之分, 因此在程序中首先以異步卡的操作方式對卡進(jìn)行復位操作并讀取A TR, 如果不能正確讀取A TR, 再以同步卡的操作方式對卡進(jìn)行復位操作并讀取A TR , 如果兩種方式都不能正確讀取A TR , 則表明該卡已經(jīng)損壞。圖3 中的RTNCODE 是返回代碼, 它等于0 表示讀寫(xiě)器中沒(méi)有卡或卡沒(méi)有插到位, 等于1 表示卡已損壞, 等于11 表示該卡是異步卡, 等于12 表示該卡是同步卡; 當返回代碼為11 和12 時(shí), 存儲在Buffer 中的A TR 可對卡的類(lèi)型進(jìn)行進(jìn)一步的區分。
                      讀寫(xiě)控制模塊根據調用IC 卡類(lèi)型判別模塊所返回的RTNCODE 和Buffer 內容檢索出該卡所遵循的讀寫(xiě)方式和數據協(xié)議, 并依據此協(xié)議對讀寫(xiě)控制電路的各個(gè)信號進(jìn)行控制和檢測, 完成IC 卡與讀寫(xiě)器之間的數據交換。對于同步卡, 讀寫(xiě)操作一般按下面的三個(gè)基本操作步驟進(jìn)行, 即: 復位、數據字段的定位、讀(或寫(xiě)) 操作。每一操作步驟中的RST、CL K、I/O 、 



                  圖3 IC 卡類(lèi)型判別程序的流程圖

                      PGM 等信號的控制在該卡所遵循的操作協(xié)議中都有明確的規定。對于異步卡的讀寫(xiě)操作實(shí)際上是以異步串行通訊的方式在接口設備與卡之間進(jìn)行命令的傳遞與應答的過(guò)程。接口設備與卡之間的命令結構和應答結構的一般形式為: 

                      其中, CLA 是指令類(lèi)別, IN S 是指令代碼, P1, P2 是命令參數, P3 是編碼數據字節(D1?Dn) 的數量n, 而SW 1, SW 2 是卡返回的狀態(tài)字節。在實(shí)際程序中, 不同的異步卡有不同的指令( IN S) 集及相應的參數, 通過(guò)檢索即可得到。

                      與上位機的通訊接口模塊的功能是通過(guò)RS232 串行口接受上位機的命令, 將該命令轉換成對IC 卡的操作, 并將執行結果傳回給上位機。該模塊實(shí)際上是一命令解釋執行程序, 與IC 卡的具體操作無(wú)關(guān), 受篇幅所限, 在此不再贅述。

                      4 結束語(yǔ)

                      本文FR 100 型IC 卡讀寫(xiě)器具有良好的兼容性、開(kāi)放性, 通過(guò)對法國Sch lumberger 公司的payf lex 卡(CPU 卡) 和美國A TM EL 公司的A T 88SC102 卡(邏輯加密卡) 的讀寫(xiě)試驗表明, 該讀寫(xiě)器對不同類(lèi)型的IC 卡能夠自動(dòng)識別和正確讀寫(xiě), 具有一定的推廣價(jià)值。

                      (文/佛山科學(xué)技術(shù)學(xué)院機電分院, 葉樹(shù)林, 華 蕊, 劉 軍, 羅中良)

                  本文關(guān)鍵詞:FR100,IC卡讀寫(xiě)器,單片機,讀寫(xiě)器
                  回到頂部
                  99久热只有精品视频在线17_精品一区二区三区自拍图片_最新国产v亚洲_久久综合九色综合久
                  <strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

                        <em id="tpvd9"></em>

                          <address id="tpvd9"></address>
                            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

                            <thead id="tpvd9"><noframes id="tpvd9">
                            <ruby id="tpvd9"></ruby>

                                  <thead id="tpvd9"></thead>