We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi , I am not sure if my question is relavent to this forum or not but its an interesting programing prblem that i am facing. I hope someone here would be able to give usefull advice on it. my microcontroller is receiving a stream of data of 25bits. The stream is 0000011100000001000111000. These bits are encoded strangely. A zero appears as follows, (please ignore the dots, they are just there to hang the pattern.) ___ |...| |...| |...| |...|________ The ratio of high-time to low-time is 1:3. while one appears as follows: ________ |...........| |...........| |...........| |...........|___ The ratio of high-time to low-time is 3:1. My question is that what is this encoding scheme, and how can i read this in a microcontroller ?? I am receiving this stream on a normal pin which is not an interrupt pin. I am looking for some neat algorithm to read the stream faithfully. Any help would be great; thankz & Bye .
This looks very similar to RS232 communications. It looks like there is a start bit, a redundant data bit, and a stop bit. A timer interrupt could do the sampling. Some of the commercial UARTs use 16 clocks per bit. Once they find the edge of the start bit, they sample the value of the bits in the center. The majority of the three bits in the center of the bit could define the value of the bit. I'd guess that this is synchronous data, rather than asynchronous, so part of the challenge is to separate the start and stop bits from the data.