rfid software.pdf

Upload: selmir-jagodic

Post on 03-Apr-2018

242 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 RFID Software.pdf

    1/13

    RFID Software:

    Once the data was converted into a digital Manchester signal by the RFID circuit, we then had

    to process it and convert it into a useful format to the microcontroller. For this, we decided towrite a library for the RFID, calledrfid.c, which dealt specifically with the task ofreceiving and interpreting an RFID signal. Unlike Ricardo and Craigs design for RFID, wedid not use a sampling method for Manchester decoding. Instead, we opted for a more robust

    method with less interrupts a timing-based method. This method only interrupts when ithas to i.e. on a change of logic value, and then the microcontroller interprets the amount oftime between interrupts in order to determine the value of the Manchester bit. To do this, wego through a sequence of events after turning on the external interrupt for any logic change:

    1. Wait until we receive a start sequence (extra long logic high)2. On next interrupt, decode the first Manchester bit: delay by a very short amount to

    ensure steady state, read the logic level.

    3. If time difference is short, save the read logic level into a data buffer only if it wasntrecorded last time. If time difference is long, save the logic level.

    4. If anything was recorded in the previous step, add to the checksum such that it issample number dependent (we used sample * i % 9, where i is the sample number)

    5. Repeat steps 2 and 3 until we read an end sequence (extra long logic low)6. Insert a2 at the end of the buffer, so we know where we stopped recording

    The sample number dependent checksum was added as a feature since it is more likely to bewrong in the case of multiple bit errors. If we only added the binary values, we would have

    created a parity check, which may not have been sufficient in cases of a lot of noise. Thisallowed us to cut down on the number of redundancy checks by a factor of three, and still getthe same reliable results, leading to a faster system. To better explain what we mean by

    short,long, andextra long: since Manchester encoding has a logic change atevery data bit, the longest delay we could have would be 0110. That means that during the

    pair of 1s, it stays logic high for two half-cycles. The shortest delay we could have would be0101, where the 1 stays high for only one half-cycle. For the RFID system, if we clock it atthe same scale as the previous two, there is also another state, which is 111110. This is a verylong time, easily detectable, and denotes the start of a data stream. Once we successfully fillthe buffer, we ensure the reliability by checking it multiple times. We checked 20 times,which was way overkill, but we really wanted to minimize the chance of a wrong ID. In

    reality, two checks actually is sufficient for most of the time, with three checks deliveringnear perfect results. Since we are only reading a 44-bit value from the RFID tag, we can dothe 20 checks very quickly (approximately one second in most cases). We saved each data bitas a char in a string, so then we just convert it into a long using bin2dec so it can be returnedusing less space than a string. One cool final note was that by doing Manchester decodingwith the timing-based method, we were able to get the data by only connecting one wire forground and one wire for data to the microcontroller!

    Manchester Encoding [from Wikipedia]:

    In telecommunications, Manchester code is a line code in which the encoding of each data bithas at least one transition and occupies the same time. It therefore has no DC component, andis self-clocking, which means that it may be inductively or capacitively coupled, and that aclock signal can be recovered from the encoded data. Essentially Manchester encoding works

  • 7/28/2019 RFID Software.pdf

    2/13

    in the following way: A transition from 0 to 1 corresponds to a single 1 value and atransition from 1 to 0 corresponds to a single0 value. Thus 01 -> 1, 10 -> 0, and thereduced bitstream is half as long as the original bitstream.

    Ethernet

    Hardware Overview:

    Master Hardware Circuit Schematic(Click Here for Full Size)

    Ethernet Background:

    Ethernet is the term encompassing the primarily wire-based network protocols andspecifications in use throughout the world today. It was originally developed in the early1970s by Xerox PARC in order to facilitate the development of large computernetworks. Ethernet uses a packet-frame architecture to transmit data (namely IP), and hasmethods available to deal with network congestion and reliable transport. Specifically, the

    pieces of the Ethernet that we used directly were: cat5 twisted-pair cabling, TCP(Transmission Control Protocol), MAC (Media Access Control), IP (Internet Protocol), HTTP(Hypertext Transport Protocol).

    Connecting these Ethernet devices together physically is twisted-pair cat5e cabling. We used100BASE-TX speed, which can transmit up to 100Mb/s over the line. This IEEE 802.3ustandard provides an efficient physical connection layer utilizing (not surprisingly) twisted

    pairs of cable to transmit bits. Clients receiving or transmitting using 100BASE-TX areresponsible for synchronization and encoding bits into4B5B binary encoding.

    In IP, each device gets an IP address that uniquely identifies itself to the local network. This

    number is a 32-bit integer, usually organized into 4 bytes separated by periods, for examplex.x.x.x, where x represents a 0-255 number. What is called a subnet mask also exists, whichcreates a bitmask which determines which bits must be fixed during communication.A typical

    http://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/images/photos/Mega16_WIZ812MJ.gifhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/images/photos/Mega16_WIZ812MJ.gifhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/images/photos/Mega16_WIZ812MJ.gifhttp://www.cs.berkeley.edu/~kfall/EE122/lec05/sld014.htmhttp://www.cs.berkeley.edu/~kfall/EE122/lec05/sld014.htmhttp://www.cs.berkeley.edu/~kfall/EE122/lec05/sld014.htmhttp://www.cs.berkeley.edu/~kfall/EE122/lec05/sld014.htmhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/images/photos/Mega16_WIZ812MJ.gif
  • 7/28/2019 RFID Software.pdf

    3/13

    subnet mask might be 255.255.255.0 (corresponding to 0xFF.0xFF.0xFF.0x00), meaning thatthe device can only connect to other devices with address x.x.x.y, where y can be anythingfrom0-255.

    Additionally, for device to device communication in IP, each device needs to have a MAC

    address. This 48-bit number (every byte delimited by a :) is a unique identifier for eachEthernet interface, and IP uses it so that packets can find their way to the destination. A MACaddress can be considered like a Social Security Number of a networked device. Anexample MAC address might be: 48:32:AE:4B:18:F6.

    Running on top of IP, we used TCP to provide reliable data transfer. This protocol, which isdesigned to maintain connection state, encapsulates its underlying data with a TCP header of20-60 bytes, which provides all of the information necessary for reliable transmission andcongestion control. Aside from this, we will leave it to the reader to research, since TCP isvery well documented elsewhere and not a significant portion of our project.

    Finally, the most visible method of communicating over Ethernet is via HTTP. Once we areat the point that we can take the underlying levels previously described for granted, we cantransmit data. HTTP is the incredibly ubiquitous protocol used in the World Wide Webtoday, and specifies methods of requesting and receiving text from an IP address. HTTP usesa header format that looks like:

    GET /process.php?rfid=491829822&pin=1234&amt=30 HTTP/1.1Host: 10.0.0.100

    As you can see, HTTP headers can be relatively simple. In reality, though, a typical web pagerequest uses many more optional parameters that give extra information to the server, but thisis beyond the scope of our project. In order to pass context information to the server, whichwould allow it to display dynamic content, HTTP specifies two methods: GET andPOST. The latter essentially codes variables, hidden to the user, as part of the HTTP data,while the former simply appends the variable names and values to the end of the URL, using aformat such as seen in the diagram.

    Our Implementation:

    http://www.soi.wide.ad.jp/class/20020032/slides/11/15.htmlhttp://www.soi.wide.ad.jp/class/20020032/slides/11/15.htmlhttp://www.soi.wide.ad.jp/class/20020032/slides/11/15.html
  • 7/28/2019 RFID Software.pdf

    4/13

    Our Ethernet Chip: WIZ812MJ

    Luckily for us, we were able to get our hands on a Wiznet WIZ812MJ Ethernet developmentboard, which abstracted the design for every layer except HTTP. The WIZ812MJ board gaveus pins and a physical Ethernet port, which was actually connected to a Wiznet W5100 chip,

    which did the actual network processing. So, instead of actually coding the complex statemachines associated with each protocol, the W5100 chip did that for us, and we just had tocommunicate with it via SPI (Serial Peripheral Interface).

    Communicating over HTTP:

    For our application, we sent HTTP GET requests, with our parameters encoded as GETvariables. First, we had to create a library for interfacing with the W5100, which we calledethlib.c. This library was created with a base from Brian Bryces AVR POP3 mail fetcher,which also used the W5100. In essence, this library provided the framework for setting upand connecting to an Ethernet network. All of the code was modularized and parts that were

    unnecessary to us were stripped so that it could be executed from another program, and someadditional features were added. In addition, Bryces code had some connection reliability

    problems that were diagnosed, debugged, and fixed in the final library. Some of the featureswe added was a connect_defaultTCP method, which just connected the device to predefined

    parameters. This helped clean up the code a lot, and also made it easy to change theparameters. We decided against using the EEPROM storage available on the ATMega16 fornetwork parameter storage as Bryce did. This design decision was simply because we hadenough space to commit them to data memory, and we did not want to add a whole set offunctions dedicated to setting up the device from EEPROM. That said, a lot of time was stillspent debugging and documenting the W5100 until we were satisfied we had an extremelyreliable device and connection established. We used 10.0.0.100 as the IP address of theserver, and 10.0.0.101 as the IP address of the W5100.

    For HTTP communication, since the W5100 reports the entire HTTP response back(including the header), we needed a way of parsing out the data. The communication standardwe designed had the actual data stream start with a $ character, and end with a ^character. This allowed us to efficiently discard the HTTP response header in C code, so thatwe would be left with the data. The authentication response was also encoded in a specificformat: if the authentication was not successful, we returned a status code of 0, followed bynothing else. If the authentication was successful, but the user did not have sufficient fundsfor the transaction, we denoted this with status code 1, followed by the users name. If

    everything went well, and the transaction succeeded, we return status code 2, followed bythe users name. An example success, for example, looked like: $2Harry^.

    Ethernet Backend Operations:

    From the point when we had the Ethernet library and a data transfer protocol established, allthat was left was to use it to transmit the data we collected from our user to the server. As

    previously stated, we did this by encoding the data as GET variables: rfid, pin, andamt. rfid corresponds to the RFID value, converted to a long, read in from the RFIDmethod. pin corresponds to the entered pin number, and amt corresponds to the entered

    payment amount. This data was passed to a PHP script, process.php, which was running on a

    LAMP (Linux, Apache2, Mysql, PHP) server. The process.php scripts purpose was two-fold: authenticating the user and replying with the appropriate status code and authenticationdata, and also to log every attempt made to access the system. We made sure to output

  • 7/28/2019 RFID Software.pdf

    5/13

    something every time process.php was accessedauthentication and payment successes werelogged to the rfid.log file, and anything else was logged to fail.log, along with the reasonfor failure. In addition, if there was a successful transaction, we also logged the informationabout the transaction into the database, in a specific table called transactions. This presentsusers with a way to view their transaction history. Once all has been logged, and the response

    sent, the microcontroller then parses the response and displays an appropriate message to theuser.

    User Database Snapshot(Click Here for Full Size)

    User Transaction Snapshot(Click Here for Full Size)

    http://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/images/photos/DatabaseDetail.pnghttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/images/photos/DatabaseDetail.pnghttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/images/photos/DatabaseDetail.pnghttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/images/photos/DatabaseTransaction.pnghttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/images/photos/DatabaseTransaction.pnghttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/images/photos/DatabaseTransaction.pnghttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/images/photos/DatabaseTransaction.pnghttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/images/photos/DatabaseDetail.png
  • 7/28/2019 RFID Software.pdf

    6/13

    Ethernet Pin Configuration:

    J1 J2

    1 -> B.5 1 -> VCC

    2 -> B.6 3 -> B.7

    11 -> GND 4 -> B.4

    12 -> VCC 5 -> GND

    6 -> GND

    7 -> GND

    20 -> GND

    LCD:

    We decided to use a 16x2 LCD as it was readily available in the ECE 4760 lab. We had used

    the LCD in multiple labs previously and the documentation for the LCD can be found here.Information on how to connect the LCD and code to test the connections can be found in theSpring 2010, ECE 4760, Lab 1 pagehere.

    Keypad:

    We needed a keypad that had all the decimal digits (i.e. 0-9) and a couple of extra keys forReset and Cancel functions. We decided to use the 4x4 keypad as it was easily availablein the ECE 4760 lab. We connected Pins 1-8 on the keypad to Port A pins A.0-A.7. Moreinformation on wiring for the keypad and the code to test the connections can be found in theSpring 2010, ECE 4760, Lab 2 pagehere.

    Microcontroller Operations:

    We decided to use the Atmel Mega 16 microcontroller (as opposed to the Mega 644 that wehad used in all of our labs during the semester) simply because we did not need much on-chipmemory and the Mega 16 would count as a free chip in our budget (of course, we were alsocomfortably under-budget). We would like to extend our gratitude to Professor Land for

    providing us with his excellently designed MCU board. We used the Max233CPP for theRS232 connection during the debugging phases, but did not need it in the final projectdemonstration. The documentation for this board can be foundhere.

    Prototpe Board Schematic (Credit Prof. Land)

    http://instruct1.cit.cornell.edu/courses/ee476/labs/s2010/LCD-64.pdfhttp://instruct1.cit.cornell.edu/courses/ee476/labs/s2010/LCD-64.pdfhttp://instruct1.cit.cornell.edu/courses/ee476/labs/s2010/LCD-64.pdfhttp://instruct1.cit.cornell.edu/courses/ee476/labs/s2010/lab1.htmlhttp://instruct1.cit.cornell.edu/courses/ee476/labs/s2010/lab1.htmlhttp://instruct1.cit.cornell.edu/courses/ee476/labs/s2010/lab1.htmlhttp://instruct1.cit.cornell.edu/courses/ee476/labs/s2010/lab2.htmlhttp://instruct1.cit.cornell.edu/courses/ee476/labs/s2010/lab2.htmlhttp://instruct1.cit.cornell.edu/courses/ee476/labs/s2010/lab2.htmlhttp://www.nbb.cornell.edu/neurobio/land/PROJECTS/Protoboard476/index.htmlhttp://www.nbb.cornell.edu/neurobio/land/PROJECTS/Protoboard476/index.htmlhttp://www.nbb.cornell.edu/neurobio/land/PROJECTS/Protoboard476/index.htmlhttp://www.nbb.cornell.edu/neurobio/land/PROJECTS/Protoboard476/index.htmlhttp://instruct1.cit.cornell.edu/courses/ee476/labs/s2010/lab2.htmlhttp://instruct1.cit.cornell.edu/courses/ee476/labs/s2010/lab1.htmlhttp://instruct1.cit.cornell.edu/courses/ee476/labs/s2010/LCD-64.pdf
  • 7/28/2019 RFID Software.pdf

    7/13

    Completed Prototpe Board Circuit (Credit Prof. Land)

    Port/Pin Configuration on MCU:

    Pin D.7 - 125[kHz] square wave to generate the RFID carrier frequency.Pin D.3 - External Interrupt 1 to accept filtered data from the RFID reception circuit.Port A - Keypad (Pins [1-8] on keypad correspond to Pins [A.0-A.7]).Port C - LCD (please refer to the LCD section of the report for the setup). Pins [B.4 - B.7] - Ethernet (please refer to the Ethernet section of the report for the setup).

    Standards:

    ISO/IEC 14443 or ISO/IEC 15693:

    The Cornell ID cards we use in this project are developed by HID. Specifically, the CornellID is a HID DuoProx II card that is also ISO 7810 compliant (magnetic strip). We did notneed to use the magnetic strip feature. The card is also ISO/IEC 15693 compliant; ISO 15693was developed in 1999 and has become the standard for contactless payment systems.

    ISO/IEC 18000:

    This is an international standard that describes a series of different RFID technologies. Weuse ISO 18000-2, which describes the air interface communications below 135 [kHz].

    TCP/IP [taken from Wikipedia]:

    The Internet Protocol Suite (commonly known as TCP/IP) is the set of communicationsprotocols used for the Internet and other similar networks. It is named from two of the mostimportant protocols in it: the Transmission Control Protocol (TCP) and the Internet Protocol(IP), which were the first two networking protocols defined in this standard. Today's IPnetworking represents a synthesis of several developments that began to evolve in the 1960sand 1970s, namely the Internet and LANs (Local Area Networks), which emerged in the mid-to late-1980s, together with the advent of the World Wide Web in the early 1990s.

    Ethernet [taken from Wikipedia]:

    Ethernet is a family of frame-based computer networking technologies for local area networks(LANs). It defines a number of wiring and signaling standards for the Physical Layer of theOSI networking model as well as a common addressing format and Media Access Control at

  • 7/28/2019 RFID Software.pdf

    8/13

    the Data Link Layer. Ethernet is standardized as IEEE 802.3. The combination of the twistedpair versions of Ethernet for connecting end systems to the network, along with the fiber opticversions for site backbones, is the most widespread wired LAN technology.

    mySQL [taken from Wikipedia]:

    MySQL is a relational database management system (RDBMS)[1] that runs as a serverproviding multi-user access to a number of databases.

    Results

    Speed of Execution:

    Our mobile-payment system prototype completed read an RFID tag in about a second, anddatabase access over Ethernet took less than 1 second. In all, the user would be strictly

    waiting only for a total of about 2 seconds. Of course, this 2 seconds does not take intoaccount the time that the cashier takes to enter the amount, or the time that the user takes toenter his/her security pin. In order to make the RFID reading quicker we would need to reducethe number of times we check the tag. We did not want to reduce the number of checks from20 to say 5, but that would also reduce the accuracy of the system.

    Accuracy:

    We had an accuracy of 100%. We had no false positives, as we would check the same tag 20times in order to make sure that the ID is actually the same. However, depending on the anglein which the tag is held in front of the coil, or the distance of the angle from the coil, we did

    have a few false negatives. Now, we could account for this in software but we cant find anyhardware method to detect this scenario. In the eventual commercial application, when the tagis used a sticker on the users phone, users could simply be prompted to bring their phonewithin a 1 reading distance.

    Safety:

    This device does not pose any safety or health threats to its users. We have an insulating card-board box as the container for the system and the user interacts with the device only throughthe keypad, which is made out of insulating plastic. There are power and Ethernet cables thatare connected to the device and these components cannot inflict harm upon a user as the user

    does not interact with these cables.

    Interference:

    This is an issue that any communication medium deals with, however, as this is a Near-Field-Communication system, chances of interference from another 125[kHz] emitter arevery slim. Also, if there are two tags on a users phone (say for di fferent applications, bothusing 125[kHz] as the carrier frequency), the system would be unusable. However, in thegeneral case, this system does not suffer from any interference issues.

    Usability:

    Our system is usable by most individuals without serious physical ailments. Individuals withcertain disabilities may find our device inconvenient to use, however we are in no ways

  • 7/28/2019 RFID Software.pdf

    9/13

    discriminating against anyone. The device may be modified so as to offer auditory feedbackfor the blind, Braille key-modification on the keypad and possibly voice recognition forauthentication for individuals who have lost their hands.

    Conclusions

    We feel that we have successfully implemented the first prototype of our mobile-paymentsystem. We achieved every goal that we had defined in our Project Proposal and at the end ofa fantastic five weeks we are extremely satisfied with our mammoth project! We will belooking forward to adding all our friends to our database and stress-testing the system to ironout any creases. Our next step will be to implement data transfer over a 2G network, afterwhich, we will be aim to add levels of encryption to make the system hack-proof.

    Relief, Satisfaction, Happiness!

    Ethical Considerations:

    We ensured that our project properly follows the IEEE Code of Ethics and our project doesnot pose any ethical problems. We believe that all the decisions we made were fully ethicaland followed the code of ethics guidelines. While working in lab we ensured that we met withthe highest safety and health standards, and made sure that we were not adversely affectingthe welfare of the public. Moreover, this device does not pose any safety or health threats toits users. We have an insulating card-board box as the container for the system and the userinteracts with the device only through the keypad, which is made out of insulating plastic.There are power and Ethernet cables that are connected to the device and these componentscannot inflict harm upon a user as the user does not interact with these cables.While developing this project we did not come across any situations that involved perceivedconflicts of interest. In fact, as is expected in the ECE 4760 lab we were always willing tohelp our fellow classmates whenever they asked for assistance in their projects. To ourknowledge we have been fully honest in making any claims or stating any estimates based on

    measured data. There was never any instance of bribery that we encountered. Also, as wehave mentioned before, neither of us were experts in the fields of the various components weused in our project, and our goal was to improve the understanding of technology, its

  • 7/28/2019 RFID Software.pdf

    10/13

    potential applications and eventual consequences. We hoped to use existing technologies todevelop a device that can truly serve as a proof-of-concept for a mobile-payment system. Wehad intended to maintain and improve our technical competence and understand that we canundertake technological tasks for others only if we are qualified by training, or after the fulldisclosure of pertinent limitations.

    We are open to advice, criticism and essentially any comments on our technical work. Wewill be willing to acknowledge and pleased to correct any errors, and have made sure to credit

    properly the contributions of others. Our device does not discriminate against any race,religion, gender, age or national origin. Individuals with certain disabilities may find ourdevice inconvenient to use, however we are in no ways discriminating against anyone. Thedevice may be modified so as to offer auditory feedback for the blind, Braille key-modification on the keypad and possibly voice recognition for authentication for individualswho have lost their hands. During the course of our project, we made sure to avoid injuringany fellow classmates, their property or reputation by malicious action. On the contrary, wewere always glad to help our classmates out whenever we could be of assistance.

    Intellectual Property Considerations:

    As mentioned before, neither my partner nor I have taken courses in RFID design and in factthis was our first experience in working with the standard. We have made sure to cite any andall designs that we referenced (in our Acknowledgements section) and locally whiledescribing the module. There are many patents filed by the HID corporation itself on methodsto read their cards (an example can be foundhere. Similarly there are many patents filedunder mobile payments (an example can be foundhere. However, we have violated no patentswhile working on our project as (1) we have a specific concept for our final system (and this

    prototype is just the first step in getting there), (2) this is an academic project that is followingall FCC standards .We are very grateful to WIZNET for sampling us their WIZ812MJ module. They did notrequire us to sign any non-disclosure as no code came with the device.

    Legal Considerations:

    [From RFID Gazette] Part 15 of the FCCs rules for low-powered devices deals with RFIDregulations. RFID devices are referred to as intentional radiators. These low-powereddevices do not raise a serious threat of interference with other devices and hence can beoperated without a license. All the same, RFID devices have to meet the RF emissions

    limitations and power restrictions as laid down by the FCC.

    Societal Impact:

    As Internet and ATM machines are unavailable in rural areas and penetration is low even inurban areas, the following problems exist:

    1. Individuals who have opened bank accounts in the cities have a problem accessingtheir bank-services

    2. Individuals without bank-accounts who would like to avail of convenient services suchas ATM debit cards have to resort to cash for all their financial needs

    3. Migrants working in places elsewhere in the country have difficulties sending theirremittances home

    http://www.google.com/patents?id=40ALAAAAEBAJ&printsec=abstract&zoom=4#v=onepage&q&f=falsehttp://www.google.com/patents?id=40ALAAAAEBAJ&printsec=abstract&zoom=4#v=onepage&q&f=falsehttp://www.google.com/patents?id=40ALAAAAEBAJ&printsec=abstract&zoom=4#v=onepage&q&f=falsehttp://www.google.com/patents?id=k0EZAAAAEBAJ&printsec=abstract&zoom=4#v=onepage&q&f=falsehttp://www.google.com/patents?id=k0EZAAAAEBAJ&printsec=abstract&zoom=4#v=onepage&q&f=falsehttp://www.google.com/patents?id=k0EZAAAAEBAJ&printsec=abstract&zoom=4#v=onepage&q&f=falsehttp://www.google.com/patents?id=k0EZAAAAEBAJ&printsec=abstract&zoom=4#v=onepage&q&f=falsehttp://www.google.com/patents?id=40ALAAAAEBAJ&printsec=abstract&zoom=4#v=onepage&q&f=false
  • 7/28/2019 RFID Software.pdf

    11/13

    4. Financial institutions find it unviable to setup station in remote locations in thecountry

    5. Micro-finance lenders have trouble connecting with viable recipients6. Average Revenues Per User and margins for telecomm operators have been declining

    and the field needs Value Added Services if it is to sustain healthy growth

    An idea such as Mivo has the potential to solve these issues. We see many problems intodays payment systems in developed countries- security and convenience (of say, peer-to-

    peer payments) being the important ones. No system is perfect but the system we envisioncould potentially solve these issues.

    Acknowledgements:

    First and foremost we would like to extend our gratitude to Professor Bruce Land forpreparing us to develop our Final Project through the course of the semester, have the labopen endless hours for our projects and for helping us debug our problems. We want to thank

    Bruce for his code for the LCD libraries. We would also like to thank all the TAs for all theirhelp and particularly our Friday lab TA, Yuchen Zhang.We are extremely grateful toWIZNETfor donating us theirWIZ812MJmodule. We wouldrecommend any future ECE 4760 students to approach WIZNET for their networkingconsiderations!Finally, we are grateful to Craig Ross and Ricardo Goto (Spring 2006), whose comprehensivereport made it possible for us to complete our project in the given time, even though we hadso many varied components to integrate into a single microcontroller chip. Their project can

    be found at:http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/cjr37/Website/index.htm .We found the microID 125[kHz] reference guide through them which turned out to be themost helpful resource. The datasheet can be found at:http://ww1.microchip.com/downloads/en/DeviceDoc/51115F.pdf.

    We would also like to thank Brian A. Bryce for his Ethernet code. Brian wrote POP3 Emailclient using W5100 and his code can be found at:http://babryce.com/w5100/emailV010.c . Itis quite a co-incidence that Brian is actually a Cornell alumni (we found out from his stellarCV).

    Division of Work:

    Harsh HarryRFID Circuit RFID Receive Code

    RFID Transmit Code Ethernet Code

    State Machine Code State Machine Code

    System Integration System Integration

    Final Report Final Report

    Website Design

    Appendix

    http://www.wiznet.co.kr/en/http://www.wiznet.co.kr/en/http://www.wiznet.co.kr/en/ftp://ftp.efo.ru/pub/wiznet/WIZ812MJ%20Datasheet_V_1.0.pdfftp://ftp.efo.ru/pub/wiznet/WIZ812MJ%20Datasheet_V_1.0.pdfftp://ftp.efo.ru/pub/wiznet/WIZ812MJ%20Datasheet_V_1.0.pdfhttp://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/cjr37/Website/index.htmhttp://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/cjr37/Website/index.htmhttp://ww1.microchip.com/downloads/en/DeviceDoc/51115F.pdfhttp://ww1.microchip.com/downloads/en/DeviceDoc/51115F.pdfhttp://babryce.com/w5100/emailV010.chttp://babryce.com/w5100/emailV010.chttp://babryce.com/w5100/emailV010.chttp://babryce.com/w5100/emailV010.chttp://ww1.microchip.com/downloads/en/DeviceDoc/51115F.pdfhttp://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/cjr37/Website/index.htmftp://ftp.efo.ru/pub/wiznet/WIZ812MJ%20Datasheet_V_1.0.pdfhttp://www.wiznet.co.kr/en/
  • 7/28/2019 RFID Software.pdf

    12/13

    Parts List

    PartManufacturer/

    SupplierDigiKey Part Number

    Unit

    CostQuantity Total

    RF Choke

    JW Miller A Bourns

    Company 5800-102-RC

    $1.33 1 $1.33

    Op Amp Texas Instruments TL084CN $0.63 1 $0.63

    DecadeCounter

    Texas Instruments CD4017BE $0.50 1 $0.50

    Dual DFlip Flop

    ECE 4760 Lab SN74HC74N $0.00 1 $0.00

    Diodes ECE 4760 Lab 1N4001 $0.00 1 $0.00

    Transistors ECE 4760 Lab 2N3906. 2N3904 $0.00 2 $0.00

    Ethernet

    Controller

    WIZNET WIZ812MJ $0.00 1 $0.00

    LCD ECE 4760 Lab - $8.00 1 $8.00

    Keypad ECE 4760 Lab - $6.00 1 $6.00

    Breadoard ECE 4760 Lab - $6.00 1 $6.00

    PowerSupply

    ECE 4760 Lab - $5.00 1 $5.00

    CustomPC Board

    ECE 4760 Lab - $4.00 1 $4.00

    Mega16 ECE 4760 Lab - $0.00 1 $0.00

    DIPsockets ECE 4760 Lab - $0.50 2 $1.00

    HeaderPins

    ECE 4760 Lab - $0.05 60 $3.00

    Misc:Caps/Resistors/Regulators

    ECE 4760 Lab - $0.00 1 $0.00

    Total $35.46

    Code Listings:

    Main Program Files:state_machine.cethlib.crfid.c

    HTTP Backend Files:eth_setup_476.shmysql_close.inc.phpmysql_connect.inc.php

    process.php

    http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=M8301-NDhttp://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=M8301-NDhttp://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-1784-5-NDhttp://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-1784-5-NDhttp://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-2037-5-NDhttp://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-2037-5-NDhttp://www.wiznet.co.kr/en/http://www.wiznet.co.kr/en/ftp://ftp.efo.ru/pub/wiznet/WIZ812MJ%20Datasheet_V_1.0.pdfftp://ftp.efo.ru/pub/wiznet/WIZ812MJ%20Datasheet_V_1.0.pdfhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/state_machine.chttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/state_machine.chttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/ethlib.chttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/ethlib.chttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/rfid.chttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/rfid.chttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/eth_setup_476.shhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/eth_setup_476.shhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/mysql_close.inc.phphttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/mysql_close.inc.phphttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/mysql_connect.inc.phphttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/mysql_connect.inc.phphttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/process.phphttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/process.phphttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/process.phphttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/mysql_connect.inc.phphttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/mysql_close.inc.phphttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/eth_setup_476.shhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/rfid.chttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/ethlib.chttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/state_machine.cftp://ftp.efo.ru/pub/wiznet/WIZ812MJ%20Datasheet_V_1.0.pdfhttp://www.wiznet.co.kr/en/http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-2037-5-NDhttp://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-1784-5-NDhttp://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=M8301-ND
  • 7/28/2019 RFID Software.pdf

    13/13

    Libary and Header Files:ethlib.hrfid.hlcd_lib.clcd_lib.h

    uart.cuart.h

    References

    MicroID 125[kHz] Reference GuideRicardo and Craigs websiteBryan Bryces websiteWIZ812MJ datasheet

    ATMega16 datasheet

    http://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/ethlib.hhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/ethlib.hhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/rfid.hhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/rfid.hhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/lcd_lib.chttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/lcd_lib.chttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/lcd_lib.hhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/lcd_lib.hhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/uart.chttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/uart.chttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/uart.hhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/uart.hhttp://ww1.microchip.com/downloads/en/DeviceDoc/51115F.pdfhttp://ww1.microchip.com/downloads/en/DeviceDoc/51115F.pdfhttp://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/cjr37/Website/index.htmhttp://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/cjr37/Website/index.htmhttp://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/cjr37/Website/index.htmhttp://babryce.com/w5100/http://babryce.com/w5100/ftp://ftp.efo.ru/pub/wiznet/WIZ812MJ%20Datasheet_V_1.0.pdfftp://ftp.efo.ru/pub/wiznet/WIZ812MJ%20Datasheet_V_1.0.pdfftp://ftp.efo.ru/pub/wiznet/WIZ812MJ%20Datasheet_V_1.0.pdfftp://ftp.efo.ru/pub/wiznet/WIZ812MJ%20Datasheet_V_1.0.pdfftp://ftp.efo.ru/pub/wiznet/WIZ812MJ%20Datasheet_V_1.0.pdfftp://ftp.efo.ru/pub/wiznet/WIZ812MJ%20Datasheet_V_1.0.pdfhttp://babryce.com/w5100/http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/cjr37/Website/index.htmhttp://ww1.microchip.com/downloads/en/DeviceDoc/51115F.pdfhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/uart.hhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/uart.chttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/lcd_lib.hhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/lcd_lib.chttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/rfid.hhttp://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/hc448_heb47/hc448_heb47/ethlib.h