![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测 . 技术文库 . 会员区 . 开发板 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| 用TCP/IP通信的射频一卡通系统设计 | |||||
作者:曾鹏程 陈… 文章来源:电子技术应用 点击数: 更新时间:2008-4-23 ![]() |
|||||
|
系统分为两个子系统,即嵌入式TCP/IP子系统和射频IC卡读卡子系统。嵌入式TCP/IP子系统使用一个简化的TCP/IP协议栈,易于在 1 嵌入式TCP/IP子系统 本子系统主要负责与上位机的通信。下面介绍其结构设计和简化的TCP/IP协议栈。 1.1 嵌入式TCP/IP子系统的结构设计 本子系统的结构如图1所示。系统主控芯片为AT89S52单片机,选用IS61C256AH芯片外部扩展32KB SRAM。单片机与片外RAM的接口:P0[0..7]经74HC373锁存低8位地址,再接到SRAM的[A0..A7];P2[0..6]接SRAM 的[A8..A14];P2.7接SRAM的CE,当P2.7为低电平时,SRAM使能;P3.6和P3.7分别接SRAM的WE和OE,作为读写 SRAM的信号,同时P0复用到SRAM的[IO0..IO7]。局域网的以太网控制器使用RTL8019AS。单片机与8019AS的接口:P3.6和 P3.7分别接IORB和IOWB,作为网络芯片的I/O信号;P3.5接RSTDRV,用于网络Reset;P3.3接IOCHRDY,用于网络芯片忙时插入等待时间;P1[0..7]接[SD0..SD7]。由于使用轮询方式,所以IRQ可以不设定,因为I/O Base选择300H,所以IOS0~IOS3悬空。P2[0..4]接[SA0..SA4],SA5..SA7接低电平,P2.7接SA8和SA9, SA10..SA19接低电平,这样就使得P2.7为高电平时,选择网络芯片,同时P2[0..4]为片内寄存器地址。因为没有Memory Read和Write的动作,将SMEMRB和SMEMWB接高电平。因为在发出I/O命令时,地址都会先准备就绪,所以将AEN接低电平。为了使用 jumper进行初始化设定,将JP接高电平。P3.0和P3.1是单片机UART的RX和TX,连接到读卡器子系统。
1.2 嵌入式TCP/IP子系统的简化协议栈设计 由于单片机的资源有限,本子系统针对一卡通系统的要求简化了TCP/IP协议栈,只需实现系统必需的功能即可。TCP/IP协议栈有四个层次,分别为链路层、网络层、运输层和应用层,如图2所示。下面对简化协议栈逐层说明。
(1)链路层协议。10Mbps以太网的帧有以太网帧和IEEE 802帧两种封装格式。根据RFC 1122(即主机需求RFC)的要求,所有主机必须能够发送和接收以太网帧,应该能够接收IEEE 802帧,也许能够发送IEEE 802帧。根据这一要求,本系统设定为能够接收以太网帧和IEEE 802帧,只能发送以太网帧,不能发送IEEE 802帧。由于系统不会在同一主机的不同进程间交换IP分组,所以不支持环回接口(Loopback Interface)。显然SLIP和PPP链路协议也不必支持。在链路层中,每接收到一个帧,都检查其Type field的值,只交付0x0800和0x0806二种Type,丢弃其他的Type。RARP帧的Type为0x8035,因为系统不必支持RARP协议,所以这种帧也不交付。Type为0x0800表示帧中封装了IP分组,Type为0x0806表示帧中封装了ARP分组,这两种帧的分组会被取出,并交付给相应的子程序。 (2)网络层协议。本系统只交付Protocol=1和Protocol=17的分组,其他的Protocol都丢弃,即只支持ICMP和UDP协议;不支持IGMP协议(Protocol=2),相应地也不支持组播(multicast),但支持广播;不支持TCP协议 (Protocol=6)。对于ICMP协议,只支持回显请求和回显应答,即只处理Type=0,Code=0和Type=8,Code=0,其他的 Type和Code丢弃,所以Ping读卡器的IP地址会收到应答。对于Protocol=17的分组,先检查目的地址,如果为广播地址或是本机地址,则取出其中的UDP数据报,交付给运输层,丢弃其他分组。 (3)运输层协议。本系统只支持UDP协议,而且只接收一个指定端口的UDP数据报,丢弃其他端口的数据报。收到要交付的数据报后,取出其中的数据内容,交给应用层子程序。 (4)应用层。根据收到的不同上位机指令,分别进行处理。指令包括:扫描在线的读卡器、设定读卡器地址、同步读卡器时间、读取读卡器容量状态、上载刷卡记录等。 2 射频IC卡读卡子系统 本子系统完成读写射频卡、保存刷卡资料、发出控制开关量等功能。 2.1 读卡子系统结构设计 本子系统选用PHILIPS公司的MF1 IC S50芯片的非接触式IC卡。这种卡的RF接口为ISO/IEC 14443A,工作频率为13.56MHz,内含1KB EEPROM。EEPROM的组成包括16个扇区,每扇区有4个区,每区有16字节。读卡芯片选用PHILIPS公司的MF RC500,这种芯片与
2.2 读卡子系统软件设计 本子系统软件设计包括:对MF1卡进行读写操作;读取和设定时间芯片的日期和时间;保存刷卡资料和设定资料;发送显示信息和发出开关信号等。以下主要介绍MF1卡的读写操作部分。
询卡指令REQA,当MF1卡收到REQA后,会用ATQA回答,ATQA由两个字节组成,其中b7和b8表示UID的大小,b1~b5为防碰撞位,其他位为0。若RC500收到ATQA,则表示在天线的工作区有卡存在。此后进入防碰撞循环。 防碰撞循环开始时,并不知道UID,所以RC500发送cascade level 1 的select code,并指定NVB= 20。此时MF1卡要回复自己的UID。如果没有碰撞,则RC500会收到完整的4字节UID,否则,用碰撞发生位置更新NVB的值,重发指令,直到收到完整的4字节UID。然后RC500再用这个select code,并设NVB=70,加上4字节UID,发给MF1卡。MF1卡将收到的UID与自己的UID比较,如果相同,则回复SAK。此时RC500检查 SAK。如果b3为1,则表示UID不完整,RC500将cascade level加1,重新循环,直到收到的SAK b3为0,才表示Select完成。此后进入认证阶段。 进行认证之前,必须先用RC500的LoadKeyE2或LoadKey指令将密码装载到RC500的Key Buffer中,然后对指定的扇区发出Authent1指令和Authent2指令。如果认证通过,则可进入读写阶段。 在读写阶段,RC500可以通过写本扇区的Sector Trailer来修改此扇区的密码和存取条件,也可以根据存取条件对本扇区的Data Block进行读、写、增、减、恢复和转移。 本设计在局域网和广域网中使用方便。经过反复测试,系统性能稳定、可靠。 参考文献 1 W Richard Steven.TCP/IP Illustrated Vol 1、2、3.AddisonWesley,1996 |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 没有相关文章 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|