Semenalidery.com

IT Новости из мира ПК
10 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Serial port в биосе что это

BIOS и тонкая настройка ПК. Легкий старт (23 стр.)

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

Настройки портов ввода/ вывода могут быть выделены в отдельный подраздел с названием Onboard I/O Chip, SuperlO Device или аналогичный (рис. 6.4).

Рис. 6.4. Подраздел для конфигурации портов ввода/вывода

Onboard Serial Port 1, COM Port 1

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

Auto – последовательный порт включен, и ресурсы для него распределяются автоматически (рекомендуемое значение);

3F8/IRQ4, 2F8/IRQ3, 3E8/IRQ4, 2E8/IRQ3 – адрес ввода/вывода и прерывание для порта выбирается из предложенного списка, что может понадобиться в особых случаях;

Disabled (Off) – последовательный порт отключен и не использует ресурсов.

Onboard Serial Port 2, COM Port 2 Параметр настраивает второй последовательный порт. Значения аналогичны параметру Onboard Serial Port 1.

Onboard Parallel Port, Parallel Port

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

■ 378/IRQ7 (по умолчанию), 3BC/IRQ7, 278/IRQ5 – адрес ввода/ вывода и прерывание, используемые параллельным портом;

■ Disabled (Off) – порт отключен и не использует ресурсов.

В некоторых версиях BIOS вместо указанного параметра применяются отдельные параметры Parallel Port Address и Parallel Port IRQ для установки, соответственно, адреса ввода/вывода и прерывания для порта.

Parallel Port Mode, Onboard Parallel Mode, Parallel Port Type

Параметр выбирает режим работы встроенного параллельного порта.

■ Normal (SPP ) – стандартный режим работы параллельного порта; устанавливайте это значение, когда устройство работает некорректно в более быстрых режимах;

■ ЕСР+ЕРР – порт работает в одном из быстрых режимов ЕРР или ЕСР; это значение рекомендуется при подключении современных устройств. Во многих версиях BIOS можно также выбирать только один из указанных режимов.

При выборе ЕРР или ЕСР+ЕРР станет доступным параметр ЕРР Mode Select (ЕРР Version), с помощью которого устанавливается версия стандарта ЕРР (рекомендуется версия 1 .9).

При выборе режима ЕСР или ЕСР+ЕРР можно изменить номер канала DMA для порта с помощью параметра ЕСР Mode Use DMA (ЕСР Mode DMA Channel). Рекомендуемое значение – DMA3.

Другие устройства

Южные мосты современных чипсетов могут поддерживать большое количество разнообразных периферийных устройств. Для каждого из них есть соответствующий параметр BIOS, с помощью которого можно их отключить, установив значение Disabled (Off), или включить, установив значение Enabled (On) или Auto.

Вот список этих параметров для наиболее популярных периферийных устройств.

■ АС97 Audio, Audio Controller, Onboard Audio Chip. Управляет работой интегрированного звукового адаптера.

■ Onboard FDC Controller, OnBoard Floppy Controller. Включает или отключает встроенный контроллер гибких дисков.

■ Onboard LAN Control, MAC LAN. Включает или отключает интегрированный сетевой контроллер. Дополнительно может быть параметр OnBoard LAN Option ROM (OnBoard LAN Boot ROM), разрешающий или запрещающий удаленную загрузку по сети.

■ OnBoard IEEE1394 Controller, IEEE1394. Включает или выключает интегрированный в системную плату контроллер IEEE1394 (Fire Wire).

■ Onboard Game/MIDI Port. Управляет работой встроенного игрового и MIDI-порта. Дополнительно могут быть параметры для настройки ресурсов указанных портов, значения которых лучше оставить по умолчанию.

■ Onboard Infrared Port. Управляет работой встроенного инфракрасного порта. При его включении обычно появляются дополнительные настройки, значения которых не следует изменять без крайней необходимости.

7. Распределение ресурсов, управление электропитанием и мониторинг состояния системы

Для нормальной работы многих устройств необходимо выделять ресурсы системной платы: прерывания (IRQ), каналы прямого доступа к памяти (DMA), адреса ввода/ вывода или используемые диапазоны памяти. В большинстве версий BIOS есть специальный раздел PnP/PCI Configurations (рис. 7.1), в котором собраны настройки ресурсов.

Рис. 7.1. Раздел BIOS PNP/PCI Configurations

