微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频识别(RFID) > 基于ENC28J60+AS3990的网络UHF读写器设计

基于ENC28J60+AS3990的网络UHF读写器设计

时间:12-22 来源:中国一卡通网 点击:
物联网产业的兴起为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,为系统提供时钟。

  2.2 LwIP协议栈移植

  ① 完成LwIP协议内部使用的数据类型的定义,如u8_t、s8_t、u16_t、u32_t等。这样使得协议栈内部使用的数据类型不再受移植平台处理器和编译器的影响,增强了协议栈的可移植性。移植时,根据编译器和移植平台事先定义好这些数据类型,定义如下:

  

\

 

② 定义临界区保护函数用于开关中断,定义结构体封装宏以避免编译器地址自动对齐。LwIP的实现基于这样

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top