Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
передать данные с Ethernet по другому стыку
alexmfivt
Добавлено 22.04.2013 06:11 Сообщение: 21
alexmfivt
0

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
sasamy,
Цитата
Мне больше интересно - для чего вам тут ПЛИС нужна :)


для связи спутника с процом g45. нет у спутника кома скоростного. только с1 или hdb3.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 22.04.2013 12:42 Редактировалось 22.04.2013 18:09 Сообщение: 22
sasamy
4.70

Пункты: 76880
Регистрация: 14.08.2009
Цитата

суть задачи - создать сетевой мост между двумя устройствами(ну или посредством 2-х устройств на базе g45).
...
нет у спутника кома скоростного


Офигеть - на 3-й странице обсуждения вы наконец рассказали что вам нужно. Зачем было сюда приплетать rs232 ?

Цитата

суть в том, что мне надо принять пакет с сети Ethernet, добавить метки синхронизации и контрольной суммы(чтоб быть уверенным, что пакет через канал связи придет целым)


Пакет - я так понял это ethernet frame ? чем вас не устраивает существующая там 32-битная FCS (CRC)
https://en.wikipedia.org/wiki/Frame_check_sequence

Ссылку на TUN/TAP я уже давал
http://ru.wikipedia.org/wiki/TUN/TAP
Цитата

TAP симулирует Ethernet устройство и работает на канальном уровне модели OSI, оперируя кадрами Ethernet.

вам осталось найти простенький пример как использовать его, например
http://code.google.com/p/linux-eoip/downloads/list
linux-eoip-0.2.tar.gz - 9,9 KB всего, вместо передачи данных через сокет вам надо делать это через ПЛИС. В системе у вас будет виртуальное устройство ethernet. Как сделать бридж в Linux - google -> linux ethernet bridge. Тут например как это сделано конкретно с EoIP
http://dalemonk.wordpress.com/2011/03/02/extend-your-lan-between-sites-using-an-ethernet-over-ip-eoip-bridge-and-pptp/
pptp вам не нужно будет поднимать - данные через ПЛИС в космос пойдут :)

UPD насчет контрольной суммы вы правы - надо ее делать
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 23.04.2013 01:20 Редактировалось 23.04.2013 02:58 Сообщение: 23
sasamy
4.70

Пункты: 76880
Регистрация: 14.08.2009
Вам пожалуй будет даже проще написать драйвер виртуального адаптера ethernet, посмотрите
http://lxr.free-electrons.com/source/drivers/net/ethernet/Kconfig?v=3.2#L92
в качестве примера - он совсем маленький
http://lxr.free-electrons.com/source/drivers/net/ethernet/mipsnet.c?v=3.2
и потом бриджить его с настоящим атмеловским в юзерспейсе через bridge-utils. Буферы перекидывать тут вообще элементарно - хоть по spi, хоть SRAM интерфейс что намного проще и быстрей. Можно пару прерываний от ПЛИС завести на gpio чтобы сигнализировать что данные прилетели/улетели, притормозить очередь на отправку когда ПЛИС не готова передать - тоже элементарно
http://lxr.free-electrons.com/source/drivers/net/ethernet/mipsnet.c?v=3.2#L139
Я бы именно такой вариант сделал.
Спуститься к концу Подняться к началу
Персональная информация
alexmfivt
Добавлено 23.04.2013 04:33 Сообщение: 24
alexmfivt
0

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
sasamy, это все хорошо, но мне надо чтобы g45 проц связывался не только с g45, но и другим оборудованием. оно уже настроено и отрегулировано. там свои протоколы обмена.

щас вот смотрю на исходник eoip и не понимаю как оно ограничивает скорость канала. там по моему вообже на максимальной скорости проца будет все обрабатываться.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 23.04.2013 09:06 Редактировалось 23.04.2013 09:24 Сообщение: 25
sasamy
4.70

Пункты: 76880
Регистрация: 14.08.2009
Я вас опять перестаю понимать - какое другое оборудование и на что оно настроено ? Как по вашему работает Интернет где серверы могут быть с терабитными каналами а клиенты могут на тоненьком диалапе сидеть ? Есть протоколы верхнего уровня - TCP например

Цитата

Transmission Control Protocol (TCP) (протокол управления передачей) — один из основных протоколов передачи данных Интернета, предназначенный для управления передачей данных в сетях и подсетях TCP/IP.

Выполняет функции протокола транспортного уровня модели OSI.

TCP — это транспортный механизм, предоставляющий поток данных, с предварительной установкой соединения, за счёт этого дающий уверенность в достоверности получаемых данных, осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета. В отличие от UDP гарантирует целостность передаваемых данных и уведомление отправителя о результатах передачи.


https://ru.wikipedia.org/wiki/TCP

в противовес ему UDP - не гарантирует доставку
https://ru.wikipedia.org/wiki/UDP
Спуститься к концу Подняться к началу
Персональная информация
alexmfivt
Добавлено 24.04.2013 06:23 Сообщение: 26
alexmfivt
0

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
другое оборудование сделано на пике PIC18F97J60. там для посылания "паузы" есть функция MacPauseOn и Off - они позволяют регулировать узкое горлышко на спутниковом канале. никаких протоколов там нет, обмен IP и ARP пакетами. ни TCP ни UDP там не пахнет.
вот как послать на проце g45 похожий сигнал?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 24.04.2013 12:04 Редактировалось 24.04.2013 12:18 Сообщение: 27
sasamy
4.70

Пункты: 76880
Регистрация: 14.08.2009
Цитата

вот как послать на проце g45 похожий сигнал?


понятия не имею - какой вы там протокол используете и что должен процессор сделать. Как сделать бридж на 2-х g45 я вам описал, что там с ethernet фреймами левое оборудование делает и какие протоколы инкапсулированы в payload тут неважно.
Спуститься к концу Подняться к началу
Персональная информация
alexmfivt
Добавлено 25.04.2013 04:45 Сообщение: 28
alexmfivt
0

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
никаких протоколов там не инкапсулировано. пришел пакет - не думая его на спутник шлем и все. добавляем в начало и конец синхрометки только. щас код приложу.
Цитата

WORD PLIS_PutHeader (MAC_ADDR *dest, MAC_ADDR *remote, BYTE type, WORD_VAL dataLen)
{
WORD chksum = 0;
while (PLIS_IsTXFull())//проверяет буфер в памяти ПЛИС
MACPauseOn();//вот так ставит паузу


в pdf на пик вот так описано:

функция меняет бит в регистре
EFLOCON: ETHERNET FLOW CONTROL REGISTER

bit 1-0 FCEN1:FCEN0: Flow Control Enable bits
When FULDPX(MACON3<0>) = 1:
11= Send one pause frame with a ‘0’ timer value and then turn flow control off
10= Send pause frames periodically
01= Send one pause frame then turn flow control off
00= Flow control off
When FULDPX (MACON3<0>) = 0:
x1= Flow control on
x0= Flow control off

Можно ли похожим образом на g45 делать?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 25.04.2013 09:59 Сообщение: 29
sasamy
4.70

Пункты: 76880
Регистрация: 14.08.2009
Спуститься к концу Подняться к началу
Персональная информация
alexmfivt
Добавлено 25.04.2013 12:46 Редактировалось 25.04.2013 12:53 Сообщение: 30
alexmfivt
0

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
Цитата
левое оборудование на свалку

не катит, не поймут нас...

по этой ссылке как то все непонятно тоже. только что "send Pause to the Switch" слова интересно для меня звучат.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux