Скачиваний:
19
Добавлен:
01.05.2014
Размер:
3.33 Mб
Скачать

1.16.3.1. Пример режима поблочной пересылки

PTSCB на рис.@.8определяет три PTS цикла, каждый из которых будет передавать байты из ячеек памяти 20H-24H в один из следующих блоков: 6000H-6004H, 6005H-6009H, или 600AH-600EH. Каждый цикл PTS требует пакета из пяти передач. Источник и приёмник увеличиваются после каждой передачи, но только приёмник модифицируется после каждого цикла. Первый байт каждого цикла всегда читается из ячейки 20H.

Рис.@.8PTSCB для режима поблочной пересылки

1.16.4. Краткий обзор режима сканирования

аналого-цифрового преобразователя (A/D;АЦП)

В режиме сканирования АЦП, PTS заставляет АЦП выполнять многократные преобразования на одном или нескольких каналах и затем сохраняет результаты. Чтобы использовать режим сканирования АЦП, Вы должны сначала установить в памяти таблицу команд / данных ( см. рис.@.9). Таблица команд / данных содержит команды АЦП, которые чередуются с пустыми ячейками памяти. В этих пустых ячейках PTS сохраняет результаты преобразования. Чтобы инициализировать режим сканирования АЦП, разрешите прерывание по завершению А/Ц преобразования (A/D Conversion Complete interrupt) и назначьте его ослуживание PTS, затем запустите программу начала первого преобразования.

Когда АЦП заканчивает первое преобразование и генерирует прерывание по завершению A/Ц преобразования, инициализируется цикл PTS. В течение каждого цикла PTS, PTS сохраняет результаты из предыдущего преобразования и затем выполняет следующую команду преобразования. Так как результаты преобразования не сохраняются до следующего цикла PTS, последняя ячейка команды (Unused) должна содержать все нули, для того, чтобы предотвратить от повторного старта последнее преобразование.

Обычно, команды АЦП загружаются в таблицу из внешнего ROM. Размер таблицы ограничивается только количеством доступной памяти; она может постоянно находиться во внутреннем или внешнем ОЗУ.

XXX+0AH

A/D Result 2

XXX+8H

Unesed

A/D Command 3

XXX+6H

A/D Result 1

XXX+4H

Unesed

A/D Command 2

XXX+2H

A/D Result 0*

XXX

Unesed

A/D Command1

Рис.@.9Таблица команд/данных для режима сканирования АЦП

В режиме сканирования АЦП, PTSCOUNT определяет общее число циклов А/Ц преобразования .

Регистр PTS_S/D указывает на таблицу команд/данных преобразования. Установка бита UPDT в регистре PTSCON (PTSCON.3) заставляет регистр PTS_S/D сохранять свое последнее значение в конце передачи PTS. Очистка этого регистра заставляет регистр возвращаться к значению, которое существовало в начале цикла PTS.

PTS_REG указывает на адрес 02H в HWindow 0. При чтении, эта ячейка содержит регистр AD_RESULT; при записи она содержит регистр AD_COMMAND. Режим сканирования АЦП также использует два временных регистра, которые являются недоступными для пользователя.

1.16.4.1. Pts циклы в режиме сканирования ацп

Первое A/Ц преобразование должно начинать программное обеспечение (A/D Command 0). Прерывание по завершению A/Ц преобразования инициирует цикл PTS. После того, как начинается цикл PTS, происходят следующие действия:

1. PTS читает первую команду (A/D Command 1), сохраняет её во временной ячейке, и затем дважды увеличивает регистр PTS_S/D. PTS_S/D теперь указывает на первую пустую ячейку в таблице команд / данных ( чтобы адресовать xxx +2 ).

2.PTS читает регистр AD_RESULT, сохраняет результаты первого преобразования в ячейке xxx + 2 в таблице команд / данных(A/D Result 0), и дважды увеличивает регистр PTS_S/D. PTS_S/D теперь указывает на xxx + 4.

3. PTS загружает команду из временной ячейки в регистр AD_COMMAND. Это начинает следующий цикл A/Ц преобразования.

4. Если UPDT (PTSCON.3) сброшен, регистр PTS_S/D повторно инициализируется первоначальным значением. Следующая передача будет использовать ту же самую команду и запишет новые данные поверх предыдущих данных. Если UPDT установлен, PTS сохраняет новое содержимое PTS_S/D и она указывает на следующую команду.

5. PTSCOUNT уменьшается и CPU возвращается к выполнению программы. Когда PTSCOUNT достигнет нуля, аппаратные средства очищают соответствующий бит PTSSEL и устанавливает бит PTSSRV, который запрашивает прерывание “end-of-PTS”.

Когда преобразование, начатое циклом PTS, завершается и AЦП генерирует прерывание по завершению АЦП Преобразования , начинается новый цикл PTS. Шаги 1-5 повторяются.

Так как младшие шесть битов регистра AD_RESULT содержат информацию о состоянии, программа обработки “end-of-PTS” прерывания может сдвигать данные результатов вправо на шесть разрядов, чтобы оставить в памяти только результаты преобразования .

Пример 1 режима сканирования АЦП

Таблица команд / данных, показанная в табл.@.7устанавливает ряд АЦП преобразований, начинающихся в канале 7 и заканчивающихся в канале 0. Каждый вход таблицы - слово ( два байта ). На рис.@.10приведён соответствующий PTSCB.

Программное обеспечение начинает преобразование в канале 7. После завершения преобразования, прерывание по завершению A/Ц преобразования инициирует первый цикл PTS.

Шаг 1 запоминает команду канала 6 во временной ячейке и увеличивает PTS_S/D до 102H.

Шаг 2 запоминает результат преобразования канала 7 в ячейке 102H и увеличивает PTS_S/D до 104H.

Шаг 3 загружает команду канала 6 из временной ячейки в регистр AD_COMMAND , для того, чтобы начать следующее преобразование.

Шаг 4 модифицирует PTS_S/D(PTS_S/D указывает на 104H )

Шаг 5 уменьшает PTSCOUNT до 7.

Следующий цикл начинается с сохранения команды канала 5 во временной ячейке . В течение восьмого цикла ( PTSCOUNT = 1) в регистр AD_COMMAND загружается фиктивная команда и никакое преобразование не выполняется. PTSCOUNT уменьшается до нуля и запрашивается “end-of-PTS” прерывание.

Таблица @7. Таблица команд/данных ( Пример 1 )

Адрес

Содержание

11EH

AD_RESULT для ACH0

11CH

0000H ( фиктивная команда )

11AH

AD_RESULT для ACH1

118H

AD_COMMAND для ACH0

116H

AD_RESULT для ACH2

114H

AD_COMMAND для ACH1

112H

AD_RESULT для ACH3

110H

AD_COMMAND для ACH2

10EH

AD_RESULT для ACH4

10CH

AD_COMMAND для ACH3

10AH

AD_RESULT для ACH5

108H

AD_COMMAND для ACH4

106H

AD_RESULT для ACH6

104H

AD_COMMAND для ACH5

102H

AD_RESULT для ACH7

100H

AD_COMMAND для ACH6

Unused

Unused

PTS_REG(HI)=00H

PTS_REG(LO)=02H

PTS_S/D(HI)=01H

PTS_S/D(LO)=00H

PTSCON=CAH(UPDT=1)

PTSCOUNT=08H

Рис.@.10PTSCB для режима сканирования АЦП( Пример 1 )

Пример 2 режима сканирования АЦП

На рис.@.11приведен пример PTSCB для режима сканирования из 10 PTS циклов, при этом каждый читает один канал АЦП и сохраняет результат в одной ячейке (102H). UPDT очищен, поэтому первоначальное содержимое PTS_S/D после цикла восстанавливается.

Таблица команд / данных приведена в таблице 8.

Unused

Unused

PTS_REG(HI)=00H

PTS_REG(LO)=02H

PTS_S/D(HI)=01H

PTS_S/D(LO)=00H

PTSCON=C2H(UPDT=0)

PTSCOUNT=0AH

Рис.@.10 PTSCB для режима сканирования АЦП( Пример 2 )

Таблица @.8. Таблица команд/данных ( Пример 2 )

Адрес

Содержание

102H

AD_RESULT для ACHx

100H

AD_COMMAND для ACHx

Программное обеспечение начинает преобразование на канале x. Первый цикл PTS начинается, когда заканчивается преобразование и генерируется прерывание о завершении A/Ц преобразования. PTS сохраняет результат преобразования в ячейке 102H и затем копирует команду преобразования из ячейки 100H в регистр AD_COMMAND. CPU может обрабатывать или перемещать результирующие данные преобразования из таблицы перед тем, как завершится следующее преобразование и начнется новый цикл PTS . Когда начинается следующий цикл, PTS_S/D снова указывает на 100H. Результаты преобразования записываются в ячейку 102H и команда из ячейки 100H выполняется снова.

Соседние файлы в папке Лабораторные работы по МПС