Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

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

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
ПЛИС для преобразования интерфейсов для понимания спутнику.
Спуститься к концу Подняться к началу
Персональная информация
alexmfivt
Добавлено 08.04.2013 10:37 Редактировалось 09.04.2013 11:11 Сообщение: 12
alexmfivt
0

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
Сижу, читаю, разбираюсь. вроде нашел как читать и как передавать пакеты через libpcap. но как заставить выполняться функции MACPauseOn() и MACPauseOff(), которые присутствуют в PIC18F97J60 ? Это Flow control on и Flow control off соответственно.

Суть в том, что скорость Ethernet больше, чем скорость спутника. И что бы пакеты не терялись и вставали в очередь есть функции у пика MACPauseOn() и MACPauseOff(). Как такое сделать в libpcap я не понимаю.

PS нашел как управлять очередью, но возникают вопросы - можно ли дуплекс менять на горячуюю(из программы под линуксом) (или как задать полудуплекс при загрузке?) и можно ли бит BP: Back pressure в регистре EMAC_NCR дрыгать для управления очередью?
Спуститься к концу Подняться к началу
Персональная информация
alexmfivt
Добавлено 10.04.2013 04:29 Сообщение: 13
alexmfivt
0

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
пока что копаю pppd на наличие управлением очередью-потоком
Спуститься к концу Подняться к началу
Персональная информация
alexmfivt
Добавлено 15.04.2013 05:33 Сообщение: 14
alexmfivt
0

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
ничего найти чего то не могу...
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 19.04.2013 08:33 Сообщение: 15
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
мой мозг. чего вы хотите ? нарисуйте блок-схему в картинках.
а так всё бессмыслица какая то.
Спуститься к концу Подняться к началу
Персональная информация
alexmfivt
Добавлено 19.04.2013 11:50 Сообщение: 16
alexmfivt
0

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

комп <=витая пара(Ethernet)=> плата с G45 <=SPI=> другая плата с G45 <=витая пара=> другой комп

проблема в том, что у меня в проекте SPI надо использовать на определенных скоростях(небольших, до 2 мегабит). и теперь стоит задача ограничить прием со стороны компьютера. то есть давать какую либо команду для приостановки передачи пакетов так как по SPI еще выдвигается предыдущий пакет.
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 19.04.2013 12:19 Редактировалось 19.04.2013 12:20 Сообщение: 17
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
Чего чего ?

Пример работы с spidev есть в любой документации на ядро.
Там всего одна функция полнодуплексного приёма-передачи.

По Ethernet стандартные сокеты... tcp/udp вообще не проблема. Можно хоть Modbus TCP заюзать стандартную либу какую нибудь.

Но я не пойму нафига вообще эти сложности ? Зачем связь по SPI ? Длина канала по SPI ограничевается десятком сантиметров. Интерфейс вообще предназначен для связи ИМС в пределах одной платы. В чём смысл задачи вообще ?
Спуститься к концу Подняться к началу
Персональная информация
alexmfivt
Добавлено 19.04.2013 12:31 Сообщение: 18
alexmfivt
0

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

суть в том, что мне надо принять пакет с сети Ethernet, добавить метки синхронизации и контрольной суммы(чтоб быть уверенным, что пакет через канал связи придет целым) и передать это в буфер на ПЛИС. ПЛИС уже в свой последовательный канал будет пихать как ей надо будет.
загвоздка в том, что пока ПЛИС не передаст пакет(не освободится место в буфере) проц G45 не должен туда писать(засовывать в буфер) новые данные. то есть надо сказать компу, чтобы он "подождал чуток". и вот как эту паузу сделать я не знаю.
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 19.04.2013 15:44 Редактировалось 19.04.2013 15:47 Сообщение: 19
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
при чём здесь комп ?

пока буфер не передан ПЛИС выставляет сигнал Занято sam9g45. Тот в свою очередь не пишет данные в ПЛИС, шлет компьютеру сигнал занятно. Либо буфферизирует, поступающую информацию. Для сигнала Занятно можно любой сигнал GPIO использовать для связи с ПЛИС. Компьютеру же Занятно обьявить по какому либо протоколу интерфейса Ethernet. Вариантов реализации масса.

А вы так и не нарисовали полную блок-схему задачи...
Телепаты в отпуске.
Спуститься к концу Подняться к началу
Персональная информация
alexmfivt
Добавлено 22.04.2013 05:59 Редактировалось 22.04.2013 06:08 Сообщение: 20
alexmfivt
0

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

из первого поста моего
Цитата
сделать двухпортовый свитч(длинный)
, где длинный = очень длинные беспроводные линии связи(через ПЛИС на спутник)

один порт свича в одном месте, другой очень далеко, суть - виртуальная сеть. аналог VPN туннеля.

я уже не знаю как объяснить еще проще.

Цитата
Компьютеру же Занятно обьявить по какому либо протоколу интерфейса Ethernet.

по какому? максимум что я нашел, так это сэмулировать коллизию.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux