Лабораторная работа на тему "параллельные и последовательные порты и их особенности работы". Разъем параллельного порта на материнской плате и кабель Centronics. Работа с параллельными портами

  • 14.06.2019
Terminal . Сразу после первого запуска программа спросит вас о том, желаете ли вы сделать Hyper Terminal Telnet-приложением, используемым по умолчанию. Вы можете ответить ей Да и продолжать работу. В следующем окне программы вам надо будет дать имя подключению и выбрать значок для него.

Теперь вы попадаете в окно программы, где вам предложат выбрать способ подключения (в нашем случае это будет название модема, рис. 6.31) и ввести номер телефона, к которому следует подключиться.


Рис. 6.31.

Риску атаки подвергаются все Bluetooth -устройства. Главная рекомендация, которую можно применить для предотвращения подобных атак, заключается в том, чтобы не включать обнаружение Bluetooth -устройства без нужды. Однако, даже следование этому совету не избавит вас от риска.

Давайте рассмотрим некоторые Bluetooth -атаки и способы защиты от них. В табл. 6.1 (при построении таблицы использовались данные сайтов www.trifinity.org и www.bluejack.ru .) приведена информация об атаках и способах защиты от них.

Надо отметить, что Bluetooth -атаки возможны на небольшом расстоянии – обычно 10-15 метров, хотя возможность использования направленных антенн увеличивает это расстояние .

Таблица 6.1. Защита от Bluetooth -атак аппаратного адреса устройства, с которым данное устройство уже обменивалось данными.
Название атаки Описание Способы защиты
BlueBug Могут быть атакованы многие модели сотовых телефонов. Злоумышленник получает практически полный доступ к аппарату: может читать и отправлять SMS, совершать звонки, просматривать и править адресную книгу, выходить в Интернет через атакованный аппарат и так далее. Владельцам старых мобильников заменить прошивку на более новую, владельцам всех аппаратов отклонять подозрительные запросы на соединение, включить защиту Bluetooth -соединения, отключать Bluetooth тогда, когда в нем нет необходимости
BlueSmack Могут быть атакованы различные BT-устройства. Это – атака типа DOS ( Denial of Service – отказ в обслуживании ). Восприимчивое к атаке устройство сразу же "падает" - виснет, или перезагружается. Программных способов защиты пока не существует, единственное, что можно порекомендовать – выключать Bluetooth тогда, когда в нем нет необходимости.
CarWhisperer Могут быть атакованы звуковые системы автомобилей, оборудованные Bluetooth . Атака основана на подборе кода доступа к устройству, после чего злоумышленник может им пользоваться. Изменить заводской код доступа к устройству.
BlueChop Атака, направленная на разрушение пикосетей. Пожалуй, наиболее действенным методом борьбы с этой атакой будет поиск злоумышленника, который расположен неподалеку (десятки метров) от вашей пикосети.
BlueBump Атака, основанная на методах социальной инженерии. Сначала атакующий легально соединяется с устройством жертвы, посылая ему бизнес-карточку и запрос на подключение, после чего соединение может быть удалено, а злоумышленник создает дополнительное подключение, до удаления которого может свободно соединяться с устройством. Не принимать подозрительных запросов на подключение
HeloMoto Атака на телефоны Motorola, которую можно представить как комбинацию атак BlueBug и BlueSnarf . Особенности реализации Bluetooth в телефонах от Motorola заключаются в том, что аппараты доступны для обнаружения в течение 60 секунд после активации интерфейса. Если злоумышленник не попался вам в эти 60 секунд, то вам можно не опасаться этой атаки.

Поговорив о Bluetooth -безопасности, обсудим сетевые проблемы .

28. Параллельный и последовательный порты.
Параллельный и последовательный порты используются не только для
подключения принтера и модема, для которых были в свое время
разработаны. Простота исполнения и отработанный протокол приемапередачи данных сделали их незаменимыми для подключения к ПЭВМ
различных низкоскоростных устройств, применяющихся в промышленности
и научных исследованиях.
Параллельный порт (интерфейс Centronics).
Основным назначением интерфейса Centronics (аналог - ИРПР-М)
является подключение к компьютеру принтеров различных типов.
Поэтому распределение контактов разъема, назначение сигналов,
программные средства управления интерфейсом ориентированы именно на
это использование.
В то же время с помощью данного интерфейса можно подключать к
компьютеру и другие специально разработанные внешние устройства.
Скорость обмена по интерфейсу Centronics – 129-200 кБ/с.
Стандартный параллельный порт предназначен только для
односторонней передачи информации от ПЭВМ к принтеру.
Усовершенствованный порт ЕРР (Enhanced Parallel Port) является
двунаправленным, позволяет подключать до 64-х устройств и обеспечивает
скорость передачи данных с использованием ПДП до 2 мБ/с.
Расширенный порт ECP (Extended Capability Port) позволяет подключить
до 128 устройств и поддерживает режим компрессии (сжатия) данных.

Схема контроллера параллельного порта i8255A.
А1
А2
IOR
IOW
RESET
A7, A15
Устройство
управления
А
БР Канал данных В
В
БР Канал данных С
С
Внешнее устройство
Буфер
управления
БР Канал данных А
Внутренняя шина данных
Системная шина
Буфер данных
Сигналы управления
Контроллер параллельного обмена представляет собой 3-хканальный
байтовый интерфейс и позволяет организовать обмен данными в трех
режимах:
Режим 0 – синхронный однонаправленный ввод/вывод (4 порта А, В, С1, С2).
Режим 1 – асинхронный однонаправленный ввод/вывод (2 порта А и В).
Режим 2 – асинхронный двунаправленный ввод/вывод (1 порт А).
Программирование режимов работы каналов контроллера
осуществляется передачей в буфер управления соответствующего кода.

Сигналы Centronics имеют следующее назначение:
D0...D7 - 8-разрядная шина данных для передачи из компьютера в принтер.
-STROBE - сигнал стробирования (сопровождения) данных.
-АСК - сигнал подтверждения принятия данных и готовности принтера.
BUSY - сигнал занятости принтера обработкой полученных данных и
неготовности принять следующие данные.
-AUTO FD - сигнал автоматического перевода строки (каретки).
РЕ - сигнал конца бумаги (режим ожидания).
SLCT - сигнал готовности приемника (принтера).
-SLCT IN - сигнал принтеру о том, что последует передача данных.
-ERROR - сигнал ошибки принтера.
-INIT - сигнал инициализации (сброса) принтера и очистки буфера печати.
Контакт разъема компьютера
Цепь
I/O
Контакт разъема принтера
1
-STROBE
О
1
2 … 9
DO … D7
О
2 … 9
10
-АСК
I
10
11
BUSY
I
11
12
РЕ
I
12
13
SLCT
I
13
14
-AUTOFD
О
14
15
-ERROR
I
32
16
-INIT
О
31
17
-SLCT IN
О
36
18...25
GND
-
16, 17, 19...30, 33

Формирование и прием сигналов интерфейса Centronics производится
путем записи и чтения выделенных для него портов ввода/вывода.
В компьютере может использоваться три порта Centronics:
LPT1 (порт 378h, IRQ5), LPT2 (порт 278h, IRQ7) и LPT3 (порт 3ВСh).
Базовый адрес порта используется для передачи принтеру байта данных.
Установленные на линиях данные можно считать из этого же порта в ПЭВМ.
Временная диаграмма цикла передачи данных по интерфейсу Centronics.
D0 … D7
>500
- STROBE
BUSY
- ACK
>500
>500
наносекунд
>2500 наносекунд
Перед началом передачи данных контролируется снятие сигналов BUSY
и ASK. Затем данные выставляются на шину и формируется сигнал STROB.
За это время принтер должен успеть принять данные и выставить сигнал
BUSY, а затем и ASK.
Максимальная длина соединительного кабеля – 1,8 метра.
В настоящее время стандарты параллельного порта ЕРР и ЕСР
включены в стандарт IEEE 1284 с добавлением еще двух режимов обмена
данными: байтового и полубайтового.

Последовательный порт (Интерфейс RS232C).
Интерфейс RS-232C предназначен для подключения к компьютеру
стандартных внешних устройств (принтера, сканера, модема, мыши и т.д.),
а также для связи компьютеров между собой.
Основными преимуществами использования RS-232C по сравнению с
Centronics являются возможность передачи на значительно большие
расстояния и гораздо более простой соединительный кабель.
В то же время работать с ним несколько сложнее: данные в RS-232C
передаются в последовательном коде побайтно, а каждый байт обрамляется
стартовым и стоповыми битами.
Формат передаваемых данных последовательного порта:
отсутствие передачи
«1»
«0»
Стартовый бит
8 бит
данных
стоповые биты
бит четности
Данные могут передаваться как в одну (полудуплексный режим), так и в
обе стороны (дуплексный режим).
Обмен по интерфейсу RS-232C осуществляется по специально
выделенным для этого последовательным портам:
СОМ1 (адреса 3F8h...3FFh, прерывание IRQ4),
COM2 (адреса 2F8h...2FFh, прерывание IRQ3),
COM3 (адреса 3E8h...3EFh, прерывание IRQ10),
COM4 (адреса 2E8h...2EFh, прерывание IRQ11).

