Глава 1. описание отладочной платы

УДК 681.326.32

ББК 32.973.26я772

УДК 681.372

Рецензент

Зав. кафедрой «Информатики, систем управления и телекоммуникаций»

ВГАВТ,д.т.н., профессор Ю.С.Федосеенко

Учебное пособие предназначено для студентов направлений 230100 “Информатика и вычислительная техника” и 230400 “ Информационные системы и технологии”.

В пособии даётся краткое описание основных функциональных узлов сигнального процессора 5535 фирмы Texas Instruments, порядок работы с программным обеспечением, примеры выполнения задач различного назначения, которые могут быть использованы в информационных системах управления. Пособие может быть рекомендовано для следующих дисциплин: “микропроцессоры в системах управления”, “алгоритмы цифровой обработки в системах управления” и “теоретические основы автоматизированного управления”.

Рис.34.Библиогр.: 4 назв.

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ………………..……..……………..………………..3

ГЛАВА 1. ОПИСАНИЕ ОТЛАДОЧНОЙ ПЛАТЫ………....5

1.1. Описание TMS320C5515-5535 eZdsp USB Stick……….…..5

1.2. Технические характеристики платы………………….….….5

ГЛАВА 2. ПРОЦЕССОР TMS320G5535…..…….....………….6

2.1. Блок-схеме и описание процессора TMS320C5535……......6

2.2. Память процессора и адресное пространство………......…10

2.3. Тактовый генератор………………...………………..……..12

2.4. Прерывания и таблица векторов прерываний………….....13

2.5. Управление конфигурацией……………………...…..….…14

2.6. Контроллер DMA………………………………..……….....15

2.7. Таймеры……………………………….....………………….18

2.8. Аналого-цифровой преобразователь (АЦП) SAR ADC…..20

2.9. Интерфейс I2C (Inter-Integrated Circuit)…………..……….21

2.10. Интерфейс I2S (Inter-IC Sound)……………………..…….23

2.11. Блок ввода/вывода цифровой информации GPIO

(general-purpose input/output)………………...………..………..26

2.12. Блок последовательного интерфейса UART……….….....26

2.13. Блок RTC (Real Time Clock)……………………………....28

ГЛАВА 3. АУДИО КОДЕК AIC3204………………………...29

ГЛАВА 4. ПРОГРАММИРОВАНИЕ ЦСП 5535…………....31

4.1. Программное обеспечение для работы с ЦСП Texas Instruments…………………………………………………………………….31

4.2. Порядок работы в CCS……………………………………...31

4.3. Особенности создания проекта для eZdsp USB5535 Stick…………………………………...………………………………...33

ГЛАВА 5. ПРИМЕРЫ ВЫПОЛНЕНИЯ ЗАДАНИЙ……....36

5.1. Реализация эффектов эхо и реверберации…………..…….36

5.2. Описание функций, используемых в проекте эхо и реверберация………………………………………..……………………......43

5.3.Генератор синусоидального сигнала…………….…………44

5.4. Генерация DTMF сигнала…………………….….…..…….46

5.5.Реализация фильтра с конечной импульсной характеристикой……………………………………..…………………….…….…....47

БИБЛИОГРАФИЯ…………….……………………………....52

ПРИЛОЖЕНИЯ….………………………………………..……53

ВВЕДЕНИЕ

Цифровая обработка сигнала (ЦОС) — это математическая обработка в реальном масштабе времени последовательности значений амплитуды сигнала (samples), получаемых через равные временные промежутки. Примерами цифровой обработки являются:

-цифровая фильтрация сигнала

-свертка двух сигналов (смешение сигналов)

-вычисление значений корреляционной функции двух сигналов

-усиление, ограничение или трансформация сигнала

-прямое/обратное преобразование Фурье сигнала

-вейвлет преобразование

Аналоговая обработка сигнала, традиционно используемая во многих радиотехнических устройствах, является в большинстве случаев более дешевым способом достижения требуемого результата, однако тогда, когда требуется высокая точность обработки, миниатюрность устройства, стабильность его характеристик в различных температурных условиях функционирования, цифровая обработка оказывается единственно приемлемым решением.

Для построения систем цифровой обработки сигналов используются специализированные микропроцессоры — цифровые сигнальные процессоры (ЦСП, DSP Digital Signal Processor). Невозможность или неэффективность применения для решения задач ЦОС универсальных микропроцессоров связана, с одной стороны, их низкой производительностью на указанных задачах, а с другой стороны с их чрезмерной избыточностью для данных задач.

Отличительной особенностью задач цифровой обработки сигналов является поточный характер обработки больших объемов данных в реальном масштабе времени, требующий высокой производительности процессора и обеспечения возможности интенсивного обмена с внешними устройствами. Соответствие данным требованиям достигается в настоящее время благодаря специфической архитектуре сигнальных процессоров и проблемно-ориентированной системе команд.

