- PVSM.RU - https://www.pvsm.ru -
При решении задач электроники все методы хороши, если они устраивают ТЗ, бюджет и разработчика. Linux был мне неизвестен, но вместе с задачами, которые решаешь, растешь и сам. Этот пост расскажет о том, как применить компьютер с Ubuntu для связи большого компьютера с контроллером в соответствии со схемой:
Статья описывает практику применения описанной техники и не ставит целью охватить все глубины и возможности современной аппаратуры. Это один из вариантов решения поставленной задачи.
Описание: нужно передавать немалые объёмы данных (к примеру, по 50 Мбайт/сек), сформированные контроллером некоторого прибора, в компьютер c Windows для последующей их математической обработки, отображения в некотором виде на экране, ну и прочего…
Варианты решения:
Первый вариант простым не будет. Если делать по чесноку, то дорого. Реализация каждого протокола — вопрос времени и умения программиста, но это не та задача, на которую хочется тратить время, при создании прибора. Без протокола или только до уровня UDP — сложности совместимости. Добавить что-то новое — как лошадь объездить.
Второй вариант — тоже не подарок. Реализация интерфейса ради интерфейса — не цель проекта. А такая микросхема съест кучу ног, которые могли бы пригодиться. В итоге ПЛИС растёт, плата растёт, бюджет растёт. А простоты нет…
В связи с этим, решились на эксперимент — построить конгломерат Ethernet на компьютере и контроллера с интерфейсом USB. Небезызвестный производитель FTDI [1] относительно недавно предложил решение для USB3.0 на базе FT600 [2]. А этот маленький компьютер будет связывать между собой большой и удобный Windows управляемый ПК с контроллером, возможно обрабатывать первичные данные.
Встаёт вопрос, а как же будет работать маленький компьютер?
Желание использовать для этого дела Windows почему-то даже не появилось, а вот Linux — вариант реальный. Но беда в том, что ни кто в команде не знает, что с ним делать. Не долго думая на виртуальной машине появился Ubuntu Desktop [3]. Да он работает. Сомнений не было, но хотелось посмотреть. Теперь к делу…
Я не буду описывать все мучения человека, который 20 лет пользовался Windows и тут на тебе — Linux. Но я постараюсь дать указания, куда смотреть и что искать, если что-то идёт не так.
Этапы:
sudo dpkg -i <имя_пакета>.deb
Но для этого нужно знать все зависимости. К примеру, установка isc-dhcp-server потянула у меня следующие пакеты:
— libisccfg-export140
— libirs-export141
— isc-dhcp-server_4.3.3
Для начала, подключаем к интернету сервер через маршрутизатор, который ему выделит IP (если что ищите в поисковике настройки файла /etc/network/interfaces ), и делаем следующее:
Установка компилятора
Примеры драйверов FTD3XX от FTDI написаны на C++11. Можно ставить компилятор g++, а при компиляции нужно будет указать опцию -std=c++11
sudo apt-get install g++
Вводим пароль и соглашаемся.
Теперь в папке, где есть правильный Makefile можно написать
make
и будет компилироваться проект, но об этом позже.
Установка DHCP сервера
Я использовал isc-dhcp-server. На ubunte пишем:
sudo apt-get install isc-dhcp-server
Вводим пароль и соглашаемся.
На данном этапе хочу остановиться и посмотреть отзывы уважаемых читателей, а главное знающих людей. Может стоит вносить коррективы. Тем не менее, по результатам появится вторая часть, более содержательная.
Автор: весёлый усач
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/261181
Ссылки в тексте:
[1] FTDI : http://www.ftdichip.com/
[2] FT600: http://www.ftdichip.com/Products/ICs/FT600.html
[3] Ubuntu Desktop: http://ubuntu.ru/
[4] cюда: http://ubuntu.ru/get
[5] инструкция: https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-windows#0
[6] инструкция: http://help.ubuntu.ru/fullcircle/31/server_%D1%87_1
[7] Источник: http://habrahabr.ru/sandbox/110254/
Нажмите здесь для печати.