ЭУМК по дисциплине "Проектирование проблемно-ориентированных вычислительных средств" › Теория › Тема 8. Блок многочастотного приемника сигналов для цифровой АТС

# Электронный учебно-методический
комплекс по дисциплине
"Проектирование проблемно-ориентированных вычислительных средств"

для специальности

1-40 02 02 «Электронные вычислительные средства»

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах

8.2. Подключение внешней флэш-памяти к блоку МЧП, первоначальная загрузка программы в блок МЧП
8.2.1. Подключение внешней флэш-памяти

Загрузка кода рабочей программы в блок осуществляется автоматически по сигналу сброса процессора. Для этого используется встроенный начальный загрузчик ЦПС TMS320VC5402. Начальный загрузчик перемещает код рабочей программы из внешней флэш-памяти во внутреннюю память ЦПС. Начальный загрузчик размещен во внутреннем ПЗУ программ ЦПС TMS320VC5402, содержащем несколько запрограммированных на заводе секций:

- программа начального загрузчика;
- две таблицы m-law и A-law кодирования размером 256 слов каждая;
- таблица одного периода функции синуса размером 256 значений;
- таблица векторов прерываний.

Внутреннее ПЗУ имеет размер 4К слов и расположено в пространстве программ ЦПС по адресам F000-FFFF. Карта распределения памяти внутреннего ПЗУ приведена ниже.

Начальный адрес | Содержимое

F000
F800
FC00
FD00
FE00
FF00
FF80

Зарезервировано
Начальный загрузчик
Таблица m-law кодирования
Таблица A-law кодирования
Таблица синуса
Зарезервировано
Таблица векторов прерываний

Для загрузки рабочей программы используется 8-разрядный параллельный режим. Загрузка осуществляется из загрузочной таблицы, которая расположена во флэш-памяти и имеет следующий формат:

08 | Ключевое слово
AA
Старший байт, загружаемый в SWWSR ( 7F ) | Количество тактов ожидания, используемое при загрузке рабочей программы
Младший байт, загружаемый в SWWSR ( FF )
Старший байт, загружаемый в BSCR ( F8 )
Младший байт, загружаемый в BSCR ( 00 )
Старший байт, загружаемый в XPC ( 00 ) | Адрес точки входа в рабочую программу (стартовый адрес рабочей программы)
Младший байт, загружаемый в XPC ( 00 )
Старший байт, загружаемый в PC ( 00 )
Младший байт, загружаемый в PC ( 80 )
Старший байт значения N1 ( 0F ) | N1 – размер блока первой загружаемой секции
Младший байт значения N1 ( 80)
Старший байт, загружаемый в XPC (00) | Адрес загрузки блока первой секции
Младший байт, загружаемый в XPC (00)
Старший байт, загружаемый в PC (00)
Младший байт, загружаемый в PC (80)
Старший байт 1-го слова 1-й секции программы | Первая секция рабочей программы
. . .
Младший байт последнего слова 1-й секции программы
. . . |
Старший байт значения Nk | Nk – размер блока последней загружаемой секции
Младший байт значения Nk
Старший байт, загружаемый в XPC ( 00 ) | Адрес загрузки блока последней секции
Младший байт, загружаемый в XPC ( 00 )
Старший байт, загружаемый в регистр PC
Младший байт, загружаемый в регистр PC
Старший байт 1-го слова последней секции программы | Последняя секция рабочей программы
. . .
Младший байт последнего слова последней секции программы
00 | Признак конца загрузочной таблицы
00

Размещение информации во флэш-памяти приведено ниже.

00000h 03FFFh | Не используется (FF)
04000h | Загрузочная таблица второго варианта рабочей программы
0FEFFh | Не используется (00 затем FF)
0FF00h | FF
0FF01h 0FFFDh | Не используется (FF)
0FFFEh | 40
0FFFFh | 00
10000h 13FFFh | Не используется (FF)
14000h | Загрузочная таблица первого варианта рабочей программы
1FEFFh | Не используется (00 затем FF)
1FF00h | FF
1FF01h 1FFFDh | Не используется (FF)
1FFFEh | 40
1FFFFh | 00

8.2.2. Первоначальная загрузка программы

Алгоритм загрузки рабочей программы представлен на рис. 8.3.

######