Сигнальные процессоры обладают высокой степенью специализации. В них широко используются методы сокращения длительности выполнения команд, характерные и для универсальных RISC-процессоров, такие, как конвейеризация на уровне отдельных микрокоманд и команд, размещение операндов в регистрах, использование теневых регистров для сохранения состояния вычислений при переключении контекста. Для сигнальных процессоров характерным является наличие аппаратного умножителя, позволяющего выполнять умножение двух чисел за один такт. В универсальных процессорах умножение обычно реализуется за несколько тактов, как последовательность операций сдвига и сложения. Другой особенностью сигнальных процессоров является включение в систему команд таких операций, как умножение совмещённое с накоплением MAC (multiply-accumulate С:=А×В+С), инверсия бит адреса, операции над битами. В сигнальных процессорах реализуется аппаратная поддержка программных циклов, кольцевых буферов, обработки прерываний.

Реализация однотактного умножения, а также команд, использующих в качестве операндов содержимое ячеек памяти, обусловливает сравнительно низкие тактовые частоты работы этих процессоров.

Сигнальные процессоры различных компаний-производителей (Analog Device, Texas Instruments (TI), Motorola) образуют два класса: более дешевые микропроцессоры обработки данных в формате с фиксированной точкой и более дорогие микропроцессоры, поддерживающие операции над данными в формате с плавающей точкой. Использование в сигнальной обработке данных в формате с плавающей точкой обусловлено несколькими причинами. Для многих задач, связанных с выполнением интегральных и дифференциальных преобразований, особую значимость имеет точность вычислений, обеспечить которую позволяет экспоненциальный формат представления данных. Алгоритмы компрессии, декомпрессии, адаптивной фильтрации в цифровой обработке сигналов связаны с определением логарифмических зависимостей и весьма чувствительны к точности представления данных в широком динамическом диапазоне значений. Работа с данными в формате с плавающей точкой существенно упрощает обработку, поскольку не требует выполнения операций округления и нормализации данных, отслеживания ситуаций потери точности и переполнения.

Первая цель данной работы рассмотрение аппаратной части одного из DSP TI.

Вторая цель данной работы описание программного обеспечения, детальное его рассмотрение, для облегчения освоение дисциплин, связанных с реализацией алгоритмов цифровой обработки. За основу взяты данные из учебного диска, свободно распространяемого через сайт фирмы Texas Instruments (www.ti.com).

Таблица 2.1 адреса управляющих регистров

WORLD ADDRESS PERIPHERAL
0x0000 – 0x0004 Idle Control
0x0C00 – 0x0C7F DMA0
0x0D00 – 0x0D7F DMA1
0x0E00 – 0x0E7F DMA2
0x0F00 – 0x0F7F DMA3
0x1000 – 0x10DD EMIF
0x1800 – 0x181F Timer0
0x1840 – 0x185F Timer1
0x1880 – 0x189F Timer2
0x1900 – 0x197F Real Time Clock
0x1A00 – 0x1A6C I2C
0x1B00 – 0x1B1F UART
0x1C00 – 0x1CFF System Control
0x2800 – 0x2840 I2S0
0x2900 – 0x2940 I2S1
0x2A00 – 0x2A40 I2S2
0x2B00 – 0x2B40 I2S3
0x2E00 – 0x2E40 LCD
0x3000 – 0x300F SPI
0x3A00 – 0x3A7F MMC/SD0
0x3B00 – 0x3B7F MMC/SD1
0x7000 – 0x70FF SAR and Analog Control Registers
0x8000 – 0xFFFF USB

Доступ к этим регистрам (чтение и запись) осуществляется через специальные инструкции. При обращении к этим регистрам надо быть уверенным, что процессор не находится в режиме сброса и включен тактовый генератор. Иначе возможно его “зависание”.

При трансляции проекта необходимо контролировать распределение памяти. На учебном диске распределение памяти контролирует командный файл lnkx.cmd.

Директива MEMORY в этом файле идентифицирует диапазоны адресов памяти, которые присутствуют физически и могут быть использованы программой. Каждый такой диапазон памяти имеет имя, стартовый адрес и длину. По умолчанию линковщик может использовать единое адресное пространство с названием PAGE 0. В процессорах C55x могут быть использовано до 255 страниц в зависимости от необходимости. Когда заполняется директива MEMORY необходимо указать все диапазоны адресов памяти, доступные в задаче. В качестве примера можно предложить следующий вид директивы Рис.2.1:

MEMORY

