×Закрыть

Системний дизайн: ланка — процесор плюс конфігурована логіка

Сучасний стан справ у галузі розробки вбудованих систем вимагає швидкого виходу на ринок. Втрачений час виливається у недоотриманий прибуток, або прямі збитки від конкурентів, які займають нішу і знімають вершки. Одним із оптимальних рішень є аналіз системи із розбиттям на програмно-апаратні модулі і подальший їх синтез та інтеграція в єдине ціле.

Кожний пристрій можна розбити приблизно на такі блоки: процесор, в якому виконується частина бізнес-логіки, периферію (пристрої фізичного рівня) та інтерфейси (зовнішні і внутрішні) (Рис.1):

Рис. 1
Рис. 1 — Загальний вид вбудованої системи.

Ще років з 10 тому класичним підходом при розробці пристроїв і вбудованих систем було використання мікроконтролера і спеціалізованих інтегральних мікросхем. Останнім часом на ринку появились так звані системи на кристалі (SoC), в яких «все в одному», що є одночасно їх перевагою і вадою. Основні недоліки застосування SoC — мала масштабованість, гнучкість і потреба у специфічному середовищі розробки.

Власний досвід останніх років показує, що в багатьох випадках ефективнішим рішенням є застосування ланки: процесор — конфігурована логіка (Рис. 2):

Рис. 2
Рис. 2 — Ядро системи: процесор і конфігурована логіка.

Під процесором тут розуміється мікроконтролер, мікропроцесор, сигнальний процесор (DSP), а під конфігурованою логікою — CPLD або FPGA. Їх комбінація визначається вимогами до швидкості реакції системи, функціональним призначенням, тощо.

Властивості дизайну

Гнучкість
Така система дозволяє створювати різні як внутрішні так і зовнішні інтерфейси, розширювати входи/виходи, ефективно розподіляти ресурси системи. Частина завдань може розв’язуватись як на апаратному так і програмному рівні тому постає завдання аналізу і розбиття системи на окремі модулі розподіл функцій між програмною та апаратною частиною.

Ізоляція коду
Такий розподіл веде до того, що система стає більш схожою на багатопроцесорну. Це дозволяє ізолювати програмування і опис апаратури, зменшити розмір коду для кожної частини і прискорити розробку та поліпшити якість.

При цьому програмний код стає менш залежний від апаратури, так як на конфігурованій логіці можна задавати стандартні інтерфейси для мікроконтролера, а специфіка управління фізичним пристроєм переноситься з програми в модуль опису апаратури.

Розвантаження процесора
Частина обробки даних (апаратні прискорювачі) також може бути реалізована на логіці, що розвантажує процесор від рутинних операцій і понижує вимоги щодо його швидкодії.

Масштабованість
Процесори і мікросхеми конфігурованої логіки, як правило, належать до певних сімейств та характеризуються взаємозамінністю на рівні монтажних елементів, але мають різні внутрішні функціональні блоки, розмір пам’яті і т.п.. Так що при розробці системи, її модернізації, розвитку і вдосконаленні відпадає потреба в зміні всіє апаратної частини. Наприклад, при додаванні нових функцій може виникнути ситуація, що замало пам’яті, що вирішується простою заміною процесора повністю сумісним.

Оптимізація
Після випробувань і підготовці до виробництва, якщо постає проблема оптимізації, можна підібрати як процесор так і конфігуровану логіку з мінімальною ціною і максимальним використанням їх ресурсів.

Комплексна розробка
Вимагається розуміння архітектором програмних, апаратних можливостей системи, їх обмежень, знання прикладної частини, основних алгоритмів, мов програмування і опису апаратури. Це накладає певні вимоги до такої людини. З іншого боку, якщо зроблений аналіз, то розробка окремих вузлів є досить тривіальною задачею, так як вони ізольовані і слабозв’язані.

Приклади реалізації:

1) контролер 2D/3D приводу (Рис. 3) [1];
2) переносний пристрій дистанційного керування (Рис. 4);
3) блок прямого перетворення і цифрової обробки сигналів (ЦОС) (Рис. 5).

Рис. 3
Рис. 3 — Контролер двокоординатного приводу

На вхідний мікроконтролер приходить потік даних, наприклад G-команди. Він робить розрахунки і подає на CPLD такі сигнали — напрям руху, інкремент. Формування циклограм відбувається апаратно, а процесор аналізує вхідні дані і робить необхідні обчислення щодо вектора переміщення.

