Я бы рискнул сказать, что вы можете написать какой-то пользовательский промежуточный уровень GPIO.
Читать Ethernet-> Encapsulate-> Написать GPIO-> | -> Read GPIO-> Decapsulate-> Написать Ethernet
(и наоборот)
Проблема становится: Как может как модемы действуют как "Ethernet-прокси"?
Модем1 действует как прокси-сервер для маршрутизатора. Модем2 действует как прокси-сервер для клиента. Если ваш Raspberry Pi может обманывать MAC-адреса, вы можете обмануть одноранговые сети Ethernet в общении с портом Ethernet модемов. Причина, по которой вам нужно обманывать MAC-адреса, является то, что в сетях TCP/IP есть таблица ARP, которая отображает удаленные IP-адреса на MAC-адрес, который может маршрутизировать IP-пакеты в/из них. Это позволяет клиенту связываться с вашим маршрутизатором через TCP/IP.
Еще одна потенциальная ошибка заключается в том, что ваше модемное сообщение вводит задержки, которые мешают работе протокола Ethernet. Например, протокол Ethernet может иметь ограничения в режиме реального времени, которые могут быть разрушены, если вы вводите задержки ...
Но давайте предположим, что все возможно в идеальном мире ...
Вам нужно написать код для чтения/записи сообщений Ethernet (я видел открытый исходный код для чтения/записи пакетов Ethernet над сокетов в Linux)
Вам нужно написать пользовательский драйвер для ваших сообщений GPIO. Это означает реализацию тщательно продуманного протокола для управления состоянием контактов, начального сообщения, окончательного сообщения, данных-полезной нагрузки, контрольной суммы, независимо от того, ...
Наконец, вам нужно написать коммуникации слой верхнего уровня, который реализует:
Ethernet к GPIO процесс:
а) считываются из порта Ethernet, инкапсулирует Ethernet пакет в пользовательское сообщение (или фрагменты сообщений)
б) обмениваться этим пользовательским сообщением, используя свой собственный профиль GPIO водитель токола, к внешнему GPIO сверстников
GPIO-к-Ethernet процесс:
а) Чтение из GPIO, используя свой собственный код драйвера б) Decapsulate Ethernet пакета с) Написать Ethernet пакет Ethernet порт.
эти два процесса запуска навсегда ...
Опять же, все петли на, могут ли ваши модемы внедриться в связи с равный-равному не нарушая естественный поток протокола Ethernet ...
что касается части «с» ...
Если вы используете библиотеки с открытым исходным кодом (или фрагменты кода) для чтения/записи необработанного Ethernet через сокетов, что, скорее всего, написан на C.
Ваш код GPIO будет читать запись f оставьте контакты GPIO одним из двух способов: с адреса H/W с отображением памяти или с помощью вызовов ioport на этом H/W-адресе.
Receive raw Ethernet frames in Linux
Send a raw Ethernet frame in Linux
Успехов
Этот вопрос не по теме. Попробуйте суперпользователя или serverfault. – EJP
Я не согласен. Я мог бы сказать плохо, полагаю, что это действительно вопрос программирования. Не могли бы вы рассказать о том, почему вопрос может быть вне темы? – sigsve
Вне темы: поиск учебника. – Olaf