Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Prikladnoe_programmirovanie_-Konspekt_lektsy

.pdf
Скачиваний:
22
Добавлен:
21.03.2016
Размер:
3 Мб
Скачать
☆

Рис.5.2. Блок-схема модуля I2C

5.2.3 Принцип действия

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

Линии сигналов SDA и SCL – двунаправленные, должны быть подтянуты к положительной клемме источника питания через резисторы, выходными элементами устройств являются элементы с открытым стоком, реализующие на линии логическую функцию «проводного И».

Основными режимами обмена являются:

-стандартный режим, когда передается точно тот объем информации, который запрограммирован в регистре модуля;

-повторяющийся режим обмена, который повторяется до тех пор, пока программно будут выработаны условия для STOP или нового START.

5.2.4 Модуль содержит следующие узлы:

-выводы SDA и SCL;

-сдвиговые регистры I2CXSR и I2CRSR, регистры данных I2CDXR и I2CDRR и FIFO для временного хранения полученных и передаваемых данных;

-регистры управления и статусные;

-интерфейс с периферийной шиной контроллера;

-устройство синхронизации тактовых импульсов модуля, формируемых из тактовой частоты контроллера, с импульсами, получаемыми по линии SCL, при различных скоростях обмена;

31

-делитель частоты для понижения частоты при формировании тактовых импульсов

модуля;

-фильтр для снижения уровня шума в сигналах, принимаемых по линиям SDA и

SCL;

-устройство арбитража;

-логика формирования прерываний.

5.2.5 Режимы работы Модуль в режиме ведущего начинает обмен с передачи адреса конкретного

ведомого. После передачи адреса модуль должен оставаться в режиме передачи, если данные должны передаваться ведомому. Если данные должны быть получены от ведомого, то ведущий должен перейти на прием.

Модуль в режиме ведомого начинает обмен с приема адреса, передаваемого ведущим. При совпадении принятого адреса с адресом ведомого, последний должен отправить уведомление ведущему. Если данные должны передаваться ведущим, модуль должен оставаться в режиме приема. Если ведущий запрашивает данные от ведомого, то ведомый должен перейти на передачу.

Для управления обменом модуль в режиме ведущего формирует на линиях шины состояние START и STOP.

Состояние START характеризуется переходом из 1 в 0 на линии SDA при сохранении 1 на линии SCL. Ведущий, формируя START, обозначает начало обмена.

Состояние STOP характеризуется переходом из 0 в 1 на линии SDA при сохранении 1 на линии SCL. Ведущий, формируя STOP, обозначает конец обмена.

Впромежутке между START и STOP шина считается занятой, между STOP и START шина считается свободной.

5.2.6 Формат данных

Каждый бит передается по линии SDA в течение одного периода синхросигнала на линии SCL. Передача данных начинается со старшего значащего разряда.

Врежиме 7- битной адресации первый байт после состояния START содержит 7 бит адреса ведомого и бит R/W направления передачи (R/W=0 ведущий передает ведомому, R/W=1 – ведомый передает ведущему).

После передачи каждого байта вставляется дополнительный такт уведомления (АСК – бит), выставляемый принимающей стороной.

Врежиме 10битной адресации адрес передается двумя байтами, первый байт после состояния START содержит в первых пяти битах число 11110, затем два старших разряда адреса, затем бит R/W направления передачи; второй байт содержит оставшиеся 8 бит адреса ведомого.

После передачи каждого байта вставляется дополнительный такт уведомления (АСК – бит), выставляемый принимающей стороной.

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

5.3Модуль SCI последовательного коммуникационного интерфейса

5.3.1 Модуль последовательного коммуникационного интерфейса используется для связи контроллера с асинхронными периферийными устройствами с использованием стандартного формата NRZ (без возврата к нулю). Модуль содержит три канала SCI-A, CSI-B, CSI-C, каждый из которых выполняет функции 2-проводного последовательного асинхронного интерфейса, широко известного как UART.

Позволяет работать по двухпроводной шине как в полудуплексном, так и в дуплексном режиме; содержит независимые FIFO на прием и передачу с глубиной 16 уровней. Скорость обмена программируемая, возможны 216 различных частот.

