Marine Automatic Identification System (AIS)
Short and sweet: AIS is composed of small bursts of data sent over normal marine VHF but using GMSK modulation instead of FM to identify vessels, their position, and telemetry. The data is encoded into a bit pattern (bit vector) to make it as small as possible. For a much longer and drawn-out description see WikipediaFor practical (technical) information about AIS, itīs reception and decoding, youīve come to the right place.
AIS Radio Transport
AIS was initially designed to use standard marine radio frequencies for data transmission. This basically means that the existing set of antennas, cabling, and frequency allocation plans didnīt need to be changed at all to see it implemented. All that was required was some special equipment to encode and send/receive and decode the signals.AIS over VHF
AIS uses the high side of the duplex from two VHF radio "channels" 87B and 88B.Channel A 161.975Mhz (87B)
Channel B 162.025Mhz (88B)
Channel B 162.025Mhz (88B)
The simplex channels 87A and 88A use a lower frequency so they are not even affected by this allocation and can still be used as designated for the maritime mobile frequency plan.
AIS Reception
The data is encoded using GMSK modulation so you wont hear anything if you simply tune your VHF radio to 88B - you need a special data output (found on some scanners) to access the data. Many HAM radios that have been configured for high-speed packet radio communications have this output and others can be "hacked" to obtain it. You effectively need a Discriminator Tap This is an output from one of the chips in the radio that gives the raw signal before any audio filtering (the filtering destroys the GMSK data)To find out about your radio or scanner just do a search something like "<radio model> Discriminator Output" and you should find what you need.
AIS Data Format
The AIS data format seems to be a fairly well kept secret. The following should help anyone wishing to explore the AIS data in more detail without shelling out the money and then attempting to sift through the ITU M.1371-2 standardNMEA AIS Message Format
The NMEA standard uses two primary sentences to for AIS data !AIVDM (Received Data from other vessels) and !AIVDO (Your own vessels information) Since you wonīt be receiving AIVDO messages we will focus on the AIVDM sentence.Here is a typical NMEA standard AIS message:
!AIVDM,1,1,,A,14eG;o@034o8sd<L9i:a;WF>062D,0*7D
In Order:
!AIVDM: The NMEA message type
1 Number of Sentences (some messages need more then one)
1 Sentence Number (1 unless itīs a multi-sentence message)
The blank is the Sequential Message ID (for multi-sentence messages)
A The AIS Channel (A or B)
14eG;... The Encoded AIS Data
0* End of Data
7D NMEA Checksum
AIS Data Encoding
In the NMEA encoding for AIS - each ASCII character corresponds to 6 binary bits (unlike normal ASCII which uses 8 bits) so you need to step through each character and subtract 48 from the ASCII - then if itīs still a decimal number > 40 subtract another 8 - then convert to binary: this guarantees a 6 bit number. Looking at our data (just the first few characters)14eG
1 = 000001
4 = 000100
e = 101101
G = 010111
and so on...
The complete data string decoded looks like this when strung back together.
000001 000100 101101 010111 011100 001010 010000 000000 000000 000000 110111 001000 110111 100001 101000 011100 011101 110010 011111 101011 110000 110101 010111 010000 000000 001000 011000 011011
Now you start grabbing sets of bits from this and converting to decimal. Here are the key pieces of information assuming the first character is a ī1ī (the message type):
MMSI Number - starting from bit 8 for 30 bits
= 010010110101011101110000101001 = 316005417
HDG - bit 128 for 9 bits
COG - bit 116 for 12 bits (and divide by 10)
SOG - bit 50 for 10 bits (and divide by 10)
Lat - bit 89 for 27 bits (a signed binary number, divide by 600000)
Lon - bit 61 for 28 bits (a signed binary number, divide by 600000)
AIS Message Types
The following are the individual messages that have been defined for AIS in the NMEA standard. Each one that is linked contains the detailed bit vector binary message data breakdown of the message contents. I will try to add all of them as quickly as possible.01 - Position Report with SOTDMA
02 - Position Report with SOTDMA
03 - Position Report with ITDMA
04 - Base Station Report
05 - Ship static and voyage related data
06 - Addressed Binary Message
07 - Binary Acknowledge
08 - Binary Broadcast Message
09 - Standard SAR Aircraft position report
10 - UTC and Date inquiry
11 - UTC and Date response
12 - Addressed safety related message
13 - Safety related Acknowledge
14 - Safety related Broadcast Message
15 - Interrogation
16 - Assigned Mode Command
17 - GNSS Binary Broadcast Message
18 - Standard Class B CS Position Report
19 - Extended Class B Equipment Position Report
20 - Data Link Management
21 - Aids-to-navigation Report
22 - Channel Management
23 - Group Assignment Command
24 - Class B CS Static Data Report