Рис. 2-9 Структурная схема последовательного интерфейса связи.
(1)-контрольный бит, задается программно.
Рис. 2-10 Диаграмма обмена по SCI.
Рассмотрим регистры, входящие в интерфейс.
Регистр скорости передачи данных (BAUD), расположенный по адресу 0DH, используется для задания скорости обмена по интерфейсу. Из таблиц 2-3 и 2-4 можно определить скорость приема/передачи информации, исходя из частоты кварцевого генератора.
Регистр скорости приема/передачи
Название | - | - | SCP1 | SCP0 | - | SCR2 | SCR1 | SCR0 |
Установка после RESET | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
SCP1, SCP0-предварительное деление на 1, 3, 4, 13.
SCR2, SCR1, SCR0-деление после предварительного делителя на 1, 2, 4, ... ,128.
Таблица 2-3. Предделитель тактовой частоты.
SCP1 | SCP0 | Делитель тактовой частоты | 4.19430 | 4.0 | 2.4576 | 2.0 | 1.8432 |
0 | 0 | 1 | 131072 | 125000 | 76800 | 62500 | 57600 |
0 | 1 | 3 | 43691 | 41666 | 25600 | 20833 | 19200 |
1 | 0 | 4 | 32768 | 31250 | 19200 | 15625 | 14400 |
1 | 1 | 13 | 10082 | 9600 | 5907 | 4800 | 4430 |
Таблица 2-4. Частота приема/передачи
SCR2 | SCR1 | SCR0 | Делитель внутренней частоты | 131.072 | 32768 | 76800 | 19200 | 9600 |
0 | 0 | 0 | 1 | 131072 | 32768 | 76800 | 19200 | 9600 |
0 | 0 | 1 | 2 | 65536 | 16384 | 38400 | 9600 | 4800 |
0 | 1 | 0 | 4 | 32768 | 8192 | 19200 | 4800 | 2400 |
0 | 1 | 1 | 8 | 16384 | 4096 | 9600 | 2400 | 1200 |
1 | 0 | 0 | 16 | 8192 | 2048 | 4800 | 1200 | 600 |
1 | 0 | 1 | 32 | 4096 | 1024 | 2400 | 600 | 300 |
1 | 1 | 0 | 64 | 2048 | 512 | 1200 | 300 | 150 |
1 | 1 | 1 | 128 | 1024 | 256 | 600 | 150 | 75 |
Первый управляющий регистр расположен по адресу 0ЕН (SCCR1) и содержит 3 бита, связанных с использованием 9-битного формата данных, а также один бит, определяющий способ активизации интерфейса.
Первый управляющий регистр
Название | R8 | T8 | - | M | WAKE | - | - | - |
Установка после RESET | 0 | 0 | - | 0 | 0 | - | - | - |
R8-принимаемый девятый бит.
T8-передаваемый девятый бит.
M-бит, определяющий длину посылки:
при М=1- 9 бит данных;
при М=0 -8 бит данных.
WAKE-метод активизации приемника:
при WAKE=1-приемник активизируется при обнаружении разряда адреса (старшего бита);
при WAKE=0-свободная линия вызывает активизацию приемника.
Второй управляющий регистр (SCCR2) расположен по адресу 0FH и осуществляет управление такими индивидуальными функциями интерфейса, как прерывания, блокировка приемника/передатчика и другими.
Второй управляющий регистр
Название | TIE | TCIE | RIE | ILIE | TE | RE | RWU | SBK |
Установка после RESET | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
TIE-бит разрешения/запрета прерываний передатчика,
при TIE=1-прерывания разрешены,
при TIE=0-прерывания запрещены.
TCIE-бит разрешения/запрета прерываний при завершении передачи,
при TCIE=1-прерывания разрешены,
при TCIE=0-прерывания запрещены.
RIE-бит разрешения/запрета прерываний от приемника,
при RIE=1-прерывания разрешены,
при RIE=0-прерывания запрещены.
ILIE-бит разрешения/запрета прерывания при освобождении линии ,
при ILIE=1-прерывание разрешено,
при ILIE=0-прерывание запрещено.
TE-бит разрешения/запрета передачи,
при TE=1-выход передающего сдвигового регистра подключен к линии TD0. В зависимости от бита M передаются 10 (M=0) или 11 (M=1) бит.
при TE=0-передача запрещается после завершения передачи байта, который обрабатывался в момент сброса бита TE, линия TD0 переходит в высокоимпедансное состояние,
RE-бит запрета/разрешения приема,
при RE=1-линия RDI соединяется со сдвиговым регистром приемника,
при RE=0-прием запрещен.
RWU-метод активизации приемника,
при RWU=1-приемник в режиме ожидания,
при RWU=0-если бит WAKE=1, то бит RWU сбрасывается после приема слова данных. Если WAKE=0, бит RWU сбрасывается после приема 10 (M=0), либо 11 (M=1) бит.
SBK-посылка сигнала останов,
при SBK=1-передатчик посылает блоки нулей (серии из 10 или 11) до очистки сдвигового регистра. Затем передатчик посылает один бит высокого уровня для определения старт-бита.
при SBK=0-передатчик посылает 10 или 11 нулей и затем возвращается в свободное состояние или продолжает посылки информации.
Если сдвиговый регистр передатчика пуст и линия свободна, установка и очистка SBK может поставить в очередь до двух посылок сигнала останова, т.к. первый сигнал передается немедленно в сдвиговый регистр, а второй встает в очередь в параллельный буфер передатчика.
Регистр статуса(SCSR) находится по адресу 10Н и содержит два флага статуса передатчика, и 5 флагов, относящихся к приемнику.
Регистр статуса
Название | TDRE | TC | RDRF | IDLE | OR | NF | FE | - |
Установка после RESET | 1 | 1 | 0 | 0 | 0 | 0 | 0 | - |
TDRE-сообщает о наличии данных в регистре передачи (ТDR),
при TDRE=1-регистр пуст и может принять новые данные,
при TDRE=0-регистр содержит данные. Чтение SCSR сбрасывает TDRE, если оно следует за записью в TDR.
TC-флаг завершение передачи,
при ТС=1-передатчик пуст (включая сдвиговый регистр),
при ТС=0-передатчик активирован. Чтение SCSR сбрасывает TDRE, если оно следует за записью в TDR.
RDRF -флаг наличия данных в регистре приема данных (RDR),
при RDRF=1-устанавливается, когда содержимое сдвигового регистра передано в RDR,
при RDRF=0-данных в RDR нет. RDRF сбрасывается при чтении SCSR, следующие за чтением RDR.
IDLE-обнаружение свободной линии,
при IDLE=1-Индицирует, что приемник обнаружил свободную линию,
при IDLE=0-IDLE сбрасывается при чтении SCSR, следующим за чтением RDR. Если IDLE сброшен, то он не может быть установлен в 1 до тех пор, пока линия RDI не будет активной и свободной вновь.
OR-флаг ошибки переполнения,
при OR=1-индицирует, что регистр приема данных переслан в RDR до считывания информации из него (RDRF=1). Данные, вызвавшие переполнение, теряются, а данные в RDR сохраняются,
при OR=0-OR сброшен при чтении SCSR, следовавшим за чтением RDR.
NF-флаг помехи,
при NF=1-индицирует наличие помехи на шине приема. NF не устанавливается, пока RDRF=1.
FE-флаг ошибки кадрирования,
при FE=1-индицирует отсутствие стоп-бита в принятых данных. FE устанавливается одновременно с установкой RDRF. Если принятый байт вызывает и ошибку кадрирования, и ошибку переполнения, процессор опознает только переполнение. Дальнейшая передача данных в RDR запрещается до сброса FE.
при FE=0-сброс бита FE произошел при чтении SCSR, следовавшим за чтением RDR.
Регистр данных (SCDAT) расположен по адресу 11Н и используется для передачи и приема данных.
Регистр данных
SCD7 | SCD6 | SCD5 | SCD4 | SCD3 | SCD2 | SCD1 | SCD0 |
Как уже упоминалось, SCDAT функционирует как два раздельных регистра: передающий и принимающий.
Перейдем к рассмотрению Последовательного периферийного интерфейса, дающего возможность нескольким ОЭВМ и/или периферийным устройствам быть объединенными в одно целое. Периферийные устройства могут представлять собой как простой сдвиговый TTL регистр, так и сложные подсистемы, например драйверы жидкокристаллических дисплеев или системы ЦАП или АЦП.
В формате периферийного интерфейса сигнал синхронизации не включен в поток данных и выполнен в виде отдельного сигнала. Система на основе последовательного периферийного интерфейса должна состоять из одного ведущего устройства (ОЭВМ) и нескольких ведомых устройств, которые также могут представлять собой ОЭВМ (см. рис. 2-13), либо ОЭВМ, которые могут быть как ведущими, так и ведомыми.
Особенности интерфейса:
полно-дуплексная, трехпроводная синхронная передача данных;
работа ОЭВМ в качестве ведущего или ведомого устройства;
максимальная частота ведущего 1.05 МГц;
максимальная частота ведомого 2.1 МГц;
четыре программируемые скорости передачи данных ведущим;
программируемая полярность синхронизации и фаза;
флаг прерывания при окончании передачи;
флаг защиты от конфликта при записи данных;
возможность защиты от сбоя режима ведущий-ведомый.
Рис. 2-11 Последовательный периферийный интерфейс. Блок-схема.
Блок-схема интерфейса представлена на рис. 2-11. При работе с периферийным интерфейсом нет необходимости указывать направление передачи данных, поскольку "ведущий" одновременно производит передачу и прием по раздельным линиям. Сдвиговые регистры ведущего и ведомого устройств удобно рассматривать как один 16-битный регистр, замкнутый в кольцо. Когда происходит передача данных, содержимое регистра сдвигается на 8 позиций, и устройства обмениваются данными.
Как видно из рис. 2-12, в состав периферийного интерфейса входят 4 линии (MOSI, MISO, SCK и SS), назначение которых приведено ниже:
MOSI (Master Out, Slave In)-линия, предназначенная для ввода последовательной информации, если устройство находится в режиме "ведомый", или для вывода информации, если устройство находится в режиме "ведущий". Данные по линии передаются в одном направлении старшим битом вперед.