32

5.3.2 Особенности модуля:

-два внешних вывода (могут использоваться как GPIO): SCITXD – выход передатчика;

SCIRXD – вход приемника;

-формат данных:

Один стартовый бит; Длина слова данных от 1 до 8 бит;

Дополнительный бит четности; Один или два стоповых бита;

-4 флага ошибки: четность, переполнение, кадрирование, обрыв;

-двойное буферирование приема и передачи.

Каждый канал управляется набором из 13 регистров (8-разрядных), которые расположены в периферийном фрейме 2 начиная с адреса 7050h, 7750h, 7770h, соответственно.

5.3.3 Блок-схема модуля SCI и основные связи между его узлами приведены на рис.5.3.

Рис.5.3. Блок-схема модуля SCI

Модуль содержит следующие узлы:

- передатчик ТХ и входящие в него регистры:

SCITXBUF – буферный регистр передаваемых данных, загружается из CPU; TXSHF – сдвиговый регистр передатчика, выдает побитно данные на выход

SCITXD;

33

- приемник RХ и входящие в него регистры:

RXSHF – сдвиговый регистр приемника, принимает побитно данные со входа SCIRXD;

SCIRXBUF – буферный регистр принимаемых данных, хранит данные для чтения CPU;

-программируемый генератор;

-регистры управления и статуса, размеченные в памяти данных;

5.3.4Принцип действия

Обмен данными происходит в формате NRZ (без возврата к нулю). Формат данных NRZ включает:

Один стартовый бит; От 1 до 8 бит данных;

Дополнительный бит четности; Один или два стоповых бита;

Дополнительный бит адресации (только в режиме с адресным битом). Базовая единица информации содержит от 1 до 8 бит данных и в интерфейсе

называется символом. Символ и служебные биты образуют фрейм. Состав фрейма программируется в регистре SCICCR.

Приемник и передатчик могут работать либо независимо, либо одновременно. Каналы могут работать в асинхронном коммуникационном режиме и в

многопроцессорном режиме.

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

Васинхронном коммуникационном режиме период тактовых импульсов SCICLK интерфейса устанавливается в 8 раз меньше длительности передачи бита. Приемник опознает стартовый бит сообщения, если после паузы на вход приходит 0 в течение 4 периодов SCICLK подряд. Состояние последующих битов приемник оценивает, беря три выборки в средине временного интервала передачи бита (4-й, 5-й и 6-й такты SCICLK) и сравнивая их мажоритарно – по двум из трех. Поскольку приемник самосинхронизируется

спринимаемым фреймом, нет необходимости в синхронизации приемника и передатчика, которые имеют собственные тактовые генераторы.

5.4 Модуль McBSP многоканального буферированного последовательного порта

5.4.1 Модуль содержит два порта McBSP-А и McBSP-В, позволяющие реализовать прямой интерфейс с периферийными устройствами типа кодеков.

5.4.2 Особенности портов McBSP:

-дуплексная связь;

-дважды буферированная передача и трижды – прием;

-независимое тактирование и кадровая синхронизация передачи и приема;

-прерывания для CPU и обмен через DMA;

-128 каналов для передачи и приема;

-режим многоканальной селекции, позволяющий включение и выключение передачи блоков в каждом из каналов;

-прямой интерфейс со стандартными кодеками (стандарты T1/E1, IOM-2, AC97), устройствами аналогового интерфейса, АЦП и ЦАП, имеющими последовательный интерфейс SPI;

-поддержка внешней генерации тактов и синхронизации фреймов;

34

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

-программируемая полярность сигналов генерации тактов и синхронизации фреймов;

-программируемая длина формата данных: 8, 12, 16, 20, 24, 32 бита;

-компрессия по законам μ и А;

-возможность передачи 8-разрядных слов начиная с младшего бита.

Блок-схема порта McBSP и основные связи между его узлами приведены на рис.5.4.

Рис.5.4. Блок-схема порта McBSP

5.4.3 Порт подключается к внешним устройствам посредством 6 линий (перечислены для порта А):

MCLKRA – вход/выход тактов приемника;

