|
|
  |
Real-time и не-real-time - в одном флаконе или раздельно? |
|
|
|
Nov 19 2017, 12:40
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368

|
Цитата Сейчас битва идет за наносекунды, но это уже спец железо. Вот фото спец-платы с которой я лично работал: http://www.colfaxdirect.com/store/pc/viewP...?idproduct=2865сток ядро с PREEMPT_RT, сетевуха - 2 канала по 40Gbit, время реакции всей системы от прихода пакета до ответа в сеть (на границе сетевого интерфейса) - ~250 ns. Ядру приложения надо всего один такт на выдачу результата, это 5ns Какие микросекунды ? Забудьте... Извините, но на ПЛИС я тоже за микросекунду все сделаю. Вопрос был о процессорах....
|
|
|
|
|
Nov 21 2017, 17:44
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 18-12-16
Пользователь №: 94 676

|
Цитата(syoma @ Oct 26 2017, 09:41)  Привет. Собственно вопрос из области начинающих по архитектуре процессорной системы. Делаем новый проект и возник вопрос. С одной стороны есть программа, работающая в жестком реальном времени с коммуникацией, через CAN, SPI и RS485. Это основная функция системы. С другой стороны есть куча других интерфейсов - SD card, Ethernet, USB и прочих, которые служат для вспомогательных функций - записи логов, параметрирования, обновления ПО, удаленного доступа через WEB и bluetooth, терминалки и т.д. ... Поэтому у меня настрой такой, что основной процессор должен выполнять только основную real-time программу и все. При этом ему не нужна операционная система вообще, так как нужные интерфейсы реализуются как функции ввода/вывода - это уже реализовано и проверено. А для всего остального поставить отдельный процессор или даже платку, на которой будет крутиться обыкновенный Linux со всеми нужными драйверами. И с основным процессором эта плата будет общаться только через CAN. В этом случае практически все функции будут уже реализованы в самом ядре и программисту надо будет сделать очень мало и хоть на питоне или джаве. То есть затраты на разработку будут гораздо меньше, имеем барьер от хакерских атак - если этот процессор зависнет, система будет прекрасно работать дальше, но увеличиваем стоимость железа.
Как думаете это нормальный подход сегодня? ИМХО это самый лучший вариант в вашем случае. Минимальная вероятность завязнуть в разработке и отладке програм и провалить сроки. Минус только в том, что can - достаточно медленный интерфейс, но если это не проблема, то МК + application processor - самое то, просто и надежно. Цитата(mantech @ Nov 21 2017, 09:02)  Чисто ради интереса, что он там с видео делал, кодеки свои писал на плисе? А почему нет, я и сам так делал. А вообще на ПЛИС хорошо ложатся такие алгоритмы как интерполяция цветов (debayer), коррекция дефектных пикселей, цветокоррекция, фильтрация, автояркость/контраст, преобразование цветовых пространств и т.д. Причем для 1080х1920 все вышеперечисленное влезет в какой-нибудь мелкий ультрмалопотребляющий lattice. А в dsp, например, тот же debayer займет кучу процессорного времени с его ~100 млн. умножений и 100 млн. сложений на кадр.
|
|
|
|
|
Nov 22 2017, 02:53
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(mantech @ Nov 21 2017, 13:02)  Чисто ради интереса, что он там с видео делал, кодеки свои писал на плисе? Я все это видел в 2007 году. Многого не помню. Обработка разнообразная, шумоподавление, автоподстройка контрастности, когда из темных мест вдруг проступают детали. Коррекцию цвета и много чего я уже не помню. Но он мужик крутой. Стоял у истоков телевидения высокого разрешения. Цитата(Viktuar @ Nov 21 2017, 21:44)  А почему нет, я и сам так делал. А вообще на ПЛИС хорошо ложатся такие алгоритмы как интерполяция цветов (debayer), коррекция дефектных пикселей, цветокоррекция, фильтрация, автояркость/контраст, преобразование цветовых пространств и т.д. Причем для 1080х1920 все вышеперечисленное влезет в какой-нибудь мелкий ультрмалопотребляющий lattice.
А в dsp, например, тот же debayer займет кучу процессорного времени с его ~100 млн. умножений и 100 млн. сложений на кадр. Именно. Лучше ничего не придумали. Самые крутые видеочипы самых крутых фирм именно так и сделаны. Цитата(Viktuar @ Nov 21 2017, 20:44)  ИМХО это самый лучший вариант в вашем случае. Минимальная вероятность завязнуть в разработке и отладке програм и провалить сроки. Минус только в том, что can - достаточно медленный интерфейс, но если это не проблема, то МК + application processor - самое то, просто и надежно. 485 еще медленнее. На самом деле все коммуникационные устройства работают на контроллере прямого доступа к памяти, а процессор блоками пересылает, что зачастую производится переписыванием адреса из одного интерфейса в другой. Всей работы по пересылке пакета данных процессор делает переписывание пары регистров.
|
|
|
|
|
Nov 22 2017, 06:15
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368

