Developing of a CAN-FD sniffer with Python

Today, the CAN-FD protocol is taking over classical CAN, as it allows afaster transfer speed, and as technology is being developed, more and moreinformation is needed to be sent and processed between several devices con-nected all together in order to perform. In this project, a CAN-FD sniffer1softw...

Full description

Bibliographic Details
Author: Cortes Fuentes, Joaquin Esteban
Format: master thesis
Publication Date:2019
Country:España
Institution:Universitat Politècnica de Catalunya (UPC)
Repository:UPCommons. Portal del coneixement obert de la UPC
Language:English
OAI Identifier:oai:upcommons.upc.edu:2117/177412
Online Access:https://hdl.handle.net/2117/177412
Access Level:Open access
Keyword:Computer network protocols
Computer architecture
Python (Computer program language)
Protocols de xarxes d'ordinadors
Arquitectura d'ordinadors
Python (Llenguatge de programació)
Àrees temàtiques de la UPC::Enginyeria electrònica
Description
Summary:Today, the CAN-FD protocol is taking over classical CAN, as it allows afaster transfer speed, and as technology is being developed, more and moreinformation is needed to be sent and processed between several devices con-nected all together in order to perform. In this project, a CAN-FD sniffer1software has been developed in Python language, in order to be able tocommunicate through a CAN-FD network, using a CAN-FD controller andtransceiver, a SPI interface, and a FTDI-USB cable to connect this device to aPC.A Python library has been written in order to implement the communica-tion of the PC and the CAN-FD. Currently, there are already libraries to dothis functionality in other languages (such as C and C++), but Python waschosen because this language is lacking this kind of libraries that supportCAN-FD (there are CAN libraries, but very few have CAN-FD support, andmost of them have limited support), and it is being more used every day indata analysis and machine learning tasks, so it is very important to be ableto capture all possible information about several devices in order to gatherdata and perform analysis.Finally, a GUI is implemented, in order to have a basic layout for usingthe library functions and perform simple tests so as to verify the library