MCLKXA - вход/выход тактов передатчика; MDRA – вход приема последовательных данных;

MDXA - выход передачи последовательных данных; MFSRA - вход/выход синхронизации фреймов приемника; MFSXA - вход/выход синхронизации фреймов передатчика.

5.4.4 Принцип действия

CPU или DMA-контроллер записывают данные, которые необходимо передать, в регистры DXR1, DXR2. Данные переписываются в сдвигающие регистры XSR1, XSR2, которые выталкивают их поразрядно через выход MDXх. Аналогичным образом, данные, получаемые через вход MDRх, проталкиваются по сдвигающим регистрам RSR1, RSR2, после приема полного слова переписываются в буферные регистры RBR1, RBR2. Содержимое этих регистров затем копируется в DRR1, DRR2, доступных по чтению для

35

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

Между регистрами данных и сдвиговыми регистрами включены устройства компандирования, осуществляющие при необходимости преобразование формата данных перед обменом. Модуль позволяет компандирование (уплотнение и расширение) по μ- закону (стандарт, распространенный в США и Японии, динамический диапазон 213) и А- закону (распространен в Европе, динамический диапазон 214). После уплотнения данные передаются 8-разрядными словами.

5.5 Модуль CAN интерфейса

5.5.1 Модуль содержит два полных контроллера CAN-A и CAN-B. Обеспечивает обмен с повышенной помехоустойчивостью между совместимыми по интерфейсу устройствами. 5.5.2 Основные характеристики:

-соответствует версии CAN 2.0В стандарта;

-поддерживает 32 почтовых ящика, каждый со следующими свойствами:

-конфигурируется как приемник или передатчик;

-конфигурируется со стандартным или расширенным идентификатором;

-имеет программируемую маску фильтра;

-поддерживает удаленные фреймы;

-поддерживает от 0 до 8 байт данных;

-32-разрядный штамп времени на приходящие или отправляемые

сообщения;

-защита от приема новых сообщений;

-позволяет динамически программировать приоритет отправляемых

сообщений;

-содержит программируемую схему прерываний с двумя уровнями;

-имеет режим экономии энергии;

-программируемое пробуждение на шине;

-автоматический ответ на сообщение об удаленном запросе;

-автоматическая повторная передача фрейма при потере арбитража или ошибке;

-режим самотестирования – работает в режиме петли, получая собственное сообщение, имитирует посылку уведомления.

5.5.3 Модуль использует последовательный коммуникационный протокол со многими ведущими, который эффективно поддерживает распределенное управление в реальном времени, с высокой степенью защищенности и скоростью передачи до 1 Мегабита в секунду.

Протокол поддерживает 4 различных типа передаваемых фреймов:

-фреймы данных от передающего узла к приемному;

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

-фреймы ошибки, которые передаются любым узлом при обнаружении ошибки на

шине;

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

Спецификация интерфейса CАN, версия 2.0В определяет два формата, которые различаются длиной идентификатора: стандартный фрейм с 11-битным идентификатором

ирасширенный фрейм с 29-разрядным идентификатором. Стандартный фрейм данных содержит от 44 до 108 бит, расширенный фрейм данных содержит от 64 до 128 бит. Кроме того, в эти фреймы могут быть вставлены служебные биты до 23 и до 28, соответственно. Общая длина фреймов может достигать 131 и 156 бит.

36

Фрейм содержит следующие поля:

-Старт фрейма (1 бит);

-поле арбитража, которое содержит идентификатор и тип посылаемого сообщения

(12 или 32 бит),

-управляющее поле, указывающее число байт, содержащихся в передаваемом сообщении (6 бит);

-поле данных длиной до 8 байт;

-поле контрольной суммы (CRC - 16 бит);

-поле уведомления (2 бит);

-поле окончания фрейма (7 бит).

5.5.4 Контроллер СAN включает Ядро протокола CAN (СРК) и контроллер сообщений. Задачами СРК является декодирование поступающих сообщений и передача этих

сообщений в приемный буфер, а также передача сообщений в шину в соответствии с протоколом.

Контроллер сообщений содержит следующие узлы:

-блок управления памятью, в т.ч. интерфейс с CPU;