{

PAGE 0: /* ---- Unified Program/Data Address Space ---- */

MMR (RWIX): origin = 0x000000, length = 0x0000c0 /* MMRs */

DARAM0 (RWIX): origin = 0x0000c0, length = 0x00ff40 /* 64KB - MMRs */

SARAM0 (RWIX): origin = 0x010000, length = 0x010000 /* 64KB */

SARAM1 (RWIX): origin = 0x020000, length = 0x020000 /* 128KB */

SARAM2 (RWIX): origin = 0x040000, length = 0x00FE00 /* 64KB */

VECS (RWIX): origin = 0x04FE00, length = 0x000200 /* 512B */

PDROM (RIX): origin = 0xff8000, length = 0x008000 /* 32KB */

PAGE 2: /* -------- 64K-word I/O Address Space -------- */

IOPORT (RWI) : origin = 0x000000, length = 0x020000

}

Рис.2.1 Пример директивы MEMORY

Индексы RWIX означают следующее:

R-означает, что эта память может читаться.

W-означает, что в эту память можно писать.

I-означает, что эта память может содержать исполняемый код.

X-означает, что эта память может быть инициализирована.

После директивы MEMORY можно использовать директиву SECTIONS для более детального распределения памяти.

Тактовый генератор

Для процессора и всех периферийных узлов необходимо тактировать их работу. С этой целью во всех процессорах имеется устройство, называемое тактовым генератором. Как правило, на вход тактового генератора подключается кварцевый генератор, который обеспечивает необходимую стабильность частоты. В данном процессоре входная частота выбирается равной, 32,768кГц (выбор частоты обосновывается в разделе 2.13.) и определяется кварцевым резонатором, подключённым к генератору блока Real Time Clock. В тактовом генераторе имеются специальные один умножитель и два делителя частоты, которые позволяют из входной частоты на выходе получить частоту до 120мГц с высокой точностью. Конструкция тактового генератора допускает тактирование от внешнего сигнала, что бывает необходимо для синхронной работы нескольких устройств.

Отдельный тактовый генератор предназначен для блока USB.

Выбор тактовой частоты очень важный момент. С одной стороны высокая частота обеспечивает быстродействие, но при этом резко возрастает энергопотребление, что очень важно для мобильных устройств. Тактовая частота также определяет частотные настройки последовательных портов ввода/вывода, таймеров и т.д. Для снижения потребления предусматривается отключение тактовых импульсов от блоков процессора, когда они не используются. Это осуществляется установкой логической единицы в соответствующий бит регистров Peripheral Clock Gating Configuration Register (PCGCR1 и PCGCR2).

2.4. Прерывания и таблица векторов прерывания

Во всех процессорах, для реакции на какие-то события в реальном масштабе времени применяется механизм прерываний. В данном процессоре реализовано 32-а события источников прерывания. Эти прерывания собраны в таблице векторов прерывания (spruh87c.pdf стр.86). Каждому прерыванию в таблице выделен соответствующий номер прерывания, адрес в памяти (вектор), по которому находится программа обработки (interrupt service routine - ISR) этого прерывания и уровень приоритета.

Управление прерываниями производится через регистр флагов прерываний (interrupt flag register IFR0,1) и регистр разрешения прерываний (interrupt enable register IER0,1). Установка флага прерывания происходит автоматически при появлении прерывания и является инициатором перехода к обработчику прерывания.

В качестве примера того, что может служить источником прерываний, можно привести переполнение таймера, окончание передачи данных по последовательным портам, заполнение данными выделенной памяти при DMA и т.д.

Внешние прерывания INT0 и INT1 вызываются переходом сигнала с высокого уровня в низкий, на соответствующих ножках процессора.

Для трёх таймеров процессора выделено одно прерывание. При входе в обработчик прерывания, флаг автоматически сбрасывается. Какой из таймеров вызвал прерывание можно определить во вторичном регистре TIAFR. Каждый флаг в регистре TIAFR должен быть сброшен в ISR путём записи 1-цы.

Тридцать два цифровых входа/выхода процессора (GPIO) могут быть сконфигурированы, как источники прерывания. Они все сконцентрированы в одном векторе и могут быть разрешены одним битом (bit5) регистра IER1. Разрешение каждого в отдельности прерывания, устанавливается во вторичных регистрах IOINTEN1 и IOINTEN2 (GPIO Interrupt Enable Registers). В обработчике прерывания необходимо организовать проверку вторичных регистров IOINTFLG1 и IOINTFLG2 для выявление того номера GPIO, который стал причиной прерывания. Бит в IFR1 сбрасывается автоматически, а в IOINTFLG1,2 должен быть сброшен программой в ISR.

Аналогично для DMA выделен один вектор прерывания, которое разрешает одним битом (bit8) регистра IER0 шестнадцать источников прерываний всего блока DMA. Вторичный регистр флагов DMAIFR определяет эти источники.

Управление конфигурацией

В процессоре выделены специальные регистры, в которых задаётся конфигурация, набор и подключение периферийных блоков.

External Bus Selection Register (EBSR). Этот регистр определяет подключение последовательных портов (serial port 1,2) к интерфейсам I2S0,1; SD0,1 и мультиплексирование двадцати одного вывода процессора для I2S2,3; UART; SPI и GPIO. Изменение конфигурации возможно только в начале программы, после её загрузки в память, когда производится конфигурация процессора и не возможно при выполнении программы.