Схема контроллера последовательного порта i8250.
мультиплексор демультиплексор
Буфер
1
управления
Буфер
2
управления
Буфер
3
управления
Буфер
4
управления
Буфер
5
управления
Буфер
6
управления
RESET
IRQ
Устройство управления
Битовый
счетчик
Схема кодирования –
декодирования пакета
Генератор
синхросигнала
ТхD
RxD
CLK
Внешнее устройство
Системная шина
Буфер данных
Сигналы управления
В состав ПЭВМ могут входить до четырех последовательных портов,
работающих в стандарте RS-232С (отечественный аналог - стык С2).
Каждое из устройств RS-232С представляет собой самостоятельный
контроллер i8250, оснащенный 25- или 9- штырьковым разъемом.
Контроллер порта RS-232С является полностью программируемым
Устройством.
Ему можно задать следующие параметры обмена: количество битов
данных и стоп-битов, вид четности и скорость обмена в бодах (бит/с).

Назначение сигналов обращений:
FG - защитное заземление (экран).
-TxD - данные, передаваемые компьютером в последовательном коде.
-RxD - данные, принимаемые компьютером в последовательном коде.
RTS - сигнал запроса передачи. Активен во все время передачи.
CTS - сигнал сброса (очистки) для передачи. Активен во все время
передачи. Говорит о готовности приемника.
DSR - готовность данных. Используется для задания режима модема.
SG - сигнальное заземление, нулевой провод.
DCD - обнаружение несущей данных (принимаемого сигнала).
DTR - готовность выходных данных.
RI - индикатор вызова. Говорит о приеме модемом сигнала вызова по
телефонной сети.
Компьютер обычно имеет
9-контактный (DB9P) или
25-контактный (DB25P)
разъем для подключения
интерфейса RS-232C.
Назначение контактов
разъема приведено в
таблице
сигнал
25-контактный разъем
9-контактный разъем
I/O
FG
1
-
-
-TxD
2
3
О
-RxD
3
2
I
RTS
4
7
О
CTS
5
8
I
DSR
6
6
I
SG
7
5
-
DCD
8
1
I
DTR
20
4
О
RI
22
9
I

Конкретные форматы обращений по этим портам можно найти в
описаниях микросхем контроллеров последовательного обмена UART
(Universal Asynchronous Receiver/ Transmitter), например, для i8250.
Наиболее часто используются трех- или четырехпроводная связь (для
двунаправленной передачи).
Для двухпроводной линии связи в случае только передачи из
компьютера во внешнее устройство используются сигналы SG и TxD.
Все 10 сигналов интерфейса задействуются только при соединении
компьютера с модемом.
компьютер
Схема 4-х проводной
линии связи для
интерфейса RS232C
TxD
RxD
RTS
CTS
DSR
DCD
DTR
RI
SG
FG
внешнее устройство
TxD
RxD
RTS
CTS
DSR
DCD
DTR
RI
SG
FG
Примечание: тактовые частоты приемника и передатчика должны быть
одинаковыми (расхождение – не более 10%) для этого скорость передатчика
(ПЭВМ) может выбираться из ряда: 150, 300, 600, 1200, … 57600, 115200 бит/с.

29.Подсистема ввода-вывода.
Назначение, структура и задачи BIOS.
BIOS (Basic Input Output System) – часть программного обеспечения
ПЭВМ, содержащая управление адаптерами внешних устройств, экранными
операциями, тестирование, а затем начальную загрузку OS.
BOIS обеспечивает стандартный интерфейс, поддерживающий переносимость OS для ПЭВМ с совместимыми процессорами.
BOIS состоит из основных компонент:
1. POST– процедуры проверки системных устройств и их ресурсов.
2. ROM-Scan – программа сканирования ОЗУ.
3. SETAP-программный интерфейс просмотра и корректировки констант.
4. Константы BIOS в CMOS, таблица 256-ти символов ASCII 8х8.
Все адреса констант документированы и должны сохраняться в
последующих версиях BIOS для данной системной платы.
Компоненты BOIS записаны в специальной ПЗУ на системной плате
объемом 64 кБ и обычно рассматриваются, как неотъемлемая часть ПЭВМ,
встраиваемая в адресное пространство ОЗУ с адреса F000:0000.
Основной принцип организации системы ввода/вывода:
ЦПУ и ОЗУ образуют ядро ПЭВМ, а различные периферийные
устройства, к которым можно отнести любое другое устройство, которое не
входит в состав ядра ПЭВМ, сопрягаются с ядром системы с помощью
интерфейсов (совокупности шин, сигналов, электрических схем, протоколов
передачи данных и команд), входящих в состав ядра OS для организации
обмена информацией.

Структура подсистемы POST.
Состояние процессора после включения питания предопределено –
EFLAGS = 00000002h; EIP = 0000FFF0h; CS = 0F000h; PE(CR0) = 0.
по этому адресу находится команда JMP перехода на процедуру POST (Power
On Self Test) самотестирования и инициализации базовых устройств ПЭВМ:
Ввод константы инициализации в порт устройства n
Чтение байта статуса устройства n
Статус устройства n
соответствует данным CMOS
нет
Подача звукового сигнала,
вывод признака ошибки
инициализации устройства n
да
……….
Аварийное завершение
процедуры POST
Процедура сканирования
(верификации) оперативной памяти
Есть ошибки сканирования
нет
да
вывод признака
ошибки
сканирования
оперативной памяти
Передача управления на начало кода загрузки операционной системы

Основные функции подсистемы POST.
Процедуры POST служат для пуска самотестирования устройств на
системной плате, сравнения их статуса с данными CMOS и инициализации:
- каналы системного интервального таймера (слышен гудок),
- контроллер прерываний,
- контроллер прямого доступа,
- контроллер клавиатуры (загораются индикаторы на клавиатуре),
- контроллер памяти и т.д.,
затем инициализируются процедуры самотестирования устройств, имеющих
собственную BIOS:
- видеоконтроллер (на мониторе появляется первое сообщение),
- контроллеры дисковых накопителей (появляется сообщение),
- контроллер USB (клавиатура или мышь USB становятся активными)
- звуковой адаптер,
- сетевой адаптер и т.д.
Выполняется сканирование оперативной памяти (отображается на мониторе)
После успешного завершения процедур тестирования осуществляется
поиск boot-устройств, содержащих в буфере данных байт 80h (1000000), т.е.
неисполняемую команду, используемую в данном контексте POST для
подтверждения активности устройства загрузки OS.
Приоритет загрузочных устройств определяется в SETUP CMOS.
При выполнении POST могут генерироваться сообщения об ошибках.
Описания кодов ошибок можно найти по адресу: www.earthweb.com
или http://burks.bton.ac.uk/burks/pcinfo/hardware/bios_sg/bios_sg.htm

Доступ к переменным и константам BIOS.
Осуществляется через меню SETUP BIOS, доступное в начальные
моменты загрузки BIOS с помощью клавиш, указанных в сообщениях.
Меню SETUP состоит из основных разделов:
1. Стандартные переменные: дата, время, параметры ОЗУ и накопителей.
2. Дополнительные переменные и установленные модули программного
обеспечения BIOS для тестирования аппаратных средств, устройств ядра
ПЭВМ и ближайшего окружения.
3. Параметры остальных устройств, интегрированных в состав системной
(материнской) платы ПЭВМ и варианты распределения ресурсов (слотов
расширений шин, прерываний и каналов прямого доступа).
Здесь же определяется порядок опроса периферийных устройств,
которые могут содержать загрузочные модули операционных систем.
4. Параметры интерфейсов устройств, подключаемых к системной плате,
определяющих варианты энергосбережения.
5. Размеры констант, определяющих параметры центрального процессора
(частота, напряжение энергопитания ядра центрального процессора и ОЗУ), а
также их предельные величины для сигнализации или отключения.
6. Набор параметров BIOS, загружаемый по умолчанию (в случае ошибок
ручного набора параметров пользователем).
7. Ввод пароля для входа в редактор переменных – SETUP BIOS.
8. Ввод пароля для продолжения загрузки BIOS и выполнения POSTпроцедур после включения ПЭВМ (пользовательский пароль).
Значение паролей может быть снято системным обнулением BIOS.

Карта ввода / вывода.
0000 – 00FF – 256 8-разрядных портов предназначены для устройств,
расположенных на системной (материнской) плате ПЭВМ,
0100 – 03FF – 768 8-разрядных портов отведены для контроллеров
периферийных устройств, подключаемых к шинам системной платы ПЭВМ.
Внутренние устройства
Периферийные устройства
Диапазон Наименование устройства Диапазон
000 - 01F
Контроллер ПДП №1
Наименование устройства
3B0 – 3DF VGA
020 – 03F Контроллер ПКП №1
378 – 37B LPT 1
040 – 05F Интервальный таймер
37C – 37F LPT 2
060 – 06F Контроллер клавиатуры
278 – 27B LPT 3
070 – 07F Часы CMOS и константы
3F0 – 3F7 FDD
Диагностический регистр
3F8 – 3FF COM №1
081 – 08F Контроллер страниц ПДП
2F8 – 2FF COM №2
0A0 – 0BF Контроллер ПКП №2
3E8 – 3EF COM №3
0C0 – 0DF Контроллер ПДП №2
2E8 – 2EF COM №4
080
F000 – FFFF – 4096 дополнительных 8-разрядных портов, отведенных
для различных виртуальных устройств, подключаемых к внешним шинам
(USB, mini USB, SCSI, eSATA, HDD IDE ATA/ATAPI, PCI Express и т.д.).

