Форматы передачи по интерфейсу SPI. Понятие о программном обеспечении (Software)

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

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

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

Для чего необходим интерфейс

Он исполняет роль некой системы связи между различными блоками оборудования, а еще техники и пользователя. Он может выражаться как в логической , так и физической форме. Логически — это сложные алгоритмы, в основе которых лежит Булева алгебра, а физически это различные чипы, детали, провода и прочее, объединенные между собой.

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

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

В течение передачи по интерфейсу SPI данные одновременно передаются и принимаются по двум линиям синхронно с синхроимпульсами сдвига. Полярность и фаза последовательных синхроимпульсов сдвига - это основной компонент, определяющий формат передачи данных по интерфейсу SPI. Полярность последовательных синхроимпульсов соответствует свободному логическому состоянию линии синхронизации и поэтому также определяет, какой фронт синхроимпульса является активным ребром. Для того, чтобы свободное логическое состояние линии синхронизации было определено как низкое логическое состояние (активным фронтом синхроимпульса является нарастающий фронт), бит выбора полярности синхроимпульсов (CKPOL; SPICF.0) должен быть сброшен в 0, а установка этого бита в единицу (CKPOL = 1) определит свободное состояние синхроимпульса как высокое логическое состояние, т.е. активным фронтом синхроимпульса будет являться спадающий фронт. Фаза последовательных синхроимпульсов определяет, какой фронт используется для выборки данных последовательным регистром сдвига. Бит выбора фазы синхроимпульсов (CKPHA; SPICF.1) определяет по активному или неактивному фронту будет осуществляться захват данных. Когда CKPHA установлен в 1, то данные выбираются по неактивному фронту синхроимпульса (возвращение синхроимпульса в свободное состояние). Когда CKPHA сброшен в 0, то данные выбираются по активному фронту синхроимпульсов (переход синхроимпульса в активное состояние). Совместно биты CKPOL и CKPHA позволяют определить четыре возможных формата передачи данных по SPI интерфейсу. Эти форматы приведены на рисунке 43.

Каждый раз, когда активный фронт используется для выбора данных (CKPHA = 0), цикл передачи должен быть начат с установки сигнала SSEL. Поэтому между передачами сигнал SSEL должен переводиться в неактивное состояние. Наоборот, когда для выборки используется неактивный фронт (CKPHA = 1), сигнал SSEL может остаться низким между пакетами данных, при этом начало передачи определяется первым активным фронтом синхроимпульса.

Рисунок 43. Форматы передачи данных по SPI интерфейсу (определяется битами CKPOL и CKPHA)

Длительность SPI посылки

Чтобы гибко подстраиваться под различную длительность посылки данных, в регистре настройки модуля SPI имеется бит выбора длительности посылки (CHR). Бит CHR позволяет выбирать длительность посылки 8 или 16 бит. При загрузке 8- битных данных в буферный регистр SPIB, байт, предназначенный для передачи, должен быть помещен в младший байт передаваемого слова. При приеме 8- битных данных слово также находится в младшем байте регистра SPIB. В режиме обмена 8- битными данными старший байт буферного регистра SPIB не определен.

Скорости обмена данными по SPI интерфейсу

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

При работе в режиме ведущего, микроконтроллер сам формирует синхроимпульсы SPI интерфейса. Скорость обмена данными определяется коэффициентом деления системных синхроимпульсов, который задается значением регистра коэффициента деления для SPI интерфейса (SPICK). Модуль SPI поддерживает 256 различных коэффициентов деления. Частота синхроимпульсов SPICK определяется следующей формулой:

где коэффициент деления частоты системных синхроимпульсов = (SPICK.7:0) + 1

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

Обратите внимание, однако, что в режиме управления питанием (PMME = 1) запись в регистр SPIB в режиме ведущего и установка активного сигнала на выводе SSEL в режиме ведомого квалифицируются как активизация режима переключения источника (SWB = 1). В режиме останова синхронизация модуля SPI приостанавливается.

