基于SPI接口安全芯片产品的读卡器研究
编者按:由于SPI接口的简单、高速、稳定的特性,在实际中得到了广泛应用,本文介绍了SPI从设备的接口协议,提出了一种基于该SPI协议的读卡器的设计思路,简述了方案的具体实现方法,包括读卡器的硬件设计及软件设计。采用USB即插即用的连接方式,采用CCID标准设备通过USB接口与主机或其它嵌入式主机连接,完成SPI协议的数据通讯,满足了实际的功能需求,对于开发设计相同工作模式下的SPI从设备的程序具有很好的借鉴价值。
作者 秦理想1,2 涂静芝3 刘立宗1,2 姜帆1,2
1.北京智芯微电子科技有限公司 国家电网公司重点实验室 电力芯片设计分析实验室(北京 100192)
2.北京智芯微电子科技有限公司 北京市电力高可靠性集成电路设计工程技术研究中心(北京 100192)
3.国网江西省电力公司检修分公司(江西 南昌 330077)
秦理想(1982-),女,工程师,研究方向:智能控制及嵌入式系统应用;涂静芝,女,工程师,研究方向:嵌入式系统应用;刘立宗,男,工程师,研究方向:智能控制及嵌入式系统应用研究
摘要:由于SPI接口的简单、高速、稳定的特性,在实际中得到了广泛应用,本文介绍了SPI从设备的接口协议,提出了一种基于该SPI协议的读卡器的设计思路,简述了方案的具体实现方法,包括读卡器的硬件设计及软件设计。采用USB即插即用的连接方式,采用CCID标准设备通过USB接口与主机或其它嵌入式主机连接,完成SPI协议的数据通讯,满足了实际的功能需求,对于开发设计相同工作模式下的SPI从设备的程序具有很好的借鉴价值。
引言
提起读卡器,大多数人会想到它是一种读卡设备,由于存在各种不同类型的卡片,读卡器的含义也比较广泛了。按照广义的读卡器概念,它是一种既可以读取数据,又可以写入数据的设备。读卡器的应用领域很广泛,例如金融行业、交通领域、医疗系统、电力行业等。然而在电力领域,随着信息化的加速与信息技术的发展,供电企业的主营业务信息化及办公生产场所信息网络覆盖率都得到了全面的提高,智能电网的覆盖率通过远程方式对终端/电表操作的日常业务也随之增加,进而对数据传输的灵活性、安全性、可靠性、稳定性的要求也越来越高,其中采用的安全模块为SPI接口。目前市场上主流的读卡器是USB接口的读卡器,因为它可以即插即用,支持热插拔,用于读取存储卡、IC卡、非接触式IC卡等,由于接触IC卡片是ISO7816接口,非接触式IC卡是ISO14443接口,没有用于读取SPI接口芯片的专用读卡器,本文根据实际需求提出了一种基于SPI通信接口的读卡器的设计方案。
1 SPI协议
SPI(Serial Peripheral Interface,串行外围设备接口)是一种高速的、全双工、同步通信总线,并且在芯片的管脚上只占用四根线,包含设备选择线、时钟线、串行输出数据线、串行输入数据线,节约了芯片的管脚,同时为PCB在布局上节省了空间,现在越来越多的芯片都集成了这种通信协议。
1.1 SPI通信接口
SPI主要有以下通信接口:
SCLK:时钟信号,由主设备器件产生;
MOSI:主设备器件数据输出,从设备器件数据输入;
MISO:主设备器件数据输入,从设备器件数据输出;
SSN:从设备器件使能信号,由主设备器件控制。
1.2 SPI通信协议描述
SPI接口通信工作方式有四种,即MODE0、MODE1、MODE2和MODE3,本读卡器系统采用MODE3,即时钟极性(CPOL=1),时钟相位(CPHA=1),串行同步时钟的空闲状态为高电平,在串行同步时钟的下降沿转换数据,上升沿采样数据。
主设备发送数据,从设备接收数据,如图2所示;主设备接收数据,从设备发送数据,如图3所示。
1.3 SPI接口从设备通信流程
要完成读卡器的设计,首先要先了解SPI接口从设备的通信流程,如图4所示。
● SSN=0:将SSN置低;SSN=1:将SSN置高。
● Len1代表长度的高字节,Len2代表长度的低字节。
● LRC1的计算方法:对CLA、INS、P1、P2、Len1、Len2和DATA数据每个字节的异或值取反。
● LRC2的计算方法:对SW1、SW2、Len1、Len2和DATA数据每个字节的异或值取反。
Len1和Len2代表DATA域的长度,不包括LRC1或LRC2。
2 硬件设计
本读卡器的SPI主设备是主控MCU,从设备是安全芯片。本读卡器的功能实现和SPI接口的从设备通信,使用硬件SPI需要注意以下几点:
(1) SPI主设备和与之通信的从设备的时钟极性和时钟相位应该一致,并以从设备为基准;
(2) SPI仅在数据发送时才有时钟输出,一旦传输完毕,时钟就停止;
(3) SPI从设备在主设备需要接收数据时才能发送数据,主设备和从设备同时进行的;
(4) SPI主设备向从设备发送数据时,直接发送即可。但在接收数据时,实质上也是发送数据,为接收数据提供时钟信号。
读卡器的系统硬件电路包含7部分,即电源部分、SPI从设备电源控制、蜂鸣器、指示灯、USB接口部分、SPI从设备接口部分和CCID的其他设备接口,如图5所示。
2.1 USB部分
本读卡器采用USB接口供电,提供5V的工作电压,另外支持USB挂起/恢复操作,支持同步传输、批量/同步端点的双缓存,本读卡器采用了CCID标准协议,配置了三个USB端点,实现了三个设备端口的枚举,包括进行SPI时序配置的端口、安全芯片端口和预留端口。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码