用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

ENC28J60和AS3990的网络UHF读写器设计

来源:中国一卡通网  作者:  发布时间:2012-08-10 08:54:23  字体:[ ]

关键字:读写器  射频识别  芯片  UHF读写器  

摘   要:本文以射频识别芯片AS3990为基础,描述了基于网卡芯片ENC28J60的网络读写器的硬件和软件设计方案,使得读写器可以直接连入因特网,进行远程数据获取和参数配置,增强了UHF读写器的实用性。

  引言

  物联网产业的兴起为RFID技术的发展和广泛应用带来了契机。超高频(UHF)读写系统凭借其读取距离远、读写速度快、并发读取标签数多、标签价格低廉等优点,将成为RFID领域未来研究和发展的热点。但目前国内市场上UHF读写器种类较少,接口单一,使用时难以摒弃传统的读写器加PC机操作模式。这些缺点限制了UHF读写器的大量使用,尤其是在物流这类需要远程物品识别和信息获取的场合。本文以射频识别芯片AS3990为基础,描述了基于网卡芯片ENC28J60的网络读写器的硬件和软件设计方案,使得读写器可以直接连入因特网,进行远程数据获取和参数配置,增强了UHF读写器的实用性。

  1 硬件设计

  读写器总体设计框架如图1所示。主控制器采用基于ARM7TDMIS内核的控制器LPC2138,该芯片具有32 KB的片内SRAM和512 KB的片内Flash存储器。外部接口丰富,能够很好地满足读写器设计的要求。采用射频芯片AS3990实现了ISO180006C(即EPC GEN2)协议中要求的标签交互,并为外部控制器提供两种接口访问方式。控制器只需发送简单的控制和配置命令,AS3990即可完成与电子标签的交互过程。ENC28J60是兼容IEEE802.3的10M以太网网卡芯片,它通过SPI口与控制芯片实现数据交换。电源模块采用电源芯片EZ10853.3为各个模块提供稳定的3.3 V直流供电。 



  图1 读写器总体设计框架

  1.1 射频芯片接口电路

  AS3990是Microsystems公司研制的一款用于超高频RFID读写器的符合ISO180006C标准的专用射频芯片。其内部集成了接收电路、发送电路、协议转换单元、控制接口等部分,用户只需外接少量的射频电路即可完成读写模块的功能设计。 

  AS3990可以通过并行接口或串行SPI接口与主控制器LPC2138进行交互。射频芯片接口电路如图2所示。IO0~IO7用于并行接口,其中IO6和IO7也可用于SPI口的数据发送;引脚CLK作为SPI接口的时钟线使用;EN引脚为AS3990的使能引脚;IRQ为AS3990中断引脚。 



  图2 射频芯片接口电路

  为了降低相位噪声对读写性能的影响,电路中使用了外部压控振荡器(VCO)。VCO的输出连接在EXT_IN引脚上。另一方面,AS3990通过CP脚控制压控振荡器。20 MHz的温度补偿型石英晶体谐振器TCXO连接在OSCO引脚上,作为基准振荡器,这样可以进一步提高芯片的稳定性。

  由于AS3990内部未集成功率放大器,所以需要外接功率放大器PA.当使用外接PA模式时,经AS3990调制后的射频信号在RFONX和RFOPX输出,两路射频信号经过平衡/不平衡变换器转换为单路射频信号后进入PA进行功率放大。AS3990的模拟输出引脚DAC用于控制PA的增益。环形器用于将发送通路和接收通路隔离。同样,接收到的射频信号经过平衡/不平衡变换器转换为两路差分信号,AS3990内部解调电路对两路信号解调得到数据。

  1.2 网卡芯片接口电路

  ENC28J60是Microchip公司生产的28引脚独立以太网控制器,它内置了10 Mbps以太网物理层器件和介质访问控制器,符合IEEE 802.3标准,特别适合于嵌入式设备的入网解决方案。ENC28J60通过SPI接口与控制器LPC2138交互,网卡芯片接口电路如图3所示。SO、SI、SCK为SPI接口的3条总线,CS为ENC28J60的片选信号,中断信号INT和WOL分别连接到主控制器的EINT3和EINT1上。芯片ENC28J60的2条差分接收引脚TPIN和2条差分发送引脚TPOUT外接在一个1:1脉冲变压器上,脉冲变压器输出接至网口座上。 



  图3 网卡芯片接口电路

  2 软件设计

  网络读写器软件设计包括μC/OSII移植、LwIP协议栈移植、网卡驱动程序和上层应用程序的编写4个部分。软件设计整体框架如图4所示。 



  图4 软件设计整体框架 

  2.1 μC/OSII移植

  操作系统移植是LwIP协议栈移植和应用程序编写的基础[3],其在LPC2138上的移植内容包括:

  ① 完成操作系统所需的基本配置和数据类型定义、开关中断函数文件OS_CPU.H的编写。

  ② 在文件OS_CPU.C完成堆栈初始化函数OSTaskStkInit()函数,并根据自身需求编写相关Hook函数。

  ③ 利用文件OS_CPU_A.S完成启动最高优先级任务的函数OSStartHighRdy、任务切换函数OSCtxSw、中断级任务切换函数OSIntCtxSw、系统时钟中断服务函数OSTickISR的编写。 

  ④ 初始化定时器0,为系统提供时钟。 

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