EP1872598A2 - Rfid reader operating system and associated architecture - Google Patents

Rfid reader operating system and associated architecture

Info

Publication number
EP1872598A2
EP1872598A2 EP06750968A EP06750968A EP1872598A2 EP 1872598 A2 EP1872598 A2 EP 1872598A2 EP 06750968 A EP06750968 A EP 06750968A EP 06750968 A EP06750968 A EP 06750968A EP 1872598 A2 EP1872598 A2 EP 1872598A2
Authority
EP
European Patent Office
Prior art keywords
layer
application
api
driver
framework
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP06750968A
Other languages
German (de)
French (fr)
Other versions
EP1872598A4 (en
Inventor
Sean T. Loving
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SkyeTek Inc
Original Assignee
SkyeTek Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/301,423 external-priority patent/US20060238303A1/en
Priority claimed from US11/301,770 external-priority patent/US20060238305A1/en
Priority claimed from US11/301,587 external-priority patent/US20060238304A1/en
Priority claimed from US11/301,396 external-priority patent/US20060238302A1/en
Priority claimed from US11/328,209 external-priority patent/US20060253415A1/en
Priority claimed from US11/387,422 external-priority patent/US20070046431A1/en
Priority claimed from US11/387,421 external-priority patent/US7659819B2/en
Application filed by SkyeTek Inc filed Critical SkyeTek Inc
Publication of EP1872598A2 publication Critical patent/EP1872598A2/en
Publication of EP1872598A4 publication Critical patent/EP1872598A4/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/0008General problems related to the reading of electronic memory record carriers, independent of its reading method, e.g. power transfer

Definitions

  • RFID stands for Radio-Frequency IDentification.
  • An RFID transponder or 'tag', serves a similar purpose as a bar code or a magnetic strip on the back of a credit card; it provides an identifier for a particular object, although, unlike a barcode or magnetic strip, some tags support being written to.
  • An RFID system carries data in these tags, and retrieves data from the tags wirelessly. Data within a tag may provide identification for an item in manufacture, goods in transit, a location, the identity of a vehicle, an animal, or an individual. By including additional data, the ability is provided for supporting applications through item-specific information or instructions available on reading the tag.
  • a basic RFID system includes a reader or 'interrogator 1 and a transponder (RF tag) electronically programmed with unique identifying information. Both the transceiver and transponder have antennas, which respectively emit and receive radio signals to activate the tag, read data from the tag, and write data to it.
  • An antenna is a feature that is present in both readers and tags, and is essential for the communication between the two.
  • An RFID system requires, in addition to tags, a mechanism for reading or interrogating the tags and usually requires some means of communicating RFID data to a host device, e.g., a computer or information management system.
  • the antenna is packaged with the transceiver and decoder to become a reader (an 'interrogator 1 ), which can be configured either as a handheld or a fixed-mount device.
  • the reader emits radio waves in ranges of anywhere from one inch to 100 feet or more, depending upon its power output and the radio frequency used.
  • an RFID tag passes through the electromagnetic zone (its 'field') created by the reader, it detects the reader's activation signal.
  • the reader decodes the data encoded in the tag's integrated circuit and the data is often passed to a device (e.g., a computer) for processing.
  • Two methods distinguish and categorize RFID systems, one based upon close proximity electromagnetic or inductive coupling, and one based upon propagating electromagnetic waves. Coupling is via 'antenna' structures forming an integral feature in both tags and readers. While the term 'antenna' is generally considered more appropriate for propagating systems it is also loosely applied to inductive systems.
  • the word transponder derived from TRANSmitter/resPONDER, reveals the function of a tag.
  • a tag responds to a transmitted or communicated request for the data it carries, the communication between the reader and the tag being wireless across the space between the two.
  • the essential components that form an RFID system are one or more tags and a reader or interrogator.
  • the basic components of a transponder are, generally speaking, fabricated as low power integrated circuit suitable for interfacing to an external coil, or utilizing 'coil-on-chip' technology, for data transfer and power generation, where the coil acts as an antenna matched to the frequency supported.
  • Reader/interrogators can differ quite considerably in complexity, depending upon the type of tags being supported and the functions to be fulfilled. However, their overall function is to provide a mechanism for communicating with the tags, providing power to passive tags, and facilitating data transfer. Functions performed by the reader may include signal conditioning, parity error checking and correction. Once the signal from a transponder has been correctly received and decoded, algorithms may be applied to decide whether the signal is a repeat transmission, and may then instruct the transponder to cease transmitting. This is known as a 'Command Response Protocol' and is used to circumvent the problem of reading multiple tags in a short space of time. Using interrogators in this way is sometimes referred to as 'Hands Down Polling'.
  • 'Hands Up Polling' An alternative, more secure, but slower tag polling technique is called 'Hands Up Polling', which involves the interrogator looking for tags with specific identities, and interrogating them in turn.
  • This technique requires contention management, and a variety of techniques have been developed to improve the process of batch reading, including anti-collision techniques.
  • the entire reader firmware module must typically be re-programmed (e.g., 're-flashed', in the typical case where the reader employs flash memory), or, in the case of multiple-processor readers, a relatively large part of the existing reader firmware must still be extensively re-programmed.
  • preexisting RFID readers allow modularity or granularity with respect to the security level of specific modules (drivers / applications, etc.), so that, for example, the code in pre-selected proprietary modules may be kept secure (i.e., remain undecipherable to an unauthorized user/programmer), while the code in other specific modules may be readily re-programmed.
  • RFID reader requirements vary widely from stationary label printers to handheld devices and from forklifts to dock doors. Indeed there remains a problem in the industry that no standard technology can support the spectrum of reader requirements - from power and frequency control, to host interfaces, to tag protocols and standards, as well as the wide variety of price/performance tradeoffs related to read range and rate, physical size, power consumption and cost.
  • a framework structure for controlling an RFID device including a platform comprising an RFID radio.
  • the structure comprises a layered framework including a first layer, with at least one functional module comprising a device driver, communicatively coupled with the platform; and a second layer, with at least one functional module comprising an API, communicatively coupled with the first layer and with an application for controlling the RFID device.
  • the framework structure includes a firmware stratum comprising a tiered plurality of the functional modules, with the stratum being integrated with the layered framework such that each tier of the stratum is layered to functionally correspond to one of the layers in the framework.
  • Figure 1 A is a diagram showing a prior art monolithic RFID reader connected to a host computer
  • Figure 1 B is a diagram showing a prior art monolithic RFID reader including an embedded processor
  • Figure 2 is a diagram of an exemplary embodiment of the present operating system framework for an RFID Reader, showing high-level architecture of the system
  • Figure 3A is a diagram of one embodiment of the present operating system for an RFID Reader showing, more specifically, the layered structure of the system architecture;
  • Figure 3B and Figure 3C are diagrams of one embodiment of the present operating system for an RFID Reader showing system architecture including the orthogonal relationship between the horizontally layered 'firmware stratum' and the vertically layered abstraction structure of the system architecture;
  • Figure 4A is a diagram showing exemplary hardware components which may be included in layer 209 of the present system.
  • Figure 4B is a diagram showing exemplary drivers which • may be included in layer 305 of the present system;
  • Figure 4C is a diagram showing exemplary library functions which may be included in layer 207 of the present system;
  • Figure 4D is a diagram showing exemplary library APIs which may be included in layer 207 of the present system;
  • FIG. 5 is a diagram of an exemplary embodiment of the present operating system for an RFID Reader including an application processor, a signal processor, and a discrete radio device;
  • FIG. 6 is a diagram of an exemplary embodiment of the present operating system for an RFID Reader including an integrated application / signal processor and transceiver;
  • Figure 7 is a diagram of an exemplary embodiment of the present operating system showing modularity and selectively of security with respect to the firmware components of the system;
  • Figure 8 is a flowchart showing an exemplary set of steps performed in initial setup of one embodiment of the present system.
  • Figure 9 is a flowchart showing an exemplary set of steps performed in operation of one embodiment of the present system.
  • the present RFID operating system ('RFID OS') comprises an open-architecture software architecture for RFID readers.
  • the system provides interoperability between generic RFID readers, system services, and applications.
  • the present architecture allows RFID reader functionality to be independent of RFID reader hardware architecture.
  • RFID services are layered on top of the RFID OS.
  • a service handler may facilitate a contactless payment transaction by invoking a particular application functionality via a tag protocol API (application programming interface), which in turn, calls one or more APIs to perform RF communication with RFID tags.
  • tag protocol API application programming interface
  • the present RFID operating system framework includes a layered architecture that can be used with a multiplicity of different RFID reader platforms.
  • the RFID OS framework interfaces with peripheral hardware, and may perform a number of different application functions such as task scheduling, protocol handling, and storage allocation.
  • the framework provides a default software interface between a host processor and an RFID reader when no application program is running on a particular reader.
  • FIG. 1 A is a diagram showing a prior art monolithic RFID reader 101 connected to a host computer
  • Figure 1B is a diagram showing a prior art monolithic RFID reader 102 including an embedded processor.
  • the RFID reader technology consists of monolithic hardwired devices with RFID reader control software/firmware.
  • the term "firmware” is defined as "software that is embedded in a hardware device", and, as used herein, the term implies only the 'software' code in a particular piece of hardware, irrespective of the particular hardware device containing the code.
  • Reader 101 is connected to an external host computer 100, and reader 102 has an embedded processor 105 which functions as a dedicated, fixed-capability host.
  • a host-specific API 103 is typically integral to the readers, and the reader functionality is pre- established and not modifiable by a user, since the functionality is 'buried' inside user-inaccessible firmware in a 'black box' 104.
  • the reader control features and functionality are set at compile time, thus making the readers 101/102 application-specific. Value- added software & middleware cannot be integrated into these existing readers by a typical user, thereby limiting the readers' performance.
  • FIG. 2 is a diagram of an exemplary embodiment 200 of the present operating system environment for an RFID reader, showing high- level aspects of the architecture of the system.
  • the present operating system architecture includes a 'vertical' framework 201 coupled between a host computer 220 (via a communications link 212) and an RFID reader platform 210.
  • platform 210 may be considered as a basic RFID reader / interrogator, minimally including hardware 209 and an RFID 'radio' 214, which may comprise a receiver or a transceiver, depending upon the particular application and type of RFID tag 230 for which the platform 210 is intended.
  • Radio 214 which includes an antenna (not shown), functions to exchange data with RFID tag 230 via RF link 202.
  • Reader platform 210 comprises on-board control software for an RFID reader that can be customized and built upon by third-party developers. This platform enables OEMs to easily RFID-enable new or existing devices.
  • Reader platform 210 may also include an embedded operating system 208, such as Linux or Windows CE. Platform 210 may be coupled to framework 201 via an operating system 208 running on the platform (through interface 204), or via RF communication with RFID radio 214, using an RF link 206. In the latter instance, the platform typically does not include operating system 208.
  • an operating system 208 such as Linux or Windows CE.
  • Platform 210 may be coupled to framework 201 via an operating system 208 running on the platform (through interface 204), or via RF communication with RFID radio 214, using an RF link 206. In the latter instance, the platform typically does not include operating system 208.
  • the present RFID OS vertical framework 201 is integrated with a horizontal firmware stratum (shown in Figures 3B-3C) to support a range of options for use with an RFID reader platform 210.
  • firmware components that can be used independently or in combination, a set of API extensions to embedded operating systems, and a stand-alone operating system for dedicated RFID reader architectures.
  • the vertical framework 201 for the present system comprises three layers, which are effectively situated 'on top of platform 210:
  • a hardware abstraction layer 203 including RFID reader hardware drivers and associated APIs
  • an RFID reader application software interface layer 205 including RFID reader software Libraries and associated APIs
  • an application layer 207 including application software for controlling reader platform 210.
  • FIG. 3A is a diagram of one embodiment of the present operating system for an RFID Reader showing, more specifically, the vertically layered structure of the system architecture.
  • the layered architecture of the present system allows applications and services to access a set of multiple library and driver APIs.
  • driver refers to (a) a program that controls a device, where a 'device' may be considered to be any type of hardware device, or circuit, or (b) another program that performs a function using a predefined protocol or set of instructions.
  • a driver acts like a translator between the device and programs that use the device.
  • framework 201 vertically tiered with respect to RFID reader application software interface layer 205 and hardware abstraction layer 203, both of which are also tiered or layered in a 'vertical' direction between reader platform 210 and application layer 207.
  • the application software interface layer 205 is tiered or divided into two functional sub-layers, a layer 305 including library functions (or modules), and a layer 306 including APIs for interfacing between the library functions and the application layer 207, as indicated by arrow 315 in Figure 3A.
  • library function refers to any software or firmware program code, which, although typically stored with other functions in a 'library', may exist in a context (or layer, in the present system) wherein no library is extant.
  • library function and “library module” are intended to refer to the same type of entity, as a result of the modular nature of the present system architecture.
  • the hardware abstraction layer 203 is also tiered or divided into two functional sub-layers, a layer 303 including hardware and communication device drivers (modules), and a layer 304 including driver APIs for interfacing between the drivers and corresponding library functions in API library function layer 305, as indicated by arrow 313.
  • the RFID OS vertical framework 201 includes an operating system kernel 301 which is always present, and various system programs 325 which use facilities provided by the kernel to perform higher-level 'housekeeping' tasks. Each of the vertical layers in the present system is described in greater detail immediately below.
  • the RFID operating system vertical framework 201 may be viewed as resting on top of the reader platform layer 210.
  • platform 210 includes hardware, plus an optional operating system 208 and developer tools 215.
  • a simple platform 210 might use 8-bit microcontroller hardware with no operating system; in this case, modules in RFID OS framework 201 serve as the device operating system.
  • the present system integrates with both the target operating system 208 and the platform hardware 209; in this case, portable RFID OS framework components reside in the different processors, logic blocks and ASICs that comprise a particular platform 210.
  • the open software architecture of the RFID OS framework 201 together with the horizontal layering of the firmware stratum (described below) facilitates integration of RFID radio hardware with most types of processors and OS platforms.
  • FIG. 4A is a diagram showing exemplary hardware components which may be included in platform hardware 209 of the present system. As shown in Figure 4A, these hardware components may include, for example, processor 402, processor main memory 404, cache memory 406, user interface 408, sensors and associated I/O devices 410, and RFID radio 214. Hardware Abstraction Layer / Drivers
  • driver APIs in sub-layer 304 of hardware abstraction layer 203 function as the software interface for the low- level software drivers that directly control reader hardware 209.
  • the driver APIs in sub-layer 304 of layer 203) are platform-independent.
  • the code that implements each driver is, however, platform-specific. Typically, only a small amount of code in each low-level driver requires modification when porting to a new platform.
  • the hardware abstraction layer 203 in RFID OS framework 201 provides portability for On- reader' applications, and platform-independence across RFID-enabled devices.
  • FIG 4B is a diagram showing exemplary drivers which may be included in layer 303 of the present system.
  • drivers include RFID radio control functions, peripheral hardware control functions and host interface hardware control functions. More specifically, as shown in Figure 4B, these drivers may include, for example, a user interface driver 414, and communications drivers such as those shown in blocks 416-424.
  • sub-layer 305 of application software interface layer 205 includes a library of functions or modules
  • sub-layer 306 includes one or more libraries of APIs defining the software interface used by an application to access internal RFID reader functionality, via the functions in sub-layer 305.
  • the library APIs 306 are platform-independent, as are the code implementations of the library functions in sub-layer 305.
  • code is used herein to refer to Object code', which is code produced by a compiler from 'source code', usually in the form of machine language that a computer (e.g., a microprocessor) can execute directly.
  • the present system allows the use of multiple APIs for On-device' applications to control device hardware and low-level functionality in a standard manner, regardless of the device- embedded computing platform 210.
  • Such platforms 210 range from DSP architectures to microprocessor cores with an operating system to microcontroller-based devices, sensors and objects, with or without an operating system.
  • Application Layer [0050] Applications in application layer 207, as well as in host 100 /
  • the RFID reader hardware and platform 210 may indirectly access any of the lower layers (205, 203, 210) in the system architecture via a set of APIs 304/306.
  • a set of APIs 304/306 By accessing the RFID reader hardware and platform 210 via the abstraction layers provided by the libraries and drivers, 'on-reader' applications become portable across devices employing the present architecture.
  • This abstraction layering makes third- party-generated RFID reader software and tag protocol libraries independent of the underlying hardware, thus facilitating the integration of embedded computing intelligence into sensors, devices and ordinary objects.
  • hardware abstraction layer 203 may include one or more drivers and no API(s).
  • application software interface layer 205 may include only (one or more) APIs and no library functional modules.
  • an API in layer 305 / 205 directly calls a corresponding driver in layer 303 / 203 to control reader hardware 209.
  • Figure 4C is a diagram showing exemplary library functions which may be included in sub-layer 305 of the present system. Examples of library functions include tag functions, security functions and reader configuration functions, such as those shown in blocks 426-436 of Figure 4C.
  • Figure 4D is a diagram showing exemplary library APIs 438- 448, which may be included in sub-layer 306 of layer 205 of the present system. As shown in Figure 4D, these library APIs generally correspond to counterpart library functions in sub-layer 305.
  • on-reader applications make function calls to library functions, which, in turn, call driver functions which control the reader hardware.
  • application layer 207 of the present system includes one or more of these applications.
  • Figure 3B and Figure 3C are diagrams of one embodiment of the present RFID reader operating system architecture showing exemplary tiers or levels of functionality provided by 'horizontal' firmware layering in a 'firmware stratum' 350.
  • the architecture of the present system is best understood by viewing Figures 3B and 3C in conjunction with one another, wherein the orthogonal relationship between the horizontally layered firmware stratum 350 and the vertically layered abstraction structure 201 (*) [where the asterisk indicates one of a plurality of similar items] of the system architecture is shown.
  • Firmware stratum 350 is a collection of modules, which, when considered as being 'stacked' along a horizontal plane, is positioned orthogonally relative to the vertical layering of framework 201.
  • Each of the layers (tiers) in the firmware stratum is hereinafter termed a "level" 33X (e.g., 331-338) thereof, and each of the levels of the firmware stratum is layered in accordance with the three-tiered scheme 201 shown in Figure 2 and Figure 3A.
  • firmware stratum levels 331- 338 in Figure 3B correspond to levels 201 (1) - 201 (N) in Figure 3C.
  • firmware stratum 350 The orthogonal relationship between firmware stratum 350 and the layering of composite structure 201 (*) is indicated in Figure 3B by the relationship between arrow 350, which shows the 'horizontal' layering of the firmware stratum, and arrow 355, which shows the 'vertical' layering of each of the components or 'levels' of the firmware stratum.
  • Each level 33X of firmware stratum 350 includes one, two, or three modules, the aggregate of which may include an API, a library function (or other functional component), and a driver. Thus, each stratum level 33X is itself layered in the three-tiered scheme of framework structure 201.
  • Table 1 lists specific modules or other functional components that may be included in the firmware stratum 350 in an exemplary embodiment of the present system.
  • each level 33X may be further subdivided into sub-levels, each of which is designated in the Table as being a member of a respective higher level, as indicated in Figures 3B and 3C.
  • FIG. 3 SUB-
  • FIG. 5 is a diagram of an exemplary embodiment of the present operating system architecture 500 for an RFID reader including an application processor 506, a signal processor 504, and a discrete radio device 502.
  • RFID radio software 514 resides in a signal processor (e.g., block 504), digital state machine or both, and application software 518 and radio-specific software 516 reside in a main application processor 506.
  • Software/firmware modules 516 / 518 in application processor 506 communicate with radio software 514 and digital hardware 512 in signal processor 504 via APIs, libraries, and drivers 305/306 and 303/304, as described above with respect to the embodiments of Figures 2-4.
  • the RFID radio hardware comprises separate digital and analog hardware 512, 509, which is respectively split between signal processor 504 and discrete (analog) radio device 502. Accordingly, platform 210 may be considered to overlap with hardware abstraction layer 203, as indicated by respective braces 210 and 203.
  • FIG. 6 is a diagram of an exemplary embodiment of the present operating system architecture 600 for an RFID Reader including an integrated application / signal processor 604 and transceiver 602.
  • the system embodiment shown in Figure 6 is especially suitable for highly embedded RFID applications.
  • applications 605, libraries 607 and drivers 609, along with associated APIs reside within a single microcontroller 604 that controls an integrated transceiver 602 (with both analog and digital hardware 610 / 612) or a discrete analog radio (with analog hardware 610 only).
  • Software/firmware modules and drivers 605 / 607 / 609 in integrated signal processor 604 communicate with digital hardware 612 therein, and also with digital hardware 512 in signal processor 504, via APIs, libraries, and drivers 305/306 and 303/304, as described above with respect to the embodiments of Figures 2-4.
  • the RFID radio hardware comprises separate digital and analog hardware, which may be split between signal processor 504 and discrete (analog) radio device 502, as in the system of Figure 5. Accordingly, platform 210 may be considered to overlap with part of framework 201 , as indicated by respective braces 210 and 201.
  • FIG. 7 is a diagram of an exemplary embodiment of the present operating system architecture showing modularity and selectively of security with respect to the software and firmware components of a reader 700.
  • layers 203, 205, and 207 i.e., all layers of framework 201 have been integrated into an RFID reader.
  • the software/firmware in reader 700 includes proprietary source code (and other information) security capability, as well as secure delivery capability, so that a user can encapsulate code into a software module that may be distributed in a secure manner (i.e., without being copied).
  • proprietary source code and other information
  • secure delivery capability so that a user can encapsulate code into a software module that may be distributed in a secure manner (i.e., without being copied).
  • selected code in software or firmware form
  • the present system architecture allows any specific software/firmware module to have its API known / published, but any module containing API-related code (the code accessed by the API), for example, may remain protected and secure. Other parties can make function calls to the protected functions by making calls to the functions' published APIs.
  • Each of the components within framework 201 is selectively securable at three levels, i.e., at the driver, libraries, API and/or application level. Some components may be open source, and other components may be locked and proprietary so that third parties can use this open architecture framework as a secure delivery vehicle for their code into the market.
  • module 702 in application layer 207 modules 712 and 714 in hardware abstraction layer 203, and modules 722 and 726 in application software interface layer 205 are encrypted so that they remain inaccessible to unauthorized users and other third parties.
  • FIG. 8 is a flowchart showing an exemplary set of steps performed in the initial setup of one embodiment of the present system.
  • application code for an RFID reader is first written; this establishes the desired new functionality.
  • the application makes function calls to library functions in sub-layer 305 of layer 205 (shown in Figure 3A) using particular APIs in sub-layer 306 of layer 205. Since each function is a modular software component, the application may selectively call any of the total available functions. Based on which functions are called by the application, at step 810, only those functions which are called are included, at step 815, for compilation into object code, which is performed at step 820.
  • FIG. 9 is a flowchart showing an exemplary set of steps performed in operation of one embodiment of the present system.
  • an application in layer 207 calls Library layer API 306(23) in vertical framework sub-layer 306 of layer 205 to read the contents of an RFID tag 230, for example.
  • library layer API 306(23) calls 'Read Tag 1 function 305(23) in framework layer 305 / firmware stratum Level 335, sub-level 23 in API Library 305.
  • the 'Read Tag” function 305(23) is shown in Table 1 under the "Fig. 3 Level” heading 335, "Radio Communication Control", at sub-level 33.
  • Steps 905 and 910 of the present example are indicated by arrow 315 in the 'Reader Communication & Control' callout in Figure 3B.
  • the 'Read Tag 1 library function 305(23) calls
  • Read Tag driver API 304(23) calls Read Tag driver 303(23) in driver layer 203, in framework layer 305 / firmware stratum Level 335, sub-level 23 .
  • Steps 915 and 920 of the present example are indicated by arrow 313 in Figure 3B.
  • the Read Tag driver sends a Read Tag command to platform 210, as indicated by arrow 204.
  • the platform sends the Read Tag command to Tag 230, which reads information stored in the tag, and sends information back to the reader, as indicated by arrow 202 in Figure 3B.
  • steps 910 through 925 in the present example are each performed by a module in the same firmware stratum level (i.e., Level 335, sub-level 23).

Landscapes

  • Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Stored Programmes (AREA)
  • Near-Field Transmission Systems (AREA)
  • Transceivers (AREA)
  • Radar Systems Or Details Thereof (AREA)

Abstract

A framework structure (200) for controlling an RFID device including a platform comprising an RFID radio (214). The structure comprises a layered framework including a first layer (207), with at least one functional module comprising a device driver (205), communicatively coupled with the platform; and a second layer (figure 3A), with at least one functional module comprising an API, communicatively coupled with the first layer and with an application for controlling the RFlD device (210).

Description

REPLACEMENT SHEET
RFID READER OPERATING SYSTEM AND ASSOCIATED ARCHITECTURE
RELATED APPLICATIONS
[0001] The present application claims benefit of priority to commonly owned and assigned U.S. Provisional Application Nos. 60/673,692, filed 21 April 2005, and 60/712,957, filed 31 August 2005, and from U.S. Application Serial Nos. 11/301 ,396, filed 13 December 2005; 11/301,423 filed 13' December 2005; 11/301 ,587, filed 13 December 2005; 11/301 ,770, filed 13 December 2005; 11/328,209, filed 09 January 2006; 11/387,421 filed 23 March 2006, and 11/387,422 filed 23 March 2006.
BACKGROUND
[0002] RFID stands for Radio-Frequency IDentification. An RFID transponder, or 'tag', serves a similar purpose as a bar code or a magnetic strip on the back of a credit card; it provides an identifier for a particular object, although, unlike a barcode or magnetic strip, some tags support being written to. An RFID system carries data in these tags, and retrieves data from the tags wirelessly. Data within a tag may provide identification for an item in manufacture, goods in transit, a location, the identity of a vehicle, an animal, or an individual. By including additional data, the ability is provided for supporting applications through item-specific information or instructions available on reading the tag.
[0003] A basic RFID system includes a reader or 'interrogator1 and a transponder (RF tag) electronically programmed with unique identifying information. Both the transceiver and transponder have antennas, which respectively emit and receive radio signals to activate the tag, read data from the tag, and write data to it. An antenna is a feature that is present in both readers and tags, and is essential for the communication between the two. An RFID system requires, in addition to tags, a mechanism for reading or interrogating the tags and usually requires some means of communicating RFID data to a host device, e.g., a computer or information management system. Often the antenna is packaged with the transceiver and decoder to become a reader (an 'interrogator1), which can be configured either as a handheld or a fixed-mount device. The reader emits radio waves in ranges of anywhere from one inch to 100 feet or more, depending upon its power output and the radio frequency used. When an RFID tag passes through the electromagnetic zone (its 'field') created by the reader, it detects the reader's activation signal. The reader decodes the data encoded in the tag's integrated circuit and the data is often passed to a device (e.g., a computer) for processing.
[0004] Two methods distinguish and categorize RFID systems, one based upon close proximity electromagnetic or inductive coupling, and one based upon propagating electromagnetic waves. Coupling is via 'antenna' structures forming an integral feature in both tags and readers. While the term 'antenna' is generally considered more appropriate for propagating systems it is also loosely applied to inductive systems.
Transponders/Tags
[0005] The word transponder, derived from TRANSmitter/resPONDER, reveals the function of a tag. A tag responds to a transmitted or communicated request for the data it carries, the communication between the reader and the tag being wireless across the space between the two. The essential components that form an RFID system are one or more tags and a reader or interrogator. The basic components of a transponder are, generally speaking, fabricated as low power integrated circuit suitable for interfacing to an external coil, or utilizing 'coil-on-chip' technology, for data transfer and power generation, where the coil acts as an antenna matched to the frequency supported.
The Reader / Interrogator [0006] Reader/interrogators can differ quite considerably in complexity, depending upon the type of tags being supported and the functions to be fulfilled. However, their overall function is to provide a mechanism for communicating with the tags, providing power to passive tags, and facilitating data transfer. Functions performed by the reader may include signal conditioning, parity error checking and correction. Once the signal from a transponder has been correctly received and decoded, algorithms may be applied to decide whether the signal is a repeat transmission, and may then instruct the transponder to cease transmitting. This is known as a 'Command Response Protocol' and is used to circumvent the problem of reading multiple tags in a short space of time. Using interrogators in this way is sometimes referred to as 'Hands Down Polling'. An alternative, more secure, but slower tag polling technique is called 'Hands Up Polling', which involves the interrogator looking for tags with specific identities, and interrogating them in turn. This technique requires contention management, and a variety of techniques have been developed to improve the process of batch reading, including anti-collision techniques.
[0007] Current RFID systems require that a tag be in the field of the reader (interrogator), and powered on, in order for a user to, interact with it. Furthermore, current tags are limited to the capabilities inherent in the tag. In multiple tag type environments, an RFID system is typically forced to use the common subset of tag capabilities, and has limited ability to support new or enhanced tags.
[0008] Previous embedded software systems have had limitations including the utilization of static software architectures whose specific software implementations are integral with their application-specific program or functionality. These monolithic implementations are often found in microcontroller-based designs wherein the embedded software or firmware has system resources and performance that are limited by the hardware.
Problem to be solved
[0009] Traditional RFID applications have been closed loop and proprietary. Preexisting RFID readers are controlled by dedicated, closed- architecture, monolithic, embedded software (firmware). In previous RFID readers, features and functionality in the readers are set at compile time, and the readers are typically application specific. These readers do not allow a user or programmer to modify or upgrade only those specific aspects of a reader's functionality (i.e., code sections or modules) which the user/programmer would like to change. Rather, in order to modify segments of code in the reader with any reasonable degree of granularity, the entire reader firmware module must typically be re-programmed (e.g., 're-flashed', in the typical case where the reader employs flash memory), or, in the case of multiple-processor readers, a relatively large part of the existing reader firmware must still be extensively re-programmed. Nor do preexisting RFID readers allow modularity or granularity with respect to the security level of specific modules (drivers / applications, etc.), so that, for example, the code in pre-selected proprietary modules may be kept secure (i.e., remain undecipherable to an unauthorized user/programmer), while the code in other specific modules may be readily re-programmed.
[0010] As markets such as contactless payment and supply chain management emerge, wide-scale adoption of RFID remains inhibited as the industry continues to deliver reader technology as monolithic hardwired devices with inaccessible RFID radio control software. Thus the benefits of RFID have been difficult to implement across a wider set of applications. For example, access control readers and animal scanners cannot be integrated into cell phones, DVD players or medical devices. Furthermore, because RFID readers have been delivered as vertically-integrated 'black-box' technology, software developers have not had access to the inner workings of the readers.
[0011] Even within retail supply chain, RFID reader requirements vary widely from stationary label printers to handheld devices and from forklifts to dock doors. Indeed there remains a problem in the industry that no standard technology can support the spectrum of reader requirements - from power and frequency control, to host interfaces, to tag protocols and standards, as well as the wide variety of price/performance tradeoffs related to read range and rate, physical size, power consumption and cost.
SOLUTION TO THE PROBLEM
[0012] A framework structure is disclosed for controlling an RFID device including a platform comprising an RFID radio. The structure comprises a layered framework including a first layer, with at least one functional module comprising a device driver, communicatively coupled with the platform; and a second layer, with at least one functional module comprising an API, communicatively coupled with the first layer and with an application for controlling the RFID device. [0013] In one embodiment, the framework structure includes a firmware stratum comprising a tiered plurality of the functional modules, with the stratum being integrated with the layered framework such that each tier of the stratum is layered to functionally correspond to one of the layers in the framework.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Figure 1 A is a diagram showing a prior art monolithic RFID reader connected to a host computer;
[0015] Figure 1 B is a diagram showing a prior art monolithic RFID reader including an embedded processor; [0016] Figure 2 is a diagram of an exemplary embodiment of the present operating system framework for an RFID Reader, showing high-level architecture of the system;
[0017] Figure 3A is a diagram of one embodiment of the present operating system for an RFID Reader showing, more specifically, the layered structure of the system architecture;
[0018] Figure 3B and Figure 3C are diagrams of one embodiment of the present operating system for an RFID Reader showing system architecture including the orthogonal relationship between the horizontally layered 'firmware stratum' and the vertically layered abstraction structure of the system architecture;
[0019] Figure 4A is a diagram showing exemplary hardware components which may be included in layer 209 of the present system;
[0020] Figure 4B is a diagram showing exemplary drivers which • may be included in layer 305 of the present system; [0021] Figure 4C is a diagram showing exemplary library functions which may be included in layer 207 of the present system; [0022] Figure 4D is a diagram showing exemplary library APIs which may be included in layer 207 of the present system;
[0023] Figure 5 is a diagram of an exemplary embodiment of the present operating system for an RFID Reader including an application processor, a signal processor, and a discrete radio device;
[0024] Figure 6 is a diagram of an exemplary embodiment of the present operating system for an RFID Reader including an integrated application / signal processor and transceiver;
[0025] Figure 7 is a diagram of an exemplary embodiment of the present operating system showing modularity and selectively of security with respect to the firmware components of the system;
[0026] Figure 8 is a flowchart showing an exemplary set of steps performed in initial setup of one embodiment of the present system; and
[0027] Figure 9 is a flowchart showing an exemplary set of steps performed in operation of one embodiment of the present system.
DETAILED DESCRIPTION
[0028] The present RFID operating system ('RFID OS') comprises an open-architecture software architecture for RFID readers. The system provides interoperability between generic RFID readers, system services, and applications. The present architecture allows RFID reader functionality to be independent of RFID reader hardware architecture.
[0029] In the present system, RFID services are layered on top of the RFID OS. For example, a service handler may facilitate a contactless payment transaction by invoking a particular application functionality via a tag protocol API (application programming interface), which in turn, calls one or more APIs to perform RF communication with RFID tags.
[0030] The present RFID operating system framework includes a layered architecture that can be used with a multiplicity of different RFID reader platforms. The RFID OS framework interfaces with peripheral hardware, and may perform a number of different application functions such as task scheduling, protocol handling, and storage allocation. The framework provides a default software interface between a host processor and an RFID reader when no application program is running on a particular reader.
[0031] Figure 1 A is a diagram showing a prior art monolithic RFID reader 101 connected to a host computer, and Figure 1B is a diagram showing a prior art monolithic RFID reader 102 including an embedded processor. In both of the readers shown in Figures 1A and 1 B, the RFID reader technology consists of monolithic hardwired devices with RFID reader control software/firmware. The term "firmware" is defined as "software that is embedded in a hardware device", and, as used herein, the term implies only the 'software' code in a particular piece of hardware, irrespective of the particular hardware device containing the code.
[0032] Reader 101 is connected to an external host computer 100, and reader 102 has an embedded processor 105 which functions as a dedicated, fixed-capability host. In both readers 101/102, a host-specific API 103 is typically integral to the readers, and the reader functionality is pre- established and not modifiable by a user, since the functionality is 'buried' inside user-inaccessible firmware in a 'black box' 104. In the systems of Figures 1 A and 1 B, the reader control features and functionality are set at compile time, thus making the readers 101/102 application-specific. Value- added software & middleware cannot be integrated into these existing readers by a typical user, thereby limiting the readers' performance.
[0033] Figure 2 is a diagram of an exemplary embodiment 200 of the present operating system environment for an RFID reader, showing high- level aspects of the architecture of the system. As shown in Figure 2, the present operating system architecture includes a 'vertical' framework 201 coupled between a host computer 220 (via a communications link 212) and an RFID reader platform 210. In the most general sense, platform 210 may be considered as a basic RFID reader / interrogator, minimally including hardware 209 and an RFID 'radio' 214, which may comprise a receiver or a transceiver, depending upon the particular application and type of RFID tag 230 for which the platform 210 is intended. Radio 214, which includes an antenna (not shown), functions to exchange data with RFID tag 230 via RF link 202.
[0034] Reader platform 210 comprises on-board control software for an RFID reader that can be customized and built upon by third-party developers. This platform enables OEMs to easily RFID-enable new or existing devices.
[0035] Reader platform 210 may also include an embedded operating system 208, such as Linux or Windows CE. Platform 210 may be coupled to framework 201 via an operating system 208 running on the platform (through interface 204), or via RF communication with RFID radio 214, using an RF link 206. In the latter instance, the platform typically does not include operating system 208.
[0036] As explained below, the present RFID OS vertical framework 201 is integrated with a horizontal firmware stratum (shown in Figures 3B-3C) to support a range of options for use with an RFID reader platform 210.
These options include firmware components that can be used independently or in combination, a set of API extensions to embedded operating systems, and a stand-alone operating system for dedicated RFID reader architectures.
[0037] As shown in Figure 2, the vertical framework 201 for the present system comprises three layers, which are effectively situated 'on top of platform 210:
(1) a hardware abstraction layer 203, including RFID reader hardware drivers and associated APIs;
(2) an RFID reader application software interface layer 205, including RFID reader software Libraries and associated APIs; and
(3) an application layer 207, including application software for controlling reader platform 210.
[0038] Specific examples of functional modules included in the above layers are described with respect to Figures 4A-4C, below. [0039] Figure 3A is a diagram of one embodiment of the present operating system for an RFID Reader showing, more specifically, the vertically layered structure of the system architecture. The layered architecture of the present system allows applications and services to access a set of multiple library and driver APIs. As used herein, the term "driver" refers to (a) a program that controls a device, where a 'device' may be considered to be any type of hardware device, or circuit, or (b) another program that performs a function using a predefined protocol or set of instructions. A driver acts like a translator between the device and programs that use the device.
[0040] As shown in Figure 3A, framework 201 vertically tiered with respect to RFID reader application software interface layer 205 and hardware abstraction layer 203, both of which are also tiered or layered in a 'vertical' direction between reader platform 210 and application layer 207.
[0041] More specifically, the application software interface layer 205 is tiered or divided into two functional sub-layers, a layer 305 including library functions (or modules), and a layer 306 including APIs for interfacing between the library functions and the application layer 207, as indicated by arrow 315 in Figure 3A. As used herein, the term "library function" refers to any software or firmware program code, which, although typically stored with other functions in a 'library', may exist in a context (or layer, in the present system) wherein no library is extant. In the present document, the terms "library function" and "library module" are intended to refer to the same type of entity, as a result of the modular nature of the present system architecture.
[0042] The hardware abstraction layer 203 is also tiered or divided into two functional sub-layers, a layer 303 including hardware and communication device drivers (modules), and a layer 304 including driver APIs for interfacing between the drivers and corresponding library functions in API library function layer 305, as indicated by arrow 313.
[0043] It should be noted that, in certain cases, where an application in layer 207 has a priori knowledge of the protocol or other mechanism for communicating with a particular driver in layer 303, the application may bypass the application software interface layer 205 and directly call the driver, as indicated by arrow 317. [0044] As indicated in Figure 3A, the RFID OS vertical framework 201 includes an operating system kernel 301 which is always present, and various system programs 325 which use facilities provided by the kernel to perform higher-level 'housekeeping' tasks. Each of the vertical layers in the present system is described in greater detail immediately below.
Platform Layer
[0045] The RFID operating system vertical framework 201 may be viewed as resting on top of the reader platform layer 210. In an exemplary embodiment, platform 210 includes hardware, plus an optional operating system 208 and developer tools 215. The terms "hardware platform" or
"hardware layer" are often used interchangeably when referring to a platform. A simple platform 210 might use 8-bit microcontroller hardware with no operating system; in this case, modules in RFID OS framework 201 serve as the device operating system. On platforms with more powerful processors, the present system integrates with both the target operating system 208 and the platform hardware 209; in this case, portable RFID OS framework components reside in the different processors, logic blocks and ASICs that comprise a particular platform 210. The open software architecture of the RFID OS framework 201 , together with the horizontal layering of the firmware stratum (described below) facilitates integration of RFID radio hardware with most types of processors and OS platforms.
[0046] Figure 4A is a diagram showing exemplary hardware components which may be included in platform hardware 209 of the present system. As shown in Figure 4A, these hardware components may include, for example, processor 402, processor main memory 404, cache memory 406, user interface 408, sensors and associated I/O devices 410, and RFID radio 214. Hardware Abstraction Layer / Drivers
[0047] As shown in Figure 3A, driver APIs (in sub-layer 304 of hardware abstraction layer 203) function as the software interface for the low- level software drivers that directly control reader hardware 209. In an exemplary embodiment, the driver APIs (in sub-layer 304 of layer 203) are platform-independent. The code that implements each driver is, however, platform-specific. Typically, only a small amount of code in each low-level driver requires modification when porting to a new platform. The hardware abstraction layer 203 in RFID OS framework 201 provides portability for On- reader' applications, and platform-independence across RFID-enabled devices.
[0048] Figure 4B is a diagram showing exemplary drivers which may be included in layer 303 of the present system. Examples of drivers include RFID radio control functions, peripheral hardware control functions and host interface hardware control functions. More specifically, as shown in Figure 4B, these drivers may include, for example, a user interface driver 414, and communications drivers such as those shown in blocks 416-424.
Application Software Interface Layer / Libraries / APIs
[0049] As shown in Figure 3A, sub-layer 305 of application software interface layer 205 includes a library of functions or modules, and sub-layer 306 includes one or more libraries of APIs defining the software interface used by an application to access internal RFID reader functionality, via the functions in sub-layer 305. In an exemplary embodiment, the library APIs 306 are platform-independent, as are the code implementations of the library functions in sub-layer 305. Unless otherwise indicated, the term "code" is used herein to refer to Object code', which is code produced by a compiler from 'source code', usually in the form of machine language that a computer (e.g., a microprocessor) can execute directly. The present system allows the use of multiple APIs for On-device' applications to control device hardware and low-level functionality in a standard manner, regardless of the device- embedded computing platform 210. Such platforms 210 range from DSP architectures to microprocessor cores with an operating system to microcontroller-based devices, sensors and objects, with or without an operating system.
Application Layer [0050] Applications in application layer 207, as well as in host 100 /
220, may indirectly access any of the lower layers (205, 203, 210) in the system architecture via a set of APIs 304/306. By accessing the RFID reader hardware and platform 210 via the abstraction layers provided by the libraries and drivers, 'on-reader' applications become portable across devices employing the present architecture. This abstraction layering makes third- party-generated RFID reader software and tag protocol libraries independent of the underlying hardware, thus facilitating the integration of embedded computing intelligence into sensors, devices and ordinary objects.
[0051] In an alternative embodiment of the present system, hardware abstraction layer 203 may include one or more drivers and no API(s). In this same embodiment, application software interface layer 205 may include only (one or more) APIs and no library functional modules. In this embodiment, an API in layer 305 / 205 directly calls a corresponding driver in layer 303 / 203 to control reader hardware 209. [0052] Figure 4C is a diagram showing exemplary library functions which may be included in sub-layer 305 of the present system. Examples of library functions include tag functions, security functions and reader configuration functions, such as those shown in blocks 426-436 of Figure 4C. [0053] Figure 4D is a diagram showing exemplary library APIs 438- 448, which may be included in sub-layer 306 of layer 205 of the present system. As shown in Figure 4D, these library APIs generally correspond to counterpart library functions in sub-layer 305.
Application Code Layer
[0054] In an exemplary embodiment, as indicated above, on-reader applications make function calls to library functions, which, in turn, call driver functions which control the reader hardware. As shown in Figure 3A, application layer 207 of the present system includes one or more of these applications.
[0055] Figure 3B and Figure 3C are diagrams of one embodiment of the present RFID reader operating system architecture showing exemplary tiers or levels of functionality provided by 'horizontal' firmware layering in a 'firmware stratum' 350. The architecture of the present system is best understood by viewing Figures 3B and 3C in conjunction with one another, wherein the orthogonal relationship between the horizontally layered firmware stratum 350 and the vertically layered abstraction structure 201 (*) [where the asterisk indicates one of a plurality of similar items] of the system architecture is shown. Firmware stratum 350 is a collection of modules, which, when considered as being 'stacked' along a horizontal plane, is positioned orthogonally relative to the vertical layering of framework 201. Each of the layers (tiers) in the firmware stratum is hereinafter termed a "level" 33X (e.g., 331-338) thereof, and each of the levels of the firmware stratum is layered in accordance with the three-tiered scheme 201 shown in Figure 2 and Figure 3A. Note that, in the present example shown, firmware stratum levels 331- 338 in Figure 3B correspond to levels 201 (1) - 201 (N) in Figure 3C.
[0056] The orthogonal relationship between firmware stratum 350 and the layering of composite structure 201 (*) is indicated in Figure 3B by the relationship between arrow 350, which shows the 'horizontal' layering of the firmware stratum, and arrow 355, which shows the 'vertical' layering of each of the components or 'levels' of the firmware stratum. Each level 33X of firmware stratum 350 includes one, two, or three modules, the aggregate of which may include an API, a library function (or other functional component), and a driver. Thus, each stratum level 33X is itself layered in the three-tiered scheme of framework structure 201.
[0057] Table 1 , below, lists specific modules or other functional components that may be included in the firmware stratum 350 in an exemplary embodiment of the present system. In Table 1 , each level 33X may be further subdivided into sub-levels, each of which is designated in the Table as being a member of a respective higher level, as indicated in Figures 3B and 3C.
TABLE 1 FIRMWARE STRATUM
FIG. 3 SUB-
LEVEL LEVEL FUNCTION
338 Application Module Interface
44 AM-Host Interface
43 AM-Host Protocol Security
42 AM-Host Discovery
41 AM-Host Plug-and-Play
39 AM-Host APIs, Protocols and Adapters
38 AM-Host Protocol Transport
37 AM-Host Physical Connection
337 Application Module Manaqement
36 AM Self Test
35 AM Code Update
34 AM Management
33 AM Configuration
336 Application Module Development Environment
32 AM Connected Devices
31 Interpreter Support
30 AM Operating System
29 AM Processor
28 Application Environment
27 Workflow/Scripting Engine
335 Radio Communication and Control
26 Reader to reader Protocol
25 Tag Command Set Types
24 Tag Command Language Support
23 Read Tag
334 Radio to Application Module Interface
22 RM (Radio Module)-AM Protocol Security
21 RM-AM Discovery
20 RM-AM Plug-and-Play
19 RM-AM APIs
18 RM-AM Protocol(s)
17 RM-AM Protocol Transport
16 RM-AM Physical Connection
333 Radio Module Manaαement
15 RM Self Test
14 RM Code Update
13 RM Management
12 RM Configuration 332 Radio Module Development Environment
11 RM Task Automation/Scripting
10 RM Connected Devices '
9 RM Operating System 8 RM Processor
331 Tag Interface
7 Anti-Collision / Tag Singulation
6 Tag Command Primitives
5 Air Protocol Security 4 Air Protocols
3 Modulation and Encoding Schemes
2 Antenna Tuning, Control and Diversity
1 Analog Front End (AFE) Abstraction Layer
[0058] Figure 5 is a diagram of an exemplary embodiment of the present operating system architecture 500 for an RFID reader including an application processor 506, a signal processor 504, and a discrete radio device 502. In the system shown in Figure 5, RFID radio software 514 resides in a signal processor (e.g., block 504), digital state machine or both, and application software 518 and radio-specific software 516 reside in a main application processor 506. Software/firmware modules 516 / 518 in application processor 506 communicate with radio software 514 and digital hardware 512 in signal processor 504 via APIs, libraries, and drivers 305/306 and 303/304, as described above with respect to the embodiments of Figures 2-4. [0059] In the system shown in Figure 5, the RFID radio hardware comprises separate digital and analog hardware 512, 509, which is respectively split between signal processor 504 and discrete (analog) radio device 502. Accordingly, platform 210 may be considered to overlap with hardware abstraction layer 203, as indicated by respective braces 210 and 203.
[0060] Figure 6 is a diagram of an exemplary embodiment of the present operating system architecture 600 for an RFID Reader including an integrated application / signal processor 604 and transceiver 602. The system embodiment shown in Figure 6 is especially suitable for highly embedded RFID applications. In this embodiment, applications 605, libraries 607 and drivers 609, along with associated APIs reside within a single microcontroller 604 that controls an integrated transceiver 602 (with both analog and digital hardware 610 / 612) or a discrete analog radio (with analog hardware 610 only). Software/firmware modules and drivers 605 / 607 / 609 in integrated signal processor 604 communicate with digital hardware 612 therein, and also with digital hardware 512 in signal processor 504, via APIs, libraries, and drivers 305/306 and 303/304, as described above with respect to the embodiments of Figures 2-4.
[0061] In the system shown in Figure 6, the RFID radio hardware comprises separate digital and analog hardware, which may be split between signal processor 504 and discrete (analog) radio device 502, as in the system of Figure 5. Accordingly, platform 210 may be considered to overlap with part of framework 201 , as indicated by respective braces 210 and 201.
[0062] Figure 7 is a diagram of an exemplary embodiment of the present operating system architecture showing modularity and selectively of security with respect to the software and firmware components of a reader 700. In this embodiment, layers 203, 205, and 207 (i.e., all layers of framework 201) have been integrated into an RFID reader.
[0063] The software/firmware in reader 700 includes proprietary source code (and other information) security capability, as well as secure delivery capability, so that a user can encapsulate code into a software module that may be distributed in a secure manner (i.e., without being copied). Using a suitable form of encryption as the security mechanism, selected code (in software or firmware form) can reside and operate within the platform or framework without being extracted or copied.
[0064] The present system architecture allows any specific software/firmware module to have its API known / published, but any module containing API-related code (the code accessed by the API), for example, may remain protected and secure. Other parties can make function calls to the protected functions by making calls to the functions' published APIs. Each of the components within framework 201 is selectively securable at three levels, i.e., at the driver, libraries, API and/or application level. Some components may be open source, and other components may be locked and proprietary so that third parties can use this open architecture framework as a secure delivery vehicle for their code into the market.
[0065] As shown in the example of Figure 7, module 702 in application layer 207, modules 712 and 714 in hardware abstraction layer 203, and modules 722 and 726 in application software interface layer 205 are encrypted so that they remain inaccessible to unauthorized users and other third parties.
[0066] Figure 8 is a flowchart showing an exemplary set of steps performed in the initial setup of one embodiment of the present system. As shown in Figure 8, at step 805, application code for an RFID reader is first written; this establishes the desired new functionality. The application makes function calls to library functions in sub-layer 305 of layer 205 (shown in Figure 3A) using particular APIs in sub-layer 306 of layer 205. Since each function is a modular software component, the application may selectively call any of the total available functions. Based on which functions are called by the application, at step 810, only those functions which are called are included, at step 815, for compilation into object code, which is performed at step 820. This minimizes the generated object code at compile time, which in turn, provides the ability to determine how much code space is required in a target microprocessor / microcontroller / FPGA, etc, when the code is installed in a particular system (at step 825). If the platform selected is based on a target microcontroller family, then the generated object code size dictates which product in the family provides the minimum resources required to support the application.
[0067] Figure 9 is a flowchart showing an exemplary set of steps performed in operation of one embodiment of the present system. As shown in Figure 9 (and also with reference to Figure 3B), at step 905, an application in layer 207 calls Library layer API 306(23) in vertical framework sub-layer 306 of layer 205 to read the contents of an RFID tag 230, for example. At step 910, library layer API 306(23) calls 'Read Tag1 function 305(23) in framework layer 305 / firmware stratum Level 335, sub-level 23 in API Library 305. Note that the 'Read Tag" function 305(23) is shown in Table 1 under the "Fig. 3 Level" heading 335, "Radio Communication Control", at sub-level 33. Steps 905 and 910 of the present example are indicated by arrow 315 in the 'Reader Communication & Control' callout in Figure 3B. [0068] At step 915, the 'Read Tag1 library function 305(23) calls
Read Tag driver API 304(23) in driver API library layer 205, in framework layer 304 /firmware stratum Level 335, sub-level 23, At step 920, Read Tag driver API 304(23) calls Read Tag driver 303(23) in driver layer 203, in framework layer 305 / firmware stratum Level 335, sub-level 23 . Steps 915 and 920 of the present example are indicated by arrow 313 in Figure 3B.
[0069] At step 925, the Read Tag driver sends a Read Tag command to platform 210, as indicated by arrow 204. Finally, at step 930, the platform sends the Read Tag command to Tag 230, which reads information stored in the tag, and sends information back to the reader, as indicated by arrow 202 in Figure 3B. Note that steps 910 through 925 in the present example are each performed by a module in the same firmware stratum level (i.e., Level 335, sub-level 23).
[0070] Certain changes may be made in the above methods and systems without departing from the scope of that which is described herein. It is to be noted that all matter contained in the above description or shown in the accompanying drawings is to be interpreted as illustrative and not in a limiting sense. For example, the methods shown in Figures 8 and 9 may include steps other than those shown therein, and the systems shown in Figures 2-7 may include different components than those shown in the drawings. The elements and steps shown in the present drawings may be modified in accordance with the methods described herein, and the steps shown therein may be sequenced in other configurations without departing from the spirit of the system thus described. The following claims are intended to cover all generic and specific features described herein, as well as all statements of the scope of the present method, system and structure, which, as a matter of language, might be said to fall there between.

