Блоки збору інформації. Введення


 
Багато хто на Хабре застосовують АЦП в різних проектах, починаючи від "Розумного будинку", віртурілок, музичних іграшок на STM і закінчуючи саморобними фазовими лазерними далекомірами. Спектр застосування досить широкий, однак, найчастіше все зводиться до того, щоб отримувати дані від одного АЦП з невеликою частотою (десяток Гц на канал), обробляти дану вибірку і видавати якийсь керуючий результат, або просто значення на екран.
 
А тепер уявімо, що знімати дані необхідно не з одного АЦП, а наприклад, з сотень або декількох тисяч, та ще й з частотою в діапазоні 5-200 кГц. Також можна додати вимоги роботи в реальному часі, реєстрації даних без втрат, або враховуючи їх. Загалом, до чого тут фантазувати. Простіше уявити досить великий стенд для тестування автомобіля, двигуна або корпусу літака.
 
Якщо намагатися організувати збір даних по каналу на окремий контролер, то вартість такої системи буде порівнянна з вартістю самого двигуна, або трохи менше. Ось тут на допомогу приходить Блок Збору Інформації (БСИ).
 
До БСИ пред'являються різні вимоги по робочій температурі, тиску, вологості, захищеності і т.д… Багато з цих вимог до техніки регламентується в стандарті KT-160D. Залежно від умов застосування дана система може бути віднесена до умовного класу:
 
 
     
  1. Стендове (промислове) застосування — робочі умови роботи: 0… +50 º C, вологість не більше 85%, відсутність вимог до роботи в атмосфері з пониженим тиском, механічних ударів і синусоїдальної вібрації.
     
  2.  
  3. Польове застосування — робочі умови роботи: -40… +70 º C, вологість не більше 95% протягом двох годин, робота в атмосфері з пониженим тиском до 26,8 кПа, стійкість до механічних ударів одиночного і багаторазового дії до 20 g, стійкість до лінійному прискоренню.
     
  4.  
  5. Застосування в жорстких умовах — Робочі умови роботи: -55… +75 º C, вологість не більше 95% протягом двох годин, робота в атмосфері з пониженим тиском до 0,26 кПа, стійкість до механічних ударів одиночного і багаторазового дії до 150 g, стійкість до лінійному прискоренню.
     
  6.  
Дана класифікація досить умовна, тому як перед розробкою БСИ визначається клас пристроїв. Клас присвоюється залежно від багатьох параметрів. Наприклад, цивільний або військовий літак / вертоліт висувають різні вимоги по вібрації (сподіваюся, читачі здогадуються самі чому). Тому, спочатку вибирають об'єкт застосування, потім місце роботи приладу в цьому об'єкті (Не / жило блок від цього залежить тиск), присвоюється клас пристрою і тільки після присвоєного класу можна розробляти пристрій виходячи з вимог стандартів і ГОСТ.
Інший варіант розробки пристрою — спочатку зробити, а потім вже допрацювати до певного класу.
 
Для жорстких умов БСИ виконуються в єдиному корпусі з груповими роз'ємами. Єдиний корпус дозволяє зробити конструкцію досить жорсткою. За рахунок збільшення габаритів блок отримує підігрів, захист від вібрацій і ударів. Групові роз'єми краще забезпечують герметичність, тепер соляний туман не страшний. Якщо не так важлива герметичність, то габарити дозволять зробити нормальну вентиляцію всередині корпусу.
 
 
 
А цей БСИ призначений для польового використання. Вимоги більш м'які, відповідно, можна встановити індивідуальні модулі:
 
 
 
Основними функціями БСИ є — збір даних та їх зберігання. Крім збору БСИ може передавати дані на операторську станцію, де в режимі реального часу оператор контролює значення всіх каналів. Особливо "розумні" БСИ перед отриманням даних дозволяють запрограмувати свої канали (задати частоту опитування, режими комутації, діапазони вхідних значень, підключення шунтів і багато-багато іншого), зберігати дані з каналів, як у себе всередині (на NAND / Flash), так і передавати на PC для подальшого збереження та обробки.
 
Дивлячись на зображення БСИ з індивідуальними роз'ємами можна частково зрозуміти з яких частин складається БСИ.
Зазвичай в БСИ виділяють наступні компоненти:
 
 
     
  1. Контролер — плата з процесором, який забезпечує різні інтерфейси зв'язку з PC і збір даних.
  2.  
  3. Бекплейн (backplane) — фактично, спрощена материнська плата, в яку вставляються окремі модулі
  4.  
  5. Блок живлення — тут і так все ясно. Хотілося б відзначити, що для жорстких умов експлуатації при температурі від -40 ° С спочатку починають підігрівати блок живлення і контролер, щоб вони після нагрівання (до -30 ° С) зуміли стартувати.
  6.  
  7. Корпус — визначається виходячи з вимог до зовнішніх впливів.
  8.  
  9. Модулі — окремі плати, що забезпечують приймання даних з АЦП та їх передачу в контролер.
  10.  
 
National Instruments наочно показує, які БСИ вони розробляють:
 
 
Розглянемо трохи докладніше контролер. Як мінімум він реалізує такі функції:
 
     
  • зв'язок пристрою з PC
  •  
  • настройку модулів
  •  
  • отримання даних від модулів
  •  
  • обробку даних (фільтрація опціонально)
  •  
  • передачу даних на PC
  •  
  • зберігання даних на NAND / Flash (опціонально)
  •  
 
Як ядро ​​контролера можна розглянути кілька варіантів (нерідко зустрічаються на практиці):
 
     
  • adsp 2191 — ПО на assembler, інтерфейси для зв'язку з PC (ethernet) — додаткова фізика
  •  
  • Cyclone III / IV — ПО на VHDL / Verilog, soft-процесор Nios II (ПО на С / С + +), інтерфейси для зв'язку з PC (ethernet) — додаткова фізика (IP-ядра для підключення)
  •  
  • OmapL137/138 — ПО на С / C + +, ядро ​​ARM9/DSP, вбудований Ethernet
  •  
  • Xilinx Zynq — ARM9/FPGA, вбудований USB
  •  
 
Для вибору ядра необхідно розібратися, яка стоїть завдання і як її краще вирішити. Повертаємося до наших АЦП.
У багатоканальної системі деяка група каналів може бути схожа за характеристиками. Наприклад, канали для датчиків температури. Якщо немає серйозних вимог по похибки і частоти опитування менш 1000 Гц, то немає необхідності окремому каналу давати окреме АЦП. У цьому випадку ідеально підійдуть модулі з комутованим АЦП.
 
 
 
На коммутируемом модулі розташовується один АЦП, кілька комутаторів і груповий вхідний роз'єм. Зазвичай у таких модулів 4, 8, 16, 32 каналу. Така економія на АЦП призводить до деяких обмежень.
 
При частоті опитування в 100 Гц для одного каналу період опитування становить 10 мс. За цей час необхідно отримати одне значення з АЦП. Модуль з 32 каналами повинен за ті ж 10 мс отримати дані з АЦП 32 рази. Для одного каналу час з 10 000 мкс зменшується до 312 мкс.
 
Отримання даних відбувається наступним чином:
 
     
  1. скоммутіровани канал
  2.  
  3. віднімати дані з АЦП
  4.  
  5. передати дані в контролер (опціонально)
  6.  
  7. скоммутіровани наступний канал
  8.  
  9. і т.д.
  10.  
Кожна з операцій займає час. Наприклад, запис конфіга регістрів за SPI може займати близько 10-20 мкс. Вичитка АЦП 1-5 мкс.
Але при такому алгоритмі вичитки з'являються побічні ефекти у вигляді взаємовпливу каналів, коли значення фіз. величини на одному каналі починає впливати на інший. Щоб цього уникнути, між отриманням даних з різних вхідних ліній виробляється комутація АЦП на землю. За цей час заземлення частина заряду з попереднього каналу йде.
 
Таким чином, з'являється поняття циклограми — комутація каналів і землі до АЦП по жорстких таймингам.
 
Наприклад, на частоті 100 Гц зазвичай забезпечується комутація АЦП на канал — 150 мкс, на землю 100 мкс.
 
Якщо виставити значення порядку 5 мкс, то можна спостерігати помітне взаємовплив, подаючи на обидва канали різні синусоїди. Чим менше часу проводить АЦП між збором даних з різних каналів, тим більше взаємовплив, тобто збільшується похибка модуля.
 
Повна протилежність комутованих модулям — модулі з незалежними АЦП. Такі модулі можуть незалежно налаштовувати окремий канал — по частоті, по діапазону вхідних значень і багатьом параметрам. Здавалося б все чудово, тільки вартість таких модулів збільшується за рахунок великої кількості АЦП.
 
 
 
У наступній статті будуть розглянуті деякі питання з таких:
 
     
  • алгоритми отримання даних від АЦП
  •  
  • вибір обчислювального ядра для контролера
  •  
  • вибір обчислювального ядра для модуля
  •  
  • обмін даними між модулями і контролером
  •  
  • отримання даних від високошвидкісних модулів
  •  

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.