|
Если уж разгуляться и пофантазировать, то я тоже мог бы всю свою программу запустить на ПЛИСе - там, в основном, только автоматы состояний , которые ложатся на логику легко. Но появляется множество вопросов: - Есть ли ПЛИСы, стоимостью с 10-баксовый STM32F? - CAN-корки в ПЛИС дорогие, то есть надо будет ставить отдельный контроллер, так как open-sourcная реализация, насколько я знаю, нерабочая - Поверх CAN мне надо бы CANopen, а RS485 - Modbus RTU - все мастеры. Тут, похоже ПЛИС отдыхает, либо надо будет SoftCore - процессор и делать все на нем.
ИМХО неинтересно получается.
|
|
|
|
|
Nov 22 2017, 08:56
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(syoma @ Nov 22 2017, 08:15)  Если уж разгуляться и пофантазировать, то я тоже мог бы всю свою программу запустить на ПЛИСе - там, в основном, только автоматы состояний , которые ложатся на логику легко. Но появляется множество вопросов: - Есть ли ПЛИСы, стоимостью с 10-баксовый STM32F? - CAN-корки в ПЛИС дорогие, то есть надо будет ставить отдельный контроллер, так как open-sourcная реализация, насколько я знаю, нерабочая - Поверх CAN мне надо бы CANopen, а RS485 - Modbus RTU - все мастеры. Тут, похоже ПЛИС отдыхает, либо надо будет SoftCore - процессор и делать все на нем. Грех от разработчиков под ПЛИС требовать понимания сложностей софта. У них только отфильтровать, трансформировать да переслать. А вы как-то непоследовательны. Сначала завели речь о неквалифицированных программистах, а тут рассуждаете, что CANopen могли бы и на автоматах сделать. Купите уже Micrium OS, и получите там все стеки готовые и с такой документацией что даже заядлые ардуинщики поймут. По моим прикидкам сделать самостоятельно CANopen даже не на автоматах это на пару месяцев работы для одного программиста. RTOS с фреймворком обойдется дешевле как ни крути.
|
|
|
|
|
Nov 22 2017, 17:01
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368

|
Цитата Купите уже Micrium OS, и получите там все стеки готовые и с такой документацией что даже заядлые ардуинщики поймут. Подумаешь, Single Product: OS-II / OS-III: $8,000 CAN Framework: $3,100 Can Open: $10,400 И два человеко-месяца и даже Codesys уже не кажутся чем-то дорогими.
|
|
|
|
|
Nov 22 2017, 19:27
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(syoma @ Nov 22 2017, 20:01)  Подумаешь, Single Product: OS-II / OS-III: $8,000 CAN Framework: $3,100 Can Open: $10,400 И два человеко-месяца и даже Codesys уже не кажутся чем-то дорогими. Какие хорошие ценники! Если честно, чего все так в этот кан уперлись, что в нем такого особенного, ну протолкнули бошевцы его в автомашинную автоматизацию, дальше то что? Если не для машин делать системы, вполне 485й устраивает в большинстве случаев, если надо быстро - эзернет. Все доступно, открыто и не надо килобаксы платить...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|