我司某产品需要使用单片机访问7816接口的智能卡卡片,但是我们选型的单片机没有硬件7816接口,考虑到使用IO模拟超级麻烦,而且兼容性和通讯速率都无法保障,于是使用UART接口实现。
智能卡PIN定义:
智能卡主要使用以下几个管脚,VCC、RST、CLK、IO、GND,剩余管脚不使用。如下图所示:
PIN定义如下:
C1 VCC:智能卡电源,目前接触卡电源有1.8V、3V、5V几种类型。
C2 RST:复位管脚,低电平有效
C3 CLK:时钟管脚
C4 RFU:保留
C5 GND:地线
C6 VPP:编程电压,现在基本不使用了,悬空即可
C7 IO:双向数据线
C8 RFU:保留
电路设计:
因为智能卡的IO线是半双工的双向数据传输线,设计了以下电路,使用UART接口实现数据收发。
VCC:直接使用3.3V LDO供电
RST:单片机GPIO
CLK:单片机PWM产生4MHz方波
IO:使用单片机UART
单片机向智能卡发送高电平时,二极管截止不导通,电阻R1把IO拉高,智能卡接收到高电平。单片机向智能卡发送低电平时,二极管导通IO线被拉低,智能卡接收到低电平。单片机发送数据过程中,如果UART_RX也能收到数据,抛弃即可。
智能卡向单片机发送数据时,二极管一直不导通,数据走向如蓝色箭头。
添加关注,了解更多干货!