![]() |
|
Прерывания PTSУправляющие блокиКаждое прерывание PTS требует блока данных, называемого блоком управления PTS (PTSCB). PTSCB определяет режим PTS, число циклов PTS и адреса источника и приемника данных. Вы должны установить PTSCB для каждого источника прерывания PTS перед предоставлением прерываний PTS. Каждый PTSCB требует восьми байтов данных в регистрах RAM. Адрес первого (самого младшего) байта PTSCB хранится в таблице "Векторы PTS" в памяти специального назначения. Первый байт записывается в адрес, кратный 8 (граница четырех слов). На рис. 9.3 приведены PTSCB для каждого режима PTS. Незадействованные байты PTSCB могут использоваться как дополнительная оперативная память.
Рис. 9.3. Управляющие блоки PTS Регистр PTSCOUNTПервая ячейка каждого PTSCB - всегда регистр PTSCOUNT. PTSCOUNT определяет число циклов PTS, которые надо последовательно выполнить без вмешательства центрального процессора. Так как PTSCOUNT - 8-битовая величина, то максимальное число циклов - 256. PTSCOUNT уменьшается в конце каждого цикла PTS. Когда PTSCOUNT достигнет нуля, аппаратные средства очищают соответствующий бит регистра PTSSEL и устанавливают соответствующий бит регистра PTSSRV, который запрашивает прерывание "end-of-PTS" (конец PTS). Когда вызывается прерывание "end-of-PTS", аппаратные средства очищают соответствующий бит в PTSSRV. Для возобновления работы PTS бит в PTSSEL должен быть установлен пользователем. Прерывание END-OF-PTSРегистр PTSSRV регистрирует запросы на прерывания "end-of-PTS". Прерывание "end-of-PTS" - стандартное прерывание, которое указывает, что PTS нуждается в обслуживании. Контроллер прерывания обрабатывает это прерывание подпрограммой обработки прерывания, адрес которой хранится в ячейке памяти, как у любого стандартного вектора прерывания. Например, PTS обслуживает Transmit прерывание, если установлен PTSSEL.8. Номер вектора прерывания PTS - 8050H, а номер соответствующего вектора прерывания "end-of-PTS" - 8030H. Когда вектор прерывания "end-of-PTS" обслуживается подпрограммой обработки прерывания, аппаратные средства очищают бит PTSSRV. Подпрограмма обработки прерывания должна устанавливать соответствующий бит PTSSEL, чтобы повторно разрешить обслуживание прерывания PTS. Регистр PTSCONВторая ячейка каждого PTSCB - всегда регистр PTSCON. Три бита регистра PTSCON определяют режим PTS: одиночная передача (Single Transfer), поблочная пересылка (Block Transfer), сканирование аналого-цифрового преобразователя (A/D Scan), загрузка CAM HSO (HSO) или чтение FIFO HSI(HSI) (см. табл. 9.3). Таблица 9.3 Выбор режима PTS - PTSMODE (биты 5,6,7 регистра PTSCON)
PTSCON имеет одну конфигурацию для режимов одиночной и поблочной пересылки (см. табл. 9.4 ) и другую - для режимов A/D Scan, HSO и HSI (см. табл. 9.5). Аббревиатура - PTSCON Размер - 1 байт Для режимов одиночной и поблочной пересылки:
![]() Для режимов A/D Scan, HSO и HSI:
![]() Таблица 9.4 Биты 0-4 регистра PTSCON (режимы одиночной (Single Transfer) и поблочной (Block Transfer) пересылок)
Таблица 9.5 Биты регистра PTSCON (режимы A/D Scan, HSO и HSI)
Краткий обзор режима одиночной передачиВ режиме одиночной передачи каждый цикл PTS передает один байт или одно слово (зависит от бита BW в PTSCON) из одной ячейки памяти в другую. Этот режим обычно используется совместно с прерываниями порта при последовательном вводе/выводе. Регистр PTSCOUNT определяет число передач (каждая передача - один цикл PTS). PTS перемещает байт или слово из ячейки, указанной в регистре источника (PTSSRC), в ячейку, указанную в регистре приемника (PTSDST). PTSSRC и PTSDST могут указывать на любую ячейку памяти; однако если осуществляется передача слов, они должны указывать на четный адрес. Установка битов автоинкремента и битов модификации заставляет PTS увеличивать адреса источника (если SI и SU установлены) и/или адресата (если DI и DU установлены) в конце каждого цикла PTS. Адрес увеличивается на 1, если передаются байты, или на 2, если - слова. В одиночном режиме передачи биты автоинкремента и модификации должны быть или оба установлены, или оба очищены. Программирование битов автоинкремента и модификации как (0,1) или (1,0) выбирает недопустимый режим. PTSSRC и PTSDST могут увеличиваться (и модифицироваться) независимо друг от друга. Аббревиатура - PTSSRC Размер - 2 байта
![]() Аббревиатура - PTSDST Размер - 2 байта
![]() Пример режима одиночной передачиСледующий PTSCB определяет девять циклов PTS.
Каждый цикл перемещает одно слово из ячейки 20H в ячейки внешней памяти. PTS передает первое слово в ячейку 6000H. Затем он увеличивает и модифицирует адрес приемника и декрементирует регистр PTSCOUNT; PTS не увеличивает адрес источника. Когда начинается второй цикл, PTS перемещает второе слово из ячейки 20H в ячейку 6002H. Когда PTSCOUNT станет равным нулю, PTS заполнит ячейки 6000H-600FH и сгенерирует прерывание "end-of-PTS". Краткий обзор режима поблочной пересылкиВ режиме поблочной пересылки PTS перемещает блок данных из одних ячеек памяти в другие. Бит BW в PTSCON выбирает передачу байтов или слов, а регистр PTSBLOCK определяет число байтов или слов в каждом блоке (n=1-32 ). PTS передает блок байтов или слов из ячейки, указанной в регистре источника (PTSSRC), в ячейку, указанную в регистре приемника (PTSDST). PTSSRC и PTSDST могут указывать на любые ячейки памяти, однако при передаче слов адреса ячеек должны быть четными. Установка автоинкрементных битов в регистре PTSCON заставляет PTS увеличивать адрес источника (SI=1) и/или приемника (DI=1) в конце каждой передачи PTS. Если также установлен бит модификации, увеличенный адрес сохраняется в PTSSRC (SU=1) или PTSDST (DU=1) регистрах после каждого цикла PTS. Установка и битов автоинкремента, и битов модификации означает, что адреса источника и/или приемника будут увеличиваться после каждого цикла. Регистры увеличиваются на 1 при передаче байтов, на 2 - при передаче слов. Особенности автоинкремента и модификации могут выбираться независимо (в отличие от режима одиночной передачи). В этом режиме важно различать передачу PTS и цикл PTS. Передача PTS - это движение одного байта или слова от источника до приемника. Цикл PTS состоит из передачи всего блока байтов или слов. Так как цикл PTS не прерываем, режим поблочной пересылки может создавать длительное время ожидания обслуживания прерывания. Время ожидания (в худшем случае) может составить до 500 временных состояний (поблочная пересылка 32 слов из одних ячеек внешней памяти в другие с использованием 8 битовой шины без состояний ожидания). Аббревиатура- PTSBLOCK Размер - 1 байт
![]() Пример режима поблочной пересылкиСледующий PTSCB определяет три цикла PTS, каждый из которых будет передавать байты из ячеек памяти 20H-24H в один из следующих блоков: 6000H-6004H, 6005H-6009H или 600AH-600EH.
|