- Historique et développement de l A.I.S
Le Système d’identification automatique (SIA) ou Automatic Identification System (AIS) en anglais est un système d’échanges automatisés de messages entre navires par radio VHF ( 161,975 Mhz et 162,025 Mhz) qui permet aux navires et aux systèmes de surveillance de trafic (CROSS en France) de connaître l’identité, le statut, la position et la route des navires se situant dans la zone de navigation.
Le chapitre V de la Convention SOLAS imposait que les navires de jauge brute supérieure à 300 effectuant des voyages internationaux soient équipés de ce dispositif d’ici juillet 2007 au plus tard.
Le signal est multiplexé pour éviter que les navires ne se brouillent mutuellement en émettant au même moment. Pour accroître la capacité du système, la fréquence de rafraîchissement est modulée en fonction de la vitesse du navire et de ses évolutions : un navire lent et suivant une route rectiligne rafraîchira ses données avec une fréquence plus espacée.
Le type de modulation est GMSK (Gaussian Minimum Shift Keying) et une rapidité de modulation de 9 600 bauds. Les paquets contiennent 168 ou 440 bits, ils sont précédés d’un préambule de 24 bits permettant de synchroniser le récepteur. Les trames sont de type HDLC (qui comporte un code de contrôle de redondance cyclique (CRC) et sont encodées en NRZ. L’empreinte sonore de AIS est proche du bruit de fond, et les trames ne durent que 30 ms.
La portée des communications VHF au sol étant limitée par la rotondité de la terre. Les navires envoient leurs données AIS par satellites. Le système n’ayant pas été prévu pour une telle réception, il a fallu résoudre certaines difficultés techniques, notamment la résolution des collisions entre messages émanant de nombreux navires se trouvant dans la zone de couverture.
2. Raspberry + SDR = Recepteur AIS
On prépare le Raspberry Pi 3 avec la dernière version de Raspbian , on récupère l image qu on intègre à la microSD avec Balena Etcher. On copie un fichier texte sans extension appeler « ssh » dans la racine de la carte SD permettant d activer le SSH dès le premier boot. On peut mettre aussi le fichier » wpa_supplicant.conf » contenant les infos de connexion Wifi pour que le Raspberry ce connecte directement au wifi sans assistance humaine.
On démarre le raspberry Pi avec sa carte microSD inséré, on récupère l ip du Raspberry via son WiFi ou via Ethernet. On se connecte en SSH…
Dans notre configuration on a équipé le RaspBerry Pi d un Ecran OLED Touch se connectant sur le port GPIO. Ce n est pas obligatoire mais ca peut s avérer utilise en mode balade. Une fois connecté , on va installer les drivers pour la prise en charge de l écran OLED Touch
sudo apt-get update sudo apt-get upgrade sudo rm -rf LCD-show git clone https://github.com/goodtft/LCD-show.git chmod -R 755 LCD-show cd LCD-show/
Ensuite il suffit de lancer la commande qui correspond à votre écran:
sudo ./LCD35-show (pour ma part)
Pour les autres écrans
sudo ./LCD32-show sudo ./LCD28-show sudo ./LCD397-show sudo ./LCD43-show sudo ./LCD5-show sudo ./LCD7B-show sudo ./LCD7C-show HDMI Display-MPI3508 sudo ./MPI3508_480_320-show sudo ./MPI3508_720_480-show sudo ./MPI3508_810_540-show sudo ./MPI3508_960_640-show Display-MPI3510 sudo ./MPI3510-show
On commence par faire les dernières MAJ du « Raspbery Pi » pour préparer le terrain pour installer la partie SDR ensuite
sudo apt-get update sudo apt-get upgrade
Récupération du Drivers pour le SDR
git clone git://git.osmocom.org/rtl-sdr.git
Compilation et installation du driver SDR
cd rtl-sdr mkdir build cd build cmake ../ -DINSTALL_UDEV_RULES=ON make sudo make install sudo ldconfig cd ~ sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/ sudo reboot
Test pour voir si le module SDR USB est bien pris en charge par le RaspBerry
rtl_test
Normalement, on aperçoit les informations techniques du module SDR
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001
Using device 0: Generic RTL2832U OEM
A la fin on peut avoir un message d erreur c est tout a fait normal ça prouve que çà fonctionne bien 😀
Patchage de l erreur pour eviter de l afficher 😀
sudo modprobe -r dvb_usb_rtl28xxu sudo nano /etc/modprobe.d/rtl-sdr-blacklist.conf blacklist dvb_usb_rtl28xxu
On refait un test
rtl_test
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001
Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7
16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1
43.4 43.9 44.5 48.0 49.6
[R82XX] PLL not locked!
Sampling at 2048000 S/s.
3. Calibration du Dongle SDR pour avoir une stabilité en fréquences
sudo apt install build-essential libtool automake autoconf librtlsdr-dev libfftw3-dev git clone https://github.com/steve-m/kalibrate-rtl cd kalibrate-rtl/ ./bootstrap && CXXFLAGS='-W -Wall -O3' ./configure make sudo make install
Test de Calibration
rtl_test -p
Le resultat doit ressembler a ce ce genre de rapport
0: Realtek, RTL2838UHIDIR, SN: 00000001
Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
[R82XX] PLL not locked!
Sampling at 2048000 S/s.
Reporting PPM error measurement every 10 seconds…
Press ^C after a few minutes.
Reading samples in async mode…
lost at least 168 bytes
real sample rate: 2047684 current PPM: -154 cumulative PPM: -154
real sample rate: 2048101 current PPM: 50 cumulative PPM: -52
real sample rate: 2048077 current PPM: 38 cumulative PPM: -22
real sample rate: 2048198 current PPM: 97 cumulative PPM: 8
real sample rate: 2048066 current PPM: 33 cumulative PPM: 13
real sample rate: 2048093 current PPM: 46 cumulative PPM: 18
real sample rate: 2048072 current PPM: 36 cumulative PPM: 21
real sample rate: 2047986 current PPM: -6 cumulative PPM: 17
real sample rate: 2048079 current PPM: 39 cumulative PPM: 20
real sample rate: 2048108 current PPM: 53 cumulative PPM: 23
real sample rate: 2048037 current PPM: 18 cumulative PPM: 23
Pour arrêter le processus un petit Ctrl C et c est bon …
Installation du décodeur software AIS
cd ~ git clone https://github.com/dgiardini/rtl-ais cd rtl-ais make
Test du Serveur AIS
./rtl_ais -p 35 -n -h 192.168.1.15
-p 35 : Deviation en PPM vu dans le log de calibration.
-n : Log AIS messages to console.
-h : Adresse IP de l’ordinateur destinataire des données AIS équipé de OpenCPN, MaxSea, Adrena, QtVLM, ScanNav, MacENC …