STM32模擬ISO7816智慧卡協議筆記

2021-06-20 02:18:36 字數 2814 閱讀 2823

本人在同stm32晶元模擬iso7816協議的時候,在釋放觸點的函式中發現其中乙個被配製成復用開漏的io管腳怎麼都無法拉低。其**如下:

//釋放智慧卡觸腳

void psam_deinit()

」經過本人反覆實驗,發現將「釋放usart與gpio管腳」的兩行**與"失能gpio,usart和復用時鐘"的兩行**順序顛倒後,其io口能夠正確被拉低。

全域性介面位元組的內容

8.5.1  總則

本條規定了全域性介面位元組的內容。iso/iec jtc1 sc17保留了所有未在本條中定義的全域性位元組以及雖定義了但未使用的整數值以備將來使用。

本條規定了td(i-1)中t=15的第一次出現後i>2的位元組ta(1) tb(1)tc(1) ta(2) tb(2)和ta(i)。這些位元組以二進位制的形式對無符號整數fi、di、ii、pi1、n、pi2、xi和ui進行編碼,這些無符號整數等於或用於計算此後出現的引數f、d、n、p、i、x和u的值。

— 如果存在,為正確處理任一協議應解釋該位元組。

— 如果該位元組不存在,則當需要時,相關引數使用預設值。

ta(1)**(見8.5.2)

— fi,位b8到b5 上的時鐘率轉換因子的引用,見表7。

— di,位b4到b7上波特率校正因子的引用,見表8。

tb(1)b8=0**處(見8.5.4)

— ii,位b7 b6上最大程式設計電流的引用,見表9。

— pi1,位b5到b1上程式設計電壓的值。

注:介面裝置可以忽略tb(1)的位b8。

tc(1)**(見8.5.3)

— n,計算八位額外保護時間的引用。

ta(2)是專用模式位元組(見8.5.7和8.6)

tb(2)用八位上的程式設計電壓值pi2編碼以代替pi1(見8.5.4)。

ta(i)在td(i-1)(i>2)中的t=15的第乙個出現後編碼(見8.5.5和8.5.6)

— xi,位b8b7上時鐘停止指示的參考,見表10。

— ui,位b6到b1上級別指示的參考,見表11。

注:符合iso/iec 7816-3:1989的介面裝置在td(i-1) (i>2)中的t=15後正常忽略ta(i) tb(i) tc(i)所不支援的協議的介面位元組特性。

8.5.2傳輸因子f和d

引數f和d分別是時鐘率轉換因子和波特率調整因子。在電路輸入/輸出上使用的etu依賴於傳輸因子f和d的實際值。etu應等於f/d時鐘週期。

1 etu = f/d×1/f

頻率f的最小值應當為1mhz。最大值以fi的函式的形式在表7中給出。預設最大值是5mhz。

為計算etu,f和d因子對應當採用下面三對值:

— fi和di,按照表7和8在ta(1)中由卡指示的值;如果ta(1)不存在,則fi和di設為預設值;

— fd和dd,預設值為372和1;

— fn和dn,在fd到fi和dd到di範圍裡成功的pps交換所協商的值。

在復位應答期間,應用fd和dd。復位應答後,f和d的值取決於操作模式(見10.6)。

— 協商模式中,fd和dd應繼續應用直到pps交換成功完成(見9.4)。pps成功交換後,fn和dn立即應用。

— 專用模式中(見8.6.2)

h 如果ta(2)中b5=0,復位應答成功完成之後立即應用fi和di。

h 如果ta(2)中b5=1,使用隱含值。

8.5.3額外保護時間n

引數n是用於從介面裝置到傳送字元的卡的額外保護時間。從卡傳送字元到介面裝置不用額外保護時間。預設值n=0。

在0到254範圍裡,在準備接收下一字元前,n指明卡要求從前乙個字元(也是由卡或介面裝置傳送的)上沿的後續延遲。

12 etu + (q×n/f)

公式中,q取兩個值中的乙個:

— f/d,即,用於計算etu的值,當t=15不存在於復位應答中時,

— fi/di,當t=15在復位應答中時。

n=255指明在傳輸協議期間,兩個連續前沿之間的最小延遲在傳輸的兩個方向是一致。這個最小延遲值是

— t=0時,12etu

— t=1時,11etu

表7 — fi,指明的時鐘率轉換因子的值

fi0000

0001

0010

0011

0100

0101

0110

0111

fi372

372 

558 

7441116

1488

1860

rfuf (max) mhz45

68121620-

rfu=留作未來使用

fi1000

1001

1010

1011

1100

1101

1110

1111

firfu

512768

1024

1536

2048

rfurfu

f (max) mhz-5

7,510

1520--

表8 — 指明的波特率校正引數的值

di0000

0001

0010

0011

0100

0101

0110

0111

dirfu12

481632

rfu

di1000

1001

1010

1011

1100

1101

1110

1111

di12

20rfu

rfurfu

rfurfu

rfu

stm32軟體模擬iic

iic inter integrated circuit 匯流排是一種由philips公司在80年代開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置。它是半雙工通訊方式。iic匯流排最主要的優點是其簡單性和有效性。由於介面直接在元件之上,因此iic匯流排占用的空間非常小,減少了電路板的空間和晶元...

stm32模擬輸出PPM訊號

ppm訊號週期為20ms,分成10分代表10個通道訊號,也就是2ms代表乙個訊號。0.5ms代表乙個通道訊號的開始,所以0.5ms 2ms為通道範圍控制。led p1 a 8 io口初始化,這裡就不介紹了,推挽輸出 u16 count 0 u16 pwm count 1000 總計數 週期20ms,...

STM32模擬IIC讀寫EEPROM

本人在最近的專案中,需要讀寫eeprom裡面的內容並分析。該eeprom晶元為microchip technology公司的24lc02b系列。用stm32f103晶元做主機通過iic介面去和它通訊。首先介紹晶元的基本特性,容量為 256 x 8bit 2kbit共有256位元組 位址和資料都是8b...