Сложно-функциональный блок для СБИС типа система на кристалле
COMPLEX-FUNCTIONAL UNIT FOR VLSI-TYPE SYSTEM ON CHIP

Изобретение относится к области сетей передачи данных. В заявке описан интерфейсный сложно-функциональный блок (СФ-блок), разработанный для СБИС типа «система на кристалле», предназначенный для обмена данными в соответствии с протоколом.
В ходе работ по разработки СБИС типа «система на кристалле» (далее СнК) для применения в составе промышленных компьютеров, в том числе в контроллерном оборудовании, терминалах релейной защиты и автоматики и автоматизированных системах управления технологическими процессами (АСУТП) был разработан функционально законченный СФ-блок "TSI_controller", предназначенный для программной и аппаратной реализации протокола. С помощью СФ-блока "TSI_controller" осуществляется обмен данными по шине с внешними по отношению к СнК устройствами. СнК с заявляемым СФ-блоком изготовлена по КМОП-технологии 28 нм. Описанный в заявке СФ-блок в зависимости от области применения поддерживает один из двух протоколов. Первый протокол (ТМВ5000) описан в заявке на изобретение ЕА №201700029 А1, опубликованной 28.02.2018 г. и в заявке на изобретение RU №2018111465, поданной 30.03.2018 г. Второй протокол (TSI) описан в данной заявке. При описании СФ-блока и протокола используемые термины имеют следующее значение:
«Протокол обмена данными» или «протокол передачи данных» - набор правил и соглашений, определяющих содержимое, формат, параметры времени, последовательность и проверку ошибок в сообщениях, которыми обмениваются устройства системы.
«Ведущее устройство (Master)» - устройство, которое посылает данные другим устройствам и/или запрашивает данные от других устройств, т.е. является инициатором в обмене данными с ведомым устройством.
«Ведомое устройство (Slave)» - устройство, которое может обмениваться информацией только с ведущим устройством после того, как от ведущего устройства поступит соответствующий запрос.
«Абоненты интерфейса» - электронные устройства, обмен данными между которыми осуществляется посредством магистрального последовательного интерфейса.
«Шина» - дифференциальная витая пара проводов или дифференциальная пара проводников на печатной плате, по которой осуществляют передачу данных в виде электрических сигналов от отправителя к получателю.
«Общая шина» или «магистраль» - тип линии связи, при котором все абоненты подсоединены к общей линии связи. Общая линия связи используется всеми абонентами по очереди. Все сообщения, посылаемые отдельными абонентами, прослушиваются всеми остальными абонентами, подключенными к линии связи, но из потока сообщений абонент отбирает только адресованные ему сообщения.
«Слово» - строка битов, рассматриваемая как единое целое при их передаче, приеме, коммутации, обработке, отображении и хранении.
«Контрольный пакет» - блок данных, обрабатываемый сетевыми программами как единое целое. Пакет состоит из данных, выполняющих роль служебной информации, необходимых для реализации протокола.
«Информационный пакет» - блок данных, обрабатываемый сетевыми программами, как единое целое. Пакет состоит из служебных данных и полезных данных, которые должны быть переданы.
Общая структура контрольного или информационного пакета определяется составом пакета и его форматом.
«Состав» - содержащиеся в пакете различные типы данных.
«Формат» - размерность и порядок размещения различных типов данных.
«Сообщение» - последовательность передаваемых контрольного и информационного пакетов.
Аппаратное и программное исполнение интерфейсного периферийного устройства зависит от того, для реализации какого протокола оно предназначено и от предъявляемых к нему специальных требований.
Из патентных источников известны устройства ввода-вывода, используемые для реализации следующих интерфейсов:
- Известно устройство коммуникационного интерфейса (контроллер) для сети Space Wire (патент RU №2483351 С1 и патент RU №175049 U9) для многопроцессорных вычислительных систем с распределенной обработкой информации и для локальных вычислительных сетей, создаваемых на базе технологии Space Wire [ECSS Standard ECSS-E-50-12A, "SpaceWire, Links, Nodes, Routersand Networks", Issue 1, European Cooperation for Space Data Standardization, February 2003]. Данное устройство предназначено для сбора информации от множества датчиков и других подобных модулей, не имеющих процессорного управления, при построении распределенных вычислительных систем, используемых во встраиваемых применениях, в том числе в бортовых вычислительных комплексах. Контроллер SpaceWire образован приемником и передатчиком с необходимыми элементами управления и интерфейсами. В сети SpaceWire узлы-абоненты связаны с маршрутизирующим коммутатором. Маршрутизирующий коммутатор обеспечивает непосредственную передачу трафика между своими входными и выходными портами. Узел-абонент отличается от коммутатора тем, что трансляция данных между его линк-портами возможна только под управлением хост устройства (т.е. реализуется программно).
- Известен коммуникационный модуль для сети FlexRay (патент RU №2380841 С2). Протокол FlexRay работает по методу многоабонентского доступа с временным разделением каналов, в соответствии с которым различным подключенным к шине обмена данными абонентским устройствам присваиваются различные жестко заданные интервалы времени, в течение которых эти устройства имеют исключительное право на доступ к каналу связи. Интервалы времени повторяются в каждом цикле, поэтому время, в которое сообщение передается по шине точно определено и доступ к шине является детерминированным. Абонентское устройство сети FlexRay имеет собственный процессор и контроллер шины FlexRay (коммуникационный контроллер). При этом процессором абонента формируются и обрабатываются данные, передаваемые через контроллер шины FlexRay.
- Известен модуль SPI для последовательного периферийного интерфейса SPI (Евстифеев А.В., Микроконтроллеры AVR семейства Classic фирмы ATMEL - 6-е изд., стер. - М.: Издательский дом «Додэка-XXI», 2008 г., серия «Мировая электроника», стр. 273-344), принятый в качестве прототипа для заявляемого сложно-функционального блока системы на кристалле. Модуль SPI реализован в микроконтроллерах AVR семейства Classic фирмы «Atmel». Модуль SPI имеет два назначения. Через него может быть осуществлено программирование микроконтроллера (так называемый режим последовательного программирования). Вторым назначением интерфейса является организация высокоскоростного обмена данными между микроконтроллером и различными периферийными устройствами, такими как цифровые потенциометры ЦАП/АЦП, Flash ПЗУ и др.
Посредством этого интерфейса также может производиться обмен данными между несколькими микроконтроллерами AVR. При обмене данными по интерфейсу SPI микроконтроллер AVR может работать как в режиме Master, так и в режиме Slave. При этом пользователь может задать скорость передачи (четыре программируемых значения) и формат передачи (от младшего разряда к старшему или наоборот).
Одна из проблем, которая стоит перед разработчиками устройств ввода-вывода состоит в том, чтобы максимально автоматизировать процесс обмена данными между абонентами сети и, тем самым, разгрузить вычислительную мощность центрального процессора (ЦП). Для этого устройства ввода-вывода снабжены дополнительными устройствами, которые бы могли взять у ЦП нагрузку на управление шиной и выполнение запрограммированной последовательности сообщений по шине. Это позволит высвободить ресурсы ЦП для другой работы. Так, известен контроллер шины (патент US 4,805,137), предназначенный для передачи данных согласно интерфейсу, описанному в стандарте MIL-STD- 1553В, dated 21 September 1978, "Department of defense interface standart for digital time division command/response multiplex data bus" (обозначение стандарта министерства обороны США для интерфейса цифровой шины данных с временным разделением команда/ответ). Данный стандарт описывает магистральный последовательный интерфейс с централизованным управлением, применяемый в системе электронных устройств («контроллер», «удаленный терминал» и «монитор»). Интерфейс MIL-STD-1553В функционирует асинхронно, в режиме «команда-ответ», при котором инициирование обмена информацией и управление передачей осуществляет только «контроллер» шины. Система из электронных устройств является системой реального времени, в которой «контроллер» и «удаленные терминалы» должны отвечать в строгих временных рамках и любое взаимодействие с ЦП ухудшает реакцию системы. Недостатком известного контроллера шины является то, что он лишь частично разгружает ЦП от некоторых задач управления шиной. Для этого в контроллер шины введен «блок команд», который является главным конечным автоматом и предназначен для управления перемещением данных между регистрами и другими модулями в контроллере шины в запрограммированной последовательности независимо от ЦП. Остановка работы «блока команд» возможна при вмешательстве ЦП. Известный контроллер шины для MIL-STD-1553В реализован на двухцелевой микросхеме, которая может выполнять функции как «контроллера», так и «удаленного терминала».
Известно описание системы для реализации режима "Bus Mastering" периферийных устройств в компьютерной системе (патент US 5,905,912). Известная система предназначена для обеспечения автоматической передачи данных между компьютерной системой и ее периферийными устройствами. Система также предназначена для инициирования и завершения автоматической транзакции. Кроме того, система имеет возможность обрабатывать несколько транзакций без вмешательства ЦП компьютерной системы. Для реализации перечисленных задач система для режима "Bus Mastering" периферийных устройств в компьютерной системе (в частности, персональном компьютере) состоит из четырех основных элементов:
- DMA-контроллера (DMA controller), предназначенного для передачи данных в память компьютерной системы и из нее.
- Процессора списка (List processor), связанного с DMA-контроллером для програмирования DMA-контроллера, формирования и отправки командных сигналов в DMA-контроллер и получения статуса состояния DMA-контроллера после завершения передачи данных. Список дескрипторов хранится в памяти компьютерной системы. Элементы списка дескриптора описывают каждую передачу данных, которую процессор списка инициирует, контролирует и завершает. В качестве процессора списка может быть использован микроконтроллер или ЦП компьютера.
- Контроллера периферийного устройства (Device controller), связаного с DMA-контроллером и процессором списка и предназначенного для ответа на командные сигналы из процессора списка, передачи данных в и из DMA-контроллера и после завершения передачи данных возвращения статуса завершения в процессор списка. В качестве контроллера периферийного устройства может быть использован контроллер USB, контроллер IrDA, контроллер жесткого диска IDE. Использование конкретного контроллера зависит от контролируемого периферийного устройства.
- Контроллера шины (Bus controller), связанного с DMA-контроллером и процессором списка. Контроллер шины реализует запрос передачи данных из памяти компьютерной системы в DMA-контроллер и процессор списка. Процессор списка направляет команды контроллеру периферийного устройства и получает статус завершения от контроллера периферийного устройства. DMA-контроллер передает блоки данных между памятью компьютерной системы и контроллером периферийных устройств. Недостатком описанной системы является то, что в ней не обеспечено детерминированное время доступа процессора списка к дескрипторам, находящимся в памяти компьютерной системы, и, следовательно, она не может быть использована в системах реального времени, где система должна реагировать в рамках требуемых жестко фиксированных временных диапазонах.
СФ-блок, описанный в данной заявке, является периферийным блоком СнК, предназначенной для использования в вычислительных машинах для систем управления физическими процессами (контроллерное оборудование, терминалы релейной защиты и автоматики и АСУ ТП), которые являются системами реального времени. Корректность функционирования систем реального времени определяется не только корректностью выполнения вычислений, но и временем, в которое получен требуемый результат. Если требования по времени не выполняются, то считается, что произошел отказ системы.
Цель изобретения является разработка периферийного интерфейсного СФ-блока для систем на кристалле класса микропроцессоров или микроконтроллеров, обеспечивающего передачу данных в соответствии с описанным в заявке протоколом. СФ-блок должен быть построен таким образом, чтобы максимально автоматизировать процесс обмена данными между электронными устройствами. СФ-блок должен обеспечивать детерминированное время реакции для возможности использования его в системах реального времени. СФ-блок должен обеспечить определенный уровень достоверности передаваемой информации. СФ-блок должен иметь возможность работать как в режиме ведущего устройства, так и в режиме ведомого устройства, а также в режиме монитор.
Технический результат достигается тем, что интерфейсный СФ-блок для СБИС типа система на кристалле выполнен таким образом, что он может работать как ведущим электронным устройством так и ведомым электронным устройством с системе электронных устройств, в которой осуществляется последовательный обмен данными по шине между ведущим электронным устройством и по меньшей мере двумя ведомыми электронными устройствами. СФ-блок содержит локальную память, в которой расположена таблица дескрипторов и область для хранения данных, DMA-контроллер, предназначенный для обмена данными между системной памятью СБИС и локальной памятью блока, контроллер шины, предназначенный для обмена данными между локальной памятью блока и шиной, обработчик списка дескрипторов, предназначенный для управления в соответствии с дескрипторами в локальной памяти работой DMA-контроллера и контроллера шины.
Краткое описание чертежей:
фиг. 1 - структурная схема системы, в которой абоненты подсоединены к общей линии связи типа «магистраль»;
фиг. 2 - структурная схема блоков СнК;
фиг. 3 - структурная схема СФ-блока, на которой линиями показаны потоки передачи данных (управляющие сигналы не показаны);
фиг. 4 - передача логических нуля и единицы в коде «Манчестер-2»;
фиг. 5 - синхросигнал пакета данных и синхросигнал контрольного пакета;
фиг. 6 - структура пакета данных (DATA);
фиг. 7 - структура контрольного пакета (CTRL);
фиг. 8 - структура информационного пакета (CTRL+DATA);
фиг. 9 - формат сообщений «записи данных в ведомое устройство»;
фиг. 10 - формат сообщений «широковещательное сообщение»;
фиг. 11 - формат сообщений «чтение данных из ведомого устройства»;
фиг. 12 - формат сообщений «невозможность ведомого устройства выдать запрашиваемые данные».
Для того, чтобы осуществить обмен данными 1 (фиг. 1) по описанному в заявке протоколу использована система, в которой происходит обмен данными между абонентами (2, 3, 4) по шине 5. Для обмена данными достаточно, чтобы по меньшей мере один из абонентов содержал ведущее электронное устройство (Master) 6 (далее ведущее устройство) и по меньшей мере два абонента содержали по ведомому электронному устройству (Slave) 7 и 8 (далее ведомое устройство). Обмен данными в системе происходит по заданному циклу.
Для примера, в контроллере с программируемой логикой (ПЛК) абонентами 2, 3 и 4 выступают модуль центрального процессора, модуль ввода и/или модуль вывода, а в качестве шины 5 используется внутренняя цифровая шина ПЖ. На фиг. 1 также показаны устройства полевого (нижнего) уровня, а именно датчик 9 частоты вращения, подключенный к модулю ввода 3-й двигатель 10, подключенный к модулю вывода 4. Также показанная на фиг. 1 система обмена данными между абонентами содержит абонент 11 с электронным устройством монитор (Monitor) 12, предназначенным для «прослушивания» трафика на шине 5. В ПЛК таким абонентом может быть резервный модуль центрального процессора. Только один из двух резервных модулей центральных процессоров ПЛК может быть активен одновременно. При выходе из строя модуля центрального процессора с ведущим устройством (Master) другой модуль центрального процессора с устройством монитор (Monitor) берет инициирование обмена информацией по шине на себя. В качестве абонента могут выступать интеллектуальный датчик и/или интеллектуальный электропривод 13, подключенный через ведомое электронное устройство 14 непосредственно к шине 5. В качестве ведущего устройства 6, ведомого устройства 7 и в качестве устройства монитор 12 может быть использован описанный в данной заявке СФ-блок, который является периферийным интерфейсным блоком СнК (SoC) 15. СФ-блок поддерживает работу и с дублированными шинами 5 и 16.
СнК 15 (фиг. 2) содержит следующие основные функциональные узлы: один или несколько цетральных процессоров (CPU) 17, внутреннюю системную память (SRAM) 18, устройства ввода-вывода 19 (одно или несколько устройств ввода-вывода это описываемый в заявке СФ-блок 19), и контроллер памяти (МС) 20, предназначенный для управления вводом и выводом данных из внешней памяти (SDRAM) 21. Основные функциональные узлы соединены друг с другом блоком (блоками) межсоединений (INTERCONNECT UNIT(S)) 22. Центральный процессор 17 является центральным устройством обработки и управления общей работой СнК.
СФ-блок 19 может работать в одном из трех режимов: «Ведущий», «Ведомый», «Монитор».
СФ-блок 19 (фиг. 3) содержит обработчик 23 списка дескрипторов (далее ОСД) с DMA-контроллером 24, массив контрольно-статусных регистров 25, локальную память 26, контроллер 27 шины, блок 28 низкоуровневого ввода-вывода. В состав СФ-блока входят мультиплексоры (не обозначенные позицией). СФ-блок может работать как с одной шиной 5, так и поддерживает работу с дублированными шинами 5 и 16.
В качестве шины 5 может быть использована M-LVDS - технология низковольтной дифференциальной передачи сигналов малых напряжений, описанная в международном промышленном стандарте TIA/EIA-899-2002 (Electrical Characteristics of Multipoint-Low-Voltage Differential Signaling (M-LVDS) Interface Circuitsfor Multipoint Data Interchange). Стандарт Multipoint LVDS (M-LVDS) разработан для многоточечного двунаправленного обмена информацией. Для этого осуществляют полудуплексную передачу данных по одной шине.
Обмен данными СФ-блока с основными функциональными узлами СнК 15 осуществляется по системным шинам AXI 29 и/или АРВ 30.
Локальная память 26 размером 8 Кб с организацией 2048x32 размещена внутри СФ-блока. При работе СФ-блока в качестве ведущего устройства доступ ОСД 23 к дескрипторам занимает 1 такт. Это обеспечивает детерминированное время получения задания (управляющей информации), что имеет большое значение для систем реального времени.
В зависимости от режима работы СФ-блока локальная память имеет разную организацию. В режиме «Ведущий» в локальной памяти 26 расположены таблица 31 дескрипторов и область памяти 32 для данных. Область памяти 32 для данных предназначена для промежуточного хранения подлежащих передаче и принятых данных.
В таблице 31 дескрипторов содержится:
- управляющая информация для формирования транзакции на шине;
- адрес буфера данных в системной памяти;
- результат выполнения транзакции (обновляется после выполнения транзакции).
В дескриптор системное ПО заносит такие данные как адреса ведомых, номера адресных пространств, размеры адресных пространств, период опроса конкретного адресного пространства конкретного ведомого устройства, направление операции (чтение/запись), тип операции (пространство данных или пространство конфигурации), маска прерывания по окончанию обмена по шине данными из текущего дескриптора и период цикла обмена. При создании таблицы дескрипторов необходимо, чтобы в локальной памяти осталось достаточно места для пакета данных максимальной длины.
В режиме «Ведомый» в локальной памяти расположены таблица описания адресных пространств и адресное пространство - область памяти для хранения полезных данных.
*Резерв - признак зарезервированных битов, логическое значение которых разработчик может задать самостоятельно.
*ADP - признак адаптивного чтения полезной информации. Занимает один бит слова. Изменение значения данного бита возможно в типе сообщения «чтение данных из ведомого устройства». Значение данного бита изменяет ведомое устройство в отправляемом ответном информационном пакете, если в адресном пространстве реально содержится меньшее количество слов полезных данных, чем запросило ведущее устройство.
Блок 28 обеспечивает базовый функционал ввода и вывода данных по шине 5. Функционал ввода и вывода блока 28 не меняется в зависимости от режима СФ-блока. Блок 28 содержит приемники 33 и 34, передатчик 35, теневые FIFO буферы 36 и 37, детектор (обработчик) 38 ошибок шины, мультиплексор 39 выходов FIFO буферов и блок 40 контроля работоспособности шин. Данные, поступившие с шины 5 и/или шин 5 и 16, попадают в приемники 33 и 34, а затем в FIFO буферы 36 и 37. Размер FiFO буфера 256 слов. После окончания приема данных детектор 38 ошибок шины производит анализ ошибок и далее используются данные из того FIFO буфера, в процессе приема у которого не возникало ошибок. Имеется возможность продиагностировать следующие ошибки: ошибки CRC, ошибки Parity bit, ошибки Манчестерского кода и ошибки в процессе передачи данных, вызванные отказом драйверов шин. Блок контроля работоспособности шин выполняет свою функцию путем сравнения передаваемых и получаемых данных.
ОСД 23 производит обработку строк из таблицы дескрипторов. Содержит DMA - контроллер 24 для обмена данными между локальной и системной памятью. Управляет работой DMA-контроллера 24 и работой контроллера 27 шины. ОСД 23 выполнен с возможностью работы как с "соблюдением цикла шины" (временной интервал, за который должен произойти один проход по всей таблице дескрипторов), так и "без отсутствия слежения за циклом шины". При "соблюдении цикла шины", если проход по всей таблице дескрипторов осуществился раньше конца цикла шины, СФ-блок переходит в режим ожидания с запросом прерывания. В случае, когда время обработки дескрипторов превысило время цикла шины, СФ-блок запрашивает прерывание, при этом ОСД продолжает работу, а отсчет нового цикла шины начнется, как только начнется обработка первого дескриптора. "Без отсутствия слежения за циклом шины" ОСД переходит к обработке первого дескриптора сразу после окончания обработки последнего. Включение и выключение ОСД происходит только после окончания обработки текущей транзакции.
Контроллер 27 шины реализует логику режимов работы «Ведущий», «Ведомый» или «Монитор». Контроллер 27 шины производит передачу данных между блоком 28 и локальной памятью 26, формирует контрольные пакеты, производит обновление регистров статистики.
Работа СФ-блока в режиме «Ведущий»: системное ПО формирует таблицу дескрипторов в локальной памяти и производит настройку СФ-блока. По запуску ОСД 23 по порядку вычитывает и обрабатывает дескрипторы из локальной памяти. По «управляющей информации» из дескриптора ОСД 23 отдает соответствующие команды DMA-контроллеру 24. Параллельно с этим контроллер 27 шины ожидает сигналы от ОСД 23 на «запись» или «чтение» данных в ведомое устройство. При получении такой команды от ОСД 23 контроллер 27 шины выполняет последовательность действий, соответствующих типу запроса. В случае «записи» данных в ведомое устройство выполняются следующие действия: с помощью DMA-контроллера происходит загрузка данных, принимаемых по системной шине AXI, в локальную память. Контроллер 27 шины читает данные из локальной памяти и предает их в шину. По завершению передачи данных контроллер 27 шины информирует об этом ОСД 23 и переходит в режим ожидания новой команды. После завершения обработки дескриптора «управляющая информация» ОСД 23 производит обновление дескриптора «результат выполнения транзакции» в локальной памяти и переходит к обработке следующего дескриптора. Таким образом, можно проследить следующий поток данных: системная шина - DMA - локальная память - контроллер шины.
В случае «чтения» данных из ведомого устройства выполняются следующие действия: контроллер 27 шины читает данные с шины и передает их в локальную память, откуда с помощью DMA-контроллера 24 данные передаются в системную шину AXI. По завершению передачи данных из локальной памяти контроллер 27 шины информирует об этом ОСД 23 и переходит в режим ожидания новой команды.
После завершения обработки дескриптора «управляющая информация» ОСД 23 производит обновление дескриптора «результат выполнения транзакции» в локальной памяти и переходит к обработке следующего дескриптора. Таким образом, можно проследить следующий поток данных: шина - контроллер шины - локальная память - DMA - системная шина.
Таким образом, системное ПО в начале работы однократно инициализирует СФ-блок, после этого СФ-блок без вмешательства системного ПО производит каждый цикл обмена данными по шине, перекладывая полученные данные в системную память. Таким образом, обеспечивается возможность автоматизировать работу СФ-блока и, тем самым, разгрузить (высвободить) ресурсы центрального процессора СнК для другой работы.
После окончания обработки таблицы дескрипторов может быть сформировано прерывание, после которого возможно обновление данных таблицы дескриптора системным ПО.
Работа СФ-блока в режиме «Ведомого»: СФ-блок в режиме «Ведомого» реализует логику доступа к своим адресным пространствам посредством запросов по шине. Адресное пространство - область памяти, находящаяся в локальной памяти и содержащая полезные данные. Каждое адресное пространство описано в таблице описания адресных пространств. Системное ПО в начале работы однократно инициализирует СФ-блок, после чего транзакции приема или передачи данных проводятся в автоматическом режиме без участия системного ПО. Доступ к локальной памяти возможен только через шину АРВ. В режиме ведомого ОСД не активен и обмен данными посредством DMA-контроллера недоступен. По запуску контроллер 27 шины ожидает сигналы приема контрольного/информационного пакета от блока 28, после чего обрабатывает пакет и обращается в локальную память по адресу страницы равному номеру адресного пространства данных из контрольного пакета. По этому адресу в локальной памяти лежит описание запрашиваемого адресного пространства. Одно из его полей "Memory address" - адрес первого слова данных в локальной памяти, соответствующий этому адресному пространству. Если запрос был на запись, то происходит запись приходящих данных по этому адресу. Если запрос был на чтение, то происходит чтение данных из этого адреса. После окончания обработки контрольного/информационного пакета может быть вызвано прерывание, по которому происходит обновление данных системным ПО.
Работа СФ-блока в режиме «Монитор»: СФ-блок в режиме «Монитора» выполняет функцию сбора и записи в системную память всего траффика, идущего по шине. Производится запись контрольных пакетов и пакетов данных. Каждый пакет, приходящий с шины, дополняется специальным дескриптором, идущим перед данными, и записывается в системную память. При этом записываются только информационные слова, слова CRC отбрасываются. В память записываются только те пакеты, при приеме которых не возникло ошибок. При возникновении ошибок в процессе приема принимаемый пакет отбрасывается, и будет выставлен соответствующий флаг. Работа в режиме «Монитора» похожа на работу в режиме «Ведущий» с использованием внеочередных дескрипторов. В режиме «Монитор» ОСД 23 имеет такой же функционал, как и в режиме «Ведущий».
В СФ-блоке реализована возможность изменения длины CRC (регистр длины CRC полинома), начального значения CRC (регистр начального значения CRC) и полинома CRC (регистр значения CRC полинома) в режиме описанного в заявке протокола TSI.
Вся информация по шине передается в коде «Манчестер-2». Этот биполярный фазоманипулированный код имеет нулевую постоянную составляющую, что очень важно в применениях с высокой скоростью передачи. Кодирование 0 и 1 производится не уровнем, а фронтом сигнала в середине тактового интервала (фиг. 4), что позволяет обеспечить побитную синхронизацию передатчика и приемника по передаваемой информации в широком диапазоне отклонения несущей частоты. Определены два вида синхросигнала (фиг. 5), которые позволяют аппаратно, следовательно быстро, определять и отличать начало пакета данных от контрольного пакета.
Пакет данных (DATA) (фиг. 6) имеет формат одного или более 32 битных слов данных, завершает которые 32 битное контрольное слово. Перед ними расположен синхросигнал (3 бита), полярность первой половины которого отрицательна, а вторая половина - положительная. Слова данных (полезная информация) - собственно данные, которыми обмениваются между собой абоненты и для передачи которых используется пакет данных. Слово контрольной суммы CRC-32 предназначено для проверки целостности всех передаваемых в пакете данных. Используется расчет CRC-32.
Контрольный пакет (фиг. 7) имеет формат из 32 битного информационного слова и 32 битного слово контрольной суммы. Перед ними расположен синхросигнал (3 бита), полярность первой половины которого положительна, а вторая половина - отрицательная. Контрольный пакет может выполнять функцию начала и конца сеанса связи, подтверждения приема информационного пакета, запроса информационного пакета. Управляющие данные это данные, необходимые абоненту для определения выполнения им заданий и указания своего состояния.
Пакет (фиг. 8), включающий контрольный пакет и пакет данных, называется информационным пакетом (CTRL+DATA).
Протокол поддерживает два типа адресных пространств у ведомых устройств:
- основное пространство (обмен целевой информацией);
- конфигурационное пространство (управление работой ведомого устройства).
Адресуется на шине до 255 электронных устройств (и один адрес для широковещательных обменов). В каждом устройстве адресуется до 256 адресных пространств, размер которых от 1 до 256 слов в основном адресном пространстве и 1 слово в конфигурационном пространстве. Размер одного слова равен 32 бита.
Рассмотрим возможные форматы сообщений, которыми обмениваются ведущее (Master) и ведомое (Slave) устройства путем передачи друг другу контрольных и информационных пакетов:
- Формат 1 «запись данных в ведомое устройство» (фиг. 9).
- Формат 2 «широковещательное сообщение» (фиг. 10).
- Формат 3 «чтение данных из ведомого устройства» (фиг. 11).
- Формат 4 «невозможность ведомого устройства выдать запрашиваемые данные при чтение данных из ведомого устройства» (фиг. 12).
Рассмотрим основные сообщения (фиг. 9-12) между ведущим и ведомыми электронными устройствами.
Формат 1 предназначен для передачи данных от ведущего устройства к ведомому устройству - «запись данных в ведомое устройство (Slave)» (фиг. 9). Ведущее устройство передает информационный пакет (CTRL+DATA). Ведомое устройство принимает информационный пакет, просчитывает контрольные суммы (CRC-32) 32-битного слова служебной информации и 32-битного слова (слов) данных (полезной информации) и сравнивает их значения со значениями контрольных сумм, полученных от ведущего устройства. В зависимости от результата сравнения контрольных сумм ведомое устройство либо игнорирует запрос на запись, либо принимает к исполнению. В любом случае ведомое устройство передает ведущему устройству ответный контрольный пакет (CTRL), в котором разряды [2:0] "control word" (таблица 4) имеют значения, соответствующие "признакам состояния" транзакции.
Формат 2 предназначен для передачи данных от ведущего устройства всем ведомым устройствам - «широковещательное сообщение» (фиг. 10). Ведущее устройство передает информационный пакет (CTRL+DATA) (в поле "Terminal address" 0xFF - широковещательный адрес), а ведомые устройства принимают информационный пакет, просчитывают контрольные суммы (CRC-32) 32-битного слова служебной информации и 32-битного слова (слов) данных (полезной информации) и сравнивают их значения со значениями контрольных сумм, полученных от ведущего устройства. В зависимости от результата сравнения контрольных сумм ведомые устройства либо игнорируют запрос на запись, либо принимают к исполнению. В этом формате сообщений ведущее устройство после передачи информационного пакета не ожидает "ответного пакета" от ведомых устройств.
Формат 3 предназначен для получения данных ведомого устройства ведущим устройством - «чтение данных из ведомого устройства (Slave)» (фиг. 11). Ведущее устройство передает ведомому устройству контрольный пакет (CTRL) и освобождает шину. Адресуемое ведомое устройство принимает контрольный пакет, просчитывает контрольную сумму CRC-32 32-битного слова служебной информации и сравнивает ее значение со значением контрольной суммы, полученной от ведущего устройства. В зависимости от результата сравнения контрольных сумм ведомое устройство либо игнорирует запрос на чтение, либо принимает к исполнению. При успешном сравнении ведомое устройство захватывает шину и передает ведущему устройству ответный информационный пакет (CTRL+DATA). Ведущее устройство принимает ответный информационный пакет от ведомого устройства и просчитывает контрольные суммы CRC-32 32-битного слова служебной информации и слова (слов) данных (полезной информации) и сравнивает их значения со значениями контрольных сумм, полученных от ведомого устройства. При успешном сравнении контрольных сумм информационный пакет считается принятым - чтение данных из ведомого устройства завершенным.
Формат 4 «невозможно выдать запрашиваемые данные» (фиг. 12) является частным случаем формата 3, при котором происходит «чтение данных из ведомого устройства (Slave)». Ведущее устройство передает ведомому устройству контрольный пакет (CTRL). Ведомое устройство принимает контрольный пакет, просчитывает его контрольную сумму и сравнивает ее значение со значением контрольной суммы, полученной от ведущего устройства. При несовпадении контрольных сумм ведомое устройство игнорирует запрос на чтение и передает ведущему устройству ответный контрольный пакет (CTRL), в котором разряды [2:0] "control word" (таблица 3) имеют значения, соответствующие "признакам состояния" транзакции.