Claims

CLAIMSWhat is claimed is:
1. A framework structure for controlling an RFID device including a platform comprising an RFID radio, the structure comprising: a layered framework including: a first layer, including at least one functional module comprising a device driver, communicatively coupled with the platform; and a second layer, including at least one functional module comprising an API, communicatively coupled with the first layer and with an application for controlling the RFID device.
2. The structure of claim 1 , including a firmware stratum comprising a tiered plurality of the functional modules, wherein the stratum is integrated with the layered framework such that each tier of the stratum is layered to functionally correspond to one of the layers in the layered framework.
3 The structure of claim 2, wherein the framework is vertically layered, and a structure formed by the plurality of functional modules is essentially orthogonal to the vertically layered framework.
4. The structure of claim 1 , wherein the layered framework includes a third layer, communicatively coupled with the second layer, comprising code for the application.
5. The structure of claim 4, wherein each tier of the firmware stratum respectively includes an extensible set of modular software components selected from the group of component types consisting of drivers, libraries, and applications.
6. The structure of claim 1 , wherein code in each of the first and second layers comprises modules such that each of the modules may be selectively encrypted to control access thereto.
7. The structure of claim 1 , wherein the modularity of the structure provides a mechanism for an application to determine computing requirements of the structure as a function of the application.
8. The structure of claim 1 , wherein, in response to a call from the application to the API, the API calls a corresponding device driver, which, in response thereto, communicates with the platform to control the RFID device.
9. A framework structure for controlling an RFID device including a platform comprising an RFID radio, the structure comprising: a layered framework including: a first layer, including functional modules comprising a device . driver and a corresponding device driver API, communicatively coupled with the platform; and a second layer, including functional modules comprising a library module and a corresponding library API, communicatively coupled with the first layer and with an application for controlling the RFID device.
10. The structure of claim 9, including a firmware stratum comprising a tiered plurality of the functional modules, wherein the stratum is integrated with the layered framework such that each tier of the stratum is layered to functionally correspond to one of the layers in the layered framework.
11. The structure of claim 10, wherein the framework is vertically layered, and a structure formed by the plurality of functional modules is essentially orthogonal to the vertically layered framework.
CXl
12. The structure of claim 9, wherein the layered framework includes a third layer, communicatively coupled with the second layer, comprising code for the application.
13. The structure of claim 12, wherein each tier of the firmware stratum respectively includes an extensible set of modular software components selected from the group of component types consisting of drivers, libraries, and applications.
14. The structure of claim 9, wherein code in each of the first and second layers comprises modules such that each of the modules may be selectively encrypted to control access thereto.
15. The structure of claim 9, wherein the modularity of the structure provides a mechanism for an application to determine computing requirements of the structure as a function of the application.
16. The structure of claim 9, wherein the first and second layers comprise firmware.
17. The structure of claim 9, wherein, in response to a call from the application to the library API, the library API calls a corresponding library module, in response to which the library module calls the corresponding device driver API, which, in response, calls the corresponding device driver, which, in response, communicates with the platform to control the RFID device.
18. A firmware system framework structure for an RFID device including a platform comprising an RFID radio, the structure comprising: a layered framework including: a first layer, including functional modules comprising driver- related code, communicatively coupled with the platform; and a second layer, including functional modules comprising API- related code, communicatively coupled with the first layer and with an application for controlling the reader; wherein the first layer includes a driver and a corresponding driver API for communicating therewith; and wherein the second layer includes a library function for communicating with the driver API, and a corresponding library function API providing communication between the application and the library function.
19. The structure of claim 18, including a firmware stratum comprising a tiered plurality of the functional modules, wherein the stratum is integrated with the layered framework such that each tier of the stratum is layered to functionally correspond to one of the layers in the layered framework.
20. The structure of claim 19, wherein each tier of the firmware stratum respectively includes an extensible set of modular software components selected from the group of component types consisting of drivers, libraries, and applications.
21. The structure of claim 19, wherein the framework is vertically layered, and a structure formed by the plurality of functional modules is essentially orthogonal to the vertically layered framework.
22. The structure of claim 19, wherein, in response to a call from the application to the library function API, the library function API calls a corresponding library function, in response to which the corresponding library function calls the driver API corresponding thereto, which, in response, calls the corresponding driver, which, in response, communicates with the platform to control the RFID device.
23. The structure of claim 18, wherein, in response to a call from the application to the library function API, the library function API calls a corresponding library function, in response to which the corresponding library function calls the driver API , which, in response, calls the corresponding driver, which, in response thereto, communicates with the platform to control the RFID device.
24. The structure of claim 18, wherein the layered framework includes a third layer, communicatively coupled with the second layer, comprising code for the application.
25. The structure of claim 18, wherein the code in each of the first and second layers comprises modules such that each of the modules may be selectively encrypted to control access thereto.
26. The structure of claim 18, wherein the modularity of the structure provides a mechanism for an application to determine computing requirements of the structure as a function of the application.
27. An operating system framework structure for an RFID reader including a platform comprising an RFID radio, the structure comprising: a layered framework including: a first layer, including driver-related code, communicatively coupled with the platform; a second layer, including API-related code, communicatively coupled with the first layer and with an application for controlling the reader; and a firmware stratum comprising a tiered plurality of functional modules integrated with the layered framework such that each tier of the firmware stratum is layered to functionally correspond to one of the layers in the layered framework.
28. The structure of claim 27, wherein: the first layer includes a driver and a corresponding driver API for communicating therewith; the second layer includes a function for communicating with the driver API, and a corresponding function API providing communication between the application and the function; and the first layer and the second layer include the functional modules in the firmware stratum.
29. The structure of claim 28, wherein, in response to a call from the application to the function API, the function API calls a corresponding function, in response to which the function calls the driver API corresponding thereto, which, in response, calls the corresponding driver, which, in response, communicates with the platform to control the RFID device.
30. A software system framework structure for an RFID reader including a platform comprising an RFID radio, the structure comprising: a vertically layered framework including: a first layer, including driver-related code, communicatively coupled with the platform; a second layer, including API-related code, communicatively coupled with the first layer and with an application for controlling the reader; a third layer including the application; wherein the first layer includes device drivers and corresponding driver APIs for communicating therewith; wherein the second layer includes library functional modules for communicating with the driver API, and corresponding library function APIs providing communication between the application and one of the library functional modules; wherein the first layer, the second layer, and the third layer constitute a horizontally layered firmware stratum comprising a tiered plurality of functional modules including the library function APIs, the library functional modules, the driver APIs, and the device drivers, in which the stratum is integrated with the layered framework such that each tier of the firmware stratum is layered to functionally correspond to one of the layers in the layered framework.
31. The structure of claim 30, wherein one of the library function APIs, in response to a call from the application, calls a corresponding one of the library functional modules, which in response, calls a corresponding one of the driver APIs, which, in response, calls a corresponding one of the drivers, which, in response, communicates with the platform to control the RFID device.
32. The structure of claim 31 , wherein each tier of the firmware stratum respectively includes an extensible set of modular software components selected from the group of component types consisting of drivers, libraries, and applications.
33. The structure of claim 31 , wherein the firmware stratum structure formed by the plurality of functional modules is essentially orthogonal to the vertically layered framework.
34. The structure of claim 30, wherein the code in each of the first and second layers comprises modules such that each of the modules may be selectively encrypted to control access thereto.
35. The structure of claim 30, wherein the modularity of the structure provides a mechanism for an application to determine computing requirements of the structure as a function of the application.
EP06750968A 2005-04-21 2006-04-21 Rfid reader operating system and associated architecture Withdrawn EP1872598A4 (en)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US67369205P 2005-04-21 2005-04-21
US71295705P 2005-08-31 2005-08-31
US11/301,423 US20060238303A1 (en) 2005-04-21 2005-12-13 Adaptable RFID reader
US11/301,770 US20060238305A1 (en) 2005-04-21 2005-12-13 Configurable RFID reader
US11/301,587 US20060238304A1 (en) 2005-04-21 2005-12-13 System and method for adapting an FRID tag reader to its environment
US11/301,396 US20060238302A1 (en) 2005-04-21 2005-12-13 System and method for configuring an RFID reader
US11/328,209 US20060253415A1 (en) 2005-04-21 2006-01-09 Data-defined communication device
US11/387,422 US20070046431A1 (en) 2005-08-31 2006-03-23 System and method for combining RFID tag memory
US11/387,421 US7659819B2 (en) 2005-04-21 2006-03-23 RFID reader operating system and associated architecture
PCT/US2006/015094 WO2006116086A2 (en) 2005-04-21 2006-04-21 Rfid reader operating system and associated architecture