Три регистра PDINHIBR1,2,3 (Pull-Down Inhibit Register) позволяют управлять так называемым “подтягиванием” т.е. подключением вывода процессора через сопротивление к питанию (pull-up) или общему проводу (pull-down) внутри процессора. Эта функция позволяет повысить помехоустойчивость при чтении и записи цифровых данных.

В данном процессоре предусмотрена возможность программного сброса. В 16-ти битный регистр PSRCR (Peripheral Software Reset Counter Register) заносится количество тактов процессора, т.е. определяется время, через которое должен произойти сброс. Рекомендуемая величина, не меньше 08h. В регистре PRCR (Peripheral Reset Control Register) указываются те периферийные блоки, в которых должен произойти сброс. Периферийные блоки в последнем регистре объединены в группы. Могут сбрасываться следующие группы либо I2S2, I2S3, UART и SPI, либо MMC/SD0, MMC/SD1, I2S0 и I2S1, либо DMA 0-3 контроллеры, либо USB контроллер, либо все таймеры, либо I2C.

Контроллер DMA

Контроллер DAM или контроллер прямого доступа к памяти позволяет производить перемещение данных между внутренней, внешней памятью и периферийными устройствами контроллера без участия процессорного ядра. В этом случае пока происходит передача данных, процессор может быть занят другими задачами. Окончание процесса передачи данных фиксируется через прерывание. В данном процессоре есть четыре контроллера DMA 0-3 и каждый контроллер имеет своих четыре канала. Таким образом, всего 16-ть каналов. Каждый контроллер DMA может работать только с определённым набором периферийных устройств, расположенных на кристалле.

Пользователь может перевести любой контроллер DMA в режим пониженного энергопотребления путём выключения входного тактирующего сигнала в регистрах PCGCR1 и PCGCR2 (Peripheral Clock Gating Configuration Register).

Блок-диаграмма каждого DMA контроллера содержит:

-четыре канала.

-регистр интерфейсного порта. Через этот порт центральный процессор имеет доступ к DMA контролеру для управления.

-интерфейсный порт данных. Через этот порт DMA Контроллер имеет доступ к внутренней или внешней памяти и периферии.

-передаваемые данные направляются по четырём каналам.

-один FIFO 64-е байта. Данные, читаемые из источника, размещаются в этом FIFO. В каждый момент времени к FIFO имеет доступ только один из четырёх каналов DMA.

Перед началом программирования канала должен быть сброшен бит EN = 0 в регистре DMACHmTCR2. Программирование канала при EN=1 может привести к непредсказуемым последствиям.

Набор настроек-конфигураций канала, при которых происходит передача данных, называется контекстом (context). Каждый из четырёх каналов имеет структуру регистров для программирования контекста.

DMACHmSSAL регистр стартового адреса источника (младшая часть)

DMACHmSSAU регистр стартового адреса источника (старшая часть)

DMACHmDSAL регистр стартового адреса назначения (младшая часть)

DMACHmDSAU регистр стартового адреса назначения (старшая часть)

При передаче данных используется байтовая адресация. В связи с этим распределение памяти видится контроллером DMA и процессором по-разному. Контроллер DMA читает память по адресам, полученным путём добавочного смещения (offset).

Первый адрес, с которого начинается чтение данных, называется адресом источника (source start address), первый адрес с которого начинается запись, называется адресом назначения (destination start address). Чтение данных производится из адреса источника первоначально в FIFO. А запись в адрес назначения проходит тоже через FIFO.

Преобразование адресов CPU в адреса DMA отображено в соответствующих таблицах описания процессора. Вкратце можно сказать, что для получения адреса в DARAM надо к адресу CPU прибавить величину 01 0000h, а для получения адреса в SARAM прибавить величину 0008 0000h. Распределение адресов описано в файле tms320v5535.pdf (page14-15). Когда в качестве источников или устройств назначения используются периферийные узлы, то регистры DMACHmSSA и DMACHmDSA записываются адреса регистров периферии. В зависимости от поля DST/SRCAMODE (DMACHmTCR2) адрес может инкрементироваться после каждой передачи, что необходимо для памяти, а может оставаться тем же, что необходимо для периферии.

При DMA возможна пакетная передача данных от 1-го до 16-ти двойных слов.

Передача данных по DMA может происходить синхронизовано с определёнными событиями. Для этого в каждом из 16-ти каналов может быть установлен бит 2 (SYNCMODE) в регистре DMACHmTCR2. Если синхронизация по событию разрешена, то канал будет ожидать этого события от периферии и только после этого начнётся чтение из адреса источника. Передача будет происходить до окончания передачи блока. Если во время передачи происходит ещё одно событие, то оно игнорируется, что может привести к потере данных.

