FSK Decoding?

Go To Last Post
52 posts / 0 new

Pages

Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have some questions regarding this post from 2005 (please dont laugh).http://www.avrfreaks.net/forum/problem-decoding-rfid-transponder-signal-solved?skey=FSK%20decoding

 

In this post, it is mentioned that the transceiver's output is an FSK signal. The output of an em4095 is an AM signal. Also, in the attached image, the signal looks more like an amplitude modulated signal than an fsk. I am confused. I assume this is a dead post as it was posted 12 years ago.

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 2

Hello, azimmali -

 

Do not see any attached image.

 

I really doubt that it is FSK. The whole principle of RFID is that it is powered from the interrogator signal. It generates no signal of its own. It would be really difficult to shift the frequency of a signal that has just been received. But, amplitude - that is a whole different ball game.

 

To be absolutely fair, I have only worked with UHF RFID tags, but the basic constraints are the same. 

 

Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

ka7ehk wrote:
Do not see any attached image.
Link in first post at link provided by OP.  http://www.avrfreaks.net/sites/d...

"void transmigratus(void) {transmigratus();} // recursio infinitus" - larryvc

"It's much more practical to rely on the processing powers of the real debugger, i.e. the one between the keyboard and chair." - JW wek3

"When you arise in the morning think of what a privilege it is to be alive: to breathe, to think, to enjoy, to love." -  Marcus Aurelius

Last Edited: Wed. Dec 20, 2017 - 01:19 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

I'm pretty sure there are plenty of examples on the interwebs for decoding EM4095 data. Depending on the card/fob you're reading, it is usually manchester encoded.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello Jim,

As pointed out by larry, the image is in the link (by the OP). I know that the fundamental representation of data in FSK is through different frequencies - say 1 can be represented by n clock cycles at fc/z and 0 can be represented by n clock cycles at fc/y (fc is the carrier). What I am not getting is the signal processing part, as I have not implemented FSK algorithms so far. Maybe, a try on matlab would help me out. I read on the internet of different implementations using filters, comparators, goertzel, etc. 

 

Which among these could be used to identify an incoming waveform based on data rates? Say, I have a set of different signals (may or may not be the same modulation) that are encoded in different encoding schemes like BiPhase, Manchester, Miller, FSK, PSK, etc., What singular factor can I use to differentiate these signals from that very same set? In an example code that I have, datarates (I think so!) have been used to differentiate incoming signals. I may be wrong with that assumption though.

 

AM

Amateur programmer.
Believe when I tell you that my struggle on here is real.

Last Edited: Wed. Dec 20, 2017 - 04:27 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello Kartman,

 

From what I have read,  EM4095 does modulation/demodulation. Isn't it the signal processor that is responsible for decoding the data? Which means it can be any encoding form - but I guess it usually supports BiPhase, Manchester and Miller. Correct me if I am wrong..

 

 

AM

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks Larry..:) and I just noticed your signature ---what a beautiful quote!

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm confused - what is your actual question here?

 

Are you actually trying to demodulate FSK?

 

Or are you just trying to use an EM4095 ?

 

If you're trying to use an EM4095 then, as Kartman says, there's plenty of information all over the interwebs

 

eg,

 

Datasheet: http://www.emmicroelectronic.com/sites/default/files/public/products/datasheets/em4095_ds.pdf

 

http://www.lmgtfy.com?q=EM4095+Arduino

 

EDIT

 

There is no mention of "FSK" anywhere in the EM4095 datasheet.

Last Edited: Wed. Dec 20, 2017 - 04:30 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Neil,

I am looking to decode FSK not demodulate. The incoming signal is AM. Demodulation of it is done. The data is encoded using FSK. Thanks for the links.

 

 

AM

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well, it only does OOK(AM)

Amateur programmer.
Believe when I tell you that my struggle on here is real.

Last Edited: Wed. Dec 20, 2017 - 04:35 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

OK - so all the references to EM4095 are spurious, then?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

azimmali wrote:
decode FSK not demodulate

Eh?

 

So what do you see as the difference, then?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Ah, I never said that. All I know from the datasheet is that EM4095 does both AM mod and demod. Coming to decoding the data, that is the job of the signal processor.

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I wouldn’t be getting too interested in decoding all possible formats - 125kHz is legacy. The current rfid technology is 13MHz. The chips for these frequencies do the decoding for you - MRFC522 is a popular device and the MIFARE cards are cheap.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This is my understanding of the terminologies

modulation - method of superimposing information onto an electromagnetic field by means of varying a specific parameter of the field.

encoding - a one to one relationship between basic information elements and modulation patterns.

 

How are they the same?

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello Kartman,

Yes it indeed is. I am working on a similar legacy dev kit that operates at 125kHz. I will look into that device.

 

AM

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

azimmali wrote:
modulation - method of superimposing information onto an electromagnetic field

It's not specific to an electromagnetic field - it applies to any carrier signal.

 

But, otherwise, that's a good description

 

encoding - a one to one relationship between basic information elements and modulation patterns.

Again, not necessarily one-to-one.

 

But, clearly, you can't decode a signal until you've demodulated it!

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The demodulation is done - Amplitude Demodulation. The resultant signal is FSK encoded.

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

I really doubt that. Amplitude Demodulation should return a sequence of 1's and 0's. This might, superficially look like FSK, but no more so than any other bit stream. There is probably a start bit and maybe some termination bit(s). To output FSK after an ASK input seems really strange and unlikely.

 

Looked at the spec sheet referenced in #1. No mention, anywhere, of FSK. Where did you get the idea of FSK? The section Signal RDY/CLK gives you some of the details. There is a bit clock that tells you where the bits are, and when each one can be read. That is NOT FSK.

 

Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

Last Edited: Wed. Dec 27, 2017 - 09:50 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

Here’s some info:
http://www.priority1design.com.au/em4100_protocol.html

Manchester encoding might appear as fsk due to fat and skinny bits, but its not fsk. With manchester, the data is encoded into the bit edges. So stop any reference to fsk - it is simply wrong.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I am referencing an ISO document. In that technique the binary data has be encoded such that each bit's duration which is 100 cycles is represented as 50 cycles of x and 50 cycles of y. This representation is for one binary digit (say for zero). Ofcourse there is a start bit. The bit level encoding is indeed very interesting as I observed on the oscilloscope.

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I was referring to this one.

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Again, how do we know what you’re referring to? How does it apply to your problem?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

That refers to the RF protocol. YOU never deal with that. The chip creates it (called encoding) on the transmit side and turns it back into bits (decode) on the receive side. It is totally invisible to you. Why are you so concerned about it? Your transmit chip (or the tag) feeds in bits at one end and your receive chip spits the bits out at the receive end. 

 

Forget about the RF protocol. You need to know almost nothing about it. On top of that, your diagram does not even show FSK (the carrier stays at a constant frequency).

 

Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

Last Edited: Thu. Dec 28, 2017 - 02:48 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ka7ehk wrote:
Looked at the spec sheet referenced in #1. No mention, anywhere, of FSK

Noted at the end of #8

 

Where did you get the idea of FSK?

I tried to establish that - but gave up.

 

It seems to have been based on an entirely spurious comment in an old thread.

 

 

EDIT.

 

typo.

 

Last Edited: Thu. Dec 28, 2017 - 02:22 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well, I think I will have to close this discussion. Maybe the signal is transmitted by a change in Amplitude for every n or m clock cycles. So zero uses n clock cycles and one uses m clock cycles. I feel that the document got me confused as it was mentioned that AM-FSK is used to send data. I assumed the latter was an encoding mechanism(although I haven't heard of any encoding schemes titled as FSK in my academic career)

Amateur programmer.
Believe when I tell you that my struggle on here is real.

Last Edited: Fri. Dec 29, 2017 - 07:43 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

azimmali wrote:
  the document

What document?

 

it was mentioned that AM-FSK is used

As noted several times, the datasheet never once mentions FSK - at all.

 

 

edit

 

and there is no mention of "AM-FSK" in the old thread, either.

 

AM-FSK doesn't really make much sense.

Last Edited: Fri. Dec 29, 2017 - 07:57 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:

azimmali wrote:

  the document

What document?

 

it was mentioned that AM-FSK is used

As noted several times, the datasheet never once mentions FSK - at all.

azimmali wrote:

I am referencing an ISO document...

azimmali, is the document you refer to the ISO document?  Can you post a link to it so that we can also see what the document says?

 

You keep giving us bits and pieces of disjointed information that are very difficult to piece together into anything meaningful enough to give you answers.  Though, as everyone here has said, FSK is not very relevant.

"void transmigratus(void) {transmigratus();} // recursio infinitus" - larryvc

"It's much more practical to rely on the processing powers of the real debugger, i.e. the one between the keyboard and chair." - JW wek3

"When you arise in the morning think of what a privilege it is to be alive: to breathe, to think, to enjoy, to love." -  Marcus Aurelius

Last Edited: Fri. Dec 29, 2017 - 11:44 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

larryvc wrote:
You keep giving us bits and pieces of disjointed information that are very difficult to piece together into anything meaningful

Indeed - see: http://www.avrfreaks.net/comment...

 

@azimmali: again, it would be so much easier if you would talk to your supervisor, because they can see the whole picture - not just these out-of-context snippets.

 

See: http://www.avrfreaks.net/comment...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi all,

HAPPY NEW YEAR!! Apologies for the delayed response, I was on holiday mode. To make things clearer, the encoding here is bit level which is FSK, at the data level - it is Manchester. Someone among you actually pointed that out. I got confused with that.

 

And I did reach out to my supervisor.

 

Thanks

Azim

Amateur programmer.
Believe when I tell you that my struggle on here is real.

Last Edited: Tue. Jan 2, 2018 - 03:41 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Here

 

Amateur programmer.
Believe when I tell you that my struggle on here is real.

Last Edited: Wed. Jan 3, 2018 - 07:50 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

But all of this is done for you by the EM4095 chip - so you don't need to do any of it.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Neil,

The EM chip does not support FSK or PSK bit level encodings. It supports OOK (AM) modulation and Differential BiPhase encoding (at the data level), which is kind of weird as at bit level it should be PSK in some frequency band to support that data level encoding, No?

 

Best,

AM

Amateur programmer.
Believe when I tell you that my struggle on here is real.

Last Edited: Tue. Jan 2, 2018 - 04:11 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Now you're just confusing the issue even more!

 

Why are you even talking about FSK if the chip you're using doesn't support it?

 

Or, if you do actually need FSK, why are you talking about a chip that doesn't support it?

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

That's the encoding Neil. It supports the modulation of tags that use FSK/PSK bit level encoding. All the tags use AM modulation. Why is it confusing? By default it does not offer support to psk/fsk type encoding but can be done by making changes in the circuitry maybe like add an external clock or adding new code snippets for managing timing, interrupts, etc. I could be wrong here. Because, I am not aware if I need to make such changes to decode data at the bit level or data level.

Amateur programmer.
Believe when I tell you that my struggle on here is real.

Last Edited: Tue. Jan 2, 2018 - 04:51 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

azimmali,

 

Can you please tell us in detail what your complete project goal is?  We are struggling to help you, please make it easier for us to do so.

 

Until this is answered, I cannot provide any more detail other than why aren't you looking at using an EM4200;

 

  • Fully compatible with EM4100/4102 and EM4005/4105 communication protocols
  • 128 bit laser programmed ROM (64 and 96 bit option available)
  • Several options of data rate and data encoding: Manchester, Biphase, PSK and FSK
  • Several resonant capacitor integrated on chip (75pF, 210pF or 250pF mask option)
  • 100 to 150 kHz frequency range
  • On-chip rectifier and voltage limiter
  • No external supply buffer capacitor needed
  • -40°C to +85°C temperature range
  • Very low power consumption and High performances

"void transmigratus(void) {transmigratus();} // recursio infinitus" - larryvc

"It's much more practical to rely on the processing powers of the real debugger, i.e. the one between the keyboard and chair." - JW wek3

"When you arise in the morning think of what a privilege it is to be alive: to breathe, to think, to enjoy, to love." -  Marcus Aurelius

Last Edited: Tue. Jan 2, 2018 - 05:05 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Larry,

4200 is the IC used in a tag. 4095 is the transceiver IC /analog front end that receives signals (it forms part of the circuit that does the demodulation and sends the signals for further processing to an MCU)- from say 4200. There is a difference between the two. In simple words, I have some tags and I need to decode them.

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

azimmali wrote:
4200 is the IC used in a tag. 4095 is the transceiver IC /analog front end that receives signals (it forms part of the circuit that does the demodulation and sends the signals for further processing to an MCU)- from say 4200. There is a difference between the two. In simple words, I have some tags and I need to decode them.

Yes sorry, too many numbers in mind, I meant to write EM4097, but even then, the EM4095 you are trying to use is still capable of communicating with most tags.  You are confusing the RF side of the chip, received/transmitted RF signals in several communication protocols, with what happens internal to the chip for the data encoding/decoding.  Hook up a loop antenna to the chip, it will communicate with the tag via RF, and it will decode the data received.  What is so difficult with understanding that concept?

 

Now you have me off on a tangent thinking to build an RFID reader...

 

EDIT: communication protocols in lieu of different formats

"void transmigratus(void) {transmigratus();} // recursio infinitus" - larryvc

"It's much more practical to rely on the processing powers of the real debugger, i.e. the one between the keyboard and chair." - JW wek3

"When you arise in the morning think of what a privilege it is to be alive: to breathe, to think, to enjoy, to love." -  Marcus Aurelius

Last Edited: Tue. Jan 2, 2018 - 05:42 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

 

It was suggested by EM that I use 4095 instead of 4097, as there are no development tools available for EM4097. The concept on paper is simple to understand; implementation of it is where I am confused. Are you implying that it will read data no matter what encoding it is? If so, that's not the case with the dev kit. 

Amateur programmer.
Believe when I tell you that my struggle on here is real.

Last Edited: Tue. Jan 2, 2018 - 05:45 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

EM4095;

 

  • Integrated PLL system to achieve self adaptive carrier frequency to antenna resonant frequency
  • No external quartz required
  • 100 to 150kHz carrier frequency range
  • Direct antenna driving using bridge drivers
  • Data transmission by OOK (100% Amplitude Modulation) using bridge driver
  • Externally adjustable modulation index
  • Multiple transponder protocol compatibility(Ex: EM4102, EM4200, EM4450 and EM4205/EM4305)
  • Sleep mode consumption 1µA
  • USB compatible power supply range
  • -40 to +85°C temperature range
  • Small outline plastic package SO16

"void transmigratus(void) {transmigratus();} // recursio infinitus" - larryvc

"It's much more practical to rely on the processing powers of the real debugger, i.e. the one between the keyboard and chair." - JW wek3

"When you arise in the morning think of what a privilege it is to be alive: to breathe, to think, to enjoy, to love." -  Marcus Aurelius

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

azimmali wrote:
...If so, that's not the case with the dev kit. 

Not sure whether you answered this in another thread, what dev kit?  Please post a link to it here.

 

EDIT:  I believe it is this one EMDB409

"void transmigratus(void) {transmigratus();} // recursio infinitus" - larryvc

"It's much more practical to rely on the processing powers of the real debugger, i.e. the one between the keyboard and chair." - JW wek3

"When you arise in the morning think of what a privilege it is to be alive: to breathe, to think, to enjoy, to love." -  Marcus Aurelius

Last Edited: Tue. Jan 2, 2018 - 05:53 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes it is.

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

azimmali wrote:
It was suggested by EM that I use 4095 instead of 4097, as there are no development tools available for EM4097. The concept on paper is simple to understand; implementation of it is where I am confused. Are you implying that it will read data no matter what encoding it is? If so, that's not the case with the dev kit. 
Why do you say it's not the case?  According to this note in the EMDB409 Fact Sheet;

Also included, 1 credit card format tag of each: EM4200, EM4205, EM4305 and EM4450 

Don't be confused, I am not implying anything, the facts speak for themselves, the EM4095 will read the data as I noted in bolded text in post #40.

 

Also did you see this in the Fact Sheet?

Unified Application Software to configure, read and write information inside the tag memory including source files in C++

Did you look at that code?

 

"void transmigratus(void) {transmigratus();} // recursio infinitus" - larryvc

"It's much more practical to rely on the processing powers of the real debugger, i.e. the one between the keyboard and chair." - JW wek3

"When you arise in the morning think of what a privilege it is to be alive: to breathe, to think, to enjoy, to love." -  Marcus Aurelius

Last Edited: Tue. Jan 2, 2018 - 06:06 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I did try reading tags other than the EM cards that were provided, earlier and the kit wasn't reading them. I have the source files and I have edited a major chunk of it now. Maybe I will have to once again flash the mcu with the original code to see if it's reading any of the other chips. Source files are in c not cpp.

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

azimmali wrote:
Source files are in c not cpp.
Does not surprise me, never have seen perfect documentation from any manufacturer.

 

You still have not stated what your overall goal is.  Is it animal tracking as the ISO document you referenced above suggests?

"void transmigratus(void) {transmigratus();} // recursio infinitus" - larryvc

"It's much more practical to rely on the processing powers of the real debugger, i.e. the one between the keyboard and chair." - JW wek3

"When you arise in the morning think of what a privilege it is to be alive: to breathe, to think, to enjoy, to love." -  Marcus Aurelius

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

For identification.

Amateur programmer.
Believe when I tell you that my struggle on here is real.

Last Edited: Tue. Jan 2, 2018 - 07:11 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Note that these RFID tags are not suitable for tracking.

 

The title of the referenced document said "identification" - not tracking.

 

These things are for identifying the animal when you have it at hand:

 

Image result for pet microchip

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

corrected.

Amateur programmer.
Believe when I tell you that my struggle on here is real.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

larryvc wrote:
...Is it animal tracking as the ISO document you referenced above suggests?
awneil wrote:

The title of the referenced document said "identification" - not tracking.

My fault, wrote too quickly, definitely for identification purposes only.

"void transmigratus(void) {transmigratus();} // recursio infinitus" - larryvc

"It's much more practical to rely on the processing powers of the real debugger, i.e. the one between the keyboard and chair." - JW wek3

"When you arise in the morning think of what a privilege it is to be alive: to breathe, to think, to enjoy, to love." -  Marcus Aurelius

Last Edited: Tue. Jan 2, 2018 - 07:15 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

That's fine. I should have noticed that.

Amateur programmer.
Believe when I tell you that my struggle on here is real.

Pages