Рис. 4
Рис. 4 — Переносний пристрій дистанційного керування

Даний пристрій має дисплей для відображення інформації, кнопки керування і слот для підключення модуля радіочастотного (RF) або дротового зв’язку. Слот розширення може бути сконфігурований для різної периферії з послідовною/паралельною шиною даних. Крім того, CPLD дозволяє збільшити кількість входів/виходів та робить перетворення з послідовного інтерфейсу в паралельний для виводу на дисплей (рідиннокристалічний, світодіодний сегментний або матричний).

Рис. 5
Рис. 5 — Блок прямого перетворення і ЦОС для програмно визначеного радіо (SDR)

На даний час досить є модним напрям програмно визначеного радіо, зокрема, пряме перетворення як при прийомі, так і при передачі (сигнал формується безпосередньо на радіочастоті). Варіант побудови SDR зображено вище. Верхній діапазон частот залежить від параметрів аналого-цифрового та цифро-аналогового перетворювачів. При відносно недорогих елементах можна перекрити весь діапазон частот в межах 0..30 МГц. Модемна частина дозволяє формувати сигнал як для аналогового, цифрового та гібридного радіозв’язку; на фіксованих і рознесених частотах, забезпечує швидкий перехід з одної частоти на іншу, роботу в режимі стрибаючих частот (frequency hopping), що є основою таких технологій бездротового зв’язку як ZigBee, Bluetooth та подібних.

Висновок

При постійному ускладненні пристроїв лінійний ріст розміру коду веде до того, що час розробки збільшується по експоненціальному закону. В той же час сучасний розвиток мікроелектроніки, коли вартість кремнієвих чипів набагато порядків дешевша за програмне забезпечення, дозволяє розбивати систему на слабо зв’язані між собою блоки і модулі та створювати багатопроцесорні системи, в яких код розділений на ізольовані частини. Такий дизайн і архітектура розподілення коду, функцій і бізнес логіки між апаратною та програмною частиною дозволяє паралельно працювати над алгоритмами, програмним забезпеченням і кодом, що описує апаратуру та електричними схемами і електронними платами. В такому випадку системний дизайн із ланкою процесор-конфігурована логіка є досить ефективним рішенням при розробці як простих так і складних вбудованих систем.

Посилання:
1. dev.emcelettronica.com/...​ectric-motor-control-cpld

LinkedIn

16 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

MCU + CPLD + Analog = PSoC

15 років назад — це EP220, EP610, EP910 (PLDshell/PLDASM), 13 років — EPF8282 (MAX+II v7.0, AHDL). «Процесором» при них були i87C51FA,

тоді, думаю вони як чорти були дорогущі, скажімо так 1 м\с = півзряплати, а ще засоби відладки, то взагалі для вибранихне те що зара, кожному студіку доступно9

ака дешифратор адреси на 155РТ5 або логіка ефектів для «бігучих вогнів»

Якщо взяти мій власний досвід, то 556РТ1 (PLA, а не PROM) це 25 років назад (а раніше я і не проектував нічого «такого» ).15 років назад — це EP220, EP610, EP910 (PLDshell/PLDASM), 13 років — EPF8282 (MAX+II v7.0, AHDL). «Процесором» при них були i87C51FA, але то не дуже важливо.Причому я далеко не перший, хто в Києві почав використовувати як PLD, так і FPGA, я за них взявся, коли в «КМ-техно» їх за складу можна було пару штук взяти.

MCU+DSP+CPLD

про це можна написати цілу монографію, не те що статтю на ДОУ

не розкрита тема стандартної зв’язки MCU+DSP+CPLD і можливо ще деяких, але порадував напрямок статті — +1

:) Превратим Developers в украинскую версию Electronix!

Превратим Developers в украинскую версию Electronix!

И закрома родины будут?

Коллеги, давайте отделим мух от котлет (прошу прощения за случайный каламбур).Разработка программного обеспечения всего лишь часть усилий в разработке конечного продукта. Есть спектр задач, которые лучше (проще, дешевле, быстрее) решать FPGA/CPLD/ASIC, и есть задачи, которые лучше решить программно. Решение определяется кучей внешних и внутренних по отношению к проекту факторов. Вроде бы уже все согласились что это так. О чём разговор? Просто хочется поговорить о том, что лучше выносить в железо? Андрей, напишите ещё одну статью — о задачах, которые удобно решать на FPGA и о методах демаркации по функционалу:) Превратим Developers в украинскую версию Electronix!