Перечень событий определяется в 4-х битном поле регистров DMAnCESR1 и DMAnCESR2. Такими событиями могут быть передача или приём данных по последовательным портам, переполнение таймеров, окончание преобразования в АЦП.

Если не предусмотрена синхронизация, то передача данных начинается сразу после разрешения канала (бит EN = 1 в регистре DMACHmTCR2).

Если одновременно с передачей по DMA центральный процессор CPU тоже обращается к той же памяти, то процессор имеет приоритет и DMA передача возобновляется после окончания обращения CPU.

Длительность передачи по DMA определяется основной тактовой частотой, количеством одновременно работающих контроллеров и каналов DMA, временем появления синхронизирующих сигналов, количеством тактов при обращении к внешней памяти и т.д.

Вместе с общим сбросом процессора, может быть сброшен и отдельно контроллер DMA. Это выполняется через бит DMA_RST в регистре PRCR. Необходимо заметить, что входные в DMA контроллер тактовые импульсы должны быть разрешены перед сбросом. После сброса во всех регистрах DMA устанавливаются значения по умолчанию и контроллер не запущен.

Каждый из контроллеров DMA может быть введён в режим пониженного энергопотребления путём отключения тактовых импульсов в регистре PCGCR.

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

-вывод DMA контроллера из состояния RESET путём DMA_RST=0 в регистре PRCR.

-разрешение тактовых импульсов для каждого контроллера DAM установкой бита DMAnCG=0 в регистрах PCGCR1 и PCGCR2.

-очистка общего флага прерывания в регистре IFR0 путём записи 1 в 8-й бит. Очистка флагов прерывания для всех 16-ти каналов путём записи 1 в биты регистра DMAIFR (поле DMAnCHmIF, где n-номер контроллера DMA, m-номер канала).

-установка разрешения прерываний по 16-ти каналам DMA путём установки 1 в разряды DMAnCHmIE (n-номер контроллера, m-номер канала) 16-ти битного регистра DMAIER. Кроме этого должен быть выставлен бит разрешения прерывания INTEN в регистре DMACHmTCR2 для каждого канала.

-при использовании синхронизирующих событий выбирается тип этого события в поле CHmEVT регистров DMAnCESR1 и DMAnCESR2. Синхронизация разрешается установкой бита SYNCMODE в регистре DMACHmTCR2 для каждого канала.

-загрузка стартового адреса источника данных в регистры DMACHmSSAL и DMACHmSSAU (m-номер канала).

-загрузка стартового адреса назначения в регистры DMACHmDSAL и DMACHmDSAU.

-загрузка в регистр DMACHmTCR1 количества двойных слов. В поле LENGTH заносится величина в байтах. Т.е. если надо передать 256 двойных слов, то заносится величина 256*4=1024.

-установка дополнительных параметров передачи: автоматическая перезагрузка контрольных регистров адреса источника и адреса назначения после окончания передачи и автоматический запуск новой передачи данных (SYNCMODE=1), инкрементирование или нет адресов источника и назначения (DSTAMODE, SRAMODE), установка пакетной передачи BURSTMODE, включение режима PING-PONG.

-установить рабочие режимы периферии, когда DMA работает в периферийными блоками.

-разрешить DMA канал путём установки бита EN=1 и в случае синхронизации SYNCMODE = 1 в регистре DMACHmTCR2.

Таймеры

Таймеры являются неотъемлемой составной частью любого процессора. Основная задача этого периферийного узла в формирование временных задержек и инициализации процессов, которые должны происходить через фиксированные промежутки времени. Каждый из трёх 32-х битных таймеров (Timer0, Timer1, Timer2) может использоваться как таймеры общего назначения (GP general-purpose).

В каждом 32-ти битном таймере имеются два 16-ти битных регистра TIMCNT1 и TIMCNT2, в которых и происходит декрементация содержимого каждый такт таймера. Величина, с которой начинается счёт, записывается программой в регистры TIMPRD1 и TIMPRD2. В момент начала счёта, когда устанавливается, бит START в регистре TCR, содержимое TIMPRD1,2 переписывается в TIMCNT1,2 и начинается декремент каждый такт. Когда содержимое этих регистров достигает значения 0, таймер передаёт запрос на прерывание процессора.

Таймер может быть сконфигурирован в режим авто-перезагрузки (бит AUTORELOAD в регистре TCR), когда после окончания счёта регистры TIMCNT1,2 перезагружаются содержимым TIMPRD1,2.

Тактирование таймера осуществляется от системного тактового генератора, частота которого пропускается через 13-ти уровневый делитель. Коэффициент деления определяются полем PSCDIV (5-2 биты) в регистре TCR. При 0000b деление 2-а, при 1100b деление на 8192. Такая конфигурация позволяет очень точно и в большом диапазоне регулировать временные интервалы, получаемые от таймера. Расчёт заданного временного интервала начинается с вычисления периода следования тактовых импульсов: T=1/Fclock. Где Fclock частота тактирования процессора.

