[riot-notifications] [RIOT-OS/RIOT] drivers: net: add ethocan (Ethernet-over-CAN) driver (#10710)

Juergen Fitschen notifications at github.com
Wed Feb 13 13:16:28 CET 2019

Thank you for diving into this PR, @benpicco :)

> Just an idea from an interested bystander: Many MCUs implement an 'address detect' feature in 9-bit mode (parity bit is used as an additional data bit) where they will only generate an interrupt if the 9th bit is set.
> So you have the address at the start of your frame with the 9th bit set and only when it matches you turn off address detect mode to get an interrupt for every byte. This way all other nodes are not bothered with interrupts from packets that are not intended for them.
> Also an 8-bit address (`ETHERNET_ADDR_LEN = 1`) is probably enough for such a bus - each node will add impedance and degrade the signal. CAN is specified for 128 nodes, maybe you can do more than that but I doubt you need 48-bit addresses ;)

That would be a good optimization - indeed! A lot of interrupts are generated during transmissions. And a lot of overhead is carried around to transfer small bits of payload. But I think there are a few points against this optimization:
 * The generic UART driver inside of RIOT is not capable of using this 9th address bit, since it is boiled down to the feature set that every MCU offers. I really would like to sick to that driver because it enables this driver to run on almost every MCU.
 * A reduced address space creates a higher likelihood of address collisions. I do not set the MAC address by hand. Instead I use the CPU ID to generate a unique address. I like the idea not to have to fiddle around with manual address assignment.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20190213/d6104cb5/attachment.html>

More information about the notifications mailing list