logo search
HCS12 с применением языка С - royallib

4.17. Обмен информацией в последовательном коде: многофункциональный последовательный интерфейс

Обмен данными в последовательном коде — эффективный с точки зрения аппаратной реализации способ связи между двумя интеллектуальными устройствами. Всего одна линия потребуется для передачи цифровых кодов от одного микропроцессорного устройства к другому. Данные по этой линии передаются последовательно во времени так, что в каждый момент времени происходит передача только одного бита данных. Обмен в параллельном коде значительно превышает по скорости обмен в последовательном коде. Однако он требует множества линий связи между устройствами, что увеличивает энергию потребления и размеры изделия.

В МК семейства 68HC12/HCS12 обмен в последовательном коде обеспечивает модуль многофункционального последовательного интерфейса (MSI — Multiple Serial Interface). Этот модуль содержит в себе две независимых подсистемы последовательного обмена: контроллер асинхронного обмена SCI (Serial Communication Interface) и контроллер синхронного обмена SPI (Serial Peripheral Interface). Каждый из контроллеров обслуживают линии порта S, для которых эта функция является альтернативной.

Рис. 4.54. Два наиболее распространенных типа последовательных интерфейсов

Контроллер SCI поддерживает полнодуплексный обмен в асинхронном режиме с форматом кадра, который совместим с последовательным интерфейсом персонального компьютера RS-232. Термин полнодуплексный означает, что в один и тот же момент времени один и тот же контроллер SCI может как принимать, так и передавать информацию. Термин асинхронный характеризует способ передачи данных, при котором дополнительный сигнал синхронизации, подтверждающий наличие очередного бита данных на линии, не используется. Следовательно, синхронизация между обменивающимися устройствами отсутствует. Для однонаправленной асинхронной передачи информации между двумя устройствами потребуется всего линия связи, что отражено на рис. 4.54.

Синхронный интерфейс SPI поддерживает синхронный последовательный обмен между МК и другими ИС, установленными на плате изделия. Эти интегральные схемы дополняют функции периферии микропроцессорной системы, которые не могут быть реализованы средствами встроенных модулей МК. Именно поэтому в названии этого интерфейса присутствует термин «периферийный». Интерфейс SPI также используют для связи двух МК, однако такое решение встречается в разработках не столь часто, как обмен с периферийными ИС.

Рис. 4.55. Сопряжение МК с ЦАП по параллельному и последовательному интерфейсу

При обмене в синхронном режиме в одном направлении (рис. 4.54) используются две линии связи между устройствами. По одной линии передаются данные, на другой в это время формируются сигналы синхронизации. То устройство, которое формирует импульсы синхронизации, называется ведущим или «master», а то устройство, которое использует эти сигналы синхронизации — ведомым или «slave».

Теоретически скорость обмена в синхронном режиме значительно превышает скорость обмена в асинхронном режиме.

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

Интерфейсы последовательного обмена используют различные способы синхронизации обмена. Формат кадра асинхронного обмена представлен на рис. 4.56. В асинхронном режиме с использованием интерфейса SCI данные передаются байтами в стандартном американском коде ASCII (American Standard Code for Information Interchange). Кроме восьми битов данных кадр обмена содержит также стартовый и стоповый биты, отмечающие начало и конец кадра, и необязательный бит паритета. Стартовый и стоповый биты участвуют в процессе синхронизации между передатчиком и приемником, бит паритета (если он присутствует в кадре) используется для контроля на стороне приемника за наличием ошибок в принятом байте данных.

Рис. 4.56. Форма кадра асинхронного обмена

Контроллер интерфейса SCI в составе МК 68HC12 обслуживают две линии ввода/вывода: TxD — выход передатчика контроллера SCI, RxD — вход приемника контроллера SCI. При использовании асинхронного интерфейса SCI взаимодействующие устройства перед сеансом обмена должны обязательно «договориться» о скорости передачи данных. Если передатчик находится в неактивном состоянии (Idle), то на его выходе устанавливается сигнал высокого логического уровня (рис. 4.56). В это время приемник аналогичного контроллера SCI на другом конце линии постоянно сканирует уровень сигнала на входе RxD. Если приемник обнаруживает, что сигнал на линии изменил состояние с 1 на 0, то он производит несколько контрольных выборок сигнала, чтобы убедиться в наличии на линии низкого логического уровня. Если низкий уровень присутствует на линии в течение времени, равного интервалу передачи одного бита для установленной скорости обмена, то приемник распознает такое состояние как старт-бит (рис. 4.56) и начинает прием последующих бит данных. В процессе приема аппаратные средства приемника формируют метки времени, которые должны соответствовать середине интервала присутствия на линии каждого бита. По каждой метке производятся три выборки уровня сигнала на линии. По результатам выборки методом мажоритарной логики определяется значение очередного принятого бита информации. Если все три значения равны, то прием бита полностью успешный. Если значения разные, то аппаратные средства приемника устанавливают бит звона на линии, который затем может быть использован программистом при оценке надежности приема. После приема восьми (при использовании бита паритета девяти) бит данных приемник контролирует наличие на линии логической 1. Это стоп-бит, который завершает прием одного кадра. Если аппаратные средства приемника не обнаружили на линии стоп-бита, будет установлен бит ошибки формата кадра. Тогда весь кадр должен быть воспринят программой как ошибочный.

В синхронных последовательных интерфейсах передача по линии каждого бита сопровождается сигналом подтверждения по другой вспомогательной линии. Эту линию в интерфейсе SPI обозначают как SCK (Shift Clock). Такой способ передачи данных позволяет достичь очень высоких скоростей обмена. Именно он и используется в контроллерах SPI в составе МК 68HC12.