Функции BIOS при работе с портами
Для прямого обращения ЦПУ к портам ввода/вывода в системе команд
предусмотрено всего 2 команды: IN и OUT.
Но сам процесс обмена данными с периферийными устройствами сложен
и должен учитывать ширину порта (порядок опроса нескольких 8-ми
разрядных портов) и протокол обмена, определяющий порядок оценки
готовности этих устройств к обмену данными по той или иной шине, а также
свойства самой шины.
По этой причине в OS Windows прямой доступ к портам ограничен. Ввод
прямых обращений к портам в приложениях может вызвать зависание
программы или ее аварийное завершение из-за превышения привилегий.
Для этой цели в составе ядра OS имеется большой набор типовых
обработчиков – функций BIOS, связанных с тем или иным общепользовательским прерыванием.
Поскольку количество прерываний ограничено, то обычно прерывание
имеет несколько функций, а отдельные функции и подфункций BIOS:
функции прерывания 10h – работа с портами видеоконтроллера VGA
функции прерывания 13h – работа с дисковыми системами и DMA
функции прерывания 14h – работа с последовательным портом СОМ
функции прерывания 15h – работа с манипулятором мышь
функции прерывания 16h – работа с клавиатурой
функции прерывания 17h – работа с параллельным портом LPT
функции прерывания 1Ah – работа с таймером, времязадающие функции
функции прерывания 80h – работа со звуковым процессором

30. Система Plug & Play автоопределения устройств ПЭВМ.
Основные принципы построения системы PnP были сформулированы и
частично внедрены в 1974-м году для шины МСА (Micro Channel Architecture).
Основные принципы построения системы PnP:
1. Ресурсы ядра ПЭВМ (порты доступа и их разрядность, номера прерываний, адресное пространство ОЗУ для обмена информацией, каналы прямого
доступа) не являются жестко распределенными, а присваиваются по
требованию.
2. Каждое периферийное (по отношению к ядру системы) устройство имеет
описание набора требований в своем BIOS.
3. В составе BIOS PnP имеется программа – системный конфигуратор,
которая присваивает номера периферийным устройствам, составляет
паспорта (описания) этих устройств и выделяет необходимые ресурсы, с
учетом недопущения конфликтов, при необходимости производит
оптимизацию (перераспределение) ресурсов.
Паспорта устройств сохраняются в реестре.
4. После загрузки операционной системы для периферийных устройств
загружаются соответствующие системные драйвера. Осуществляется
повторная проверка безконфликтной работы устройств.
5. При отключении периферийного устройства или подключения нового
операционная система автоматически перераспределяет освободившиеся
ресурсы, определяет параметры нового устройства, проверяет его и
предоставляет необходимые ресурсы без перезагрузки OS (на лету).

PnP- спецификация архитектуры аппаратных средств ПЭВМ, используемая соответствующими операционными системами для их конфигурирования и исключения конфликтов устройств между собой.
Основной компонент – все оборудование, подключаемое к шинам, содержит энергонезависимые регистры POS (Programmable Option Select), где хранится конфигурация устройства и требуемые ресурсы.
Дополнительный компонент – файлы OS описания устройств, драйверов
к ним и требуемых ресурсов (ini –файлы или реестр OS).
Программы BIOS PnP, бесконфликтно распределяющие ресурсы.
Обычная загрузка системы:
пуск
POST
Поиск Boot OS
Загрузка OS
Загрузка BIOS PnP:
пуск
Определение PnP
нет
да
Конфигурирование
устойств
POST
Проверка
устройств
Поиск Boot OS
Чтение
POS
чтение
ini
Загрузка OS

Распределение ресурсов ПЭВМ между устройствами.
Для реализации принципов построения системы PnP, учитывая, что в
составе архитектуры ПЭВМ встречается достаточно много устаревших
устройств с жестко закрепленными за ними системными ресурсами, которые
изменять нецелесообразно (контроллер клавиатуры, системный интервальный таймер, контроллеры ПДП и т.д.), в реальной системе PnP используется
следующий порядок распределения ресурсов:
1. При проверке POST определяются устройства «не PnP».
2. Устройствам «не PnP» ресурсы выделяются в первую очередь согласно
спецификационных требований, т.к. эти устройства неперенастраиваемые.
3. При обнаружении конфликтов BIOS PnP генерирует уведомление о
необходимости устранения конфликтов вручную.
4. Затем осуществляется итерационное конфигурирование устройств PnP.
5. Используются методы изоляции устройств друг от друга (присваивается
идентификатор и серийный номер), после этого устройству присваивается
дескриптор (Handle).
Присвоение идентификатора связано с используемой устройством шины
и осуществляется специальной программой из состава OS – энумера-тором
шины, которая является новым типом драйвера контроллера шины.
Номера идентификаторов являются уникальными для каждого устройства и
неизменными для каждой последующей перезагрузки OS, например, PnP
0000 – контроллер прерываний АТ, PnP 0100 – системный интервальный
таймер, PnР 0C04 – матсопроцессор, PnP 0А03 – контроллер шины PCI и т.д.

Подсистема ввода/вывода ПЭВМ и ядро OS решает следующие задачи:
1. Реализация вычислительной системы переменной конфигурации.
2. Параллельная работа программ в памяти и процедур ввода/вывода.
3. Упрощение процедур ввода/вывода, обеспечения их программной
независимости от конфигурации конкретного периферийного устройства.
4. Обеспечение автоматического распознавания ядром ЭВМ периферийных
устройств, многообразия их состояний (готовности, отсутствия носителя,
ошибок чтения/записи и т.д.).
5. Интеллектуализация интерфейса, налаживание диалога между ядром и
периферийными устройствами.
6. Переносимость и независимость OS от аппаратной платформы и ядра
ПЭВМ.
Пути решения этих задач:
1. Модульность - новые периферийные устройства не вызывают
существенных изменений архитектуры и вписываются в существующее
адресное пространство, каналы и порты доступа.
2. Унификация по формату передаваемых данных и команд вне зависимости от используемых внутренних машинных языков микроопераций.
3. Унифицированный интерфейс по разрядности шины, набору линий
сигналов управления и протоколам обмена.
4. Унифицированные по адресному пространству, доступному ядру ПЭВМ, и
каналам доступа к нему со стороны центрального процессора для операций
ввода/вывода информации в пределах этого адресного пространства,.

Современная система PnP состоит из следующих компонентов:
1. BIOS стандарта PnP.
Уведомления – сообщение пользователю об обнаружении нового
устройства
Конфигурирование – изоляция устройства до присвоения ID.
Поддержка данных- информация завершения POST на специальной RAM.
2. Система драйверов-энумераторов шины PCI.
Контроллер шины получает информацию из RAM об устройстве или из
реестра для устройств «не PnP» и присваивает уникальный номер Vendor_ID.
3. Дерево аппаратных средств и реестр.
Ветвь в реестре OS под названием «HKEY_LOKAL_MACHINE\HARDWARE»,
которая состоит из типов аппаратных устройств.
4. Windows 95 и выше (или другая OS PnP).
Фирма Intel предлагает спецификацию PnP всем разработчикам OS.
5. Драйверы устройств PnP.
Спецификация PnP предполагает не только наличие доступной для BIOS
информации об устройстве в RAM этого устройства, но и динамически подгружаемый драйвер этого устройства. Существует интерфейс прикладного
программирования (API) для создания таких драйверов для новых устройств
стандарта PnP. Загрузка таких драйверов должна регистрироваться диспетчером конфигурации и отвечать за выделенные ресурсы (сдавать их при
выгрузке).

6. Арбитр ресурсов (служба OS PnP).
Основные функции:
- Обновление реестра, помещая туда новейшую информацию о выделении
ресурсов на стадии загрузки,
- Переназначение ресурсов «на лету» любым устройства PnP, конфигурация
которых изменилась.
Арбитр ресурсов работает в контакте с диспетчером конфигурации,
который в любой момент может запросить у арбитра ресурсов освобождения ресурса с последующим предоставлением его другому устройству.
7. Диспетчер конфигурации (служба OS PnP).
Отвечает за процесс конфигурирования всей системы в целом.
Диспетчер конфигурации непосредственно взаимодействует, как с BIOS,
так и с реестром, координируя процесс конфигурирования в ходе событий:
- когда BIOS отправляет ему список устройств «не PnP» на системной плате
при загрузке, которые имеют жестко закрепленные за ними ресурсы,
- когда он получает извещение об изменении конфигурации от BIOS или от
энумераторов шин, которую он использует для идентификации всех
устройств на конкретной шине, а также требования каждого устройства о
выделении ресурсов. Эта информация заносится в реестр.
8. Пользовательский интерфейс (API).
Основное требование для пользовательских приложений, запускаемых
в OS PnP – они не должны иметь явных обращений к ресурсам устройств
(портам ввода/вывода, прерываниям или дискам) необходимо заменять эти
обращения формальными обращениями к соответствующим устройствам.

