3.6.3 Radio Transmission
3.6 MSC Software Interface
3.6.3.1. Message Packet | 3.6.3.2. KISS TNC
There are 4 ports which data packets can be addressed to. Data will be transmitted if the port is enabled, the RF enable pin is high, and the temperature and voltage thresholds are ok.
Transmitting priority is given to the lowest port number.
Each port has specific number of packets it can store in its buffer. Each packet is stored without encryption and encoding applied. If settings are changed to a specific port while data is queued for transmission, the transmitted packets will use the current configuration. Each packet can be 1550 bytes long. This will allows for full size HDLC packets to be transmitted allowing for an Internet Protocol packet. Most users will have packets less than 300 bytes, 256 data bytes, to meet the AX.25 standard.
Packet Size Limits
Port 0: Max number of packets in buffer: 500, Max length of each packet: 1550 bytes
Port 1: Max number of packets in buffer: 500, Max length of each packet: 1550 bytes
Port 2: Max number of packets in buffer: 500, Max length of each packet: 1550 bytes
Port 3: Max number of packets in buffer: 1000, Max length of each packet: 1550 bytes
3.6.3.1. Message Packet
To send a basic ASCII message, start the frame with a colon or dollar sign and end with a carriage return. This will become the data field of the default AX.25 frame, as configured in 2.2.3. And example would be to send "Hello World".
Example Send :Hello World CR, CHAR: :Hello World CR,, HEX: 0x3A 48 65 6C 6C 6F 20 57 6F 72 6C 64 0D
Example Send $Hello World CR, CHAR: $Hello World CR,, HEX: 0x24 48 65 6C 6C 6F 20 57 6F 72 6C 64 0D
3.6.3.2. KISS TNC
The KISS TNC packet is tool to send an escaped AX.25 packet.
Element 3: The address field is as long as the user wants. In many applications, a 6 byte callsign and 1 byte SSID is used. In all cases, bit 0 of each byte is set as 0 except for the last byte of the address field. Callsigns are typically upper case alpha-numeric ascii characters and are only 7 bits long. Because bit 0 is to indicate the last address byte, each callsign character is shifted to the left by 1 bit.
SSID is a number ranging from 0 to 15 and typically follows the address characters. This number is shifted to the left 1 bit to allow for bit 0 to the last byte in the address field indication. The bits 5 and 6 are reserved and are left as 1. Bit 7 is the command bit and is set to 1 for the first callsign, the destination, and 0 for all additional callsigns.
This array should be frame escaped between the flags:
All bytes equal to 0xC0 should be frame escaped and be replaced with two bytes: 0xDB 0xDC
All bytes equal to 0xDB should be frame escaped and be replaced with 0xDB 0xDD
See the following 3.1, 3.2, 3.3, 3.4 as an example to define the source and destination callsigns and SSIDs.
Elements 1, 2: Header
Group: KISS Flag
Parameter: Transmit port desired for the change. Port 0: 0x00, Port 1: 0x10, Port 2: 0x20, Port 3: 0x30
Example HEX: 0xC0,0x10
Element 3.1: Specify the AX.25 Destination callsign (any length)(Remember Each Byte Must << 1)
Example Address CHAR: APRB00, DEC: 130 160 164 132 96 96, HEX 0x82 A0 A4 84 60 60
Element 3.2: Specify the AX.25 Destination SSID Properties as one byte
Control Bit (MSB) | Reserved | Reserved | SSID 1 | SSID 2 | SSID 3 | SSID 4 | HDLC Bit (LSB)
Example Binary: 1 1 1 0 0 0 1 0, HEX: 0xE2
Default Setup: Destination SSID 1, Control bit 1, HDLC bit 0
Element 3.3: Specify the AX.25 Source callsign (any length)(Remember Each Byte Must << 1)
Example Address CHAR: NOCALL, DEC: 156 158 134 130 152 152, HEX 0x9C 9E 86 82 98 98
Element 3.4: Specify the AX.25 Source SSID Properties as one byte
Control Bit (MSB) | Reserved | Reserved | SSID 1 | SSID 2 | SSID 3 | SSID 4 | HDLC Bit (LSB)
Example Binary: 0 1 1 0 0 0 1 0, HEX: 0x63
Default Setup: Source SSID 1, Control bit 0, HDLC bit 0
Element 4: Control Byte
HEX 0x03 = Unnumbered Information (UI)
Element 5: Protocol Byte
HEX 0xF0 = No Layer 3 Protocol Implemented
Element 6: Data, up to 255 bytes
Example CHAR: :Hello World CR, HEX: 0x3A 48 65 6C 6C 6F 20 57 6F 72 6C 64 0D
Element 7: End the Packet
End the packet with a KISS flag
Example 0xC0
Example Packet