Протокол интерфейса

Интерфейс UART у Tibbit #43-1 работает в одном из двух режимов связи:

  • Командный режим (по умолчанию) позволяет хост-системе настраивать модуль Tibbit, а также выполнять одиночные («разовые») аналого-цифровые преобразования.
  • Режим потоковой передачи данных: модуль непрерывно выводит измерения АЦП для включённых каналов с заданной частотой выборки и в выбранном формате.

В командном режиме хост-система общается с модулем по протоколу «команда - ответ». Все команды и ответы имеют следующий формат:

STXКоманда или ответCR

Символы STX (код ASCII 0x02) и CR (код ASCII 0x0D) образуют инкапсуляцию пакета команды или ответа. Всё, что находится перед STX и после CR, игнорируется. Неполные команды и ответы (STX без CR) игнорируются.

Tibbit #43-1 отправляет ответ на каждую правильно инкапсулированную команду хоста, кроме команды D.

В материале ниже инкапсулирующие символы <STX> и <CR> не показаны, но их наличие всегда подразумевается.

Доступные команды

Таблица 3 - доступные команды
КомандаОписание
Команды переключения режима связи
CПереключает Tibbit #43-1 в командный режим.
DПереключает Tibbit #43-1 в режим потоковой передачи данных. На эту команду ответ не отправляется.
Пользовательские команды настройки аналого-цифрового преобразования и потоковой передачи. Эти команды применяются к параметрам в 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 #43-1 выйти из режима потоковой передачи данных и перейти в командный режим. Если устройство было в режиме потоковой передачи данных, оно прекращает отправку потока и начинает принимать команды от хоста. Это единственная команда, которая распознаётся, пока модуль находится в режиме потоковой передачи данных; все остальные команды игнорируются.

Примечание: после включения питания (сброса) модуль находится в командном режиме.

СинтаксисКоманда: C
Ответ: A

КомандаD
Описание

Предписывает Tibbit #43-1 выйти из командного режима и перейти в режим потоковой передачи данных. Это единственная команда, на которую модуль не отправляет ответ. Вместо этого потоковая передача данных начинается сразу после получения команды.

Примечание: после включения питания (сброса) модуль находится в командном режиме.

СинтаксисКоманда: D
Ответ: (модуль сразу начнёт передавать поток данных)

Пользовательские команды настройки преобразования АЦП и потоковой передачи

Команда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)

Команды калибровки

Внимание

Все параметры калибровки задаются на заводе - не меняйте их, если не понимаете, что делаете!

Эти команды позволяют откалибровать линейность и смещение АЦП. Обычно они используются только при производстве модуля, но остаются доступными, и с их помощью можно выполнить повторную калибровку устройства.

Параметры A, BP и BN используются для калибровки отдельных каналов. В таблице ниже:

  • Vo - скомпенсированный выход канала АЦП
  • Vi - усреднённый необработанный выход канала АЦП
Таблица 5 - формулы калибровки
Несимметричный режим, положительные входные напряженияVo = 0.0078125 × A × Vi + 0.00244140625 × BP
Несимметричный режим, отрицательные входные напряженияVo = 0.0078125 × A × Vi + 0.00244140625 × BN
Дифференциальный режим, положительные входные напряженияVo = 0.0078125 × A × Vi + 2 × 0.00244140625 × BP
Дифференциальный режим, отрицательные входные напряженияVo = 0.0078125 × A × Vi + 2 × 0.00244140625 × 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=8
Несимметричный канал 2: BP=8
Несимметричный канал 3: BP=8
Несимметричный канал 3: BP=8
Дифференциальный канал 1: BP=4
Дифференциальный канал 2: BP=3)


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

SBN5,5,5,5,2,2 (задаёт параметр BN следующим образом:

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

Команды чтения параметров из RAM и команды, связанные с EEPROM

КомандаGC
ОписаниеВозвращает текущие значения всех параметров в RAM (текущих).
СинтаксисКоманда: GC
Ответ: Asetting_str, где setting_str содержит список значений параметров в RAM (текущих), разделённых точкой с запятой, в формате имя=значение(я); если у параметра несколько значений, они разделяются запятыми. Каждое имя соответствует команде, которой изменяется значение параметра. Например, «SR=1000» означает, что частота выборки (см. команду SR) равна 1000.
ПримерКоманда: GC
Ответ: ASR=1000;SM=1;SC=1,2;SD=0;SA=128,128,128,128,128,128;SBP=8,8,8,8,4,3;SBN=5,5,5,5,2,2;

КомандаGE
ОписаниеВозвращает значения параметров в EEPROM (после сброса). Выполнение этой команды не меняет значения параметров в RAM (текущих).
СинтаксисКоманда: GE
Ответ: Asetting_str, описание и пример setting_str см. в команде GC

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

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

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


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

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

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


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

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

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

Примечание 2: эта команда выполняет запись в EEPROM модуля. 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 (в несимметричном режиме)
Ответ: A7.2800,-4.2713; (канал 4: 7.2800V, канал 1: -4.2713V)

КомандаRH
ОписаниеВыполняет одиночное считывание с указанных каналов, оставаясь в командном режиме. Данные возвращаются в шестнадцатеричном формате.
Синтаксис

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

Примечание 1: в дифференциальном режиме (см. команду SM) доступны только CH1 и CH2. Если в дифференциальном режиме указать CH3 и CH4, команда будет отклонена с кодом состояния O.

Примечание 2: каналы опрашиваются в том порядке, в котором они перечислены в этой команде.

ПримерКоманда: RA4,1 (в несимметричном режиме)
Ответ: A099B,666A; (канал 4: 099B, канал 1: 666A)

КомандаV
ОписаниеВозвращает версию прошивки микроконтроллера PIC.
СинтаксисКоманда: V
Ответ: Aver_string
ПримерКоманда: V
Ответ: ATibbo Inc. Tibbit#43-1 FW1.1b
Исходный материал Tibbo обновлён 7 октября 2022Оригинал на docs.tibbo.com · Сообщить об ошибке