Конфигурационное адресное пространство шины PCI
Одним из главных усовершенствований шины PCI по сравнению с другими
архитектурами ввода-вывода стал её конфигурационный механизм.
В дополнение к типичным адресным пространствам памяти и вводавывода в PCI вводится конфигурационное адресное пространство.
Оно состоит из 256 байт, которые можно адресовать, зная номер шины PCI,
номер устройства и номер функции в устройстве.
Первые 64 байта из 256 стандартизированы, а остальные регистры могут
быть использованы по усмотрению изготовителя устройства.
Регистры Vendor ID и Device ID идентифицируют устройство и обычно
называются PCI ID.
Шестнадцатиразрядный регистр Vendor ID выдаётся организацией PCI-SIG.
Но только при уплате членского взноса в организацию.
Шестнадцатиразрядный регистр Device ID назначается изготовителем
устройства.
Существует проект создания базы данных всех известных значений
регистров Vendor ID и Device ID.
Аналогичное решение существует и для универсальной последовательной
шины USB.
Сообщество разработчиков шины – организация USB-IF также ведет
регистрацию всех значений регистров Vendor ID для USB.
Чтобы стать членом USB-IF, нужно платить по 4000$ членских взносов
ежегодно. Тогда вам бесплатно выделят двухбайтовый VID (Vendor_ID).

void f_DeviceDescriptor(void) //
Дескриптор драйвера устройства USB

Как писать драйвер USB-устройства PnP ?
автор Глазков Игорь
Статья в 7 частей
Опубликовано: 13 Марта 2013 года
http://npf-wist.com/
ООО «НПФ Вист» Украина
Учебный комплект STK0001
на базе микроконтроллера
фирмы «Microchip»
280 гривен (35$)
В данный комплект входит:
1. Устройство (модель), которое программируется, как USB-устройство.
2. Программатор, с помощью которого разрабатываемая программа (ее
бинарный код) зашивается в устройство (модель).
3. Кабель – переходник USB-COM – порт при его отсутствии в ВАШЕМ
компьютере. Этот порт нужен для просмотра данных, получаемых
программируемым USB-устройством.
4. Брошюра с подробным описанием последовательных шагов для
получения связки: “USB-устройство – драйвер - программа обращения к
устройству”.
5. CD-диск с дополнительным программным обеспечением.

31. Общие сведения об операционных системах.
Общие понятия об операционной системе.
Чтобы полностью овладеть всеми возможностями своего компьютера,
необходимо знать и понимать его операционную систему.
Назначение операционной системы заключается в обеспечении удобства
управления компьютером.
Любая операционная система, в полном смысле этого термина, является
первой и наиболее важной программой любого компьютера. Как правило,
она является и наиболее сложной, используемой только для управления
самим компьютером.
Основная часть работы операционной системы заключается в
выполнении огромного количества рутинных операций контроля, проверки
достоверности, вычисления значений физических адресов и т.д. и т.п. и
предназначена, чтобы скрыть от пользователей большое количество
сложных и ненужных им деталей процесса управления аппаратной частью.
Как правило, операционная система состоит из нескольких частей:
Первая часть - это система BIOS в ПЗУ ПЭВМ.
Вторая часть - главная загрузочная запись.
Третья часть – аппаратный загрузчик операционной системы.
Четвертая часть – сканер и конфигуратор аппаратных средств ПЭВМ.
Пятая часть – ядро операционной системы и командный монитор.
Шестая часть – файлы конфигурации ini или реестр OS.
Седьмая часть – Диспетчеры объектов и устройств.
Восьмая часть – драйверы устройств.

Архитектура операционной системы Windows NT/2000/XP/7/8.
Приложение
POSIX
Подсистема
POSIX
Приложение
Win32
Подсистема
Win32
Приложение
OS/2
Подсистема
OS/2
Процесс
регистрации
в системе
Подсистемы рабочей
среды
Подсистема
защиты
Уровни сервисов OS
Пользовательский режим
Режим ядра
Диспетчер
энергопитания
Средство
локального
вызова
процедур
Диспетчер
механизмов
Plug & Play
Диспетчер
виртуальной
памяти
Диспетчер
процессов
Справочный
монитор
защиты
Диспетчер
объектов
Системные сервисы (службы модуля EXEcutive)
Диспетчер
ввода/вывода
Файловые системы
Диспетчер КЭШа
Драйверы устройств
Ядро OS
Слой абстрагирования от оборудования HAL
Аппаратная часть
Сетевые драйверы

Пояснения к архитектуре операционной системы.
Пользовательский режим.
Большая часть приложений, запускаемых пользователем, работает в
пользовательском режиме. Все эти приложения обладают ограниченным
доступом к операционной системе, благодаря чему при возникновении
неполадок в программе приложения ядро ОС остается надежно защищенным
и продолжает нормально функционировать.
Пользовательское приложение работает в рамках изолированного
адресного пространства, предоставляемого операционной системой.
При обращении к аппаратным устройствам (принтеру) службами ядра
(диспетчером ввода/вывода) запускается соответствующий драйвер.
Службы Windows (например, Task Scheduler, Messenger, Alerter и др.)
работают в пользовательском режиме в специальном пользовательском
контексте безопасности индивидуального рабочего окружения каждой
конкретной прикладной задачи.
Режим ядра.
Процессы, работающие в этом режиме, обладают наивысшим уровнем
привилегий. Они работают в одном и том же адресном пространстве и могут
напрямую обращаться к оборудованию компьютера, включая такие важные
устройства, как центральный процессор или видеоадаптер.
В этом же режиме функционируют драйверы устройств, все системные
диспетчеры, модуль Microkernel, все службы модуля EXEcutive, а также
системные сервисы уровня абстракции оборудования HAL (Hardware
Abstraction Layer).

Модуль EXEcuteve.
Так обозначаются в Windows NT/2000/XP программные компоненты,
работающие в режиме ядра.
Эти компоненты включают в себя жизненно-важные службы ОС такие,
как управление памятью, вводом/выводом, системой безопасности,
механизмами взаимодействия процессов, кэшированием, а также системой
управления объектами.
Модуль EXEcutive загружается в процессе начальной загрузки ОС и
является частью файла Ntoskrnl.exe.
Модуль Microkernel.
Управляет переключением процессора между выполнением разных
потоков, а также обрабатывает системные прерывания и исключения.
Этот модуль синхронизирует работу нескольких процессоров на
многопроцессорных аппаратных платформах.
В отличие от остального кода ОС этот модуль никогда не перемещается
в виртуальную память, т.к. его компоненты должны иметь фиксированные
физические адреса.
Модуль Microkernel также является частью файла Ntoskrnl.exe.
Уровень абстракции оборудования HAL (Hardware Abstraction Layer).
Позволяет ОС работать на аппаратных платформах различной
конфигурации и количества процессоров, не требуя ее перекомпилирования.
Обычно HAL разрабатывается производителем аппаратной платфориы.
Модуль HAL находится в файле hal.dll и загружается в процессе
начальной загрузки ОС.

Процессы и потоки.
Процесс – это программа, которую можно запустить в рабочей среде ОС.
Каждый процесс обладает своим адресным пространством, одним или
несколькими программными потоками, а также идентификатором
безопасности SID (Security ID), соответствующим учетной записи в контексте
безопасности которой этот процесс функционирует.
Поток – это составляющая часть процесса (что-то вроде процесса
внутри процесса), т.е. программный код, выполнением которого занят
процессор.
В любой момент времени один процессор может выполнять только один
программный поток. Переключение процессора между выполнением
нескольких программных потоков осуществляется средствами ОС.
Каждый процесс может включать в себя несколько программных
потоков. Например, работая в программе Explorer, можно открыть новое
окно, для управления этим окном создается новый поток. Это означает, что в
системе существует только один экземпляр процесса Windows Explorer, но в
рамках этого процесса работает одновременно несколько программных
потоков.
Симметричная многопроцессорная архитектура и наращиваемость ОС.
ОС Windows NT/2000/XP обладают встроенной поддержкой многопроцессорных систем SMP (Symmetric Multiprocessing). Это означает, что если в
системе установлено больше одного процессора, то поток, требующий
выполнения, будет выполняться первым освободившимся процессором.
Переключение процессоров между потоками осуществит модуль Microkernel.

Службы и приложения пользовательского режима.
В пользовательском режиме работают процессы 3-х типов с различным
уровнем привилегий.
1. Системные процессы. Это процессы управляющие рабочей средой
пользовательского режима: Winlogon (подключение пользователей к
системе), Service Controller (сервис подключения служб), Session Manager
(диспетчер сеанса). Эти процессы запускаются модулем Ntoskrnl.exe в
процессе начальной загрузки и используют учетную запись LocalSystem.
2. Службы Windows. Службы (Alerter, Computer Browser и др.)
запускаются процессом Service Controller (файл services.exe) для прикладной
задачи. Эти службы функционируют, как отдельные потоки в рамках
процесса services.exe и не отображаются диспетчером задач в качестве
отдельных процессов.
Большинство служб не использует контекст безопасности LocalSystem.
3. Пользовательские прикладные программы. Т.е. прикладные
программы запускаемые пользователем в пользовательском режиме.
Каждая такая программа функционирует в рамках своего собственного
виртуального адресного пространства.
Процесс ассоциируется с подсистемой рабочего окружения environment
subsystem, который принимает от него вызовы, адресуемые API (Application
Program Interface) и преобразует их в команды, адресованные модулю
EXEcutive.
Для поддержки DOS служит подсистема времени исполнения Сsrss.exe,
которая запускается автоматически при формировании вызова.