-блок управления приемом, в т.ч. фильтрацию;

-блок управления таймером;

-ОЗУ почтового ящика для хранения 32 сообщений;

-регистры управления и статуса.

Контроллер сообщений определяет, должно ли принятое сообщение отброшено или сохранено для использования CPU. Блок управления приемом проверяет состояние, идентификатор и маску у каждого из принятых сообщений для определения соответствующего места в ОЗУ почтового ящика. При инициализации CPU задает контроллеру все идентификаторы, используемые в данном приложении.

Контроллер сообщений управляет также отправкой предназначенных для передачи сообщений в СРК в соответствии с их приоритетами. Передаваемые сообщения загружаются в буфер передатчика CPK, который должен начать их передачу, как только освободится шина. Если должно быть отправлено белее одного сообщения, то отправка ведется в соответствии с их приоритетами. Если у двух почтовых ящиков окажется одинаковый приоритет, то первым отправляется сообщение из ящика с большим номером.

Блок управления таймером содержит счетчик времени и проставляет отметку каждому принятому или отправленному сообщению (только в режиме eCAN). Он генерирует прерывание, если сообщение не может быть отправлено или принято в течение разрешенного периода времени.

Для инициации передачи данных в соответствующем управляющем регистре должен быть установлен бит запроса передачи (TPS.n), дальнейшая работа происходит без участия CPU.

ОЗУ размечено в первом периферийном фрейме для хранения сообщений 32 почтовых ящиков, под каждое сообщение отведено 8 байт. Каждый почтовый ящик может быть конфигурирован для приема или передачи сообщений.

Лекция №6 «Интегрированная среда программирования и отладки Code Composer Studio IDE – состав, общая характеристика, настройка (Target and Host Setup), интерфейс пользователя»

6.1.Интегрированная среда разработки и отладки программного обеспечения – общие понятия

Интегрированная среда разработки и отладки программного обеспечения (IDE) – комплекс инструментальных средств для разработки, интеграции, оптимизации и отладки программ, объединенных единой оболочкой. В IDE входят редактор языка

37

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

Отладка программ

Отладка – процесс поиска и исправления ошибок в программе. Ошибки бывают двух типов: синтаксические и семантические.

Синтаксические связаны с нарушением правил записи программы на языке программирования.

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

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

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

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

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

Отладка сложной программы – сложный и нестандартный процесс, который может занимать большее время, чем ее написание.

Отладочные средства Симулятор – программа, моделирующая аппаратные средства. Большинство эмуляторов

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

Эмулятор – программно-аппаратные средства, при помощи которых одно устройство может имитировать функционирование другого таким образом, что посредством системыимитатора производится обработка тех же данных, выполнение тех же программ и получение тех же результатов, что и имитируемой системы.. Например, при наличии программы эмулятора можно исполнять на ЭВМ программы, написанные для процессоров других семейств (с другой системой команд). Так основанный на сканировании эмулятор с программой, размещенной в ПЭВМ, может через тестовый порт

38

обращаться к внутренним ресурсам процессора и управлять исполнением программы в реальном процессоре (внутрисхемный эмулятор).

Монитор отладчика – аппаратное средство, резидентно находящееся в отлаживаемом изделии, обеспечивающее связь с ПЭВМ и позволяющее управлять исполнением программы в изделии. При необходимости сделать останов в определенном месте программы, монитор отладчика по команде с ПЭВМ записывает в ячейку памяти, где хранится машинная команда, соответствующая точке останова, некорректный код и процессор останавливается, дойдя до этой команды. Когда ПЭВМ дает команду на продолжение исполнения программы, монитор отладчика восстанавливает правильный код в ячейке памяти и возобновляет выполнение команды, начиная с прерванной команды.

Недостатки монитора отладчика: оккупация части внутренней памяти отлаживаемого устройства и использование одного из имеющихся каналов для связи с ПЭВМ, а также незащищенность монитора от повреждения/уничтожения при сбое на отлаживаемом устройстве.

Внутрикристальные аппаратные средства отладки – обеспечивают доступ к внутренним ресурсам отлаживаемой системы. Наиболее распространен JTAG интерфейс, использующий 5 линий связи для последовательного ввода/вывода данных.