Тактовые импульсы подаются отдельно на каждый таймер, и определяется это битами в регистре PCGCR1.

Только Timer2 может быть использован как Watchdog таймер. Этот таймер позволяет преодолевать так называемые программные тупики (deadlock) или зацикливание программ (non-exiting code loop). Он так же эффективен при “зависании” процессора. Содержимое таймера декрементируется. Окончание счёта вызывает аппаратный сброс процессора. Для нормальной работы этот таймер должен периодически перезагружаться определённым значением, для предотвращения окончания счёта.

Watchdog таймер состоит из 16-ти битного счётчика и 16-ти битного делителя частоты тактирования. Для настройки этого таймера выделены специальные регистры:

WDKCKLK (1880h) предназначен для разблокирования записи в регистр счёта WDKICK. Это разблокирование производится путём последовательной записи ключей Key1=5555h и Key2=AAAAh. Если при чтении этого регистра в битах 1 и 0 читается 11b значит регистр разблокирован.

WDKICK (1882h) при разблокировании этого регистра в него записывается величина, хранящаяся в регистре WDSVR, и запускается процесс декрементации.

WDSVLR (1884h) предназначен для разблокировки записи в регистр WDSVR. При этом в него записываются последовательно два ключа Key1 = 6666h и Key2 = BBBBh. Если при чтении из этого регистра читается 11b, значит WDSVR разблокирован для записи.

WDENLOK (1888h) предназначен для разблокирования записи в регистр WDEN разрешения Watchdog таймера. Key1 = 7777h, Key2 = CCCCh, Key3 = DDDDh.

WDEN (188Ah) регистр содержит только один значащий 0-й бит. Если он установлен в 1, то Watchdog таймер разрешён.

WDPSLR (188Ch) для разблокировки записи в регистр WDPS. Key 1 = 5A5Ah, Key2 = A5A5h.

WDPS (188Eh) регистр делителя частоты декрементации. Каждый раз когда регистр WDPS достигает 0-го значения основной регистр счёта WDKICK декрементируется на один шаг.

Блок RTC (Real Time Clock)

Это так называемый блок реального времени, который может применяться как часы. Как уже отмечалось в пункте 2.3. к процессору подключается кварцевый резонатор с частотой 32768Гц. Это так называемый “часовой” кварц, т.к. после деления этой частоты на величину 215 получаются стабильные импульсы частотой 1Гц т.е. 1-н импульс в секунду. Подсчёт этих импульсов и определяет реальное время.

Большим преимуществом такой конструкции является то, что RTC может работать вне зависимости от процессора. Т.е. процессор может быть остановлен.

Основные особенности блока RTC:

-календарь на 100 лет (позволяет объём регистров)

-наличие отдельных счётчиков миллисекунд, секунд, минут, часов (в формате 24 часа) и даты (с отдельным отображением даты, месяца, года с учётом високосных)

-данные представляются в т.н. двоично-десятичном формате (BCD binary-coded-decimal)

-встроенный будильник (учитывающий год, месяц, день, час, минуту секунду и миллисекунду), имеющий прерывание

-возможность периодических прерываний каждую миллисекунду, секунду, минуту, час или день

Представление данных в двоично-десятичном формате заключается в том, что в 4-х битах помещаются числа от 0 до 9. Если бы в этих битах помещались числа от 0 до 15, то необходим бы был дополнительный пересчёт в десятичное число для отображения времени на индикаторах.

В таблице векторов прерывания выделен только один 18-й вектор. Поэтому причину, по которой произошло прерывание в RTC можно определить в регистре Interrupt Flag Register (RTCINTFL).

Порядок работы в среде CCS

Основой программного обеспечения для лабораторных работ был выбран C5000 Teaching ROM с сайта Texas Instruments (распространяется бесплатно для учебных целей). В ходе данной работы были разобраны некоторые из предложенных тем из этого курса.

Для начала мы рассмотрим, как создавать проекты и какие настройки могут потребоваться при первом запуске Code Composer Studio. Создание проекта и отладка программы в CCS производится в стандартной оболочке eclipse, имеющей соответственно два окна C/C++ и Debug.

При запуске CCS запрашивает имя рабочего пространства (Workspace) в котором могут находиться несколько проектов, например по одной тематике. Название рабочего пространства соответствует “папке” на диске компьютера.

После загрузки CCS, первое, что требуется сделать, это создать новый проект или выбрать один из ранее созданных проектов. Если в рабочей области есть несколько проектов, то они все отображаются на экране. Для создания нового проекта, требуется выбрать следующие пункты меню File - New - CCS Project (Рис. 4.1.) при этом создаётся подкаталог в папке рабочей области.

глава 1. описание отладочной платы - student2.ru

Рис. 4.1.Создание нового проекта

Далее в появившемся окне (Рис. 4.2.) задаем имя нового проекта и выбираем кнопку Next.

