Интерфейсный протокол
Интерфейс UART у Tibbit #43-2 работает в одном из двух режимов связи:
- Командный режим (по умолчанию) позволяет главной системе настраивать Tibbit, а также выполнять одиночные («разовые») аналого-цифровые преобразования.
- Режим потоковой передачи данных: Tibbit непрерывно выдаёт результаты измерений АЦП для включённых каналов с заданной частотой дискретизации и в выбранном формате.
В командном режиме главная система обменивается с Tibbit по протоколу «команда - ответ». Все команды и ответы имеют следующий формат:
| STX | Команда или ответ | CR |
Символы STX (ASCII-код 0x02) и CR (ASCII-код 0x0D) обрамляют пакет команды или ответа. Всё, что находится перед STX и после CR, игнорируется. Неполные команды и ответы (STX без CR) игнорируются.
На каждую правильно обрамлённую команду главной системы Tibbit отправляет ответ, за исключением команды D.
В дальнейшем тексте обрамляющие символы <STX> и <CR> не показаны, но всегда подразумеваются.
Доступные команды
| Таблица 3 - Доступные команды | |
| Команда | Описание |
| Команды переключения режима связи | |
| C | Переключает Tibbit #43-2 в командный режим. |
| D | Переключает Tibbit #43-2 в режим потоковой передачи данных. Ответ на эту команду не выдаётся. |
| Пользовательские команды настройки аналого-цифрового преобразования и потоковой передачи. Эти команды относятся к настройкам в RAM (текущим). | |
| SM | Задаёт режим оцифровки (несимметричный или дифференциальный). Действует для одиночных отсчётов командами RA и RH, а также для режима потоковой передачи данных. |
| SD | Задаёт формат выходных данных. Действует только для режима потоковой передачи данных. |
| SR | Задаёт частоту дискретизации. Действует только для режима потоковой передачи данных. |
| SC | Включает указанные каналы для оцифровки. Действует только для режима потоковой передачи данных. |
| Команды калибровки (калибровка выполняется на заводе - не изменяйте эти параметры, если не уверены в своих действиях). Эти команды относятся к настройкам в RAM (текущим). | |
| SA | Задаёт значения параметров A. Действует для одиночных отсчётов командами RA и RH, а также для режима потоковой передачи данных. |
| SBP | Задаёт значения параметров BP. Действует для одиночных отсчётов командами RA и RH, а также для режима потоковой передачи данных. |
| SBN | Задаёт значения параметров BN. Действует для одиночных отсчётов командами RA и RH, а также для режима потоковой передачи данных. |
| Команды чтения RAM и команды, связанные с EEPROM | |
| GC | Возвращает текущие значения настроек в RAM (текущих). |
| GE | Возвращает значения настроек в EEPROM (после сброса). Выполнение этой команды не изменяет значения настроек в RAM (текущих). |
| SE | Копирует настройки из RAM (текущие) в настройки EEPROM (после сброса). |
| FE | Копирует настройки из EEPROM (после сброса) в настройки RAM (текущие). |
| SF | Возвращает все настройки к заводским значениям по умолчанию (включая запрограммированные на заводе значения калибровки). Эта команда перезаписывает настройки в RAM (текущие) и в EEPROM (после сброса). |
| Прочие команды | |
| RA | Выполняет одиночный отсчёт по указанным каналам, оставаясь в командном режиме. Данные возвращаются в формате ASCII. |
| RH | Выполняет одиночный отсчёт по указанным каналам, оставаясь в командном режиме. Данные возвращаются в шестнадцатеричном формате. |
| V | Возвращает версию прошивки микроконтроллера PIC. |
| Таблица 4 - Стандартные ответы | |
| Ответ | Описание |
| A | Команда принята. Если ответ содержит данные, они следуют за кодом ответа A. |
| C | Синтаксическая ошибка. За этим кодом ответа никогда не следуют дополнительные данные. |
| O | Параметр вне допустимого диапазона. За этим кодом ответа никогда не следуют дополнительные данные. |
| F | Сбой выполнения. Может быть связан только с операциями EEPROM. За этим кодом ответа никогда не следуют дополнительные данные. |
Команды переключения режима связи
| Команда | C |
| Описание | Предписывает Tibbit выйти из режима потоковой передачи данных и перейти в командный режим. Если устройство находилось в режиме потоковой передачи, оно прекратит отправку потока данных и начнёт принимать команды от главной системы. Это единственная команда, которая распознаётся в режиме потоковой передачи данных; все остальные команды игнорируются. Примечание: после включения питания (сброса) Tibbit находится в командном режиме. |
| Синтаксис | Команда: C Ответ: A |
| Команда | D |
| Описание | Предписывает Tibbit выйти из командного режима и перейти в режим потоковой передачи данных. Это единственная команда, на которую Tibbit не отправляет ответ. Вместо этого потоковая передача данных начинается сразу после получения команды. Примечание: после включения питания (сброса) Tibbit находится в командном режиме. |
| Синтаксис | Команда: D Ответ: (Tibbit сразу начнёт передавать поток данных) |
Пользовательские команды настройки преобразования АЦП и потоковой передачи
| Команда | SM |
| Описание | Задаёт режим оцифровки. Действует для одиночных отсчётов командами RA и RH, а также для режима потоковой передачи данных. Эта настройка хранится в RAM и применяется немедленно. |
| Синтаксис | Команда: SMp, где p - режим оцифровки: 0 - несимметричный (доступны четыре канала), 1 - дифференциальный (доступны два канала) Ответ: A |
| Значение по умолчанию | 0 |
| Пример | SM1 (выбирает дифференциальный режим) |
| Команда | SD |
| Описание | Задаёт формат выходных данных. Действует только для режима потоковой передачи данных. Эта настройка хранится в RAM и применяется немедленно. |
| Синтаксис | Команда: SDp, где p - формат выходных данных: 0 - ASCII, 1 - двоичный, 2 - шестнадцатеричный Ответ: A |
| Значение по умолчанию | 0 |
| Пример | SD2 (выбирает шестнадцатеричный формат данных) |
| Команда | SR |
| Описание | Задаёт частоту дискретизации. Действует только для режима потоковой передачи данных. Эта настройка хранится в RAM и применяется немедленно. |
| Синтаксис | Команда: SRp, где p - частота дискретизации, выраженная числом групп отсчётов в секунду, в диапазоне от 1 до 1000 Примечание: поскольку группа отсчётов включает результаты аналого-цифрового преобразования для каждого включённого канала, в такой группе может быть до четырёх значений. 1000 отсчётов в секунду - допустимая частота при включённом двоичном формате вывода (см. команду SD) и только одном активном канале АЦП. Максимальные рекомендуемые частоты дискретизации в зависимости от формата выходных данных и числа используемых каналов указаны в разделе Технические характеристики. |
| Значение по умолчанию | 1 |
| Пример | SR200 (200 групп отсчётов в секунду - комфортная частота дискретизации для любого формата выходных данных и любого числа активных каналов) |
| Команда | SC |
| Описание | Включает указанные каналы для оцифровки. Действует только для режима потоковой передачи данных. Эта настройка хранится в RAM и применяется немедленно. |
| Синтаксис | Команда: SCp, где p - список активных каналов от 1 до 4, разделённых запятыми Примечание 1: в дифференциальном режиме (см. команду SM) доступны только CH1 и CH2. Если в дифференциальном режиме указать CH3 и CH4, команда будет отклонена с кодом состояния O. Примечание 2: каналы опрашиваются в том порядке, в котором перечислены в команде. Это влияет не только на время оцифровки АЦП, но и на порядок, в котором данные каналов отправляются в режиме потоковой передачи. |
| Значение по умолчанию | 1,2,3,4 |
| Пример | SC4,2 (включает CH2 и CH2; каналы будут опрашиваться в порядке 4-2) |
Команды калибровки
Все параметры калибровки задаются на заводе - не изменяйте их, если не уверены в своих действиях!
Эти команды позволяют откалибровать линейность и смещение АЦП. Обычно они используются только при производстве Tibbit, но остаются доступными, и с их помощью можно выполнить повторную калибровку устройства.
Параметры A, BP и BN служат для калибровки отдельных каналов. В таблице ниже:
- Vo - скомпенсированный выход канала АЦП
- Vi - усреднённый необработанный выход канала АЦП
| Таблица 5 - Формулы калибровки | |
| Несимметричный режим, положительные входные напряжения | Vo = 0.0078125 × A × Vi + 0.024554 × BP |
| Несимметричный режим, отрицательные входные напряжения | Vo = 0.0078125 × A × Vi + 0.024554 × BN |
| Дифференциальный режим, положительные входные напряжения | Vo = 0.0078125 × A × Vi + 2 × 0.024554 × BP |
| Дифференциальный режим, отрицательные входные напряжения | Vo = 0.0078125 × A × Vi + 2 × 0.024554 × BN |
| Команда | SA |
| Описание | Задаёт значения параметров A. Действует для одиночных отсчётов командами RA и RH, а также для режима потоковой передачи данных. Эта настройка хранится в RAM и применяется немедленно. |
| Синтаксис | Команда: SAp, где p - список из шести значений, разделённых запятыми: четыре для несимметричных каналов 1~4 и два для дифференциальных каналов 1 и 2 Ответ: A |
| Значения по умолчанию | Задаются на заводе в процессе калибровки |
| Пример | Команда: SA128,128,128,128,128,128 (задаёт параметр A так: Несимметричный канал 1: A=128 |
| Команда | SBP |
| Описание | Задаёт значения параметров BP. Действует для одиночных отсчётов командами RA и RH, а также для режима потоковой передачи данных. Эта настройка хранится в RAM и применяется немедленно. |
| Синтаксис | Команда: SBPp, где p - список из шести значений, разделённых запятыми: четыре для несимметричных каналов 1~4 и два для дифференциальных каналов 1 и 2 Ответ: A |
| Значения по умолчанию | Задаются на заводе в процессе калибровки |
| Пример | SBP8,8,8,8,8,4,3 (задаёт параметр BP так: Несимметричный канал 1: BP=4 |
| Команда | SBN |
| Описание | Задаёт значения параметров BN. Действует для одиночных отсчётов командами RA и RH, а также для режима потоковой передачи данных. Эта настройка хранится в RAM и применяется немедленно. |
| Синтаксис | Команда: SBNp, где p - список из шести значений, разделённых запятыми: четыре для несимметричных каналов 1~4 и два для дифференциальных каналов 1 и 2 Ответ: A |
| Значения по умолчанию | Задаются на заводе в процессе калибровки |
| Пример | SBN5,5,5,5,2,2 (задаёт параметр BN так: Несимметричный канал 1: BN=11 |
Команды чтения RAM и команды, связанные с EEPROM
| Команда | GC |
| Описание | Возвращает текущие значения всех настроек в RAM (текущих). |
| Синтаксис | Команда: GC Ответ: Asetting_str, где setting_str содержит список значений настроек RAM (текущих), разделённых точкой с запятой, в формате имя=значение(я); если у настройки несколько значений, они разделяются запятыми. Каждое имя соответствует команде, которой изменяется значение настройки. Например, «SR=1000» означает, что частота дискретизации (см. команду SR) равна 1000. |
| Пример | Команда: GC Ответ: ASR=1;SM=1;SC=1,2;SD=0;SA=128,128,128,128,128,128;SBP=4,4,3,4,2,1;SBN=11,11,12,11,5,5; |
| Команда | GE |
| Описание | Возвращает значения настроек EEPROM (после сброса). Выполнение этой команды не изменяет значения настроек в RAM (текущих). |
| Синтаксис | Команда: GE Ответ: Asetting_str, описание setting_str и пример см. в команде GC |
| Команда | SE |
| Описание | Копирует настройки из RAM (текущие) в настройки EEPROM (после сброса). При следующей загрузке Tibbit эти значения будут скопированы в RAM и использованы как рабочие параметры. |
| Синтаксис | Команда: SE Примечание: эта команда выполняет запись в EEPROM Tibbit. Tibbo советует обращаться с ней особенно осторожно, чтобы не допустить чрезмерного количества записей в EEPROM. У современных EEPROM допустимое число циклов записи велико, но всё же ограничено. Подробнее см. Продление и оценка срока службы EEPROM. Если запись в EEPROM не удалась, команда вернёт код состояния F. |
| Команда | FE |
| Описание | Копирует настройки из EEPROM (после сброса) в настройки RAM (текущие). После этого Tibbit будет работать так, как будто он только что загрузился. Дело в том, что настройки, хранящиеся в EEPROM, считываются и при загрузке. |
| Синтаксис | Команда: FE Примечание: целостность настроек EEPROM (после сброса) защищена контрольной суммой. Если проверка контрольной суммы при выполнении этой команды не пройдена, значения настроек EEPROM в RAM не копируются, а команда вернёт код состояния F. |
| Команда | SF |
| Описание | Возвращает все настройки к заводским значениям по умолчанию (включая запрограммированные на заводе значения калибровки). Эта команда перезаписывает настройки в RAM (текущие) и в EEPROM (после сброса). |
| Синтаксис | Команда: FE Примечание 1: целостность настроек EEPROM (после сброса) защищена контрольной суммой. Если проверка контрольной суммы при выполнении этой команды не пройдена, значения настроек EEPROM в RAM не копируются, а команда вернёт код состояния F. Примечание 2: эта команда выполняет запись в EEPROM Tibbit. Tibbo советует обращаться с ней особенно осторожно, чтобы не допустить чрезмерного количества записей в EEPROM. У современных EEPROM допустимое число циклов записи велико, но всё же ограничено. Подробнее см. Продление и оценка срока службы EEPROM. Если запись в EEPROM не удалась, команда вернёт код состояния F. |
Прочие команды
| Команда | RA |
| Описание | Выполняет одиночный отсчёт по указанным каналам, оставаясь в командном режиме. Данные возвращаются в формате ASCII. |
| Синтаксис | Команда: RAp, где p - список активных каналов от 1 до 4, разделённых запятыми Примечание 1: в дифференциальном режиме (см. команду SM) доступны только CH1 и CH2. Если в дифференциальном режиме указать CH3 и CH4, команда будет отклонена с кодом состояния O. Примечание 2: каналы опрашиваются в том порядке, в котором перечислены в команде. |
| Пример | Команда: RA4,1 (в предположении несимметричного режима) Ответ: A-7.931,96.129; (канал 4: -7.931V, канал 1: 96.129V) |
| Команда | RH |
| Описание | Выполняет одиночный отсчёт по указанным каналам, оставаясь в командном режиме. Данные возвращаются в шестнадцатеричном формате. |
| Синтаксис | Команда: RAp, где p - список активных каналов от 1 до 4, разделённых запятыми Примечание 1: в дифференциальном режиме (см. команду SM) доступны только CH1 и CH2. Если в дифференциальном режиме указать CH3 и CH4, команда будет отклонена с кодом состояния O. Примечание 2: каналы опрашиваются в том порядке, в котором перечислены в команде. |
| Пример | Команда: RA4,1 (в предположении несимметричного режима) Ответ: AEEBD,0F4A; (канал 4: EEBD, канал 1: 0F4A) |
| Команда | V |
| Описание | Возвращает версию прошивки микроконтроллера PIC. |
| Синтаксис | Команда: V Ответ: Aver_string |
| Пример | Команда: V Ответ: ATibbo Inc. Tibbit#43-2 FW1.1b |