Интерфейсный протокол

Интерфейс 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
Ответ: A

Примечание: поскольку группа отсчётов включает результаты аналого-цифрового преобразования для каждого включённого канала, в такой группе может быть до четырёх значений. 1000 отсчётов в секунду - допустимая частота при включённом двоичном формате вывода (см. команду SD) и только одном активном канале АЦП. Максимальные рекомендуемые частоты дискретизации в зависимости от формата выходных данных и числа используемых каналов указаны в разделе Технические характеристики.

Значение по умолчанию1
ПримерSR200 (200 групп отсчётов в секунду - комфортная частота дискретизации для любого формата выходных данных и любого числа активных каналов)

КомандаSC
ОписаниеВключает указанные каналы для оцифровки. Действует только для режима потоковой передачи данных. Эта настройка хранится в RAM и применяется немедленно.
Синтаксис

Команда: SCp, где p - список активных каналов от 1 до 4, разделённых запятыми
Ответ: A

Примечание 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
Несимметричный канал 2: A=128
Несимметричный канал 3: A=128
Несимметричный канал 3: A=128
Дифференциальный канал 1: A=128
Дифференциальный канал 2: 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
Несимметричный канал 2: BP=4
Несимметричный канал 3: BP=3
Несимметричный канал 3: BP=4
Дифференциальный канал 1: BP=2
Дифференциальный канал 2: BP=1)


КомандаSBN
ОписаниеЗадаёт значения параметров BN. Действует для одиночных отсчётов командами RA и RH, а также для режима потоковой передачи данных. Эта настройка хранится в RAM и применяется немедленно.
СинтаксисКоманда: SBNp, где p - список из шести значений, разделённых запятыми: четыре для несимметричных каналов 1~4 и два для дифференциальных каналов 1 и 2
Ответ: A
Значения по умолчаниюЗадаются на заводе в процессе калибровки
Пример

SBN5,5,5,5,2,2 (задаёт параметр BN так:

Несимметричный канал 1: BN=11
Несимметричный канал 2: BN=11
Несимметричный канал 3: BN=12
Несимметричный канал 3: BN=11
Дифференциальный канал 1: BN=5
Дифференциальный канал 2: BN=5)

Команды чтения 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
Ответ: A

Примечание: эта команда выполняет запись в EEPROM Tibbit. Tibbo советует обращаться с ней особенно осторожно, чтобы не допустить чрезмерного количества записей в EEPROM. У современных EEPROM допустимое число циклов записи велико, но всё же ограничено. Подробнее см. Продление и оценка срока службы EEPROM. Если запись в EEPROM не удалась, команда вернёт код состояния F.


КомандаFE
ОписаниеКопирует настройки из EEPROM (после сброса) в настройки RAM (текущие). После этого Tibbit будет работать так, как будто он только что загрузился. Дело в том, что настройки, хранящиеся в EEPROM, считываются и при загрузке.
Синтаксис

Команда: FE
Ответ: A

Примечание: целостность настроек EEPROM (после сброса) защищена контрольной суммой. Если проверка контрольной суммы при выполнении этой команды не пройдена, значения настроек EEPROM в RAM не копируются, а команда вернёт код состояния F.


КомандаSF
ОписаниеВозвращает все настройки к заводским значениям по умолчанию (включая запрограммированные на заводе значения калибровки). Эта команда перезаписывает настройки в RAM (текущие) и в EEPROM (после сброса).
Синтаксис

Команда: FE
Ответ: A

Примечание 1: целостность настроек EEPROM (после сброса) защищена контрольной суммой. Если проверка контрольной суммы при выполнении этой команды не пройдена, значения настроек EEPROM в RAM не копируются, а команда вернёт код состояния F.

Примечание 2: эта команда выполняет запись в EEPROM Tibbit. Tibbo советует обращаться с ней особенно осторожно, чтобы не допустить чрезмерного количества записей в EEPROM. У современных EEPROM допустимое число циклов записи велико, но всё же ограничено. Подробнее см. Продление и оценка срока службы EEPROM. Если запись в EEPROM не удалась, команда вернёт код состояния F.

Прочие команды

КомандаRA
ОписаниеВыполняет одиночный отсчёт по указанным каналам, оставаясь в командном режиме. Данные возвращаются в формате ASCII.
Синтаксис

Команда: RAp, где p - список активных каналов от 1 до 4, разделённых запятыми
Ответ: Aadc_value(s), где строка adc_values форматируется так, как описано в разделе Форматы выходных данных, в подразделе Формат ASCII.

Примечание 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, разделённых запятыми
Ответ: Aadc_value(s), где строка adc_values форматируется так, как описано в разделе Форматы выходных данных, в подразделе Шестнадцатеричный формат.

Примечание 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
Исходный материал Tibbo обновлён 7 октября 2022Оригинал на docs.tibbo.com · Сообщить об ошибке