Magstripe.txt 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. /** \file
  2. *
  3. * This file contains special DoxyGen information for the generation of the main page and other special
  4. * documentation pages. It is not a project source file.
  5. */
  6. /** \mainpage Denver Gingerich's USBSnoop Magnetic Card Reader Project
  7. *
  8. * \section Sec_Compat Project Compatibility:
  9. *
  10. * The following list indicates what microcontrollers are compatible with this project.
  11. *
  12. * \li AT90USB1287
  13. * \li AT90USB1286
  14. *
  15. * \section Sec_Info USB Information:
  16. *
  17. * The following table gives a rundown of the USB utilization of this project.
  18. *
  19. * <table>
  20. * <tr>
  21. * <td><b>USB Mode:</b></td>
  22. * <td>Device</td>
  23. * </tr>
  24. * <tr>
  25. * <td><b>USB Class:</b></td>
  26. * <td>Human Interface Device (HID)</td>
  27. * </tr>
  28. * <tr>
  29. * <td><b>USB Subclass:</b></td>
  30. * <td>Keyboard</td>
  31. * </tr>
  32. * <tr>
  33. * <td><b>Relevant Standards:</b></td>
  34. * <td>USBIF HID Standard, USBIF HID Usage Tables</td>
  35. * </tr>
  36. * <tr>
  37. * <td><b>Supported USB Speeds:</b></td>
  38. * <td>Full Speed Mode</td>
  39. * </tr>
  40. * </table>
  41. *
  42. * \section Sec_Description Project Description:
  43. *
  44. * Firmware for a USB AVR powered USB TTL magnetic stripe reader (using a card
  45. * reader such as the Omron V3B-4K) by Denver Gingerich. This project is designed
  46. * to be used with the open source Stripe Snoop project at <a>http://stripesnoop.sourceforge.net/</a>.
  47. *
  48. * See <a>http://ossguy.com/ss_usb/</a> for the USB reader hardware project website,
  49. * including construction and support details.
  50. *
  51. * To use, connect your magnetic card reader device to the USB AVR as follows (pin and port mapping may be adjusted
  52. * from the project makefile):
  53. *
  54. * <table>
  55. * <tr>
  56. * <th><b>Signal:</b></th>
  57. * <th><b>AVR Port:</b></th>
  58. * </tr>
  59. * <tr>
  60. * <td>Track 1 Data</td>
  61. * <td>PORTC, Pin 1</td>
  62. * </tr>
  63. * <tr>
  64. * <td>Track 1 Clock</td>
  65. * <td>PORTC, Pin 2</td>
  66. * </tr>
  67. * <tr>
  68. * <td>Track 2 Data</td>
  69. * <td>PORTC, Pin 3</td>
  70. * </tr>
  71. * <tr>
  72. * <td>Track 2 Clock</td>
  73. * <td>PORTC, Pin 0</td>
  74. * </tr>
  75. * <tr>
  76. * <td>Track 3 Data</td>
  77. * <td>PORTC, Pin 5</td>
  78. * </tr>
  79. * <tr>
  80. * <td>Track 3 Clock</td>
  81. * <td>PORTC, Pin 6</td>
  82. * </tr>
  83. * <tr>
  84. * <td>Card Detect</td>
  85. * <td>PORTC, Pin 4</td>
  86. * </tr>
  87. * </table>
  88. *
  89. * This project is based on the LUFA Keyboard project demonstration application, written by Denver Gingerich.
  90. *
  91. * This application uses a keyboard HID driver to communicate the data collected a TTL magnetic stripe reader
  92. * to the connected computer. The raw bitstream obtained from the magnetic stripe reader is "typed" through
  93. * the keyboard driver as 0's and 1's. After every card swipe, the project will send a return key.
  94. *
  95. * \section Sec_Options Project Options
  96. *
  97. * The following defines can be found in this project, which can control the project behaviour when defined, or changed in value.
  98. *
  99. * <table>
  100. * <tr>
  101. * <th><b>Define Name:</b></th>
  102. * <th><b>Location:</b></th>
  103. * <th><b>Description:</b></th>
  104. * </tr>
  105. * <tr>
  106. * <td>MAX_BITS</td>
  107. * <td>CircularBitBuffer.h</td>
  108. * <td>Gives the maximum number of bits per track which can be buffered by the device for later transmission to a host.</td>
  109. * </tr>
  110. * <tr>
  111. * <td>MAG_T1_CLOCK</td>
  112. * <td>AppConfig.h</td>
  113. * <td>Mask for the magnetic card reader's CLOCK line for the reader's track 1 output.</td>
  114. * </tr>
  115. * <tr>
  116. * <td>MAG_T1_DATA</td>
  117. * <td>AppConfig.h</td>
  118. * <td>Mask for the magnetic card reader's DATA line for the reader's track 1 output.</td>
  119. * </tr>
  120. * <tr>
  121. * <td>MAG_T2_CLOCK</td>
  122. * <td>AppConfig.h</td>
  123. * <td>Mask for the magnetic card reader's CLOCK line for the reader's track 2 output.</td>
  124. * </tr>
  125. * <tr>
  126. * <td>MAG_T2_DATA</td>
  127. * <td>AppConfig.h</td>
  128. * <td>Mask for the magnetic card reader's DATA line for the reader's track 2 output.</td>
  129. * </tr>
  130. * <tr>
  131. * <td>MAG_T3_CLOCK</td>
  132. * <td>AppConfig.h</td>
  133. * <td>Mask for the magnetic card reader's CLOCK line for the reader's track 3 output.</td>
  134. * </tr>
  135. * <tr>
  136. * <td>MAG_T3_DATA</td>
  137. * <td>AppConfig.h</td>
  138. * <td>Mask for the magnetic card reader's DATA line for the reader's track 3 output.</td>
  139. * </tr>
  140. * <tr>
  141. * <td>MAG_CARDPRESENT</td>
  142. * <td>AppConfig.h</td>
  143. * <td>Mask for the magnetic card reader's card detection output.</td>
  144. * </tr>
  145. * <tr>
  146. * <td>MAG_PIN</td>
  147. * <td>AppConfig.h</td>
  148. * <td>PIN register that the magnetic card reader device is attached to.</td>
  149. * </tr>
  150. * <tr>
  151. * <td>MAG_PORT</td>
  152. * <td>AppConfig.h</td>
  153. * <td>PORT register that the magnetic card reader device is attached to.</td>
  154. * </tr>
  155. * <tr>
  156. * <td>MAG_DDR</td>
  157. * <td>AppConfig.h</td>
  158. * <td>DDR register that the magnetic card reader device is attached to.</td>
  159. * </tr>
  160. * </table>
  161. */