samedi 17 octobre 2009

Projet ADS-B: In the box

Avec la version 1.4 du firmware, mon projet a atteint les objectifs que je m'étais fixé avec un bon compromis entre performance, stabilité et fiabilité. Le format de sortie est désormais bien défini, et ne devrait plus évoluer que pour intégrer les informations de déplacement, vitesse, et direction. Celles-ci ne sont toutefois pas indispensables pour obtenir une cartographie du trafic aérien suffisante pour un amateur.

Les données fournies par ce récepteur peuvent être visualisées à l'aide de deux programmes:

- Mon programme de visualisation WinADSB permettant l'affichage tabulaire des données dans sa version actuelle,


- L'application PlanePlotter qui, dans une très prochaine version, devrait autoriser le traitement direct des données transmises sur le port série par mon récepteur. Merci, Bev d'avoir travaillé d'arrache-pied pour intégrer cette interface.

Avant de mettre en coffret le système, j'ai effectué quelques modifications sur le câblage pour préparer l'intégration du processeur PIB18F26K20, compatible broche à broche mais requérant une tension d'alimentation de 3.6V, et un firmware modifié. Avec 16MIPS au lieu des 12 du 18F2550, ce dernier permettra de gagner un peu en performance (25%), et de traiter plus de trames, ou pour être plus proche de la vérité, d'en perdre un peu moins !

L'adaptation de niveau est à faire sur l'alimentation même du µprocesseur mais aussi sur le signal d'entrée et sur le gestionnaire RS232. Ce dernier peut être remplacé par un modèle travaillant en 3.3V mais il s'avère que le modèle 5V que j'utilise - LT1081 - fonctionne encore très correctement lorsqu'il est alimenté en 3.6V. Les tensions générées par les pompes de charge sont plus faibles mais sont encore suffisantes sur une faible distance de liaison.

Un problème résolu qui me permet d'envisager une modification réversible ne nécessitant pas de changement de composant. J'ai opté pour une solution certes non industrielle mais diablement simple pour adapter l'alimentation du µprocesseur: deux diodes en série sur la ligne d'alimentation qui assurent une chute de tension de l'ordre de 1,34V mesurée. La tension d'alimentation est ainsi ramenée à 3.62V pour 3.6V max selon les spécifications de Microchip. La même astuce est employée sur le signal d'entrée, une résistance entre la sortie du signal ainsi adapté et la masse étant cependant ici nécessaire en l'absence de consommation sur cette ligne. La désactivation de cette adaptation est simple: deux cavaliers permettent de court-circuiter ces diodes.

J'ai ainsi pu tester le fonctionnement du 18F2550 avec les deux tensions d'alimentation sans détecter aucun problème de décodage, une perception qui reste cependant subjective en l'absence de générateur de test permettant de comparer fiablement les deux options.

J'attends maintenant de recevoir un 18F26K20 pour modifier les séquences d'initialisation et tester son fonctionnement. En attendant, le récepteur a été mis en boîte dans un boîtier de récupération qui était hélas vide (pour ceux qui reconnaîtrait celui-ci).



lundi 12 octobre 2009

Projet ADS-B: Décodage de la position

Après avoir étudié plus en détail le mécanisme d'encodage de la position, et apprécié l'impact réel des calculs sur l'acquisition, j'ai décidé d'intégrer ce calcul dans le µcontroleur mais de le rendre désactivable (Firmware V1.2).

La fiabilité des calculs a été vérifiée à partir de deux autres implémentations, l'une que j'ai faite sous Excel, et l'autre que j'ai embarqué dans le programme de contrôle qui tourne sous Windows. Il est cependant nécessaire d'utiliser une librairie de calcul en flottant sur 32 bits, l'utilisation d'une librairie en précision réduite 16 ou 24 bits ne permettant pas d'obtenir la fiabilité ici requise.
Le programme de contrôle génère actuellement un fichier de journalisation compatible avec celui du système AirNav, permettant d'injecter les données dans l'application Plane Plotter.



Le prochain Firmware intégrera le décodage du message 19 de la trame DF17, et des messages 1 et 2 de la trame DF18 permettant ainsi d'obtenir les informations sur le déplacement.