###### Рисунок 8.3 – Алгоритм загрузки программы

Процесс загрузки выполняется в следующей последовательности:

1. проверка значения сигнала на входе процессора INT2#. Так как на этом входе зафиксирован сигнал высокого уровня, то осуществляется переход к шагу 2;
2. проверка значения сигнала на входе процессора INT3#. Так как на этом входе зафиксирован сигнал высокого уровня, то осуществляется переход к шагу 3;
3. чтение 16-разрядного адреса из порта ввода FFFF. При этом принимается значение FFFF;
4. чтение слова из пространства памяти данных по адресу FFFF. При этом принимается значение FF00 (младший байт 00 считывается из флэш-памяти);
5. принятое значение сравнивается с ключевым словом 10AA. Так как принятое значение не совпадает с ключевым словом, то осуществляется переход к шагу 6;
6. принятое значение сравнивается с ключевым словом xx08. Так как принятое значение не совпадает с ключевым словом, то осуществляется переход к шагу 7;
7. чтение 16-разрядного адреса из пространства памяти данных по адресу FFFF. При этом принимается значение FF00 (младший байт 00 считывается из флэш-памяти);
8. чтение слова из пространства памяти данных по адресу FF00. При этом принимается значение FFFF (младший байт FF считывается из флэш-памяти);
9. принятое значение сравнивается с ключевым словом 10AA. Так как принятое значение не совпадает с ключевым словом, то осуществляется переход к шагу 10;
10. чтение 16-разрядного адреса загрузочной таблицы из флэш-памяти: младший байт считывается по адресу FFFF, старший байт – по адресу FFFE. При этом принимается значение 4000;
11. чтение первого байта загрузочной таблицы из флэш-памяти по адресу 4000. При этом принимается значение FF08 (младший байт 08 считывается из флэш-памяти);
12. принятое значение сравнивается с ключевым словом xx08. Так как принятое значение совпадает с ключевым словом, то осуществляется переход к шагу 13;
13. чтение второго байта загрузочной таблицы из флэш-памяти по адресу 4001. При этом принимается значение FFAA (младший байт AA считывается из флэш-памяти);
14. принятое значение сравнивается с ключевым словом xxAA. Так как принятое значение совпадает с ключевым словом, то осуществляется переход к шагу 15;
15. осуществляется загрузка рабочей программы из флэш-памяти в соответствии с параметрами, заданными в загрузочной таблице;
16. передача управления на точку входа в рабочую программу.

8.2.3. Алгоритм работы головной программы блока МЧП

Срабатывание детектора на заданной частоте фиксируется в своем бите кодового слова. Полученное кодовое слово является адресом специальной таблицы, которая содержит признаки правильных и неправильных комбинаций частот и адреса подпрограмм дополнительной проверки. Для DTMF-сигналов дополнительно проверяется разница уровней двух частот. При этом пороговым значением является разница уровней в 9 дБ, что позволяет с запасом в 3 дБ разделять срабатывание, когда разность уровней сигналов менее 9 дБ (3 дБ максимальная разность уровней для принимаемых сигналов и 3 дБ максимальное затухание в полосе пропускания фильтра в сумме дают 6 дБ, что на 3 дБ меньше порога) и не срабатывание, когда разность уровней сигналов более 9 дБ (15 дБ минимальная разность уровней для не принимаемых сигналов и -3 дБ максимальное затухание в полосе пропускания фильтра в сумме дают 12 дБ, что на 3 дБ больше порога).
При определении в течение определенного времени наличия заданных частот в БУК выдается соответствующий код. Если текущая комбинация частот изменяется, то второй счетчик фиксирует время определения нового значения и при его превышении заданного предела считается, что сигнал изменился, и в БУК будет выдаваться новый код. Если предыдущий сигнал восстанавливается ранее этого времени, то содержимое второго счетчика прибавляется к первому и считается, что сигнал был все это время.
При необходимости ЦПС может вызвать в БУКе прерывание, записав 1 в триггер «Загрузка».

Укрупненный алгоритм работы блока после загрузки рабочей программы может быть представлен в виде следующей блок-схемы (рис. 8.4).

######

###### Рисунок 8.4 – Алгоритм работы блока МЧП

Оглавление | Программа | Теория| Практика | Контроль знаний | Об авторах
© БГУИР , 2012