Существует несколько стандартов RS-232, различающихся буквой в суффиксе: RS-232C. RS-232D. RS-232E и пр. Вдаваться в различия между ними нет никакого смысла- они являются лишь последовательным усовершенствованием и детализацией технических особенностей одного и того же устройства. Все современные порты поддерживают спецификации RS-232D или RS- 232Е. В состав любого порта с интерфейсом RS-232 (в том числе СОМ-порта PC) входит универсальный асинхронный приемопередатчик (Universal Asynchronous Receiver-Transmitter. UART), который потому и носит название "универсального", что одинаков для всех подобных интерфейсов (кроме RS-232, это RS-485 и RS-422 1). Также в RS-232 входит схема преобразования логических уровней UART (это обычные логические уровни 0^5 илн 0+3,3 В) в уровни RS-232, где биты передаются разпополярными уровнями напряжения, притом инвертированными относительно IJART. В UART действует положительная логика, где логическая 1 есть высокий уровень (+3 или +5 В), а у RS-232 наоборот, логическая I есть отрицательный уровень от -3 до -12 В, а логический 0 - положительный уровень от +3 до +12 В.

Сама идея передачи по этому интерфейсу заключается в передачи целого байта по одному проводу в аиде последовательных импульсов, каждый ич которых может быть 0 или 1. Если в определенные моменты времени считывать состояние линии, то можно восстановить то. что было послано. Однако эта простая идея натыкается на определенные трудности. Для приемника и передатчика, связанных между собой тремя проводами ("земля" и два сиг нальных провода "туда" и "обратно"), приходится задавать скорость передачи и приема, которая должна быть одинакова для устройств на обоих концах линии. Эти скорости стандартизированы, и выбираются из ряда 1200, 2400. 4800, 9600. 14 400, 19 200. 28 800, 38 400, 56 000, 57 600, 115 200, 128 000, 256 000 (более медленные скорости я опустил) 2 . Число это обозначает количество передаваемых/принимаемых бит в секунду (бод). Проблема состоит в том, что приемник и передатчик - это физически совершенно разные системы, и скорости эти для них не могут быть строго одинаковыми в принципе (из-за разброса параметров тактовых генераторов), и даже если их каким-то фантастическим образом синхронизировать в начале, то они в любом случае быстро "разъедутся". Поэтому такая передача всегда сопровождается начальным (стартовым) битом, который служит для синхронизации. После нею идут восемь (или девять - если используется проверка на четность) информационных битов, а затем стоповые биты, которых может быт ь один, два и более, но это уже не имеет принципиального значения - почему, мы сейчас увидим.

Общая диаграмма передачи таких последовательностей показана на рис. ГИЛ. Хитрость заключается в том, что состояния линии передачи, называемые стартовый и столовый биты, имеют разные уровни. В данном случае стартовый бит передается положительным уровнем напряжения (логическим нулем), а столовый- отрицательным уровнем (логической единицей) 3 , по-

Обычный формат данных, по которому работает львиная доля всех устройств, обозначается 8nl, что читается так: 8 информационных бит, no parity,

тому фронт стартового бита всегда однозначно распознается. В этот-то момент и происходит синхронизация. Приемник отсчитывает время от фронта стартового бита, равное Ъ А периода заданной частоты обмена (чтобы попасть примерно в середину следующего бита), и затем восемь (или девять, если это задано заранее) раз подряд с заданным периодом регистрирует состояние линии. После этого линия переходит в состояние стопового бита и может в нем пребывать сколь угодно долго, пока не придет следующий стартовый бит. Задание минимального количества стоповых битов, однако, производится тоже- для того чтобы приемник знал, сколько времени минимально ему нужно ожидать следующего стартового бита (как минимум, это может быть, естественно, один период частоты обмена, т. е. один стоповый бит). Если по истечении этого времени стартовый бит не придет, приемник может регистрировать так называемый Timeout, т. е. перерыв, по-русски, и заняться своими делами. Если же линия "зависнет" в состоянии логического 0 (высокого уровня напряжения), то это может восприниматься устройством, как состояние "обрыва" линии- не очень удобный механизм, и в микроконтроллерах он через UART не поддерживается. Это не мешает нам, естественно, для установки или определения такого состояния просто отключать UART и устанавливать состояние логического нуля на выводе TxD (что и есть имитация физического "обрыва"), или определять уровень логического 0 на выводе RxD, но серьезных причин для использования этой возможности, я, честно говоря, не вижу (см. на эту тему также замечание в главе 20).

Рис. П4.1. Диаграмма передачи данных по последовательному интерфейсу RS-232

в формате 8N2

