Системний дизайн: ланка — процесор плюс конфігурована логіка
Сучасний стан справ у галузі розробки вбудованих систем вимагає швидкого виходу на ринок. Втрачений час виливається у недоотриманий прибуток, або прямі збитки від конкурентів, які займають нішу і знімають вершки. Одним із оптимальних рішень є аналіз системи із розбиттям на програмно-апаратні модулі і подальший їх синтез та інтеграція в єдине ціле.
Кожний пристрій можна розбити приблизно на такі блоки: процесор, в якому виконується частина бізнес-логіки, периферію (пристрої фізичного рівня) та інтерфейси (зовнішні і внутрішні) (Рис.1):
Рис. 1 — Загальний вид вбудованої системи.
Ще років з 10 тому класичним підходом при розробці пристроїв і вбудованих систем було використання мікроконтролера і спеціалізованих інтегральних мікросхем. Останнім часом на ринку появились так звані системи на кристалі (SoC), в яких «все в одному», що є одночасно їх перевагою і вадою. Основні недоліки застосування SoC — мала масштабованість, гнучкість і потреба у специфічному середовищі розробки.
Власний досвід останніх років показує, що в багатьох випадках ефективнішим рішенням є застосування ланки: процесор — конфігурована логіка (Рис. 2):
Рис. 2 — Ядро системи: процесор і конфігурована логіка.
Під процесором тут розуміється мікроконтролер, мікропроцесор, сигнальний процесор (DSP), а під конфігурованою логікою — CPLD або FPGA. Їх комбінація визначається вимогами до швидкості реакції системи, функціональним призначенням, тощо.
Властивості дизайну
Гнучкість
Така система дозволяє створювати різні як внутрішні так і зовнішні інтерфейси, розширювати входи/виходи, ефективно розподіляти ресурси системи. Частина завдань може розв’язуватись як на апаратному так і програмному рівні тому постає завдання аналізу і розбиття системи на окремі модулі розподіл функцій між програмною та апаратною частиною.
Ізоляція коду
Такий розподіл веде до того, що система стає більш схожою на багатопроцесорну. Це дозволяє ізолювати програмування і опис апаратури, зменшити розмір коду для кожної частини і прискорити розробку та поліпшити якість.
При цьому програмний код стає менш залежний від апаратури, так як на конфігурованій логіці можна задавати стандартні інтерфейси для мікроконтролера, а специфіка управління фізичним пристроєм переноситься з програми в модуль опису апаратури.
Розвантаження процесора
Частина обробки даних (апаратні прискорювачі) також може бути реалізована на логіці, що розвантажує процесор від рутинних операцій і понижує вимоги щодо його швидкодії.
Масштабованість
Процесори і мікросхеми конфігурованої логіки, як правило, належать до певних сімейств та характеризуються взаємозамінністю на рівні монтажних елементів, але мають різні внутрішні функціональні блоки, розмір пам’яті і т.п.. Так що при розробці системи, її модернізації, розвитку і вдосконаленні відпадає потреба в зміні всіє апаратної частини. Наприклад, при додаванні нових функцій може виникнути ситуація, що замало пам’яті, що вирішується простою заміною процесора повністю сумісним.
Оптимізація
Після випробувань і підготовці до виробництва, якщо постає проблема оптимізації, можна підібрати як процесор так і конфігуровану логіку з мінімальною ціною і максимальним використанням їх ресурсів.
Комплексна розробка
Вимагається розуміння архітектором програмних, апаратних можливостей системи, їх обмежень, знання прикладної частини, основних алгоритмів, мов програмування і опису апаратури. Це накладає певні вимоги до такої людини. З іншого боку, якщо зроблений аналіз, то розробка окремих вузлів є досить тривіальною задачею, так як вони ізольовані і слабозв’язані.
Приклади реалізації:
1) контролер 2D/3D приводу (Рис. 3) [1];
2) переносний пристрій дистанційного керування (Рис. 4);
3) блок прямого перетворення і цифрової обробки сигналів (ЦОС) (Рис. 5).
Рис. 3 — Контролер двокоординатного приводу
На вхідний мікроконтролер приходить потік даних, наприклад G-команди. Він робить розрахунки і подає на CPLD такі сигнали — напрям руху, інкремент. Формування циклограм відбувається апаратно, а процесор аналізує вхідні дані і робить необхідні обчислення щодо вектора переміщення.
Рис. 4 — Переносний пристрій дистанційного керування
Даний пристрій має дисплей для відображення інформації, кнопки керування і слот для підключення модуля радіочастотного (RF) або дротового зв’язку. Слот розширення може бути сконфігурований для різної периферії з послідовною/паралельною шиною даних. Крім того, CPLD дозволяє збільшити кількість входів/виходів та робить перетворення з послідовного інтерфейсу в паралельний для виводу на дисплей (рідиннокристалічний, світодіодний сегментний або матричний).
Рис. 5 — Блок прямого перетворення і ЦОС для програмно визначеного радіо (SDR)
На даний час досить є модним напрям програмно визначеного радіо, зокрема, пряме перетворення як при прийомі, так і при передачі (сигнал формується безпосередньо на радіочастоті). Варіант побудови SDR зображено вище. Верхній діапазон частот залежить від параметрів аналого-цифрового та цифро-аналогового перетворювачів. При відносно недорогих елементах можна перекрити весь діапазон частот в межах 0..30 МГц. Модемна частина дозволяє формувати сигнал як для аналогового, цифрового та гібридного радіозв’язку; на фіксованих і рознесених частотах, забезпечує швидкий перехід з одної частоти на іншу, роботу в режимі стрибаючих частот (frequency hopping), що є основою таких технологій бездротового зв’язку як ZigBee, Bluetooth та подібних.
Висновок
При постійному ускладненні пристроїв лінійний ріст розміру коду веде до того, що час розробки збільшується по експоненціальному закону. В той же час сучасний розвиток мікроелектроніки, коли вартість кремнієвих чипів набагато порядків дешевша за програмне забезпечення, дозволяє розбивати систему на слабо зв’язані між собою блоки і модулі та створювати багатопроцесорні системи, в яких код розділений на ізольовані частини. Такий дизайн і архітектура розподілення коду, функцій і бізнес логіки між апаратною та програмною частиною дозволяє паралельно працювати над алгоритмами, програмним забезпеченням і кодом, що описує апаратуру та електричними схемами і електронними платами. В такому випадку системний дизайн із ланкою процесор-конфігурована логіка є досить ефективним рішенням при розробці як простих так і складних вбудованих систем.
Посилання:
1. dev.emcelettronica.com/...ectric-motor-control-cpld
Все про українське ІТ в телеграмі — підписуйтеся на канал DOU
16 коментарів
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.