logo资料库

TDA8007B中文手册.pdf

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
TDA8007B 笔记本 : 创建于 : 功能框图 ISO7816 2011-6-15 18:39 更新 于: 2011-7-5 11:15 数据和地址引脚复用时的时序图: 数据和地址引脚不复用时的时序图:
寄存器简称: Card Select Register(CSR)卡片选择寄存器 选择UART操作的卡并控制UART的复位 SC1=1,选择1号卡;SC2=1,2号卡被选择;SC3=1,3号卡被选择。复位后默认选择1号卡。 在开始操作UART之前必须将RIU置为1。这个位可以将UART的所有寄存器复位到初始值。 Hardware Status Register(HSR) 硬件状态寄存器 当MSR中的PR1和PR2状态变化的时候,PRL1和PRL2置高。(PR1和PR2反应PRES1/PRES2的引脚状态,也就是插卡的状态。当有卡插入 或者拔出的时候PR1/PR2置1) 当电压监控器被激活的时候(VDD上有噪音RSTOUT会输出高电平脉冲,电压监控器被激活)SUPL置1。 PRTL1和PRTL2是两个卡片VCC和RST引脚的或运算结果,用于检查时序的异常(正常情况下它们应该总为1)。 PTL在芯片过热(比如短路)的时候被置1。
INTAUX引脚的状态变化的时候INTAUX 位被置1. HSR中的任何一位置位后,中断引脚INT都被置低, 直到HSR被读出,此后HSR的所有位也被置为0. 上电或者电压低的时候SUPL都会置位。 在紧急释放卡片的时候(因为PRTL1, PRTL2,SUPL, PRL2, PRL1 or PTL)PCR中的START位被置1. 计数寄存器 三个计数寄存器可以组成一个24bit的ETU计数器或者两个独立的计数器(1个8bit一个16bit)。具体如何配置根据TOC寄存器的内容。 TOC OPERATING MODE 00 所有的计数器都停止 61 计数器1停止,计数器2和3组成一个16bit的计数器。当61被写入TOC中以后,从存储在TOR3和TOR2中的值开始计数。当计数到 最大值的时候产生一个中断,USR中的TO3被置位1。当往TOC中写入00的时候计数停止。 65 计数器1是一个8bit自动重载计数器,计数器3和2组成一个16bit的计数器。当65被写入TOC以后,计数器1在I/O引脚上检测到开 始位以后便会从TOR1中的内容开始计数。当计数器1达到他的最大值,引发一个中断,USR中的TO1被置位,计数器重新装载原 来的初始值继续计数直到停止。在计数过程中不允许改变TOR1的值。这种模式下计数器1的误差在正负0.5ETU。 当TOC中写入65以后,计数器3和计数器2合并为一个16bit的计数器开始计数,初始值是TOR3和TOR2中的值。当计数到最大值 时,TO3置位,中断产生。 当王TOC中写入00,两个计数器都会停止。 68 一旦TOC中写入68,计数器3、2、1被组成一个24bit的计数器开始计数,初始值在TOR1、TOR2、TOR3中。往TOC中写入00计 数停止。计数过程中不允许修改TOR1/2/3的值。 7c 一旦TOC中写入7C,计数器3、2、1被组成一个24bit的计数器,初始值在TOR1、TOR2、TOR3中,在I/O引脚上检测到第一个开 始位以后开始计数。往TOC中写入00停止计数。计数过程中可以修改TOR1/2/3的值,修改他们的内容不影响当前的计数值,新 的值将会在下一次检测到开始位时生效。 必须保证TOR1/2/3不同是为0. E5 和写入65时的功能一样,除了计数器1将会在检测到开始位以后12ETU停止。 ISO UART寄存器 发送和接受寄存器 Mixed Status Register(混合状态寄存器) 校验错误管理: *T=0 检测到错误校验以后,校验错误的字节并不被存入FIFO,错误计数器递增1。错误计数器可以在1~8之间变化。当错误计数器到达FCR中 设置的错误值时,USR中的PE位置位并且INT引脚变为低电平。 *T=1 奇偶校验错误发生后,错误的字节被载入FIFO,PE立马被置位(无论错误计数器的值是多少)。 当缓冲区满时,USR中的RBF立即置位。当至少有一字节被从URR读走之后RBF复位。 当缓冲区空的时候,FE位置位直到有数据被接收。 INTAUX位的状态反应引脚INTAUX的电平。
BGT位和22ETU计数器关联,计数器在I/O引脚上的开始位出现时开始计数。如果在计数结束之前还没有下一个开始位出现,BGT就被 置位。这可以验证卡片是否在上一个开始位之后的22ETU内开始传输下一个字符。 当1号位置上有卡片插入的时候PR1置位,当2号卡片插入的时候PR2置位。 TBE/RBF (Transmit Buffer Empty/Receive Buffer Full)位的置位条件如下: • 从接收模式转换到发送模式 • UART发送了一个字符(本来是满的,发送了一个字符表明可以往UTR中写入新的数据了) • 接收缓冲已满 TBE/RBF在上电和下列情况下被复位: • CSR中的RIU位被复位 • 一个字符被写入UTR • 至少从FIFO中读取了一个字符 • 从发送模式转换为接收模式 MSR中的内容不影响中断引脚INT的状态。 FCR(缓冲控制寄存器) FL0、FL1、FL2决定FIFO的触发深度(000 = length 1, 111 = length 8)。 PEC2, PEC1 和PEC0决定出现几次校验错误之后置位USR中的PE位并将INT引脚置低。000表示发生一个校验错误就置位,111表示8个错 误后触发中断。 PE位被置位之后必须重新对 PEC2, PEC1 和PEC0进行编程。 *T=0 • 在错误计数器的值到达PEC2, PEC1 和PEC0设定的值之前接收到一个正确的字符,错误计数器就 会复位(也就是说 必须连续接收指定个数的错误字节才会引发中断) •如果错误计数器到达了指定了值,则USR中的PE位被置位,直到USR被读取。 *T=1 •错误计数器不起作用,接收到第一个校验错误字节PE就置位。 •USR被MCU用来监视UART的状况和超时计数器。 USR(UART状态寄存器) 当UART处在发送模式并且MCU可以往UTR中写入下一个字节的时候TBE会置位。如果UCR1中的T/R位被自动或者手动复位,或者MCU 往UTR中写入了一个字符,TEB就被复位。 在检查到卡片返回的就校验错误ACK之后需要等待13ETU之后才能重新发送上个字符。 当缓冲区满的时候RBF被置位,MCU从URR中读取数据可以将这个位清零。 TEB和RBF在USR中共享同一个比特位(当为发送模式的时候TEB有效,当为接收模式的时候RBF有效)。 如果开始位之后的10.25ETU之后I/O上的状态不处于高阻抗(校验不正确),FER(Framing Error)就被置位,当读取USR的内容后,这个 位被复位. 当缓冲区满时接收到一个新的字节,Overrun (OVR)位被置位。至少丢失一个字节的内容。 Parity Error (PE)的置位复位条件参考FCR下的描述。 复位应答(ATR)过程中第一个开始位如果在200~384和时钟周期内被检测到,Early Answer (EA)位就会被置位.(复位应答的前200时 钟周期内的IO状态被忽略) . 当计数器1到达最大值时TO1置位。 当计数器3到达最大值时TO3置位。 FER, OVR, PE, EA, TO1 或者 TO3的置位会引发中断,INT引脚会变为低电平。读取USR会清除中断。 如果TEB/RBF位置位并且USR2中DISTEB/RBF没有置位,INT引脚也会变低。当有数据被写入UTR或者从URR读出,或者从发送模式转 换到了接收模式,TEB/RBF位被复位。 芯片(卡片)相关的寄存器 可编程分频寄存器(PDR) 可编程分频寄存器( Programmable Divider Register)用来计数每个ETU的周期。它是一个可自动装载的8bit递减计数器,递减到0为 止。 UART配置寄存器2(UCR2: UART Configuration Register 2) 当PSC位为1的时候,预分频系数是32,当这一位为0的时候预分频系数是31.一个ETU的时间内的时钟周期数等于(预分频系数 XPDR)。 如果 CKU (clock UART)置位,每个ETU的时钟周知数变为预分频系数XPDR)的一半。 如果 AUTOCONV置位的话,传输字节的方向约定(先传MSB还是LSB)由UCR中的CONV决定。如果这个位被清零的话,UCR中的SS被
置位后的接收的第一个字节的的内容决定方向约定。 Synchronous/Asynchronous (SAN)被软件置位的话意味着连接的是同步卡片(新的iso7816不再支持同步的卡片,只支持异步通信的卡 片)这种情况下时钟由CCR中的SCbit来控制。 Power-down mode (PDWN)被置位的时候,晶振停止运行。这种模式可以降低功耗。这种模式下不能改变CSR所选择的卡片。有5中退 出此模式的方法: 1.插入1号或者2号卡。 2.取出1号或者2号卡。 3.CS引脚重新变低(假设进入Power-down模式后CS引脚变高了 )。 4.如果INTAUXL的中断功能没有被禁止,INTAUX引脚状态发生变化。 5.如果CS引脚是固定在低电平的,软件复位PDWN。 上面五个字、事件之一发生的时候TDA8007B都会推出掉电模式,并且将INT引脚拉低。MCU应该读取MSR来清除中断(CS变化唤醒的 方式不用清中断)。 如果禁用AUX中断位(DISAUX)被置位, INTAUX引脚上的变化不会引发中断(但是 HSR中的INTAUXL位仍然会置1;因此在将DISAUX 位清零之前应该先读HSR来避免中断)。为了在更换卡片期间引发中断,应该将两个卡片的UCR2的DISAUX位都置1。 如果禁用TBE/RBF中断位 (DISTBE/RBF)被置1,接收和传输一个字节不会再引起中断: •这个特性可以增加和卡片通信的速率;在MSR和USR中都有一个TBE/RBF位,这两个位的功能是一样的,区别在于USR中的会引发中 断。因此,在禁用 TBE/RBF中断之后,发送和接收过程中必须不断查询MSR中的TBE/RBF位来判断是否可以发或者接收数据。不能读 取USR,这会清除USR中其它种类的中断。 •保护时间寄存器( Guard Time Register)用来存储卡片复位应答(ATR)中给出的保护时间的ETU数,UART在发送存储在UTR中的数 据之前会等待保护时间寄存器中指定的ETU数。在T=1协议中,GTR=FF意味着11个ETU;在T=0中,GTR=FF意味着12个ETU。 •UCR中的数用来配置UART。 GTR和UART配置寄存器1(UCR1) 方向约定位 (CONV)置1意味着正向约定。如果UCR2中的AUTOCONV置1的话,CONV位由软件来设定,否则由硬件根据卡片的复位应答 来填充。 SS位必须在复位应答之前设置为1,这样才能自动检查方向约定和过早的应答(early answer ,影响USR中的EA位)。在接收到正确的 初始化字节(复位应答的第一个字节)之后,软件必须将本位清零。 最后传输字节位(Last Character to Transmit:LCT)必须由软件在将最后一字节写入UTR之前置1。它可以使TDA8007在传输完最后一 字节后自动转到接收模式。传输完成后,本位被硬件复位为0。 传输/接收状态位(T/R)置位意味着进入发送模式,可以由软件来操作。这一位从0变到1(从接收模式变为发送模式)将会是USR中的 TEB置1。如果在传输最后一字节前LCT被置位了,T/R会被硬件自动清零(发送完最后一字节进入接收模式)。 协议类型位(PROT)设为1意味着使用T=1协议,否则使用T=0协议。 流控位(FC)设位1意味着使用流控。 强制反转校验位( Force Inverse Parity :FIP)置1意味着UART将会在接收到正确校验字节的情况下发送校验错误位( NAK ),并且 作为发送方时发送字节的校验位置为错误的方式。说白了,这个bit反转了检验方式(奇/偶)。 时钟配置寄存器(CCR:Clock Configuration Register) • 对于1号卡和2号卡,CCR定义了被选中的卡片的时钟。 • 对于1、2、3号卡,CCR定义了UART的时钟。 如果是异步通信的的卡片的话,CST位定义时钟信号是否停止(指CLK引脚上的信号)。 如果SHL=0并且CST置位,CLK引脚停在低电平上,SHL=0的话就停在高电平上。 如果CST被清零的话,CLK引脚的信号由AC1、AC2、AC3决定。频率的变化是同步的,这就保证没有尖峰信号和不期望的脉冲宽度出现 (yll:频率变化的同步体现为整数个周期结束后才变为另一个频率,因此不会出现比较窄的脉冲)。 CLK引脚的输出频率和AC123的对应关系如图(其中XTAL是晶振频率,fint是升压转换器( Step-up converter)的内部晶振频率,典型值是2.5M):
当从XTAL/n切换到1 ⁄ 2fint,只需要改变AC2(AC1和AC0必须保持不变),反之亦然。当从XTAL/n或者 1 ⁄ 2fint切换到CLK时钟通知的模 式,只有CST和SHL必须改变,反之亦然。 当从XTAL/n切换到1 ⁄ 2fint,从改变寄存器到频率改变的延时最多为200us,反之亦然。( 1 ⁄ 2XTAL 和 1 ⁄ 2fint之间的切换速度是最快 的, 1 ⁄ 8XTAL 和 1 ⁄ 2fint之间切换的时候占空比是最好的 ) 在从掉电模式(Power-down mode)重新激活之前,必须等待200us以上。 SC是用于同步通信卡片的。 电源控制寄存器:Power Control Register (PCR) 电源控制寄存器控制以下功能: • 对话的开始和结束 • 读写卡片的的C4和C8引脚 • 只有1号和2号卡片有PCR寄存器,3号卡片没有。 如果START位被置1,被选中的卡片就会被激活,如果被清零的话,被选中的卡片被停活。紧急停活后START被自动复位。 3 V/5 V这一位选择VCC的电压,1选则3V,否则选择5V。 激活卡片的时候,RST引脚上是RSTIN的值。 1V8被置位的话则选择VCC是1.8V。 写入PCR的时候,C4的值将会被输出到C4引脚,C8的值将会输出到C8引脚。读取PCR的时候,这两位反应对应引脚上的值。 和 是卡片的模电电源, 为卡片的其它部分供电。内部集成的尖峰抑制装置可以保证已 。其中 和 和 、 、 电压过低而不能保证TDA8007的正常操作的时候,电压监控器(The voltage supervisor)会产生一个警告脉冲,脉冲的宽度受 电源(Supply) TDA8007B正常操作的电压范围是2.7V~6V。电源引脚是 由于升压转换器和卡片可能引起电流尖峰,它必须被去耦。 经连接的卡片在上电和掉电的过程中处于非活动状态(yll:即不会因为尖峰的影响而意外激活卡片)。 当 DELAY引脚上的电容容量影响(典型值是1nf电容的时候脉宽1ms)。 电压警告脉冲可以用来作为系统控制器的复位信号(信号从 RSTOUT引脚输出,高电平有效)。它也可以用于阻止控制器复位期间卡 片接口上产生噪音,或者在系统掉电的时候强制停活卡片。 上电以后或者 候,中断引脚INT一直有效。 如果需要,TDA8007可以被 电压监控的时序如下: 电压过低都会使HSR中的SUPL位置1。当电压金高脉冲无效之后读取HSR会复位SUPL。RSTOUT引脚信号有效的时 放电时序所复位。 升压转换器(Step-up converter) TDA8007的电源主要由 话的时候,序列发生器首先使能升压转换电路。升压转换电路是开关类型的电源,时钟源是内部晶振产生的2.5M信号。 提供。当电源电压是2.5V的时候,需要更高的电压来进行正常的ISO连接,当MCU发起与卡片的对 、 假设VCC是VCC1和VCC2的最大值,则有以下四种可能的情况: • • • • ,升压电路输出4.0V. 升压电路输出5.5V. 升压电路输出5.5V. 升压电路输出5.5V. ISO7816的安全性 激活和停活期间的正确时序由两个特定的时序发生器来完成,它们的时钟源是内部的晶振。 只有在卡片插入(PRES引脚状态是高)的情况下才能激活卡片(PCR1/PCR2中的START位置高),同时要求电源电压在合理范围内 (电源监视器没有工作)。 MCU可以从HSR寄存器读取卡片插拔变化的标志位。 MSR中的PR1和PR2两位在卡片插入的情况下被置1,如果PR1和PR2变化了,HSR中的PRL1和PRL2被置1。在会话期间,如果某个卡片被 意外移除或者短路,序列发衡器会进行紧急停活操作。在电压过低或者过高的情况下,两个卡片都会被自动停活,同时更新HSR的内容 并将INT引脚置低,这时MCU就可以觉察到这种变化(通过中断)。
激活序列(Activation sequence) 当激活卡片的时候,VCC\CLK\RST\C4\C8和IO都是低电平。升压转换器停止工作。 当所有的条件都具备(电压合理,卡片插入,没有其它硬件问题),MCU便可以启动针对某个卡片的激活序列了。 选择好了卡片并初始化UART之后,配置定时计数器和PCR中的START位(t0时刻): • 启动升压转换器(t1时刻)。如果已有卡片被激活,那么升压转换器应该已经启动,此时什么也不要做。 • VCC开始上升(t2时刻),从0V变为5V或者3V。电压变化的速度是0.17 V/µs (典型值) • IO引脚电压变为VCC(t3);如果PCR的C4/C8位被置位了,C4/C8引脚也会变为高电平(内部是一个上拉到VCC的10kΩ电阻)。 • CLK引脚开始输出时钟信号,RST开始有效(t4时刻)。 当超市定时器超时以后,软件应该将RSTIN设置为1,接着RST引脚也会变为高电平(电压为VCC)。 这个时序被1 ⁄ 64fint的时钟所驱动,周期是 t = 25 µs (typ.)。t1 = 0到 1 ⁄ 64t, t2 = t1 + 3 ⁄ 2t,t3 = t1 + 7 ⁄ 2t and t4 = t1 + 4t. 停活序列(Deactivation sequence) 当会话结束的时候,MCU可以复位PCR中的START位(t10时刻)。TDA8007会自动实现停活的时序: • 卡片复位:RST引脚置低(t11时刻)。 • CLK停止时钟输出 (t12) • I/O, C4和C8电平降为0。 • VCC电平降为0,速度0.17 V/µs (t14)。 • 升压转换器停止工作. t11 = t10 + 1 ⁄ 64t, t12 = t11 + 1 ⁄ 2t, t13 = t11 + t, t14 = t11 + 3 ⁄ 2t 和t15 = t11 + 7 ⁄ 2t. tde是VCC降低到0.4V以下需要的时间。
分享到:
收藏