WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Pages:     | 1 |   ...   | 3 | 4 ||

«А.О. Ключев, Д.Р. Ковязина, Е.В. Петров, А.Е. Платунов ИНТЕРФЕЙСЫ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ Учебное пособие Санкт-Петербург 2010 Ключев А.О., Ковязина Д.Р., Петров Е.В., Платунов А.Е. Интерфейсы периферийных устройств. – ...»

-- [ Страница 5 ] --

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

Форматом данных, пересылаемых через него (под форматом данных подразумевается как их разрядность, так и положение значащих разрядов).

Набором допустимых с ним операций (чтение, запись или и то, и В стенде SDK-1.1 ввод-вывод данных осуществляется с помощью портов микроконтроллера и микросхемы ПЛИС (расширитель портов ввода-вывода).

Порты P0, P1, P2, P3 микроконтроллера ADuC812 являются квазидвунаправленными портами ввода-вывода и предназначены для обеспечения обмена информацией микроконтроллера с внешними устройствами, образуя 32 линии ввода-вывода. Каждый из портов содержит восьмиразрядный регистр, имеющий байтовую и битовую адресацию для установки (запись «1») или сброса (запись «0») разрядов этого регистра с помощью программного обеспечения. Выходы этих регистров соединены с внешними ножками микросхемы.

Кроме работы в качестве обычных портов ввода-вывода внешние выводы портов Р0-Р3 могут выполнять ряд дополнительных (альтернативных) функций.

Порт P0 может быть использован для организации шины адреса/данных при работе микроконтроллера с внешней памятью данных или программ (см.

принципиальную схему стенда SDK-1.1), при этом через него выводится младший байт адреса (A0-A7), выдается из микроконтроллера или принимается в микроконтроллер байт данных.

Порт P1 – аналоговые входы.

Порт P2 может быть использован для организации шины адреса при работе микроконтроллера с внешней памятью данных или программ, при этом через него выводится старший байт адреса (A8–A15) для доступа к памяти программ; средний и старший байт адреса (A8 – A15, A16 – A23) для доступа к памяти данных.

Каждая линия порта Р3 имеет индивидуальную альтернативную функцию, которая может быть задействована простым обращением к устройству, соединенному с ножкой порта:

Р3.0 RxD – вход последовательного порта (UART);

Р3.1 TxD – выход последовательного порта (UART);

Р3.2 INT0 используется как вход 0 внешнего запроса прерываний;

Р3.3 INT1 используется как вход 1 внешнего запроса прерываний;

Р3.4 Т0 используется как вход счетчика внешних событий 0;

Р3.5 Т1 используется как вход счетчика внешних событий 1;

Р3.6 WR – строб записи во внешнюю память данных;

Р3.7 RD – строб чтения из внешней памяти данных.

пространство данных процессора. К ПЛИС в SDK-1.1 подключены:

Клавиатура.

Линейка светодиодов.

Звуковой излучатель.

16 дискретных портов ввода-вывода.

Таблица 12. Перечень регистров расширителя портов ввода-вывода.

А.3.4 Расширитель портов ввода-вывода в начале восьмой страницы внешней памяти данных.

Далее будет представлен обзор периферийных устройств, подключенных к расширителю портов ввода-вывода, их обозначение на принципиальной электрической схеме стенда SDK-1.1.

А.3.5 Периферийные устройства, подключенные к расширителю портов ввода-вывода А.3.5.1 Матричная клавиатура Клавиатура подключена через расширитель портов ввода-вывода.

Клавиатура организована в виде матрицы 4x4. Доступ к колонкам и рядам организован как чтение/запись определенного регистра ПЛИС (4 бита соответствуют 4 колонкам, другие 4 бита – рядам). Ряды ROW1..ROW подключены к плюсу питания через резисторы. Это обеспечивает наличие логической единицы при отсутствии нажатия (чтение регистра ПЛИС). На столбцы клавиатуры COL1..COL4 подают логический ноль (запись через регистр ПЛИС). При нажатии на кнопку происходит изменение значения сигнала на входе соответствующего ряда с единицы на ноль.

А.3.5.2 Жидкокристаллический индикатор кириллица).

Генератор символов с энергозависимой памятью на 8 пользовательских А.3.5.3 Светодиодные индикаторы ограничивают ток, текущий через порт ввода-вывода и светодиод. В данном случае приблизительный ток можно вычислить по закону Ома: I = U/R, I = 3,3/1000 = 3,3мА. От силы тока зависит яркость горения светодиода. Если ток сделать очень большим, то порт ввода-вывода или светодиод могут выйти из строя.

А.3.5.4 Звукоизлучатель В SDK-1.1 используется пьезоэлектрический звукоизлучатель HPA17A (Z1). Выходы EPMSND0-EPMSND2 подключены к расширителю портов вводавывода (в SDK-1.1R3/R4/R5 сигналы EPMSND0 и EPMSND1 не подключены).

А.3.5.5 Дискретные входы-выходы Дискретные входы-выходы предназначены для ввода и вывода информации, представленной в двоичном виде. Сигнал на входе или выходе дискретного порта может принимать значение логического нуля или единицы. В SDK-1.1 дискретные порты выведены на разъем J3. Эти порты можно использовать для подключения модулей ввода-вывода SDX-0.9 или каких-либо других внешних устройств. Кроме этого, к дискретным входам-выходам подключены DIP-переключатели (SW3), позволяющие задавать фиксированные значения сигналов на входах. По умолчанию все входы притянуты к логической единице (через резисторы на +5В). При замыкании переключателя SW3 на выбранном входе появляется логический ноль.

Дискретные входы-выходы не имеют гальванической изоляции.

Логическому нулю соответствует 0В, а логической единице +5В (уровни TTL).

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



А.3.6 Аналоговый ввод-вывод ADuC812 имеет в своем составе восемь быстродействующих 12-разрядных АЦП и два 12-разрядных ЦАП. Для коррекции зависимости параметров ЦАП и АЦП от температуры в ADuC812 встроен термодатчик. Все входы ЦАП и выходы АЦП выведены на разъем J1. Кроме того, выходы DAC0 и DAC1 можно замкнуть на входы ADC0 и ADC1 с помощью переключателя SW1.

А.3.7 I2C-устройства В стенде SDK-1.1 два устройства подключены по шине IC к микроконтроллеру ADuC812: часы реального времени PCF8583 (U11) и E2PROM AT24C02A (U14).

E2PROM – электрически стираемое перепрограммируемое постоянное запоминающее устройство. Объем памяти E2PROM (AT24C02A, Atmel), установленной в стенде SDK-1.1, составляет 256 байт (2 Кбит).

Основные характеристики:

Возможность перезаписи до 1 млн. раз.

конфигурации размер страницы составляет 8 байт).

Микросхема PCF8583 (Philips) – часы реального времени (часы/календарь) с памятью объемом 256 байт, работающие от кварцевого резонатора с частотой 32,768 кГц. Из 256 байт памяти собственно часами используются только первые 16 (8 постоянно обновляемых регистров-защелок на установку/чтение даты/времени и 8 на будильник), остальные 240 байт доступны для хранения данных пользователя. Точность измерения времени – до сотых долей секунды.

А.3.8 Последовательные и параллельные интерфейсы В качестве примеров последовательных интерфейсов стенда SDK-1. можно назвать последовательный интерфейс RS-232, I2C.

В качестве примеров параллельных интерфейсов (а точнее, последовательно-параллельных) стенда SDK-1.1 можно назвать системную шину, соединяющую микроконтроллер ADuC812 с внешней памятью программ и данных (SRAM) и ПЛИС; интерфейс подключения ЖКИ к ПЛИС.

Основными компонентами контроллера ЖКИ являются память DDRAM (Data Display RAM), память CGRAM (Character Generator RAM), память CGROM (Character Generator ROM), счетчик адреса, регистр команд IR (Instruction Register), регистр данных DR (Data Register). Регистр команд предназначен для записи в него таких операций, как очистка дисплея, перемещение курсора, включение/выключение дисплея, а также установка адреса памяти DDRAM и CGRAM, для последующего их выполнения. Регистр данных временно хранит данные, предназначенные для записи или чтения из DDRAM или CGRAM (символы). Эти два регистра можно выбрать с помощью регистрового переключателя RS (Register Select).

Рис. 123. Принципиальная схема стенда SDK-1.1: ПЛИС и ЖКИ.

Таблица 13. Магистраль информационного канала и управления информационным каналом модуля RS R/W IR используется для внутренних команд (очистка дисплея и т.д.).

Считывание флага занятости (DB7) и счетчика адреса (от DB0 до DB7).

