一种无驱动RFID阅读器的USB固件程序设计

来源:本站
导读:目前正在解读《一种无驱动RFID阅读器的USB固件程序设计》的相关信息,《一种无驱动RFID阅读器的USB固件程序设计》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《一种无驱动RFID阅读器的USB固件程序设计》的详细说明。
简介:采用USB控制芯片PDIUSBD12和微控制器AT89S52构成的硬件平台,简化了RFID阅读器与PC之间的数据传输。基于HID1.1协议的程序设计将RFID阅读器枚举为PC的一个外接HID键盘,省去驱动程序的安装。只要打开记事本就能记录电子标签的EPC、TID等特征信息,可满足快速发展的RFID产业对RFID阅读器多样性的需求。

引言

市面上大多数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阅读器的USB固件程序设计

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阅读器的USB固件程序设计

3.2程序设计

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

一种无驱动RFID阅读器的USB固件程序设计

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

一种无驱动RFID阅读器的USB固件程序设计

3.3 程序运行结果

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

一种无驱动RFID阅读器的USB固件程序设计

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

一种无驱动RFID阅读器的USB固件程序设计

结语

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

提醒:《一种无驱动RFID阅读器的USB固件程序设计》最后刷新时间 2024-03-14 00:54:12,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《一种无驱动RFID阅读器的USB固件程序设计》该内容的真实性请自行鉴别。