При установке для этого раздела значений по умолчанию система распределит ресурсы автоматически в соответствии со стандартом Plug and Play. Ручная настройка может понадобиться, чтобы подключить нестандартные устройства или некоторые устаревшие ISA-платы (правда, они встречаются уже очень редко).

Параметры электропитания обычно собраны в отдельном разделе BIOS с названием Power Management Setup или просто Power (рис. 7.2).

Рис. 7.2 . Параметры электропитания в разделе Power Management Setup

Кроме питания, все современные платы контролируют основные питающие напряжения и рабочие температуры. Соответствующие параметры собраны в разделе с Hardware Monitor (H/W Monitor) или PC Health Status.

ПРИМЕЧАНИЕ

Для интегрированных устройств (параллельные, последовательные, игровые, инфракрасные и другие порты) ресурсы настраиваются в разделе Integrated Peripherals.

Распределение прерываний и каналов DMA

В этом подразделе описаны параметры, влияющие на распределение прерываний и каналов прямого доступа.

Plug and Play OS, PNP OS Installed

Этот параметр определяет, кто будет распределять ресурсы: BIOS или операционная система.

Yes -устройства, необходимые для загрузки, сконфигурирует BIOS, остальные же настроит операционная система, которая должна поддерживать Plug and Play;

No – настройкой всех устройств и распределением ресурсов займется BIOS.

Windows 2000/ХР может управлять устройствами с помощью функций ACPI. Если BIOS полностью отвечает требованиям этого стандарта, операционная система сконфигурирует их даже при установке значения No.

Resources Controlled By

Параметр определяет способ распределения прерываний (IRQ) и каналов прямого доступа к памяти (DMA).

Auto (ESCD) – ресурсы распределяются автоматически (значение по умолчанию); рекомендуется, если в системе нет устаревших плат расширения;

Manual – ресурсы распределяются вручную с помощью рассмотренных далее параметров IRQ х Assigned to и DMA х Assigned to.

Force Update ESCD, Reset Configuration Data

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

Disabled (No) – очистка ESCD запрещена; значение соответствует обычной работе компьютера;

Enabled (Yes) – таблицы распределения ресурсов будут очищены и построены заново во время следующей перезагрузки системы. После этого будет автоматически установлено значение Disabled, и при последующих перезагрузках ESCD обновляться не будет.

Assign IRQ For VGA, Allocate IRQ to PCI VGA Параметр разрешает или запрещает назначение прерывания (IRQ) для видеоадаптера. По умолчанию устанавливается (и рекомендуется) значение Enabled (On), при котором прерывание будет выделено.

Assign IRQ For USB Параметр разрешает (значение Enabled (On) – по умолчанию) или запрещает (Disabled (Off)) назначение прерывания (IRQ) для USB-устройств.

Assign IRQ For ACPI

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

■ Auto – прерывание для ACPI назначается автоматически; значение устанавливается по умолчанию и рекомендуется для большинства случаев;

■ IRQ 9, IRQ 10, IRQ 11 – для работы с ACPI можно выбрать одно из трех указанных прерываний. Стандартным значением является IRQ 9.

Serial port в биосе что это

Помимо монитора последовательного порта, в Arduino IDE есть плоттер – построитель графиков в реальном времени по данным из последовательного порта. Достаточно отправить значение при помощи команды Serial.println(значение) и открыть плоттер по последовательному соединению, например построим график значения с аналогового пина A0:

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

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

Подписи графиков

В Arduino IDE с версии 1.8.10 добавили возможность подписать графики, для этого перед выводом нужно отправить названия в виде “название 1, название 2, название n” с переносом строки, и дальше просто выводить данные:

Использование пинов

Как я писал выше, аппаратный Serial имеет выводы на ноги микроконтроллера, для Nano/Uno/Mini это выводы D0 и D1. Можно ли работать с этими пинами, как с обычными цифровыми пинами? При отключенном Serial – можно, при включенном – нет. После вызова Serial.begin() ноги перестают функционировать как цифровые пины в ручном режиме, но после вызова Serial.end() можно снова ими пользоваться!

Отправка и парсинг

Рассмотрим самый классический пример для всех языков программирования: Hello World!

