工控网首页
>

应用设计

>

RFID阅读器与PC之间的数据传输简化设计

RFID阅读器与PC之间的数据传输简化设计

2013/11/20 13:34:19
引言

  市面上大多数RFID阅渎器采用串口或PS2接口与PC通信,串口方式需要安装USB转串口驱动,PS2接口不支持热插拔。为了弥补以上两者的缺陷,本文提出了采用USB接口与PC通信的方式。HID类设备是应用最广泛的一类USB设备,Windows等操作系统内嵌的HID类驱动程序、键盘、鼠标等通用HID设备得到了广泛的应用。从Windows98操作系统开始,为HID类设备提供了通用的驱动程序,所以只要按照HID设备类的规范编写设备的固件程序,就能够让Windows系统自动识别设备,省去了复杂的驱动程序编写过程。

  1 HID设备描述符

  在USB中,USB HOST通过各种描述符来识别设备。HID设备描述符包含5个USB基本描述符(设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符)和3个HID设备类特定描述符(HID描述符、报告描述符、实体描述符),它们之间的关系如图1所示。

RFID阅读器与PC之间的数据传输简化设计--物联网世界网

  2 HID设备枚举

  USB主机识别一个USB设备必须经过枚举过程,主机使用总线枚举来识别和管理设备状态的变化。总线枚举过程如下:

  ①连接设备。USB设备接入USB总线。

  ②设备上电。USB设备可使用USB总线供电,也可使用外部电源供电。

  ③主机检测到设备,发出复位。设备连接到总线后,主机通过检测设备在总线的上拉电阻,检测新的设备连接,并判断该设备是全速设备还是低速设备,然后向该端口发送一个复位信号。

  ④设备默认状态。设备要从总线上接收到一个复位信号后,才可以对总线的处理操作作出响应。设备接收到复位信号后,就使用默认地址(00H)来对其进行寻址。

  ⑤地址分配。当主机接收到有设备对默认地址(00H)响应的时候,就对设备分配一个空间地址,以后设备就只对该地址进行响应。

  ⑥依次读取HID设备的设备描述符、配置描述符、接口描述符、HID描述符、端点描述符、字符串描述符。

  3 HID接口固件设计与实现

  3.1 硬件连接

  PDIUSBD12是一个纯粹的USB接口芯片,仅处理USB通信,自身不带微控制器,需要有一个微控制器对它进行控制。微控制器AT89S52与PDIUSBD12的连接如图2所示。ALE接低电平表示一个独立的地址和数据总线配置。PDIUSBD12的A0引脚控制PDIUSBD12的命令和数据状态。AT89 S52的地址和数据总线可直接与PDIUSBD12的数据总线相连。

RFID阅读器与PC之间的数据传输简化设计--物联网世界网

  3.2 程序设计

  PDIUSBD12接收主机的建立包时产生一个中断,微控制器响应中断,然后通过读PDIUSBD12的中断寄存器决定数据包是发送到控制端点还是普通端点。如果数据包是送往控制端点,微控制器通过读PDIUSBD12最后处理状态寄存器。进一步确定数据包是否是一个建立包。然后进入到控制端点输入或输出服务子程序。具体程序流程如图3所示。其中,USB没备的枚举过程由控制端点来完成,传入主机显示的数据由普通端点完成。

RFID阅读器与PC之间的数据传输简化设计--物联网世界网

  由于程序中将设备枚举为HID键盘,所以传输时应满足HID键盘的要求,例如在HID键盘的端点描述符中卢明,主机每10 ms之内响应一次设备,所以每传输一个数据必须等待10 ms才能传下一个,如果两次传输相同的数据,必须在其中插入一个空包(00,00,00,00,00,00,00,00),否则主机会认为只传输一个数据。键盘码详见HIDUsage Tables,数据包由8个字节构成,前两个字节为0,后面为键值,每一个字节表示一个按键。理论上一次可以传输6个按键,但是实验过程中丢失键值经常发生,所以只采用第3个字节传输,其余字节为0。

  3.3 程序运行结果

  设备枚举为HID键盘如图4所示,成功将设备枚举成HID键盘。

RFID阅读器与PC之间的数据传输简化设计--物联网世界网

  首先利用RFID阅读器的桌面DEMO程序给标签的USER区写入验证的数据,然后利用阅读器将写入的数据读取,经过HID方式传送到记事本上,数据传输如图5所示。

RFID阅读器与PC之间的数据传输简化设计--物联网世界网

  结语

  本设计满足了RFID阅读器传输数据量不大,速度要求不高,但必须在短时间内作出响应的要求。设备无须编写驱动程序,连接PC后就能工作,缩短了开发的时间。

投诉建议

提交

查看更多评论
其他资讯

查看更多

自动化机床的故障排除技术浅析

安川焊接机器人编程

ABB机器人控制软件RobotWare应用手册SafeMove(英文)

ABB IRB7600 机器人维护信息

ABB IRC5P机器人培训教材