Porting of an Ethernet driver to EtherCAT
Porting of an Ethernet driver to EtherCAT
Samenvatting
EtherCAT is a real-time industrial field bus based on Ethernet. The bus master uses an Ethernet device to communicate with the slaves. At Prodrive, it has been decided that the PPA8548 AMC, a PowerPC embedded system, should get support for the EtherCAT master functionality because the current EtherCAT master is more expensive and power consuming than the PPA8548 AMC, which can offer sufficient computing power in a lot of cases.
Usage of EtherCAT is possible without modification to the driver of the Ethernet device, but in order to communicate with real-time performance it’s necessary to modify the driver of the Ethernet device.
This paper answers the question on how to convert a Linux Ethernet driver to an EtherCAT driver, and more specifically the ”gianfar” driver, meant for the network interfaces of the PPA8548 AMC module.
The differences between Ethernet and EtherCAT are compared both on protocol level and in the drivers in order to answer this main question.
The most important, and most drastic changes are in the interrupts of the Ethernet driver. Normally an Ethernet device waits for interrupts to tell the driver to take action, but when this happens is nondeterministic and it can interrupt the flow of the driver, compromising real-time functionality. In order to stop the interrupts, they have to be replaced by a polling function.
A substantial part of the development is solving problems that occur because the driver source code is modified in a way it wasn’t intended to be. This paper also discusses the problems that have occurred.
Organisatie | Fontys |
Opleiding | ICT & Technology |
Afdeling | Fontys ICT |
Partner | Prodrive, Son |
Datum | 2013-06-18 |
Type | Bachelor |
Taal | Engels |