Проектирование устройства Post Card PCI

Архитектура сигнальных шин PCI. Описание интерфейса JTAG. Принцип работы устройства Post Card PCI, его технические характеристики, схема, настройка и печатная плата. Элементы языка и структура текстового описания AlteraHDL. Листинг программы прошивки.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 13.01.2012
Размер файла 1,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

  • ВВЕДЕНИЕ
  • 1. ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ
    • 1.1 Принцип работы устройства POST Card
    • 1.2 Интерфейс PCI
      • 1.2.1 Архитектура и основные характеристики шины PCI
      • 1.2.2 Сигналы шины PCI
    • 1.3 Интерфейс JTAG
  • 2. КОНСТРУКТОРСКАЯ ЧАСТЬ
    • 2.1 Технические характеристики устройства POST Card PCI
    • 2.2 Особенности конструкции POST Card PCI
    • 2.3 Принципиальная схема устройства POST Card PCI
    • 2.4 Настройка POST Card PCI
    • 2.5 Печатная плата
  • 3. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
    • 3.1 Основы языка AlteraHDL
      • 3.1.1 Элементы языка
      • 3.1.2 Структура текстового описания
    • 3.2 Программирование ПЛИС
    • 3.3 Листинг программы прошивки
  • 4. ОХРАНА ТРУДА
    • 4.1 Опасные и вредные производственные факторы
    • 4.2 Мероприятия по охране труда
  • 5. ЭКОНОМИЧЕСКАЯ ЧАСТЬ
    • 5.1 Расчет затрат на разработку и внедрение в производство POST Card PCI
    • 5.2 Расчет экономической эффективности от внедрения устройства POST Card PCI
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
  • ВВЕДЕНИЕ
  • Подавляющую долю рынка персональных компьютеров (ПК) в нашей стране составляют компьютеры, собранные на основе микропроцессоров фирмы Intel и микропроцессоров совместимых с ними. Такие персональные компьютеры называют ещё IBM-совместимыми по названию фирмы IBM, первой выпустившей персональный компьютер не базе микропроцессора фирмы Intel.
  • Популярность IBM-совместимых персональных компьютеров объясняется их "открытой" архитектурой, благодаря которой они стали универсальными и теперь используются в различных сферах жизни.
  • Современные персональные компьютеры обладают высокой надёжностью, но иногда они выходят из строя или начинают неправильно работать. Причины могут быть разными. Поиском неисправностей и ремонтом компьютеров занимаются специальные сервисные центры. При этом очень важно быстро обнаружить неполадку; для этой цели в арсенале сервисных инженеров имеется специальное устройство - POST Card.
  • Первоначально устройства POST Card применялись для тестирования системных плат при их производстве, с целью выявления возможных дефектов. Сейчас устройство POST Card может быть полезно не только специалистам сервисных центров и техническим инженерам, но и всем тем, кто занимается ремонтом, модернизацией и сборкой ПК самостоятельно.
  • Наибольшее распространение до сих пор имели платы POST Card ISA. В настоящее время архитектура шины ISA считается устаревшей и не используется, поскольку её применение значительно снижает общую производительность системы. Место ISA-слотов теперь занимают слоты расширения более производительной шины - PCI. Вопросы проектирования всевозможных устройств сопряжения, поддерживающих интерфейс PCI, имеют особую актуальность сегодня.
  • Данная дипломная работа посвящена проектированию устройства POST Card PCI. Цель работы - показать эффективность устройства POST Card при поиске неисправностей и ремонте персональных компьютеров. В работе я пытался рассмотреть этапы проектирования устройства POST Card PCI.
  • 1. ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ
  • 1.1 Принцип работы устройства POST Card
  • Любая системная плата IBM-совместимого компьютера содержит микросхему постоянной памяти, так называемое постоянное запоминающее устройство (ПЗУ), в которой хранится BIOS (Basic Input Output System - базовая система ввода-вывода). BIOS представляет собой комплекс первичных программ, которые производят проверку базового оборудования компьютера, распознают его конфигурацию и загружают операционную систему.
  • Как только на процессор поступает питание, он обращается к этой микросхеме и выполняет процедуру POST (Power On Self Test) - программу самотестирования. Данная процедура позволяет убедиться в работоспособности компьютера и предотвращает работу на неисправном компьютере. В процессе тестирования процедура POST генерирует специальный код тестирования (POST-код), который выводится в виде байта в диагностический порт ввода-вывода компьютера по определенному адресу. Адрес порта вывода кода тестирования зависит от архитектуры компьютера (обычно это адрес 0080h). В случае обнаружения неисправности в тестируемом устройстве процедура POST просто "зависает", а предварительно выведенный POST-код однозначно определяет, на каком из тестов произошло "зависание".
  • Устройство POST Card фиксирует генерируемый POST-код и отображает его в удобном для пользователя виде. POST-карта представляет собой обычную карту расширения, которая устанавливается в соответствующий слот материнской платы, например ISA или PCI. Общий вид устройства для шины ISA представлен на рисунке 1.1.
  • Рисунок 1.1. Общий вид устройства POST Card для шины ISA
  • Коды ошибок отображаются в виде одноразрядных шестнадцатеричных чисел в диапазоне 00h-FFh. Следует отметить, что таблицы POST-кодов различны для различных производителей BIOS и, в связи с появлением новых чипсетов, несколько отличаются даже для различных версий одного и того же производителя BIOS. Расшифровку POST-кодов можно найти на сайтах производителей BIOS: для AMI это http://www.ami.com, для AWARD - http://www.award.com.
  • Структурная схема устройства POST Card приведена на рисунке 1.2.
  • Рисунок 1.2. Структурная схема устройства POST Card
  • POST-карта состоит из четырёх основных блоков:
  • — RG - восьмиразрядный параллельный регистр - предназначен для записи и хранения POST-кода;
  • — DC1 - дешифратор разрешения записи в регистр; сигнал на выходе дешифратора становится активным в случае появления на адресной шине адреса диагностического порта (0080h), а на шине управления сигнала записи;
  • — DC2 - дешифратор-преобразователь двоичного кода;
  • — HG - двухразрядный семисегментный индикатор - предназначен для отображения кода ошибки (1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, C, d, E, F).
  • Последовательность действий при ремонте компьютера с использованием POST Card выглядит следующим образом:
  • 1. выключаем питание неисправного компьютера;
  • 2. устанавливаем карту в любой свободный слот материнской платы;
  • 3. включаем питание компьютера и считываем с индикатора POST Card соответствующий POST код, на котором "зависает" загрузка компьютера;
  • 4. по таблицам POST кодов определяем, на каком из тестов возникли проблемы и осмысливаем вероятные причины;
  • 5. при выключенном питании проверяем соединения или производим замену неисправных компонентов компьютера.
  • 6. повторяем пункты 3, 4, 5, добиваясь устойчивого прохождения процедуры POST и начала загрузки операционной системы.
  • 7. при помощи программных утилит производим окончательное тестирование аппаратных компонентов.
  • 1.2 Интерфейс PCI
  • Шины ввода-вывода позволяют подключать к компьютеру дополнительные устройства для расширения его возможностей. Все компоненты персонального компьютера соединяются между собой через стандартные интерфейсы. Для правильной работы, подключаемое устройство должно полностью соответствовать спецификации интерфейса подключения. Устройство POST Card PCI взаимодействует с ПК через шину PCI, поэтому рассмотрим архитектуру этой шины и её основные характеристики подробнее.
  • 1.2.1 Архитектура и основные характеристики шины PCI
  • В конце 1980-х годов распространение 32-разрядных центральных процессоров и операционных систем с графическим интерфейсом привело к тому, что шина ISA (8,33 МГц) перестала справляться со своими обязанностями. Для увеличения производительности компьютеров требовалось создание шины с новой архитектурой. В результате в 1992 году компанией Intel была разработана шина PCI (Peripheral Component Interconnect) - шина соединения периферийных компонентов. В настоящее время интерфейс PCI является основным интерфейсом подключения к материнской плате различных устройств. Устройством PCI называется микросхема, или карта расширения, подключенная к одной из шин PCI и использующая для доступа к конфигурационным регистрам выделенную ей линию IDSEL, принадлежащую этой шине.
  • Тактовая частота стандартной шины PCI равна 33 МГц, а её разрядность соответствует разрядности данных процессора. Существует несколько разновидностей шины PCI, они представлены в таблице 1.1.
  • Таблица 1.1 Типы шины PCI
  • Тип шины

    Скорость передачи данных, Мбайт/с

    32-разрядная PCI 1.0, 33 МГц

    133

    32-разрядная PCI 2.1, 66 МГц

    266

    64-разрядная PCI 2.1, 33 МГц

    266

    64-разрядная PCI 2.1, 66 МГц

    532

    64-разрядная PCI-X, 133 МГц

    1066

    • Высокая пропускная способность объясняется независимой архитектурой шины PCI (рисунок 1.3) - шина может работать параллельно с центральным процессором, не занимая его ресурсов. Поддерживается синхронный 32 или 64-разрядный обмен данными. При этом используется метод мультиплексирования (передача адресов и данных по очереди по одним линиям). Такой способ передачи позволил уменьшить число контактов в разъемах. Спецификация PCI требует поддержки режима Multiple Bus. В таком режиме устройства перехватывают управление шиной и самостоятельно распределяют ее ресурсы. По шине PCI возможна передача комбинированных данных (до восьми типов), например звуковых, видео, цифровых. Один канал контроллера PCI поддерживает до четырех слотов расширения. Для удвоения их числа применяется мост между парой контроллеров.
    • Рисунок 1.3. Архитектура шины PCI
    • Метод передачи данных по шине называют Linear Burst (метод линейных пакетов). То есть данные при записи-чтении идут единым пакетом. Важной особенностью интерфейса PCI является поддержка протокола Plug-and-Play - происходит автоматическое определение устройства и выделение ему необходимых ресурсов для работы. Шина PCI соединяется с системной шиной процессора через контроллер, который интегрирован в одну из микросхем чипсета материнской платы. С устройствами PCI процессор взаимодействует посредством команд обращения к памяти и портам ввода-вывода в областях, выделенных каждому такому устройству при конфигурировании. В общем, шина PCI представляет набор сигнальных линий, соединяющих различные устройства (слоты расширения, микросхемы на системной плате). В системе может присутствовать несколько шин PCI, соединенных мостами PCI-PCI Bridge. Головной мост (Host Bridge) соединяет шину с ядром системы (процессором и памятью). Каждая шина имеет свой номер (PCI bus number). Шины нумеруются последовательно; главная шина имеет нулевой номер. На рисунке 1.4 изображены разъёмы подключения к шине PCI. Всего существует три вида разъёмов. Разъём с питанием +3,3 В имеет ключ (пластмассовую перегородку) в позиции контактов 12/13, который не позволяет установить подключаемую карту в слот с неподходящим напряжением питания. Аналогично разъём, предназначенный для плат расширения с питанием +5 В, имеем ключ в позиции 50/51. У универсального разъёма два ключа: 12/13 и 50/51. 32-разрядный слот заканчивается контактами А62/В62, 64-разрядный - А94/В94.
    • Рисунок 1.4. Разъёмы шины PCI
    • 1.2.2 Сигналы шины PCI
    • Назначение выводных контактов шины PCI c напряжением питания +5 В описано в таблице 1.2.
    • Таблица 1.2 Назначение выводных контактов шины PCI, +5 В
    • Контакт

      Назначение сигнала

      Контакт

      Назначение сигнала

      B1

      -12 В

      A1

      Test Reset

      B2

      Test Clock

      A2

      +12 В

      B3

      Общий

      A3

      Test Mode Select

      B4

      Test Data Output

      A4

      Test Data Input

      B5

      +5 В

      A5

      + 5 В

      B6

      +5 В

      A6

      Interrupt A

      B7

      Interrupt B

      A7

      Interrupt C

      B8

      Interrupt D

      A8

      +5 В

      B9

      PRSNT1#

      A9

      Зарезервирован

      B10

      Зарезервирован

      A10

      +5 В

      B11

      PRSNT2#

      A11

      Зарезервирован

      B12

      Общий

      A12

      Общий

      B13

      Общий

      A13

      Общий

      B14

      Зарезервирован

      A14

      Зарезервирован

      B15

      Общий

      A15

      Reset

      B16

      Clock

      A16

      +5 В

      B17

      Общий

      A17

      Общий

      B18

      Request

      A18

      Общий

      B19

      +5 В

      A19

      Зарезервирован

      B20

      Адрес, бит 31

      A20

      Адрес, бит 30

      B21

      Адрес, бит 29

      A21

      +3,3 В

      B22

      Общий

      A22

      Адрес, бит 28

      B23

      Адрес, бит 27

      A23

      Адрес, бит 26

      B24

      Адрес, бит 25

      A24

      Общий

      B25

      +3,3 В

      A25

      Адрес, бит 24

      B26

      C/BE 3

      A26

      Init Device Select

      B27

      Адрес, бит 23

      A27

      +3,3 В

      B28

      Общий

      A28

      Адрес, бит 22

      B29

      Адрес, бит 21

      A29

      Адрес, бит 20

      B30

      Адрес, бит 19

      A30

      Общий

      B31

      +3,3 В

      A31

      Адрес, бит 18

      B32

      Адрес, бит 17

      A32

      Адрес, бит 16

      B33

      C/BE 2

      A33

      +3,3 В

      B34

      Общий

      A34

      Cycle Frame

      B35

      Initiator Ready

      A35

      Общий

      B36

      +3,3 В

      A36

      Target Ready

      B37

      Device Select

      A37

      Общий

      B38

      Общий

      A38

      Stop

      B39

      Lock

      A39

      +3,3 В

      B40

      Parity Error

      A40

      Snoop Done

      B41

      +3,3 В

      A41

      Snoop Backoff

      B42

      System Error

      A42

      Общий

      B43

      +3,3 В

      A43

      PAR

      B44

      C/BE 1

      A44

      Адрес, бит 15

      B45

      Адрес, бит 14

      A45

      +3,3 В

      B46

      Общий

      A46

      Адрес, бит 13

      B47

      Адрес, бит 12

      A47

      Адрес, бит 11

      B48

      Адрес, бит 10

      A48

      Общий

      B49

      Общий

      A49

      Адрес, бит 9

      B50

      Ключ

      A50

      Ключ

      B51

      Ключ

      A51

      Ключ

      B52

      Адрес, бит 8

      A52

      C/BE 0

      B53

      Адрес, бит 7

      A53

      +3,3 В

      B54

      +3,3 В

      A54

      Адрес, бит 6

      B55

      Адрес, бит 5

      A55

      Адрес, бит 4

      B56

      Адрес, бит 3

      A56

      Общий

      B57

      Общий

      A57

      Адрес, бит 2

      B58

      Адрес, бит 1

      A58

      Адрес, бит 0

      B59

      +5 В

      A59

      +5 В

      B60

      Acknowledge 64-bit

      A60

      Request 64-bit

      B61

      +5 В

      A61

      +5 В

      B62

      Ключ (+5 В)

      A62

      Ключ (+5 В)

      • Чтобы передать по шине PCI какой-нибудь сигнал, устройство сначала должно получить к ней доступ. Шина PCI управляется централизованным арбитром, как показано на рисунке 1.5. В большинстве случаев арбитр шины встраивается в один из мостов между шинами. От каждого PCI-устройства к арбитру тянутся две специальные линии. Одна из них (REQ#) используется для запроса шины, а вторая (GNT#) - для получения разрешения на доступ к шине.
      • Рисунок 1.5. Арбитр шины PCI
      • Чтобы сделать запрос на доступ к шине, PCI-устройство (в том числе и центральный процессор) устанавливает сигнал REQ# и ждет, пока арбитр не установит сигнал GNT#. Если арбитр установил сигнал GNT#, то устройство может использовать шину в следующем цикле. Алгоритм, которым руководствуется арбитр, не зависит от технических характеристик шины PCI. Допустимы арбитраж по кругу, арбитраж по приоритету, другие схемы арбитража. Хороший арбитр должен быть справедлив, чтобы не заставлять отдельные устройства ждать целую вечность.
      • Шина предоставляется для одной транзакции, хотя продолжительность этой транзакции теоретически произвольна. Если устройству нужно совершить вторую транзакцию и ни одно другое устройство не запрашивает шину, оно может занять шину снова, хотя обычно между транзакциями требуется вставлять пустой цикл. Однако при особых обстоятельствах (при отсутствии конкуренции на доступ к шине) устройство может совершать последовательные транзакции без пустых циклов между ними. Если задающее устройство выполняет очень длительную передачу, а какое-нибудь другое устройство выдало запрос на доступ к шине, арбитр может сбросить сигнал на линии GNT#. Предполагается, что задающее устройство следит за линией GNT#. Если сигнал сбрасывается, устройство должно освободить шину в следующем цикле. Такая система позволяет осуществлять очень длинные передачи (что весьма рационально) при отсутствии конкуренции на доступ к шине, однако при этом она быстро реагирует на запросы шины, поступающие от других устройств.
      • Обмен информацией по шинам PCI организован в виде транзакций - логически завершенных операций обмена. В каждой транзакции выполняется одна команда - как правило, чтение или запись данных по указанному адресу. Транзакция начинается с фазы адреса, в которой инициатор задает команду и целевой адрес. Далее могут следовать фазы данных, в которых одно устройство (источник данных) помещает данные на шину, а другое (приемник) их считывает. Транзакции, в которых присутствует множество фаз данных, называются пакетными. Есть и одиночные транзакции (с одной фазой данных). Транзакция может завершиться и без фаз данных, если целевое устройство (или инициатор) не готово к обмену. Состояние всех сигнальных линий воспринимаются по положительному перепаду CLK.
      • Рассмотрим сигналы шины PCI. Начнем с обязательных (32-разрядных) сигналов. Сигнал CLK запускает шину. Большинство сигналов совпадают с ним во времени. В отличие от шины ISA, в шине PCI транзакция начинается на спаде сигнала CLK, то есть не в начале цикла, а в середине.
      • Сигналы AD (их 32) нужны для адресов и данных. Обычно адрес устанавливается во время первого цикла, а данные - во время третьего. Сигнал PAR - это бит четности для сигнала AD. Сигнал С/ВЕ# выполняет две функции. Во время первого цикла он содержит команду (считать одно слово, считать блок и т. п.). Во время второго цикла он содержит массив размером 4 бита, который показывает, какие байты 32-разрядного слова действительны. Использовав сигнал С/ВЕ#, можно считать 1, 2 или 3 байта из слова, а также все слово целиком.
      • Сигнал FRAME# устанавливается задающим устройством, чтобы начать транзакцию. Этот сигнал сообщает подчиненному устройству, что адрес и команды в данный момент действительны. При чтении одновременно с сигналом FRAME# устанавливается сигнал IRDY#. Он сообщает, что задающее устройство готово принять данные. При записи сигнал IRDY# устанавливается позже, когда данные уже переданы в шину.
      • Сигнал IDSEL связан с тем, что у каждого устройства PCI должно быть конфигурационное пространство на 256 байт, которое другие устройства могут считывать (установив сигнал IDSEL). Это конфигурационное пространство содержит характеристики устройства. В некоторых операционных системах механизм автоматического конфигурирования использует это пространство, чтобы выяснить, какие устройства подключены к шине.
      • А теперь рассмотрим сигналы, которые устанавливаются подчиненным устройством. Сигнал DEVSEL# означает, что подчиненное устройство распознало свой адрес на линиях AD и готово участвовать в транзакции. Если сигнал DEVSEL# не поступает в течение определенного промежутка времени, задающее устройство предполагает, что подчиненное устройство, к которому направлено обращение, либо отсутствует, либо неисправно.
      • Следующий сигнал - TRDY#. Его подчиненное устройство устанавливает при чтении, чтобы сообщить, что данные находятся на линиях AD, и при записи, чтобы сообщить, что оно готово принять данные.
      • Следующие три сигнала требуются для передачи сообщений об ошибках. Один из них, сигнал STOP#, устанавливается подчиненным устройством, если произошла какая-нибудь неполадка и нужно прервать текущую транзакцию. Следующий сигнал, PERR#, используется для сообщения об ошибке четности в данных на предыдущем цикле. Для чтения этот сигнал устанавливается задающим устройством, для записи - подчиненным устройством. Необходимые действия должно предпринимать устройство, получившее этот сигнал. Наконец, сигнал SERR# служит для сообщения об адресных и системных ошибках.
      • Сигналы REQ# и GNT# предназначены для арбитража шины. Они устанавливаются не тем устройством, которое является задающим в данный момент, а тем, которому нужно стать задающим. Последний обязательный сигнал, RST#, применяется для перезагрузки системы, которая происходит, либо если пользователь нажимает кнопку RESET, либо если какое-нибудь системное устройство обнаруживает фатальную ошибку. После установки этого сигнала компьютер перезагружается.
      • Сигналы INTx нужны для запроса прерываний. Плата PCI может содержать до четырех логических устройств, каждое из которых имеет собственную линию запроса прерываний.
      • 1.3 Интерфейс JTAG
      • В 1985 сформировалась специальная группа ведущих производителей электроники - JTAG (Joint Test Action Group). Для решения проблем тестирования JTAG выдвинула как промышленный стандарт спецификацию IEEE 1149.1 (IEEE Standard Test Access Port and Boundary Scan Architecture).
      • Интерфейс JTAG предназначен для тестирования сложных логических схем. Кроме того, через него возможно программирование различных устройств, в том числе и энергонезависимой памяти микроконтроллеров. Контакты для сигналов JTAG имеются на шине PCI.
      • Интерфейсом JTAG управляет одно устройство-контроллер (чаще всего это ПК с соответствующим интерфейсным адаптером). Ниже перечислены сигналы интерфейса JTAG.
      • ТСК (Test Clock) - сигнал синхронизации последовательных данных; генерируется контроллером.
      • TMS (Test Mode Select) - сигнал выбора тестового режима. Генерируется контроллером.
      • TDI (Test Data Input) - входные данные, принимаемые устройством в последовательном двоичном коде (младшим битом вперед).
      • TDO (Test Data Output) - выходные данные, передаваемые устройством в последовательном двоичном коде.
      • TRST (Test Logic Reset) - необязательный сигнал сброса логики интерфейсного порта, генерируемый контроллером.
      • Эти сигналы (все однонаправленные), имеющие обычные логические уровни, образуют тестовый порт ТАР (Test Access Port), через который тестируемое (программируемое) устройство подключается к контроллеру. В задачу тестирующего оборудования входит формирование тестовых сигналов по программе тестирования, определенной разработчиком тестируемого устройства, и сравнение полученных результатов с эталонами. ТАР-контроллер способен сканировать ячейки - управлять ими и считывать с них информацию. Отсюда и пошло название Boundary Scan, которое можно перевести как "периферийное сканирование". При включенном тестовом режиме ТАР-контроллер может логически отсоединить сигналы от внешних выводов, задавать входные воздействия и считывать результаты - собственно, это все, что необходимо для тестирования последовательных схем (автоматов с памятью).
      • Тестовая логика, встраиваемая в устройство, поддерживающее JTAG, состоит из следующих элементов:
      • — тестовый порт ТАР (четыре интерфейсных сигнала);
      • — ТАР-контроллер, управляющий тестовыми регистрами;
      • — регистр инструкций IR, который принимает последовательный код с входа TDI;
      • — регистры тестовых данных, из которых любое устройство должно иметь три обязательных регистра: ВPR (Bupas Register), DIR (Device Identification Register) и BSR (Boundary Scan Register).
      • Регистры инструкций и данных представляют собой независимые сдвиговые регистры, соединенные параллельно. На их входы (старшие биты) приходит сигнал TDI, с выходов (младшие биты) снимается сигнал ТDО. По каждому положительному перепаду, данные продвигаются на один бит.
      • 2. КОНСТРУКТОРСКАЯ ЧАСТЬ
      • 2.1 Технические характеристики устройства POST Card PCI
      • Технические характеристики устройства POST Card PCI:
      • — Напряжение питания: +5 В;
      • — Ток потребления, не более: 200 мА;
      • — Частота шины PCI: 33 МГц;
      • — Адрес диагностического порта: 0080h;
      • — Индикация POST кодов: в шестнадцатеричном виде, один байт;
      • — Индикация сигналов PCI шины: RST (левая точка индикатора), CLK (правая точка индикатора);
      • — Индикаторы наличия напряжений питания PCI шины: +5 В; -12 В; +12 В; +3,3 В;
      • — Совместимость с чипсетами материнских плат: Intel, VIA, SIS;
      • — Размер печатной платы: 112х90 мм.
      • 2.2 Особенности конструкции POST Card PCI
      • Так как рабочая частота шины PCI относительно высока (33 МГц), то для реализации подобного устройства была выбрана недорогая программируемая логическая интегральная схема (ПЛИС) фирмы Altera EPM3064ALC44-10, имеющую достаточное быстродействие. ПЛИС выпускается в корпусе PLCC44 с шагом выводов 2,5 мм (рисунок 2.1).
      • Рисунок 2.1. ПЛИС фирмы Altera EPM3064ALC44-10
      • ПЛИС EPM3064ALC44-10 представляет собой цифровую интегральную микросхему, состоящую из программируемых логических блоков и программируемых соединений между этими блоками. Технические характеристики ПЛИС EPM3064ALC44-10 приведены в таблице 2.1.
      • Таблица 2.1 Технические характеристики EPM3064ALC44-10
      • Корпус

        Количество контактов ввода-вывода

        Напряжение ядра

        Память

        Семейство

        44-Pin PLCC

        34

        +3,3 В

        EEPROM

        MAX 3000

        • Основными элементами структуры ПЛИС семейства MAX 3000 являются:
        • — логические блоки;
        • — макроячейки;
        • — логические расширители;
        • — программируемая матрица соединений;
        • — элементы ввода-вывода.
        • В основе архитектуры MAX 3000 лежат логические блоки, состоящие из 16 макроячеек. Логические блоки соединяются с помощью программируемой матрицы соединений. Проектирование цифровых устройств с применением ПЛИС имеет свои особенности. При разработке цифровых схем на ПЛИС выделяют следующие этапы:
        • — выбор ПЛИС;
        • — разработка схемы с помощью специального языка описания или универсального схемного редактора;
        • — моделирование схемы с целью проверки правильности её работы;
        • — размещение схемы на кристалле и проведение связей;
        • — трансляция введённой схемы в битовую последовательность;
        • — загрузка этой последовательности (программирование ПЛИС);
        • Разработка схем ПЛИС производится в специальных системах автоматизированного проектирования. Эти системы обычно создаются производителем ПЛИС. ПЛИС EPM3064ALC44-10 можно запрограммировать при помощи программного обеспечения фирмы Altera прямо в изготовленном устройстве через специальный разъем JTAG. Для программирования используется специальный кабель ByteBlasterMV, подключаемый к параллельному порту (LPT) персонального компьютера (рисунок 2.2). Стандарт IEEE 1149.4 JTAG позволяет не только производить загрузку данных конфигурации в микросхему, но и проверять правильность её работы. Память ПЛИС изготовлена по EEPROM технологии и позволяет производить до 100 циклов записи/стирания. Стирание конфигурации осуществляется электрическими сигналами.
        • Рисунок 2.2. Соединение устройства POST Card PCI с персональным компьютером кабелем ByteBlasterMV
        • Для подключения загрузочного кабеля к программируемой плате используется 10-контактный разъем (рисунок 2.3).
        • Рисунок 2.3. Разъём загрузочного кабеля
        • На рисунке 2.4 показан 10-контактный штыревой разъём JTAG программируемого устройства.
        • Рисунок 2.4 Штыревой разъём JTAG: а) вид сверху; б) вид сбоку
        • 2.3 Принципиальная схема устройства POST Card PCI
        • Принципиальная электрическая схема устройства POST Card PCI приведена в приложении А. В таблице 2.2 перечислены комплектующие устройства POST Card PCI.
        • Таблица 2.2 Комплектующие устройства POST Card PCI
        • Обозначение

          Наименование

          Количество

          C1

          Конденсатор 220 пФ

          1

          C2, C5

          Конденсатор электролитический 22 мкФ/10 В

          2

          C3

          Конденсатор электролитический 10 мкФ/6,3 В

          1

          C4, C6…C11

          Конденсатор 0,1 мкФ

          7

          DD1

          Микросхема EPM3064ALC44-10

          1

          DD2

          Микросхема LM1117DT-3,3 В

          1

          DD3

          Микросхема 74HC14

          1

          DD4, DD5

          Микросхема 74HC595

          2

          D1…D4

          Светодиод L-934SGD

          4

          HL1

          Двухразрядный семисегментный индикатор DA56-11GWA

          1

          R1…R16, R27

          Резистор 470 Ом

          17

          R17, R18

          Резистор 10 кОм

          2

          R19…R24, R26

          Резистор 1 кОм

          7

          R25

          Резистор 150 Ом

          1

          X1

          Разъём JTAG - PLD10

          1

          • Микросхема 74HC595 представляет собой 8-разрядный сдвиговый регистр с последовательным вводом и последовательным и параллельным выводами информации. Параллельный вывод осуществляется через буферный регистр с выходами, которые имеют три состояния. Информационный сигнал подают на вход Ds (вывод 14), сигнал записи - на вход CLK (вывод 11), а сигнал вывода на вход LOAD (вывод 12).
          • Микросхема 74HC14 представляет собой шесть триггеров-инверторов Шмидта. Триггер Шмидта - это специфический вид триггера, имеющего один вход и один выход. Переход из одного устойчивого состояния триггера в другое осуществляется при определенных уровнях входного напряжения, называемых пороговыми уровнями. Сигналы с PCI шины компьютера AD0-AD15, С/ВЕ0-С/ВЕ3, CLK, RST, FRAME, IRDY, TRDY IDSEL, DEVSEL подаются на DD1. На ПЛИС DD1 реализовано простейшее Target PCI устройство вывода по фиксированному адресу 0080h. При каждом поступлении POST кода с шины PCI этот POST код защелкивается во внутреннем 8-разрядном регистре ПЛИС, преобразуется в шестнадцатеричный код и в последовательном виде через буферный элемент DD3A поступает на сдвиговые регистры DD5, DD4. По сигналу загрузки DATA_STORE, от ПЛИС проходящему через буферный элемент DD3D, POST код переписывается из внутренних последовательных регистров DD5, DD4 в их внутренние параллельные регистры и, через токоограничительные резисторы R1-R16, подается на сдвоенный семисегментный индикатор HL1 для индикации. Кроме того, две точки на индикаторе HL1 служат для отображения состояния сигналов RST и CLK PCI шины компьютера. Индикатор имеет общий анод - все аноды сегментов подсоединены к выводу +5 В общего источника питания. Зажигание правой точки соответствует наличию активного сигнала синхронизации CLK шины PCI, зажигание левой точки - наличию активного сигнала RST шины PCI. На элементах DD3B, DD3F, DD3E, DD3C собран тактовый генератор, который обеспечивает независимость работы узла индикации в случае срыва генерации CLK PCI шины в неисправном компьютере. Так как на некоторых старых моделях материнских плат на PCI слотах отсутствует напряжение +3,3 В, то для питания ПЛИС на ИС DD2 собран стабилизатор напряжения +3,3 В. Трёхвыводной стабилизатор напряжения (вход, выход и земля) настраивается изготовителем на нужное фиксированное напряжение. Конденсатор, поставленный параллельно выходу, улучшает переходные процессы и удерживает полное выходное сопротивление на низком уровне при высоких частотах (рисунок 2.5). Светодиоды D1-D4 служат для индикации наличия напряжений питания +12 В; -12 В; +3,3 В; +5 В в слоте PCI.
          • Рисунок 2.5. Подключение стабилизатора напряжения LM1117DT-3,3 В
          • После включения питания компьютера (или нажатия на кнопку RESET) и до появления первого POST кода на индикатор POST Card выводится специальный символ (рисунок 2.6), который свидетельствует об отсутствии вывода компьютером каких-либо POST кодов.
          • Рисунок 2.6. Спецсимвол
          • Это облегчает диагностику и позволяет наглядно определить, стартует ли компьютер вообще. Кроме того, этот же символ выводится при программном сбросе PCI шины для фиксации прохождения короткого сигнала RST (RESET).
          • При изготовлении устройства необходимо обратить внимание на правильную установку панельки PLCC44 под ПЛИС DD1 по ключу, а также во время пайки не допускать затекания флюса внутрь панельки.
          • 2.4 Настройка POST Card PCI
          • Для настройки POST Card и первого включения следует по возможности использовать старую исправную материнскую плату с шиной PCI. Первое включение POST Card производится без установленной в панельку ПЛИС DD1, при этом следует проверить напряжение питания ПЛИС (35, 15, 3, 23 ножки DD1), выдаваемое стабилизатором DD2 - оно должно быть около +3,3 В, а также необходимо убедиться в наличии стабильных импульсов прямоугольной формы на частотах около 100 - 200 кГц на 6 и 10 ножках ИС DD3.
          • Кроме того, компьютер с установленной POST Card без ПЛИС должен нормально загружаться, что говорит об отсутствии дефектов монтажа. Если эти предварительные проверки прошли успешно, то можно установить ПЛИС в панельку, подключить к разъему Х1 JTAG кабель ByteBlasterMV, подать на POST Card питание +5 В и запрограммировать ПЛИС. Принципиальная схема соединения ПЛИС с разъёмом JTAG приведена в приложении Б.
          • 2.5 Печатная плата
          • Двухсторонняя печатная плата POST Card PCI с металлизацией переходных отверстий изготовлена из стеклотекстолита толщиной 1,5 мм, фольга 18 мкм. Элементы проводящего рисунка выполнены на обеих сторонах печатной платы, в соответствии с электрической принципиальной схемой. Электрическая связь между сторонами осуществляется с помощью металлизированных отверстий. Стеклотекстолит представляет собой спрессованные слои стеклоткани, пропитанные эпоксифенольной или эпоксидной смолой. Вид печатной платы POST Card PCI со стороны компонентов и со стороны токопроводящих дорожек представлен в приложениях В и Г соответственно. Монтажная схема устройства POST Card PCI приведена в приложении Д.
          • 3. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
          • 3.1 Основы языка AlteraHDL
          • Язык AlteraHDL (AHDL) - язык описания аппаратуры (HDL - Hardware Description Language), созданный фирмой Altera в 1983 году. К настоящему времени, пройдя долгий путь развития, он представляет собой эффективное средство для:
          • — поведенческого и структурного описания проектируемого устройства;
          • — документирования проекта.
          • Программирование устройства POST Card PCI осуществляется в системе автоматизированного проектирования - MAX+PLUS II.
          • Пакет MAX+PLUS II разработан фирмой Altera, имеет средства ввода дизайна, быстрого прогона и непосредственного программирования. Название системы является аббревиатурой от Multiple Array Matrix Programmable Logic User System (Пользовательская система программирования логики упорядоченных структур). Язык AHDL прост в изучении и оптимизирован по своим возможностям для проектирования отдельной СБИС. Файлы описания аппаратуры, написанные на языке AHDL, имеют расширение *.TDF (Text design file). Для создания TDF-файла можно использовать как текстовый редактор системы MAX+PLUS II, так и любой другой. Проект, выполненный в виде TDF-файла, компилируется, отлаживается и используется для формирования файла программирования ПЛИС фирмы Altera.
          • 3.1.1 Элементы языка
          • Полный перечень ключевых слов и идентификаторов языка AHDL приведен в таблице 3.1 и таблице 3.2 соответственно.
          • Таблица 3.1 Ключевые слова языка AHDL
          • AND

            FUNCTION

            OUTPUT

            ASSERT

            GENERATE

            PATAMETERS

            BEGIN

            GND

            REPORT

            BIDIR

            HELP_ID

            RETURNS

            BITS

            IF

            SEGMENTS

            BURIED

            INCLUDE

            SEVERITY

            CASE

            INPUT

            STATES

            CLIQUE

            IS

            SUBDESIGN

            CONNCTED_PINS

            LOG2

            TABLE

            CONSTANT

            MACHINE

            THEN

            DEFAULTS

            MOD

            TITLE

            DEFINE

            NAND

            TO

            DESIGN

            NODE

            TRI_STATE_NODE

            DEVICE

            NOR

            VARIABLE

            DIV

            NOT

            VCC

            ELSE

            OF

            WHEN

            ELSIF

            OPTIONS

            WITH

            END

            OR

            XNOR

            FOR

            OTHERS

            XOR

            • Таблица 3.2 Идентификаторы языка AHDL
            • CARRY

              JKFFE

              SRFFE

              CASCADE

              JKFF

              SRFF

              CEIL

              LATCH

              TFFE

              DFFE

              LCELL

              TFF

              DFF

              MCELL

              TRI

              EXP

              MEMORY

              USED

              FLOOR

              OPENDRN

              WIRE

              GLOBAL

              SOFT

              X

              • В языке AHDL определены три типа имен:
              • — символическое имя (Symbolic name);
              • — имя модуля (Subdesign name);
              • — имя вывода (Port name).
              • Символическое имя -- определяемое пользователем имя, используемое для задания:
              • — переменных;
              • — констант;
              • — состояний и разрядов конечного автомата;
              • — параметров;
              • — обозначаемых арифметических выражений.
              • Имя модуля - определяемое пользователем имя, используемое для именования модуля, а также логического файла, в котором хранится его текстовое описание.
              • Имя вывода - определяемое пользователем имя, используемое для обозначения:
              • — входа модуля;
              • — выхода модуля;
              • — двунаправленного вывода модуля;
              • — входа для импортируемого конечного автомата;
              • — выхода для экспортируемого конечного автомата.
              • Группы - набор однотипных переменных или выводов. Порядковый номер переменной (вывода) в группе - индекс. Максимальное число переменных (выводов), объединяемых в одну группу, не должно превышать 256. В языке AHDL определены три типа групп:
              • — одномерные (Single-range);
              • — двумерные (Dual-range);
              • — последовательные (Sequential) или временные.
              • Одномерные группы задают, указывая:
              • — имя группы (символическое имя или имя вывода);
              • — диапазон изменения индексов группы.
              • Двумерные группы задают, указывая:
              • — имя группы (символическое имя или имя вывода);
              • — пару диапазонов изменения индексов.
              • Последовательные (временные) группы задают списком, заключенным в круглые скобки. Элементами списка могут быть переменные, выводы модуля, одномерные группы, двумерные группы. Элементы списка отделяются друг от друга запятыми.
              • Индексы одномерных и двумерных групп должны быть целыми положительными числами. Диапазон изменения индексов указывается в следующем формате: [граница А … граница В].
              • Каждая из границ может быть определена: числом, арифметическим выражением, константой, параметром.
              • Типичный порядок задания индексов - убывающая слева направо последовательность: граница А - большее целое, граница В - меньшее.
              • Язык AHDL допускает возможность использования десятичных, двоичных, восьмеричных, шестнадцатеричных чисел. Правила задания чисел:
              • — десятичное число - совокупность цифр от 0 до 9.
              • — двоичное число - В "совокупность символов 0, 1, x".
              • — восьмеричное число - О, либо Q "совокупность цифр от 0 до 7.
              • — шестнадцатеричное число - Н, либо X "совокупность цифр от 0 до 9 и букв от А до F".
              • В языке AHDL определены два типа выражений (Expressions):
              • — арифметические выражения (Arithmetic Expressions);
              • — логические выражения (Boolean Expressions).
              • Арифметические выражения используются для задания:
              • — обозначаемого выражения в операторе обозначения (Define Statement);
              • — констант в операторе задания констант (Constant Statement);
              • — границ диапазона изменения индексов одномерных и двумерных групп;
              • — границ диапазона изменения внутренней переменной в операторе FOR GENERATE;
              • — оцениваемого выражения в операторах IF GENERATE, ASSERT.
              • Значение арифметических выражений оценивается и подставляется компилятором на этапе проверки синтаксиса проекта. Результат арифметического выражения должен быть целым положительным числом. В противном случае он по умолчанию округляется до ближайшего большего целого.
              • Кроме того, в языке AHDL определены две функции, которые могут использоваться в арифметических выражениях для явного задания правила округления:
              • — CEIL - округление до ближайшего большего целого;
              • — FLOOR - округление до ближайшего меньшего целого.
              • Логические выражения (Boolean expressions) содержат операнды, объединяемые: логическими операторами, арифметическими операторами и операторами сравнения.
              • Логические выражения используются:
              • — в логических уравнениях (Boolean Equations);
              • — в логических уравнениях, задающих управляющие сигналы (Boolean Control Equations);
              • — в операторе CASE;
              • — в операторе IF THEN.
              • Примитив - встроенное в пакет MAX+plus II и язык AHDL функциональное описание того пли иного внутреннего ресурса ПЛИС фирмы ALTERA.
              • В языке AHDL определено два типа примитивов:
              • — примитивы буферов;
              • — примитивы триггеров: синхронных триггеров (Flipflop) и триггера-защелки (Latch).
              • В языке AHDL используются следующие примитивы буферов:
              • — CARRY - буфер цепочного переноса;
              • — CASCADE - буфер каскадного наращивания логической функции;
              • — ЕХР - буфер логического расширителя;
              • — GLOBAL - буфер глобальной цепи распространения управляющего сигнала;
              • — LCELL - не удаляемый буфер размещения логической ячейки (макроячейки);
              • — OPNDRN - буфер выхода с открытым коллектором;
              • — SOFT - удаляемый буфер размещения логической ячейки (макроячейки);
              • — TRI - буфер выхода с Z состоянием.
              • В таблице 3.3 приведены используемые в языке AHDL примитивы триггеров. Выводы триггеров:
              • D, X J, K, S, R - информационные входы;
              • CLK - вход тактового сигнала (активный перепад 0-1);
              • CLRN - вход асинхронного сброса триггера (активный уровень - логический нуль);
              • PRN - вход асинхронной установки триггера (активный уровень - логический нуль);
              • ENA - вход разрешения работы триггера (активный уровень - логическая единица).
              • Таблица 3.3 Примитивы триггеров
              • DFF

                • FUNCTION DFF (D, CLK, CLRN, PRN)

                RETURNS (Q)

                DFFE

                • FUNCTION DFFE (D, CLK, CLRN, PRN, ENA)

                RETURNS (Q)

                TFF

                • FUNCTION TFF (T, CLK, CLRN, PRN)

                RETURNS (Q)

                TFEE

                • FUNCTION TFFE (T, CLK, CLRN, PRN, ENA)

                RETURNS (Q)

                JKFF

                • FUNCTION JKFF (J, K, CLK, CLRN, PRN)

                RETURNS (Q)

                JKFFE

                • FUNCTION JKFFE (J, K, CLK, CLRN, PRN, ENA)

                RETURNS (Q)

                SRFF

                • FUNCTION SRFF (S, R, CLK, CLRN, PRN)

                RETURNS (Q)

                SRFFE

                • FUNCTION SRFEE (S, R, CLK, CLRN, PRN, ENA)

                RETURNS (Q)

                LATCH

                • FUNCTION LATCH (D, ENA)

                RETURNS (Q)

                • 3.1.2 Структура текстового описания
                • Текстовое описание на языке AHDL должно иметь определенную структуру. Основные компоненты структуры перечислены ниже в том порядке, в котором их следует использовать.
                • Title Statement
                • Include Statement
                • Constant Statement
                • Define Statement
                • Parameters Statement
                • Function Prototype Statement
                • Options Statement
                • Assert Statement
                • Subdesign Section
                • Variable Section
                • - Instance Declaration
                • - Node Declaration
                • - Register Declaration
                • - State Machine Declaration
                • - Machine Alias Declaration
                • - If Generate Statement
                • Logic Section
                • - Defaults Statement
                • - Assert Statement
                • - Boolean Equations
                • - Boolean Control Equations
                • - Case Statement
                • - For Generate Statement
                • - If Then Statement
                • - If Generate Statement
                • - In-Line Logic Function Reference
                • - Truth Table Statement
                • Отмечу, что не все перечисленные операторы и разделы являются обязательными. Так, в простейшем случае, текстовое описание может содержать только разделы Subdesign Section и Logic Section.
                • Title Statement (оператор заголовка) позволяет задать название для генерируемого компилятором файла отчета (Report File).
                • Пример:
                • TITLE "Binary COUNTER";
                • Заголовок Binary COUNTER появится в начале файла отчета (Report File). Include Statement (оператор включения) позволяет включить содержимое файла, указанного в операторе, в текущее текстовое описание.
                • 1. INCLUDE "Low-level_project.inc";
                • 2. INCLUDE "constant";
                • Файл включения может содержать следующие операторы:
                • — Function Prototype Statement - оператор описания прототипа;
                • — Define Statement - оператор обозначения:
                • — Parameters Statement - оператор объявления параметров;
                • — Constant Statement - оператор задания константы.
                • Constant Statement (оператор задания константы) позволяет присвоить символическому имени неизменяемое значение либо явно заданное числом, либо являющееся результатом выполнения арифметического выражения.
                • CONSTANT UPPER_LIMIT=H"130";
                • CONSTANT NUMBER=5;
                • CONSTANT NUMBER_PLUS_ONE=NUMBER+1;
                • Define Statement (оператор обозначения) позволяет обозначить арифметическое выражение символическим именем.
                • Параметр в рамках языка AHDL - символическое имя строки символов, заключенной в двойные кавычки, или числа, заданного либо явно, либо являющегося результатом выполнения арифметического выражения.
                • Parameters Statement (оператор объявления параметров) позволяет объявить параметры, управляющие реализацией параметризированных модулей.
                • Function Prototype Statement (оператор описания прототипа) позволяет описать интерфейс (входы, выходы, передаваемые параметры) модулей или примитивов, которые будут использованы в данном текстовом описании.
                • Options Statement (оператор задания опции) позволяет определить в группе элемент с меньшим индексом (BITO) как:
                • — LSB - младший разряд (Least Significant Bit). При этом индексы в группах должны указываться в убывающей слева направо последовательности;
                • — MSB - старший разряд (Most Significant Bit). При этом индексы в группах должны указываться в возрастающей слева направо последовательности;
                • — ANY - При этом порядок перечисления индексов в группе произвольный.
                • Нарушение порядка перечисления индексов в группах ведет к появлению предупреждения на этапе синтаксического анализа текстового описания.
                • Assert Statement (оператор контроля) позволяет проконтролировать истинность арифметического выражения, а для случая, когда оно ложно, указать текст сообщения и определить реакцию компилятора.
                • Subdesign Section (раздел описания интерфейса модуля) позволяет задать имя модуля и перечислить его выводы. Имя модуля должно совпадать с именем логического файла, в котором хранится его текстовое описание. Если модуль является модулем верхнего уровня иерархии, то его имя является и именем проекта, а, следовательно, это имя будут иметь и все вспомогательные файлы проекта.
                • Variable Section (раздел переменных) позволяет задавать внутренние переменные модуля, предназначенные для использования в разделе описания логики (Logic Section).
                • Переменная - это символическое имя: линии связи; линии связи с тремя состояниями; модуля, используемого в текстовом описании в качестве компонента (примитива, конечного автомата).
                • Logic Section (раздел описания логики) позволяет задать алгоритм работы проектируемого модуля. Правила использования раздела:
                • — Раздел начинается с ключевого слова BEGIN и заканчивается ключевым словом END, за которым следует точка с запятой (;).
                • — В разделе могут быть использованы:
                • — Defaults Statement (Оператор задания исходных значений);
                • — Boolean Equations (Логические уравнения);
                • — Boolean Control Equations (Логические уравнения для управляющих сигналов);
                • — Case Statement (Оператор CASE);
                • — If Then Statement (Оператор If Then);
                • — If Generate Statement (Оператор IF Generate);
                • — In-line Logic Function reference (непосредственное обращение к модулям нижнего уровня в иерархии описаний и примитивам)
                • — For Generate Statement (Оператор For Generate);
                • — Truth Table Statement (Таблица истинности);
                • — Assert Statement (Оператор контроля).
                • — В файле с текстовым описанием данный раздел может использоваться только один раз.
                • 3.2 Программирование ПЛИС
                • Для программирования ПЛИС необходимо:

                1. Установить пакет MAX+PLUS II;

                2. Выключить компьютер;

                3. Подключить программируемую плату к LPT порту компьютера, используя загрузочный кабель ByteBlasterMV;

                4. От блока питания компьютера, подать +5V и GND (общий провод) на POST Card. Для этого: 8-ая ножка DD4 POST Card соединяется с GND общим проводом (черный провод блока питания); 16-ая ножка DD4 POST Card соединяется с +5V (красный провод блока питания);

                5. Включить питание компьютера, на POST Card при этом должен загореться светодиод +5V;

                6. Запустить MAX+PLUS II Programmer;

                7. Найти файл прошивки *.POF;

                8. Далее выбрать тип подключения Hardware Type - ByteBlasterMV, и нажать кнопку Program.

                3.3 Листинг программы прошивки

                Include "LPM_FF";

                TITLE "PCI core";

                -- Ядро PCI разрабатываем по спецификации 2.1 --

                SUBDESIGN PCIcore

                (

                -- сторона PCI -

                CLK

                :input;

                RST_N

                :input;

                Frame_N

                :input;

                Irdy_N

                :input;

                IDsel

                :input;

                AD[7..0]

                :input;

                CBE[3..0]

                :input;

                Trdy_N

                :input;

                Trdy

                :OUTPUT;

                Devsel

                :OUTPUT;

                -- сторона устройства -

                PortSel

                :input;

                -- внешний сигнал: 1 - выбор порта 84h, 0 - выбор порта 80h

                First

                :input;

                -- внешний сигнал: 1 - обычная работа, 0 - захват первой пересылки по шине

                AhighMatch

                :input;

                -- адрес A15..A8 равен 0

                OutEnable

                :OUTPUT;

                -- разрешить считывание с устройства

                -- выдаем 0000 на AD[15..0] при конфигурационном чтении

                Port80E

                :OUTPUT;

                -- разрешить запись в порт 80/84

                Gotcha

                :OUTPUT;

                -- первая пересылка захвачена

                VARIABLE

                CMD_IoW

                :Dffe;

                -- защелка команды запись I/O

                CMD_ConfRead

                :Dffe;

                -- защелка команды конфигурационная запись

                CMD_ConfWrite

                :Dffe;

                -- защелка команды конфигурационное чтение

                CMD_MR

                :Dffe;

                -- защелка команды чтение памяти

                Port80Sel

                :DFFE;

                -- защелка декодера обращения к порту 80h

                IO_WRITE

                :node;

                M_Read

                :node;

                CONF_READ

                :node;

                CONF_WRITE

                :node;

                LatchE

                :node;

                Port80hit

                :node;

                Sub

                :machine with states (Idle, Start, Busy, catch);

                BEGIN

                DEFAULTS

                Trdy

                = GND;

                Devsel

                = GND;

                Gotcha

                = VCC;

                -- индикации захвата первой пересылки нет

                CMD_IoW.ena

                = GND;

                -- защелка команды запись I/O

                CMD_IoW.PRN

                = VCC;

                CMD_MR.ena

                = GND;

                -- защелка команды чтение памяти

                CMD_MR.PRN

                = VCC;

                CMD_ConfRead .ena

                = GND;

                -- защелка команды конфигурационная запись

                CMD_ConfRead.PRN

                = VCC;

                CMD_ConfWrite.ena

                = GND;

                -- защелка команды конфигурационное чтение

                CMD_ConfWrite.PRN

                = VCC;

                Port80Sel.ENA

                = GND;

                -- защелка декодера обращения к порту 80h

                OutEnable

                = GND;

                END DEFAULTS;

                CMD_IoW.CLRN

                = RST_N;

                CMD_MR.CLRN

                = RST_N;

                CMD_ConfRead.CLRN

                = RST_N;

                CMD_ConfWrite.CLRN

                = RST_N;

                Port80Sel.CLRN

                = RST_N;

                -- раздали сброс

                CMD_IoW.CLK

                =CLK;

                CMD_MR.CLK

                =CLK;

                CMD_ConfRead.CLK

                =CLK;

                CMD_ConfWrite.CLK

                =CLK;

                Port80Sel.CLK

                =CLK;

                -- раздали тактирование

                --Декодирование команд CBE[3..0] --

                CMD_IoW.ENA

                = LatchE;

                CMD_MR.ENA

                = LatchE;

                CMD_ConfRead.ENA

                = LatchE;

                CMD_ConfWrite.ENA

                = LatchE;

                -- разрешение тактирование триггеров

                CMD_IoW.D

                = CBE[]==B"0011";

                -- I/O write

                CMD_MR.D

                = CBE[]==B"0110";

                -- M read

                CMD_ConfRead.D

                = CBE[]==B"1010" and Idsel;

                -- конфигурационное чтение

                CMD_ConfWrite.D

                = CBE[]==B"1011" and Idsel;

                -- конфигурационная запись

                M_read

                =CMD_MR.Q;

                IO_WRITE

                =CMD_IoW.Q;

                CONF_READ

                =CMD_ConfRead.Q;

                CONF_WRITE

                =CMD_ConfWrite.Q;

                -- Декодирование адреса порта 80 --

                Port80Sel.ENA

                = LatchE;

                if PortSel then Port80Sel.D

                = AD[7..0]==H"80" and AhighMatch;

                -- обращение к порту 80h

                else Port80Sel.D

                AD[7..0]==H"84" and AhighMatch;

                -- обращение к порту 84h

                end if;

                шина интерфейс плата программа

                Port80hit

                = Port80Sel.Q;

                END;

                4. ОХРАНА ТРУДА

                4.1 Опасные и вредные производственные факторы

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

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

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

                Электрические установки, к которым относится практически все оборудование ПК, представляют для человека большую потенциальную опасность, так как в процессе эксплуатации или проведении профилактических работ человек может коснуться частей, находящихся под напряжением. Специфическая опасность электроустановок: токоведущие проводники, корпуса ПК и прочего оборудования, оказавшегося под напряжением в результате повреждения (пробоя) изоляции, не подают каких-либо сигналов, которые предупреждают человека об опасности. Реакция человека на электрический ток возникает лишь при протекании последнего через тело человека. Исключительно большое значение для предотвращения электротравматизма имеет правильная организация обслуживания действующих электроустановок, проведения ремонтных, монтажных и профилактических работ. При этом под правильной организацией понимается строгое выполнение ряда организационных и технических мероприятий и средств, установленных действующими "Правилами технической эксплуатации электроустановок потребителей и правила техники безопасности при эксплуатации электроустановок потребителей" (ПТЭ и ПТБ потребителей) и "Правила установки электроустановок" (ПУЭ). В зависимости от категории помещения необходимо принять определенные меры, обеспечивающие достаточную электробезопасность при эксплуатации и ремонте электрооборудования.

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

                4.2 Мероприятия по охране труда

                Практически каждый блок питания компьютера или периферийного устройства имеет сетевой фильтр. Конденсаторы этого фильтра предназначены для шунтирования высокочастотных помех питающей сети на землю через провод защитного заземления и соответствующие трехполюсные вилку и розетку. "Земляной" провод соединяют с контуром заземления, но допустимо его соединять и с "нулем" силовой сети (разница ощущается только в особо тяжелых условиях эксплуатации). При занулении необходимо удостовериться в том, что "нуль" не станет фазой, если кто-нибудь вдруг перевернет вилку питания. Если же "земляной" провод устройства никуда не подключать, на корпусе устройства появляется напряжение порядка 110 В переменного тока (рисунок 4.1): конденсаторы фильтра работают как емкостной делитель напряжения, и поскольку их емкость одинакова, 220 В делится пополам.

                Рисунок 4.1. Образование потенциала на корпусе компьютера

                Конечно, мощность этого "источника" ограничена - ток короткого замыкания IК.З. на "землю" составляет доли миллиампера, причем, чем мощнее блок питания, тем больше емкость конденсаторов фильтра. При емкости конденсатора С - 0,01 мкФ этот ток будет около 0,7 мА. Заметим, что здесь мы учитываем лишь частоту питающей сети. Для высокочастотных (импульсных) помех, приходящих как по сети, так и от входного преобразователя блока питания, те же конденсаторы дают во много раз меньшее сопротивление, и ток короткого замыкания может многократно возрастать.

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

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


Подобные документы

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

    курсовая работа [1,2 M], добавлен 28.04.2014

  • Общий принцип работы аналого-цифровых преобразователей (АЦП). Принцип работы интерфейса USB. Функциональная и электрическая схемы АЦП с интерфейсом USB. Описание и принцип работы устройства ввода аналоговой информации, технические характеристики.

    дипломная работа [725,6 K], добавлен 16.01.2009

  • Разработка функциональной и принципиальной схемы. Выбор управляющего контроллера. Описание МК PIC16F626, МК AVR, МК 51. Выбор элементной базы. Разработка управляющей программы. Описание алгоритма работы программы. Схема устройства, листинг программы.

    курсовая работа [492,9 K], добавлен 28.12.2012

  • Типы, основные функции, элементы и принцип работы текстового редактора (компьютерной программы). Методы вставки внешних объектов в текст. Особенности текстового процессора Microsoft Word, его специальные возможности. Типовая структура интерфейса.

    реферат [15,8 K], добавлен 07.12.2010

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

    курсовая работа [494,5 K], добавлен 20.06.2012

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

    презентация [1,0 M], добавлен 19.05.2014

  • Проектирование микропроцессорного устройства, которое преобразует интерфейс RS-232 (COM-порт) в IEEE 1284 (LPT-порт). Структурная схема устройства. Преобразование последовательного интерфейса в параллельный интерфейс на микроконтроллере ATMega 8.

    курсовая работа [1,1 M], добавлен 07.04.2013

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

    курсовая работа [121,3 K], добавлен 12.12.2014

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

    дипломная работа [2,2 M], добавлен 08.06.2017

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

    курсовая работа [705,1 K], добавлен 21.10.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.