⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untitled document.htm

📁 内附IC读卡器设计方案,该设计使用89C52和MCM200,里面有详细的设计过程及程序代码,相信有一定IC卡经验
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0064)http://www.flyring.com.cn/chinese/UploadFiles/20044216136383.htm -->
<HTML><HEAD><TITLE>Untitled Document</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2920.0" name=GENERATOR></HEAD>
<BODY background="" bgColor=#ffffff text=#000000>
<DIV align=center>
<P><BR><BR><FONT color=#0000ff><BR><B>关于非接触式IC智能(射频)卡及其读写设备内核技术的研究与应用开发(连载4) 
</B></FONT></P>
<P><FONT color=#0000ff>作者: 上海华东磁记录电子公司 张敏 <BR></FONT></P>
<TABLE border=1 borderColor=#ff6600 height=350 width="80%">
  <TBODY>
  <TR>
    <TD>
      <DIV align=center><BR><BR>  在上述表中,仅当DV(Data Valid数据有效)位被设置有效时(即DV=”1”) 
      ,TE,PE,CE,BE及AE标志才有效。但有一例外,即 
      当认证(Authentication)正确完成后,AE标志也直接有效。<BR>  SOR是Software 
      Reset(软件复位)的缩写。当执行SOR后,所有的这些标志将被清除,且当对MCM的任何一个寄存器执行写周期时,所有的这些标志也将被清除。详见SOR后的复位表。<BR>  当对MCM内的任何一个寄存器执行写周期时,所有的这些标志也将被清除;仅当FIFO是空时,DV标志将被写周期清除。<BR>有时侯MCM接收少于8 
      bits(例如 在接收ACK 或NACK时)时,MCM将不影响PE, CE, 及AE标志。<BR>  在MCU与MCM, MCM与Mifare 
      1卡片进行数据通信时,经常会出现各种错误。例如,卡片没能认证(Authentication) 通过, 
      则会使AE出错位置位,等等。<BR>  以下是在检查DV位之后,相关的出错情况,列为下表: <IMG height=294 src="" 
      width=550></DIV>
      <P><BR>  注意,送到卡片上的所有的命令和数据都提供奇/偶校验(parity) 和CRC 检查( 
      但“REQUEST”命令操作除外)。这是由卡片上的ASIC负责检查。</P>
      <P align=center>3、ENABLE 寄存器,地址:02H<BR>  ENABLE 寄存器的设置将影响卡片在通信时对 parity 
      和CRC 的校验。在ENABLE寄存器中有针对 parity 和CRC 校验的复位允许位(reset ENABLE bits)。<IMG 
      height=238 src="" width=572></P>
      <P></P>
      <P>  在对MCM进行编程的开始时,必须对ENABLE寄存器进行写操作,即必须将CE位关闭。仅当执行”Select”命令操作时才打开CE位:<BR>由于MCM在电源接通时或在任何数据通信开始时,都会复位parity 
      和CRC块,因此无须额外地去执行这一操作。</P>
      <P>4.BCNTS 寄存器,地址: 03H</P>
      <P align=center><IMG height=61 src="" width=552></P>
      <P></P>
      <P>  BCNTS是英文Bit-Counter-for-Sending的缩写,意为传送时的位计数器(寄存器)。 
      这里的传送指的是CPU向MCM的DATA寄存器写数据。因此BCNTS寄存器实际上是一个字节发送控制器,它控制了MCU向DATA寄存器中写进的数据字节数目。<BR>  例如,设置BCTRS=10H,则可向MCM的DATA寄存器写进的数据字节数目为2个(8位字长的数据,因为总的bit数目=10H=16D),多余的数据,MCM将不予接收。<BR>  由于BCNTS寄存器是控制向DATA寄存器写数据的字节数目,因此这一操作必须在数据写入DATA寄存器之前完成。使用2进制代码来操作。<BR>  在大量的字节数据被写入DATA寄存器之后,MCM自动地与卡片进行通信。写入DATA寄存器的bits数量由BCNTS寄存器制定,保持。</P>
      <P>5。BCNTR寄存器, 04H</P>
      <P align=center><IMG height=59 src="" 
      width=547><BR>  BCNTR是英文Bit-Counter-for-Receiving的缩写,意为接收时的位计数器(寄存器)。</P>
      <P></P>
      <P>  与BCNTS寄存器相反, 
      BCNTR寄存器控制了MCU读取DATA寄存器的数据字节数目<BR>  例如,设置BCNTR=20H,则可向MCM的DATA寄存器读取的数据字节数目为4个(8位字长的数据,因为总的bit数目=20H=32D),多余的数据,MCM将不予理会。<BR>  由于BCNTR寄存器是控制向DATA寄存器读取数据的字节数目,因此这一操作必须在读DATA寄存器之前完成。使用2进制代码来操作。<BR>BCNTR寄存器中的值将与实际接收到的数据字节相比较,如果有差别,则STACON寄存器中的BE标志被设置。</P>
      <P>6。BAUDRATE 寄存器, 地址: 05H</P>
      <P align=center><IMG height=57 src="" 
      width=547><BR>  BAUDRATE 意为数据传输到卡片上或卡片上的数据传到MCM时通信的位速率。虽然BAUDRATE 
      寄存器的后四位相关与指定的位速率,但是实际有用于MIFARE 1卡的只是最后一位。</P>
      <P><BR>  BAUDRATE 寄存器的设置将直接影响着MCM与Mifare 
      1卡片之间的数据通信速率。<BR>  MCM中有一个时钟发生器。写数据至BAUDRATE 寄存器,可以控制 时钟发生器(CLOCK 
      GENERATOR)。以下是位速率的计算公式:</P>
      <P></P>
      <P>7。TOC 寄存器, 地址: 06H</P>
      <P align=center><BR>  TOC是Time Out Counter ((定)时间溢出记数器 ) 
      的缩写。<BR>Zhang28<BR>  TOC 寄存器中的值 (非零值) 将在 
      没有通信时,永久地被递减。因此,在没有通信时,或通信刚结束时,TOC 寄存器中的值必须被设置,即设置TOC = 0x00H. 例如: 
      在FIFO中的数据有效时,就必须这样做。否则将影响STACON寄存器的TE出错标志。<BR>  如果有溢出出现,则TE标志被设置,DV标志被激活。<BR>  在完成写数据到DATA寄存器,定时溢出记数器 
      应该经常被初始化。但有个例外,即 在认证操作(AUTHENCATION)的开始时段,定时溢出记数器 应该在存取“KEYSTACON” 
      和“KEYADDR”寄存器 之后,在存取DATA寄存器之前 
      被初始化。<BR>  一般地在读取(Read)和保存(save)了STACON寄存器中的数据之后 定时溢出记数器必须被关闭。</P>
      <P>8.MODE寄存器, 地址: 07H</P>
      <P align=center><IMG height=158 src="" width=526><BR>  MODE 
      意为在与卡片数据相互往来时的数据编码模式 (MODE of DATA 
      coding)。MODE寄存器的设置控制了MCM在与卡片数据相互通信时的数据编码模式.<BR>  MODE寄存器的每一位都与数据通信模式有关,但在使用MIFARE 
      1卡时,只有最后3 位(BITS)最为关联。</P>
      <P></P>
      <P>  MODE 寄存器 中的P2 ,P1 ,及P0位决定了在NPAUSE0 和NPAUSE1引脚上的各自的脉冲宽度。脉冲宽度的可变范围在 2 ~ 
      3 us 之间。<BR>  在使用MIFARE卡时,P2 ,P1 ,及P0位应被设置为 111 b 或110 b。 
      <BR>  这里必须提醒读者注意的是,当我们使用CM200(Philiphs产品)时与使用SB201(UniVision Engineering 
      Limited联视工程有限公司的产品)时,MODE 寄存器的设置值将不一样。 <BR>  使用CM200(Philiphs产品)时, MODE 
      寄存器的设置值应为: “1100 0110b”,即C6H,但在使用SB201(UniVision Engineering 
      Limited联视工程有限公司的产品)时, MODE 寄存器的设置值应为: “1101 
      0110b”,即D6H。这是两个产品唯一存在的硬件上的不兼容,导致软件的设置值不同。 
      否则由于数据通信时的数据编码模式不相同,MCM将不能正常工作,不能读/写Mifare 1卡片。在实际应用中已有此经验教训。</P>
      <P>9. CRCDATA 寄存器, 地址: 08H<BR>  被计算CRC的数据必须被写入CRCDATA寄存器中。 
      计算后的CRC必须从CRCDATA 寄存器中读出。</P>
      <P></P>
      <P>  在写入一个BYTE(字节)到CRCDATA 
      寄存器后,计算将开始。计算完成后,STACON寄存器的CV标志被设置。当我们要写下一个字节到CRCDATA 
      寄存器之前,或在读取CRCDATA寄存器以得到CRC之前,或在检查CZ标志之前,都必须先读取CV标志,检查CV标志。(待续)<BR><BR><BR>来源: 
      《金卡工程》2000.5 <BR><BR></P></TD></TR></TBODY></TABLE><BR></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -