當前位置:首頁 > 單片機 > 單片機
[導讀]本文介紹了目前應用較為廣泛的AT88SC1604邏輯加密卡的特點和工作原理,同時給出了通過單片機控制操作IC卡的的應用實例及程序?! ∏把浴 C卡按結構劃分,可分為存儲器卡和微處理器卡(CPU card)兩大類。邏輯加密卡

本文介紹了目前應用較為廣泛的AT88SC1604邏輯加密卡的特點和工作原理,同時給出了通過單片機控制操作IC卡的的應用實例及程序。

  前言

  IC卡按結構劃分,可分為存儲器卡和微處理器卡(CPU card)兩大類。邏輯加密卡主要控制作用是:對數(shù)據存儲區(qū)開放/關閉的控制;對數(shù)據存儲區(qū)讀/寫的控制;對數(shù)據存儲區(qū)擦除操作的控制以及對密碼校驗和錯誤次數(shù)計數(shù)及鎖閉功能控制。

  

 

  AT88SC1604卡的工作原理

  AT88SC1604是由美國ATMEL公司設計的邏輯加密存儲卡芯片。它具有15704位的存儲容量,是目前邏輯加密存儲卡中容量較大的一種產品芯片。

  芯片特點

  (1) AT88SC1604芯片屬于單存儲器多邏輯分區(qū)結構。主存儲器除劃分了特定的標志數(shù)據區(qū)和控制數(shù)據區(qū)之外,還將應用數(shù)據區(qū)分成四個完全隔離的子區(qū),并在每個子區(qū)中配備了各自的讀、寫控制標志和寫入/擦除密碼以及密碼輸入錯誤計數(shù)器等邏輯控制。

  (2) 芯片為串行傳輸方式,并滿足ISO7816-3同步傳輸協(xié)議。

  (3)芯片采用低功耗的CMOS工藝制造,每字位的讀取時間為 s,寫周期為5ms。

  (4) 芯片內部的存儲單元具有至少10000次的擦除/改寫循環(huán)次數(shù)。數(shù)據保存期為10年。

  芯片存儲分區(qū)結構及定義

  AT88SC1604芯片分為制造商代碼區(qū)、發(fā)行商代碼區(qū)、用戶安全密碼區(qū)、用戶密碼比較計數(shù)區(qū)、個人代碼區(qū)以及四個應用區(qū)。每個應用區(qū)都由密碼區(qū),密碼比較計數(shù)區(qū),擦除密碼區(qū)和擦除密碼比較計數(shù)區(qū)、應用數(shù)據區(qū)和存儲器測試區(qū)組成。

  (1) 制造商代碼區(qū)(FZ)

  該區(qū)里記錄的卡芯片生產商的特定信息(例如:生產批號、日期、以及特別制定的特征代碼),由制造商在芯片出廠前寫入。在控制本區(qū)的熔絲(FUSHl)沒有熔斷時,該區(qū)的存儲單元可以象普通的EEPROM存儲單元一樣進行擦除和改寫。一旦熔絲熔斷,所寫入的制造商代碼就不可再更改。

  (2) 發(fā)行商代碼區(qū)(IZ)

  該區(qū)用于記錄卡片發(fā)行商的特定信息(例如:發(fā)行批號、日期、地區(qū)范圍編號以及特定用戶編號等特征代碼)。當控制本區(qū)的熔絲沒有熔斷時,該區(qū)的存儲單元內容可以自由的擦除或改寫。在個人化處理過程完成之后,控制該區(qū)的熔絲(FUSH2)熔斷,即可將注入的“發(fā)行商代碼”完全固化。這一代碼也是識別卡片的真?zhèn)?,區(qū)分卡片應用類別的重要標識。

  (3) 個人代碼區(qū)(CPZ)

  該區(qū)用于存放個人身份標識數(shù)據。該區(qū)使用上受芯片的“用戶密碼”的保護。當“用戶密碼”比較成功,該區(qū)可讀可寫可擦除。“用戶密碼”比較不成功,該區(qū)只能讀而不能寫入和擦除。

  (4) 用戶密碼區(qū)(SC)

  這個密碼區(qū)是整個存儲器的“總控制開關”。使用前,由授權持卡人預先輸入的一個安全代碼作為“參照字”儲存在這個存儲區(qū)里。使用時,必須輸入一個“校驗密碼”。芯片將輸入的“校驗密碼”與內部存儲器的“參照字”一一比較。如果比較結果一致,IC卡將開放整個芯片儲存器(包括各分區(qū)的控制密碼和各應用數(shù)據區(qū))。各區(qū)的“安全密碼”區(qū)SCn(n=l,2,3,4)與SC的作用是完全類似的。

  對于各分區(qū)的密碼區(qū)SCn (n=1,2,3,4)來說,其比較操作要受到對應“應用區(qū)密碼”比較計數(shù)器(SnAC)的計數(shù)控制。當連續(xù)8次輸入密碼錯誤,SCn將被鎖死。(5) 密碼比較計數(shù)區(qū)(SCAC)

 

  該區(qū)對連續(xù)輸入的錯誤密碼的次數(shù)進行累計。當連續(xù)8次不正確的比較操作之后,芯片將被鎖死。芯片被鎖死之后,將拒絕任何的擦除、寫入和比較的操作命令。

  該區(qū)是8位長,按位寫入方式操作。在芯片初始化時是全“1”狀態(tài),即讀出值為“FFH”。在每次比較輸入的密碼時,先按從高位到低位的順序找第一個為“1”的位,將此位寫“0”,然后將新輸入的“校驗密碼”與原存儲在SC區(qū)的“參照字”進行比較。比較操作本身由芯片內部自行完成,而比較結果則通過置SV標志來判別,即比較成功時SV被置“1”。比較不成功,SV保持原來的“0”狀態(tài)。在連續(xù)8次比較錯誤過程中每次比較操作之后計數(shù)器的計數(shù)值分別為“7FH”、“3FH”、“1FH”、“0FH”、“07H”、“03H”、“01H”、“00H”。當計數(shù)器為“00H”后,后續(xù)的比較操作命令由于無法在“SCAC”區(qū)中找到一個為“1”的位,因而芯片拒絕繼續(xù)執(zhí)行比較操作。

  SnAC(n=1,2,3,4)的作用與SCAC是類似的。操作控制也完全一樣。只是SCAC是限制對SC區(qū)的比較操作。而SnAC則限制對SCn區(qū)的比較操作。SCAC的控制級別最高。當SCAC為“00H”后,芯片內部封鎖了對SC區(qū)的比較操作,從而使對SCn的比較也被禁止。如果SCAC為非“00H”值,在對SC區(qū)的比較密碼操作成功之后,SCn能否進行比較操作就由SnAC區(qū)的狀態(tài)值來決定。SnAC區(qū)在連續(xù)8次比較輸入過程中,每次比較操作之后計數(shù)器的計數(shù)值與SCAC的8個值一樣。(即分別為“7FH”、“3FH”、“1FH”、“0FH”、“07H”、“03H”、“OlH”、“00H”)當SnAC為“00H”時,則“應用n區(qū)”將被鎖死。

  (6)擦除密碼區(qū)(EZn ,n=l.2,3,4)

  該區(qū)用于存儲擦除應用區(qū)操作的控制密碼。這些密碼一般由發(fā)行商使用。在個人化處理時輸入的最后一組“擦除密碼”,在芯片熔絲FUSE2熔斷之后將使“擦除密碼”保存在該區(qū)內。該區(qū)不再能讀出、寫入和擦除,只能進行比較操作。在使用過程中如需對應用區(qū)進行擦除操作,都必須首先對相應的EZ區(qū)輸送一個“擦除密碼”與之比較,在“擦除密碼比較計數(shù)器”不為“00H”的情況下,如果相比較的兩代碼完全一致,則相應的應用區(qū)的單元允許擦除,否則將禁止執(zhí)行擦除操作。

  (7) 擦除密碼比較計數(shù)區(qū)(EnAC ,n=l,2,3,4)

  擦除密碼比較計數(shù)區(qū)的作用與SCAC的作用相類似。它對各應用區(qū)擦除密碼連續(xù)輸入錯誤的次數(shù)進行累計。最多連續(xù)8次不正確的密碼比較之后,該區(qū)所控制的應用區(qū)的擦除操作即被鎖死,從而導致該應用區(qū)有可能成為只讀和允許單次寫入的狀態(tài)。

  (8) 應用數(shù)據區(qū)(AZn ,n=1,2,3,4)

  該區(qū)主要給用戶使用。用于存儲系統(tǒng)的相關數(shù)據記錄和卡片標識等信息。應用數(shù)據區(qū)的寫入與讀出分別由該區(qū)的前兩位Pn和Rn以及SV標志的狀態(tài)控制,擦除操作則由該區(qū)的擦除密碼控制。AT88SC1604設計了四個完全隔離的分區(qū),其中1至3分區(qū)的單元容量分別是4K位、第4分區(qū)的單元容量為3.6K位。

  (9) 存儲區(qū)測試區(qū)(MTZ)

  該區(qū)主要用于芯片生產后對EEPROM單元陣列進行各項性能測試該區(qū)不受任何控制區(qū)狀態(tài)和標志狀態(tài)的保護,允許對這個區(qū)進行讀出、寫人和擦除操作,但不能進行比較操作。

  應用實例

  基于上述1604芯片的特點,在石化系統(tǒng)的加油電路設計中,我們利用單片機芯片89C2051與IC卡電路組成一個獨立系統(tǒng),控制IC卡芯片的各項操作,該系統(tǒng)通過標準RS232通訊接口,與主控制板實現(xiàn)數(shù)據交換,這種電路設計在硬件方面兼容性較好,只要通過協(xié)調雙方的IC卡通訊協(xié)議,可與任何帶有RS232接口的控制板或微機相連接。

  單片機芯片89C2051的6個端口通過IOC卡座與IC卡相連接,P1.2口控制IC卡5V電源的通斷,上電時單片機芯片處于復位狀態(tài), 6個端口均輸出“1”,IC卡電源處于斷開狀態(tài),ICSW為IC卡的檢測端,當IC卡插入后,該端口與地相接,P1.3口檢測到IC 卡已插入卡座,即接通IC卡電源,IC卡操作完畢后,切斷IC卡電源,并提示用戶可以拔卡。單片機芯片其他4個端口在接通IC卡電源后,根據對卡操作的需要,對IC卡進行復位、讀卡、校對密碼、擦卡、寫卡等操作。

  硬件電路

  芯片的操作模式時序及設計程序

  AT88SCl604芯片的操作模式有五種。它們是通過配PGM、RST、CLK等引腳信號及內部地址計數(shù)器(IAC)的狀態(tài)組合來實現(xiàn)。

  (1) 芯片復位操作: AT88SCl604有兩種復位方式:上電復位和控制復位。

  上電復位: 上電復位是當芯片加電時的最初狀態(tài)。上電復位屬于芯片

  內部復位。它將使芯片內部所有的隱含標志復位到0狀態(tài)。并使地址計數(shù)器復位到0位。

  控制復位: 當CLK為低時,在RST腳上的一個下降沿將便芯片產生復位操作??刂茝臀皇菍⒌刂酚嫈?shù)器復位到0位,而不影響任何內部標志的狀態(tài)。

  注:1)RST為高時禁止計數(shù)

  2)在CLK端降低之后,延遲一個復位維持時間Trh(min 0.1 s)RST端復位(下降沿),同時地址計數(shù)器清零。地址計數(shù)器清零后延遲一個“數(shù)據復位有效時間”Tdvr(max 2 s)第0位單元的數(shù)據被送上I/O線。

  FWZCX: CLR ICPGM ;復位子程序

  NOP

  SETB ICREST

  NOP

  SETB ICSDA

  NOP

  CLR ICCLK ;時鐘端清0

  NOP

  CLR ICREST ;復位端清0

  NOP

  RET(2)讀出操作: 在進行讀出操作時,必須保證使RST腳和PGM腳同時保持為低。如果對芯片各密碼控制區(qū)進行讀出操作,只能是在FUSE2未熔斷且SV標志“1”時才能進行。

 

  如果對芯片各標識數(shù)據區(qū)進行讀出操作,除FZ和IZ區(qū)外,需要使SV標志置“1”后才能執(zhí)行。

  如果對芯片各應用數(shù)據區(qū)進行讀出操作,需要在SV=1且Rn=1(n=1,2,3,4)狀態(tài)下才能執(zhí)行。

  注:在CLK的下降沿時,地址計數(shù)器加1,地址計數(shù)器當前所指的地址單元的數(shù)據被輸出到I/O線上。因此,在整個時鐘周期Tdk期間,包含了地址加1(INC)和讀出(REA)兩項操作。

  讀IC數(shù)據子程序(R2:需讀IC卡字節(jié)數(shù),R0:數(shù)據區(qū)存放低位首地址)

  RICDAZ: MOV A,#KXXDZ ;卡信息地址送A

  LCALL SADR ;尋卡地址

  RICDA: MOV R3,#08

  RICDA1: SETB ICSDA

  NOP

  MOV C,ICSDA ;位讀到A

  RLC A

  SETB ICCLK

  NOP

  CLR ICCLK

  NOP

  DJNZ R3,RICDA1

  MOV @R0,A ;8位數(shù)據送數(shù)據區(qū)

  DEC R0

  DJNZ R2,RICDA

  RET

  ; 尋IC卡位地址子程序(調用前16進制地址送ACC)

  SADR: LCALL FWZCX

  MOV B,#08

  MUL AB ;計算位地址: 16進制地址*8

  MOV R4,A ;低位位地址送R4

  MOV R5,B ;高位位地址送R5

  JNZ SADR1 ;低位地址不為0轉

  MOV A,R5

  JZ SADR3

  DEC R5

  SADR1: SETB ICREST ;復位端置1

  SETB ICSDA

  CLR ICPGM

  CLR ICCLK

  CLR ICREST

  SADR2: SETB ICCLK

  SETB ICCLK

  CLR ICCLK

  CLR ICCLK

  DJNZ R4,SADR2

  MOV A,R5

  JZ SADR3

  DEC R5

  SJMP SADR2

  SADR3: RET

  ;

  (3)比較操作:在進行比較操作時,必須保證使RST腳和PGM腳同時保持為低。比較操作只能對芯片密碼控制區(qū)執(zhí)行,且由芯片內部來判斷。在FUSE2未熔斷時,只能在SV=0時,對SC區(qū)進行比較操作,對其它區(qū)的比較操作均為無效操作。SV=1時,芯片不做任何比較操作。在FUSE2熔斷后,只能在SV=0時,對SC區(qū)進行比較操作,對其它區(qū)的比較操作均為無效操作。

  注:上述芯片密碼比較時序圖中是假設密碼計數(shù)器中前兩位為0,第三位尋到1的處理時序。

  有關芯片SC的時序關系如圖2~5圖所示:

  從操作(B)到(F),地址計數(shù)器不變,密碼比較的過程是:

  (A)比較安全密碼/擦除密碼序列

  (B)在密碼輸入比較計數(shù)器中找出一位為“1”的位

  (C)在這個為“1”的單元寫“0”

  (D)芯片輸出“0”

  (E)如果比較成功,在PGM的上升沿安全密碼/擦除密碼的相應標志

  (SV,Sn或En)被置“1”,同時安全密碼/擦除密碼輸入比較計數(shù)器

  (SCAC,SnAC或EnAC)被擦除。

  (F)如果擦除成功,相應安全密碼/擦除密碼標志被置“1”,芯片將輸出“1”,否則芯片輸出“0”。

  (G)在CLK的下降沿,地址計數(shù)器加1,并輸出下一位的狀態(tài)。

  比較用戶密碼子程序(地址0AH,0BH)

  CPSC: MOV R0,#CMM+2

  MOV R1,#06

  MOV R2,#02

  LCALL MVITI

  MOV A,#0AH

  LCALL SADR ;尋址

  MOV R0,#06

  LCALL BJMMRET

  ; 比較密碼程序

  BJMM: CLR ICREST

  CLR ICPGM

  MOV R2,#02

  BJMM1: MOV A,@R0

  MOV R3,#08

  BJMM2: RLC A

  MOV ICSDA,C

  NOP

  SETB ICCLK

  NOP

  CLR ICCLK

  NOP

  DJNZ R3,BJMM2

  INC R0

  DJNZ R2,BJMM1

  MOV R2,#08;查8位

  BJMM4: SETB ICSDA

  NOP

  MOV C,ICSDA

  JC BJMM5 ;是1轉

  SETB ICCLK ;指向下一位

  NOP

  CLR ICCLK

  NOP

  DJNZ R2,BJMM4

  LJMP BJMM8 ;計數(shù)器為00,卡鎖死轉

  BJMM5: SETB ICPGM

  NOP

  CLR ICSDA ;寫0

  NOP

  SETB ICCLK

  NOP

  CLR ICPGM

  NOP

  LCALL DELY5

  CLR ICCLK

  NOP

  SETB ICSDA

  NOP

  MOV C,ICSDA

  JNC BJMM6

  LJMP BJMM7 ;未寫入0,轉出錯

  BJMM6: SETB ICPGM

  NOP

  SETB ICSDA ;寫1(擦除)

  NOP

  SETB ICCLK

  NOP

  CLR ICPGM

  NOP

  LCALL DELY5

  CLR ICCLK

  NOP

  SETB ICSDA

  NOP

  MOV C,ICSDA

  NOP

  SETB ICCLK

  JNC BJMM7 ;擦除不成功(密碼錯)轉

  SETB FGICG1 ;置已校對密碼標志

  RET

  BJMM7: CLR FGICG1 ;建密碼錯標記

  RET

  BJMM8: SETB FGICG2 ;置卡鎖死標志

  RET(4)寫入操作:寫入操作實際包含著兩種:當寫入的數(shù)據為“0”時,本次操作稱為“寫入操作”。當寫入的數(shù)據為“1”時,本次操作稱為“擦除操作”。“寫入操作”可以按位進行。但“擦除操作”只能按字節(jié)進行。即使操作時只對單獨一位進行擦除,但執(zhí)行的結果將使這一位所在的字節(jié)的所有8位全部置成“1”。

 

  對芯片的任何一個允許寫入或擦除的區(qū)域,其執(zhí)行寫入和擦除的必要條件是芯片的SV標志為“1”狀態(tài)。

  注:在CLK為低的狀態(tài)下,PGM端從“0”到“1”,并延時一段“編程建立時間”(Tspr)之后,CLK端從“0”到“1”(這時是寫入/擦除操作的開始),在此刻之前的Tds(數(shù)據建立時間)由外部向I/O線給出寫入數(shù)據。CLK端在“1”狀態(tài)應至少保持5ms(Tchp)之后,CLK端從“1”到“0”(這時是寫入/擦除操作的結束)。應特別注意結束寫入操作的CLK端的下降沿并不會使地址計數(shù)器加1,而只是將剛寫入的“數(shù)據”讀出, 以便外部驗證剛才的“寫入操作”。

  WICD: MOV A,#KDWDZ ;送擦除卡低位首地址

  LCALL SADR ;尋位地址

  MOV R2,#30 ;擦除30字節(jié)

  LCALL CPESC3 ;擦除

  MOV R0,#RAMDZ ;CPU的RAM中待寫

  入數(shù)據地址

  MOV R2,#30 ;寫入30字節(jié)

  WICDA: MOV A,@R0

  LCALL WICDAA

  INC R0

  DJNZ R2,WICDA

  RET

  ; 向IC卡寫入子程序

  WICDAA: MOV R3,#08

  WICDAB: RLC A

  JC WICDAC ;該位為1,轉

  SETB ICPGM ;打開編程位

  SETB ICPGM

  MOV ICSDA,C

  MOV ICSDA,C

  SETB ICCLK

  SETB ICCLK

  CLR ICPGM ;關閉編程位

  CLR ICPGM ;關閉編程位

  LCALL DELY5 ;延時5MS

  CLR ICCLK

  CLR ICCLK

  WICDAC: SETB ICCLK

  SETB ICCLK

  CLR ICCLK

  DJNZ R3,WICDAB

  RET

  ; 擦除應用區(qū)1

  CPESC3: SETB ICPGM ;打開編程位,擦除灰名

  單入口

  SETB ICPGM

  SETB ICSDA

  SETB ICSDA

  SETB ICCLK

  SETB ICCLK

  CLR ICPGM ;關閉編程位

  LCALL DELY5 ;延時5MS

  CLR ICCLK

  CLR ICCLK

  SETB ICCLK

  SETB ICCLK

  CLR ICCLK

  MOV R3,#07

  CPESC4: SETB ICCLK

  SETB ICCLK

  CLR ICCLK

  CLR ICCLK

  DJNZ R3,CPESC4

  DJNZ R2,CPESC3

  RET

  ; 延時(R7)

  DELY5: MOV R7,#0AH ;5毫秒延時

  DELY: PUSH 07

  DLY1: PUSH 07

  DLY2: PUSH 07

  DLY3: DJNZ R7,DLY3

  POP 07

  DJNZ R7,DLY2

  POP 07

  DJNZ R7,DLY1

  POP 07

  DJNZ R7,DELY

  RET

  結束語

  隨著IC卡技術的飛速發(fā)展,金融機構、國家機關、公司企業(yè)、教育部門等領域的需求越來越迫切,應用越來越廣泛。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