Publications (2)

Publication Number Publication Date
EP1872598A2 true EP1872598A2 (en) 2008-01-02
EP1872598A4 EP1872598A4 (en) 2009-09-09

Family

ID=37215271

Family Applications (2)

Application Number Title Priority Date Filing Date
EP06750888A Withdrawn EP1872597A2 (en) 2005-04-21 2006-04-21 Combined rfid reader and rf transceiver
EP06750968A Withdrawn EP1872598A4 (en) 2005-04-21 2006-04-21 Rfid reader operating system and associated architecture

Family Applications Before (1)

Application Number Title Priority Date Filing Date
EP06750888A Withdrawn EP1872597A2 (en) 2005-04-21 2006-04-21 Combined rfid reader and rf transceiver

Country Status (2)

Country Link
EP (2) EP1872597A2 (en)
WO (2) WO2006116012A2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2967802B1 (en) * 2010-11-22 2012-11-23 Inside Contactless GSM RADIO COMMUNICATION DEVICE COMPRISING A UHF LABEL READER

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078251A (en) * 1996-03-27 2000-06-20 Intermec Ip Corporation Integrated multi-meter and wireless communication link
WO1999057649A2 (en) * 1998-05-04 1999-11-11 Intermec Ip Corporation Automatic data collection device having a network communications capability
US6420961B1 (en) * 1998-05-14 2002-07-16 Micron Technology, Inc. Wireless communication systems, interfacing devices, communication methods, methods of interfacing with an interrogator, and methods of operating an interrogator
EP1516450A4 (en) * 2002-06-26 2008-09-17 Nokia Corp Bluetooth rf based rf-tag read/write station

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CHOPPY C ET AL: "Architectural patterns for problem frames - Relating software requirements and architectures" IEE PROCEEDINGS: SOFTWARE, IEE, STEVENAGE, GB, vol. 152, no. 4, 5 August 2005 (2005-08-05), pages 198-208, XP006024952 ISSN: 1462-5970 *
FUJITA M ET AL: "A reconfigurable robot platform" ROBOTICS AND AUTONOMOUS SYSTEMS, ELSEVIER SCIENCE PUBLISHERS, AMSTERDAM, NL, vol. 29, no. 2-3, 30 November 1999 (1999-11-30), pages 119-132, XP004218279 ISSN: 0921-8890 *
MCGREGOR G ET AL: "A hardware/software co-design environment for reconfigurable logic systems" FIELD-PROGRAMMABLE LOGIC AND APPLICATIONS. FROM FPGAS TO COMPUTING PARADIGM. 8TH INTERNATIONAL WORKSHOP, FPL'98. PROCEEDINGS SPRINGER-VERLAG BERLIN, GERMANY, 1998, pages 258-267, XP002539079 ISBN: 3-540-64948-4 *
See also references of WO2006116086A2 *

