Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct


Скачать 82.45 Kb.
Название Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct
Тип Документы
rykovodstvo.ru > Руководство эксплуатация > Документы


Пакет «Домашняя лаборатория»

Данный документ описывает структуру пакета Домашняя лаборатория.zip и принципы работы с устройствами, водящими в программно-аппаратный комплекс «Домашняя лаборатория».

Структура пакета «Домашня лаборатория»


Пакет «Домашняя лаборатория» содержит следующие файлы:

  • «Домашняя лаборатория».pdf – текущий документ;

  • Домашняя лаборатория.exe – исполняемый код интерактивной оболочки;

  • Домашняя лаборатория Инструкция.pdf – инструкция по применению интерактивной оболочки;

  • Домашняя лаборатория.cpp – исходные коды варианта реализации интерактивной оболочки.

Введение


Устройства, входящие в «Домашнюю лабораторию» (далее по тексту – устройства), являются простейшими низкоскоростными USB устройствами (Low Speed USB devices), принадлежащими к HID-классу. Данный класс поддерживается практически всеми современными операционными системами, что исключает необходимость разработки и установки специализированных драйверов. Более того, программное обеспечение, реализующее взаимодействие ПК с устройствами может быть написано практически в любой среде программирования (Builder, Delphi, Code vision) – достаточно использовать любую библиотеку для работы с HID.

В устройствах используется драйвер V-USB от OBJECT DEVELOPERS.

Все устройства имеют следующие идентификаторы:

  • VID = 0x20A0

  • PID = 0x4173

Для однозначной идентификации устройств используются:

VendorNane = «www.masterkit.ru»

ProductName = для самописца – «MP730»

для генератора – «MP731»

для частотомера – «MP732»

Принцип взаимодействия устройств с ПК

Не углубляясь в подробности работы USB интерфейса (официальную спецификацию которого можно изучить на сайте http://www.usb.org/developers/docs/), опишем принципы взаимодействия устройств с персональным компьютером (хост, в терминологии спецификации).

После подключения устройства к шине USB и инициализации хост может запрашивать данные с помощью IN-репортов Get Feature или передавать данные с помощью OUT-репортов Set Feature.

В соответствии со спецификацией, инициатором обмена всегда является хост.

Репорты представляют собой блоки данных, имеющие фиксированный размер. В нашем случае размер блока данных равен 8-ми байтам. Данные, входящие в блок, структурированы.

Структура данных


Данные репорта структурированы следующим образом:

struct ul_dataexchange_struct

{

uchar command; // команда (номера команд приведены в

списке ниже)

uchar counter; // счетчик команд

uchar data[5]; // данные (структурированные)

uchar check; // проверочный байт =

=( сумма data[i] ) ^ 0xFF

void CountCheck ( void )

{

check = ( data[0]+data[1]+data[2]+data[3]+data[4] ) ^ 0xFF;

};

bool CheckGood ( void )

{

if ( check == ( data[0]+data[1]+data[2]+data[3]+data[4] ) ^ 0xFF )

{

return true;

}

else

{

return false;

}

};

};

Поле command


Поле command содержит код команды из нижеприведенного списка:

#define COM_NULL 0x00 // пока не используется

#define COM_ERROR 0xFF // пока не используется

#define COM_IN_MAIN_DATA 0x01 // получить основные

данные от устройства

#define COM_OUT_MAIN_DATA 0x02 // послать основные данные

устройству

#define COM_IN_RAM_DATA 0x03 // получить значение ячейки

ПЗУ устройства

#define COM_OUT_RAM_DATA 0x04 // записать значение ячейки

ПЗУ устройства

#define COM_IN_EEPROM_DATA 0x05 // получить значение ячейки

ОЗУ устройства

#define COM_OUT_EEPROM_DATA 0x06 // записать значение ячейки

ОЗУ устройства

Поле counter


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

Устройства копируют поле counter OUT-репорта в одноименное поле следующего IN-репорта, позволяя тем самым, отслеживать порядок работы связки хост-устройство.

Поле data


