IC卡的原理及应用如ft芯片内部结构和特点文档格式.docx
- 文档编号:6007219
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:20
- 大小:274.97KB
IC卡的原理及应用如ft芯片内部结构和特点文档格式.docx
《IC卡的原理及应用如ft芯片内部结构和特点文档格式.docx》由会员分享,可在线阅读,更多相关《IC卡的原理及应用如ft芯片内部结构和特点文档格式.docx(20页珍藏版)》请在冰点文库上搜索。
发行批号、日期、地区范围编号以及特定用户编号等特征代码)。
当控制本区的熔丝没有熔断时,该区的存储单元内容可以自由的擦除或改写。
在个人化处理过程完成之后,控制该区的熔丝(FUSH2)熔断,即可将注入的“发行商代码”完全固化。
这一代码也是识别卡片的真伪,区分卡片应用类别的重要标识。
(3)个人代码区(CPZ)
该区用于存放个人身份标识数据。
该区使用上受芯片的“用户密码”的保护。
当“用户密码”比较成功,该区可读可写可擦除。
“用户密码”比较不成功,该区只能读而不能写入和擦除。
(4)用户密码区(SC)
这个密码区是整个存储器的“总控制开关”。
使用前,由授权持卡人预先输入的一个安全代码作为“参照字”储存在这个存储区里。
使用时,必须输入一个“校验密码”。
芯片将输入的“校验密码”与内部存储器的“参照字”一一比较。
如果比较结果一致,IC卡将开放整个芯片储存器(包括各分区的控制密码和各应用数据区)。
各区的“安全密码”区SCn(n=l,2,3,4)与SC的作用是完全类似的。
对于各分区的密码区SCn(n=1,2,3,4)来说,其比较操作要受到对应“应用区密码”比较计数器(SnAC)的计数控制。
当连续8次输入密码错误,SCn将被锁死。
(5)密码比较计数区(SCAC)
该区对连续输入的错误密码的次数进行累计。
当连续8次不正确的比较操作之后,芯片将被锁死。
芯片被锁死之后,将拒绝任何的擦除、写入和比较的操作命令。
该区是8位长,按位写入方式操作。
在芯片初始化时是全“1”状态,即读出值为“FFH”。
在每次比较输入的密码时,先按从高位到低位的顺序找第一个为“1”的位,将此位写“0”,然后将新输入的“校验密码”与原存储在SC区的“参照字”进行比较。
比较操作本身由芯片内部自行完成,而比较结果则通过置SV标志来判别,即比较成功时SV被置“1”。
比较不成功,SV保持原来的“0”状态。
在连续8次比较错误过程中每次比较操作之后计数器的计数值分别为“7FH”、“3FH”、“1FH”、“0FH”、“07H”、“03H”、“01H”、“00H”。
当计数器为“00H”后,后续的比较操作命令由于无法在“SCAC”区中找到一个为“1”的位,因而芯片拒绝继续执行比较操作。
SnAC(n=1,2,3,4)的作用与SCAC是类似的。
操作控制也完全一样。
只是SCAC是限制对SC区的比较操作。
而SnAC则限制对SCn区的比较操作。
SCAC的控制级别最高。
当SCAC为“00H”后,芯片内部封锁了对SC区的比较操作,从而使对SCn的比较也被禁止。
如果SCAC为非“00H”值,在对SC区的比较密码操作成功之后,SCn能否进行比较操作就由SnAC区的状态值来决定。
SnAC区在连续8次比较输入过程中,每次比较操作之后计数器的计数值与SCAC的8个值一样。
(即分别为“7FH”、“3FH”、“1FH”、“0FH”、“07H”、“03H”、“OlH”、“00H”)当SnAC为“00H”时,则“应用n区”将被锁死。
(6)擦除密码区(EZn,n=l.2,3,4)
该区用于存储擦除应用区操作的控制密码。
这些密码一般由发行商使用。
在个人化处理时输入的最后一组“擦除密码”,在芯片熔丝FUSE2熔断之后将使“擦除密码”保存在该区内。
该区不再能读出、写入和擦除,只能进行比较操作。
在使用过程中如需对应用区进行擦除操作,都必须首先对相应的EZ区输送一个“擦除密码”与之比较,在“擦除密码比较计数器”不为“00H”的情况下,如果相比较的两代码完全一致,则相应的应用区的单元允许擦除,否则将禁止执行擦除操作。
(7)擦除密码比较计数区(EnAC,n=l,2,3,4)
擦除密码比较计数区的作用与SCAC的作用相类似。
它对各应用区擦除密码连续输入错误的次数进行累计。
最多连续8次不正确的密码比较之后,该区所控制的应用区的擦除操作即被锁死,从而导致该应用区有可能成为只读和允许单次写入的状态。
(8)应用数据区(AZn,n=1,2,3,4)
该区主要给用户使用。
用于存储系统的相关数据记录和卡片标识等信息。
应用数据区的写入与读出分别由该区的前两位Pn和Rn以及SV标志的状态控制,擦除操作则由该区的擦除密码控制。
AT88SC1604设计了四个完全隔离的分区,其中1至3分区的单元容量分别是4K位、第4分区的单元容量为3.6K位。
(9)存储区测试区(MTZ)
该区主要用于芯片生产后对EEPROM单元阵列进行各项性能测试该区不受任何控制区状态和标志状态的保护,允许对这个区进行读出、写人和擦除操作,但不能进行比较操作。
应用实例
基于上述1604芯片的特点,在石化系统的加油电路设计中,我们利用单片机芯片89C2051与IC卡电路组成一个独立系统,控制IC卡芯片的各项操作,该系统通过标准RS232通讯接口,与主控制板实现数据交换,这种电路设计在硬件方面兼容性较好,只要通过协调双方的IC卡通讯协议,可与任何带有RS232接口的控制板或微机相连接。
单片机芯片89C2051的6个端口通过IOC卡座与IC卡相连接,P1.2口控制IC卡5V电源的通断,上电时单片机芯片处于复位状态,6个端口均输出“1”,IC卡电源处于断开状态,ICSW为IC卡的检测端,当IC卡插入后,该端口与地相接,P1.3口检测到IC卡已插入卡座,即接通IC卡电源,IC卡操作完毕后,切断IC卡电源,并提示用户可以拔卡。
单片机芯片其他4个端口在接通IC卡电源后,根据对卡操作的需要,对IC卡进行复位,读卡,校对密码,擦卡,写卡等操作。
硬件电路
芯片的操作模式时序及设计程序
AT88SCl604芯片的操作模式有五种。
它们是通过配PGM、RST、CLK等引脚信号及内部地址计数器(IAC)的状态组合来实现。
(1)芯片复位操作:
AT88SCl604有两种复位方式:
上电复位和控制复位。
上电复位:
上电复位是当芯片加电时的最初状态。
上电复位属于芯片
内部复位。
它将使芯片内部所有的隐含标志复位到"
0"
状态。
并使地址计数器复位到0位。
控制复位:
当CLK为低时,在RST脚上的一个下降沿将便芯片产生复位操作。
控制复位是将地址计数器复位到0位,而不影响任何内部标志的状态。
注:
1)RST为高时禁止计数
2)在CLK端降低之后,延迟一个"
复位维持时间"
Trh(min0.1s)RST端复位(下降沿),同时地址计数器清零。
地址计数器清零后延迟一个“数据复位有效时间”Tdvr(max2s)第0位单元的数据被送上I/O线。
FWZCX:
CLRICPGM;
复位子程序
NOP
SETBICREST
SETBICSDA
CLRICCLK;
时钟端清0
CLRICREST;
复位端清0
RET
(2)读出操作:
在进行读出操作时,必须保证使RST脚和PGM脚同时保持为低。
如果对芯片各密码控制区进行读出操作,只能是在FUSE2未熔断且SV标志“1”时才能进行。
如果对芯片各标识数据区进行读出操作,除FZ和IZ区外,需要使SV标志置“1”后才能执行。
如果对芯片各应用数据区进行读出操作,需要在SV=1且Rn=1(n=1,2,3,4)状态下才能执行。
在CLK的下降沿时,地址计数器加1,地址计数器当前所指的地址单元的数据被输出到I/O线上。
因此,在整个时钟周期Tdk期间,包含了地址加1(INC)和读出(REA)两项操作。
读IC数据子程序(R2:
需读IC卡字节数,R0:
数据区存放低位首地址)
RICDAZ:
MOVA,#KXXDZ;
卡信息地址送A
LCALLSADR;
寻卡地址
RICDA:
MOVR3,#08
RICDA1:
SETBICSDA
MOVC,ICSDA;
位读到A
RLCA
SETBICCLK
CLRICCLK
DJNZR3,RICDA1
MOV@R0,A;
8位数据送数据区
DECR0
DJNZR2,RICDA
;
寻IC卡位地址子程序(调用前16进制地址送ACC)
SADR:
LCALLFWZCX
MOVB,#08
MULAB;
计算位地址:
16进制地址*8
MOVR4,A;
低位位地址送R4
MOVR5,B;
高位位地址送R5
JNZSADR1;
低位地址不为0转
MOVA,R5
JZSADR3
DECR5
SADR1:
SETBICREST;
复位端置1
CLRICPGM
CLRICREST
SADR2:
SETBICCLK
DJNZR4,SADR2
SJMPSADR2
SADR3:
RET
(3)比较操作:
在进行比较操作时,必须保证使RST脚和PGM脚同时保持为低。
比较操作只能对芯片密码控制区执行,且由芯片内部来判断。
在FUSE2未熔断时,只能在SV=0时,对SC区进行比较操作,对其它区的比较操作均为无效操作。
SV=1时,芯片不做任何比较操作。
在FUSE2熔断后,只能在SV=0时,对SC区进行比较操作,对其它区的比较操作均为无效操作。
上述芯片密码比较时序图中是假设密码计数器中前两位为0,第三位寻到1的处理时序。
有关芯片SC的时序关系如图2~5图所示:
从操作(B)到(F),地址计数器不变,密码比较的过程是:
(A)比较安全密码/擦除密码序列
(B)在密码输入比较计数器中找出一位为“1”的位
(C)在这个为“1”的单元写“0”
(D)芯片输出“0”
(E)如果比较成功,在PGM的上升沿安全密码/擦除密码的相应标志
(SV,Sn或En)被置“1”,同时安全密码/擦除密码输入比较计数器
(SCAC,SnAC或EnAC)被擦除。
(F)如果擦除成功,相应安全密码/擦除密码标志被置“1”,芯片将输出“1”,否则芯片输出“0”。
(G)在CLK的下降沿,地址计数器加1,并输出下一位的状态。
比较用户密码子程序(地址0AH,0BH)
CPSC:
MOVR0,#CMM+2
MOVR1,#06
MOVR2,#02
LCALLMVITI
MOVA,#0AH
寻址
MOVR0,#06
LCALLBJMMRET
比较密码程序
BJMM:
CLRICREST
BJMM1:
MOVA,@R0
MOVR3,#08
BJMM2:
RLCA
MOVICSDA,C
DJNZR3,BJMM2
INCR0
DJNZR2,BJMM1
MOVR2,#08;
查8位
BJMM4:
MOVC,ICSDA
JCBJMM5;
是1转
SETBICCLK;
指向下一位
DJNZR2,BJMM4
LJMPBJMM8;
计数器为00,卡锁死转
BJMM5:
SETBICPGM
CLRICSDA;
写0
LCALLDELY5
JNCBJMM6
LJMPBJMM7;
未写入0,转出错
BJMM6:
SETBICSDA;
写1(擦除)
JNCBJMM7;
擦除不成功(密码错)转
SETBFGICG1;
置已校对密码标志
BJMM7:
CLRFGICG1;
建密码错标记
BJMM8:
SETBFGICG2;
置卡锁死标志
(4)写入操作:
写入操作实际包含着两种:
当写入的数据为“0”时,本次操作称为“写入操作”。
当写入的数据为“1”时,本次操作称为“擦除操作”。
“写入操作”可以按位进行。
但“擦除操作”只能按字节进行。
即使操作时只对单独一位进行擦除,但执行的结果将使这一位所在的字节的所有8位全部置成“1”。
对芯片的任何一个允许写入或擦除的区域,其执行写入和擦除的必要条件是芯片的SV标志为“1”状态。
注:
在CLK为低的状态下,PGM端从“0”到“1”,并延时一段“编程建立时间”(Tspr)之后,CLK端从“0”到“1”(这时是写入/擦除操作的开始),在此刻之前的Tds(数据建立时间)由外部向I/O线给出写入数据。
CLK端在“1”状态应至少保持5ms(Tchp)之后,CLK端从“1”到“0”(这时是写入/擦除操作的结束)。
应特别注意结束写入操作的CLK端的下降沿并不会使地址计数器加1,而只是将刚写入的“数据”读出,以便外部验证刚才的“写入操作”。
WICD:
MOVA,#KDWDZ;
送擦除卡低位首地址
寻位地址
MOVR2,#30;
擦除30字节
LCALLCPESC3;
擦除
MOVR0,#RAMDZ;
CPU的RAM中待写
入数据地址
写入30字节
WICDA:
LCALLWICDAA
DJNZR2,WICDA
向IC卡写入子程序
WICDAA:
WICDAB:
JCWICDAC;
该位为1,转
SETBICPGM;
打开编程位
SETBICPGM
CLRICPGM;
关闭编程位
LCALLDELY5;
延时5MS
WICDAC:
DJNZR3,WICDAB
擦除应用区1
CPESC3:
SETBICPGM;
打开编程位,擦除灰名
单入口
MOVR3,#07
CPESC4:
DJNZR3,CPESC4
DJNZR2,CPESC3
延时(R7)
DELY5:
MOVR7,#0AH;
5毫秒延时
DELY:
PUSH07
DLY1:
DLY2:
DLY3:
DJNZR7,DLY3
POP07
DJNZR7,DLY2
DJNZR7,DLY1
DJNZR7,DELY
结束语
随着IC卡技术的飞速发展,金融机构、国家机关、公司企业、教育部门等领域的需求越来越迫切,应用越来越广泛。
我们已在石化系统加气站实现了使用IC卡进行加气的业务,现将调试成功的部分实用子程序提供给大家,供同行朋友们参考。
随着MP3手机的兴起,用户不仅对手机音乐的音量、音质要求越来越高,而且对手机的存储容量的要求也越来越大,总希望能多存些歌,可以省去频繁换歌的烦恼。
但目前一般手机自带的内存远远不能满足这些要求,而且很多手机平台也无法支持外接存储卡,为了解决这一问题,就需要有配套的存储管理芯片。
方泰电子的ft1780可以帮手机设计工程师很好的解决这个难题。
它不仅可以提供专业的MP3音乐,而且集成了SD/MMC存储卡接口,由于内置文件管理系统,可以方便地升级原有的手机产品,使之具有可更换外接SD/MMC存储卡的功能。
本文介绍了ft1780音频处理芯片的功能特点,并详细叙述了其在手机上的应用实例。
ft1780芯片内部结构和特点
图1是ft1780芯片的内部框图,从中可以看出,ft1780主要由7部分组成。
图1:
ft1780芯片内部框图。
1.主机接口:
与Baseband相连,Baseband通过它向ft1780发命令和读取状态;
2.音频/系统引擎:
芯片的核心部分,完成64和弦MIDI合成,MP3解码,七段数字均衡器,文件系统管理,系统控制等功能;
3.SD/MMC卡控制器:
完成SD/MMC卡接口功能;
4.输入/输出控制器:
完成I2S接口,四路LED控制,马达和背光控制等功能;
5.电源管理系统:
可以关掉不用的功能模块,节省系统功耗;
6.立体声耳机功放:
可以直接驱动16ohm的耳机,输出功率可达到20mW以上;
7.喇叭功放:
可以直接驱动8ohm喇叭,输出功率可达到500mW以上;
ft1780芯片采用6mmx7mm48Pin的BGA封装,与其它普通MP3解码芯片相比,它有以下几个主要特色:
1.工作电流小,具有高效的省电设计电路,芯片内各模块可以单独控制开和关,可满足手机上不同的工作模式要求;
2.支持全系列采样率和编码率的MP3数据,包括MPEGVersion1Layer3,MPEGVersion2Layer3和MPEGVersion2.5Layer3标准,采样率范围是8~48kHz,编码率是8~320kbps,解码品质高,声音音质好;
3.支持64和弦的铃声,支持自有的人声音效格式(FTF格式),同时支持自然音和背景音的播放;
4.内置SD/MMC卡的文件管理系统程序,不需要手机的基带来解析SD/MMC卡上的文件系统,基带只要发简单的命令就可以控制ft1780的播放功能,SD/MMC卡的数据可以不经过基带,由ft1780芯片自己读取和播放,这样可以大大减轻基带的负担,也因此拓宽了ft1780的应用面。
5.内置高品质立体声耳机功率放大电路,输出功率大,并具有无耦合电容设计的耳机输出电路。
普通的耳机输出需要两个较大的隔直电容,若电容容量太小,会使低频响应变差,声音低频失真。
而无耦合电容设计可以节省成本,节省手机电路板宝贵的空间,增加耳机输出的保真度。
6.内置喇叭功率放大电路,在8ohm喇叭上可以输出500mW以上的功率。
图2:
典型应用示意图。
ft1780芯片的曲型应用
ft1780的应用电路比较简单,所需的外围器件很少,只需要十几个电阻和电容,典型应用线路如2所示。
通过调整R1和R3的比值可以调节ft1780内部输出到喇叭的增益,通过调整C1和C3可以调节喇叭输出声音的高频和低频特性,对于图中所列参数,R1=33k欧姆,C1=330pF,R3=33k欧姆,C3=0.1uF,增Gain=R1/R3=1,高频截止频率为FH=1/(2*π*R1*C1)=14.6kHz,低频截止频率为FL=1/(2*π*R3*C3)=48.2Hz。
从AudioIn进来的音频信号可以通过控制从喇叭或耳机出来,并且可以根据需要通过R2和C2调节它的低频响应曲线。
图中,耳机的输出已用了无耦合电容设计,所以图上没有输出耦合电容,但要注意的是,耳机的公共端不是通常的“地”,需是芯片上的虚拟地脚“HPR”。
另外芯片的VDDA脚可以直接与电池的正级相接,在不需芯片工作时,可以用软件来控制芯片进入"
PowerDown"
状态,这时芯片的耗电只有几微安。
相关软件和播放流程
ft1780芯片的工作需要相应的驱动程序支持。
驱动程序采用模块化结构,各功能都有相应的程序,在DesignIn过程中,只要修改硬件相关的地址参数,加入中断服务程序(也可以使用定时器相关的查询模式),然后调用相应的API就可以正常工作(发出声音)了。
图3是软件模块示意图,下面简单介绍一下各模块的功能:
图3:
软件模块示意图。
1.硬件平台相关模块:
需要根据手机平台的情况修改相应的参数,主要有芯片寄存器的操作地址,输入时钟的频率等;
2.MIDI模块:
MIDI数据解析和处理,MIDI播放控制和回调控制;
3.ADPCM模块:
ADPCM数据解析和处理,ADPCM播放控制和回调控制;
4.FTF模块:
FTF数据解析和处理,FTF播放控制和回调控制;
5.SD/MMC模块:
SD/MMC命令解析和处理,SD/MMC播放控制和回调控制;
6.MP3模块:
MP3数据解析和处理,MP3播放控制和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IC 原理 应用 ft 芯片 内部结构 特点