AX.25 Data Link Layer Protocol

The AX.25 Data Link Layer Protocol is a data link layer protocol used in amateur radio communications. It was developed in the 1970s and has since become a widely used standard for amateur packet radio systems.

AX.25 is a protocol that operates at the data link layer of the OSI model. It provides a framework for the exchange of data packets between amateur radio stations. It defines the format of the data packets, the addressing scheme, and the procedures for packet transmission and reception.

Types of Frames

There are 3 types of AX.25 frames: I (Information) Frames, S (Supervisory) Frames, and U (Unnumbered) frames. The structure of these frames can be seen below:

Untitled

I Frames are mainly used for sending actual data in a format where each frame is numbered, so the receiver knows if a frame has been lost. For example, if the receiver has only received 5 frames so far, but it receives the next frame which is numbered as frame 7, it knows it has missed a frame.

S Frames are mainly used for acknowledging frames or requesting retransmission of frames. However, this adds extra overhead which is not worth it for our system at the moment, so we are not using retransmissions.

U Frames in our case are mainly used on our cubeSat for starting and terminating connection during each transmission period, but they also allow for the transmission and reception of information outside of the normal flow control.

AX.25 Fields

There are 7 different fields that can be used to make up an ax.25 frame.

  1. Flag: AX.25 packets consist of a series of frames. Each frame starts with a flag byte (0x7E) to mark the beginning and end of the frame
  2. Addressing: Each AX.25 packet contains a destination address and a source address. These addresses are typically callsigns assigned to amateur radio stations. The addresses can be up to 7 characters long and are used to identify the intended recipient and sender of the packet.
  3. Control Field: The control field in the packet header carries information about the type of frame and the control functions associated with it. It specifies whether the frame is a data frame, a control frame, or an acknowledgment frame.
  4. PID Field (ONLY IN I FRAMES): Contains info about which layer 3 protocol is implemented. We currently do not have a layer 3 protocol, so this will be 0xF0 for us right now
  5. Info Field: The data field carries the payload of the packet, which can be any data that the sender wants to transmit (ex: telemetry or command data). The maximum data length is limited to 255 bytes per frame.