1 столовый бит. "No parity" означает, что проверка на четность не производится. Это самая распространенная схема работы такого порта, причем, т. к. никакими тайм-аугами (Timeout) мы также себе голову заморачивать не будем, то нам в принципе все равно, сколько стоповых битов будет, но во избежание излишних сложностей следует их устанавливать всегда одинаково - у передатчика и у приемника. На диаграмме рис. П4.1 показана передача некоего кода, а также, для наглядности, передача байта, состоящего из всеч единиц и из всех нулей в формате, опять же для наглядности, 8п2.

Из описанного алгоритма работы понятно, что погрешность несовпадения скоростей обмена может быть такой, чтобы фронты не "разъезжались" за время передачи/приема всех десяти-двенадцати битов более, чем на полпериода, т. е. в принципе фактическая разница скоростей может достигать 4-5%, но на практике их стараются все же сделать как можно ближе к стандартным величинам.

Приемник RS-232 часто дополнительно снабжают схемой, которая фиксирует уровень не единожды за период действия бита, а трижды, при этом за окончательный результат принимается уровень двух одинаковых из трех полученных состояний линии, таким образом удается избежать случайных помех. Длина линии связи по стандарту не должна превышать 15 м. но на практике это могут быть много большие величины. Если скорость передачи не выбирать слишком высокой, то такая линия может надежно работать на десятки метров (автору этих строк удавалось без дополнительных ухищрений наладить обмен с компьютером на скорости 4800 по кабелю, правда, довольно толстому, длиной около полукилометра). В табл. П4.1 приведены ориентировочные эмпирические данные по длине неэкранированной линии связи для различных скоростей передвчи.

Таблица П4.1. Длина кабеля RS-232 для разных скоростей передачи данных

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

Для работы в обе стороны нужно две линии, которые у каждого приемопередатчика обозначаются RxD (приемная) и TxD (передающая). В каждый момент времени может работать только одна из линий, т. е. приемопередатчик либо передает, либо принимает данные, но не одновременно (так называемый "полудуплексный режим" - это сделано потому, что у UART-микросхем чаще всего один регистр и на прием и на передачу). Кроме линий RxD и TxD, в разъемах RS-232 присутствуют также и другие линии. Полный список всех контактов для обоих стандартных разъемов типа DB (9- и 25-контактного) приведен в табл. П4.2. Нумерация контактов DB-разъема обычно написана прямо на нем, она также есть на рис. 10.8 в главе 10 (на примере гнезда разъема для игрового порта DB-15F).

Таблица П4.2. Контакты для ОВ-разьемов

Обозначение

Направление

Детектор принимаемого сигнала с линии (Data Carrier Detect)

Принимаемые данные (Receive Data)

Передаваемые данные (Transmit Data)

Готовность выходных данных (Data Terminal Ready)

Общий (Ground)

Готовность данных (Data Set Ready)

Запрос для передачи данных (Request То Send)

Таблица П4.2 (окончание)

Для нормальной совместной работы приемника и передатчика выводы RxD н TxD, естественно, нужно соединять накрест - TxD одного устройства с RxD второго и наоборот (то же относится и к RTS-CTS и т. д.). Кабели RS-232, которые устроены именно таким образом, называются еще нуль-модемными (в отличие от простых удлинительных). Их стандартная конфигурация показана на рис. П4.2. В варианте "с" (справа на рисунке) дополнительные выводы соединены именно так, как описано ранее.

Рис. П4.2. Схемы нуль-модемных кабелей RS-232: a.b - различные полные варианты,

с - минимальный вариант

Выходные линии RTS и DTR иногда могут использовать и для "незаконных" целей - питания устройств, подсоединенных к СОМ-порту. Именно так устроены, например, компьютерные мыши, работающие через СОМ. Позже мы покажем пример устройства (преобразователя уровней), которое будет использовать питание от вывода RTS. А как при необходимости можно установить эти линии в нужное состояние?

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

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

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

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

Необходимость интерфейсов

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

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

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

Интерфейс программы

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

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

Графический интерфейс

Графический интерфейс – это пользовательский интерфейс, в котором используются изображения вместо цифр. Изображения в нем заменяют также и буквы, это кнопки или иконки. Яркий пример интерфейса графического типа – это рабочий стол Виндоуз. Работа в этом интерфейсе заключается в том, чтобы обеспечивать работу программы с помощью кликов.

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

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

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

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

Виды интерфейса

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

  • внешний;
  • внутренний.

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

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

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

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

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