Порядок загрузки операционной системы.
Загрузка любой операционной системы после завершения операций
инициализации аппаратных средств предусматривает следующие этапы:
- инициализация загрузчика OS (Boot loader process),
- выбор операционной системы (если предусмотрен выбор),
- повторное сканирование аппаратных средств,
- загрузка ядра OS и его инициализация.
После завершения POST BIOS передает управление на первое внешнее
устройство (согласно установленному приоритету), имеющее в буфере
данных байт 80h. Считывание следующего байта из этого порта активирует
программу аппаратной загрузки OS: т.е. будет выполнена процедура,
записанная в начале раздела MBR, которая позволит найти адрес первого
активного раздела в таблице разделов (по значению байта 80h), и загрузит
следующую за ним команду в табличной записи JMP(xx) на исполнение.
Адрес команды JMP является адресом аппаратного загрузчика NTLDR
(для операционной системы Windows NT/2000/XP), IBMBIO.COM (для DOS) или
аналогичной программы для других OS (например UNIX, Linux и т.д.).
NTLDR загрузит режим плоского 32-хразрядного адресного пространства
и запустит минифайловую систему, совместимую с FAT16, FAT32 и NTFS.
Затем читает Boot.ini в корневом каталоге и предлагает выбор OS к загрузке.
После выбора Windows XP выполняет программу Ntdetect.com, чтобы
собрать информацию о всех физических устройствах, подключенных к ЦП.
Затем NTLDR загружает в ОЗУ и запускает ядро операционной системы –
программу Ntoskrnl.exe, которая принимает данные сканирования.

Файлы, необходимые для успешного запуска ОС Windows XP.
Процедура запуска системы закончится неудачей, если хотя бы один из
указанных ниже файлов не будет найден или окажется поврежденным.
Наименование файла
Расположение файла
NTLDR
Корневой каталог Windows
Boot.ini
Корневой каталог Windows
Bootsect.dos (для выбора ОС)
Корневой каталог Windows
Ntdetect.com
Корневой каталог Windows
Ntbootdd.sys (только для SCSI)
Корневой каталог Windows
Ntoskrnl.exe
%SystemRoot%\System32
Hal.dll
%SystemRoot%\System32
Улей реестра \system
%SystemRoot%\System32\Config
драйверы устройств
%SystemRoot%\System32\Drivers
Файл Bootsect.dos содержит копию первого сектора раздела
альтернативной ОС (в данном случае DOS), аналогично можно построить
загрузчики для ОС UNIX и Linux, а затем отредактировать файл Boot.ini:
С:\ BOOTSECT.UNX=“UNIX”
С:\ BOOTSECT.LNX=“Linux”

Дальнейшее развитие архитектуры операционных систем.
Загрузочная запись ДОС версии 1.00 имеет одно незначительное отличие
от всех остальных версий: вместо имени Роберта О"Рира – разработчика
первой версии ДОС, которую он сделал по прототипу (Key DOS) за 2 месяца,
во всех последующих версиях стоит название фирмы - "Майкрософт".
В настоящее время разработка новой версии ОС занимает 6-10 лет и в ее
реализации участвует коллектив 200-300 человек.
Фирма Microsoft стала практически монополистом на рынке ОС ПЭВМ. Из
альтернативных ОС для ПЭВМ можно указать лишь Unix и Linux.
Основное совершенствование, которое реализовано в настоящее время
– для многоядерных процессоров нового поколения архитектуры Itanium
создан новый интерфейс между ОС и встроенным программным
обеспечением аппаратных платформ – EFI (Extensible Firmware Interface),
который предназначен для замены системы POST. Сейчас UEFI.
Для этой системы фирмой Microsoft разработан новый загрузчик для
операционной системы Windows, вошедший в состав ОС Windows 7/8,
bootmgr вместо NTLDR, файлы Boot.ini и Ntdetect.com также исключены из
системы, т.к. информация, которая хранилась там, находится в BOOT, а все
аппаратное окружение полностью соответствует спецификации ACPI.
Для изоляции MBR, ВООТ и загрузчика от неосторожных действий
пользователя создается изолированный системный раздел на жестком диске
размером 100 Мбайт.
Соответствующим образом откорректирован реестр Windows.

Лекция 6 Последовательный и параллельный порты .

6.1 Параллельные интерфейсы

6.1.1. Интерфейс Centronics и LPT-порт

6.1.2 Интерфейс Centronics

6.1.3 Традиционный LPT-порт

6.1.4 Расширения параллельного порта

6.1.5 Стандарт IEEE 1284

6.1.6 Физический и электрический интерфейсы

6.1.7 Развитие стандарта IEEE 1284

6.1.8 Конфигурирование LPT-портов

6.2 Последовательные интерфейсы

6.2.1. Способы последовательной передачи

6.2.2 Интерфейс RS-232C

6.2.3 Электрический интерфейс

6.2.4 СОМ-порт

6.2.5 Использование СОМ-портов

6.2.6 Ресурсы и конфигурирование СОМ-портов

6 .1 Параллельные интерфейсы

Параллельные интерфейсы характеризуются тем, что в них для передачи бит в слове используются отдельные сигнальные линии, и биты передаются одновременно. Параллельные интерфейсы используют логические уровни ТТЛ (транзисторно-транзисторной логики), что ограничивает длину кабеля изза невысокой помехозащищенности ТТЛ-интерфейса. Гальваническая развязка отсутствует. Параллельные интерфейсы используют для подключения принтеров. Передача данных может быть как однонаправленной (Centronics), так и двунаправленной (Bitronics). Иногда параллельный интерфейс используют для связи между двумя компьютерами - получается сеть, "сделанная на коленке" (LapLink). Ниже будут рассмотрены протоколы интерфейсов Centronics, стандарт IEEE 1284, а также реализующие их порты PC.

6.1.1. Интерфейс Centronics и LPT-порт

Для подключения принтера по интерфейсу Centronics в PC был введен порт параллельного интерфейса - так возниклоназвание LPT-порт (Line PrinTer - построчный принтер).Хотя сейчас через этот порт подключаются не только построчные принтеры, название "LPT" осталось.

6.1.2 Интерфейс Centronics

Понятие Centronics относится как к набору сигналов и протоколу взаимодействия, так и к 36-контактному разъему на ринтерах. Назначение сигналов приведено в табл. 1.1, а временные диаграммы обмена с принтером - на рис. 1.1. Интерфейс Centronics поддерживается принтерами с парал-
лельным интерфейсом. Его отечественным аналогом явля-
ется интерфейс ИРПР-М. Традиционный порт SPP (Standard Parallel Port) является однонаправленным портом, через который программно реализуется протокол обмена Centronics. Порт вырабатывает аппаратное прерывание по импульсу на входе Ack#. Сигналы порта выводятся на разъем DB-25S (розетка), установленный непосредственно на плате адаптера (или системной плате) или соединяемый с ней плоским шлейфом.

6.1.3 Традиционный LPT-порт

Адаптер параллельного интерфейса представляет собой набор регистров, расположенных в пространстве ввода/вывода. Регистры порта адресуются относительно базового адреса порта, стандартными значениями которого являются 3BCh, 378h и 278h. Порт может использовать линию запроса аппаратного прерывания, обычно IRQ7 или IRQ5. Порт имеет внешнюю 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов, BIOS поддерживает до четырех (иногда до трех) LPT-портов (LPT1-LPT4) своим сервисом - прерыванием INT 17h, обеспечивающим через них связь с принтером по интерфейсу Centronics. Этим сервисом BIOS осуществляет вывод символа (по опросу готовности, не используя аппаратных прерываний), инициализацию интерфейса и принтера, а также опрос состояния принтера. Стандартный порт имеет три 8-битных регистра, расположенных по соседним адресам в пространстве ввода/вывода,
начиная с базового адреса порта (BASE).

6.1.4 Расширения параллельного порта

Недостатки стандартного порта частично устраняли новые типы портов, появившиеся в компьютерах PS/2.

Двунаправленный порт 1 (Type 1 parallel port} -интерфейс, введенный в PS/2. Такой порт кроме стандартного режима может работать в режиме ввода или двунаправленном режиме. Протокол обмена формируется программно, а для указания направления передачи в регистр управления порта введен специальный бит CR.5:0 - буфер данных работает на вывод, 1 - на ввод. Не путайте этот порт, называемый также enhanced bi-directional, с ЕРР. Данный тип порта прижился и в обычных компьютерах.

