Введение в курсовом проекте будет разработана микропроцессорная система, реализующая функции формирования интерфейсов I2C и rs485 через слот pci.
Скачать 0.49 Mb.
|
Введение В курсовом проекте будет разработана микропроцессорная система, реализующая функции формирования интерфейсов I2C и RS485 через слот PCI. Для проектируемого устройства должны быть разработаны его структурная, функциональная и принципиальная схемы, написано программное обеспечение для выбранного управляющего устройства. Кроме того, должны быть построены временные диаграммы работы и рассчитаны временные параметры схемы. 1. Анализ задачи. Расчет основных параметров устройства .1 Анализ протокола передачи данных RS-485 Интерфейс RS-485 представляет собой полудуплексный протокол связи, в которой каждый из двух сигналов передается по двум линиям: А - отрицательная и В-положительная. Если В>А, то передается 1 или сброс, а если А>В, то передается 0 или установка. Напряжение на линиях А и В составляют, соответственно, 1В и 4В в первом случае и 4В и 1В во втором. Топология интерфейса RS-485 построена по принципу «один ко многим». Интерфейс является полудуплексным, то есть когда ведется передача одним устройством, то остальные либо могут находиться в отключенном состоянии, либо в состоянии приема. Передача данных по цепям RxD и TxD обычно ведется последовательным асинхронным способом в так называемом старт - стопном режиме, позволяющем отказаться от отдельных цепей для передачи синхронизирующих сигналов. Биты данных объединяются в слова, каждое из которых дополняются служебными битами: стартовым, стоповым и контролем четности. Число информационных бит в слове обычно равно восьми и соответствует байту данных в ОЗУ компьютера. В интервалах между передачей слов (байтов) в линии поддерживается уровень логической 1. Передача начинается со стартового бита, всегда имеющего уровень логического 0 (рис. 1). Этот бит служит для запуска приемника, который, обнаружив его, начинает отсчет интервалов времени, отведенных для передачи каждого последующего бита, и в соответствующие моменты фиксирует их значения. Информационные биты следуют один за другим за стартовым битом, за ним следует бит контроля четности, значение которого при передаче устанавливается таким, чтобы общее число логических 1 в сигнале стало четным или нечетным в зависимости от заданного режима контроля. Если контроль четности отключен, то контрольный бит не передается. Рис. 1 - Вфременная диаграмма передачи байта данных программный микропроцессор схема Передача заканчивается стоповыми битами, первый из которых останавливает работу приемника, и он переходит в режим ожидания следующего стартового бита. Стоповые биты имеют всегда уровень логической 1. Так как этот уровень совпадает с передаваемым в интервалах между словами, число стоповых битов, по существу, задает минимальную величину этих интервалов, необходимую для надежной связи. Скорость передачи по протоколу RS-485 зависит от многих параметров. Так как эти протоколы рассчитаны на передачу данных на большие расстояния (до 1200 м), то большую роль в определении скорости передачи данных имеет длина кабеля, его волновое сопротивления и погонная емкость. А для протокола RS-485 на скорость передачи влияет также количество подключенных потребителей из-за наличия емкости между кабелем и входными клеммами. Поэтому максимальная скорость передачи данных рассчитывается для каждого конкретного случая с учетом всех вышеуказанных параметров. В среднем считается, что максимальная скорость при передаче на расстояние 1200 м составляет 100Кбод/с, но при этом не оговаривается тип кабельных линий, что также накладывает ограничение на максимальную скорость передачи данных. 1.2 Анализ протокола передачи данных I2C I2C - двухпроводный последовательный интерфейс, разработанный корпорацией Philips. В Первоначальном техническом требовании к интерфейсу максимальная скорость передачи данных составляла 100 Кбит/с. Однако позже появились стандартные более скоростные режимы работы шины I2С (400Кбит/с и 1Мбит/с). К одной шине I2C могут быть подключены устройства с различными скоростями доступа, если скорость передачи данных будет удовлетворять требованиям самого низкоскоростного устройства. Протокол передачи данных по шине I2С разработан таким образом, чтобы гарантировать надежный качественный прием / передачу данных. При передаче данных одно устройство является «Ведущим», которое инициирует передачу данных и формирует сигналы синхронизации. Другое устройство «Ведомое», которое может начать передачу данных только по команде ведущего шины. В таблице 1 представлены основные термины, связанные с шиной I2C. Каждое устройство на шине I2C имеет уникальный адрес. Когда ведущий инициирует передачу данных, то сначала передается адрес устройства, к которому выполняется обращение. Остальные устройства проверяют первоначальный ведущим адрес. В состав байта адреса устройства входит бит направления передачи данных (выполняется чтение из ведомого или запись). Ведомый и ведущий шины всегда находятся в противоположном режиме работы, что можно представить в виде двух состояний: Ведущий передатчик-ведомый приёмник: Ведомый передатчик-ведущий приемник. В обоих случаях ведущий формирует тактовый сигнал. Вывод тактового сигнала (SCL) и данных (SDA) должны иметь выход с открытым коллекторам, чтоб выполнить требования «монтажного И» на шине. Для формирования высокого уровня сигнала на линиях к ним подключаются подтягивающие резисторы. Число устройств, которые могут быть подключены к шине I2C, ограничиваются только максимальной ёмкостью шины (400пФ) и способностью адресации этих устройств. Основные термины, связанные с шиной I2C Инициализация и завершения передачи данных в I2C: В то время, когда передача данных на шине I2C отсутствует, сигнал синхронизации (SCL) и данных (SDA) имеют высокий логический уровень за счет подтягивающих резисторов. Биты START и STOP формируются ведущим для определения начала и окончания данных соответственно. Бит START формируется переходом сигнала SDA из высокого уровня в низкий при высоком уровне сигнала SCL. Бит STOP формируется переходом SDA из низкого уровня в высокий при высоком уровне SCL. На рисунке 1.2 показано формирование битов START и STOP. Ведущий шины формирует биты START и STOP для указания начала и завершения передачи данных. При передаче данных сигнал SDA может изменяться только, когда SCL имеет низкий уровень. Рисунок 1.2 Биты START и STOP Адресация устройств на шине I2C: Для адресации устройств используется два формата адреса: простой 7-разрядный формат с битом чтения / записи R/W (рисунок 1.3); 10-разрядный формат, передаётся два бита. В первом байте передаётся: пять битов, определяющих что это 10-разрядный адрес; два старших бита адреса; бит записи / чтении. Во втором байте передаётся 8 младших бит адреса (рисунок 1.4). Рисунок 1.3 - 7-разрядная адресация Рисунок 1.4 - 10-разрядная адресация Подтверждение приёма: При передаче данных после каждого переданного байта приёмник должен подтвердить получения байта сигналом ACK (рисунок 1.5). Если ведомый не подтверждает получение байта адреса или данных, ведущий должен прервать передачу сформировав сигнал STOP (ведомый должен отпустить SDA для формирования STOP ведущим). Рисунок 1.5 - Подтверждение приёма ведомым Когда ведущий шины принимает данные, то на каждый принимаемый байт формируется бит подтверждения, если принятый бит не последний. Для сообщения ведомому о том, что ведущий прекращает принимать данные по приёму последнего байта формируется ACK не формируется. Ведомый отпускает SDA, чтобы ведущий смог передать бит STOP. Ведущий может формировать бит STOP на месте бита подтверждения. Если необходимо задержать передачу данных, то он может удержать SCL в низком логическом уровне. Передача данных продолжится, когда ведомый отпустит SCL. Это позволяет ведомому подготовить новые данные для передачи. Методика задержки передачи данных может использоваться и при передаче отдельных битов (рисунок 1.6). Рисунок 1.6 - Ожидание передачи данных На рисунках 1.7 и 1.8 показаны последовательности приёма и передачи данных ведущим шины. Рисунок 1.7 - Последовательность передачи данных ведущим Рисунок 1.8 - Последовательность приёма данных ведущим Когда ведущему шины необходимо продолжить обмен данными (при формировании бита STOP управление шиной теряется) может быть передан бит повторный START. Условие повторный START идентично условию START формируется после передачи бита подтверждения. Это позволяет ведущему продолжить обмен с текущим устройством или адресовать новое (рисунок 1.9). Рисунок 1.9 - Комбинированный формат 1.3 Шина PCI Шина PCI децентрализована, нет главного устройства, любое устройство может стать инициатором транзакции. Для выбора инициатора используется арбитраж с отдельно стоящей логикой арбитра. Арбитраж «скрытый», не отбирает времени - выбор нового инициатора происходит во время транзакции, исполняемой предыдущим инициатором. Транзакция состоит из 1 или 2 циклов адреса (2 цикла адреса используются для передачи 64-битных адресов, поддерживаются не всеми устройствами, дают поддержку DMA на памяти более 4 Гб) и одного или многих циклов данных. Транзакция со многими циклами данных называется «пакетной» (burst), понимается как чтение / запись подряд идущих адресов и даёт более высокую скорость - один цикл адреса на несколько, а не на каждый цикл данных, и отсутствие простоев (на «успокоение» проводников) между транзакциями. Специальные типы транзакций используются для обращений к конфигурационному пространству устройства. «Пакетная» транзакция может быть временно приостановлена обоими устройствами из-за отсутствия данных в буфере или его переполнения. Поддерживаются «расщеплённые» транзакции, когда целевое устройство отвечает состоянием «в процессе» и инициатор должен освободить шину для других устройств, захватить её снова через арбитраж и повторить транзакцию. Это делается, пока целевое устройство не ответит «сделано». Используется для сопряжения шин с разными скоростями (сама PCI и frontside процессора) и для предотвращения тупиковых ситуаций в сценарии с многими межшинными мостами. Спецификация шины PCI определяет три типа ресурсов: два обычных (диапазон памяти и диапазон ввода / вывода, как их называет компания Microsoft) и configuration space - «конфигурационное пространство». Конфигурационное пространство состоит из трех регионов: заголовка, независимого от устройства (device-independent header region); региона, определяемого типом устройства (header-type region); региона, определяемого пользователем (user-defined region). В заголовке содержится информация о производителе и типе устройства - поле Class Code (сетевой адаптер, контроллер диска, мультимедиа и т.д.) и прочая служебная информация. Следующий регион содержит регистры диапазонов памяти и ввода / вывода, которые позволяют динамически выделять устройству область системной памяти и адресного пространства. В зависимости от реализации системы конфигурация устройств производится либо BIOS (при выполнении POST - power-on self test), либо программно. Базовый регистр expansion ROM аналогично позволяет отображать ROM устройства в системную память. Поле CIS (Card Information Structure) pointer используется картами cardbus (PCMCIA R3.0). С Subsystem vendor/Subsystem ID все понятно, а последние 4 байта региона используются для определения прерывания и времени запроса / владения. Сигналы шины PCI: Знак - (минус) перед названием сигнала означает, что активный уровень этого сигнала логический ноль, обозначение {XX:0} означает группу сигналов с номерами от 0 до XX.{31:0} - мультиплексированная шина адреса / данных. Адрес передается по сигналу - FRAME, в последующих тактах передаются данные. C/ BE {3:0} - команда / разрешение обращения к байтам. Команда, определяющая тип очередного цикла шины (чтение-запись памяти, ввода / вывода или чтение / запись конфигурации, подтверждение прерывания и другие) задается четырехбитным кодом в фазе адреса по сигналу - FRAME. FRAME - индикатор фазы адреса (иначе - передача данных). DEVSEL - выбор инициатором устройства назначения. IRDY - готовность инициатора к обмену данными. TRDY - готовность устройства назначения к обмену данными. STOP - запрос устройства назначения к инициатору на останов текущей транзакции. LOCK - используется для установки, обслуживания и освобождения захвата ресурса на PCI. REQ {3:0} - запрос от PCI-устройства на захват шины (для слотов 3:0). GNT {3 0} - разрешение мастеру на использование шины.- общий бит четности для линий AD {31:0} и C/BE {3:0}. ParityER - сигнал об ошибке по четности (от устройства, ее обнаружившего). RST - сброс всех устройств.- выбор устройства назначения в циклах считывания и записи конфигурации. SERR - системная ошибка, активизируется любым устройством PCI и вызывает емаскируемое прерывание процессора (NMI). REQ64 - запрос на 64-битный обмен. ASK64 - подтверждение 64-битного обмена. INTR A, B, C, D - линии запросов прерывания, направляются на доступные линии IRQ BIOS компьютера. Запрос по низкому уровню допускает разделяемое использование линий прерывания.- сигнал синхронизации на тактовой частоте шины.Clock, - TSTRES, TestDO, TestDI - сигналы для тестирования адаптеров по интерфейсу JTAG (на системной плате обычно не задействованы).- перевод в режим тестирования. Разъем шины PCI
2. Разработка структурной схемы Структурная схема приведена в приложении А. На основании вышеизложенного требования к разрабатываемому устройству будут следующими - разрабатываемое устройство должно обеспечивать обмен данными и сигналами c устройствами, подключенными по интерфейсам I2C и RS485. Управляющим устройством является персональный компьютер (ПК). Управление интерфейсами I2C и RS485 производится ПК через шину PCI. При проектировании устройства необходимо учесть особенности рабочих напряжений протоколов и их физического построения. Ядром разрабатываемого устройства будет микроконтроллер (МК), к которому подключен контроллер PCI, через который ПК передает управляющие сигналы для интерфейсов I2C и RS485. Для обмена данными по протоколу RS485 требуется дополнительное устройство, которое будет производить формирование двухлинейных сигналов из сигналов от МК для передачи и осуществлять прием из линии для МК. Таким устройством является преобразователь RS-485. Управление процессами обмена информацией и выдачей всех необходимых управляющих сигналов производится микроконтроллером. Обмен данными по протоколу I2C производится с выхода SCA, а тактирование передачи - с выхода OSC микроконтроллера, составляющих порт приема / передачи данных по интерфейсу I2C. Для приема / передачи данных со стороны RS485 используется вход / выход МК RxD и TxD, составляющие порт последовательного приема-передачи данных (USART). Для согласования с интерфейса и порта USART МК используется преобразователь RS-485. Оба интерфейса представляют собой интерфейсы топологии «один ко многим», управление в которых ведется за счет использования оригинальных адресов подключенных устройств. Поэтому контроллер PCI шины подключается в качестве источника / приемника данных. Для этого контроллер соединяется с МК 16-тиразрялной шиной данных - информационные выходы контроллера PCI и входы портов А и В микроконтроллера. ПК через PCI контроллер передает адрес устройства, к которому должно быть произведено обращение, и команду для этого устройства. 3. Разработка функциональной схемы Функциональная схема приведена в приложении Б. Основой схемы является микропроцессор МК, подключение которого к шине PCI производится контроллером PCI, подключенному в свою очередь к шине PCI, связь с устройствами, подключенными по интерфейсу RS-485 производится через преобразователь RS-485. Линии интерфейса I2C подключены напрямую к соответствующим входам МК. Контроллер PCI служит для подключения к шине PCI: 16 линий адреса либо данных, сигналы управления арбитром и контроллером, с одной стороны и 16 информационных двунаправленных выводов и линии управления подключенными устройствами, при необходимости, с другой стороны. МК не требует дополнительных управляющих сигналов, так как подключаемые интерфейсы управляются кодовыми командами, а не отдельными сигналами. Связь между контроллером PCI и МК производится через порты А и В МК и порт AD контроллера. Для преобразования сигналов по одной линии в сигналы по двум линиям, используемым в интерфейсе RS485, используется преобразователь RS-485, который работает либо в режиме преобразования однолинейного сигнала в двухлинейный (для линии передачи данных TxD), либо в режиме преобразования двухлинейного сигнала в однолинейный (линия приема данных RxD). Управление работой преобразователя ведется с выхода С0 микроконтроллера. Сигнал низкого уровня на выходе С0 включает преобразователь в режим приема данных, сигнал высокого уровня - в режим передачи. Интерфейс I2C никаких дополнительных устройств согласования не требует и подключается напрямую к выходам микроконтроллера. К выходу SCL подключена линия данных SDA, а к выходу OSC - линия тактирования SCL. Порт последовательного приема / передачи данных UART в составе выводов RxD - приемник и TxD - передатчик предназначен для обмена информацией с устройством, подключенным по интерфейсу RS485. Обмен данными в обоих интерфейсах производится следующим образом: микроконтроллер передает адрес устройства, затем команду, которая должна быть выполнена устройством, после чего либо принимаются данные от устройства, либо передаются, в зависимости от поданной на устройство команды. После конца приема либо передачи данных устройство переходит в исходное состояние. 4. Выбор элементной базы. Разработка принципиальной схемы устройства. Расчет временных параметров Для упрощения построения устройства преобразования к микроконтроллеру выдвигаются следующие требования: - наличие аппаратной реализации порта передачи данных по интерфейсу I2C; - наличие аппаратной реализации порта последовательной передачи данных. На основании предъявленных критериев был выбран микроконтроллер Atmega128 производства фирмы Atmel. Микросхема представляет собой восьмиразрядный микроконтроллер с четырьмя двунаправленными портами. Порты А, В и С используется как цифровые двунаправленные восьмиразрядные порты ввода-вывода данных. Порт D имеет в своем составе порт приема / передачи данных по протоколу I2C, а также порт передачи данных в последовательном коде. Переключение функций использования выводов портов с основных (цифровой вход-выход) на дополнительные (прерывания, компаратор и прочее) производится программно, через специализированный регистр управления. Кроме того, микроконтроллер имеет в своем составе три независимых таймера с программным управлением и встроенный генератор частоты. Рабочая частота микроконтроллера 8 МГц. Емкость встроенного перепрограммируемого ПЗУ составляет 1 кб, СОЗУ - 2 кб. Перепрограммация ПЗУ ведется с помощью встроенного интерфейса JTAG. Устройства согласования с интерфейсом RS485 выполнены на основании микросхемы SN75176B производства фирмы Texas Instrument. Контроллер шины PCI реализован микросхемой PCI2040, имеющей 16 информационных выходов и транслирующей сигналы управления PCI шины. Подключение к шине PCI производится согласно используемых в раземе контактов. О наличии данных для передачи подключенным к МК устройствам контроллер сигнализирует сигналом низкого уровня с выхода GPWR, который поступает на вход РВ2 микроконтроллер. О готовности к работе МК извещает контроллер PCI сигналом низкого уровня с выхода РВ3, который поступает на вход GPRDY. При наличии данных, которые должны быть переданы ПК на выходе РВ1 устанавливается сигнал низкого уровня, который поступает на вход GPINT контроллера. На основании разработанной функциональной схемы преобразователя интерфейсов и используя выбранную элементную базу, строится принципиальная схема устройства, приведенная в приложении В. Линии интерфейса I2C подключены к выводам PD0, PD1 микроконтроллера DD1, работающих в режиме порта приема / передачи данных по интерфейсу I2C. Дуплексный канал передачи данных по протоколу RS485 организован выводами PD2, PD3 микроконтроллера, работающими в режиме порта приема / передачи данных в последовательном коде. Управление работой микросхемы преобразования DA1 производится с выхода РВ0. Сигнал низкого уровня на выходе PA0 включает микросхему преобразования в режим приема данных из линии интерфейса RS-485, а сигнал высокого уровня - включает микросхему в режим передачи данных в линию интерфейса RS-485. Выходы порта GPD контроллера РСI подключен к портам РА и РС микроконтроллера, которые могут сформировывать один 16-тиразрядный порт. Принцип работы устройства. При включении и готовности к работе МК снимает сигнал на выходе РВ3. Если поступил пакет данных от ПК на контроллер PCI он снимает сигнал на выводе РВ2 МК. Микроконтроллер, получив сигнал низкого уровня на входе РВ2 принимает пакет данных на входы портов РА и РВ. Из полученного пакета выделяет адрес устройства, к которому идет обращение, определяет по какому из интерфейсов подключено устройство с этим адресом и выдает либо через специальный регистр I2CTX либо через специальный регистр TXREG вначале первый байт - с адресом, затем второй байт - с командой подключенному устройству. Если команда была на выдачу данных подключенным устройством, то МК либо прекращает передачу по интерфейсу I2C либо переводит преобразователь интерфейса в режим приема снятием сигнала на выходе РВ0. После чего ожидает поступление данных в специальный регистр I2CRX либо в специальный регистр RXREG. После получения данных МК на выходах портов РА и РС формирует полученные данные и снимает сигнал на выходе РВ1, извещая контроллер PCI о наличии данных на входе данных GPD. После этого все сигналы возвращаются в исходное состояние - сигналы РВ0-РВ3 установлены, на выходе портов РА и РС нулевые значения. Если ПК должен передать данные для подключенного устройства, то контроллер PCI вновь устанавливает сигнал на выходе GРWR, формирует на выходах порта GРD принятые от ПК данные и вновь снимает сигнал GPWR. МК принимает данные и передает их по тому же интерфейсу, по которому до этого был передан адрес и команда подключенному устройству. 5. Разработка структуры программного обеспечения. Программирование модулей Работа МК начинается с перевода порта PD в альтернативный режим - включаются порты последовательного приема-передачи данных (блок 1) и перевода портов РА и РС в режим совмещенного порта (блок 2). После этого производится начальная установка выходных сигналов - установка преобразователя RS-485 в режим передачи, сброс сигнала готовности данных и установка сигнала готовности к работе (блок 3). После этого начинается основной цикл работы микроконтроллера. Если от контроллера PCI поступил сигнал готовности данных (блок 4), то принимаются байты с входов портов РА и РС (блок 5). После этого определяется, по какому из интерфейсов подключено адресованное устройство (блок 6). Если оно подключено по интерфейсу I2C, то в специальный регистр передачи по этому интерфейсу записывается вначале адрес подключенного устройства (блок 7) и ожидается конец передачи этого байта (блок 8), после чего аналогично передается команда подключенному устройству (блоки 9-10). Затем определяется тип переданной команды (блок 11). Если была подана команда на выдачу данных подключенным устройством, то ожидается поступление флага готовности данных (блок 12), после чего принятый байт передается в выходной порт РА, флаг готовности данных сбрасывается и формируется сигнал наличия данных для передачи по PCI (блок 13). После этого сигнал наличия данных вновь снимается (блок 14). Если поступила команда на передачу данных подключенному устройству, то ожидается сигнал от контроллера PCI о готовности данных (блок 15), после чего байт передается подключенному устройству (блоки 16-18). Если адресовано устройство, подключенное по интерфейсу RS-485, то передается адрес (блок 19-20), затем команда устройству (блок 21-22). После этого анализируется поданная команда (блок 23). Если подключенное устройство должно передать данные, то преобразователь переводится в режим приема (блок 24), ожидается поступление байта данных (блок 25), после чего принятый байт передается в выходной порт РА, сигнал готовности данных сбрасывается, преобразователь переводится в режим передачи и формируется сигнал наличия данных для передачи по PCI (блок 26). После этого сигнал наличия данных вновь снимается (блок 27). Если необходимо передать информацию подключенному устройству, то ожидается пока контроллер PCI сообщит о наличии данных (блок 28), после чего принятый байт передается подключенному устройству (блоки 29-30). Заключение В данном курсовом проекте разработано устройство управления интерфейсами RS485 и I2C персональным компьютером с подключением к шине PCI. Согласование сигналов с шиной PCI производится с помощью специализированного контроллера PCI, устройство управления интерфейсами реализовано на основе микроконтроллера. Разработана структурная и функциональная схемы устройства, произведен выбор элементной базы и рассчитаны временные параметры. На основании функциональной схемы и с использованием выбранной элементной базы разработана принципиальная схема преобразователя интерфейсов, а также разработан алгоритм работы микроконтроллера. Список использованной литературы Алексеенко А.Г. Проектирование радиоэлектронной аппаратуры на микроконтроллерах. - М.: Радио и связь, 1984. Хвощ С.Т. МП и микроЭВМ в САУ: Справочник. - Л.: Машиностроение, 1987 Конспект лекций по дисциплине МПС. Справочник: Применение интегральных микросхем в электронной вычислительной технике. - М.: Радио и связь, 1987. |