1 Shared medium phone Karim Liman-Tinguiri, Isabel Pesce Mattos, and Alexandre Oliveira. Table of Contents Overview ....................................................................................................................................................... 2 Sync Adder and Sync Remover (Karim) ......................................................................................................... 3 The Sync Adder (Karim) ............................................................................................................................. 3 The physical layer – the MAX 485 transceivers (Karim) ........................................................................... 4 The Sync Remover (Karim) ........................................................................................................................ 5 The Phone FSM (Karim) ................................................................................................................................ 7 Mic Wrapper (Alex) ....................................................................................................................................... 8 Voice Buffer (Alex) ...................................................................................................................................... 10 TCU (Transmission Control Unit) (Alex) ...................................................................................................... 11 Parity “Stuffer” (Isabel) ............................................................................................................................... 13 Overview ................................................................................................................................................. 13 Detailed implementation ........................................................................................................................ 13 Parity “Destuffer” (Isabel) ........................................................................................................................... 14 Overview ................................................................................................................................................. 14 Detailed implementation ........................................................................................................................ 14 IDLE: .................................................................................................................................................... 15 SAMPLING: .......................................................................................................................................... 15 SAMPED_WAITING_FOR_TCU: ........................................................................................................... 15 SENDING _TO_TCU: ............................................................................................................................ 15 How correction works? ....................................................................................................................... 15 Packet Analyzer (Isabel) .............................................................................................................................. 16 Overview ................................................................................................................................................. 16 Detailed implementation ........................................................................................................................ 17 IDLE: .................................................................................................................................................... 17 S_SAMPLING_PTYPE: .......................................................................................................................... 17 S_WAITING_FOR_TYPE0_TO_END: ..................................................................................................... 172 S_TRANS_TYPE1_1 and S_TRANS_TYPE1_2: ...................................................................................... 17 Siren Generator and “I’m Calling Sound” (Isabel) ....................................................................................... 18 Summary ..................................................................................................................................................... 18 Table of Figures ........................................................................................................................................... 19 Overview Our project is a phone network that allows two-way phone calls as well as conference calls. Each phone FPGA has a unique 4-bit phone number. It is built on a shared medium – a pair of wires that every FPGA taps into. As a result every data packet is seen by every FPGA. We implement a mini network stack that consists of the following modules in the data path: Figure 1: The half-duplex path of voice through our phone system The above figure shows the modules in the data path between two FPGAs. Important module such as the phone FSM do not appear as they are not on the data path. We distributed tasks symmetrically; such that the person writing the sync adder also wrote the sync remover, the person writing the parity bit Mic Wrapper AC97 Microphone Parity Bit Stuffer Parity Bit Destuffer Voice Buffer Packet Analyzer AC97 Output Sync Adder Sync Remover TCU TCU Shared medium Noise – bit corruption Sender Receiver3 stuffer also wrote the destuffer and the person writing the mic wrapper also wrote the voice buffer. This reduces the risk of errors due to different interpretations of the encoding. Please keep in mind that since phone calls are full duplex, every sender is also a receiver and vice versa. Sync Adder and Sync Remover (Karim) Those two modules are separated by the shared medium. Every FPGA has a sync adder to write data to the common wire, and a sync remover to obtain data written to the wire. Because the cable is a serial link, the sync adder must serialize the data it receives, and likewise the sync remover must deserialize it. Data is written on the wire in frames. Every frame contains a fixed 32-bit sync sequence that allows the receiver to detect the beginning of a frame and determine when best to sample. The next 11 bits after the sync sequence are the length field. They tell the receiver how long the frame is. Below are
View Full Document