Порт с прямым доступом к памяти (Type 3 DMA parallelport)
применялся в PS/2 моделей 57, 90, 95. Был введен для повышения пропускной способности и разгрузки процессора при выводе на принтер. Программе, работающей с портом, требовалось только задать в памяти блок данных, подлежащих выводу, а затем вывод по протоколу Centronics произ-
водился без участия процессора. Позже появились другие адаптеры LPT-портов, реализующие протокол обмена Centronics аппаратно - Fast Centronics. Некоторые из них использовали FIFO-буфер данных Parallel Port FIFO Mode. He будучи стандартизованными, такие порты разных производителей требовали использования собственных специальных драйверов. Программы, использующие прямое управление регистрами стандартных портов, не умели более эффективно их использовать. Такие порты часто входили в состав мультикарт VLB. Существуют их варианты с шиной ISA, в том числе встроенные.

6.1.5 Стандарт IEEE 1284

Стандарт на параллельный интерфейс IEEE 1284, принятый в 1994 году, определяет порты SPP, ЕРР и ЕСР. Стандарт определяет 5 режимов обмена данными, метод согласования режима, физический и электрический интерфейсы. Согласно IEEE 1284, возможны следующие режимы обмена данными через параллельный порт:

^ Режим совместимости (Compatibility Mode) - однонаправленный (вывод) по протоколу Centronics. Этот режим соответствует стандартному порту SPP.

^ Полубайтный режим (Nibble Mode) - ввод байта в два цикла (по 4 бита), используя для приема линии состояния. Этот режим обмена может использоваться на любых адаптерах.

^ Байтный режим (Byte Mode) - ввод байта целиком, используя для приема линии данных. Этот режим работает только на портах, допускающих чтение выходных данных (Bi-Directional или PS/2 Type 1).

т Режим ЕРР (Enhanced Parallel Port) (EPP Mode) - двунаправленный обмен данными. Управляющие сигналы интерфейса генерируются аппаратно во время цикла обращения к порту. Эффективен при работе с устройства-
ми внешней памяти и адаптерами локальных сетей.

^ Режим ЕСР (Extended Capability Port) (ECP Mode) - двунаправленный обмен данными с возможностью аппаратного сжатия данных по методу RLE (Run Length Encoding) и использования FIFO-буферов и DMA. Управляющие
сигналы интерфейса генерируются аппаратно. Эффективен для принтеров и сканеров.

В компьютерах с LPT-портом на системной плате режим SPP, ЕРР, ЕСР или их комбинация - задается в BIOS Setup. Режим совместимости полностью соответствует стандартному порту SPP.

6.1.6 Физический и электрический интерфейсы

Стандарт IEEE 1284 определяет физические характеристики приемников и передатчиков сигналов. Спецификации стандартного порта не задавали типов выходных схем, предельных значений величин нагрузочных резисторов и
емкости, вносимой цепями и проводниками. На относительно невысоких скоростях обмена разброс этих параметров не вызывал проблем совместимости. Однако расширенные (функционально и по скорости передачи) режимы требуют четких спецификаций. IEEE 1284 определяет два
уровня интерфейсной совместимости. Первый уровень (Level I) определен для устройств медленных, но использующих смену направления передачи данных. Второй уровень (Level II) определен для устройств, работающих в
расширенных режимах, с высокими скоростями и длинными кабелями. К передатчикам предъявляются следующие требования:

^ Уровни сигналов без нагрузки не должны выходить за пределы -0,5... +5,5 В.