Запись данных в DDRAM или CGRAM (из регистра данных в DDRAM или Чтение данных из DDRAM или CGRAM (из DDRAM или CGRAM в регистр Приложение Б. Комплекс лабораторных работ для учебного лабораторного стенда SDK-1. Б.1 Лабораторная работа № «Дискретные порты ввода-вывода»

Б.1.1 Задание Разработать и реализовать драйверы светодиодных индикаторов и DIPпереключателей контроллера SDK-1.1. Написать тестовую программу с использованием разработанных драйверов по алгоритму, соответствующему варианту задания.

Б.1.2 Порты ввода-вывода Каждый процессор для встраиваемых применений имеет некоторое количество внешних линий ввода-вывода, подключенных к внешним выводам микросхемы и называемых внешними портами. Одиночные (одноразрядные, состоящие из одной линии) порты ввода-вывода объединяются в группы обычно по 4, 8 или 16 линий, которые называются параллельными портами.

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

По типу сигнала различают порты: дискретные (цифровые), аналоговые и перестраиваемые.

Дискретные (цифровые) порты используются для ввода-вывода дискретных значений логического «0» или «1». В большинстве современных процессоров для встраиваемых применений поддерживается как независимое управление каждой линией параллельного порта, так и групповое управление всеми разрядами.

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

Перестраиваемые порты ввода-вывода настраиваются на аналоговый или цифровой режим работы.

Б.1.3 Описание работы В контроллере SDK-1.1 изучение дискретных портов ввода-вывода будет проводиться на примере работы с набором светодиодных индикаторов и DIP1переключателей (см. рис. 125). Данные устройства вывода и ввода, соответственно, подключены к расширителю портов ввода-вывода, который в стенде SDK-1.1 выполнен на базе ПЛИС (программируемая логическая интегральная схема). Для программиста расширитель портов представлен в виде нескольких однобайтовых регистров, находящихся в начале восьмой страницы внешней памяти данных.

По умолчанию линии 0-7 дискретного параллельного порта ПЛИС притянуты к логической «1» (через резисторы на +5В). Для их принудительного «обнуления» в схему введен набор DIP-переключателей (на рис. обозначение «SW3-2»), замыкающих соответствующие линии через резисторы 100 Ом на корпус. Для того чтобы принудительно «обнулить»

соответствующую линию, необходимо установить соответствующий DIPпереключатель в положение «ON».

Рис. 125. Расположение программируемых в лабораторной работе светодиодных индикаторов и DIPпереключателей контроллера SDK-1. Для удобства, двоичный (шестнадцатеричный) код, задаваемый набором DIP-переключателей, выставляется следующим образом: первый переключатель DIP (Dual In-line Package) – тип корпуса микросхем, микросборок и некоторых других электронных компонентов. Имеет прямоугольную форму с двумя рядами выводов по длинным сторонам. Может быть выполнен из пластика (PDIP) или керамики (CDIP). В корпусе DIP могут выпускаться различные полупроводниковые или пассивные компоненты: микросхемы, сборки диодов, транзисторов, резисторов, малогабаритные переключатели.

соответствует младшему (0-му) разряду двоичного кода; восьмой переключатель соответствует старшему (7-му) разряду. При этом единичный разряд в коде – это соответствующий DIP-переключатель в положении «ON», нулевой разряд – это соответствующий DIP-переключатель в положении «OFF».

Рис. 126. Обозначение DIP-переключателей (а) и светодиодных индикаторов (б) на принципиальной При установке DIP-переключателя в положение «ON» напряжение не сразу устанавливается на уровне 0В, а «скачет» в течение некоторого времени (1- мс), пока цепь надежно не замкнется. После того, как DIP-переключатель будет установлен в положение «OFF», напряжение также «скачет», пока не установится на уровне +5В. Такого рода переходные процессы называются дребезгом. Таким образом, при изменении положения DIP-переключателя («ON» «OFF») возникает эффект дребезга, отрицательное влияние которого в данной работе никак не устраняется.

Подробнее эта проблема будет исследоваться в лабораторной работе № «Клавиатура».

Б.1.4 Требования к выполнению работы 1. Все программы должны быть написаны на языке Си.

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

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

4. Для задержек в программе следует использовать пустые циклы (тысячи – десятки тысяч итераций, в зависимости от длительности задержки).

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

6. Текст программы должен соответствовать правилам оформления программ на языке Си, приведенным в приложении (Приложение Г.

Требования к оформлению программ на языке Си, [95]).

Б.1.5 Содержание отчета Блок-схема программы.

Исходный текст программы с комментариями.

Основные результаты.

Б.1.6 Литература Литература к лабораторной работе: [45], [48], [49], [50], [51], [57], [75], [88], [93], [3], [8], [9], [11], [17], [22].

Б.1.7 Варианты заданий Во всех вариантах задания единичный разряд в шестнадцатеричном коде – это соответствующий DIP-переключатель в положении «ON», нулевой разряд – это соответствующий DIP-переключатель в положении «OFF».

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

1. В случае установки на DIP-переключателях кода 0x11 (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться анимация, показанная ниже. Во всех остальных случаях светодиодные индикаторы отражают значение, выставленное на DIPпереключателях.

2. В случае установки на DIP-переключателях кода 0x22 (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться первая анимация, в случае установки кода 0xDD (шестнадцатеричное значение) – вторая анимация. Во всех остальных случаях светодиодные индикаторы отражают инвертированное значение, выставленное на DIPпереключателях.

3. В случае установки на DIP-переключателях кода 0x33 (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться первая анимация, в случае установки кода 0xCC (шестнадцатеричное значение) – вторая анимация. Во всех остальных случаях светодиодные индикаторы отражают значение, выставленное на DIP-переключателях.

4. В случае установки на DIP-переключателях кода 0x44 (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться анимация, показанная ниже. Во всех остальных случаях светодиодные индикаторы отражают инвертированное значение, выставленное на DIP-переключателях.

5. В случае установки на DIP-переключателях кода 0x55 (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться анимация, показанная ниже. Во всех остальных случаях светодиодные индикаторы отражают значение, выставленное на DIPпереключателях.

6. В случае установки на DIP-переключателях кода 0x66 (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться анимация, показанная ниже. Во всех остальных случаях светодиодные индикаторы отражают инвертированное значение, выставленное на DIP-переключателях.

7. В случае установки на DIP-переключателях кода 0x77 (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться анимация, показанная ниже. Во всех остальных случаях светодиодные индикаторы отражают значение, выставленное на DIPпереключателях.

8. В случае установки на DIP-переключателях кода 0xAA (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться анимация, показанная ниже. Во всех остальных случаях светодиодные индикаторы отражают инвертированное значение, выставленное на DIP-переключателях.

9. В случае установки на DIP-переключателях кода 0xBB (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться первая анимация, в случае установки кода 0x44 (шестнадцатеричное значение) – вторая анимация. Во всех остальных случаях светодиодные индикаторы отражают значение, выставленное на DIP-переключателях.

10. В случае установки на DIP-переключателях кода 0xCC (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться анимация, показанная ниже. Во всех остальных случаях светодиодные индикаторы отражают инвертированное значение, выставленное на DIP-переключателях.

Б.2 Лабораторная работа № «Таймеры. Система прерываний»

Б.2.1 Задание Разработать и реализовать драйвер системного таймера микроконтроллера ADuC812. Написать тестовую программу с использованием разработанного драйвера по алгоритму, соответствующему варианту задания.

Б.2.2 Таймеры-счетчики Таймер позволяет производить отсчет временных интервалов заданной продолжительности. Принцип действия таймера основан на двоичном счетчике с возможностью предварительной записи исходного значения. После каждого такта синхросигнала счетчик прибавляет или отнимает единицу от имеющегося у него значения. При достижении нуля (т.е. при переполнении), счетчик вырабатывает активный уровень на выходе. Как правило, выходной сигнал таймера заводят на вход запроса прерывания микропроцессора или контроллера прерываний.

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

Микроконтроллер ADuC812 имеет три программируемых 16-битных таймера/счетчика: таймер 0, таймер 1, таймер 2. Каждый таймер состоит из двух 8-битных регистров THX и TLX. Все три таймера могут быть настроены на работу в режимах «таймер» или «счетчик».

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

В режиме «счетчик» регистр инкрементируется по перепаду из «1» в «0»

внешнего входного сигнала, подаваемого на вывод микроконтроллера T0, T или T2 (см. принципиальную электрическую схему контроллера SDK-1.1).

Когда опрос показывает высокий уровень в текущем машинном цикле и низкий уровень в следующем, счетчик увеличивается на 1. Таким образом, на распознавание периода требуются два машинных цикла, максимальная частота подсчета входных сигналов равна 1/24 частоты кварцевого резонатора. На длительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входной сигнал должен удерживать значение «1», как минимум, в течение одного машинного цикла микроконтроллера.

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

Б.2.3 Описание работы Данная лабораторная работа посвящена изучению таймера и системы прерываний микроконтроллера ADuC812. Основными функциями системного таймера являются: измерение интервалов времени и выполнение периодических задач. В данной работе с помощью таймеров требуется управлять светодиодными индикаторами (динамическая индикация) или звуковым излучателем (проигрывание мелодии), входящими в состав контроллера SDK-1.1.

Драйвер системного таймера должен состоять из двух частей: основной части, находящейся в обработчике прерывания и прикладной части – APIфункций, используемых в программе:

void InitTimer(void) unsigned long GetMsCounter(void) unsigned long DTimeMs(unsigned прошедших с временной метки t0 и до long t0) void DelayMs(unsigned long t) Кроме того, могут быть реализованы функции работы с таймером в режиме «счетчик» (например, чтение счетчика).

Драйвер светодиодных индикаторов/звукового излучателя (зависит от варианта задания) должен быть реализован по тому же принципу, что и драйвер системного таймера. А именно: в обработчике прерывания от таймера должна выполняется сама динамическая индикация/проигрывание мелодии – примеры периодических задач, а через API-функции осуществляется настройка отображения анимации/звука и управление этими процессами.

Б.2.3.1 Пояснения для вариантов заданий с использованием Написать драйвер, позволяющий управлять яркостью свечения линейки светодиодов. Драйвер должен обеспечивать независимое управление яркостью каждого светодиода. Яркость свечения светодиодов должна задаваться в процентах.

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

Внешне меандр представляет собой прямоугольное колебание.

Таким образом, при скважности питающего сигнала равной 1, светодиод будет светиться с максимальной яркостью. При скважности сигнала управления равной 4 (см. рис. 127), светодиод будет светиться с яркостью 25% от максимальной и т.д. Кроме того, нужно стремиться уменьшить период и увеличить частоту сигнала управления, чтобы избежать эффекта мерцания светодиодов.

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

Для управления звуковым излучателем используется регистр ПЛИС ENA (адрес 080004h). 2-4 биты регистра ENA управляют величиной напряжения на динамике, т.е. позволяют задавать громкость звука2: чем больше «единиц»

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

Такая возможность есть только в стендах SDK-1.1 ревизии R1 и R2.

Частоты нот каждой соседней октавы отличаются в 2 раза. Например, частота ноты «ля» второй октавы 880 Гц.

Б.2.4 Особенности обработки прерываний в стенде SDK-1. В микроконтроллере ADuC812 девять источников прерываний с двумя уровнями приоритетов (см. табл. 16). Когда происходит прерывание, значение программного счетчика помещается в стек, а в сам счетчик загружается адрес соответствующего вектора прерывания.

Таблица 16. Адреса векторов прерывания микроконтроллера ADuC Для каждого источника прерывания программист может задать один из двух уровней приоритета: высокий и низкий. Прерывание с высоким уровнем приоритета может прерывать обслуживание прерывания с низким уровнем приоритета, а если прерывания с разными уровнями происходят одновременно, то прерывание с высоким приоритетом будет обслужено первым. Обслуживание прерывания не может быть прервано прерыванием с таким же уровнем приоритета. Если два прерывания с одинаковым уровнем приоритета происходят одновременно, то порядок их обработки определяется с помощью следующей табл. 17:

Таблица 17. Порядок обработки прерываний с одинаковым уровнем приоритета TF2+EXF Прерывания ADuC812 имеют вектора в диапазоне 0003h-0043h, которые попадают в область младших адресов памяти программ. Это пространство соответствует 8Кб (0000h-2000h) FLASH-памяти.

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

Проблема использования прерываний в пользовательских программах решается следующим образом (см. рис. 128):

1. По адресам (0003h-0043h) векторов прерываний во FLASH-памяти пользовательской таблицы, размещенной в адресах 2003h-2043h.

2. По адресам векторов пользовательской таблицы пользователем указываются команды переходов на процедуры обработки прерываний.

Приведем пример помещения собственного вектора в пользовательскую таблицу. Программа использует прерывание от таймера 0 (прерывание 0Bh) для зажигания линейки светодиодов. Данный пример адаптирован для компилятора SDCC. По сравнению с компилятором Keil C51 изменения коснулись функции SetVector (в связи с тем, что компилятор SDCC и микроконтроллер ADuC используют различные способы записи многобайтовых чисел в памяти; SDCC – little-endian, ADuC812 – big-endian) и заголовка функции обработчика прерывания (T0_ISR).

#include "aduc812.h" ///////////////////////// WriteMax /////////////////////////// // Запись байта в регистр ПЛИС // Вход:

// regnum – адрес регистра ПЛИС, // val – записываемое значение.

// Выход: нет.

// Результат: нет.

////////////////////////////////////////////////////////////// void WriteMax (unsigned char xdata *regnum, unsigned char val) // Сохранение текущего значения регистра страниц unsigned char oldDPP = DPP;

DPP = MAXBASE; // Установка адреса страницы ПЛИС *regnum = val; // Запись значения в регистр ПЛИС DPP = oldDPP; // Восстановление сохраненного значения //////////////////////// WriteLED /////////////////////////// // Функция установки состояния линейки светодиодов.

// Вход:

// value – состояния светодиодов.

// Выход: нет.

// Результат: нет.

////////////////////////////////////////////////////////////// void WriteLED(unsigned char value) // Запись состояния светодиодов в регистр 7-й регистр ПЛИС WriteMax( 7, value );

//////////////////////// T0_ISR ////////////////////////////// // Обработчик прерывания от таймера 0.

// Вход: нет.

// Выход: нет.

// Результат: нет.

////////////////////////////////////////////////////////////// void T0_ISR( void ) interrupt ( 1 ) WriteLED( 0x55 ); // Зажигание светодиодов (через один) //////////////////////// SetVector ////////////////////////// // Функция, устанавливающая вектор прерывания в // пользовательской таблице прерываний.

// Вход:

// Vector – адрес обработчика прерывания, // Address – вектор пользовательской таблицы прерываний.

// Выход: нет.

// Результат: нет.

////////////////////////////////////////////////////////////// void SetVector(unsigned char xdata * Address, void * Vector) unsigned char xdata * TmpVector; // Временная переменная // Первым байтом по указанному адресу записывается // код команды передачи управления ljmp, равный 02h *Address = 0x02;

// Далее записывается адрес перехода Vector TmpVector = (unsigned char xdata *) (Address + 1);

*TmpVector = (unsigned char) ((unsigned short)Vector >> 8);

*TmpVector = (unsigned char) Vector;

// Таким образом, по адресу Address теперь // располагается инструкция ljmp Vector //////////////////////// Main //////////////////////////////// // Главная функция ////////////////////////////////////////////////////////////// void main( void ) TH0 = 0xFF; // Инициализация таймера // Установка вектора в пользовательской таблице SetVector( 0x200B, (void *)T0_ISR );

// Разрешение прерываний от таймера В ходе выполнения лабораторной работы производится ознакомление с организацией и принципом работы не только таймеров/счетчиков по прерываниям, но и внешних прерываний INT0/INT1. Необходимо отметить, что в случае последних возможны следующие настройки: по перепаду (фронт или спад напряжения) или по уровню напряжения на внешнем входе. В контроллере SDK-1.1 линии счетного входа таймера/счетчика 0/1 (T0/1) и внешних прерываний INT0/INT1 выведены на DIP-переключатели SW3-1 (см. рис. 129).

Рис. 129. Расположение линий T0/1 и INT0/1 МК ADuC812 (справа) и их вывод на DIP-переключатели (слева) на принципиальной электрической схеме контроллера SDK-1. Необходимо настроить внешнее прерывание INT0/1 так, чтобы оно работало по спаду, а не по уровню (регистр специального назначения TCON).

Для корректной работы внешнего прерывания INT0 5-й бит регистра управления ENA (адрес 0x080004 ПЛИС) должен быть равен 1.

Б.2.5 Требования к выполнению работы 1. Все программы должны быть написаны на языке Си.

2. Разрабатываемые драйверы устройств должны быть выполнены в виде отдельных программных модулей (файлов), содержащих функции по работе с заданным одним устройством.

3. В программе должны быть использованы механизмы взаимного исключения (см. [51], IOS2003_lab4.pdf).

4. В варианте задания с использованием светодиодов представлен лишь фрагмент анимации, при этом все анимации являются циклическими.

По приведенному фрагменту требуется определить алгоритм анимации и реализовать его. Смена яркости свечения светодиодов должна быть плавной, без видимых «рывков» и эффекта «мерцания».

5. Текст программы должен соответствовать правилам оформления программ на языке Си, приведенным в приложении (Приложение Г.

Требования к оформлению программ на языке Си, [95]).

Б.2.6 Содержание отчета 1. Титульный лист.

2. Задание.

3. Модель взаимодействия прикладной программы, прикладной части драйверов и системной части драйверов.

4. Исходный текст программы с комментариями.

5. Основные результаты.

Б.2.7 Литература Литература к лабораторной работе: [45], [48], [49], [50], [51], [57], [75], [88], [93], [3], [8], [9], [11], [17], [22].

Б.2.8 Варианты заданий 1. Контроллер SDK-1.1 на линейку светодиодов циклически отображает приведенную ниже анимацию или выводит количество замыканий входа T0 (счетный вход таймера 0 на рис.

129). Подсчет количества замыканий входа должен быть реализован с помощью таймерасчетчика 0. Смена режима отображения производится по поступлению сигнала внешнего прерывания INT0 (рис. 129). В анимации должны использоваться не менее 6 градаций яркости свечения светодиодов (например, 0%, 20%, 40%, 60%, 80% и 100%). В результате выполнения работы должны быть разработаны драйверы системного таймера, таймерасчетчика, светодиодных индикаторов, внешнего прерывания.

2. Контроллер SDK-1.1 циклически проигрывает восходящую гамму нот первой октавы (длительность каждой ноты – 1 секунда) и на линейку светодиодов выводит количество замыканий входа T0 (счетный вход таймера 0 на рис. 129). Подсчет количества замыканий входа должен быть реализован с помощью таймера-счетчика 0. В результате выполнения работы должны быть разработаны драйверы системного таймера, таймерасчетчика, звукового излучателя, светодиодных индикаторов.

3. Контроллер SDK-1.1 на линейку светодиодов циклически отображает приведенную ниже анимацию или выводит количество замыканий входа T1 (счетный вход таймера 1 на рис.

129). Подсчет количества замыканий входа должен быть реализован с помощью таймерасчетчика 1. Смена режима отображения производится по поступлению сигнала внешнего прерывания INT1 (рис. 129). В анимации должны использоваться не менее 6 градаций яркости свечения светодиодов (например, 0%, 20%, 40%, 60%, 80% и 100%). В результате выполнения работы должны быть разработаны драйверы системного таймера, таймерасчетчика, светодиодных индикаторов, внешнего прерывания.

4. Контроллер SDK-1.1 циклически проигрывает нисходящую гамму нот второй октавы (длительность каждой ноты – 1 секунда) и на линейку светодиодов выводит количество замыканий входа T1 (счетный вход таймера 1 на рис. 129). Подсчет количества замыканий входа должен быть реализован с помощью таймера-счетчика 1. В результате выполнения работы должны быть разработаны драйверы системного таймера, таймерасчетчика, звукового излучателя, светодиодных индикаторов.

5. Контроллер SDK-1.1 на линейку светодиодов циклически отображает приведенную ниже анимацию или выводит количество замыканий входа T0 (счетный вход таймера 0 на рис.

129). Подсчет количества замыканий входа должен быть реализован с помощью таймерасчетчика 0. Смена режима отображения производится по поступлению сигнала внешнего прерывания INT1 (рис. 129). В анимации должны использоваться не менее 6 градаций яркости свечения светодиодов (например, 0%, 20%, 40%, 60%, 80% и 100%). В результате выполнения работы должны быть разработаны драйверы системного таймера, таймерасчетчика, светодиодных индикаторов, внешнего прерывания.

6. Контроллер SDK-1.1 циклически проигрывает восходящую гамму нот первой октавы (длительность каждой ноты – 0,5 секунды) и на линейку светодиодов выводит количество замыканий входа INT0 (линия внешнего прерывания INT0 на рис. 129). В результате выполнения работы должны быть разработаны драйверы системного таймера, звукового излучателя, светодиодных индикаторов, счетчика срабатываний внешнего прерывания.

7. Контроллер SDK-1.1 на линейку светодиодов циклически отображает приведенную ниже анимацию или выводит количество замыканий входа T1 (счетный вход таймера 1 на рис.

129). Подсчет количества замыканий входа должен быть реализован с помощью таймерасчетчика 1. Смена режима отображения производится по поступлению сигнала внешнего прерывания INT0 (рис. 129). В анимации должны использоваться не менее 6 градаций яркости свечения светодиодов (например, 0%, 20%, 40%, 60%, 80% и 100%). В результате выполнения работы должны быть разработаны драйверы системного таймера, таймерасчетчика, светодиодных индикаторов, внешнего прерывания.

8. Контроллер SDK-1.1 циклически проигрывает нисходящую гамму нот второй октавы (длительность каждой ноты – 0,5 секунды) и на линейку светодиодов выводит количество замыканий входа INT1 (линия внешнего прерывания INT1 на рис. 129). В результате выполнения работы должны быть разработаны драйверы системного таймера, звукового излучателя, светодиодных индикаторов, счетчика срабатываний внешнего прерывания.

Б.3 Лабораторная работа № «Последовательный интерфейс RS-232. UART»

Б.3.1 Задание Разработать и написать драйверы последовательного канала для учебнолабораторного стенда SDK-1.1 с использованием и без использования прерываний. Написать тестовую программу для разработанных драйверов, которая выполняет определенную вариантом задачу.

Б.3.2 Особенности последовательного интерфейса в микроконтроллере с Последовательный порт в микроконтроллерах MCS-51 позволяет осуществлять последовательный дуплексный ввод-вывод в синхронном и асинхронном режимах с разными скоростями обмена. Помимо обычного вводавывода, в нем предусмотрена аппаратная поддержка взаимодействия нескольких микроконтроллеров.

Схематически контроллер последовательного порта представлен на рис.

130. Как видно из рисунка, регистр SBUF, доступный пользователю для чтения и записи, есть на самом деле два регистра, в один из которых можно только записывать, а из другого – читать. Контроллер позволяет дуплексный обмен данными, т.е. одновременно может передавать и принимать информацию по линиям TxD (P3.1) и RxD (P3.0) соответственно.

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

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

Прием осуществляется в обратном порядке: после начала процесса приема принятые биты данных последовательно сдвигаются в сдвиговом регистре, пока не будет принято их установленное количество, затем содержимое сдвигового регистра переписывается в SBUF и устанавливается флаг RI. После этого возможен прием следующей последовательности бит. Необходимо отметить, что запись принятого байта из сдвигового регистра в SBUF происходит только при условии, что RI=0, поэтому при заборе пользовательской программой очередного байта из SBUF ей необходимо сбрасывать этот флаг, иначе принятый в сдвиговый регистр, но не записанный в SBUF, следующий байт будет безвозвратно утерян.

Контроллер последовательного порта может работать в одном из четырех режимов (один синхронный и три асинхронных), различающихся скоростями обмена (бод) и количеством передаваемых/принимаемых бит:

Режим 0 (синхронный): данные передаются и принимаются через RxD, TxD является синхронизирующим (выдает импульсы сдвига). Скорость в этом режиме фиксирована (1/12 частоты тактового генератора).

Режим 1 (8 бит данных, асинхронный, переменная скорость).

Передаются 10 бит: старт-бит, 8 бит данных (SBUF) и стоп-бит.

Режим 2 (9 бит данных, асинхронный, фиксированная скорость).

Передаются 11 бит: старт-бит, 8 бит (SBUF), бит TB8/RB (посылка/прием соответственно) и 1 стоп-бит. Биты TB8 и RB содержатся в регистре SCON (биты 3 и 2 соответственно), первый устанавливается программно, а второй содержит 9-й бит принятой комбинации. С помощью них можно организовать, например, контроль четности или обмен с двумя стоп-битами.

Режим 3 (9 бит данных, асинхронный, переменная скорость). То же, что и режим 2, только скорость обмена переменная.

В режиме 1 и 3 используются Таймер 0 и/или Таймер 1 для настройки скорости обмена.

Б.3.3 Организация буферизированного последовательного ввода-вывода в стенде SDK-1. В микроконтроллере ADuC812 прерывание от последовательного канала имеет номер 4, адрес-вектор 0x23 и генерируется контроллером последовательного порта во время установки флага TI или RI. Чтобы разрешить это прерывание, нужно установить биты ES и EA регистра IEN0.

Управление обработчику прерывания передается тогда, когда UART либо готов к передаче очередного байта (TI=1), либо принял байт из канала (RI=1).

При использовании этой схемы появляется проблема посылки первого байта.

Пусть прикладная программа желает послать байт, когда очередь WFIFO пуста и в порт данные не записывались длительное время (TI=0). Так как обработчик прерываний, обслуживающий очередь, вызывается только при установленных флагах RI или TI, прикладной программе придется либо самой записать первый байт в SBUF (начав тем самым процесс передачи), либо, записав байты для передачи в очередь WFIFO, искусственно установить флаг TI (вызвав тем самым обработчик, который обслужит очередь). Проблема разрешима, однако при ее решении необходимо учитывать, что TI также сброшен, когда контроллер занят посылкой байта, даже если очередь (WFIFO) пуста (посылка последнего байта в очереди).

Б.3.4 Организация программы На рис. 132 изображены основные компоненты программы, которая должна быть результатом выполнения задания: драйвер последовательного канала; разборщик/преобразователь данных, переданных (принятых) по UART;

пользовательский процесс, в котором выполняется прикладная задача.

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

Драйвер последовательного канала по прерыванию состоит из функции инициализации UART, обработчика прерывания от UART, циклических буферов чтения и записи, API-функций: чтения байта из последовательного канала и записи байта в последовательный канал. Взаимодействие обработчика и APIфункций осуществляется только через буфер. Обработчик взаимодействует с последовательным каналом напрямую. Если прерывание вызвано приходом байта по последовательному каналу, то обработчик записывает байт в буфер чтения RFIFO. Если прерывание вызвано окончанием передачи, то обработчик проверяет состояние буфера записи WFIFO, и, если он не пуст, считывает и пересылает следующий байт.

Рис. 133. Компоненты драйвера последовательного канала, организующего обмен данными по Функция чтения байта ReadUART() проверяет состояние буфера RFIFO, и если он не пуст, считывает из него байт. Функция WriteUART() записывает байт в буфер записи последовательного канала WFIFO. Если до записи буфер был пуст, необходимо аппаратно вызвать обработчик прерывания, чтобы инициировать передачу данных. В случае, когда к моменту записи в буфере уже находятся какие-либо данные, обработчик вызывать не надо, так как запись была инициирована раньше и в данный момент последовательный канал занят передачей данных, записанных в буфер ранее.

Принятые при помощи драйвера UART данные требуют обработки в соответствии с вариантом задания: смена нижнего регистра на верхний, фильтрация только по числовым или буквенным значениям, по количеству вводимых значений и др. Таким образом, требуется написать функцию (разборщик/преобразователь), которая будет отфильтровывать значения, неудовлетворяющие заданному алфавиту корректных символов. Далее над отфильтрованными данными производится указанная в варианте задания операция: арифметическое действие или конвертирование. Обработка ошибок в разборщике/преобразователе и прикладном алгоритме тоже должна быть предусмотрена.

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

Б.3.5 Организация обработчика прерывания UART Окончание передачи байта и окончание приема байта по последовательному каналу вызывают одно и тоже прерывание и в обработчике два этих прерывания различаются программно. Обработчик логически разделен на две части: одна работает при установленном флаге RI (окончание приема), а другая при установленном флаге TI (окончание передачи). Ниже приведен шаблон обработчика прерывания последовательного канала:

//////////////////////// SIO_ISR ////////////////////////////// // Обработчик прерывания UART.

// Вход: нет.

// Выход: нет.

// Результат: нет.

////////////////////////////////////////////////////////////// void SIO_ISR( void ) interrupt ( 4 ) // Читаем WFIFO (буфер передачи) и записываем его в SBUF // Читаем SBUF и записываем его в RFIFO (буфер приема) Кроме того, функция SetVector должна быть такой (см. лабораторную работу № 2):

//////////////////////// SetVector ////////////////////////// // Функция, устанавливающая вектор прерывания в // пользовательской таблице прерываний.

// Vector – адрес обработчика прерывания, // Address – вектор пользовательской таблицы прерываний.

// Выход: нет.

// Результат: нет.

////////////////////////////////////////////////////////////// void SetVector(unsigned char xdata * Address, void * Vector) unsigned char xdata * TmpVector;

TmpVector = (unsigned char xdata *) (Address + 1);

*TmpVector = (unsigned char) ((unsigned short)Vector >> 8);

*TmpVector = (unsigned char) Vector;

Б.3.6 Описание работы Данная лабораторная работа посвящена изучению организации и принципов работы контроллера последовательного канала UART микроконтроллера ADuC812 стенда SDK-1.1.

В рамках лабораторной работы необходимо разработать программу для контроллера SDK-1.1 (ведомый), который обменивается данными с персональным компьютером (ведущий). В качестве канала связи используется последовательный канал RS-232. На стороне персонального компьютера имеется инструментальное средство для обеспечения взаимодействия с SDK-1. – это терминальная программа M3P. С описанием инструментальной системы (G)M3P можно ознакомиться в соответствующем руководстве пользователя.

Программа должна выполнять две задачи в соответствии с вариантом задания. Первая задача выполняется при помощи драйвера последовательного канала, работающего по опросу, – это реализация так называемого эха: со стороны персонального компьютера передаются символы контроллеру SDK-1.1, на которые контроллер отвечает определенным образом (см. вариант задания).

Вторая задача выполняется при помощи драйвера последовательного канала, реализованного в режиме прерываний с буферизацией байтов в буфере FIFO (см. [51], IOS2003_lab4.pdf). Такой задачей является реализация устройства, которое выполняет одну арифметическую операцию над десятичными числами, или конвертора из одной системы счисления в другую. Переключение между двумя задачами в программе должно быть выполнено с использованием DIPпереключателей (лабораторная работа № 1).

Рекомендации к выполнению работы:

1. Написать драйвер последовательного канала по опросу и простую тестовую программу для него.

2. Написать драйвер последовательного канала, осуществляющий асинхронный обмен данными по прерыванию, и отладить при помощи уже написанной тестовой программы (см. п. 1).

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

Б.3.7 Требования к выполнению работы 1. В тестовой программе должна быть продемонстрирована работа с последовательным интерфейсом и по опросу, и асинхронно по прерыванию, т.е. должны быть реализованы и использованы драйверы UART двух видов для решения двух разных задач, указанных в варианте 2. Разрабатываемые драйверы устройств должны быть выполнены в виде отдельных программных модулей (файлов), содержащих функции по работе с заданным одним устройством.

3. Должен быть предусмотрен контроль ввода корректных значений, выполнения арифметических действий в рамках второй задачи 4. В программе должны быть использованы механизмы взаимного исключения (см. [51], IOS2003_lab4.pdf).

5. Текст программы должен соответствовать правилам оформления программ на языке Си, приведенным в приложении (Приложение Г.

Требования к оформлению программ на языке Си, [95]).

Б.3.8 Содержание отчета 1. Титульный лист.

2. Номер варианта, задание.

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

4. Исходный текст программы с комментариями.

5. Основные результаты.

Б.3.9 Литература Литература к лабораторной работе: [37], [38], [50], [51], [54], [75], [88], [3].

Б.3.10 Варианты заданий Каждый вариант состоит из двух частей: первая выполняется с использованием драйвера последовательного канала по опросу, вторая – по прерыванию. Переключение между двумя частями в тестовой программе должно быть выполнено с использованием DIP-переключателей (лабораторная работа № 1).

1. Скорость последовательного канала – 9600 бит/с.

Каждый принятый по последовательному каналу символ (от персонального компьютера к SDK-1.1) передается в утроенном виде в обратную сторону (от SDK-1.1 к персональному компьютеру) и отображается в терминальной программе.

Причем все символы русского алфавита отображаются в нижнем регистре, все символы английского алфавита – в верхнем регистре. Например, на символ л‘ (Л‘) ответом является ллл‘, 1‘ – 111‘, i‘ (I‘) – III‘ и т.д.

Конвертор из десятичной в двоичную систему счисления. Диапазон преобразуемых значений – от 010 до 25510 включительно. 8-разрядная сетка для отображения двоичных чисел. Контроллеру SDK-1.1 по последовательному каналу со стороны персонального компьютера с использованием терминальной программы передается десятичное число для конвертирования, причем число это отображается в терминале, а концом ввода является перевод на следующую строку ().

После чего контроллер возвращает результат преобразования числа в двоичную систему счисления, который отображается в терминале персонального компьютера и на светодиодных индикаторах стенда SDK-1.1 (лабораторная работа № 1). Каждое новое преобразование начинается с новой строки. Сигнализация в случае ввода некорректных значений – сообщение об ошибке в последовательный канал.

2. Скорость последовательного канала – 9600 бит/с.

Со стороны персонального компьютера с использованием терминальной программы контроллеру SDK-1.1 по последовательному каналу передается любой символ русского алфавита в любом регистре (а‘, Б‘, в‘,…, Я‘). В ответ контроллер SDK-1.1 передает принятый символ в верхнем регистре и 5 символов русского алфавита, следующих за введенным, в нижнем регистре. Все остальные вводимые символы игнорируются контроллером SDK-1.1. Например, на символ к‘ (или К‘) ответом является Клмноп‘, у‘ (У‘) – Уфхцчш‘, э‘ (Э‘) – Эюя‘ и т.д. Каждому обмену данными между персональным компьютером и стендом SDK-1.1 назначается Сумматор десятичных чисел. Диапазон значений слагаемых – от 010 до включительно. Контроллеру SDK-1.1 по последовательному каналу со стороны персонального компьютера с использованием терминальной программы передаются два слагаемых (десятичные числа), причем разделителем слагаемых является символ сложения (+‘), концом ввода является символ равенства (=), получившееся выражение отображается в терминале персонального компьютера. После чего контроллер возвращает результат сложения, который отображается в терминале.

Каждое новое выражение начинается с новой строки. Сигнализация в случае ввода некорректных значений – сообщение об ошибке в последовательный канал.

3. Скорость последовательного канала – 4800 бит/с.

Со стороны персонального компьютера с использованием терминальной программы контроллеру SDK-1.1 по последовательному каналу передается любой символ английского алфавита в нижнем регистре (a‘, b‘, c‘,…, z‘). В ответ контроллер SDK-1.1 передает принятый символ в нижнем регистре и 5 символов английского алфавита, следующих за введенным, в верхнем регистре. Все остальные вводимые символы игнорируются контроллером SDK-1.1. Например, на символ u‘ ответом является uVWXYZ‘, m‘ – mNOPQRS‘, w‘ – wXYZ‘ и т.д. Каждому обмену данными между персональным компьютером и стендом SDK-1.1 назначается отдельная строка.

Конвертор из шестнадцатеричной в двоичную систему счисления. Диапазон преобразуемых значений – от 016 до FF16 включительно. 8-разрядная сетка для отображения двоичных чисел. Контроллеру SDK-1.1 по последовательному каналу со стороны персонального компьютера с использованием терминальной программы передается шестнадцатеричное число для конвертирования, причем число это отображается в терминале, а концом ввода является перевод на следующую строку (). После чего контроллер возвращает результат преобразования числа в двоичную систему счисления, который отображается в терминале персонального компьютера и на светодиодных индикаторах стенда SDK-1.1 (лабораторная работа № 1). Каждое новое преобразование начинается с новой строки. Сигнализация в случае ввода некорректных значений – сообщение об ошибке в последовательный 4. Скорость последовательного канала – 4800 бит/с.

На каждый принятый по последовательному каналу символ (от персонального компьютера к SDK-1.1) в ответ передается этот же символ и 2 следующих за ним символа согласно таблице ASCII (от SDK-1.1 к персональному компьютеру) и отображается в терминальной программе. Причем все символы русского алфавита отображаются в верхнем регистре, все символы английского алфавита – в нижнем регистре. Например, на символ л‘ (Л‘) ответом является ЛМН‘, 1‘ – 123‘, i‘ (I‘) Вычитатель десятичных чисел. Диапазон значений уменьшаемого и вычитаемого – от 010 до 9910 включительно. Разность может быть как положительной, так и отрицательной. Контроллеру SDK-1.1 по последовательному каналу со стороны персонального компьютера с использованием терминальной программы передаются уменьшаемое и вычитаемое (десятичные числа), причем разделителем введенных значений является символ вычитания (-‘), концом ввода является символ равенства (=), получившееся выражение отображается в терминале персонального компьютера. После чего контроллер возвращает результат операции, который отображается в терминале. Каждое новое выражение начинается с новой строки.

Сигнализация в случае ввода некорректных значений – сообщение об ошибке в последовательный канал.

5. Скорость последовательного канала – 1200 бит/с.

Со стороны персонального компьютера с использованием терминальной программы контроллеру SDK-1.1 по последовательному каналу передается любой числовой символ (0‘, 1‘, 2‘,…, 9‘). В ответ контроллер SDK-1.1 передает принятый символ и все остальные числовые символы, следующие за введенным. Все остальные вводимые символы игнорируются контроллером SDK-1.1. Например, на символ 4‘ ответом является 456789‘, 8‘ – 89‘, 1‘ – 123456789‘ и т.д. Каждому обмену данными между персональным компьютером и стендом SDK-1.1 назначается отдельная строка.

Конвертор из десятичной в шестнадцатеричную систему счисления. Диапазон преобразуемых значений – от 010 до 25510 включительно. Контроллеру SDK-1.1 по последовательному каналу со стороны персонального компьютера с использованием терминальной программы передается десятичное число для конвертирования, причем число это отображается в терминале, а концом ввода является перевод на следующую строку (). После чего контроллер возвращает результат преобразования числа в шестнадцатеричную систему счисления, который отображается в терминале персонального компьютера. Каждое новое преобразование начинается с новой строки. Сигнализация в случае ввода некорректных значений – сообщение об ошибке в последовательный канал и зажигание светодиодов (лабораторная работа № 1).

6. Скорость последовательного канала – 1200 бит/с.

На каждый принятый по последовательному каналу символ (от персонального компьютера к SDK-1.1) в ответ передается этот же символ и 2 предшествующих ему символа согласно таблице ASCII (от SDK-1.1 к персональному компьютеру) и отображается в терминальной программе. Причем все символы русского алфавита отображаются в верхнем регистре, все символы английского алфавита – в нижнем регистре. Например, на символ л‘ (Л‘) ответом является ЛКЙ‘, 5‘ – 543‘, i‘ (I‘) – Умножитель десятичных чисел. Диапазон значений множителей – от 010 до включительно. Контроллеру SDK-1.1 по последовательному каналу со стороны персонального компьютера с использованием терминальной программы передаются множители (десятичные числа), причем разделителем введенных значений является символ умножения (*‘), концом ввода является символ равенства (=), получившееся выражение отображается в терминале персонального компьютера.

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

7. Скорость последовательного канала – 2400 бит/с.

Со стороны персонального компьютера с использованием терминальной программы контроллеру SDK-1.1 по последовательному каналу передается любой символ английского алфавита в нижнем регистре (a‘, b‘, c‘,…, z‘). В ответ контроллер SDK-1.1 передает принятый символ в нижнем регистре и все символы английского алфавита, предшествующие введенному, в верхнем регистре. Все остальные вводимые символы игнорируются контроллером SDK-1.1. Например, на символ f‘ ответом является fEDCBA‘, j‘ – jIHGFEDCBA‘, p‘ – pONMLKJIHGFEDCBA‘ и т.д. Каждому обмену данными между персональным компьютером и стендом SDK-1.1 назначается отдельная строка.

Конвертор из шестнадцатеричной в десятичную систему счисления. Диапазон преобразуемых значений – от 016 до FF16 включительно. Контроллеру SDK-1.1 по последовательному каналу со стороны персонального компьютера с использованием терминальной программы передается шестнадцатеричное число для конвертирования, причем число это отображается в терминале, а концом ввода является перевод на следующую строку (). После чего контроллер возвращает результат преобразования числа в десятичную систему счисления, который отображается в терминале персонального компьютера. Каждое новое преобразование начинается с новой строки. Сигнализация в случае ввода некорректных значений – сообщение об ошибке в последовательный канал и зажигание светодиодов (лабораторная работа № 1).

8. Скорость последовательного канала – 2400 бит/с.

Со стороны персонального компьютера с использованием терминальной программы контроллеру SDK-1.1 по последовательному каналу передается любой числовой символ (0‘, 1‘, 2‘,…, 9‘). В ответ контроллер SDK-1.1 передает принятый символ и все остальные числовые символы, предшествующие введенному. Все остальные вводимые символы игнорируются контроллером SDK-1.1. Например, на символ 4‘ ответом является 43210‘, 8‘ – 876543210‘, 1‘ – 10‘ и т.д. Каждому обмену данными между персональным компьютером и стендом SDK-1.1 назначается отдельная строка.

Целочисленный делитель десятичных чисел. Диапазон значений делимого и делителя – от 010 до 9910 включительно. Контроллеру SDK-1.1 по последовательному каналу со стороны персонального компьютера с использованием терминальной программы передаются делимое и делитель (десятичные числа), причем разделителем введенных значений является символ деления (/‘), концом ввода является символ равенства (=), получившееся выражение отображается в терминале персонального компьютера. После чего контроллер возвращает частное, которое отображается в терминале. Каждое новое выражение начинается с новой строки. Сигнализация в случае ввода некорректных значений – сообщение об ошибке в последовательный канал и зажигание светодиодов (лабораторная работа № Б.4 Лабораторная работа № 4 «Клавиатура»

Б.4.1 Задание Разработать и написать драйвер клавиатуры для учебно-лабораторного стенда SDK-1.1. Написать тестовую программу для разработанного драйвера, которая выполняет определенную вариантом задачу.

Б.4.2 Матричная клавиатура Нередко во встраиваемой технике предусмотрен ввод данных с использованием кнопок, переключателей или других контактных групп. Но простое подключение контактных групп к линиям ввода/вывода микроконтроллера может породить проблему нехватки этих самых линий, если таких контактных групп много. Решение проблемы есть – это использование матричной клавиатуры.

Рис. 134. Схема матричной клавиатуры контроллера SDK-1. Клавиатура в контроллере SDK-1.1 подключена к микроконтроллеру ADuC812 через расширитель портов ввода-вывода (ПЛИС). Схема клавиатурной матрицы представлена на рис. 134. Кнопки включены таким образом, что при нажатии кнопка замыкает строку на столбец. Из схемы видно, что часть линий ПЛИС используется в качестве сканирующих (столбцы), а часть в качестве считывающих (строки). Количество кнопок, подключенных таким образом, определяется как количество сканирующих линий, умноженное на количество считывающих. Отсюда следует, что использование матричной клавиатуры для случая, когда кнопок меньше или равно четырем, не имеет смысла, так как понадобятся те же четыре линии, а схема и программа усложнятся. Доступ к столбцам и строкам клавиатуры организован как чтение/запись регистра ПЛИС (адрес 0х080000): младшие 4 бита соответствуют 4 столбцам (COL1..COL4), старшие 4 бита – строкам (ROW1..ROW4).

Как это работает? Линии сканирующего порта (столбцы) по умолчанию находятся в состоянии, когда на всех линиях, кроме одной, установлен высокий логический уровень. Линия, на которой установлен низкий логический уровень, является опрашиваемой в текущий момент, т.е. определяет опрашиваемый столбец. Если какая-либо кнопка этого столбца будет нажата, на соответствующей линии считывающего порта (строке) также будет низкий логический уровень, потому что замкнутая кнопка подтянет строку к потенциалу столбца, т.е. к земле. Если известен номер опрашиваемого столбца и номера линий считывающего порта, на которых установлен логический «0», можно однозначно определить, какие кнопки этого столбца нажаты.

Далее выбирается следующий опрашиваемый столбец путем установки логического «0» на соответствующей линии сканирующего порта и со считывающего порта снова снимаются данные. Цикл сканирования продолжается до тех пор, пока не будут перебраны таким образом все сканирующие линии. Традиционным решением является помещение процедуры опроса клавиатуры в обработчик прерывания от таймера. В контроллере SDKесть еще другая возможность. В полной конфигурации ПЛИС работа с клавиатурой может быть организована по прерыванию: 6-й бит (KB) регистра ENA заведен на вход внешнего прерывания INT0 МК ADuC812. Внешнее прерывание будет возникать, как только на клавиатуре будет нажата хоть одна клавиша (любая).

Для случая, когда одновременно нажато несколько кнопок одного столбца все понятно. Будет установлено в логический «0» несколько битов считывающего порта одновременно. Но что произойдет, если будут замкнуты контакты нескольких кнопок из разных столбцов одной строки? Ведь в разных столбцах могут оказаться разные напряжения, так как на всех столбцах, кроме одного, логическая «1». Одновременное нажатие двух кнопок в одной строке привело бы к короткому замыканию и выжженным портам, если бы не диоды D3-D6 (рис. 134, рис. 135). Именно они защищают порты от короткого замыкания.

Резисторы RP5 на схеме являются подтягивающими. Если используемый микроконтроллер (в нашем случае используется ПЛИС) имеет в своем составе подтягивающие резисторы, от них можно отказаться.

Рис. 135. Матричная клавиатура на принципиальной электрической схеме SDK-1. При работе с механическими кнопками возникает одна проблема – дребезг контактов. Суть его в том, что при нажатии на кнопку напряжение не сразу устанавливается на уровне 0В, а «скачет» в течение некоторого времени (десятки миллисекунд), пока цепь надежно не замкнется. После того, как кнопка будет отпущена, напряжение также «скачет», пока не установится на уровне логической «1» (рис. 136). Такое многократное замыкание/размыкание контактов вызвано тем, что контакты пружинят, обгорают и тому подобное.

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

У приведенной схемы клавиатурной матрицы есть недостаток – эффект фантомного нажатия кнопки, который проявляется следующим образом: при нажатии определенной группы кнопок ПЛИС (микроконтроллер) считает еще несколько кнопок нажатыми, хотя никто этого не делал. На рис. 137 синими квадратами обозначены линии, на которых присутствует низкий логический уровень. Соответственно, красными квадратами обозначены линии с высоким логическим уровнем. В замкнутом состоянии находятся кнопки PB1, PB5 и PB6. В текущий момент сканируется столбец COL1, так как на выводе 85 ПЛИС присутствует низкий логический уровень, а на всех остальных сканирующих линиях высокий. В столбце COL1 в замкнутом состоянии находится только одна кнопка – PB1, и она подтягивает всю строку ROW2 к земле. Прочитав низкий логический уровень на линии ROW2, микроконтроллер через ПЛИС определит, что кнопка PB1 нажата, и это нормально. Однако в строке ROW есть еще одна нажатая кнопка – PB5. Она расположена в столбце COL2, а это значит, что и весь этот столбец окажется подтянутым к нулю. Сам по себе этот факт был бы не страшен, если бы в столбце COL2 не оказалась нажатой еще одна кнопка – PB6. Вот тут-то и начинаются неприятности. Эта кнопка подтянет к земле строку ROW3. Микроконтроллер через ПЛИС, прочитав со строки ROW3 низкий логический уровень, распознает кнопку PB2 нажатой (напомню, идет сканирование столбца COL1), а ее никто не нажимал.

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

Основным решением проблемы представляется ограничение на количество одновременно нажатых кнопок. Безопасным количеством являются две кнопки.

Если нажато более двух кнопок, можно всячески предупреждать об этом пользователя (визуальная и/или звуковая сигнализация).

Второе решение проблемы вытекает из условия проявления проблемы.

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

Если у нас кнопок не просто много, а очень много, то даже матрицирование не спасает от огромного расхода линий порта микроконтроллера. Тут приходится либо жертвовать несколькими портами, либо вводить дополнительную логику, например, дешифратор с инверсным выходом. Дешифратор принимает на вход двоичный код, а на выходе выдает «1» в выбранный разряд, а у инверсного дешифратора будет «0» (рис. 138).

Рис. 138. Расширение разрядности клавиатурной матрицы дешифратором Можно пойти еще дальше и поставить микросхему счетчика, который инкрементируется от импульсов с порта микроконтроллера. Значение же со счетчика прогоняется через дешифратор (рис. 139). Таким образом, можно заметно увеличить количество кнопок, только хватило бы разрядности дешифратора. Главное – учитывать на каком такте счетчика будет какой столбец.

Рис. 139. Расширение разрядности клавиатурной матрицы счетчиком и дешифратором Б.4.3 Описание работы Данная лабораторная работа посвящена изучению клавиатуры в составе контроллера SDK-1.1.

В рамках лабораторной работы необходимо разработать программу для контроллера SDK-1.1 (ведомый), который обменивается данными с персональным компьютером (ведущий). В качестве канала связи используется последовательный канал RS-232. На стороне персонального компьютера имеется инструментальное средство для обеспечения взаимодействия с SDK-1. – это терминальная программа M3P. Вариант задания такой же, как и в лабораторной работе № 3, с некоторыми изменениями, главным из которых является замена устройства ввода данных: вместо клавиатуры персонального компьютера используется клавиатура SDK-1.1. Устройством вывода является терминал персонального компьютера и светодиодные индикаторы SDK-1.1.

Программа должна выполнять две задачи. Первая задача – это тестирование клавиатуры (написанного драйвера): символы всех нажимаемых на клавиатуре SDK-1.1 кнопок выводятся в последовательный канал и отображаются в терминале. Вторая задача – выполнение варианта задания.

Переключение между двумя задачами в программе должно быть выполнено с использованием DIP-переключателей (лабораторная работа № 1).

Драйвер клавиатуры должен работать по прерыванию от таймера, т.е.

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

Драйвер клавиатуры должен содержать: функцию инициализации, функции сканирования клавиатуры и обработки нажатия кнопок (вызываются в обработчике прерывания от таймера), циклический буфер клавиатуры (нажатые кнопки), API-функцию чтения символа из буфера клавиатуры (см. [51], осуществляется только через буфер. Кроме того, работа с клавиатурой должна быть организована с переповторами, т.е. с отслеживанием длительного нажатия кнопки (как на клавиатуре персонального компьютера). Что это значит? Если после фиксирования нажатой кнопки (соответствующий символ занесен в буфер клавиатуры) проходит время, равное задержке перед повтором символа, а она все еще нажата, то в буфер клавиатуры повторно заносится этот же символ.

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

Алгоритм опроса матричной клавиатуры рекомендуется реализовать в виде конечного автомата (Finite State Machine) – функции, которая в зависимости от своего состояния (значения определенной переменной) и входного воздействия, выполняет разную работу [30, 85, 96].

Драйвер клавиатуры должен адекватно обрабатывать одновременное нажатие нескольких кнопок.

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

Драйвер звукового излучателя должен работать по прерыванию от таймера.

Длительность генерации звука – десятки миллисекунд. Таким образом, получается «музыкальная клавиатура».

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

Сигнализация в случае ввода некорректных значений – сообщение об ошибке в последовательный канал и зажигание светодиодов.

Рассмотрим применение конечных автоматов на более простом примере работы с одной клавишей без переповторов. Драйвер такой клавиши содержит:

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

Функции опроса клавиши и определения ее нажатия/отпускания, которые вызываются в обработчике прерывания от таймера (рис. 140, а).

Циклический буфер клавиатуры, в котором сохраняются сообщения о том, что клавиша нажата или не нажата.

API-функцию чтения символа из буфера клавиатуры.

замкнута key_count++ KEY_PRESSED_COUNT/ разомкнута key_count-- Cообщение MSG_KEY_PRESSED

FSM_KEY_RELEASED FSM_KEY_PRESSED

void Equation( float A, float B, float C, // нахождение действительных корней квадратного уравнения;

// X1, X2 -- корни (если действительного решения нет, то Г.3.2 Длина строк программного текста Длина строк программы не должна превышать ширины экрана ( символов).

Г.3.3 Прочие рекомендации А. Рекомендуется операнды бинарных операций (+, = и т.п.) отделять от знака операции одним пробелом " ".

Например:

Sum = A + B;

Б. Рекомендуется при перечислении идентификаторов после запятой "," ставить один пробел " ".

Например:

printf( “Сумма: %d; Разность: %d.”, A + B, A – B );

unsigned short Day, Month, Year;

unsigned char i, j, k, l, m, n;

В. Рекомендуется всегда писать символ-разделитель операторов ";" (непосредственно после оператора).

Например:

switch ( Num ) case 1: printf( “один...” ); break;

case 2: printf( “два...” ); break;

case 3: printf( “три...” ); break;

default: printf( “много!” ); break;

Г. Рекомендуется 16-ричные числа писать большими буквами.

Например:

#define BadDate 0xFFFF #define kbEnter 0x0D // код клавиши Литература 1. 8237 DMA controller URL: http://zet.aluzina.org/index.php/8237_DMA_controller 8237A High Performance Programmable DMA Controller Datasheet. – September 1993, Intel Corporation, Order number: 231466-005.

3. ADuC812: MicroConverter, Multichannel 12-Bit ADC with Embedded Flash MCU Data Sheet (Rev E, 04/2003) // Norwood: Analog Devices Inc.

2003. URL: http://www.analog.com/static/importedfiles/data_sheets/ADUC812.pdf.

ADuC812: Quick Reference Guide – СПб.: СПбГУ ИТМО, 2009. – URL: http://embedded.ifmo.ru/sdk/sdk11/components/mcu_aduc812_eng/ ADuC812_QuickRefGuideRev0.pdf 5. AMBA Design Tools for CoreLink System IP.

URL: http://www.arm.com/products/system-ip/amba-design-tools 6. AMBA Specification (Rev 2.0) ARM Limited 7. Application Note #1 (uC001): MicroConverter I2C Compatible Interface (Rev. 2.1, 2002/11) // Norwood: Analog Devices Inc. 2003.

URL: http://www.analog.com/static/importedfiles/application_notes/uC001_MicroConverter_I2C_Compatible_Interface.pdf.

8. Ayala K. The 8051 Microcontoller, 3rd ed. Delmar Cengage Learning, 9. Ayala K. The 8051 microcontroller: architecture, programming and applications; 2nd ed. NY: Thomson Delmar Leaning, 1996. 367 p.

10. Calcutt D., Cowan F., Parchizadeh H. 8051 Microcontrollers: An Applications Based Introduction. Oxford: Newnes, 2004.

11. GNU make manual // The GNU Operating System. 1996.

URL: http://www.gnu.org/software/make/manual/html_node/index.html.

12. I2C Bus. URL: http://www.i2c-bus.org IC-bus specification and user manual (Rev. 03, 06/2007) // NXP 13.

Semiconductors. 2006.

URL: http://www.nxp.com/documents/user_manual/UM10204.pdf.

Lee A. Edward. Cyber-Physical Systems – Are Computing Foundations 14.

Adequate? // Position Paper for NSF Workshop On Cyber-Physical Systems: Research Motivation, Techniques and Roadmap. October 16-17, 2006, Austin, TX. 9 p.

Lee E.A. Model-Driven Development – From Object-Oriented Design to 15.

Actor-Oriented Design // In Workshop on Software Engineering for Embedded Systems: From Requirements to Implementation (a.k.a. The Monterey Workshop). Chicago. September 24, 2003. 7 p.

16. MacKenzie L.S., Phan R. The 8051 Microcontroller, 4th ed. NJ: Prentice 17. Mazidi M.A., McKinlay R. 8051 Microcontroller and Embedded Systems.

NJ: Prentice Hall, 2005. 640 p.

18. Non-return-to-zero URL: http://en.wikipedia.org/wiki/Non-return-to-zero 19. PCF8583 – Clock/calendar with 240 x 8-bit RAM // NXP Semiconductors.

2006. URL: http://www.nxp.com/documents/data_sheet/PCF8583.pdf.

20. Sangiovanni-Vincentelli A. Quo Vadis SLD: Reasoning About the Trends and Challenges of System Level Design // Proceedings of the IEEE. 95(3), 2007. P. 467-506.

21. Schultz T.W. C and the 8051. Otsego: PageFree Publishing Inc., 2004. 3rd ed. 412 p. ISBN 1-58961-237-X 22. SDCC Compiler User Guide // SDCC – Small Device C Compiler. 2009.

URL: http://sdcc.sourceforge.net/doc/sdccman.html/.

23. The IC-bus specification (version 2.1, 2000) // NXP Semiconductors.

2006. URL: http://www.nxp.com/acrobat_download2/literature/ 9398/39340011.pdf.

24. Two-wire Serial EEPROM AT24C02A/AT24C04A // Atmel Corporation.

URL: http://www.atmel.com/dyn/resources/prod_documents/doc5083.pdf.

25. Wolf W.H. Computers as Components: Principles of Embedded Computing Systems Design. San Francisco: Morgan Kaufmann, 2005. 656 p. – ISBN 978-0-12-369459- 26. Александров Е.К. Микропроцессорные системы: Учебное пособие для вузов. М.: Политехника, 2002. – 936 с. - ISBN 5-7325-0516- 27. Бень Е.А. RS-485 для чайников. 2003.

URL: http://masters.donntu.edu.ua/2004/fema/kovalenko/library/art7.html 28. Болл Стюарт Р. Аналоговые интерфейсы микроконтроллеров. М.:

Издательский дом «Додэка-ХХ1», 2007. 360 с: ил. – ISBN 978-5-94120Брукс Ф. Мифический человеко-месяц или как создаются программные системы. СПб.: Символ-Плюс, 2010. 304 с. ISBN 5ISBN 0-201-83595- 30. Буч Г. Объектно-ориентированный анализ и проектирование с примерами на языке C++. СПб.: Бином, Невский диалект, 1998. 560 с.

ISBN 0-8053-5340-2, ISBN 5-7989-0067- 31. Вербин В.С. Классификация электромагнитных помех URL: http://www.problemaemc.narod.ru/emp_klass.html 32. Волович Г.И. Схемотехника аналоговых и аналого-цифровых электронных устройств. М.: Издательский дом "Додэка-ХХI", 33. Гарновский Н. Н. Теоретические основы электропроводной связи. Ч.2.

34. Говард В. Д. Высокоскоростная передача цифровых данных: высший курс черной магии.

35. Гоноровский И. С. Радиотехнические цепи и сигналы. Ч.2. М. 1967.

36. Горелик Г. С. Колебания и волны. М. – Л.. 1950.

37. Гук М.Ю. Аппаратные интерфейсы ПК. Энциклопедия. СПб.: Питер, 2002. 528 с.: ил. ISBN 5-94723-180- 38. Гук М.Ю. Аппаратные средства IBM PC. Энциклопедия. 3-е изд. СПб.:

Питер, 2006. 1072 с.: ил. ISBN 5-469-01182- 39. Давыдов А.В. Лекции по проектированию радиоэлектронной геофизической аппаратуры. Электрические соединения в радиоэлектронной аппаратуре.

URL: http://prodav.narod.ru/design/index.html 40. Дейкстра Э.В. Два взгляда на программирование // Клуб программистов «Весельчак У»

URL: http://club.shelek.ru/viewart.php?id=211.

41. Дейкстра Э.В. Конец информатики? // Communications of the ACM, Ноябрь, 19, 2000. 44(3). c. 42. Дейкстра Э.В. Почему программное обеспечение такое дорогое?

Пояснение для разработчиков аппаратуры // Springer-Verlag, 1982. c.

338- 43. Дейкстра Э.В. Программирование как вид человеческой деятельности // Клуб программистов «Весельчак У»

URL: http://club.shelek.ru/viewart.php?id=137.

44. Ершова Н.Ю., Ивашенков О.Н., Курсков С.Ю. Микропроцессоры:

Пособие к курсам «Микропроцессорные средства» и «Автоматизированные системы для научных исследований».

URL: http://dfe.karelia.ru/koi/posob/microcpu/index.html 45. Игнатов В. Эффективное использование GNU Make // Центр Информационных Технологий. 1997.

URL: http://www.citforum.ru/operating_systems/gnumake/index.shtml.

46. Интерфейсная шина IIC (I2C) // Easy Elecronics – Электроника для всех. 2008. URL: http://easyelectronics.ru/interface-bus-iic-i2c.html.

47. Использование сбалансированных схем URL: http://www.elart.narod.ru/articles/article26/article26.htm 48. Керниган Б., Ритчи Д. Язык программирования C. 5-е изд. М.:

Вильямс, 2009. 304 с. ISBN 978-5-8459-0891-9, ISBN 5-8459-0891-4, ISBN 0-13-110362- 49. Ключев А.О., Кустарев П.В., Ковязина Д.Р., Петров Е.В. Программное обеспечение встроенных вычислительных систем. СПб.: СПбГУ ИТМО, 2009. 212 с.

50. Ключев, А.О., Ковязина, Д.Р., Кустарев, П.В., Платунов, А.Е.

Аппаратные и программные средства встраиваемых систем. Учебное пособие. СПб.: СПбГУ ИТМО, 2010. 287 с.: ил.

51. Комплекс лабораторных работ для учебного лабораторного стенда SDK-1.1 // Интернет-портал «Встроенные вычислительные системы и системы на кристалле». 2009.

URL: http://embedded.ifmo.ru/sdk/sdk11/labs/2003.

52. Компьютерные сети. Цифровое кодирование URL: http://sesia5.ru/lokseti/s222.htm 53. Краткое описание интерфейса ИРПС 20мА «токовая петля»

URL: http://www.sector-t.ru/info/sector/proizvod/cl_reference.php 54. Кузьминов А.Ю. Интерфейс RS232: Связь между компьютером и микроконтроллером: От DOS к WINDOWS98/XP. М.: Издательский дом «ДМКпресс», 2006. 320 с. ISBN 5-9706-0029- 55. Кустарев П.В. Схемотехника ЭВМ. Конспект лекций.СПб.: СПбГУ ИТМО, 2008. 39 с.

56. Лапин А.А. Интерфейсы. Выбор и реализация. М.: Техносфера. 2005.

168 с. – ISBN 5-94836-058-X 57. Логическая схема расширителя портов ввода-вывода стенда SDK-1. (Rev. 3) // Интернет-портал «Встроенные вычислительные системы и системы на кристалле». 2009.

URL: http://embedded.ifmo.ru/sdk/sdk11/sch/sdk11r3_pld_ext.pdf.

58. Матричная клавиатура // Easy Elecronics – Электроника для всех. 2008.

URL: http://easyelectronics.ru/matrichnaya-klaviatura.html.

59. Матричная клавиатура // SKF development. 2009.

URL: http://www.microcontrollerov.net/index.php/ru/microcontrollers/artic les/23-matrixkeyboard.

60. Микроконтроллеры семейства MCS-51. СПб.: СПбГУ ИТМО, 2009.

URL: http://embedded.ifmo.ru/sdk/sdk11/components/mcu_aduc812_rus/m cs51.pdf.

61. Микросхемы приемопередатчиков URL: http://www.compitech.ru/html.cgi/arhiv/02_05/stat_68.htm 62. Могнонов П.Б. Организация микропроцессорных систем: Учебное пособие. Улан-Удэ: Изд-во ВСГТУ. 2003. 355 с.

63. Мячев А.А., Степанов В.Н., Щербо В.К. Интерфейсы систем обработки данных: Справочник; Под ред. А.А. Мячева. М.: Радио и связь. 1989. 416 с.: ил. – ISBN 5-256-00315- 64. Непейвода Н.Н., Скопин И.Н. Основания программирования. М.Ижевск: Институт компьютерных исследований, 2003. 868 с. ISBN 5Новиков Ю.В., Кондратенко С.В. Основы локальных сетей URL: http://www.intuit.ru/department/network/baslocnet/3/ 66. Новиков Ю.В., Скоробогатов П.К. Основы микропроцессорной техники. URL: http://www.intuit.ru/department/hardware/mpbasics/ 67. Обзор стандарта RS- URL: http://www.gaw.ru/html.cgi/txt/interface/rs232/start.htm 68. Передача сигнала по кабелю витой пары URL: http://www.kramer.ru/academy/courses/ 69. Платунов А.Е., Постников Н.П. Перспективы формализации методов проектирования встроенных систем // «Электронные компоненты», 2005, №1. с.1-6.

70. Полосковая линия.

URL: http://www.cultinfo.ru/fulltext/1/001/008/091/089.htm 71. Последовательный интерфейс SPI.

URL: http://www.gaw.ru/html.cgi/txt/interface/spi/index.htm 72. Правильная разводка сетей RS-485.

URL: http://www.gaw.ru/html.cgi/txt/interface/rs485/app.htm 73. Предко М. Руководство по микроконтроллерам. В двух томах. М.:

Постмаркет. 2004. 904 с. ISBN 5-901095-07- 74. Применение устройств гальванической развязки цифрового сигнала в интерфейсах URL: http://www.compitech.ru/html.cgi/arhiv/06_01/stat_ad.htm 75. Принципиальная электрическая схема стенда SDK-1.1 (Rev. 4) // Интернет-портал «Встроенные вычислительные системы и системы на кристалле». 2009.

URL: http://embedded.ifmo.ru/sdk/sdk11/sch/sdk1_1_sch_rev4.pdf.

76. Природа и основные параметры влияния между цепями URL: http://www.tehnauk.ru/1/14?start= 77. Ратхор Т.С. Цифровые измерения. АЦП / ЦАП. М.: Мир электроники, 78. Система команд микроконтроллеров семейства MCS- URL: http://www.gaw.ru/html.cgi/txt/doc/micros/mcs51/asm/start.htm 79. Согласование, экранирование и гальваническая развязка линий связи URL: http://www.intuit.ru/department/network/baslocnet/3/ 80. Спецификация ЖКИ WH1602B-YGK-CP (Winstar Display Co.) // Интернет-портал «Встроенные вычислительные системы и системы на кристалле». 2009.

URL: http://embedded.ifmo.ru/sdk/sdk11/components/lcd/WH1602BYGK-CP.pdf.

81. Спецификация интерфейса IC // KAZUS.RU «Электронный портал».

2003. URL: http://kazus.ru/articles/343.html.

82. Спецификация контроллера ЖКИ HD44780U (HITACHI) // Интернетпортал «Встроенные вычислительные системы и системы на кристалле». 2009.

URL: http://embedded.ifmo.ru/sdk/sdk11/components/lcd/hd44780.pdf.

83. Таненбаум Э. Архитектура компьютера. 5-е изд. СПб.: Питер, 2007.

844 с.: ил. ISBN 5-469-01274- 84. Таненбаум Э. Современные операционные системы. 2-е изд. СПб.:

Питер, 2002. 1040 с.: ил. ISBN 5-318-00299- 85. Татарчевский В. Применение SWITCH-технологии при разработке прикладного программного обеспечения для микроконтроллеров.

Часть 8 // «Компоненты и технологии», 2007, №8. с. 170- 86. Угрюмов Е.П. Цифровая схемотехника. СПб.: БХВ-Петербург, 2004.

528 с.: ил. ISBN 5-8206-0100-9.

87. Уилльямс Т. ЭМС для разработчиков продукции Технологии. 2003.

88. Учебный стенд SDK-1.1. Руководство пользователя (Версия 1.0.11) // Интернет-портал «Встроенные вычислительные системы и системы на кристалле». 2009.

URL: http://embedded.ifmo.ru/sdk/sdk11/doc/sdk11_userm_v1_0_11.pdf.

89. Хаммел Р.Л. Последовательная передача данных: Руководство для программиста: Пер. с англ. М.: Мир, 1996. 752 с. ISBN 5-03-003140- 90. Хмелевский И.В., Битюцкий В.П. Организация ЭВМ и систем.

Однопроцессорные ЭВМ. Ч.1, 2: Конспект лекций. 2-е изд.

Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2005. 87 с.

91. Хоровиц П., Хилл У. Искусство схемотехники. 7-е изд. М.: Мир, 2009.

704 с. ISBN 0-521-37095- 92. Цикл лекций «Устройства приема и обработки радиосигналов в системах подвижной радиосвязи»

URL: http://digital.sibsutis.ru/UPriOS.htm 93. Цикл лекций по микроконтроллерам семейства MCS-51 // Цифровая техника в радиосвязи. 2009. URL: http://digital.sibsutis.ru/content.htm.

94. Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем: Учебник для вузов. СПб.: Питер, 2007. 672 с. ISBN 5-94723-759- 95. Цымблер М.Л. Требования к оформлению программ на языке Turbo Pascal // М.Л. Цымблер. 2010.

URL: http://www.mzym.susu.ru/papers/coderule.html.

96. Чернышев Ю.А. Компьютерные коммуникации и периферия. Часть II:

Компьютерные коммуникации и интерфейсы. Электронное учебное пособие. М.: МИФИ (ТУ), 2000. 68 с.

97. Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления. СПб.: Наука, 1998.

98. Шины микропроцессорной системы.

URL: http://www.intuit.ru/department/hardware/mpbasics/2/#image.2. 99. Электронный замок на ключах – "таблетках" iButton.

URL: http://microsin.ru/content/view/508/44/ 100. Юкио Сато. Обработка сигналов. Первое знакомство. М.:

Издательский дом «Додэка-ХХI», 2009. 175 с.

101. Яшкардин В.Л. RS-232. Рекомендованный стандарт 232. Интерфейс между терминалом данных и передающим оборудованием линии связи, применяющий последовательный обмен двоичными данными.

URL: http://www.softelectro.ru/rs232.html В 2009 году Университет стал победителем многоэтапного конкурса, в результате которого определены 12 ведущих университетов России с присвоением категории «Национальный исследовательский университет». Министерством образования и науки Российской Федерации была утверждена Программа развития государственного образовательного учреждения высшего профессионального образования «Санкт-Петербургский государственный университет информационных технологий, механики и оптики» на 2009–2018 годы.

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

Кафедра ВТ СПбГУ ИТМО создана в 1937 году и является одной из старейших и авторитетнейших научно-педагогических школ России.

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

Кафедра является одной из крупнейших в университете.

Учебными курсами и научно-исследовательскими работами руководят 8 профессоров и 16 доцентов. На кафедре обучаются более студентов и 30 аспирантов.

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

В 2007-2008 гг. коллективом кафедры была успешно реализована инновационная образовательная программа СПбГУ ИТМО по научнообразовательному направлению «Встроенные вычислительные системы».

Начиная с 2009 года кафедра вычислительной техники является активным участником реализации программы развития национального исследовательского университета СПбГУ ИТМО, вошла в состав крупнейшего в СПбГУ ИТМО научно-исследовательского центра «Интеллектуальные системы управления и обработки информации».

ИНТЕРФЕЙСЫ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ

В авторской редакции Редакционно-издательский отдел Санкт-Петербургского государственного университета информационных технологий, механики и оптики Лицензия ИД № Подписано к печати Заказ № Тираж 100 экз.

Отпечатано на ризографе Ключев А.О., Ковязина Д.Р., Петров Е.В., Платунов А.Е.

ИНТЕРФЕЙСЫ ПЕРИФЕРИЙНЫХ

УСТРОЙСТВ

УЧЕБНОЕ ПОСОБИЕ

Редакционно-издательский отдел Санкт-Петербургского государственного университета информационных технологий, механики и оптики 197101, Санкт-Петербург, Кронверкский пр.,

Pages:     | 1 |   ...   | 3 | 4 ||


Похожие работы:

«Любовь Яковлевна Желтовская Обучение в 4-м классе по учебнику Русский язык Л. Я. Желтовской Обучение в 4 классе по учебнику Русский язык Л.Я. Желтовской: Астрель, АСТ; Москва; 2008 ISBN 978-5-271-17874-0, 978-5-17-045286-6 Аннотация Издание содержит программу, методические рекомендации и тематическое планирование к учебнику Русский язык. 4 класс Л.Я.Желтовской. Л. Я. Желтовская. Обучение в 4-м классе по учебнику Русский язык Л. Я. Желтовской Содержание От автора 3 О необходимости усиления...»

«А.Л. ЧЕКИН МАТЕМАТИКА 2 КЛАСС Методическое пособие Под редакцией Р.Г. Чураковой МосКвА АКАдЕМКНИГА/УЧЕбНИК 2012 УДК 51(072.2) ББК 74.262.21 Ч-37 Чекин, А.Л. Ч-37 Математика [Текст] : 2 кл. : Методическое пособие / А.Л. Чекин; под. ред. Р.Г. Чураковой. – М. : Академкнига/Учебник, 2012. – 224 с. ISBN 978-5-49400-074-3 Методическое пособие разработано в соответствии с требованиями федерального государственного образовательного стандарта начального общего образования второго поколения и концепцией...»

«ПОРЯДОК представления работ на соискание премий Правительства Российской Федерации в области образования Настоящий порядок устанавливает правила представления работ на соискание премий Правительства Российской Федерации в области образования, учрежденных постановлением Правительства Российской Федерации от 26 августа 2004 г. № 440 О премиях Правительства Российской Федерации в области образования, и требования к оформлению соответствующих документов и материалов. 1. Общие положения. 1.1. Работы...»

«Министерство образования и науки Российской Федерации Сыктывкарский лесной институт (филиал) федерального государственного бюджетного образовательного учреждения высшего профессионального образования Санкт-Петербургский государственный лесотехнический университет имени С. М. Кирова Кафедра теплотехники и гидравлики ГИДРАВЛИКА Учебно-методический комплекс по дисциплине для студентов специальности 270102.65 Промышленное и гражданское строительство всех форм обучения Сыктывкар 2012 УДК 621.22 ББК...»

«С.Я. Корячкина Н.А. Березина Е.В. Хмелёва МЕТОДЫ ИССЛЕДОВАНИЯ КАЧЕСТВА ХЛЕБОБУЛОЧНЫХ ИЗДЕЛИЙ УДК 664.66-021.465(075) ББК 36.83я7 К70 Рецензенты: кандидат технических наук, доцент кафедры Технология хлебопекарного, кондитерского и макаронного производства Орловского государственного технического университета Г.А. Осипова, доктор технических наук, профессор кафедры Профессиональное обучение Орловского государственного университета А.И. Шилов Корячкина, С.Я. К70 Методы исследования качества...»

«ПЕРВОЕ ВЫСШЕЕ ТЕХНИЧЕСКОЕ УЧЕБНОЕ ЗАВЕДЕНИЕ РОССИИ МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное бюджетное образовательное учреждение высшего профессионального образования НАЦИОНАЛЬНЫЙ МИНЕРАЛЬНО-СЫРЬЕВОЙ УНИВЕРСИТЕТ ГОРНЫЙ Согласовано Утверждаю Руководитель ООП направления Зав. кафедрой ИГ, проф. 120700, декан СФ проф. М.Г. Мустафин А.Г. Протосеня 31 августа 2012 г. 31 августа 2012 г. МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ ВЫПУСКНОЙ КВАЛИФИКАЦИОННОЙ РАБОТЫ...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ДЕПАРТАМЕНТ ОБЩЕГО ОБРАЗОВАНИЯ ТОМСКОЙ ОБЛАСТИ ОБЛАСТНОЙ ЦЕНТР ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ ДЕТЕЙ ФГБОУ ВПО ТОМСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ СБОРНИК МАТЕРИАЛОВ ВСЕРОССИЙСКОЙ НАУЧНО-ПРАКТИЧЕСКОЙ КОНФЕРЕНЦИИ СОВЕРШЕНСТВОВАНИЕ СИСТЕМЫ ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ ДЕТЕЙ В КОНТЕКСТЕ РАЗВИТИЯ РЕГИОНА (21–23 ОКТЯБРЯ 2013 Г.) г. Томск 1 УДК 37 Печатается по решению ББК Программного комитета Всероссийской научно-практической...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Государственное образовательное учреждение высшего профессионального образования ВСЕРОССИЙСКИЙ ЗАОЧНЫЙ ФИНАНСОВО ЭКОНОМИЧЕСКИЙ ИНСТИТУТ ТЕОРИЯ БУХГАЛТЕРСКОГО УЧЕТА Методические указания по выполнению контрольной работы для самостоятельной работы студентов третьего курса специальности 080109.65 Бухгалтерский учет, анализ и аудит Учетно статистический факультет Кафедра бухгалтерского учета и анализа хозяйственной деятельности Москва 2011 ББК...»

«СамоСтоятельная работа Студентов в Современном универСитете: ФормЫ, Содержание, управление Е.Ф. Карпиевич Самостоятельная работа студентов определена в БГУ как ключевая содержательная идея реформирования университетского образования. На сегодняшний момент почти никого не нужно убеждать в том, что для современного выпускника университета важно гибко реагировать в любой профессиональной и жизненной ситуации, самостоятельно выстраивать собственную деятельность. Выделение приоритета...»

«Российский государственный университет им. И. Канта Калининградский региональный общественный фонд помощи социально незащищенным детям и молодежи Открытый мир Союз содействия Калининграду (Германия) При поддержке Фонда Р. Боша (Германия) Проф. д-р Лифинцев Д.В. Социально-педагогическая помощь семье в Германии (методические материалы) Калининград 2009 1 Лифинцев Д.В.Социально-педагогическая помощь семье в Германии: Методические материалы. - Калининград, 2009. В брошюре рассматриваются некоторые...»

«Негосударственное образовательное учреждение высшего профессионального образования Институт экономики и управления (г. Пятигорск) НОУ ВПО ИнЭУ УТВЕРЖДАЮ Проректор по учебной работе / И.В. Данильченко / (Протокол № 2 от 29 октября 2013 г.) МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ КОНТРОЛЬНОЙ РАБОТЫ ПО ДИСЦИПЛИНЕ Б2.ДВ.2 Программные средства офисного назначения 080200.62 - Менеджмент Направление подготовки бакалавр Квалификация (степень) выпускника Экономика и управление Профиль подготовки бакалавра...»

«№, Наименование и краткая характеристика библиотечно- Номер диска. п/п информационных ресурсов и средств обеспечения Наименование предмета, дисциплины (модуля) образовательного процесса, в том числе электроннобиблиотечных систем и электронных образовательных соответствии с учебным планом ресурсов (электронных изданий и информационных баз данных) 1 2 3 4 Основы философии 2. 34 История философии : Компакт диск.-М ООО Директ Медиа Паблишинг,2008. Козлова Т.В. Основы права: Учебно- методическое...»

«Список книг из коллекции НТИ Горячая линия – Телеком (1 очередь) № Автор, наименование Год Кол-во ISBN издания страниц Алексеев Е. Б., Гордиенко В. Н., Крухмалев В. В., 1 2012 978-5-9912-0254-1 392 Моченов А.Д. Проектирование и техническая эксплуатация цифровых телекоммуникационных систем и сетей. Учебное пособие для вузов. Андреев В.А., Портнов Э.Л., Кочановский Л.Н. 2 2011 978-5-9912-0092-9 494 Направляющие системы электросвязи: Учебник для вузов. В 2-х томах. Том 1 – Теория передачи и...»

«Перечень учебных изданий, которым присвоен гриф УМО Наименование Вид Авторы Наименование Формулировка грифа издания издания вуза 2014 год Рекомендовано Учебнометодическим объединением высших учебных заведений Российской Федерации по образованию в области таможенного дела в качестве Административная Л.Л.Хомяков, учебного пособия для ответственность за Российская М.Ю.Карпечен учебное студентов образовательных правонарушения в таможенная ков, пособие организаций, обучающихся области академия по...»

«федеральное агентство по образованию государственное образовательное учреждение высшего профессионального образования самарский государственный университет Кафедра алгебры и геометрии Т. В. Азовская, В. В. Севостьянова задачи по теории чисел Утверждено редакционно-издательским советом университета в качестве учебного пособия Самара Издательство Самарский университет 2009 УДК 511.2 ББК 22.13 А 357 Рецензенты: канд. физ.-мат. наук, доц. Н. А. Яковлева, канд. физ.-мат. наук, доц. С. Ю. Попов...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ФА КУ ЛЬТ ЕТ ИНФО Р МАТ ИКИ В.П. Леонов ВВЕДЕНИЕ В ФИЗИКУ И ТЕХНОЛОГИЮ ЭЛЕМЕНТНОЙ БАЗЫ ЭВМ И КОМПЬЮТЕРОВ Томск – 2008 УДК 681.3(075.8)+621.38.032(075) Л 476 Леонов В.П. Введение в физику и технологию элементной Л 476 базы ЭВМ и компьютеров: Учебное пособие. – Томск: Изд-во НТЛ, 2008. – 264 с. ISBN 978-5-89503-390-6 В учебном пособии рассмотрены основные этапы развития физики и технологии...»

«Н.А. МАЛКОВ, А.П. ПУДОВКИН ЭЛЕКТРОМАГНИТНАЯ СОВМЕСТИМОСТЬ РАДИОЭЛЕКТРОННЫХ СРЕДСТВ ИЗДАТЕЛЬСТВО ТГТУ Министерство образования и науки Российской Федерации ГОУ ВПО Тамбовский государственный технический университет Н.А. Малков, А.П. Пудовкин ЭЛЕКТРОМАГНИТНАЯ СОВМЕСТИМОСТЬ РАДИОЭЛЕКТРОННЫХ СРЕДСТВ Утверждено Ученым советом университета в качестве учебного пособия для студентов 4 и 5 курсов специальностей 210303 и 210201 Тамбов Издательство ТГТУ УДК 621.396.6(075) ББК 844- М Рецензенты: Доктор...»

«Национальный фонд подготовки кадров Подготовлено при финансовом содействии Национального фонда подготовки финансовых и управленческих кадров в рамках его Программы поддержки академических инициатив в области социально-экономических наук ФИНАНСОВАЯ АКАДЕМИЯ АКАДЕМИЯ ПРИ МЕНЕДЖМЕНТА ПРАВИТЕЛЬСТВЕ РФ И РЫНКА ИНСТИТУТ ПРОФЕССИОНАЛЬНОЙ ОЦЕНКИ В рамках инновационного проекта развития образования, программы поддержки развития академических инициатив в области социально экономических наук разработан...»

«СМОЛЕНСКИЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ ФАКУ ЛЬТЕТПСИХОЛОГИИ И ПР АВА ОТДЕЛЕНИЕ ПР АВА КАФЕДР А УГОЛОВНОГО ПР АВА И ПРОЦЕССА УГОЛОВНОЕ ПР АВО Учебно-методическое пособие (для студентов, обучающихся по специальности 030501.65 (021100) “Юриспруденция” – заочная форма обучения) Смоленск – 2009 Составитель – Шкредова Э.Г., кандидат юридических наук, доцент Рецензенты: Волчок В.Г. – судья Смоленского гарнизонного Военного суда, кандидат юридических наук К уликова О.Н. - кандидат юридических наук,...»

«Русский язык в таблицах и схемах: интенсивный курс подготовки к ЕГЭ, 2011, 279 страниц, Елена Петровна Алексеева, 5990126409, 9785990126404, Кузнецова О. С., 2011. Как легче уложить в памяти материал по русскому языку: сплошным текстом или в виде схем и таблиц? Автор разложил весь материал по полочкам, делая упор на логическое мышление учеников. Схемы и таблицы помогут эффективно обобщить курс русского языка Опубликовано: 26th August 2013 Русский язык в таблицах и схемах: интенсивный курс...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.