глава 1. описание отладочной платы - student2.ru

Рис. 4.2.Задание имени проекта

После чего предлагается выбрать тип проекта (Рис. 4.3.). Поскольку в данной работе мы используем TMS320C5535, то типом проекта мы выбираем C5500. В качестве предлагаемого параметра конфигурации (Configuration) можно выбрать одновременно “Debug” и “Release”. Эти параметры учитывают создание выходного файла для режима отладки “Debug” и для режима работы “Release”. Размер выходного файла для отладки имеет больший размер. После окончательной отладки программы и для экономии памяти под программу рекомендуется трансляция выходного файла в формате “Release”. После чего нажимаем Next.

глава 1. описание отладочной платы - student2.ru

Рис. 4.3.Выбор типа проекта

В следующем окне (Рис. 4.4.) можно выбрать с какими проектами, из ранее созданных, будет связан новый проект. На данный момент это нам не требуется, и просто нажимаем Next.

глава 1. описание отладочной платы - student2.ru

Рис. 4.4.Связи между проектами

Далее будет предложено выбрать настройки проекта (Рис. 4.5.). Для наших проектов требуется в поле Device Variant выбрать TMS320C5515 и в поле Runtime Support Library указать rts55h.lib (данная библиотека предназначена для работы с huge моделью памяти). Остальные поля нужно оставить без изменений. И далее по нажатию кнопки Finish будет создан новые проект с именем NewProject.

После трансляции проекта должен создаться файл с расширением out (*.out).

глава 1. описание отладочной платы - student2.ru

Рис. 4.5.Настройки проекта

Для запуска и отладки проектов нам потребуется создать Target Configuration. Для этого нужно выбрать Target - New Target Configuration. В появившемся окне (Рис. 4.6.) предлагается выбрать имя для нашей конфигурации, например, оно может быть C5515TargetConfiguration. После выбора имени нажимаем кнопку Next и переходим к следующему шагу создания конфигурации.

глава 1. описание отладочной платы - student2.ru

Рис. 4.6.Выбор имени для новой конфигурации

На следующем шаге в открывшемся окне (Рис. 4.7.) нам нужно выбрать для поля Connection - Texas Instruments XDS100v2 USB Emulator, а в поле Device отметить галочкой нужное нам устройство, для нас это USBSTK5515 (подходит и для 5535). После этих действий, нужно нажать кнопку Save, и создание Target Configuration будет закончено. Создаётся файл конфигурации с расширением ccxml.

глава 1. описание отладочной платы - student2.ru

Рис. 4.7.Завершающий этап создания Target Configuration

На этом закончена подготовку CCS для работ и теперь можно приступать к знакомству с работой ЦСП TMS320C5535.

ГЛАВА 5. ПРИМЕРЫ ВЫПОЛНЕНИЯ ЗАДАНИЙ

Генерация DTMF сигнала

Тональный набор (Chapter 14), тональный сигнал (Dual-Tone Multi-Frequency, DTMF) — двух-тональный многочастотный аналоговый сигнал, используемый для набора телефонного номера. Сфера применения тональных сигналов: автоматическая телефонная сигнализация между устройствами, а также ручной ввод абонентом для различных интерактивных систем, например голосового автоответа. По используемой полосе частот сигнал соответствует телефонии.

Для кодирования символа в DTMF сигнал, требуется использовать таблицу (Таблица 5.1).

Таблица 5.1

  1209 Гц 1336 Гц 1447 Гц
697 Гц
770 Гц
852 Гц
941 Гц * #

Частоты подобраны таким образом, чтобы их гармоники не накладывались на соседние основные частоты.

Чтобы получить закодированный сигнал, требуется сложить два синусоидальных сигнала с частотами из строки и столбца. Например, рассмотрим кодирование символа «5». Для этого нам потребуется сложить синусоидальный сигнал с частотой 770 Гц и синусоидальный сигнал с частотой 1336 Гц. Получившейся сигнал будет представлять собой DTMF сигнал для символа «5».

В нашем проекте функция dial_phone_number(&telephone_number[0]) отвечает за кодирование символа в DTMF сигнал. Данная функция принимает в виде параметров адрес первого элемента строки, содержащей символы которые мы хотим закодировать в DTMF. Внутри данной функции строка проверяется на наличие символов, которые можно закодировать, в случае обнаружения такого символа вызывается функция generate_DTMF(button). В эту функцию передается символ, который нужно закодировать. Далее для символа находятся требуемые значения частот и генерируются два синусоидальных сигнала с этими частотами, которые затем складываются. На выходе этой функции мы получаем готовый DTMF сигнал.

Аналогично предыдущим заданиям с выхода STEREO OUT платы, сможем увидеть какой формы, будет DTMF сигнал для символов «1», «5» (Рис. 5.16., Рис. 5.17.).

глава 1. описание отладочной платы - student2.ru

Рис. 5.16. DTMF сигнал, символа «1»