^ Уровни сигналов при токе нагрузки 14 мА должны быть не ниже +2,4 В для высокого уровня (Уон) и не выше +0,4 В для низкого уровня (VoiJ на постоянном токе.

Традиционные интерфейсные кабели имеют от 18 до 25 проводов, в зависимости от числа проводников цепи GND. Эти проводники могут быть как перевитыми, так и нет. К экранированию кабеля жестких требований не предъявлялось. Такие кабели вряд ли будут надежно работать на скорости
передачи 2 Мбайт/с и при длине более 2 м. Стандарт IEEE 1284 регламентирует свойства кабелей.


Три различных разъема, определенных в стандарте IEEE 1284

6.1.7 Развитие стандарта IEEE 1284

Кроме основного стандарта IEEE 1284, который уже принят, в настоящее время в стадии проработки находятся новые стандарты, дополняющие его. К ним относятся:

^ IEEE Р 1284.1 "Standard for Information Technology for Transport Independent Printer/Scanner Interface (TIP/SI)". Этот стандарт разрабатывается для управления и обслуживания сканеров и принтеров на основе протокола NPAP (Network Printing Alliance Protocol).

n IEEE P 1284.2 "Standard for Test , Measurement and Conformance to IEEE Std . 1284" - стандарт для тестирования портов, кабелей и устройств на совместимость с IEEE 1284.

ai IEEE P12843 "Standaixl for Interface and Protocol Extensions to IEEE Std. 1284 Compliant Peripheral and Host Adapter Ports" - стандарт на драйверы и использование устройств прикладным программным обеспечением (ПО). Уже приняты спецификации BIOS для использования ЕРР драйверами DOS. Прорабатывается стандарт на разделяемое использование одного порта цепочкой устройств или группой устройств, подключаемых через мультиплексор.

^ IEEE P1284.4 "Standard for Data Delivery and Logical Channels for IEEE Std. 1284 Interfaces" направлен на реализацию пакетного протокола достоверной передачи данных через параллельный порт. Основой служит протокол MLC (Multiple Logical Channels) фирмы ewlett-Packard, однако совместимость с ним в окончательной версии стандарта не гарантируется.

6.1.8 Конфигурирование LPT-портов

Управление параллельным портом разделяется на два этапа
предварительное конфшурирование (Setup) аппаратных средств порта и текущее (оперативное) переключение режимов работы прикладным или системным ПО. Оперативное переключение возможно только в пределах режимов, разрешенных при онфигурировании. Этим обеспечивается возможность согласования аппаратуры с ПО и блокирования ложных переключении, вызванных некорректными действиями программы. Конфигурирование LPT-порта зависит от его исполнения. Порт, расположенный на плате расширения (мультикарте), устанавливаемой в слот ISA или ISA+VLB, конфигурируется джемперами на самой плате. Порт на системной плате конфигурируется через BIOS Setup.

6.2 Последовательные интерфейсы

Последовательный интерфейс для передачи данных использует одну сигнальную линию, по которой информационные биты передаются друг за другом последовательно. Отсюда - название интерфейса и порта. Английские термины – Serial Interface и Serial Port (иногда их неправильно переводят как
"серийные"). Последовательная передача позволяет сократить количество сигнальных линий и увеличить дальность связи. Характерной особенностью является применение неТТЛ сигналов. В ряде последовательных интерфейсов применяется гальваническая развязка внешних (обычно вход-
ных) сигналов от схемной земли устройства, что позволяет соединять устройства, находящиеся под разными потенциалами. Ниже будут рассмотрены интерфейсы RS-232C, RS- 422А, RS-423A, RS-485, токовая петля, MIDI, а также СОМ-порт.

6.2.1. Способы последовательной передачи

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


биты. В идеале стробы располагаются в середине битовых интервалов, что позволяет принимать данные и при незначительном рассогласовании скоростей приемника и передатчика. Очевидно, что при передаче 8 бит данных, одного контрольного и одного стоп-бита предельно допустимое рас-
согласование скоростей, при котором данные будут распознаны верно, не может превышать 5%. С учетом фазовых искажений и дискретности работы внутреннего счетчика синхронизации реально допустимо меньшее отклонение частот. Чем меньше коэффициент деления опорной частоты внутреннего генератора (чем выше частота передачи), тем больше погрешность привязки стробов к середине битового интервала, и требования к согласованности частот становятся более строгими. Чем выше частота передачи, тем больше влияние искажений фронтов на фазу принимаемого сигнала. Взаимодействие этих факторов приводит к повышению требований к согласованности частот приемника и передатчика с ростом частоты обмена. Для асинхронного режима принят ряд стандартных скоростей обмена: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19 200, 38 400, 57 600 и 115 200 бит/с. Иногда вместо единицы измерения "бит/с" используют "бод" (baud), но при рассмотрении двоичных передаваемых сигналов это некорректно. В бодах принято измерять частоту изменения состояния линии, а при недвоичном способе кодирования (широко применяемом в современных модемах) в канале связи скорости передачи бит (бит/с) и изменения сигнала (бод) могут отличаться в несколько раз (подробнее см. в приложении А). Количество бит данных может составлять 5, 6, 7 или 8 (5- и 6-битные форматы распространены незначительно). Количество стоп-бит может быть 1, 1,5 или 2 ("полтора бита" означает только длительность стопового интервала). Асинхронный обмен в PC реализуется с помощью СОМ-порта с использованием протокола RS-232C. Синхронный режим передачи предполагает постоянную активность канала связи. Посылка начинается с синхробайта, за которым сразу же следует поток информационных бит. Если у передатчика нет данных для передачи, он заполняет паузу непрерывной посылкой байтов синхронизации. Очевидно, что при передаче больших массивов данных накладные расходы на синхронизацию в данном режиме будут ниже, чем в асинхронном. Однако в синхронном режиме необходима внешняя синхронизация приемника с передатчиком, поскольку даже малое отклонение частот приведет к искажению принимаемых данных. Внешняя синхронизация возможна либо с помощью отдельной линии для передачи сигнала синхронизации, либо с использованием самосинхронизирующего кодирования данных, при котором на стороне приемника из принятого сигнала могут быть выделены импульсы синхронизации. В любом случае синхронный режим требует дорогих линий связи или оконечного оборудования. Для PC существуют специальные платы – адаптеры SDLC (дорогие), поддерживающие синхронный режим обмена. Они используются в основном для связи с большими машинами (mainframes) IBM и мало распространены. Из синхронных адаптеров в настоящее время применяются адаптеры нтерфейса V.35.

На физическом уровне последовательный интерфейс имеет различные реализации, различающиеся способом передачи электрических сигналов. Существует ряд родственных международных стандартов: RS-232C, RS-423A, RS-422A и RS-485.


. Стандартный 25-контактный разъем последовательного порта

Несимметричные линии интерфейсов RS-232C и RS-423A
имеют самую низкую защищенность от синфазной помехи,
хотя дифференциальный вход приемника RS-423A несколько смягчает ситуацию. Лучшие параметры имеет двухточечный интерфейс RS-422A и его магистральный (шинный) аналог RS-485, работающие на симметричных линиях связи. В них для передачи каждого сигнала используются дифференциальные сигналы с отдельной (витой) парой проводов.

В перечисленных стандартах сигнал представляется потенциалом. Существуют последовательные интерфейсы, где информативен ток, протекающий по общей цепи передатчик-приемник - "токовая петля" и MIDI. Для связи на короткие расстояния приняты стандарты беспроводной инфракрасной связи. Наибольшее распространение в PC получил простейший из перечисленных - стандарт RS-232C, реализуемый СОМ-портами. В промышленной автоматике широко применяется RS-485, а также RS-422A, встречающийся и в некоторых принтерах. Существуют преобразователи сигналов для согласования этих родственных интерфейсов.

6.2.2 Интерфейс RS-232C

Интерфейс предназначен для подключения аппаратуры, передающей или принимающей данные {О ОД – оконечное оборудование данных или АПД - аппаратура передачи данных; DTE - Data Terminal Equipment), к оконечной аппаратуре каналов данных (АКД", DCE - Data Communication Equipment). В роли АПД может выступать компьютер, принтер, плоттер и другое периферийное оборудование. В роли АКД обычно выступает модем. Конечной целью подключения является соединение двух устройств АПД. Стандарт описывает управляющие сигналы интерфейса, пересылку данных, электрический интерфейс и типы разъемов. В стандарте предусмотрены асинхронный и синхронный режимы обмена, но СОМ-порты поддерживают только асинхронный режим. Функционально RS-232C эквивалентен
стандарту МККТТ V.24/ V.28 и стыку С2, но они имеют различные названия сигналов.

6.2.3 Электрический интерфейс

Стандарт RS-232C использует несимметричные передатчики и приемники - сигнал передается относительно общего провода - схемной земли (симметричные дифференциальные сигналы используются в других интерфейсах - например, RS-422). Интерфейс НЕ ОБЕСПЕЧИВАЕТ ГАЛЬВАНИ- ЧЕСКОЙ РАЗВЯЗКИ устройств. Логической единице
соответствует напряжение на входе приемника в диапазоне -12...-3 В. Для линий управляющих сигналов это состояние называется ON( "включено"), для линий последовательных данных - MARK. Логическому нулю соответствует диапазон +3...+12 В. Для линий управляющих сигналов состояние называется OFF ("выключено"), а для линий последовательных данных - SPACE. Диапазон -3...+3 В - зона нечувствительности, обусловливающая гистерезис приемника: состояние линии будет считаться измененным только после пересечения порога (рис. 2.5). Уровни сигналов на выходах передатчиков должны быть в диапазонах -12...-5 В и +5...+12 В для представления единицы и нуля соответственно. Разность потенциалов между схемными землями (SG) соединяемых устройств должна быть менее 2 В, при более высокой разности потенциалов возможно неверное восприятие игналов. Интерфейс предполагает наличие ЗАЩИТНОГО ЗАЗЕМЛЕНИЯ для соединяемых устройств, если они оба питаются от сети переменного тока и имеют сетевые фильтры.

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

6.2.4 СОМ-порт

Последовательный интерфейс СОМ-порт (Communication Port - коммуникационный порт) появился в первых моделях IBM PC. Он был реализован на микросхеме асинхронного приемопередатчика Intel 8250. Порт имел поддержку BIOS (/Л/Т 74/?), однако широко применялось (и применяется) взаимодействие с портом на уровне регистров. Поэтому во всех PC-совместимых компьютерах для последовательного интерфейса
применяют микросхемы приемопередатчиков, совместимые с i8250. В ряде отечественных PC-совместимых (почти) компьютеров для последовательного интерфейса применялась микросхема КР580ВВ51 - аналог 18251. Однако эта микросхема является универсальным синхронно-асинхронным приемопередатчиком (УСАПП или USART - Universal Asynchronous
Receiver-Transmitter). Совместимости с PC на уровне регистров СОМ-порта такие компьютеры не имеют. Хорошо, если у соответствующих компьютеров имеется "честный" драйвер B/OS /Л/Т 14h, а не заглушка, возвращающая состояние модема "всегда готов" и ничего не делающая. Совместимость на уровне регистров СОМ-порта считается необходимой. Многие разработчики коммуникационных пакетов предлагают работу и через B/OS /Л/Т 14h, однако на высоких скоростях это неэффективно. Говоря о СОМ-порте PC, по умолчанию будем подразумевать совместимость регистровой модели с i8250 и реализацию асинхронного интерфейса RS-232C.

6.2.5 Использование СОМ-портов

СОМ-порты чаще всего применяют для подключения
манипуляторов
(мышь, трекбол). В этом случае порт используется в режиме последовательного ввода; питание производится от интерфейса. Мышь с последовательным интерфейсом - Serial Mouse -может подключаться к любому исправному порту. Для подключения внешних модемов используется полный (9-проводный) кабель АПД-АКД, схема которого приведена на рис. 2.7. Этот же кабель используется для согласования разъемов (по количеству контактов); возможно применение переходников 9-25, предназначенных для мышей. Для работы коммуникационного ПО обычно требуется использование прерываний, но здесь есть свобода выбора номера (адреса) порта и линии прерывания. Если предполагается работа на скоростях 9600 бит/с и выше, то СОМ-порт должен быть реализован на микросхеме UART 16550A или совместимой. Возможности работы с использованием FIFO-буферов и обмена по каналам DMA зависят от коммуникационного ПО. Для связи двух компьютеров, удаленных друг от друга на небольшое расстояние, используют и непосредственное соединение их СОМ-портов нуль-модемным кабелем (рис. 2.8). Использование программ типа Norton Commander или Interink MS-DOS позволяет обмениваться файлами со ско-
ростью до 115,2 Кбит/с без применения аппаратных прерываний. Это же соединение может использоваться и сетевым пакетом Lantastic, предоставляющим более развитый сервис.

Подключение принтеров и плоттеров к СОМ-порту требует применения кабеля, соответствующего выбранному протоколу управления потоком: программному XON/XOFF или аппаратному RTS/CTS. Аппаратный протокол предпочтительнее. Прерывания при выводе средствами DOS (командами COPY или PRINT) не используются. СОМ-порт при наличии соответствующей программной поддержки позволяет превратить PC в терминал, эмулируя систему команд распространенных специализированных терминалов (VT-52, VT-100 и т. д.). Простейший терминал получается, если замкнуть друг на друга функции BIOS обслуживания СОМ-порта (INT 14h), телетайпного вывода (/Л/Т 10h) и клавиатурного ввода (INT 16h). Однако такой терминал будет работать лишь на малых скоростях обмена (если, конечно, его делать не на Pentium), поскольку функции BIOS хоть и универсальны, но не слишком быстры.

Интерфейс RS-232C широко распространен в различных ПУ и терминалах. СОМ-порт может использоваться и как двунаправленный интерфейс, у которого имеется 3 программно управляемые выходные линии и 4 программно-читаемые входные линии с двуполярными сигналами. Их использование определяется разработчиком. Существует, например, схема однобитного широтно-импульсного преобразователя, позволяющего записывать звуковой сигнал на диск PC, используя входную линию СОМ-порта. Воспроизведение этой записи через обычный динамик PC позволяет передать речь. В настоящее время, когда звуковая карта стала почти
обязательным устройством PC, это не впечатляет, но когда-то такое решение было интересным.

СОМ-порт используют для беспроводных коммуникаций с применением излучателей и приемников инфракрасного диапазона - IR (Infra Red) Connection. Этот интерфейс позволяет осуществлять связь между парой устройств, удаленных на расстояние, достигающее нескольких метров. Различают инфракрасные системы низкой (до 115,2 Кбит/с), средней (1,152 Мбит/с) и высокой (4 Мбит/с) скорости. Низкоскоростные системы служат для обмена короткими сообщениями, высокоскоростные - для обмена файлами между компьютерами, подключения к компьютерной сети,
вывода на принтер, проекционный аппарат и т. п. Ожидаются более высокие скорости обмена, которые позволят передавать "живое видео". В 1993 году создана ассоциация разработчиков систем инфракрасной передачи данных IrDA (Infrared Data Association), призванная обеспечить совместимость оборудования от различных производителей Инфракрасные излучатели не создают помех в радиочастотном диапазоне и обеспечивают конфиденциальность передачи. ИК-лучи не проходят через стены, поэтому зона приема ограничивается небольшим легко контролируемым пространством. Инфракрасная технология привлекательна
для связи портативных компьютеров со стационарными компьютерами или станциями. Инфракрасный интерфейс имеют некоторые модели принтеров.

6.2.6 Ресурсы и конфигурирование СОМ-портов

Компьютер может иметь до четырех последовательных портов СОМ 1-COM4 (для машин класса AT типично наличие двух портов). СОМ-порты имеют внешние разъемы-вилки DB25P или DB9P, выведенные на заднюю панель компьютера. СОМ-порты реализуются на микросхемах UART, совместимых с семейством 18250. Они занимают в пространстве ввода/вывода по 8 смежных 8-битных регистров и могут располагаться по стандартным базовым адресам. Порты вырабатывают аппаратные прерывания. Возможность разделяемого использования одной линии запроса несколькими портами (или ее разделения с другими устройствами) зависит от реализации аппаратного подключения и ПО. При использовании портов, установленных на шину ISA, разделяемые прерывания обычно не работают. Управление последовательным портом разделяется на два этапа - предварительное конфигурирование (Setup) аппаратных средств порта и текущее (оперативное) переключение режимов работы прикладным или системным ПО. Конфигурирование СОМ-порта зависит от его исполнения. Порт на плате расширения конфигурируется джамперами на самой плате. Порт на системной плате конфигурируется через BIOS Setup.

Контрольные вопросы

Контрольные вопросы

1Опишите назначение параллельных и последовательных интерфейсов.

2К чему относится понятие « Интерфейс Centronics »?

3Опишите «Традиционный LPT-порт».

4Опишите двунаправленный порт 1.

5Опишите порт с прямым доступом к памяти.

6Опишите особенности стандарта IEEE 1284.

7Какие уровни интерфейсной совместимости определяет IEEE 1284?

8Перечислите новые стандарты IEEE 1284.

9Опишите способы последовательной передачи сигналов.

10Опишите реализацию последовательного интерфейса на физическом уровне.

11Опишите назначение интерфейса RS-232C.

12Опишите особенности электрическогоинтерфейса RS-232C.

13Для чего используют СОМ-порты.

14Опишите использование СОМ-порта для беспроводных коммуникаций.

15Опишите конфигурирование СОМ-портов.

Конец формы

Порты ввода - вывода. Устройства параллельного и последовательного ввода - вывода

Порт ввода-вывода

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

Параллельный порт

Разъем ввода/вывода для подключения устройств параллельного интерфейса. Большинство принтеров подключаются к параллельному порту.

Последовательный порт

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

Асинхронная связь

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

Параллельный порт (LPT)

(25 – контактный разъем). Предназначен для подключения принтера, сканера, а также – внешних устройств для хранения и траспортировки информации (накопителей). До недавнего времени отличался сравнительно высокой скоростью передачи данных (около 2 Мбайт/с). Как правило, LPT – разъем на задней стенке компьютера единственный.

Последовательные порты (COM) (9 – и 25 – контактный разъем) отличаются куда меньшей скоростью (около 112 кбайт/с). Потому и выпадала на их долю поддержка всяческих «неспешных» устройств – например, мыши или модема. Первоначально COM – портов на компьютере было четыре, однако со временем их осталось лишь два. Мышь предпочла последовательному порту свой собственный разъем PS/2, разделив его с клавиатурой, а на долю COM – порта осталась лишь поддержка медлительного модема. Со временем и модем эмигрирует к новому порту USB – тогда COM – порт окончательно и бесповоротно уйдет в прошлое.

В свое время мышь и клавиатура подключались к разным разъемам: мышь по соседству с модемом на COM – порте, а клавиатура имела свой собственный, ни на что не похожий разъем. PS/2 – порт впервые появился на массовых материнских платах в 1998 году. Подключить к нему что – то кроме мыши и клавиатуры не получится.

Последовательный порт и интерфейс USB.

Эту новинку, успешно дебютирующую в 2000 году, называли одной из самых значительных новаций десятилетия. Одним из главных плюсов USB является то, что на один USB – порт можно подключить 127 устройств (в отличие от старых портов: к каждому можно было подключить только одно устройство). Все USB – устройства могут подключаться к компьютеру «по цепочке» - в том случае, если у каждого «звена» имеется свой USB – порт или USB – хаб на несколько портов одновременно. Единственное правило, которое следует соблюдать при работе с USB – первыми в цепочке должны быть самые производительные устройства: принтер, сканер, колонки, накопители. А в самом конце - медленные клавиатура и мышь.

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

Скорость первой модификации USB (а именно к этому стандарту относятся все устройства, выпущенные до конца 2000 года) составляет около 12 Мбайт/с (на деле ряд подключенных к USB устройств работает с куда меньшей скоростью – до 1,5 Мбайт/с). Новая спецификация шины USB 2.0, принятая в апреле 2000 года, планировала увеличить скорость передачи данных до 60 Мбайт/с, однако новые устройства, поддерживающие такую скорость обмена, вышли на рынок только в конце года. USB 2.0 совместима с устройствами USB старого формата, но работать они будут с прежней скоростью.

Инфракрасный порт

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

Последовательные порты

Последовательные порты для обмена данными с внешними устройствами – важнейшая составляющая любого МК, без них его «общение» с внешним миром резко ограничено. Последовательными их называют потому, что в них в каждый момент времени передается только один бит (в некоторых случаях возможна одновременная передача и прием, но все равно только по одному биту за раз). Самое главное преимущество последовательных портов перед параллельными (когда одновременно производится обмен целыми байтами или полубайтами‑тетрадами) – снижение числа соединений. Но оно не единственное – как ни парадоксально, но последовательные интерфейсы дают значительную фору параллельным на высоких скоростях, когда на надежность передачи начинают влиять задержки в линиях. Последние невозможно сделать строго одинаковыми, и это одна из причин того, что последовательные интерфейсы в настоящее время начинают доминировать (типичные примеры: USB и Fire Wire вместо LPT и SCSI или Serial ATA вместо IDE).

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

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

Из всех разновидностей портов, которые могут наличествовать в МК AVR, мы особенно обратим внимание на UART (Universal Asynchronous Receiver‑Transmitter , универсальный асинхронный приемопередатчик). UART есть основная часть любого устройства, поддерживающего протокол RS‑232, но и не только его (недаром он «универсальный») – например, промышленные стандарты RS‑485 и RS‑422 также реализовываются через UART, т. к. они отличаются от RS‑232 только электрическими параметрами и допустимыми скоростями, а не общей логикой построения.

В персональных компьютерах есть СОМ‑порт, который работает по тому же протоколу RS‑232, и узел UART точно так же является его базовой частью. Поэтому UART служит основным способом обмена данными МК с компьютером.

Отметим, что отсутствие СОМ‑порта в большинстве современных моделей ПК не является препятствием – существуют переходники USB‑COM, а в настольную модель можно вставить дополнительную карту с СОМ‑портами. О том, как обращаться с UART на практике, рассказывается в главах 21 и 22 , применительно к платформе Arduino – программировать такой обмен на ассемблере гораздо сложнее (хотя и надежнее, см. далее). В главе 22 мы увидим, что существуют простые и при этом достаточно надежные способы организовать передачу через последовательный порт по радиоканалу, что позволяет обойтись вообще без проводов.

Кроме UART, почти все МК AVR содержат самый простой из всех последовательных портов – SPI (Serial Peripheral Interface , последовательный периферийный интерфейс). Об устройстве SPI упоминалось в главе 16 . Его принципиальная простота сыграла отчасти дурную роль – трудно встретить два устройства, где протоколы SPI полностью совпадают, обычно обмен по этому порту сопровождается теми или иными «наворотами». Следует отметить, что программирование AVR также осуществляется через SPI, однако в общем случае этот интерфейс и SPI для обмена данными – разные вещи, хотя в большинстве случаев выводы у них одни и те же.

Кстати, всем знакомые карты памяти («флэшки») также адресуются через протокол, очень близкий к SPI.

Кроме этих портов, часто применяется очень простой аппаратно, но более сложный с программной точки зрения и довольно медленный интерфейс 12С (в терминологии Atmel AVR он называется TWI (Two‑Wire Interface , двухпроводной интерфейс). С его помощью можно общаться со многими устройствами: часами реального времени, компасами, датчиками, некоторыми разновидностями памяти. Мы рассмотрим его опять же в главах, посвященных Arduino .

В AVR имеется 10‑разрядный АЦП последовательного приближения (см. главу 17 ). Работа с ним имеет довольно много нюансов, и мы ее подробно рассмотрим в главе 20 . В главе 22 вы увидите, насколько Arduino упрощает этот процесс. И вообще, некоторые другие узлы МК семейства AVR мы рассмотрим по ходу изложения конкретных схем – так будет нагляднее. Сейчас же мы закончим затянувшееся знакомство с микроконтроллером и обратимся к вопросу о том, как его программировать. Следующие две главы мы посвятим элементарным сведениям о программировании МК на ассемблере, а далее перейдем к языкам высокого (и даже сверхвысокого) уровня. Так вы сможете наглядно сравнить и даже при желании «пощупать руками» преимущества и недостатки того и иного подхода и границы их применимости.