CN106126458A - 一种cpu总线转智能卡总线的通信电路模块 - Google Patents
一种cpu总线转智能卡总线的通信电路模块 Download PDFInfo
- Publication number
- CN106126458A CN106126458A CN201610190462.3A CN201610190462A CN106126458A CN 106126458 A CN106126458 A CN 106126458A CN 201610190462 A CN201610190462 A CN 201610190462A CN 106126458 A CN106126458 A CN 106126458A
- Authority
- CN
- China
- Prior art keywords
- smart card
- data
- bus
- unit
- control unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Credit Cards Or The Like (AREA)
Abstract
本发明涉及一种CPU总线转智能卡总线的通信电路模块,核心控制单元与CPU总线进行写命令、读状态、写数据、读数据;存储单元与CPU总线进行数据或命令的传输、存储;分频单元分别为核心控制单元与智能卡提供不同的时钟;发送处理单元将存储单元中的数据进行转换与发送;接收处理单元接收与转换数据并存储于存储单元,根据数据的对错切换状态机的状态;插入检测单元用于检测是否有智能卡插入,电源控制单元为插入的智能卡提供电源。本发明能够稳定且高效的进行工作,能够满足智能卡绝大多数的功能需要;使用VHDL语言进行设计,能够方便的增加相关控制命令,调整数据空间长度,修改相应的状态编码等,而且操作简单快捷。
Description
技术领域
本发明涉及一种FPGA的通信接口电路,更具体地说,涉及一种CPU总线转智能卡总线的通信电路模块。
背景技术
随着通信技术的发展,越来越多的通信设备需要进行通信鉴权和加密,而智能卡成了通信上的便利而又安全可靠地通信设备载体,所以在设备中利用智能卡进行身份识别与数据加密实在是一种明智的选择。
但是现有的解决方案存在以下问题:
1、使用外置芯片智能卡转接芯片,但是价格较高、灵活性较差,并且需要熟悉很多操作指令;
2、使用CPU内置的智能卡通信外设,但是不是用户需要的所有CPU都能提供类似的接口;
3、使用商用化的IP核,价格昂贵并且配置复杂,有时甚至超过产品的价格。
发明内容
本发明的目的在于克服现有技术的不足,提供一种灵活性高,性能稳定,高度可配置的CPU总线转智能卡总线的通信电路模块。
本发明的技术方案如下:
一种CPU总线转智能卡总线的通信电路模块,包括核心控制单元、存储单元、分频单元、电源控制单元、插入检测单元、发送处理单元和接收处理单元;核心控制单元与CPU总线进行写命令、读状态、写数据、读数据;存储单元与CPU总线进行数据或命令的传输、存储;分频单元分别为核心控制单元与智能卡提供不同的时钟;发送处理单元将存储单元中的数据进行转换与发送;接收处理单元接收与转换数据并存储于存储单元,根据数据的对错切换状态机的状态;插入检测单元用于检测是否有智能卡插入,电源控制单元为插入的智能卡提供电源。
作为优选,核心控制单元包括控制中心和命令解析控制单元,用于判断CPU写数据或命令,处理数据或命令的方式,标示智能卡实时的工作状态,标示核心控制单元实时的工作状态。
作为优选,命令解析控制单元使用四种类型的地址:写命令地址、读状态地址、写数据地址、读数据地址。
作为优选,存储模块单元包括两部分,一部分是存储从CPU传输到智能卡的数据,另一部分是存储从智能卡向CPU传送的数据。
作为优选,分频单元发生多种时钟,包括针对CPU端与核心控制单元的高速时钟、针对智能卡的可配置时钟;CPU端利用高速时钟,将数据存放在存储单元上;核心控制单元利用高速时钟,解析相关命令并进行相应处理;在进行智能卡的时钟输出上使用可配置时钟频率,在智能卡数据传输上根据智能卡的时钟输出和相关分频值进行配置。
作为优选,电源控制单元产生用于智能卡的A类、B类、C类的对应电压,在检测到智能卡插入后进行电压输出,并且发送一个冷复位信号;在检测到智能卡拔出后停止输出电压。
作为优选,插入检测单元设有一个管脚,用于与智能卡的卡槽进行连接,用于探测智能卡座上是否有智能卡存在,当有智能卡插入或者拔出时,卡槽上的管脚电平都会发生跳变;当插入检测单元检测到电平变化后,判断分析插入或拔出,并向核心控制单元发送对应的控制信号,核心控制单元进行对应的激活或去激活操作。
作为优选,发送处理单元用于处理数据帧的发送,将存储单元中的并行数据按照预设的格式转换为串行数据帧,并通过发送端口进行发送。
作为优选,接收处理单元用于处理数据帧的接收,监视接收端信号,如果出现有效开始位,即进行数据接收,并将接收到的异步串行数据帧转换为并行数据,存入存储模块中;同时检查数据帧是否正确,如果不正确,则设置对应的状态编码,并切换状态机的状态。
作为优选,通过VHDL语言在FPGA上进行设计实现。
本发明的有益效果如下:
本发明所述的CPU总线转智能卡总线的通信电路模块,能够稳定且高效的进行工作,能够满足智能卡绝大多数的功能需要,包括智能卡上常用的命令和常用的协议等,可以在SIM,公交,电话等需要用到ISO7816接口的任意模块和电路上进行使用;使用VHDL语言进行设计,能够方便的增加相关控制命令,调整数据空间长度,修改相应的状态编码等,而且操作简单快捷。
附图说明
图1是本发明的内部电路逻辑结构图;
图2是本发明的控制流程图;
图3是本发明的实施时的外部电路连接图。
具体实施方式
以下结合附图及实施例对本发明进行进一步的详细说明。
本发明为了解决现有技术存在的价格较高、灵活性较差、配置复杂等不足,提供一种CPU总线转智能卡总线的通信电路模块,通过VHDL语言在FPGA上进行设计实现,能够完成插入检测、激活与去激活、控制命令和数据传输等多种复杂性通信要求,如图1所示,包括核心控制单元、存储单元、分频单元、电源控制单元、插入检测单元、发送处理单元和接收处理单元;核心控制单元与CPU总线进行写命令、读状态、写数据、读数据;存储单元与CPU总线进行数据或命令的传输、存储;分频单元分别为核心控制单元与智能卡提供不同的时钟;发送处理单元将存储单元中的数据进行转换与发送;接收处理单元接收与转换数据并存储于存储单元,根据数据的对错切换状态机的状态;插入检测单元用于检测是否有智能卡插入,电源控制单元为插入的智能卡提供电源。
核心控制单元是系统的核心,用于判断CPU写数据或命令,处理数据或命令的方式,标示智能卡实时的工作状态,标示核心控制单元实时的工作状态。核心控制单元包括整个系统控制中心和命令解析控制单元。命令解析控制单元总共使用了四种类型的地址:写命令地址是0x01,读状态地址是0x80,写数据地址是0x02~0x7F,读数据地址是0x81~0xFE,并且预留四根地址线方便后期数据空间扩展。CPU写数据或者命令到数据总线上,然后核心控制单元内部逻辑根据地址不同区别是命令还是数据,然后放置在存储单元上还是直接进行解析,并进行内部逻辑的状态切换;在状态机切换的过程中,会在状态地址上及时标示当前的工作状态,便于CPU随时读取,并发送相应控制命令,状态地址上提供智能卡的工作状态和核心控制单元的工作状态等多种工作状态编码,智能卡的工作状态主要包括:空卡、激活失败、复位应答(ATR)回复异常、初始化正常等状态;核心控制单元的工作状态主要包括:接收CPU数据完成、等待接收智能卡数据,等待CPU读取等状态。
存储模块单元分为两部分,一部分用于存储从CPU端传输信号到智能卡模块的数据,一部分用于存储智能卡向CPU传送的数据;其中,连接CPU写端口的数据是利用异步总线进行控制传输的,而连接CPU读端口处是使用高速时钟进行控制传输的。
分频单元是系统的主要时钟分配单元模块,一方面需要兼顾CPU上的高速设备,一方面又需要考虑智能卡的低速率半双工的通信,因此分频单元发生多种时钟,包括针对CPU端与核心控制单元的高速时钟、针对智能卡的可配置时钟;即分频单元设有使用了多种时钟进行匹配:一种是针对CPU端的高速时钟,将数据存放在存储单元模块上,核心控制单元也利用这个高速时钟,用于解析相关命令并进行相应处理;在进行智能卡的时钟输出上使用1~4MHz的可配置时钟频率,在智能卡数据传输上根据智能卡的时钟输出和相关分频值进行配置。
电源控制单元产生智能卡需要的A类(5V)、B类(3.3V)、C类(1.8V)的对应电压,并在检测到智能卡插入后进行电压输出,并且发送一个冷复位信号;在检测到智能卡拔出后及时停止输出电压。
插入检测单元设有一个管脚,连接到智能卡的卡槽上,探测智能卡座上是否有智能卡存在,当有智能卡插入或者拔出时,卡槽上的管脚电平都会发生跳变,插入检测单元检测到电平变化之后,会进行判断分析是插入还是拔出,并向核心控制单元发送对应的控制信号,核心控制单元进行对应的激活或去激活等操作。
发送处理单元和接收处理单元主要是负责处理数据帧的发送和接收,发送处理单元主要是将存储单元中数据按照设定的格式把并行数据转换为串行数据帧,并通过发送端口送出去。接收处理单元则是监视接收端信号,一旦出现有效开始位,就进行接收,并实现将接收到的异步串行数据帧转换为并行数据,存入存储模块中,同时检查数据帧是否有错。如果有错则需要设置对应的状态编码,且切换状态机状态。
本发明的工作流程如图2所示,具体为:
(1)智能卡插入卡槽后,会触发电平变化,插入检测单元的内部逻辑开始工作,触发核心控制单元开始智能卡的类型检测;
(2)首先发送C类1.8V测试,并进行冷复位,然后是B类卡3.3V测试,并依次进行测试;
(3)当收到ATR回复之后,放置ATR回复数据到存储单元,设置状态编码,等待CPU读取;
(4)CPU查询到数据可读后,读取数据空间的数据并进行解析,然后进行基于时间单元(ETU)修改或者协议和参数选择(PPS)协议修改波特率;
(5)如果按照PPS协议要求下发PPS命令数据,则接收数据存入存储单元,并切换状态等待下发PPS数据,发送完成后切换状态,等待接收PPS回复,回复接收完成后放入存储模块,切换状态编码为等待CPU读取(这一部分和应用协议数据单元(APDU)状态切换一致);
(6)如果本发明收到ETU修改命令后,设置分频单元的ETU值,至此智能卡的初始化就完成了;
(7)完成初始化后由CPU发送APDU单元到存储模块,核心控制模块切换状态,并向智能卡下发APDU单元,发送完成后切换状态等待APDU回复,回复完成后再次切换状态编码为等待CPU读取;
(8)循环发送APDU单元;
(9)当检测到卡拔出时,迅速切断智能卡电源,如果接收到相关复位或者去激活等命令时,由核心数据单元进行状态切换并控制内部逻辑进行工作,如果数据接收错误,也会触发状态切换并上报CPU。
将本发明进行实施为硬件电路时,如图3所示,图3中的D2是静电保护二极管,J2是智能卡,在FPGA上的CPU总线挂接到CPU的对应地址和数据总线上,在本实施例上没有使用带有插入检测智能卡的卡槽,所以整个通信流程可以有CPU端发起。
进一步地,关于CPU的控制时序,可以参考本发明的控制流程,只要按照需要进行配置驱动并进行相应的应用程序设计,就能够完成对于智能卡的基本流程控制。
本发明默认条件下的时钟要求是:输入时钟范围:16Mhz~64MHz,推荐时钟:50MHz。模块内部可以重新配置智能卡的输出时钟,需要调整分频系数,在调整时钟时需要满足以下基本条件,配置分频单元时需要注意满足以下公式:(N默认为16)。
fsim_clk=fclk_in/N;
1MHz<fsim_clk<4MHz;
其中,fsim_clk是智能卡的输出时钟频率,fclk_in是输入时钟频率。
上述实施例仅是用来说明本发明,而并非用作对本发明的限定。只要是依据本发明的技术实质,对上述实施例进行变化、变型等都将落在本发明的权利要求的范围内。
Claims (10)
1.一种CPU总线转智能卡总线的通信电路模块,其特征在于,包括核心控制单元、存储单元、分频单元、电源控制单元、插入检测单元、发送处理单元和接收处理单元;核心控制单元与CPU总线进行写命令、读状态、写数据、读数据;存储单元与CPU总线进行数据或命令的传输、存储;分频单元分别为核心控制单元与智能卡提供不同的时钟;发送处理单元将存储单元中的数据进行转换与发送;接收处理单元接收与转换数据并存储于存储单元,根据数据的对错切换状态机的状态;插入检测单元用于检测是否有智能卡插入,电源控制单元为插入的智能卡提供电源。
2.根据权利要求1所述的CPU总线转智能卡总线的通信电路模块,其特征在于,核心控制单元包括控制中心和命令解析控制单元,用于判断CPU写数据或命令,处理数据或命令的方式,标示智能卡实时的工作状态,标示核心控制单元实时的工作状态。
3.根据权利要求2所述的CPU总线转智能卡总线的通信电路模块,其特征在于,命令解析控制单元使用四种类型的地址:写命令地址、读状态地址、写数据地址、读数据地址。
4.根据权利要求1所述的CPU总线转智能卡总线的通信电路模块,其特征在于,存储模块单元包括两部分,一部分是存储从CPU传输到智能卡的数据,另一部分是存储从智能卡向CPU传送的数据。
5.根据权利要求1所述的CPU总线转智能卡总线的通信电路模块,其特征在于,分频单元发生多种时钟,包括针对CPU端与核心控制单元的高速时钟、针对智能卡的可配置时钟;CPU端利用高速时钟,将数据存放在存储单元上;核心控制单元利用高速时钟,解析相关命令并进行相应处理;在进行智能卡的时钟输出上使用可配置时钟频率,在智能卡数据传输上根据智能卡的时钟输出和相关分频值进行配置。
6.根据权利要求1所述的CPU总线转智能卡总线的通信电路模块,其特征在于,电源控制单元产生用于智能卡的A类、B类、C类的对应电压,在检测到智能卡插入后进行电压输出,并且发送一个冷复位信号;在检测到智能卡拔出后停止输出电压。
7.根据权利要求1所述的CPU总线转智能卡总线的通信电路模块,其特征在于,插入检测单元设有一个管脚,用于与智能卡的卡槽进行连接,用于探测智能卡座上是否有智能卡存在,当有智能卡插入或者拔出时,卡槽上的管脚电平都会发生跳变;当插入检测单元检测到电平变化后,判断分析插入或拔出,并向核心控制单元发送对应的控制信号,核心控制单元进行对应的激活或去激活操作。
8.根据权利要求1所述的CPU总线转智能卡总线的通信电路模块,其特征在于,发送处理单元用于处理数据帧的发送,将存储单元中的并行数据按照预设的格式转换为串行数据帧,并通过发送端口进行发送。
9.根据权利要求1所述的CPU总线转智能卡总线的通信电路模块,其特征在于,接收处理单元用于处理数据帧的接收,监视接收端信号,如果出现有效开始位,即进行数据接收,并将接收到的异步串行数据帧转换为并行数据,存入存储模块中;同时检查数据帧是否正确,如果不正确,则设置对应的状态编码,并切换状态机的状态。
10.根据权利要求1所述的CPU总线转智能卡总线的通信电路模块,其特征在于,通过VHDL语言在FPGA上进行设计实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610190462.3A CN106126458A (zh) | 2016-03-30 | 2016-03-30 | 一种cpu总线转智能卡总线的通信电路模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610190462.3A CN106126458A (zh) | 2016-03-30 | 2016-03-30 | 一种cpu总线转智能卡总线的通信电路模块 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106126458A true CN106126458A (zh) | 2016-11-16 |
Family
ID=57269774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610190462.3A Pending CN106126458A (zh) | 2016-03-30 | 2016-03-30 | 一种cpu总线转智能卡总线的通信电路模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106126458A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109472935A (zh) * | 2018-09-29 | 2019-03-15 | 中国电力科学研究院有限公司 | 一种对远程通信单元资产信息进行处理的方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206625A (zh) * | 2006-12-22 | 2008-06-25 | 普天信息技术研究院 | 一种数据处理主控设备、从设备、系统及方法 |
CN101448070A (zh) * | 2008-12-26 | 2009-06-03 | 上海全景数字技术有限公司 | 机顶盒智能卡的切换方法和装置 |
CN101477640A (zh) * | 2009-01-09 | 2009-07-08 | 北京工业大学 | 基于现场可编程门阵列的识别卡接口控制器与实现方法 |
CN103309828A (zh) * | 2013-05-31 | 2013-09-18 | 杭州晟元芯片技术有限公司 | 一种sd卡从控制器及控制方法 |
CN104581318A (zh) * | 2015-01-22 | 2015-04-29 | 青岛海信宽带多媒体技术有限公司 | 实现智能卡动态插拔响应的方法及终端 |
-
2016
- 2016-03-30 CN CN201610190462.3A patent/CN106126458A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206625A (zh) * | 2006-12-22 | 2008-06-25 | 普天信息技术研究院 | 一种数据处理主控设备、从设备、系统及方法 |
CN101448070A (zh) * | 2008-12-26 | 2009-06-03 | 上海全景数字技术有限公司 | 机顶盒智能卡的切换方法和装置 |
CN101477640A (zh) * | 2009-01-09 | 2009-07-08 | 北京工业大学 | 基于现场可编程门阵列的识别卡接口控制器与实现方法 |
CN103309828A (zh) * | 2013-05-31 | 2013-09-18 | 杭州晟元芯片技术有限公司 | 一种sd卡从控制器及控制方法 |
CN104581318A (zh) * | 2015-01-22 | 2015-04-29 | 青岛海信宽带多媒体技术有限公司 | 实现智能卡动态插拔响应的方法及终端 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109472935A (zh) * | 2018-09-29 | 2019-03-15 | 中国电力科学研究院有限公司 | 一种对远程通信单元资产信息进行处理的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100435169C (zh) | 可实时转换协议的非接触式集成电路卡及卡系统 | |
CN103210597B (zh) | 应答器、rfid系统以及操作方法 | |
CN101226581B (zh) | 芯片与天线分离复用的电子标签阵列及系统、实现方法 | |
CN102768781B (zh) | Nfc手机电子锁控制系统和装置 | |
CN105144591A (zh) | 极高频系统及其操作方法 | |
CN103229189B (zh) | 用于管理在设备物品与诸如非接触式芯片卡之类的至少一个多应用物体以及对应物体之间的对话的方法 | |
US9165232B2 (en) | Radio-frequency identification (RFID) tag-to-tag autoconnect discovery, and related methods, circuits, and systems | |
TW200530934A (en) | Radio frequency identification and communication device | |
CN102624429A (zh) | 用于管理信息交换的方法和设备 | |
CN104598962B (zh) | 一种有源被动式双频芯片及rfid系统 | |
JP5750960B2 (ja) | 検出装置、および検出方法 | |
CN100573563C (zh) | 一种非接触ic卡通用编码解码及读写装置和方法 | |
US7240848B1 (en) | Three port RF interface chip | |
CN102968659B (zh) | 电子标签无线有线交互通信方法及电子标签 | |
CN102324050B (zh) | 利用rfid芯片记录家电控制器信息的方法及专用装置 | |
KR20040033157A (ko) | 무선통신매체 및 그 동작방법 | |
EP2950456B1 (en) | Communication circuit and approach with modulation | |
CN106126458A (zh) | 一种cpu总线转智能卡总线的通信电路模块 | |
CN105809231B (zh) | 多频多用途电子标签及其使用方法 | |
CN102982354A (zh) | 基于rfid的智能供电管理系统 | |
CN105989379A (zh) | 一种校园验证系统的无线射频识别读写器 | |
CN202110569U (zh) | 嵌入移动通信终端的超高频rfid读写器 | |
CN207993043U (zh) | 一种rfid标签读写设备 | |
CN201084154Y (zh) | 一种rfid阅读器 | |
CN203733123U (zh) | 一卡通系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161116 |