Поле data содержит массив полезной информации. Этот массив структурируется в зависимости от типа устройства и команды.

Основные структуры данных


Основные структуры предназначены для приема/передачи характерных данных для каждого из устройств.

Структуры самописца


Ниже представлены структуры, применяемые к изделию MP730.

// структура данных для управления самописцем

struct ul_logger_out_main_data

{

uchar csr; // регистр управления и статуса

short reserved1; // зарезервировано

short reserved2; // зарезервировано

};
// структура данных самописца в 10-ти битном режиме

// используется, если бит LOGGER_CSR_RES == 0 в регистре управления и статуса

struct ul_logger_in_main_data_10bit

{

uchar csr; // значение регистра управления и статуса

short adcval1; // а) в режиме пикового детектора -

минимальное значение на периоде

опроса выбранного канала

б) в нормальном режиме - значение АЦП

1-го канала

short adcval2; // а) в режиме пикового детектора -

максимальное значение на периоде

б) опроса выбранного канала в нормальном

режиме - 10-ти битное значение АЦП

2-го канала

};
// структура данных самописца в 8-ми битном режиме

// используется, если бит LOGGER_CSR_RES == 1 в регистре управления и статуса

struct ul_logger_in_main_data_8bit

{

uchar csr; // значение регистра управления и статуса

uchar adcval1_low; // а) в режиме пикового детектора -

минимальное значение на периоде

опроса 1-го канала

б) в нормальном режиме - значение

АЦП 1-го канала

uchar adcval1_high; // а) в режиме пикового детектора -

максимальное значение на периоде

опроса 1-го канала

б) в нормальном режиме -

значение == 0x00

uchar adcval2_low; // а) в режиме пикового детектора -

минимальное значение на периоде

опроса 2-го канала

б) в нормальном режиме - значение

АЦП 2-го канала

uchar adcval2_high; // а) в режиме пикового детектора -

максимальное значение на периоде

опроса 2-го канала

б)в нормальном режиме - значение

== 0x00

};

Структуры генератора


Ниже представлены структуры, применяемые к изделию MP731.

// структура данных для управления генератором

// выбор осуществляется в соответствии с битом GENERATOR_CR_OUT_NUM в регистре управления

struct ul_generator_out_main_data_1ch

{

uchar cr; // регистр управления

uchar TCCR0Ar; // регистр TCCR0A

uchar TCCR0Br; // регистр TCCR0B

uchar OCR0Ar; // регистр OCR0A

uchar reserved0; // зарезервировано

};

struct ul_generator_out_main_data_2ch

{

uchar cr; // регистр управления

uchar TCCR1r; // регистр TCCR1

uchar GTCCRr; // регистр GTCCR

uchar OCR1Сr; // регистр OCR1С

uchar PLLCSRr; // регистр PLLCSR. доступны биты

LSM и PCKE

};
// структуры данных от генератора

struct ul_generator_in_main_data

{

uchar cr; // регистр управления

int reserved0; // зарезервировано

int reserved1; // зарезервировано

};

// значения битов регистра управления генератора

#define GENERATOR_CR_OUT1_TYPE 0 // 0 - генератор,

1 - управление с ПК

#define GENERATOR_CR_OUT2_TYPE 1 // 0 - генератор,

1 - управление с ПК

#define GENERATOR_CR_OUT1_VALUE 2 // 0 - LOW, 1 - HIGH

(активно при управлении

с ПК)

#define GENERATOR_CR_OUT2_VALUE 3 // 0 - LOW, 1 - HIGH

(активно при управлении

с ПК)

#define GENERATOR_CR_OUT3_VALUE 4 // 0 - LOW, 1 - HIGH

(активно при управлении

с ПК)

#define GENERATOR_CR_OUT_NUM 5 // 0 - настройки генератора

OUT1, 1 - настройки

генератора OUT2

Структуры частотомера


Ниже представлены структуры, применяемые к изделию MP732.

// структура данных частотомера

struct ul_frequencymeter_in_main_data

{

uchar sr; // регистр статуса, значения битов

описаны ниже

unsigned long frequency; // измеренная частота

};