Группой Joint Test Action Group разработан и в 90-х годах был стандартизован (Std IEEE 1149.1) метод граничного сканирования, обеспечивающий доступ к внутренним ресурсам цифровых микросхем, в том числе микропроцессоров. Метод реализуется путем создания в микросхеме (или на плате) дополнительных сдвиговых регистров, соединенных последовательно по цепи переноса и подключенных параллельными входами и выходами к контролируемым ресурсам (в частности, к регистровым ячейкам микропроцессора). Вход и выход цепи сдвига подключен к порту тестового доступа, через который осуществляется управление режимом и считывание информации из внутренних ресурсов процессора отлаживаемой системы в ПЭВМ, на которой установлена интегрированная среда.

Прямой доступ к ресурсам позволяет IDE на период отладки изменять путь получения команд процессором: не от счетчика команд, а от регистров JTAG интерфейса, тем самым эффективно управляя процессором при отладке программ:

-старт, стоп, пошаговое исполнение;

-установка аппаратных или программных точек останова;

-сброс и инициализация отлаживаемой системы;

-загрузка программного кода для отладки и для сохранения во флэш-памяти. Роль JTAG интерфейса – предоставление физического канала для связи ПЭВМ с отлаживаемой системой, программное обеспечение IDE должно быть установлено на ПЭВМ.

Достоинства JTAG интерфейса:

-прямой доступ к скрытым ресурсам процессора;

-не занимает аппаратных ресурсов системы (портов, памяти) для отладки;

-доступ не нарушается при аварийной ситуации в отлаживаемой системе;

-не потребляет энергию из отлаживаемой системы;

-подключение отладчика через JTAG интерфейс не возмущает систему;

-обеспечивает связь с «сырой» системой, в которую еще не загружено никакое ПО;

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

Перечисленные достоинства JTAG интерфейса обусловили его широкое применение не только в процессе разработки и отладки ПО, но также в процессе производства (загрузка ПО, тестирование изделий) и сопровождения изделий при эксплуатации (модернизация

39

ПО. JTAG интерфейс используется при программировании многих семейств ПЛИС, позволяя осуществлять их конфигурирование после установки в изделие (in circuit programming).

6.2.Code Composer Studio IDE (CCS): состав, общая характеристика

CCS – интегрированная среда программирования для DSP и микроконтроллеров фирмы TI, объединяющая комплекс инструментальных средств для поддержки процесса на всех стадиях разработки. Включает набор средств, обеспечивающих процесс разработки программ и их отладки во встраиваемых приложениях. В этот набор входят:

-среда разработки проекта;

-дебаггер;

-профайлер;

-симулятор и др.

CCS обеспечивает единый интерфейс пользователя для всех этапов работы.

Среда разработки проекта - редактор языка программирования (как С/С++, так и ассемблера), менеджер проекта, эффективный компилятор, позволяющий во многих случаях не прибегать к ассемблеру, и библиотеку, в которой можно также накапливать собственные подпрограммы.

Дебаггер – отладчик, обеспечивающий отладку в том числе на языке С/С++, многооконное отображение, позволяющее отслеживать значение выбранных переменных, и символьный поиск; приспособлен для работы с DSP, имеет улучшенную систему точек останова. Точки останова условные или аппаратные, базируются на полных выражениях С, локальных переменных или регистрах. Окно памяти позволяет инспектировать все уровни памяти, что позволяет оценить когерентность кэшированных данных. Поддерживает отладку сложных систем с несколькими процессорами или ядрами. Глобальные точки останова и синхронные операции обеспечивают управление всеми процессорами или ядрами.

Профайлер – интерактивный, облегчает оценку качества программного кода. Профайлер позволяет легко профилировать все функции С/С++ при их применении в циклах или в других событиях, таких как ветвление, заполнение конвейера и КЭШа. Ранжирование позволяет при оптимизации сосредоточить усилия на часто используемых участках кода, помогая разработчику в тонкой подстройке программы. Профилирование доступно на всех этапах разработки программы для частей кода, написанных на языках ассемблера, С и С++.

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

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

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

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]