[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [oc] HDLC questions



Hi,

Jamil Khatib wrote:
> 
> Hi,
> I have some questions about HDLC controllers:
> 
> 1. Is there any standard protocol that I have to
> follow? is the ITU-T Q.921 is the one?
> 2. what CRC should I use CRC-16?
> 3. what is the flow control protocol should I follow
> and how?

There are many flavours of HDLC.  ISO 3309 is the ultimate reference,
however there are several other standards that differ in certain
details.

ITU-T Q.921 applies to ISDN only.  This standard requires the message to
be a multiple of 8 bits in length, whereas ISO 3309 allows the message
to be any number of bits long.

A variety of CRCs can be used.  It depends on the application.

There are also "async" varieties of HDLC that use byte stuffing instead
of bit stuffing.  These are also described in the newer versions of ISO
3309, but the information seems to have been sourced from the IETF.  See
RFC1662 for example.
http://www.ietf.org/rfc/rfc1662.txt?number=1662

Regarding flow control, it is normally handled by higher protocol
layers, and usually in software.

I've implemented an HDLC core at 10Gbps in an FPGA.  (Admittedly it was
the fastest speed grade Virtex FPGA.)
I've also implemented a tiny HDLC controller that was time sliced
between several channels in a (very old and slow) Xilinx 5200 family
part.
(None of which I can share with OC, sorry.)

Regards,
Allan.