глава 1. описание отладочной платы - student2.ru

Рис. 5.17. DTMF сигнал, символа «5»

БИБЛИОГРАФИЯ

1.А.Оппенгейм, Р.Шафер Цифровая обработка сигналов – Техносфера, 2007. – 855с.

2.А.Б.Сергиенко Цифровая обработка сигналов - Питер, 2006. - 750с.

3.www.ti.com, Technical Reference Manual TMS320C5535 DSP (Техническое справочное руководство файл spruh87c.pdf), 2012. – 545с.

4.www.ti.com, Assembly Language Tools User’s Guide (файл spru280h.pdf), 2004. – 523с.

5.www.ti.com, TMS320C5535, 'C5534, 'C5533, 'C5532 Fixed-Point Digital Signal Processors (файл sprs737b.pdf), 2012, - 156с.

6.Г.Олссон, Д.Пиани Цифровые системы автоматизации и управления – Невский Диалект, 2001. – 506с.

ПРИЛОЖЕНИЯ

Первый набор коэффициентов FIR фильтра из 101 коэффициента:

{ -15, -16, -17, -19, -21, -24, -27, -29, -32, -35, -38, -40, -42, -43, -42, -40, -37, -31, -23, -13, 0, 16, 35, 58, 84, 113, 146, 182, 222, 264, 309, 357, 407, 459, 512, 566, 620, 674, 727, 778, 827, 874, 918, 957, 993, 1024, 1050, 1070, 1085, 1094, 1097, 1094, 1085, 1070, 1050, 1024, 993, 957, 918, 874, 827, 778, 727, 674, 620, 566, 512, 459, 407, 357, 309, 264, 222, 182, 146, 113, 84, 58, 35, 16, 0, -13, -23, -31, -37, -40, -42, -43, -42, -40, -38, -35, -32, -29, -27, -24, -21, -19, -17, -16, -15}

Второй набор коэффициентов FIR фильтра из 201 коэффициента:

{ -7, -7, -6, -6, -5, -5, -4, -3, -2, -1, 0, 1, 3, 4, 6, 8, 10, 12, 14, 17, 19, 21, 24, 26, 28, 30, 32, 33, 34, 35, 35, 34, 33, 32, 30, 27, 23, 18, 13, 7, 0, -8, -16, -25, -34, -44, -55, -65, -76, -87, -97, -108, -117, -127, -135, -142, -148, -152, -154, -155, -154, -150, -145, -136, -125, -112, -95, -76, -53, -28, 0, 31, 64, 101, 139, 180, 223, 268, 315, 363, 412, 461, 511, 561, 611, 660, 708, 755, 799, 842, 882, 920, 954, 985, 1013, 1036, 1056, 1071, 1083, 1089, 1092, 1089, 1083, 1071, 1056, 1036, 1013, 985, 954, 920, 882, 842, 799, 755, 708, 660, 611, 561, 511, 461, 412, 363, 315, 268, 223, 180, 139, 101, 64, 31, 0, -28, -53, -76, -95, -112, -125, -136, -145, -150, -154, -155, -154, -152, -148, -142, -135, -127, -117, -108, -97, -87, -76, -65, -55, -44, -34, -25, -16, -8, 0, 7, 13, 18, 23, 27, 30, 32, 33, 34, 35, 35, 34, 33 32, 30, 28, 26, 24, 21, 19, 17, 14, 12, 10, 8, 6, 4, 3, 1, 0, -1, -2, -3, -4, -5, -5, -6, -6, -7, -7}

УДК 681.326.32

ББК 32.973.26я772

УДК 681.372

Рецензент

Зав. кафедрой «Информатики, систем управления и телекоммуникаций»

ВГАВТ,д.т.н., профессор Ю.С.Федосеенко

Учебное пособие предназначено для студентов направлений 230100 “Информатика и вычислительная техника” и 230400 “ Информационные системы и технологии”.

В пособии даётся краткое описание основных функциональных узлов сигнального процессора 5535 фирмы Texas Instruments, порядок работы с программным обеспечением, примеры выполнения задач различного назначения, которые могут быть использованы в информационных системах управления. Пособие может быть рекомендовано для следующих дисциплин: “микропроцессоры в системах управления”, “алгоритмы цифровой обработки в системах управления” и “теоретические основы автоматизированного управления”.

Рис.34.Библиогр.: 4 назв.

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ………………..……..……………..………………..3

ГЛАВА 1. ОПИСАНИЕ ОТЛАДОЧНОЙ ПЛАТЫ………....5

1.1. Описание TMS320C5515-5535 eZdsp USB Stick……….…..5

1.2. Технические характеристики платы………………….….….5

ГЛАВА 2. ПРОЦЕССОР TMS320G5535…..…….....………….6

2.1. Блок-схеме и описание процессора TMS320C5535……......6

2.2. Память процессо

Наши рекомендации