Encoding HDLC flags, FEC #439
-
In particular related to the AX5043 Deframer, line 23 Would it be possible to elaborate on the encoding process of the synchronization sequence. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
I'm speaking from memory based on what I remember from doing this 2 years ago, so maybe there are some errors in what I say. The whole message (starting with the two HDLC flags but continuing with the rest of the payload) is convolutionally encoded and then interleaved with the 4x4 matrix. At the beginning of the packet, the encoder shift register is filled with zeros. We push in the 16 bits corresponding to 0x7E7E into the encoder and extract 32 bits out. At this point the state of the encoder shift register is the last 4 bits of 0x7E7E, sure, but we don't extract these bits out just yet. We pass the 32 bits out through the 4x4 interleaver. This is okay, because 32 bits is exactly 2 interleaver blocks. At this point we should obtain '10001010111001101000101011100110' . I haven't run the calculations manually to check if this is right. So what happens is that these 32 bits are the first 32 bits of each packet. After this, the packet transmission continues by pushing in the payload bits into the encoder. At the end of the payload there is probably a tail to flush out the encoder and probably some padding to a 16-bit interleaver block. But all of this happens at the end of the whole packet. There is no convolutional encoder tail at the end of the syncword. Also note that only the first 32 bits that are transmitted are completely independent from the payload. The next bits already depend on the payload, because already the first payload bits have entered into the convolutional encoder. So maybe the key remark here is that the concatenation of the syncword and payload is convolutionally encoded as a whole, rather than as two separate things. |
Beta Was this translation helpful? Give feedback.
I'm speaking from memory based on what I remember from doing this 2 years ago, so maybe there are some errors in what I say.
The whole message (starting with the two HDLC flags but continuing with the rest of the payload) is convolutionally encoded and then interleaved with the 4x4 matrix. At the beginning of the packet, the encoder shift register is filled with zeros. We push in the 16 bits corresponding to 0x7E7E into the encoder and extract 32 bits out. At this point the state of the encoder shift register is the last 4 bits of 0x7E7E, sure, but we don't extract these bits out just yet. We pass the 32 bits out through the 4x4 interleaver. This is okay, because 32 bits is exactly 2 inte…