Асинхронный последовательный порт SCI
Данный порт функционирует аналогично SCI, входящим в состав микроконтроллеров
семейств 68HC05, 08, 11 , обеспечивая прием в регистр SCDR данных, поступающих на вывод RxD, или передачу
данных из этого регистра на вывод TxD. SCI осуществляет в каждом цикле прием или передачу 8 или 9 битов данных, которые
сопровождаются одним старт-битом и одним стоп-битом. Таким образом формируется 10- или 11-битовый кадр последовательного
обмена. В качестве 9-го бита обычно передается контрольный бит (четности или нечетности).
Управление работой SCI в модуле QSM осуществляется с помощью регистров SCCR0, SCCR1. Регистр SСCR0
(рис.3.17,а) определяет период следования синхросигналов Ts, в течение которого выполняется один такт передачи данных: Ts
= 32Ks / Ft, где величина коэффициента Ks задается содержимым поля SCBR в диапазоне от 1 до 8191. Если поле SCBR содержит
значение Ks=0, то генератор синхросигналов SCI останавливается, и передача прекращается.
а) SCCR0 (адрес $*FFC08)
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
LOOPS |
WOMS |
ILT |
PT |
PE |
M |
WAKE |
TIE |
TCIE |
RIE |
ILTE |
TE |
RE |
RWU |
SBK |
б) SCCR1 (адрес $*FFC0A)
|
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
--------- |
TDRE |
TC |
RDRF |
RAF |
IDLE |
OR |
NF |
FE |
PF |
в) SCSR (адрес $*FFC0C)
Рис. 3.18. Форматы содержимого регистров SCI
Регистр SCCR1 (рис.3.18,б) содержит 15 управляющих битов, которые имеют
следующее назначение:
SBK - вызывает при SBK=1 установку "0" на выходе TxD передатчика, что является сигналом прекращения
обмена;
RWU - устанавливает при RWU=1 холостой режим работы приемника, при RWU=0 разрешает активизацию
приемника в соответствии со значением бита WAKE;
RE,TE - включают (при значении 1) и отключают (при значении 0) приемник и передатчик данных, их
одновременное включение (RE=TE=1) разрешается только в режиме тестирования (LOOPS=1);
ILIE - разрешает при ILIE=1 формирование запроса прерывания при поступлении на вход приемника RxD
сигнала прекращения обмена;
RIE - разрешает при RIE=1 формирование запроса прерывания в случае заполнения буфера или переполнения
приемника;
TCIE - разрешает при TCIE=1 формирование запроса прерывания после завершения передачи;
TIE - разрешает при TIE=1 формирование запроса прерывания в случае освобождения буферного регистра
передатчика;
WAKE - определяет способ активизации приемника, находящегося в холостом режиме: при WAKE=0
активизация происходит при поступлении на вход RxD последовательности единиц, длина которой превышает размер кадра (8 или 9
бит), при WAKE=1 приемник активизируется при поступлении данных, старший разряд которых равен 1;
M - задает разрядность кадра данных: 10 бит при M=0, 11 бит при M=1.
PE - вводит контроль четности или нечетности данных при PE=1; при передаче контрольный бит
выдается в качестве 8-го (при M=0) или 9-го (при M=1) бита данных; при приеме выполняется проверка четности принятых
семи (при M=0) или восьми (при M=1) битов данных, сравнение результата со значением поступившего контрольного бита и в
случае их несовпадения установка признака ошибки четности PF=1 в регистре SCSR;
PT - определяет вид контроля, вводимого при PE=1: если PT=0, то выполняется контроль четности
данных, если PT=1 - контроль нечетности;
ILT - задает способ счета единиц, поступающих на вход TxD, при переводе приемника в холостой режим:
при ILT=0 счет единиц начинается сразу после установки данного значения в регистре SCCR1, при ILT=1 счет начинается после
завершения очередного цикла (приема cтоп-бита);
WOMS - обеспечивает при WOMS=1 работу каскада, выдающего сигналы TxD, в режиме с "открытым стоком",
что позволяет соединять выходы нескольких SCI для реализации логической операции "монтажное ИЛИ";
LOOPS - соединяет при LOOPS=1 вход и выход сдвигового регистра SCI в кольцевую цепь, обеспечивая
возможность его тестирования путем выдачи-приема данных и проверки совпадения переданных и принятых данных; при этом должны
быть разрешена одновременная работа приемника и передатчика (RE=TE=1).
Регистр состояния SCSR (рис.3.18,в) содержит девять признаков, устанавливаемых в процессе приема
или передачи данных:
TDRE - признак освобождения буфера передатчика;
TC - признак окончания передачи;
RDRF - признак заполнения буфера приемника;
IDLE - признак прекращения обмена;
OR - признак переполнения приемника;
NF - признак наличия шумов на линии приема RxD;
FE - признак нарушения кадра;
PF - признак нарушения четности, принимает значение PF=1, если обнаружено несовпадение четности
принятых данных и контрольного бита в процессе приема;
RAF - признак активности приемника, принимает значение RAF=1, когда в приемник поступает старт-бит,
и RAF=0, когда на вход RxD приемника поступает сигнал прекращения обмена (последовательность из 10 или 11 единиц).
Установка признаков TDRE,TC,RDRF,IDLE вызывает формирование запросов прерывания, если это разрешено
битами TIE,TCIE,RIE,ILIE в регистре SCCR1. Значения остальных признаков должны контролироваться процессором путем периодического
считывания и анализа содержимого регистра SCSR.
При использовании SCI в режиме передачи сначала производится запись передаваемых данных в регистр
SCDR и установка необходимой частоты синхросигналов загрузкой регистра SCCR0. Запуск передатчика выполняется записью
соответствующего содержимого в регистр SCCR1, где должны быть установлены значения битов TE=1, RE=0. При использовании
SCI в режиме приема производится установка частоты синхросигналов загрузкой регистра SCCR0, а затем запуск приемника путем
записи в регистр SCCR1 содержимого, в котором значения битов RE=1, TE=0. Принятые данные считываются из регистра SCDR.
|