// значения битов регистра статуса частотомера

#define FREQUENCYMETER_SR_INPUT 0 // состояние

дополнительного входа

Структура данных для чтения/записи ячеек RAM и EEPROM


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

Структура имеет следующий вид:

// структура данных для чтения/записи ячеек памяти устройств

struct ul_data_struct

{

short addr; // адрес ячейки

uchar data; // содержание ячейки

uchar reserved0; // зарезервировано

uchar reserved1; // зарезервировано

};

Диапазон адресов доступный для записи в RAM – [0х0051..0x0051] = OSCCAL (внутренний регистр)

Диапазон адресов доступный для записи в EEPROM – [0x0010..0x00FF]

Функция чтения доступна для всех возможных адресов ячеек памяти.

Поле check


Поле check обеспечивает дополнительный уровень защиты при передаче данных, несмотря на то, что пакеты, передаваемые по USB интерфейсу, уже содержат контрольную сумму (CRC). Это поле также подтверждает, что полезные данные сформированы хостом либо устройствами адекватно.

Поле check вычисляется как сумма элементов массива data[] с последующей операцией XOR. На языке высокого уровня check = (data[0]+…+data[4]) ^ 0xFF.




Похожие:

Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon План лекции Язык sql в субд. Структура команды sql. Типы данных. Выражения
База данных (БД) – это информационная модель объекта – именованная совокупность данных, отображающая состояние объектов, их свойства...
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Пермский филиал Факультет бизнес-информатики Кафедра информационных...
Данные гис – данные, полученные в результате геофизического исследования скважин. Синоним к термину «Каротажные данные»
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Руководство по программированию содержание
Вся информация по технике безопасности, которая предоставлена в данной инструкции по эксплуатации, изложена следующим образом
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Перед применением эфирного масла внимательно прочитайте в инструкции...
Индивидуальная непереносимость эфирных масел может проявляться следующим образом
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Положение по организации и проведению работ по обеспечению безопасности...
Структура организационной системы обеспечения безопасности персональных данных 27
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Обработка автоматических коробок передач любых типов производится следующим образом
Тщательно перемешайте флакон с составом, так чтобы осадок на дне распределился по всему объему жидкости
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Запуск программы
Запустит программу можно через ярлык на рабочем столе «Программа арм егаис». Главное окно программы выглядит следующим образом
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Инструкция по управлению сайтом
Для того, чтобы зайти в систему администрирования нужно набрать /mod/admin после адреса Вашего сайта. Адрес должен выглядеть следующим...
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Противовирусные препараты
В медицинской практике существует определенное разделение всех лекарств по механизму воздействия и происхождению. Согласно ему противовирусные...
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Инструкция по настройке icq с внутренним ip адресом Запускаем icq
Меняем настройки следующим образом: Хост (Host): login icq com, порт (port): 443
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Однокомпонентный нпу polynor предназначен для теплоизоляции и звукоизоляции
Поставляется полинор в готовых баллонах по 890 мл, которые, в плане ценового диапазона, сегодня, доступны каждому. Использовать данный...
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Словарь терминов процессуальной работы Составитель Дж. М. Ривар
Каждый термин взят из одной или более публикаций, перечисленных в Библиографии в конце словаря. Для идентификации каждого источника...
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Содержание Введение Глава Основные понятия бд и субд данные и ЭВМ
Эти базы данных создаются и функционируют под управлением специальных программных комплексов, называемых системами управления базами...
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Функциональные и технические требования
Вся работа с базой данных, объектными данными, исполнение запросов – выполняется на стороне сервера. Тонкий клиент получает готовые...
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Центр «Карьера» учебно-программная документация для подготовки по профессии «кладовщик»
Если же говорить более конкретно, то задачи кладовщика можно сформулировать следующим образом: Прием, размещение на складе и отпуск...
Структура данных Данные репорта структурированы следующим образом: struct ul dataexchange struct icon Руководство пользователя включает в себя
Супд) электронной навигационной карты Ярославской области (энк). В состав данных входят как базовые пространственные данные, так...

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск