Texas instruments реалізація шини smbus на базі мікроконтролера msp430

Реалізація шини SMBus на базі мікроконтролера MSP430

SMbus це двухпроводной синхронний послідовний протокол, який є похідним від I 2 C. Так само, як і 2 C, він використовує лінії послідовного тактирования (SCL) і даних (SDA). Для виключення невизначеного стану на лінії використовуються підтягують (pullup) резистори або джерела струму, а пристрої, підключені до шини повинні мати виходи типу «відкритий колектор» або «відкритий стік». Це відповідає монтажному «І» всіх пристроїв, що означає, що кожне з пристроїв може або перевести шину в стан лог. «0», або звільнити її. Так як підключені до шини пристрої можуть бути запитані від різних напруг, вони не повинні переводити лінію в стан лог. «1».

Всі пристрої поділяються на провідні (master) і ведені (slave). Провідний пристрій може ініціювати передачу і формує тактовий сигнал. Ведене приймає або передає дані, але при цьому процес передачі ініціюється провідним. Пристрої можуть мати як ознаки ведучого і веденого одночасно, так і бути виключно одним або іншим. Наприклад, відоме пристрій може в критичних випадках ставати провідним і передавати системі повідомлення про несправності. Алгоритм такої поведінки цілком визначається конкретної областю застосування.

При прийомі і передачі даних використовуються сім різних протоколів. Це «Швидка команда» (Quick Command), «Відправити байт» (Send Byte), «Прийняти байт» (Receive Byte), «Записати Слово / Байт» (Write Byte / Word), «Прочитати Слово / Байт» (Read Byte / Word), «Запит стану» (Process Call), і «Читання / запис Блоку» (Block Read / Write). Кожен протокол має власний конкретний набір дій, але загальна схема схожа для всіх протоколів.

2 Апаратна частина


Рис1. Приклад організації шини SMBus

Примітка: Невикористаний висновок T це термистор. Він використовується в блоках Li-Ion батарей для аварійних вимірювань в разі несправності модуля батареї або шини SMBus.

3 Реалізація ведучого пристрою шини SMBus

Так як SMBus підтримує кілька провідних пристроїв на шині (multimaster) і «гаряче включення» (hot-plug), це призводить до появи помилок. Їх причинами є зайнятість шини, відсутність веденого пристрою, конфлікти між кількома провідними пристроями і перешкоди на шині. Програма включає обробку помилок і прапор помилки. При виявленні помилки передача припиняється, програма виставляє прапор помилки і повертається з підпрограми верхнього рівня. Призначена для користувача програма повинна перевіряти даний прапор для визначення успішного (повертає 1) або помилкового (повертає 0) завершення. Обробка події помилки здійснюється користувальницької програмою.

Основна програма включає в себе підпрограми верхнього і нижнього рівнів і розташовується окремо від користувальницької програми. Місце, де повинна розташовуватися призначена для користувача програма залишено вільним. Для передачі даних по шині SMBus, просто викликається відповідна підпрограма верхнього рівня.

4 Приклади реалізації програми ведучого пристрою шини SMBus

4.1 Пошук пристроїв на шині

З огляду на простоти прикладу, була видалена значна частина коду. Що залишився код можна запускати з-під програми монітора отладочного модуля MSP430x33x (EVK part number MSP-EVK430x330).

Також використовується запис значення в регістр «Попередження про залишилася ємності» (RemainingCapacityAlarm), записане значення перевіряється. Ці операції проводяться циклічно, результат відображається на РКІ. Приклад демонструє використання більш складних протоколів і процес обробки повертаються даних. У даній конфігурації програма протоколів SMBus запускається з EPROM отладочного модуля MSP430x33x (EVK part number MSP-EVK430x330), а призначена для користувача програма запускається з монітора цього модуля.

5 Реалізація веденого пристрою шини SMBus

Регістри не зберігаються в стеку з метою забезпечення вимог специфікації в області найбільш швидкої стартовою послідовності. Час між переходом ліній SDA і SCL в стан лог. «0» може становити всього 4 мс. Якщо відомо, що ведучий пристрій видає сигнали з більшою тривалістю, можна зберігати регістри в стеці на початку процедури, але це може привести до пропуску стартовою посилки при роботі з більш швидким провідним пристроєм.

Додаток A Програма ведучого пристрою шини SMBus

Отримати консультації та придбати компоненти ви зможете у дистибутора фірми Texas Instruments компанії КОМПЕЛ,