Тарифы Услуги Сим-карты

Последовательный и параллельный порты, их назначение

Лабораторная работа №9

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

Цель лабораторной работы:

– Изучение особенностей работы параллельных и последовательных портов

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

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

Последовательный порт стандарта RS-232-C. Является стандартом для соединения ЭВМ с различными последовательными внешними устройствами. В операционных системах каждому порту RS-232 присваивается логическое имя COM1-COM4.

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

Интерфейс USB (Universal Serial Bus) – универсальная последовательная шина призвана заменить устаревшие последовательный (COM-порт) и параллельный (LTP-порт) порты. Шина USB допускает подключение новых устройств без выключения компьютера. Шина сама определяет, что именно подключили к компьютеру, какой драйвер и ресурсы понадобятся устройству, после чего выделяет их без вмешательства пользователя. Шина USB позволяет подключить до 127 устройств.

IEEE 1394 (Institute of Electrical and Electronic Engineers 1394 – стандарт Института инженеров по электротехнике и электронику 1394) - последовательный интерфейс, предназначенный для подключения внутренних компонентов и внешних устройств. Цифровой последовательный интерфейс IEEE 1394 характеризуется высокой надежностью и качеством передачи данных, его протокол поддерживает гарантированную передачу критичной по времени информации, обеспечивая прохождение видео- и аудиосигналов в реальном масштабе времени без заметных искажений. При помощи шины IEEE 1394 можно подключить до 63 устройств и практически в любой конфигурации, чем она выгодно отличается от трудноконфигурируемых шин SCSI. Этот интерфейс используется для подключения жестких дисков, дисководов CD-ROM и DVD-ROM, а также высокоскоростных внешних устройств, таких как видеокамеры, видеомагнитофоны и т.д.

Задание 1.

Найти рисунок разъёмов системной платы. Указать название разъёмов и для каких устройств они применяются. Найти теоретические сведения по этим разъёмам.

Задание 2.

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

Наружные разъёмы материнской платы: PS/2 (1 - мышь, 2 - клавиатура), сетевой RJ-45 (3), USB (4), D-subminiature (9-контактный разъём COM-порта) (5), LPT порт (6), VGA порт (7), MIDI) (8) и 3.5 мм аудио входы-выходы (разъём TRS) (9)

1, 2. PS/2 — компьютерный порт (разъём), применяемый для подключения клавиатуры и мыши. Впервые появился в 1987 году на компьютерах IBM PS/2 и впоследствии получил признание других производителей и широкое распространение в персональных компьютерах и серверах. Скорость передачи данных — от 80 до 300 Кб/с и зависит от производительности подключенного устройства и программного драйвера.

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.

Внутри компьютера, и внешним устройством . Так, шинный разъём AGP фактически является портом.

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

Первые IBM PC предоставляли

  • встроенный порт для подключения клавиатуры;
  • до 4 (COM1 … COM4) последовательных портов (англ. COMmunication ), обычно служащих для подключения сравнительно высокоскоростных коммуникационных устройств, использующих интерфейс RS-232 , например модемов . Для них выделялись следующие ресурсы материнской платы:
базовые порты ввода-вывода: 3F0..3FF (COM1), 2F0..2FF (COM2), 3E0..3EF (COM3) и 2E0..2EF (COM4) номер IRQ: 3 (COM2/4), 4 (COM1/3);
  • до 3 (LPT1 .. LPT3) параллельных портов (англ. Line Print Terminal ), обычно служащих для подключения принтеров , использующих интерфейс IEEE 1284. Для них выделялись следующие ресурсы материнской платы:
базовые порты ввода-вывода: 370..37F (LPT1 или LPT2 только в компьютерах IBM с MRA), 270..27F (LTP2 или LPT3 только в компьютерах IBM с MCA] и 3B0..3BF (LPT1 только в компьютерах IBM с MCA) номер IRQ: 7 (LPT1), 5 (LPT2)

Изначально COM- и LPT-порты на материнской плате отсутствовали физически и реализовались дополнительной картой расширения , вставляемой в один из ISA -слотов расширения на материнской плате.

Последовательные порты, как правило, использовались для подключения устройств, которым требовалось быстро передать небольшой объём данных, например компьютерной мыши и внешнего модема , а параллельные - для принтера или сканера, для которых передача большого объёма не была критичной по времени [ ] . В дальнейшем поддержка последовательных и параллельных портов была интегрирована в чипсеты , реализующие логику материнской платы.

Недостаток интерфейсов RS-232 и IEEE 1284 - относительно малая скорость передачи данных, не удовлетворяющая растущие потребности в передаче данных между устройствами. Как следствие, появились новые стандарты интерфейсных шин USB и FireWire , которые были призваны заменить старые порты ввода-вывода.

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

Шина IEEE 1394 предусматривает передачу данных между устройствами со скоростями 100, 200, 400, 800 и 1600 Мбит/с и призвана обеспечивать комфортную работу с жёсткими дисками, цифровыми видео- и аудиоустройствами и другими скоростными внешними компонентами.

FireWire, как и USB, является последовательной шиной. Выбор последовательного интерфейса обусловлен тем, что для повышения скорости работы интерфейса необходимо повышать частоту его работы, а в параллельном интерфейсе это вызывает усиление наводок между параллельными жилами интерфейсного кабеля и требует сокращения его длины. Кроме того, кабель и разъёмы параллельных шин имеют большие габариты.

Литература

  • Быстро и легко. Сборка, диагностика, оптимизация и апгрейд современного компьютера.: Практ. пособ. - М. : Лучшие книги, 2000. - 352 с. - ISBN 5-93673-003-4 .
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 -безопасности, обсудим сетевые проблемы .

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

Последовательные порты для обмена данными с внешними устройствами – важнейшая составляющая любого МК, без них его «общение» с внешним миром резко ограничено. Последовательными их называют потому, что в них в каждый момент времени передается только один бит (в некоторых случаях возможна одновременная передача и прием, но все равно только по одному биту за раз). Самое главное преимущество последовательных портов перед параллельными (когда одновременно производится обмен целыми байтами или полубайтами‑тетрадами) – снижение числа соединений. Но оно не единственное – как ни парадоксально, но последовательные интерфейсы дают значительную фору параллельным на высоких скоростях, когда на надежность передачи начинают влиять задержки в линиях. Последние невозможно сделать строго одинаковыми, и это одна из причин того, что последовательные интерфейсы в настоящее время начинают доминировать (типичные примеры: 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 мы рассмотрим по ходу изложения конкретных схем – так будет нагляднее. Сейчас же мы закончим затянувшееся знакомство с микроконтроллером и обратимся к вопросу о том, как его программировать. Следующие две главы мы посвятим элементарным сведениям о программировании МК на ассемблере, а далее перейдем к языкам высокого (и даже сверхвысокого) уровня. Так вы сможете наглядно сравнить и даже при желании «пощупать руками» преимущества и недостатки того и иного подхода и границы их применимости.