Also Published As

Publication number Publication date
EP1872597A2 (en) 2008-01-02
EP1872598A4 (en) 2009-09-09
WO2006116086A3 (en) 2008-11-20
WO2006116012A3 (en) 2009-04-30
WO2006116086A2 (en) 2006-11-02
WO2006116012A2 (en) 2006-11-02

Similar Documents

Publication Publication Date Title
US7659819B2 (en) RFID reader operating system and associated architecture
US7962096B2 (en) System and method for a RFID transponder file system
US20070067325A1 (en) Methods and apparatus to load and run software programs in data collection devices
KR101597199B1 (en) Rfid portal system with rfid tags having various read ranges
US7522050B2 (en) System and method of RFID device management
US20080041930A1 (en) Device configuration with RFID
US7663486B2 (en) RFID tag user memory indication
CN1918585B (en) Detector logic and radio identification device and method for enhancing terminal operations
CN101326735A (en) Method and equipment for simulating a plurality of RFID label in single mobile electronic apparatus
US7394379B2 (en) Unique method for embedding business process into RFID grid
CN102710298A (en) System and method for detecting and communicating with diverse near field communications adaptors
KR100876424B1 (en) Hull Block Management System Using Radio Frequency Identification
US20160026833A1 (en) Radio frequency identification tag having input device
EP1872598A2 (en) Rfid reader operating system and associated architecture
US20210232883A1 (en) Apparatus and method of interacting multiple forms of rfid technology to give additional information, security, and performance
Kumar et al. Zigbee based indoor campus inventory tracking using RFID module
US20100156601A1 (en) LLRP-Based Flexible Reader System And Method
KR101485157B1 (en) Radio Frequency identification tag comprising an input unit
Ferreira et al. Prototype for Consultation Cloud IoT Supported Medical Records on RFID Technology
KR101132914B1 (en) Middleware embedded mobile terminal of rfid
JP2010535375A (en) Mobile communication device and method for defragmenting MIFARE memory
CA2522931C (en) System and method for a rfid transponder file system
WO2006054318A2 (en) A unique method for embedding business process and business process intelligence into rfid grid
Aboulouz et al. RFIDMania extensible and adaptable RFID middleware and specifications
KR20100037315A (en) A rfid intergrated management system

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20071109

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA HR MK YU

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: SKYETEK, INC.

RIN1 Information on inventor provided before grant (corrected)

Inventor name: LOVING, SEAN, T.

DAX Request for extension of the european patent (deleted)
R17D Deferred search report published (corrected)

Effective date: 20081120

RIC1 Information provided on ipc code assigned before grant

Ipc: G06F 9/44 20060101AFI20090729BHEP

A4 Supplementary search report drawn up and despatched

Effective date: 20090807

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20091103