Пояснительная записка (1231534), страница 10
Текст из файла (страница 10)
Эта ножка может выполнять две дополнительные функции.AIN0 - положительный вход аналогового компаратора (Analog ComparatorPositive Input). INT2 - вход для внешнего прерывания 2 (External Interrupt 2Input)AIN1, OC0. Эта ножка может выполнять две дополнительные функции.AIN0 - отрицательный вход аналогового компаратора (Analog ComparatorNegative Input). OC0 - выход сигнала события совпадения таймера/счетчика 0 (Timer/Counter0 Output Compare Match Output)SS, этот вывод может работать как аппаратная выборка внешних подчиненных устройств, подключенных к интерфейсу SPI (SPI Slave Select Input)SCL, это сигнал тактов для внешнего подчиненного устройства шиныI2C/TWI (Two-wire Serial Bus Clock Line)SDA, это двунаправленный сигнал данных для внешнего подчиненногоустройства шины I2C/TWI(Two-wire Serial Bus Data Input/Output Line)TOSC1, вход для подключения резонатора для дополнительного генератора (Timer Oscillator Pin 1).
Если ножка используется в режиме TOSC1, тоэтот вывод работает как вход внутреннего инвертирующего усилителя(сюда подключают кварцевый или керамический резонатор)TOSC2, выход для подключения резонатора для дополнительного генератора (Timer Oscillator Pin 2). Если ножка используется в режиме TOSC2, тоэтот вывод работает как выход внутреннего усилителя (сюда подключаюткварцевый или керамический резонатор)RXD, вход последовательного порта UART (USART Input Pin). Обычно используется как порт ввода данных от внешних устройств, или для отладкиTXD, выход последовательного порта UART (USART Output Pin). Обычноиспользуется для отладки, или как как порт вывода данных для внешнихустройствINT1 - вход для внешнего прерывания 1 (External Interrupt 1 Input)OC1A - сигнал события совпадения A таймера 1 (Timer/Counter1 OutputCompare A Match Output)ICP1, вход для захвата внешних импульсов (Timer/Counter1 Input CapturePin).
Может использоваться для измерения длительностей сигнала с помощью таймера 1OC2 - сигнал события совпадения таймера 2 (Timer/Counter2 Output Compare Match Output)T0, XCK. К этой ножке на макетной плате подключен светодиод. Ножкамогла бы использоваться как T0 - вход тактового сигнала для таймера 0(Timer/Counter0 External Counter Input), или как XCK - вход тактов для порта USART (USART External Clock Input/Output)632.9 SPI интерфейсВ составе AVR микроконтроллеров имеется модуль последовательного периферийного интерфейса или модуль SPI (serial peripheralinterface).
Относительно нашего контроллера такой расшит на штурьевую колодку XP5, и используется для загрузки ПО в память микроконтроллера.Загрузка ПО контроллера производилась с помощью SPI программатора.SPI представляет собой четырехпроводную синхронную шину,предназначенную для последовательного обмена данными между микросхемами.
Данный интерфейс отличают простота использования и реализации, высокая скорость обмена и малая дальность действия.При любом обмене данными по SPI одно из устройств являетсяведущим (Master), а другое ведомым (Slave). Обычно (но не всегда) вроли ведущего выступает микроконтроллер. Ведущий переводит периферийное устройство в активное состояние и формирует тактовый сигнал и данные. В ответ ведомое устройство передает ведущему своиданные. Передача данных в обе стороны происходит синхронно с тактовым сигналом [10].Физически SPI реализуется на основе сдвигового регистра, который выполняет и функцию передатчика, и функцию приемника.Сигналы, используемые данным интерфейсом, имеют следующееназначение:-MOSI — Master Output / Slave Input.
Выход ведущего / входведомого. Служит для передачи данных от ведущего устройства кведомому;64-MISO – Master Input / Slave Output. Вход ведущего / выход ве-домого. Служит для передачи данных от ведомого устройства кведущему;-SLK — Serial Clock. Сигнал синхронизации. Служит для пере-дачи тактового сигнала всем ведомым устройствам;-SS — Slave Select.
Выбор ведомого. Служит для выбора ве-домого устройства.2.9.1 Протокол обмена по SPIПротокол обмена по SPI аналогичен логике работы сдвигового регистра и заключается в последовательном побитном выводе/вводе данных по определенным фронтам тактового сигнала.
Установка данных ивыборка осуществляется по противоположным фронтам тактового сигнала.Спецификация SPI предусматривает 4 режима передачи данных,которые отличаются между собой соотношением фазы и полярноститактового сигнала и передаваемых данных.Эти режимы описываются двумя параметрами:-CPOL – clock polarity. Полярность тактового сигнала - опреде-ляет исходный уровень сигнала синхронизации;-CPHA – clock phase.
Фаза тактового сигнала - определяет по-следовательность установки и выборки данных.Режмы передачи данных по протоколу SPI:-SPI mode 0: CPOL = 0, CPHA=0. Тактовый сигнал начинаетсяс уровня логического нуля. Защелкивание данных выполняется по65нарастающему фронту. Смена данных происходит по падающемуфронту;-SPI mode 1: CPOL = 0, CPHA=1. Тактовый сигнал начинаетсяс уровня логического нуля. Смена данных происходит по нарастающему фронту.
Защелкивание данных выполняется по падающему фронту;-SPI mode 2: CPOL = 1, CPHA=0. Тактовый сигнал начинаетсяс уровня логической единицы. Защелкивание данных выполняется по падающему фронту. Смена данных выполняется по нарастающему фронту тактового сигнала;-SPI mode 3: CPOL = 1, CPHA=1. Тактовый сигнал начинаетсяс уровня логической единицы. Смена данных выполняется по падающему фронту тактового сигнала. Защелкивание данных выполняется по нарастающему фронту;Современные микроконтроллеры поддерживают все четыре режима работы SPI.Стоит отметить, что передача данных по SPI может происходитьне только старшим битом вперед, но и младшим. А количество байт передаваемых за время удержания сигнала выбора (SS) ничем не ограничено и определяется спецификацией используемого ведомого устройства.
Также в спецификации на ведомое устройство указываются поддерживаемые режимы работы SPI, максимальная частота тактового сигнала, содержимое передаваемых или принимаемых данных.2.10 ПО хоста для работы с контроллером AVR-USB-MEGA16ПО хоста необходимо для взаимодействия с контроллером AVRUSB-MEGA16, чтобы мы могли выполнять ввод\вывод информации с\наего порты, и актировать его возможные другие функции.66Первым шагом написания ПО хоста является установка библиотеки libusb-win32, которая содержит набор необходимых команд для реализации USB протокола.Для нашего контроллера ПО написано в среде разработкиDelphi 7. Для подключения библиотеки необходимо внести её в списокuses, как это показано ниже.usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms,Dialogs, StdCtrls, Menus, ComCtrls, Buttons, LibUSB, ExtCtrls;Код, реализующий алгоритм инициализации устройства, приведёнв приложении А.
С его помощью устройство получает возможность выполнять операции ввода\вывода и возможные другие функции.На рисунке 2.2 представлено окно программы управления контроллером AVR-USB-MEGA16У микроконтроллеров AVR есть 3 регистра, с помощью которыхпроисходит полное управление ножками и чтение их состояния. Эти регистры называются DDRx, PORTx, PINx.
Вместо x подставляется букваA, B, C или D, и после этого получается полное допустимое имя нужногорегистра.DDRx используется для перевода соответствующего порта наввод или вывод, для настройки на выход необходимо записать в негологическую 1, на вход – 0.PORTx – выходной регистр порта.PINx – регистр, для считывания логического уровня с ножек контроллера.
Если DDRx установлен в 1 – то считывание PINx покажет информацию, записанную в PORTx. Эту особенность необходимо учестьпри программирование нашего устройства.67Рисунок 2.2 - окно программы управления контроллеромAVR-USB-MEGA16Запись и чтение портов осуществляется процедурами:-SendUSBControlMessage(PC2USB,RQ_IO_WRITE,$00,aD-DRD, 0, data);-SendUSBControlMessage(PC2USB,RQ_IO_WRITE, $80, aPOR-TA, 0, data);-SendUSBControlMessage(USB2PC,RQ_IO_READ, 0, aPORTD,0, data).Checkbox IN\OUT переводит регистр DDRx соответствующегопорта на ввод\вывод.procedure TForm1.chk15Click(Sender: TObject);vardata: array [0..2] of char;begin68If chk15.Checked thenSendUSBControlMessage(PC2USB,RQ_IO_WRITE, $00, aDDRA, 0,data)elseSendUSBControlMessage(PC2USB,RQ_IO_WRITE, $FF, aDDRA,0, data);end;Панели PORT_X используются для вывода информации на соответствующий пин контроллера, а панель usingPINS – отображениявнешней информации на пинах контроллера, при условии что портнастроен на ввод.
Опрос начинается по установке галочки в Cycle readPINs с периодом, установленным ниже.2.11 Микросхема К155ИД3 (74154)Микросхема К155ИД3 (74154) — дешифратор, позволяющий преобразовать четырехразрядный код, поступивший на входы 1, 2, 4, 8 внапряжение низкого логического уровня, появляющееся на одном изшестнадцати выходов 0-15. Электрические параметры К155ИД3 представлены в таблице 2.6 [11]. Дешифратор К155ИД3 (74154) имеет двавхода разрешения дешифрации V1 и V2. Эти входы можно использоватькак логические, когда дешифратор К155ИД3 (74154) служит демультиплексором данных.
Тогда входы 1, 2, 4, 8 используются как адресные,чтобы направить поток данных, принимаемых входами V1 или V2, наодин из выходов 0-15. На второй, неиспользуемый в этом включениивход V, следует подать напряжение низкого уровня.По входам V1 и V2 даются сигналы разрешения выходов, чтобыустранять текущие выбросы, которыми сопровождается дешифрация69кодов, появляющихся не строго синхронно (например, поступающих отсчетчика пульсаций). Чтобы разрешить прохождение данных на выходы,на входы V1 и V2 следует дать напряжение низкого уровня согласнотаблице 2.7. Эти входы необходимы также при наращивании числа разрядов дешифрируемого кода.
Когда на входах V1 и V2 присутствуютнапряжения высокого уровня, на выходах 0-15 появляются высокиеуровни.Таблица 2.6 – Электрические параметры К155ИД3ПараметрНоминальное напряжение питанияВыходное напряжение низкого уровняВыходное напряжение высокого уровняВходной ток низкого уровняВходной ток высокого уровняТок потребленияВремя задержки распространения при включениипо входам 20 - 23по входам 18, 19Время задержки распространения при выключениипо входам 20 - 23по входам 18, 19Время дешифрацииПотребляемая мощностьНоминал5В 5%не более 0,4 Вне менее 2,4 Вне более -1,6 мАне более 0,04 мАне более 56 мАне более 33 нсне более 27 нсне более 36 нсне более 30 нсне более 35 нсне более 294 мВтТаблица 2.7 - Таблица истинности К155ИД3V0000000000000ВходV1 80000000000000000010101014000011110000200110011001110101010101010011111111111110111111111121101111111113111011111111411110111111151111101111117061111110111117111111101111Выход8 9 10 11 12 13 14 151 1 1111111 1 1111111 1 1111111 1 1111111 1 1111111 1 1111111 1 1111111 1 1111110 1 1111111 0 1111111 1 0111111 1 101111Продолжение таблицы 2.700000110000101Вход1111XXX1111XXX0 0 1 10 1 1 11 0 1 11 1 1 1X X 1 1X X 1 1X X 1 1111111111111111111111111111111111111111111Выход1 11 11 11 11 11 11 11111111111111101111111011111110111111101112.12 Оптопары транзисторныеВ качестве гальванической развязки между устройством ввода/вывода и внешними цепями в настоящем проекте, сопряжёнными сустройством используются транзисторные оптопары серии КР3040 – длявходных цепей, и КР1040 – для выходных.