Отправка данных в порт не должна вызывать трудностей и вопросов, потому что всё понятно/очевидно, да и чуть выше в описании метода print мы рассмотрели все варианты вывода. Отправка в порт позволяет узнать значение переменной в нужном месте программы, этот процесс называется отладка. Когда код работает не так, как нужно, начинаем смотреть, где какие переменные какие значения принимают. Или выводим текст из разных мест программы, чтобы наблюдать за правильностью (порядком) её работы. Давайте вспомним урок циклы и массивы и выведем в порт массив:

Читать еще:  Как узнать прошивку ssd

Вывод: 0 50 68 85 15 214 63 254 – элементы массива, разделённые пробелами!

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

Посмотрим вот такой пример, в котором в порт отправляются принятые в него данные (так называемое эхо):

Так как же принять именно цифру? Есть хитрость – вычитать из полученного кода символа код цифры 0, либо сам 0 в виде символа: ‘0’

Также для принятия одиночных чисел у нас есть готовый метод – parseInt/parseFloat – для целочисленных и рациональных чисел соответственно. Процесс приёма и расшифровки данных называется парсинг (parsing). Давайте примем в порт число 1234, используя готовый метод парсинга.

Итак, мы используем конструкцию if (Serial.available()) <> чтобы опрашивать порт только в том случае, если в него что-то пришло. Отправив в порт число 1234 мы получим ответ ОК, отправив любое другое – error. Также вы заметите, что после отправки проходит секунда, прежде чем плата ответит. Эта секунда спрятана внутри метода parseInt, программа ждёт секунду после принятия данных, чтобы все данные успели прийти. Секунда это очень много, достаточно было ждать, скажем, 50 миллисекунд. Это можно сделать при помощи метода setTimeout.

Теперь после отправки цифры программа будет ждать всего 50 мс, и сразу же вам ответит.

В реальном устройстве часто требуется передавать несколько параметров, например у нас Bluetooth танк. Мы ему должны отправить например скорость правой гусеницы, скорость левой гусеницы, положение башни, состояние подсветки, команду на выстрел… Да что угодно. Как быть в таком случае? Тут начинается настоящий парсинг, и появляются варианты, нам придётся придумывать собственный протокол связи.

Есть два базовых варианта: отправка пакета всех-всех данных и его парсинг, или отправка отдельно каждого параметра с уникальным “ключом” у каждого. Как это понимать: суть первого варианта состоит в принятии пакета данных, которые разделены разделителем. Также правильно будет выделить начало и конец посылки. Пример: $120 80 180 1; – начальный символ $, разделитель ” ” (пробел) и завершающий символ ; . Наличие начального и завершающего символа повышает скорость работы и помехозащищённость связи. Второй вариант – посылки вида MOT1_120, содержащие ключ и значение, соответствующее этому ключу.

Как реализовать данные способы парсинга я очень подробно разбирал в примерах в сборнике полезных алгоритмов Arduino, раздел “Работа с Serial”. Но давайте я оставлю их также и здесь, пользуйтесь!

BIOS: шаг за шагом. Часть 2

Поделитесь в соцсетях:

Мы продолжаем изучение опций и настроек BIOS Setup на примере самого распространенного на сегодняшний день AWARD BIOS. Напомним, что в качестве наглядного пособия используется материнская плата для процессоров Athlon 64 – ASUS A8N-SLI Premium, которая обладает богатейшими возможностями низкоуровневого «тюнинга»

Меню Advanced

