Networking with HDLC ==================== Author: Andy Dachs Date: 31st August 2001 Surrey Satellite Technology Limited The network support in this BSP is not Ethernet support. The "network" referred to here is a point to point HDLC communication link. The ADS board does have a 10/100 ethernet port and it would be nice to get support for that added. My requirement is for a WAN so I need the ability to send IP frames over HDLC. Ultimately this will end up as frame relay support but in the meantime I'm simply wrapping up the IP packet inside an HDLC frame. There is no addressing mechanism or mac address attached to the start of the frame. This is what is physically transmitted: The physical link consists of four lines, TX DATA : Data transmitted TX CLOCK: Clock for transmitted data. Data source provides clock. RX DATA : Received data RX CLOCK: Clock for received data. Data sink accepts clock. To connect two entities you require a NULL modem arrangement, i.e. TX data and Tx clock from one end go into RX data and Rx clock on the other end. The MPC8260ADS side of the link is implemented using SCC3 in HDLC mode. The TX clock is generated by BRG4. The RX clock in input to the board on the CLK5 input. I built a LVTTL to RS422 converter. The other end of the link is a Windows NT PC with WANic400 synchronous communication card. We bought the card from ImageStream (http://www.imagestream.com/WANic400.html). You also need the NT drivers and a cable. There are other distributors but I found these guys helpful - and they also do Linux drivers. The NT WANic driver has a number of modes, one of which is ethernet emulation. This mode is what is needed to transport IP packets in HDLC frames. In libnetworking/net you will find a file called if_hdlcsubr.c containing the hdlc_input and hdlc_output routines required by network.c. This file was created by taking out the addressing mechanisms from if_ethersubr.c in the same directory. There are probably neater ways to do this .