Само тому необхідно підходити до розробки ПЗ для мілкосерійногодиночного віробництва, як до массового продукту (технологія розробки ПЗ — це теж продукт, наприклад ПЗ типу Builder-а для FPGA чи ПЛМ). Оця пісня про унікальність розробок вже давно набридла. На самому ділі вся унікальність зводиться на 90% до управління приводами: розігнаті, зупиннити, повернути на заданій градус и т.і. Або цифрові фільтрі, енкодери, частотоміри, контура регулювання, десь з 20 типових задач. Так, якщо Ві зробите программу унікально, ну на 30% программа буде робити довше, наприклад не 100 мкс, а130 мкс. Навряд для несерійних розробок, окрім наукових чи війскових це має значення.

2 flyman

Однозначно, що для пподуктів що тиражуються мільйонами і для серійного чи мілкосерійногодиночно в-ва підходи різні.

Ваша правда. Тому для першого вартість программного забеспечення менше вартості упаковці, а для другого настількі підвищує порог входження, що досі купа застарілого обладнання працює.

весьма сомнителен, нужно делать оценку по BOM, development effort + team composition, support, production, marketing и т.д.

Однозначно, що для пподуктів що тиражуються мільйонами і для серійного чи мілкосерійного\одиночно в-ва підходи різні.Сутуація на Україні така, що масового в-ва як такого нема (скажімо для автомобільної промисловості, чи якихось китайських поділок).Іде мова про цикл розробка — серійне виробництво (максимум кілька тис. штук).При більших партіях постає питання про ASIC замість конфігурованої логіки.

Зачем тут MCU? Почему нельзя все на CPLD нагрузить?

а як парсати на лозіці потік вхідних команд, напр. GX100Y200, GX0Y0 і т.д., на мікроконтролери це просто

Почему не взять CPU который умеет работать с дисплеями? Видимо вы тут повесили FPGA на шину процессора, таким образом сымитировав недостающую периферию.

можна, але буває багато обмежень, тобто фішка роботи інженера — знайти оптимальне прогамно-апаратне рішення, а не просто зробити «аби працювало».

Связка CPU/MCU + CPLD/FPGA не есть что-то принципиально новое в индустрии:) Одна проблема — дополнительный компонент (и обвязка) удорожает систему в производстве, и применение программируемой логики до сего дня ограничего устройствами, выпускающимися в небольших партиях -, а остальные welcome to ASIC или продолжайте писать на CPU/MCU. Кроме того, код на VHDL/Verilog тоже стоит каких-то усилий, о чём в статье почему-то не упомянули. И ещё, теперь вам надо 2 программиста, или один продвинутый -, а на западе народ практикует узкую специализацию. Тезис -

В той же час сучасний розвиток мікроелектроніки, коли вартість кремнієвих чипів набагато порядків дешевша за програмне забезпечення

весьма сомнителен, нужно делать оценку по BOM, development effort + team composition, support, production, marketing и т.д.Вцелом, Андрею + за то, что пытается продвинуть HW идеи на developers, пусть и несколько неуклюже;)

1) контролер 2D/3D приводу (Рис. 3) [1];

Зачем тут MCU? Почему нельзя все на CPLD нагрузить?

2) переносний пристрій дистанційного керування (Рис. 4);

Почему не взять CPU который умеет работать с дисплеями? Видимо вы тут повесили FPGA на шину процессора, таким образом сымитировав недостающую периферию.ИМХО, применение программируемой логики весьма ограничено и широкого распространения оно не может получить уже лет 10. Хотя есть задачи где без нее совсем никак.

мона, але не завждитим більше у мене склалась така позитивна практика, як описано в статті

Почему бы не пойти дальше и не убрать процессор как отдельный элемент вообще? Современные ПЛИС позволяют реализовать процессорное ядро прямо унутре.

это (ПЛМ) достаточно часто применялось еще 15 лет назад:)

ака дешифратор адреси на 155РТ5 або логіка ефектів для “бігучих вогнів”

это (ПЛМ) достаточно часто применялось еще 15 лет назад:) возможно, за исключением “програмно визначеного радіо” — частоты были меньше)

Подписаться на комментарии