RDID protocol library
Go to file
laforge 460b7d587b - move command definitions to a dedicated header file
- add lots of undocumented commands
- clean up makefile


git-svn-id: https://svn.gnumonks.org/trunk/librfid@1655 e0336214-984f-0b4b-a45f-81c69e1f0ede
2005-11-08 00:14:01 +00:00
ccid add CCID driver (Werner Koch) 2005-10-29 20:14:22 +00:00
include/rfid Add support for native CCID driver, modularize OpenCT support (based on a patch from Werner Koch) 2005-10-29 20:42:34 +00:00
pegoda - move command definitions to a dedicated header file 2005-11-08 00:14:01 +00:00
COPYING move librfid to new location in repository 2005-05-29 18:05:31 +00:00
LICENSING move librfid to new location in repository 2005-05-29 18:05:31 +00:00
Makefile Add support for native CCID driver, modularize OpenCT support (based on a patch from Werner Koch) 2005-10-29 20:42:34 +00:00
README move librfid to new location in repository 2005-05-29 18:05:31 +00:00
TODO remove items that are done 2005-10-29 20:24:54 +00:00
openct-escape.c Add support for native CCID driver, modularize OpenCT support (based on a patch from Werner Koch) 2005-10-29 20:42:34 +00:00
rc632.h Some updates and remarks referring to mc073930.pdf (Errata?) by Juergen Heinzl 2005-09-11 19:58:20 +00:00
rfid.c - add mifare classic support 2005-10-22 20:20:21 +00:00
rfid_asic_rc632.c remove debugging 2005-11-01 17:58:09 +00:00
rfid_asic_rc632_14443a.c Some updates and remarks referring to mc073930.pdf (Errata?) by Juergen Heinzl 2005-09-11 19:58:20 +00:00
rfid_asic_rc632_14443b.c move librfid to new location in repository 2005-05-29 18:05:31 +00:00
rfid_asic_rc632_mifare.c move librfid to new location in repository 2005-05-29 18:05:31 +00:00
rfid_iso14443_common.c add gpl disclaimers 2005-05-29 18:21:58 +00:00
rfid_iso14443_common.h move librfid to new location in repository 2005-05-29 18:05:31 +00:00
rfid_layer2.c make "frametype" a parameter of transcieve functions 2005-10-23 20:03:56 +00:00
rfid_layer2_iso14443a.c make "frametype" a parameter of transcieve functions 2005-10-23 20:03:56 +00:00
rfid_layer2_iso14443b.c make "frametype" a parameter of transcieve functions 2005-10-23 20:03:56 +00:00
rfid_layer2_iso15693.c use 64bit timeout values throughout the code, since some timeouts exceeds 4.8 billion microseconds (seconds). 2005-09-11 19:59:58 +00:00
rfid_proto_mifare_classic.c make "frametype" a parameter of transcieve functions 2005-10-23 20:03:56 +00:00
rfid_proto_mifare_ul.c make "frametype" a parameter of transcieve functions 2005-10-23 20:03:56 +00:00
rfid_proto_tcl.c remove debugging 2005-11-01 17:57:57 +00:00
rfid_protocol.c - move some initialization of proto handle from _tcl to core 2005-10-22 17:20:47 +00:00
rfid_reader.c make "frametype" a parameter of transcieve functions 2005-10-23 20:03:56 +00:00
rfid_reader_cm5121.c increase send buffer to 100 bytes 2005-11-01 17:57:46 +00:00
rfid_reader_cm5121_ccid_direct.c fix usage of handle 2005-10-29 20:51:19 +00:00
rfid_reader_cm5121_openct.c Add support for native CCID driver, modularize OpenCT support (based on a patch from Werner Koch) 2005-10-29 20:42:34 +00:00

README

librfid - low-level RFID access library
(C) 2005 by Harald Welte <laforge@gnumonks.org>
======================================================================

This library intends to provide a reader- and (as much as possible)
PICC / tag independent API for RFID applications.

1. Supported Prodocols:

At this early stage of implementaition, it offers only ISO 14443-2, ISO 14443-3
A and B as well as ISO 14443-4 (T=CL) support.  Other protocols, both open
(such as ISO 15693) and proprietary are to be added as soon as I find some more
time.

2. Supported Readers:

At this time only the Omnikey Cardman 5121 reader is supported. 

The cm5121 is a relatively stupid piece of hardware.  Basically a contact-based
cm3121 that was enhanced by putting a Philips CL RC632 reader ASIC next to it.
There is no RFID protocol implementation on the cm5121, everything is done on
the host (PC) software.  Four primitives (read/write byte/fifo) are provided
via simple PC_to_RDR_Escape CCID messages.

This makes it the ideal device to learn and play with RFID, since you don't
have any (proprietary) software interfere and puts you in full control of
everything.

Support for more devices shouldn't be too difficult to add, provided the
devices are stupid enough.  More sophisticated readers like Integrated
Engineering or Philips Pegoda do much of the protocol handling in firmware on a
Microcontroller.  This makes them (at least till now) faster, but also of
limited use, especially in education and research.

So if you happen to run into any other dumb RFID readers, especially those
based on Philips CL RC531 and RC632, adding support should be very
straightforward.  If you want to contract me for implementing a driver backend,
don't hesitate to contact me.

3. Installation

In order to run librfid, you need to provide a PC_to_RDR_Escape function to it.
This is the low-level transport function for communicating.   Usually that function would point to a CCID device driver.

My svn repository at
https://svn.gnumonks.org/trunk/omnikey_cardman/new/userspace/ has an openct
fork with a modified CCID driver.  It allows you to use the contact based part
via PC/SC, CT-API, and the contactless part via librfid simultaneously.


-- Harald Welte <laforge@gnumonks.org>