Onboard Device Configuration – раздел с настройками устройств, инте-грированных на материнской плате. Содержит следующие опции:

  • Onboard NV LAN (или просто Onboard LAN) – имеет значения Disabled и Enabled, т. е. выключен или включен интегрированный сетевой контроллер.
  • Onboard LAN Boot ROM – активация удаленной загрузки операционной системы. Используется на рабочих станциях в больших корпоративных сетях, когда загрузка ОС происходит с одного центрального сервера.
  • АС`97 Audio – активация контроллера интегрированного звукового кодека.
  • Serial Port1 (Port2) Address – позволяет отключать и изменять прерывания и адрес I/O (Input/Output – ввод/вывод) для последовательного порта COM1 (COM2). Принимает значения Disabled, Auto – автоматическая настройка параметров порта, 3F8/IRQ4, 2F8/IRQ3, 3E8/IRQ4, 2E8/IRQ3 – ручная.
  • Parallel Port Address – то же, что и для Serial Port Address, только в случае с параллельным портом LPT. Есть значение Disabled, режимы ручной настройки 378/IRQ7, 278/IRQ5, 3BC/IRQ7.
  • Parallel Port Mode – позволяет изменить режим работы параллельного порта LPT. Возможные значения:
    • SPP (Standard Parallel Port) – стандартный параллельный порт, позволяет работать с любыми устройствами, но при очень низкой скорости передачи данных.
    • ЕРР (Enhanced Parallel Port) – расширенный параллельный порт, осуществляет асимметричный двунаправленный обмен данными. Рекомендуется использовать, если в системе присутствует только одно устройство, подключенное к параллельному порту, к примеру принтер.
    • ECP (Enhanced Capabilities Port) – расширенный параллельный порт, использующий протокол DMA (скорость передачи данных до 2,5 Mbps) и осуществляющий симметричный двунаправленный обмен данными. Рекомендуется при подключении к порту нескольких разных устройств.
    • ECP + EPP – объединение предыдущих параметров, выбор, какой из двух активировать, остается за операционной системой.
  • ECP Mode Use DMA – номер канала DMA, который будет использоваться для параллельного порта с включенным параметром Parallel Port Mode в значении ECP или ECP + EPP, может иметь значение 1 или 3.
  • Game Port Address – параметр, позволяющий отключить или настроить Game Port (специальный порт для подключения игровых устройств, сейчас практически не используется). Принимает значения – Disabled, 201 и 209 для ручной настройки адреса ввода/вывода.
  • MIDI (Musical Instruments Digital Interface) Port Address – параметр, позволяющий отключить или настроить порт MIDI (дающий возможность использовать музыкальные устройства с компьютером). Значения – Disabled и ручная настройка адресов порта ввода/вывода – 330 или 300.
  • MIDI Port IRQ – параметр, отвечающий за номер прерывания порта MIDI, принимает значения 5 или 10.

    IDE Function Setup – подменю, позволяющее управлять контроллером IDE на материнской плате. Имеет такие параметры:

    • OnChip IDE Channel 0 (Channel 1) – активация каналов IDE. Channel 0 соответствует Primary IDE, Channel 1 – Secondary IDE. Имеет два зна-чения – Disable и Enable.
    • IDE DMA (Direct Memory Access) transfer access – обеспечивает прямой доступ к памяти всех дисковых устройств IDE в системе. Имеет два значения – Disable и Enable.
    • SATA Port 1 (2, 3, 4) – аналогично пункту OnChip IDE Channel, но в отношении контроллера SATA. Как и предыдущий, имеет два значения – Disable и Enable – выключить и включить соответственно.
    • SATA (SATA2) DMA Transfer – так же, как и пункт IDE DMA Transfer Access, но для SATA-устройств. Имеет значения Disable и Enable.
    • IDE Prefetch Mode – параметр имеет два значения – Disable и Enable. Отвечает за функцию предварительного чтения данных, которые могут быть затребованы системой в следующий момент времени. Когда включен, позволяет немного повысить производительность дисковой подсистемы для IDE-устройств.

    NVRAID Configuration – отвечает за настройку встроенного контроллера RAID. Название может отличаться в зависимости от того, какой именно чип установлен на материнской плате. Имеет такие параметры:

    • RAID Enable – Enabled или Disabled – включает или отключает контроллер RAID.
    • IDE Primary (Secondary) Master (Slave) RAID – имеет значения Enabled или Disabled – указывает, какие из дисковых устройств IDE будут использоваться при построении RAID-массива.
    • First (Second, Third, Forth) SATA Master RAID – то же, что и в предыдущем пункте, но касательно устройств SATA.
  • USB (Universal Serial Bus) Configuration – пункт, отвечающий за настройку контроллера USB. Имеет следующие параметры:
    • USB Controller – Enabled и Disabled, включает или выключает устройство.
    • USB 2.0 Controller – Enabled или Disabled, указывает, по какому протоколу (USB 1.1 или USB 2.0) функционирует контроллер. При значении Enabled все USB-порты на материнской плате будут работать в режиме USB 1.1 + 2.0, при значении Disabled – только USB 1.1.
    • USB Legacy Support – параметр, аналогичный Plug and Play O/S. Имеет два значения – Enabled или Disabled. При установке Enabled все USB-устройства в системе (мыши, клавиатуры, принтеры и т. д.) определяются и настраиваются (и, соответственно, работают) на уровне BIOS. Если же параметр выключен, то пока не загрузится операционная система, такие устройства функционировать не будут. Если используется клавиатура USB, лучше активировать этот режим.

    JumperFree Configuration – раздел, предназначенный для разгона системы, потому следует быть очень осторожными, изменяя эти параметры: при неправильных установках есть риск вывести систему из строя. В меню входят следующие опции:

    • Overclock Profile – режим разгона: Manual – полностью ручная настройка всех параметров, Auto – автоматическая, Standard – заводские установки, AI Overclock и AI N.O.S. (Non-Delay Overclocking System) – две опции с фиксированными установками разгона, отличие состоит в том, что AI Overclock всегда «держит» компьютер в разогнанном состоянии, AI N.O.S. включает разгон в момент, когда загрузка процессора достигает определенного уровня.
    • При активации значения AI Overclock становиться доступным меню Overclock Options со значениями Disable – отключено и четыре пункта прироста основных характеристик – 3, 5, 8 и 10%.
    • При установке значения AI N.O.S. появляется меню N.O.S. Options. Значения ничем не отличаются от Overclock Options.
    • При установке Overclock Profile в положение Manual открываются для редактирования такие параметры:
      • CPU Frequency – частота тактового генератора, принимает значения от 200 до 400 MHz с шагом в 1 MHz.
      • PCI Express Clock – фиксирует частоту работы шины PCI Express – принимает значения от 100 до 145 MHz с шагом в 1 MHz. Стоит заметить, что если материнская плата имеет шину AGP, то этот параметр будет называться AGP Clock (или что-то созвучное). Тогда значения будут варьироваться от 66 до 100 MHz (в зависимости от модели).
      • DDR Voltage – напряжение, подающееся на модули памяти, – от 2,60 до 3,00 В с шагом в 0,5 В.
      • CPU Multiplier – множитель процессора. Из произведения множителя на частоту тактового генератора выводится реальная тактовая частота процессора. Принимает значения от х4 до номинала процессора.
      • CPU Voltage – напряжение на ядре процессора – от 0,80 до 1,55 В с шагом в 0,0125 В.
      • PCI Clock Synchronization Mode – режим синхронизации частоты шины PCI. Имеет три значения: Auto – автоматический, to CPU – привязка к частоте тактового генератора и 33,33 MHz – устанавливает значение 33,33 MHz – «родную» частоту шины. Рекомендуется выбирать последнее, чтобы избежать лишних проблем с работой PCI-устройств.

    LAN Cable Status – управление функцией тестирования встроенным сетевым контроллером состояния кабеля при включении питания. Имеет следующие параметры:
    POST (Power-On Self-Test) Check LAN Cable – включает или выключает функцию самотестирования.

    Дальше следуют четыре информационные строки, отображающие данные о состоянии сетевого кабеля:

    • Pair – LAN1 (1-2, 3-4, 5-6, 7-8) – номер пары и номера проводов в ней.
    • Status – состояние пары.
    • Length – длинна пары в метрах.
  • PEG Link Mode – функция присуща только материнским платам производства ASUS. Нечто подобное, но под другим именем, есть в некоторых продуктах MSI. Предоставляет возможность управления разгоном видеокарты PCI Express из BIOS. Как именно она работает, к сожалению, до сих пор неизвестно. Имеет такие параметры:
    • PEG Link Mode – режим работы функции: Auto – автоматический (система сама определяет необходимый уровень разгона в зависимости от загрузки видеокарты), Slow, Normal, Fast, Faster – параметры, указывающие на прирост производительности – немного (медленно), нормально, быстро, очень быстро.
    • PEG Root Control – управление корневым портом PCI Express – принимает значения Enabled, Disabled и Auto. Соответственно включает и отключает функцию управления или же предоставляет все на усмотрение BIOS.
    • PEG Buffer Length – размер (глубина) буфера PCI Express: Auto – автоматическое определение размера буфера, Long, Medium, Short – ручная установка – большой, средний и маленький размеры соответственно.
  • Instant Music – фирменная функция от ASUS, дающая возможность проигрывания Audio CD без загрузки операционной системы. Имеет такие параметры:
    • Instant Music – Enabled или Disabled, активизация или отключение данной функции.
    • Instant Music CD-ROM Drive – выбор привода, который будет использоваться для проигрывания дисков. Может принимать значения Primary Master, Primary Slave, Secondary Master, Secondary Slave.
Читать еще:  Как узнать поддерживает ли ноутбук ssd

Меню Power

Следующий раздел Power имеет такие возможности настройки:

ACPI (Advanced Configuration and Power Interface) Suspend Time – режим энергосбережения. Через определенное время (устанавливаемое пользователем в операционной системе) компьютер переходит в режим ожидания. Этот параметр позволяет определить стандарт, в соответствии с которым компьютер будет использовать функцию энерго-сбережения. Имеет несколько вариантов:

  • S1 (POS) – Power on Suspend – при использовании этого значения в случае перехода в ждущий режим компьютер отключает питание только монитора и жесткого диска, все остальные устройства продолжают работать в штатном режиме.
  • S3 (STR) – Suspend to RAM – в этом случае перед «засыпанием» информация о состоянии системы сохраняется в оперативной памяти. Питание подается только на модули памяти по резервному каналу 5 В, все остальные устройства отключаются.
  • S1&S3 – комбинация двух предыдущих режимов. Сначала используется S1, а через определенный промежуток времени – S3.
  • ACPI APIC (Application Specific Integration Circuit) Support – функция, которая реализует поддержку энерго-сбережения для многопроцессорных систем. Даже если в системе установлен один процессор, а чипсет поддерживает несколько (включая двухъядерные модели и версии с поддержкой Hyper-Threading), стоит активировать данную функцию, иначе ACPI может работать некорректно. Изменять этот параметр следует только до переустановки системы.
  • Arduino – Serial – последовательный порт

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

    В Arduino IDE имеется терминал, который можно использовать для отображения данных, отправленных через последовательный порт из Arduino, а также отправлять данные обратно в Arduino.

    Arduino UNO имеет один аппаратный последовательный порт, подключенный к порту USB. Arduino MEGA имеет три дополнительных последовательных порта, которые можно использовать для своих целей.

    Мы ссылаемся на отдельные последовательные порты через последовательные объекты. Во всех системах Arduino реализован объект Serial, который отвечает за передачу данных через первый доступный последовательный порт. В Arduino MEGA дополнительно реализован Serial1, Serial2, Serial3. Все приведенные ниже примеры для Serial также относятся и к Serial1, Serial2 и Serial3.

    Функция Serial.begin()

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

    Чтобы установить параметры передачи, мы используем функцию Serial.begin(), которая принимает один или два параметра. Первым параметром является скорость передачи данных, второй параметр – параметр порта. Ниже приведен пример использования метода Serial.begin():

    Как вы можете видеть в приведенном выше примере, мы можем инициализировать последовательный порт, используя один или два аргумента. Если второй аргумент не задан, то система по умолчанию устанавливает значение 8N1 (8 бит данных, без четности, 1 стоповый бит).

    Стандартная скорость передачи данных составляет: 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 или 115200. Кроме того, можно задать свою скорость передачи (путем указания ее значения). Допустимыми параметрами порта являются:

    • SERIAL_5N1
    • SERIAL_6N1
    • SERIAL_7N1
    • SERIAL_8N1 (по умолчанию)
    • SERIAL_5N2
    • SERIAL_6N2
    • SERIAL_7N2
    • SERIAL_8N2
    • SERIAL_5E1
    • SERIAL_6E1
    • SERIAL_7E1
    • SERIAL_8E1
    • SERIAL_5E2
    • SERIAL_6E2
    • SERIAL_7E2
    • SERIAL_8E2
    • SERIAL_5O1
    • SERIAL_6O1
    • SERIAL_7O1
    • SERIAL_8O1
    • SERIAL_5O2
    • SERIAL_6O2
    • SERIAL_7O2
    • SERIAL_8O2

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

    Насколько важно определить параметры и скорость последовательного порта, мы рассмотрим на следующем примере:

    При запуске терминала Arduino IDE мы увидим, что вместо передаваемого текста «test» мы получим непонятный набор символов. Теперь давайте немного изменим программу:

    При загрузке исправленного варианта программы в терминале должно отображаться два раза в секунду ожидаемое слово «test».

    Теперь измените в терминале скорость передачи данных с 9600 на 19200 бит/с (в правом нижнем углу). Опять же, мы увидим непонятный набор символов вместо «test». Как вы можете видеть, для правильной работы необходима установка идентичных параметров передачи данных.

    Функции Serial.print() и Serial.println()

    Функция Serial.print() позволяет отправлять информацию через последовательный порт. Можно отправлять как текстовые, так и переменные значения или непосредственно числа. Данные отправляются в кодировке ASCII. Это означает, что число, например, 12, будет отправлено как два символа 1 и 2. Вот типичный синтаксис Serial.print():

    Мы отправляем отдельные символы, заключая их в апострофы. Тексты размещаем в двойных кавычках. Числа без кавычек. Можно преобразовать числа в соответствующий формат — по умолчанию установлен десятичный формат.

    Вариантом Serial.print() является функция Serial.println(), который отличается добавлением символа конца строки в конце сообщения. В следующем примере показаны различия в использовании этих двух функций:

    Функция Serial.write()

    В отличие от Serial.print() и Serial.println(), функция Serial.write() позволяет отправлять один байт информации (число). Ниже приведен синтаксис Serial.write():

    Примеры использования Serial.write():

    Как вы можете видеть в данном примере, при отправке числа 65 с помощью Serial.print() в терминале получим два символа 6 и 5, а отправка числа 65 с использованием Serial.write() в терминале будет интерпретироваться как код ASCII 65, т.е «А».

    Функция Serial.available()

    Функция Serial.available() позволяет проверить, можно ли прочитать данные из последовательного порта. Arduino имеет 64-байтовый буфер последовательного порта. Функция вызывается без параметров, возвращает количество доступных для чтения байт. Serial.available() позволяет исполнить часть программы, которая считывает данные из последовательного порта только при их появлении. Примеры использования Serial.available():

    Читать еще:  Ssd m 2 42 мм

    В первом примере показано использование условия (if) для проверки доступных данных, и если данные прочитаны, выполняется фрагмент кода. Этот синтаксис, помещенный в функцию loop(), не блокирует его выполнение.

    Во втором примере программа будет остановлена ​​до тех пор, пока в буфере не появляться данные, прочитанные из последовательного порта. Ниже приведено практическое использование Serial.available():

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

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

    Функция serialEvent()

    Функция serialEvent() — это специальная функция, такая же, как loop() или setup(), которая вызывается в тот момент, когда в буфер последовательного порта попадет информация. Она позволяет выполнять действия независимо от текущего выполнения кода. Как правило, эта функция содержит инструкции для чтения данных из последовательного порта. Пример использования serialEvent() приведен ниже:

    ВНИМАНИЕ. В соответствии с документацией Arduino данная функция не поддерживается в системах Esplora, Leonardo и Micro.

    Функция Serial.read()

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

    Вышеуказанная программа считывает данные из последовательного порта и отправляет их на терминал. Существует два способа интерпретации данных. В первом случае байт, считанный с порта, рассматривается как число. Терминал отобразит соответствующий символ ASCII, во втором случае прочитанный байт рассматривается как код ASCII. Когда вы запустите программу и введете букву «a» в первом случае, вы получите код «97», а во втором букву «a».

    Функция Serial.readBytes()

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

    Функция возвращает количество байтов, считанных в буфере или ноль, если данных нет.

    Функция Serial.readBytesUntil()

    Функция Serial.readBytesUntil() считывает данные из последовательного буфера в массив. Функция завершит работу, когда истечет время, либо обнаружит терминальный символ, либо считает данные указанной длинны. Синтаксис Serial.readBytes() показан ниже:

    Функция возвращает количество байтов, считанных в буфере, или ноль, если данных нет.

    Функция Serial.setTimeout()

    Функция Serial.setTimeout() позволяет задать время ожидания данных из последовательного порта для Serial.readBytes() и Serial.readBytesUntil(). По умолчанию установлено 1000 мс (1 сек).

    Ниже приведен пример использования Serial.readBytes(), Serial.readBytesUntil() и Serial.setTimeout():

    В первой части вышеприведенного примера будут прочитаны четыре байта данных, при условии, что эта операция будет выполнена в течение 10 секунд. Во второй части, помимо этого, чтение может быть прервано, когда в буфере появляется конкретный код (здесь код определен как «X»).

    Функции Serial.find() и Serial.findUntil()

    Функция Serial.find() считывает содержимое буфера в поисках конкретной строки. Функция возвращает true, когда строка найдена и false, когда данные не найдены. Ниже приведен пример кода программы:

    В данном примере программа считывает данные из буфера и когда полученные данные соответствуют строке поиска (test), то отображается сообщение (ok).

    Serial.find() ожидает данные в течение времени, определенного с помощью функции Serial.setTimeout(). В случаях, когда в буфере имеется большое количество данных, то их можно обработать почти мгновенно. Когда же буфер пуст, функция ожидает следующую порцию данных в течение некоторого времени и заканчивается, возвращая соответствующее значение.

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

    Функция будет считывать данные из последовательного порта, пока не будет найдена строка поиска (text) или прочитан символ «K», или пока не пройдет определенное время (по умолчанию – 1 секунда).

    Serial port в биосе что это

    Последовательный порт это устройства ввода-вывода (I/O device). Как устройство I/O это только путь для передачи данных из компьютера и в него. существует также множество других устройств ввода-вывода, таких как последовательные порты, паралельные порты, контроллеры дисков, сетевые карты, устройства универсальной последовательной шины USB, и т.п. Большинство компьютеров имеют один или два последовательный порта. Какждый имеет 9-ти контактный разъем (иногда 25-ти контактный) (рис.1) на задней стенке системного блока компьютера. Программы могут отсылать данные (байты) через контакт отправки данных (output) и получать байты через другой контакт приема данных (input). Все остальные контакты служат для управления и земли.

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

    Большинство электронных компонентов последовательного порта сосредоточено в одно компьютерном чипе (микросхеме) называемом UART.

    Контакты и провода

    Старые компьютеры используют 25-ти контактные разъемы, но только 9 контактов реально задействовано на сегодняшний день. Каждый из 9-ти контактов соединен обычно с проводом. за исключением двух проводов для передачи и приема данных, остальные используются для контроля и земли. Напряжение на каждом из контактов и проводов измеряется относительно сигнальной земли. Поэтому минимальное количество проводом для двунаправленной передачи данных — 3. В редких случаях для работы может хватитть и двух проводов (без сигнальной земли), однако это может привести к низкой производительности, и иногда к ошибкам при передаче данных.

    Остается еще несколько проводов, которые предназначены только для управления (контроля) и не используются для передачи данных. Все эти сигналы могли бы передаваться по одной линии, но вместо этого, для выделены отдельные провода. Некоторые (или все вместе) эти сигнальные линии называются «линии состояния модема». Линии состояния могут находиться в одном из двух состояний установленном (включено) +12 вольт или сброшенном (выключено) -12 вольт. Одни из этих проводов сигнализируют компьютеру о том, что нужно прекратить передачу данных через последовательный порт. Другие в свою очередь сигнализируют устройству, подключенному к последовательному порту, прекратить передачу даных в компьютер. Если подключенно устройство это модем, то оставшиеся линии могут указывать модуме на то, что нужно занять телефонную линию или сигнализируют компьютеру о том, что соединение было установлено или что есть звонок на телефонной линии (значит кото-то соединиться с компьютером). Смотрите раздел Контакты и сигналы с более полной информацией.

    RS-232 или EIA-232, и т.п.

    Последовательный порт (serial port) (не путать с USB) обычно соответствует стандарту RS-232-C, EIA-232-D, или EIA-232-E. Это три обозачения одного и тоже. Основной стандарт RS (рекомендованный стандарт — Recommended Standard) получил префикс EIA (Electronics Industries Association) и позднее EIA/TIA после того как организация EIA было объединена с TIA (Telecommunications Industries Association). Спецификация EIA-232 также охватывает синхронную передачу данных, но в большинстве случаев синхронная передача данных не поддерживается чипами в компьютерах. Обозначение RS устарело, однако до сих пор широко используется. EIA будет использоваться далее на этом сайте более часто. Некоторые документы используют полное обозначение EIA/TIA.

    Обмен данными (Скорости передачи данных)

    Данные (байты из которых состоят письма, картинки и т.п.) проходят через последовательный порт. Скорости передачи данных (такие как 56k (56000) бит/сек) называются (неверно) «скоростью». Большинство людей неверно говорят «скорость» вместо «коэффициент скорости».

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

    Контроль передачи данных

    Контроль передачи данных означает возможность ограничить поток передачи данных через последовательный порт. Для последовательного порта это означает возможность остановить и потом возобновить передачу данных без потери байтов.

    Ссылка на основную публикацию
    Adblock
    detector