CD-ROMS are multilayered disks about 12 cm in diameter, that spin at a constant angular velocity. Information is encoded using "pits" and = "lands" that are sketched in the bottom layer of the CD by a machine at the time of = recording. The laser scans the surface of the CD, and a photoscan device picks up the light = reflected by the reflective layer. The key here is that the light intensity changes every = time the laser goes from a pit to a land, and vice versa. Information can thus be = encoded.
At first it seemed as though encoding information would be simple: just =
translate the code
to binary, and then (maybe) a pit would be a 0, and a land a 1. However, =
this is not possible
because of the physical features of the device: the light censor picks =
the change in the
intensity of the light, rather than reading a specific value. Here is =
the real rule:
A change from a pit to a land, or a land to a pit, is a one. A string = of pits or lands is a string of 0's.
The laser beam wavelength is about 780 nm, and the pits are about 600 nm = wide. The device is thus not accurate enough to precisely read a string of 0's, or a = string of 1's. Also, there is a limitation on the length of a given pit, to allow for = syncronization data. Special conventions have been created to solve this problem. There must = be at least two 0's between two 1's, and the length of any pit must not exceed 10 bits.
In a system very similar to Gray code discussed in class, 8 bit = characters are converted to 14 bits with the ETF conversion. So, to convert the characters C, S, E, 3, = 7, 0 to ETF, we must first convert them to binary, and then use an algorithm, or just look = them up in a table.
Character | ASCII | ETF |
---|---|---|
C | 01000011 | 00000100100001 |
S | 01010011 | 10000001001001 |
E | 01000101 | 00000100001001 |
3 | 00110011 | 00100100010000 |
7 | 00110111 | 00100010001001 |
0 | 00110000 | 00000100100000 |
Now that CSE370 is converted to ETF, the first problem is solved: there = are aways two zeros between two ones. However, there is still the second rule to worry = about: we must not have a string of zeros greater than 10 bits in length. In our particular = case, this does not matter, since nowhere in the ETF string CSE370 will there be 10 zeros. But, the = string C0, for example, would have such a predicament.
To solve this complication, three bits are added for 'padding'. As far = as we know, these can be either 000, or 100, or 001, or 010, and you may use them depending on = the situation. So, for example, if you need to concatenate the strings ...00000 00000... = you can use 010, to prevent 10 0's in a row. So, with this last bit of information, we can = write down the encoding in ETF.
CSE370=0000010010000100010000001001001 0010000010000100100000100100010000 1000010001000100100000000100100000
Now, we can just convert this to pits and lands, using p for pit and e = for land.
pppppeeepppppeeeepppppppeeepppeeeppppppeeeeepppee eeeepppeeeepppppeeeeeppppeeeepppeeeeeeeeepppeeeeee
If we were to draw this out, it would look suspiciously like a timing =
curcuit, so we'll spare
the reader that terrible agonizing pain. However, for more information, =
please refer to any
of the following websites:
General =
description
Physical/mathematical aspects (pdf)
ETF=
conversion talbe