СПОСОБ ОПТИМИЗАЦИИ КАНАЛОВ СВЯЗИ БЛИЖНЕГО РАДИУСА ДЕЙСТВИЙ
METHOD TO OPTIMISE CHANNELS OF COMMUNICATION OF SHORT RANGE ACTIONS

УРОВЕНЬ ТЕХНИКИ
Различные формы протоколов беспроводной связи обеспечивают эффективное средство для устройств, чтобы быстро и легко устанавливать связь. Например, стандарт беспроводной связи ближнего радиуса действия (NFC) позволяет осуществлять связь между устройствами бытовой электроники без необходимости в физических соединителях и пользовательской конфигурации. Обычно два NFC устройства осуществляют связь, когда они приводятся в непосредственную физическую близость или посредством их физического контактирования, таким образом, что вводят в соединение интерфейсы устройств и конфигурируют их для устанавления одноранговой сети. Примеры того, как NFC может быть использован, включают в себя загрузку цифровых фотографий из сотового телефона, снабженного камерой, прикосновением телефона к обладающему такой возможностью компьютеру, телевизору, принтеру или цифровой фоторамке и загрузку приложений или игр на карманные устройства прикосновением устройства к компьютеру.
NFC является беспроводной технологией очень малого радиуса действия с расстояниями, измеряемыми в сантиметрах. NFC интерфейсы устройств обычно соединяют и конфигурируют себя автоматически, чтобы формировать одноранговую сеть. Канал связи обычно полудуплексный, использующий методологию строгой «смены ролей», с одним устройством, отправляющим, и другим устройством, отвечающим своими собственными данными или управляющей информацией до того, как первое устройство сможет отправить новую информацию. В случае, когда ни одно из устройств не имеет данных для отправки, отправляется пустой кадр или примитив симметрии (SYMM). Передача SYMM примитива позволяет передающему устройству восстанавливать использование канала, когда приемное устройство не имеет данных для передачи. Когда ни одно из устройств не имеет данных или управляющей информации для отправки, будут отправлены SYMM примитивы в обоих направлениях и канал можно назвать простаивающим.
Активная передача требует энергии устройства, и непрерывная передача SYMM примитивов, когда данными фактически не обмениваются, означает ненужные расходы ресурсов батареи портативных устройств. В этом случае, желательно максимизировать время двустороннего обмена, не вызывая нарушения связи. Однако когда данные передаются, желательно, чтобы пропускная способность была максимизирована, позволяя передающему устройству восстанавливать управление каналом как можно быстрее. В этом случае, желательно самое быстрое возможное время двустороннего обмена. Подобные проблемы возникают в других формах полудуплексных каналов связи.
Следовательно, требуются способы и системы, которые способны эффективно передавать и получать без излишнего потребления энергии, тем самым продлевая заряд батареи. Уменьшение энергопотребления устройства увеличивает время между перезарядкой (если батарея перезаряжаемая) и/или увеличивает срок полезного использования батареи (и в некоторых случаях самого устройства), тем самым продлевая периоды между заменами. Способы и системы, раскрытые в настоящем документе, разрешают эти недостатки.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Этот раздел раскрытия изобретения предоставлен, чтобы представить выбор концепций в упрощенной форме, которые дополнительно описаны ниже в разделе осуществления изобретения. Этот раздел раскрытия изобретения не предназначен идентифицировать ключевые признаки или существенные признаки заявленного объекта изобретения и не предназначен для определения объема притязаний заявленного объекта изобретения.
Способы и системы, раскрытые в настоящем документе, регулирует время двустороннего обмена канала данных в принимающем устройстве, чтобы оптимизировать использование аккумуляторной батареи, наряду с максимизацией пропускной способности. Приемное устройство непосредственно передает любые ожидающие высокоприоритетные сообщения управления или данных в своей собственной очереди в ответ на сообщение от передающего устройства, в зависимости от статуса управления потоком передающего устройства.
Когда принимающее устройство не имеет ожидающих сообщений управления или данных для передачи, или передающее устройство не готово принимать, техническая спецификация NFC протокола управления логическим соединением (LLCP) требует от устройства отправлять SYMM после задержки не дольше установленного максимального времени двустороннего обмена канала данных. Способы и системы, раскрытые в настоящем документе, выбирают значение времени задержки до отправки SYMM примитива (или его эквивалента) в соответствии с типами недавно полученных кадров канала.
Если устройство имеет недавно полученный информационный кадр (информационный (I) или ненумерованный информационный (UI) кадр), тогда SYMM примитив отправляется как можно быстрее, чтобы позволить передающему устройству быстро восстановить управление каналом и продолжить передачу. Это представляет минимальное время двустороннего обмена.
Если последний полученный кадр был SYMM примитивом, приемное устройство будет задерживать отправку SYMM примитива на период времени, который становится больше, пока канал остается бездействующим. Чтобы выполнить это, время двустороннего обмена в течение периодов бездействия может быть воплощено как произведение коэффициента бездействия и задержки бездействия. Задержка бездействия - это временная продолжительность. Коэффициент бездействия может быть, например, рассчитан следующим образом. Когда канал связи сначала установлен или когда информационный кадр (либо I, либо UI кадр) получен, коэффициент бездействия устанавливается в ноль. Каждый раз как SYMM примитив принимается, коэффициент бездействия увеличивается. Каждый раз, когда управляющий примитив канала отличный от SYMM принимается, коэффициент бездействия уменьшается или сбрасывается в ноль. Время двустороннего обмена, которое является произведением коэффициента бездействия и задержки бездействия, изменяется между нулем и некоторым максимальным значением, масштабируемым фактором бездействия.
Если устройство получило самый последний по времени управляющий примитив канала, отличный от SYMM примитива, и недавно не получало информационный кадр, тогда время двустороннего обмена может быть определено (или коэффициент бездействия установлен) согласно типу полученного управляющего примитива.
Способы и системы, раскрытые в настоящем документе, описывают различные варианты осуществления использования NFC протокола, но могут быть применены, в общем, к полудуплексным каналам.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Способы и системы, раскрытые в настоящем документе, дополнительно описаны со ссылкой на сопутствующие чертежи, на которых изображено следующее.
Фиг.1 - блок-схема, представляющая типичное вычислительное устройство, пригодное для использования совместно с предоставляемыми системами и способами для управления каналом связи малого радиуса действия.
Фиг.2 иллюстрирует типичную сетевую вычислительную среду, в которой многие компьютерные процессы могут быть реализованы, чтобы предоставить системы и способы для управления каналом связи малого радиуса действия.
Фиг.3 иллюстрирует типичное множество устройств, обменивающихся информацией, с использованием NFC.
Фиг.4 иллюстрирует, как используется SYMM кадр.
Фиг.5 - иллюстративная блок-схема использования таймера, чтобы определять, передавать ли SYMM примитив.
Фиг.6 - иллюстритвная блок-схема, изображающая обработку входящих пакетов данных в полудуплексном канале.
Фиг.7 - иллюстративная блок-схема, изображающая обработку входящих пакетов данных в полудуплексном канале.
Фиг.8 - иллюстративная блок-схема, изображающая обработку входящих пакетов данных в NFC канале.
Фиг.9 - иллюстративная блок-схема, изображающая обработку входящих пакетов данных в NFC канале.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Определенные характерные детали изложены в последующем описании и на чертежах, чтобы предоставить понимание различных вариантов осуществления способов и систем, описанных в настоящем документе. Определенные хорошо известные детали, связанная электроника и способы связи не изложены, чтобы избежать ненужного затруднения понимания различных вариантов осуществления. Дополнительно, специалистам в данной области техники будет понято, что другие варианты осуществления описанных способов и систем могут быть реализованы на практике без одной или более деталей, описанных ниже. В частности, способы и системы, раскрытые в настоящем документе, описывают различные варианты осуществления использования NFC протокола, но могут быть применены, в общем, и к другим типам каналов. В заключение, хотя различные процессы описываются со ссылкой на этапы и последовательности, описания даются для представления понятной реализации конкретных вариантов осуществления, и этапы и последовательности этапов не должны восприниматься как требуемые для осуществления способов и систем, раскрытых в настоящем документе.
Иллюстративные вычислительные устройства
На Фиг.1 изображена блок-схема, представляющая типичную вычислительную среду, пригодную для использования совместно с процессами, описанными ниже. Например, машиноисполняемые инструкции, которые выполняют процессы и способы, описанные ниже, могут находиться и/или выполняться в одном из устройств, изображенных на Фиг.1. Среда 220 вычислительной системы является только одним из примеров подходящей вычислительной среды и не предназначена для ограничения объема использования или функциональных возможностей изобретения. Кроме того, вычислительная среда 220 не должна быть истолкована как имеющая какую бы то ни было зависимость или требование, относящееся к любому одному или сочетанию компонентов, проиллюстрированных в типичной рабочей среде 220.
Аспекты изобретения работоспособны с многочисленными другими вычислительными средами общего назначения или средами вычислительных систем специального назначения или конфигурациями. Примеры хорошо известных вычислительных систем, сред и/или конфигураций, которые могут быть пригодными для использования с изобретением, включают в себя, но не в качестве ограничения, персональные компьютеры, серверные компьютеры, «карманные» или портативные устройства, многопроцессорные системы, основанные на микропроцессорах системы, компьютерные приставки к телевизору, программируемые устройства бытовой электроники, сетевые ПК, миникомпьютеры, универсальные вычислительные машины, распределенные вычислительные среды, которые включают в себя любые из вышеприведенных систем или устройств, и тому подобное.
Аспекты изобретения могут быть реализованы в общем контексте машиноисполняемых инструкций, таких как программные модули, исполняемые компьютером. Как правило, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и так далее, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Аспекты изобретения могут также быть осуществлены на практике в распределенной вычислительной среде, где задачи выполняются удаленными обрабатывающими устройствами, которые связаны через сеть передачи данных. В распределенном вычислительном окружении программные модули могут быть расположены и в локальном, и удаленном компьютерном запоминающем носителе, включающем в себя запоминающие устройства памяти.
Иллюстративная система для реализации аспектов изобретения включает в себя вычислительное устройство общего назначения, выполненное в виде компьютера 241. Компоненты компьютера 241 могут включать в себя, не ограничиваясь указанным, блок 259 обработки, системную память 222 и системную шину 221, которая соединяет различные компоненты системы, включая соединение системной памяти с блоком 259 обработки. Системная шина 221 может быть любой из нескольких типов шинных структур, включающих в себя шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любую из множества шинных архитектур. В качестве примера, без ограничения указанным, такие архитектуры включают в себя шину стандартной архитектуры для промышленного применения (ISA), шину микроканальной архитектуры (MCA), шину расширения ISA (EISA), локальную шину ассоциации по стандартизации в области видеотехники (VESA), шину соединения периферийных компонентов (PCI), также известную как шина расширения, а также ее развитие, стандарт PCI-Express, защищенный цифровой ввод/вывод (SDIO) и универсальную последовательную шину (USB).
Компьютер 241 типично включает в себя множество машиночитаемых носителей. Машиночитаемые носители могут быть любыми доступными носителями, к которым может быть осуществлен доступ компьютером 241, и включают в себя как энергозависимые и энергонезависимые носители, так и съемные и несъемные носители. В качестве примера, но не ограничения, машиночитаемые носители могут содержать компьютерные запоминающие носители и среду передачи данных. Компьютерные запоминающие носители включают в себя как энергозависимые и энергонезависимые носители, так и съемные и несъемные носители, реализованные в рамках любого способа или технологии для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные запоминающие носители включают в себя, без ограничения указанным, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, цифровой универсальный диск (DVD) или другое оптическое дисковое запоминающее устройство, магнитные кассеты, магнитную ленту, магнитный дисковый накопитель или другие магнитные запоминающие устройства, или любой другой носитель, который может быть использован, чтобы хранить желаемую информацию, и к которому может быть осуществлен доступ компьютером 241. Среда передачи данных обычно воплощает машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном информационном сигнале, таком как несущая, или другом транспортном механизме, и включает в себя любую среду доставки информации. Термин «модулированный сигнал данных» означает сигнал, в котором одна или более характеристик установлены или изменяются таким образом, чтобы кодировать информацию в сигнале. В качестве примера, но не ограничения, среда передачи данных включает в себя проводную среду, такую как проводная сеть или непосредственное проводное соединение, и беспроводную среду, такую как акустическая, РЧ, инфракрасная и другая беспроводная среда. Сочетания любых из вышеприведенных вариантов также должны быть включены в пределы объема машиночитаемых носителей.
Системная память 222 включает в себя компьютерные запоминающие носители в виде энергозависимой или энергонезависимой памяти, такой как постоянное запоминающее устройство (ROM) 223 или оперативное запоминающее устройство (RAM) 260. Базовая система 224 ввода-вывода (BIOS), содержащая базовые процедуры, которые помогают передавать информацию между элементами в пределах компьютера 241, к примеру во время запуска, обычно хранится в ROM 223. RAM 260 обычно содержит данные и/или программные модули, которые являются непосредственно доступными и/или являются в текущий момент обрабатываемыми процессором 259. В качестве примера, но не ограничения, Фиг.1 иллюстрирует операционную систему 225, прикладные программы 226, другие программные модули 227 и программные данные 228.
Компьютер 241 также может включать в себя другие съемные/несъемные энергозависимые/энергонезависимые компьютерные запоминающие носители. Только в качестве примера Фиг.1 иллюстрирует накопитель 238 на жестком диске, который осуществляет считывание или запись на несъемный энергонезависимый магнитный носитель, накопитель 239 на магнитных дисках, который осуществляет чтение или запись на съемный энергонезависимый магнитный диск 254, и накопитель 240 на оптических дисках, который осуществляет чтение или запись на съемный энергонезависимый оптический диск 253, такой как CD-ROM или другой оптический носитель. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители, которые могут быть использованы в примерной рабочей среде, включают в себя, но не ограничены, кассеты магнитной ленты, карты флэш-памяти, цифровые многофункциональные диски, цифровую видеоленту, твердотельное RAM, твердотельное ROM и тому подобное. Накопитель 238 на жестком диске типично подключен к системной шине 221 через интерфейс несъемной памяти, такой как интерфейс 234, а привод 239 магнитного диска и привод 240 оптического диска типично подключены к системной шине 221 посредством интерфейса съемной памяти, такого как интерфейс 235.
Накопители и связанные с ними компьютерные носители хранения данных, описанные выше и показанные на Фиг.1, обеспечивают хранение компьютерных считываемых команд, структур данных, программных модулей и других данных для компьютера 241. На Фиг.1, к примеру, показано, что накопитель 238 на жестком диске хранит операционную систему 258, прикладные программы 257, другие программные модули 256 и данные программ 255. Заметим, что эти компоненты могут быть либо аналогичными, либо отличаться от операционной системы 225, прикладных программ 226, других программных модулей 227 и данных программ 228. Операционной системе 258, прикладным программам 257, другим программным модулям 256 и данным программ 255 даны здесь другие ссылочные позиции, чтобы проиллюстрировать, что это, по меньшей мере, разные копии. Пользователь может вводить команды и информацию в компьютер 241 через устройства ввода, такие как клавиатура 251 и указательное устройство 252, обычно упоминаемое как мышь, шаровой манипулятор или сенсорная панель. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер или тому подобное. Эти и другие устройства ввода часто соединяются с процессором 259 через пользовательский интерфейс 236 ввода, который соединен с системной шиной, но могут быть соединены посредством других интерфейсов и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 242 или другой тип устройства отображения также соединяется с системной шиной 221 через интерфейс, такой как незащищенный или защищенный видеоинтерфейс 232. Типичный защищенный видеостандарт мог бы быть стандартом мультимедийного интерфейса высокой четкости (HDMI). В дополнение к монитору, компьютеры также могут включать в себя другие периферийные устройства вывода, такие как динамики 244 и принтер 243, которые могут быть подключены через интерфейс 233 периферийного вывода.
Компьютер 241 может работать в сетевом окружении, используя логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер 246. Удаленный компьютер 246 может быть персональным компьютером, сервером, маршрутизатором, сетевым PC, одноранговым устройством или другим общим узлом сети, и он типично включает в себя многие или все элементы, описанные выше относительно компьютера 241, хотя на Фиг.1 проиллюстрировано только запоминающее устройство 247 хранения. Логические соединения, показанные на Фиг.1, включают в себя локальную вычислительную сеть (LAN) 245 и глобальную сеть (WAN) 249, но могут также включать в себя другие сети. Такие сетевые среды являются обычными в офисах, корпоративных компьютерных сетях, сетях интранет и сети Интернет. При использовании в сетевом окружении LAN компьютер 241 подключен к LAN 245 посредством сетевого интерфейса или адаптера 237. При использовании в сетевом окружении WAN компьютер 241 типично включает в себя модем 250 или другое средство установления обмена данными по WAN 249, такой как Интернет. Модем 250, который может быть внутренним и внешним, может быть подключен к системной шине 221 через интерфейс 236 пользовательского ввода, или другой подходящий механизм. В сетевой среде программные модули, изображенные относительно компьютера 241, или их части могут быть сохранены в удаленном запоминающем устройстве памяти. В качестве примера, а не ограничения, Фиг.1 иллюстрирует удаленные прикладные программы 248 как находящиеся на запоминающем устройстве 247. Следует принять во внимание, что показанные сетевые соединения являются примерными, и может быть использовано другое средство установления канала связи между компьютерами.
Должно быть понято, что различные методы, описанные в настоящем документе, могут быть реализованы в связи с аппаратными средствами или программным обеспечением или, если необходимо, с их сочетанием. Таким образом, способы и устройство настоящего изобретения или его определенные аспекты или части могут принимать форму программного кода (т.е. инструкций), включенную в материальные носители, такие как гибкие диски, диски CD-ROM, жесткие диски или любые другие машиночитаемые носители хранения, при этом, когда программный код загружен и исполняется машиной, такой как компьютер, машина становится устройством для использования изобретения на практике. В случае исполнения программного кода на программируемых компьютерах, вычислительное устройство, в общем, включает в себя процессор, носитель хранения, читаемый процессором (включая энергозависимую и энергонезависимую память и/или элементы хранения), по меньшей мере, одно устройство ввода и, по меньшей мере, одно устройство вывода. Одна или более программа, которая может реализовывать или использовать процессы, описанные в связи с вариантами осуществления систем и способов, описанных в настоящем документе, например, посредством использования API, повторно используемых элементов управления, или тому подобного. Такие программы предпочтительно реализуются в высокоуровневом или объектно-ориентированном языке программирования, чтобы обмениваться информацией с вычислительной системой. Однако при необходимости программа(ы) может быть реализована на ассемблере или машинном языке. В любом случае, язык может быть компилируемым или интерпретируемым языком и объединен с реализациями в аппаратных средствах.
Хотя примерные варианты осуществления могут ссылаться на использование аспектов настоящего изобретения в контексте одного или более автономных компьютерных систем, варианты осуществления, раскрытые в настоящем документе, не ограничены этим, а наоборот могут быть реализованы в связи с любой вычислительной средой, такой как сетевая или распределенная вычислительная среда. Дополнительно, аспекты настоящего изобретения могут быть реализованы в или на множестве микросхем или устройств обработки, и хранилище может быть подобным образом выполнено на множестве устройств. Такие устройства могут включать в себя персональные компьютеры, сетевые серверы, карманные устройства, суперкомпьютеры или компьютеры, интегрированные в другие системы, такие как автомобили или аэропланы.
В свете разнообразных вычислительных окружений, которые могут быть построены согласно общей основе, представленной на Фиг.1, системы и способы, представленные в настоящем документе, не могут истолковываться в качестве ограниченных, в любом случае, конкретной вычислительной архитектурой. Поэтому настоящее изобретение не должно быть ограничено каким бы то ни было отдельным вариантом осуществления, а скорее должно быть истолковано в пределах широты и объема в соответствии с прилагаемой формулой изобретения.
Далее, со ссылкой на Фиг.2 показана типичная сетевая вычислительная среда, в которой многие компьютерные процессы могут быть реализованы, чтобы выполнять, по меньшей мере, один из процессов, описанных ниже. Например, параллельное вычисление может быть частью такой сетевой среды с различными клиентами сети по Фиг.2, используя и/или реализуя систему для реализации универсальной карты потребительских расходов. Обычный специалист в данной области техники может принять во внимание, что сети могут соединять любой компьютер или другое клиентское или серверное устройство в распределенной вычислительной среде. В этом смысле любая вычислительная система или окружение, имеющие любое количество вычислительных, запоминающих устройств или устройств хранения, и любое число приложений и процессов, происходящих одновременно, считается подходящей для использования в связи с представленными системами и способами.
Распределенное вычисление предусматривает совместное использование вычислительных ресурсов и сервисов путем обмена между вычислительными устройствами и системами. Эти ресурсы и сервисы включают в себя обмен информацией, кэш память и дисковое запоминающее устройство для файлов. Распределенное вычисление использует преимущество связности узлов в сети, позволяя клиентам усиливать их совместную мощь, чтобы приносить пользу всему предприятию. В этом смысле, многообразие устройств может иметь приложения, объекты или ресурсы, которые могут заключать в себе процессы, описанные в настоящем документе.
Фиг.2 предоставляет схематичную диаграмму типичной сетевой или распределенной вычислительной среды. Среда содержит вычислительные устройства 271, 272, 276 и 277, а также объекты 273, 274 и 275 и базу данных 278. Каждый из этих объектов 271, 272, 273, 274, 275, 276, 277 и 278 может содержать или воспользоваться программами, способами, хранилищами данных, программируемой логикой и так далее. Объекты 271, 272, 273, 274, 275, 276, 277 и 278 могут охватывать части того же самого или различных устройств, таких как PDA, аудио/видео устройства, MP3 плееры, персональные компьютеры и так далее. Каждый объект 271, 272, 273, 274, 275, 276, 277 и 278 может обмениваться информацией с другим объектом 271, 272, 273, 274, 275, 276, 277 и 278 в виде коммуникационной сети 270. В этом смысле, любой объект может быть ответственным за поддержку и обновление базы данных 278 или другого элемента хранения.
Эта сеть 270 может сама по себе содержать другие вычислительные объекты, которые предоставляют сервисы системе на Фиг.2, и могут сами по себе представлять множество связанных сетей. В соответствии с аспектом настоящего изобретения, каждый объект 271, 272, 273, 274, 275, 276, 277 и 278 может содержать дискретные функциональные программные модули, которые могут использовать API или другие объекты, программное обеспечение, микропрограммное обеспечение и/или аппаратные средства, чтобы запрашивать сервисы одного или более других объектов 271, 272, 273, 274, 275, 276, 277 и 278.
Также может быть принято во внимание, что объект, такой как 275, может располагаться на другом вычислительном устройстве 276. Таким образом, хотя изображенная физическая среда может показывать соединенные устройства, такие как компьютеры, такая иллюстрация является только примерной, и физическая среда может альтернативно быть изображена или описана как содержащая различные цифровые устройства, такие как PDA, телевизоры, MP3 плееры и т.д., объекты программного обеспечения, такие как интерфейсы, COM объекты и тому подобные.
Существует множество систем, компонентов и сетевых конфигураций, которые поддерживают распределенные вычислительные среды. Например, вычислительные системы могут быть соединены друг с другом проводными и беспроводными системами, локальными сетями или широко распространенными сетями. В настоящее время, многие сети присоединены к Интернету, который обеспечивает инфраструктуру для широко распространенного вычисления и охватывает много различных сетей. Любые такие инфраструктуры, либо присоединенные к Интернету, либо нет, могут быть использованы совместно с представленными системами и способами.
Сетевая инфраструктура может делать возможным совокупность топологий, таких как клиент/сервер, соединение равноправных узлов или гибридные архитектуры. «Клиент» - это член класса или группы, который использует сервисы другого класса или группы, к которым он не относится. В вычислениях клиент является процессом, то есть, грубо множеством инструкций или задач, которые запрашивают сервис, предоставляемый другой программой. Клиентский процесс использует запрашиваемый сервис без знания функциональных деталей о другой программе или самого сервиса. В клиент/сервер архитектуре, в частности в сетевой системе, клиент является обычно компьютером, который осуществляет доступ к совместно доступным сетевым ресурсам, предоставленным другим компьютером, например сервером. В примере на Фиг.2 любые объекты 271, 272, 273, 274, 275, 276, 277 и 278 могут рассматриваться как клиент, сервер или как оба, в зависимости от обстоятельств.
Сервер типично, хотя не обязательно, представляет собой удаленную компьютерную систему, доступную через удаленную или локальную сеть, такую как Интернет. Клиентский процесс может быть активным в первой компьютерной системе, и серверный процесс может быть активным во второй компьютерной системе, обмениваясь данными друг с другом через среду передачи данными, таким образом предоставляя распределенную функциональность и позволяя множеству клиентов использовать преимущество способностей сбора информации сервером. Любые объекты программного обеспечения могут быть распределены по многочисленным компьютерным устройствам или объектам.
Клиент(ы) и сервер(ы) осуществляют связь друг с другом, используя функциональность, предоставляемую протокольным(и) уровнем(ями). Например, протокол передачи гипертекста (HTTP) является общим протоколом, который используется совместно с всемирной сетью (WWW) или «Веб». В типичном варианте, компьютерный сетевой адрес, такой как адрес Интернет-протокола (IP) или другая ссылка, такая как универсальный указатель ресурса (URL), могут быть использованы, чтобы идентифицировать серверный или клиентский компьютеры друг другу. Сетевой адрес может быть именован как URL адрес. Обмен данными может быть обеспечен через среду обмена данными, например клиент(ы) и сервер(ы) могут быть связаны друг с другом через TCP/IP соединение(я) для высокопроизводительной передачи информации.
В свете разнообразных вычислительных окружений, которые могут быть построены согласно общей основе, предоставленной на Фиг.2, и дополнительной диверсификации, которая может возникать в вычислениях в сетевой среде, такой как на Фиг.2, системы и способы, предоставленные в настоящем документе, не могут истолковываться в качестве ограниченных, в любом случае, конкретной вычислительной архитектурой или операционной системой. Поэтому, настоящее изобретение не должно быть ограничено каким бы то ни было отдельным вариантом осуществления, а скорее должно быть истолковано в пределах широты и объема в соответствии с прилагаемой формулой изобретения.
Обзор NFC
NFC протокол основан на беспроводном интерфейсе и типично предназначен для установления беспроводных сетевых соединений между компьютерным периферийным оборудованием и бытовой электроникой. NFC устройства являются радиочастотными бесконтактными устройствами связи, которые могут обмениваться информацией в беспроводном режиме с другими NFC устройствами через относительно короткие дистанции. Как правило, дальность связи примерно 0~20 см. Фиг.3 иллюстрирует три типичных устройства, обменивающихся данными с использованием NFC метода. Обмен данными осуществляется через индуктивную связь магнитного поля между NFC устройством и вторым NFC устройством. NFC устройства могут быть реализованы посредством единственной интегральной схемы или посредством отдельных функциональных компонентных частей или отдельных интегральных схем.
NFC устройства, по сути, являются защищенными, поскольку устройства должны размещаться очень близко друг к другу, чтобы устанавливать обмен данными. Любое устройство-нарушитель должно подобным образом быть физически близким, чтобы устанавливать мошенническое соединение, и поэтому легко контролировать NFC окружение связи по сравнению с беспроводными способами соединения с более длинными дистанциями, такими как Bluetooth.
В NFC интерфейсы работают в 13,56 MHz радиочастотном диапазоне. Диапазон типично нелицензируемый, и, таким образом, лицензии не требуются, чтобы использовать этот диапазон. Однако отдельные страны могут налагать конкретные ограничения на электромагнитное излучение в этом диапазоне.
Существует типично два устройства, участвующих в данном сеансе связи. Как часто бывает, в случае с устройством, совместно использующим одну радиочастотную полосу, связь является полудуплексной. Такие сеансы связи обычно равноправно обмениваются данными в полудуплексном режиме, в котором обмен данными существует в обоих направлениях, но только в одном направлении в один момент времени (неодновременно). Таким образом, одно устройство, начинающее получение сигнала, должно находиться в состоянии ожидания, когда передатчик остановит передачу, прежде чем отвечать. Устройства, реализующие политику «слушать, прежде чем говорить», - это любое устройство, которое должно сначала слушать на несущей, и начинать передачу сигнала, только если другое устройство не может быть распознано как передающее. Специалист в данной области техники будет принимать во внимание, что способы и системы, описанные в настоящем документе, могут быть воплощены в любом количестве полудуплексных протоколов и не ограниченны NFC контекстом.
Функционирование NFC устройств зависит от того, действуют ли они как «инициатор» или как «цель» и действуют ли они в «режиме пассивной связи» или «режиме активной связи». Любое устройство может быть либо инициатором или целью. Инициатор - это устройство, которое инициирует и управляет обменом данными. Цель - это устройство, которое отвечает на запросы от инициатора.
NFC устройство-инициатор будет генерировать радиочастотное поле и начинать обмен данными. Целевое устройство будет отвечать на принятое радиочастотное поле от NFC устройства-инициатора. Ответ будет через модуляцию выработанного радиочастотного поля или через генерацию нового радиочастотного сигнала и модуляцию этого радиочастотного сигнала.
В активном режиме оба устройства генерируют свои собственные радиочастотные поля, чтобы переносить данные. В «режиме пассивной связи» инициирующее NFC устройство будет генерировать радиочастотное поле, а целевое NFC устройство будет отвечать на команды инициатора модуляцией полученного радиочастотного сигнала, обычно модуляцией нагрузки. В «режиме активной модуляции» и инициирующее NFC устройство, и целевое NFC устройство используют свое собственное радиочастотное поле, чтобы обеспечить возможность связи.
Инициирующее приложение выбирает начальную скорость связи из набора 106, 212 и 424 кбит/с. Затем приложение и/или окружение связи может потребовать согласования скорости связи. Протоколы используют различную модуляцию и схемы кодирования битов в зависимости от скорости. Как только устанавливается сеанс связи, инициатор начинает передачу данных в конкретном режиме на конкретной скорости. Цель определяет текущую скорость, и ассоциированный низкоуровневый протокол отвечает соответственно. Связь прекращается либо по команде от приложения или, когда устройство выходит за пределы области.
Пассивный режим важен для устройств с питанием от батареи, поскольку они должны минимизировать потребление мощности, чтобы сберечь время работы батареи. Устройство может снабжаться энергией внутренним образом, но не должно расходовать добавочный заряд аккумуляторной батареи путем возбуждения радиочастотного передатчика и антенны. Если два одноранговых устройства хотят обмениваться информацией без необходимости любого пользовательского взаимодействия, каждое NFC устройство должно быть непрерывно активно.
Понятно, что предыдущие примеры представлены только в целях иллюстрации и разъяснения, и что различные аспекты настоящего раскрытия, представленного в настоящем документе, не ограничиваются такими примерами. Например, другие типы беспроводных каналов ближнего действия столкнутся с такими же задачами, которые в общем случае применимы, когда используется полудуплексная связь. Предполагается, что настоящее раскрытие может быть применено к различным формам проводных и беспроводных связей, которые используют один или более признаков синхронизации, описанных выше.
Управление NFC каналом связи
NFC устройства могут включать в себя микропроцессор или микроконтроллер для управления работой NFC устройства, генератор сигналов для генерирования радиочастотных сигналов, модулятор для модулирования радиочастотного сигнала, генератор синхронизирующих сигналов для предоставления синхронизирующих сигналов для функционального ядра и средство хранения данных для хранения данных. Различные части NFC устройства могут быть представлены одной схемой, несколькими схемами или интегрированы с хост-системой или устройством.
NFC устройство типично подсоединяется к дополнительным системным компонентам соединителем. Системные компоненты могут содержать процессор хост-системы, сенсор, исполнительный механизм или любое другое устройство, допускающее взаимодействие с локальной средой NFC устройства. При работе NFC устройство в режиме инициатора передает модулированный радиочастотный сигнал, и этот сигнал типично принимается NFC устройством через индуктивный соединитель.
Протокол управления логическим соединением (LLCP) определяет логический канал между NFC устройствами и основан на семействе высокоуровневого управления каналом передачи данных (HDLC) процедур управления уровнем канала (ISO/IEC 13239:2002). Канал может поддерживать один или более (логических) LLCP соединений. Функциональность LLCP построена на стандартах функциональности ISO/IEC18092.
LLCP блок разделяется на четыре функциональные блока. Субблок «начальная установка канала» является ответственным за создание начальной установки канала. Как только создание канала выполнено, этот субблок становится неактивным и операция передается «поставщику симметрии». Этот субблок активен до тех пор, пока удаленное устройство NFC конференции находится поблизости. Этот субблок обеспечивает модель симметричных ролей и является предварительным условием для остальных функций LLCP. Менеджер канала является ответственным за преобразование в последовательную форму всех обменов данных с установлением соединения и без установления соединения и обеспечивает обработку обнаружения ошибок и восстановления после ошибок. Блок соединения и передачи данных является ответственным за поддержание связей с установлением соединения.
LLCP поддерживает два различных типа транспорта, которые независимы друг от друга. Транспорт без установления соединения обеспечивает сервис, который передает данные ненадежным способом. Отправитель не получает никакую обратную связь, если данные не были фактически получены удаленным одноранговым узлом. Если принимающее устройство находится в состоянии занятости или если передача данных была ошибочна, локальный одноранговый узел не будет уведомлен. Более того, этот тип транспорта не имеет никакого контекста сеанса. Каждый кадр состоит из точки доступа к службе (SAP) получателя и SAP источника, которые делают возможным многократную передачу данных без соединения через одиночный канал. Порт получателя типично зависит от определенного протокола. Порт источника не интерпретируется LLC стеком. Высокоуровневое приложение может использовать поле как идентификатор, чтобы иметь контекст между множеством кадров.
Транспорт без установления соединения не требует никакого предварительного создания соединения канала данных и поэтому нет разъединения канала данных. Транспорт, требующий соединения, также известный как тип 2, предоставляет канал, который обладает возможностью надежно обмениваться данными. Соединения, основанные на типе 2, выполняются в три этапа. Первый - это создание соединения, чтобы согласовать контекст сеанса между локальным и удаленным одноранговым узлом. Это может быть инициировано любым устройством. Второй - это информационный обмен, фактический обмен данными, который может выполняться в обоих направлениях. Обмен данными выполняется надежно, по порядку и включает в себя восстановление после ошибок. Третий - это завершение соединения, аннулирование контекста сеанса. Это обеспечивает возможность постепенного закрытия сеанса и необязательную возможность повторно использовать идентификатор для нового соединения. LLCP стек может управлять множеством соединений через одиночный канал. Каждое соединение поддерживает свое собственное состояние.
Контекст сеанса определяется комбинацией SAP источника и SAP приемника. SAP приемника (DSAP) может указывать на зарезервированную точку доступа к службе. Эти DSAP могут указывать на зарезервированную точку доступа к службе, к которой была определена привязка конкретного протокола. SAP иные, чем зарезервированные для конкретного протокола, требуют от приложений согласования общего протокола.
Общая начальная установка канала связи выполняется прохождением через следующие этапы.
1. LLC стек предоставляет «Переключателю режима» соответствующие LLCP конфигурационные данные. Это, в частности, включает в себя содержимое общих байтов ATR_REQ and ATR_RES.
2. NFC устройство, сконфигурированное в NFCIP-1 режиме инициатора, определяет удаленное устройство или тег посредством компонента «Переключатель режима».
3. NFCIP-1 противоконфликтная процедура определяет, что одиночное удаленное устройство способно обмениваться информацией через NFCIP-1 протокол.
4. Локальное LLCP устройство извещает о своей возможности LLCP поддержки в течение инициализации NFCIP-1 протокола посредством общих байтов, которые предоставляются LLCP стеком.
5. После отправления ATR_RFQ команды локальное LLCP устройство получит NFCIP-1 ответ инициализации (ATR_RES), который содержит возможности удаленного устройства.
6. «Переключатель режима» будет уведомлять LLCP стек, и LLCP стек будет считывать собранные данные.
7. Данные проверяются LLCP инициатором и проверяются на соответствие NFC и LLCP соответствия правилам.
8. Если процедура соответствовала NFCIP-1 и если общие байты ATR_REQ/ATR_RES были правильно сформированы, LLCP канал устанавливается.
С точки зрения РЧ протокола, канал для инициатора устанавливается согласно следующей процедуре.
1. Выполнить процедуру предотвращения конфликтов согласно выявленной технологии
а. 106 кбит/с пассивный режим:
Инициатор выполняет процедуру предотвращения конфликтов и выбора вплоть до SEL_REQ и SEL_RES. Если согласно ISO/IEC18092 SEL_RES bit6 установлен в 1, инициатор предполагает, что цель поддерживает NFCIP-1 протокол
b. 212 кбит/с пассивный режим:
Инициатор выполняет процедуру предотвращения конфликтов выполнением POLLING_REQUEST и POLLING_RESPONSE. Если согласно ISO/IEC18092 NFCID-2 префиксные байты установлены в 01h FEh, инициатор предполагает, что цель поддерживает NFCIP-1 протокол.
c. 424 кбит/с пассивный режим:
Эта процедура является точно такой же, как для 212 кбит/с.
2. Для того чтобы активировать NFCIP-1, инициатор подготавливает ATR_REQ согласно ISO/IEC18092.
3. Инициатор отправляет ATR_REQ и ожидает ATR_RES ответ.
4. Инициатор проверяет корректность ATR_RES согласно ISO/IEC 18092. Кроме того, инициатор проверяет, сформатированы ли общие байты корректно.
5. Если общие байты правильно сформированы, инициатор предполагает, что удаленное устройство способно обмениваться информацией через LLCP. LLCP канал теперь может быть установлен. Следующий NFCIP-1 DEP кадр уже содержит действительный LLC кадр.
С точки зрения РЧ протокола, процедура для целевой роли является следующей.
1. Если цель намеревается осуществлять связь через LLCP, цель действует согласно ISO/IEC18092. Следовательно, цель становится выбранной и может ожидать ATR_REQ
2. После того как ATR_REQ принят, цель сначала проверяет, правильно ли ATR_REQ сформирован согласно ISO/IEC18092
3. Кроме проверки ATR_REQ, цель проверяет, соответствующим ли образом отформатированы байты общего назначения. Если это так, цель может предположить, что инициатор намерен устанавливать LLCP канал.
4. Если ATR_REQ определен соответственно, цель определяет ATR_RES согласно ISO/IEC18092 и, кроме того, устанавливает байты общего назначения.
5. После того как ATR_RES выдан, цель может предположить, что канал установлен и поэтому может предположить, что следующий принятый кадр является первым LLC кадром.
NFCIP-1 протокол основан на модели ведущий/подчиненный. NFCIP-1 инициатор может рассматриваться как ведущий, который инициирует и управляет всем обменом данными с целью(ями). NFCIP-1 цель может рассматриваться как подчиненный объект, которому разрешено только отвечать на команды, выданные инициатором. Цель, следовательно, не имеет средства инициировать какую-либо связь на NFCIP-1 уровне.
Эта модель является подходящей для случаев, где роли предопределены вследствие физических характеристик. Однако это уже не справедливо для случаев соединения равноправных узлов, где роли не могут быть определены до установки канала. В таких случаях важно, чтобы оба устройства имели те же самые свойства. Это, по существу, подразумевает, что оба устройства могут инициировать обмен данными в любой момент времени, не учитывая роль, определенную заранее.
Симметричное поведение может быть осуществлено отправкой пары команда/ответ периодическим образом, даже если не существует полезной нагрузки для обмена. Это главным образом дает возможность NFCIP-1 цели «посылать» данные в рамках определенного временного кадра, так как инициатор должен периодически выдавать LLC кадры, независимо от того, содержат ли кадры данные полезной нагрузки или нет.
Свойство симметрии основано на следующих допущениях.
1. LLCP канал создается неявно и поддерживается, пока удаленный одноранговый узел находится в пределах рабочего диапазона.
2. LLCP не отвечает за организацию очереди. Для учета простоев LLCP стек предполагает только один кадр в очереди отправки/получения.
3. LLCP спроектирован таким способом, что входящая полезная нагрузка (то есть I или UI кадр) не влияет на следующую исходящую полезную нагрузку. Это имеет преимущество в том, что устройство способно отправлять данные, даже если полученные данные еще не были обработаны.
4. Время двустороннего обмена, как определено ниже, не учитывает, какую бы то ни было обработку ошибок. Поэтому, если ошибка передачи произошла, и канал должен выполнить восстановление после ошибки, LLCP канал может не поддерживать максимальное время ответа.
LLC протокол поддерживает три различных типа команд. Каждая LLC команда или ответ может быть классифицирован одним из этих типов.
Информационный (I кадр) - пронумерованная передача информации. I-форматированные команды и ответы являются надежными и содержат информацию нумерации и саму полезную нагрузку.
Контролирующий (S кадр) - контролирующие кадры служат для выполнения контролирующих функций для типа 2 и функционирования уровня канала.
Ненумерованный (U кадр) - ненумерованные кадры служат для выполнения непоследовательной информационной передачи, также известной как передача данных типа 1.
Каждый LLC кадр, который содержит один из трех различных командных типов, соответствует следующему формату.
<b>Таблица 1</b><b>LLC формат кадра</b>
DSAP поле
SSAP поле
Управляющее поле
Информационное поле
<b>Таблица 2</b><b>Таблица команд</b>
<b>Команды</b>
<b>Бит[7]</b>
<b>Бит[6]</b>
<b>Бит[5]</b>
<b>Бит[4]</b>
<b>Бит[3..0]</b>
Ul
0
0
1
0
0000
I
0
1
0
0
0000
RR
0
0
0
0
0001
RNR
0
0
0
0
0011
CONNECT
0
0
0
0
0100
DISCONNECT
0
0
0
0
0101
SYMM
0
1
1
0
0111
FRMR
0
0
0
0
0111
UA
0
0
0
0
0100
DM
0
0
0
0
0101
PAN CMD
0
0
0
0
0110
PAN RSP
0
0
0
0
0111
<b>Таблица 3:</b><b>SYMM кадр</b>
<b>DSAP</b>
<b>SSAP</b>
<b>Управление</b>
00h
00h
SYMM
SYMM (симметрия) команда/ответ используется для поддержания симметрии. SYMM команда/ответ отправляется посредством NFCIP-1 команды или NFCIP-1 ответа, если не существует полезной нагрузки или подтверждения задержки. Эта команда не передает никакого информационного поля.
SYMM кадры могут иметь два различных значения бездействия в зависимости от роли
Инициатор:
TT
Если инициатор получает SYMM кадр, это гарантирует, что инициатор отправляет LLC команду в рамках временного окна, как определено таймером T двустороннего обмена.
Цель:
Если цель получает SYMM кадр, это гарантирует, что устройство отвечает LLC кадром в рамках времени ожидания ответа (RWT), как определено NFCIP-1.
Фиг.4 иллюстрирует, как используется SYMM кадр. Со ссылкой на фигуру:
1. Устройство A отправляет LLC кадр Устройству B (например, CONNECT кадр);
2. Устройство B не имеет ничего, чтобы отправлять, вследствие этого оно доставляет SYMM кадр для удовлетворения ограничений двустороннего обмена;
3. Устройство A вновь посылает какой-нибудь LLC кадр (например, UI кадр);
4. Устройство B не имеет никакой полезной нагрузки для доставки, поэтому необходимо послать SYMM кадр;
5. Устройство A так же не имеет полезной нагрузки, чтобы отправлять, поэтому ему необходимо фиксировать SYMM кадр;
6. Устройство B доставляет некоторые данные (например, UA кадр для соответствующего CONNECT кадра);
SYMM пакет гарантирует, что схема команда/ответ поддерживается и что временные ограничения двустороннего обмена могут быть удовлетворены.
Управление каналом NFC
Как пояснялось выше, полудуплексный канал связи между устройствами используется в методологии строгой «смены ролей» с одним отправляющим устройством и другим устройством, отвечающим своими собственными данными или управляющей информацией, прежде чем первое устройство сможет отправить новую информацию. В случае, когда ни одно из устройств не имеет данных для отправки, отправляется пустой кадр или примитив симметрии (SYMM). Это позволяет передающему устройству восстанавливать использование канала, когда принимающее устройство не имеет данных для передачи. Когда ни одно из устройств не имеет данных или управляющей информации для отправки, будут отправлены SYMM примитивы в обоих направлениях, и канал можно назвать простаивающим.
Непрерывная передача SYMM примитивов, когда данными фактически не обмениваются, представляет ненужный расход ресурсов аккумуляторной батареи портативных устройств. В этом случае, желательно увеличить время двустороннего обмена, не вызывая нарушения связи. Однако когда данные передаются, пропускная способность может быть максимизирована, позволяя передающему устройству восстанавливать управление каналом как можно быстрее. В этом случае, желательно самое быстрое возможное время двустороннего обмена. Способы и системы, раскрытые в настоящем документе, регулируют время двустороннего обмена в принимающем устройстве, чтобы оптимизировать использование аккумуляторной батареи, наряду с максимизацией пропускной способности.
В одном из вариантов осуществления, время задержки или задержка передачи возрастает, чем дольше канал остается простаивающим. Чтобы вычислить время задержки, в одном из вариантов осуществления время двустороннего обмена в течение периодов простаивания может быть рассмотрено как произведение коэффициента бездействия и задержки бездействия. Задержка бездействия - это временная продолжительность. Коэффициент бездействия может быть рассчитан следующим образом. Вначале, когда канал впервые установлен, коэффициент бездействия устанавливается в ноль. Каждый раз, когда принимается SYMM примитив, коэффициент бездействия увеличивается. Каждый раз, когда принимается примитив, отличный от SYMM, коэффициент бездействия уменьшается или сбрасывается в ноль. Время двустороннего обмена, которое является произведением коэффициента бездействия и задержки бездействия, но не меньше, чем наименьшая задержка обработки, изменяется между нулем и некоторым максимальным значением, масштабируемым коэффициентом бездействия.
T
=F
•T
TT
idle
delay,
T
≤T
≤T
Proc
TT
TMax
где
Фиг.5 изображает один из вариантов осуществления использования таймера, чтобы определять, когда сообщение синхронизации, такое как SYMM примитив, должно быть отправлено. Процесс, начинающийся на этапе 500, может быть инициирован в течение каждого цикла процесса обмена информацией или на периодической основе. На этапе 500 процесс определяет, истек ли таймер. Если используется таймер обратного отчета, то таймер истекает, когда отсчет таймера уменьшился до нуля. Однако возможны другие реализации таймера, и способы и системы, описанные в настоящем документе, могут быть воплощены с различными схемами аппаратного или программного обеспечения и не должны ограничиваться конкретной реализацией таймера. Если таймер истек, то на этапе 520 передается SYMM примитив. Другие типы сообщений синхронизации или статуса могут быть посланы по требованию конкретного протокола.
Если устройство приняло самый последний по времени управляющий примитив, отличный от SYMM примитива, и недавно не принимало информационного кадра, то время двустороннего обмена может быть определено согласно типу полученного управляющего примитива и согласно локальной реализации. Принимающее устройство определяет, является ли принятое сообщение предопределенным, чтобы соответствовать задержке. Например, таблица соответствия может быть использована, чтобы определять различные типы управляющих примитивов или сообщений, которые требуют настроек согласно таймеру двустороннего обмена.
В одном из вариантов осуществления, принимающее устройство определяет, существует ли подтверждение, ожидающее выполнения, или ожидающие данные в его очереди. Если ожидающих данных нет, то передача SYMM примитива задерживается согласно значению, определенному по типу или статусу принятого сообщения. Такая задержка может просто определяться таблицей значений задержек, соответствующих различным выбранным сообщениям или типам сообщений. Альтернативно, задержка может быть определена согласно скользящей шкале, математическим отношением или любым количеством других способов.
Фиг.6 и 7 изображают типичную реализацию способов и систем, описанных в настоящем документе, в полудуплексной среде однорангового обмена данными. На этапе 600 пакет данных принимается первым устройством, и на этапе 610 процесс определяет, указывает ли пакет данных, что передача данных находится в процессе. В таком случае, задержка передачи устанавливается в ноль на этапе 620. Если пакет данных не указывает, что передача данных находится в процессе, то на этапе 630 процесс определяет, указывает ли пакет данных, что канал является простаивающим. Например, пакет данных может быть сообщением "я жив", чтобы указывать, что отправляющее устройство находится в состоянии связи, но не имеет данных для отправки. Если канал является простаивающим, тогда на этапе 640 задержка увеличивается. Если канал не является простаивающим, указывая, что управляющий пакет мог быть получен, то задержка может быть уменьшена или установлена в ноль в зависимости от типа принятых управляющих данных. Процесс может делать это определение согласно с таблицей соответствия или другими способами, как отмечено выше. Задержка может также быть определена согласно локальной реализации.
Согласно Фиг.7, процесс может затем определять, имеет ли принимающее устройство подтверждение, ожидающее выполнения, или ожидающие данные в его очереди, на этапе 700. Если да, тогда пакет передается на этапе 710. Если нет, процесс определяет на этапе 720, требует ли полученный пакет специальной обработки, то есть, пакет предварительно определен, чтобы соответствовать некоторой задержке. Такая задержка может просто определяться таблицей значений задержек, соответствующих различным выбранным сообщениям или типам сообщений, как отмечено выше. Альтернативно, задержка может быть определена согласно скользящей шкале, математическим соотношением или любым количеством других способов. Если не существует ожидающих данных, то будет передаваться синхронизирующее сообщение, если на этапе 740 определяется, что период времени задержки истек.
В примерном варианте осуществления, когда принимается CONN (соединение) примитив и когда нет подтверждения, ожидающего выполнения, или данных, помещенных в очередь, типовой приемник, не реализующий способы и процессы, описанные в настоящем документе, может отвечать немедленно SYMM примитивом. В одном из вариантов осуществления, передача SYMM примитива задерживается так, что менеджер канала принимающего устройства может обрабатывать запрос соединения и генерировать ответ (но не настолько, чтобы нарушать требование таймаута принимающего устройства). Хотя LLCP спецификация не требует, разрешение приемнику устанавливать задержку согласно выбранным высокоприоритетным запросам до ответа будет уменьшать число раз, когда канал должен быть реверсирован, и число SYMM кадров, которыми в противном случае нужно было бы обмениваться. Это улучшает и быстроту реагирования, и использование ресурсов батареи.
В еще одном примерном варианте осуществления, когда принимается примитив «Приемник не готов» (RNR), время двустороннего обмена канала может быть уменьшено или минимизировано, чтобы дать возможность удаленному одноранговому узлу устанавливать в исходное состояние его состояние занятости посредством отправки «Приемник готов» (RR) с уменьшенной задержкой. Может казаться интуитивно-понятным, что состояние занятости может уменьшать время двустороннего обмена. Но можно видеть, что пропускная способность улучшается путем минимизации задержки, следующей за моментом, в который удаленное одноранговое устройство снова способно принимать, и когда оно может извещать другую сторону, используя RR примитив, что оно больше не занято.
Согласно предпочтительному варианту осуществления настоящего изобретения проиллюстрированному на Фиг.8 и 9, принимающее NFC устройство определяет, был ли получен информационный кадр на этапе 800. Если да, то кадр отправляется в соответствующее приложение на этапе 810, и коэффициент бездействия устанавливается в ноль на этапе 815. Если информационный кадр не был принят, то процесс определяет, был ли принят SYMM примитив на этапе 805. Если да, то коэффициент бездействия увеличивается на этапе 820. Иначе, коэффициент бездействия уменьшается или возвращается в исходное положение на этапе 825. Если существуют любые ожидающие кадры управления или данных (этап 900), то таймер останавливается на этапе 910, и ожидающие кадры передаются немедленно или как можно быстрее затем, в зависимости от статуса управления потоком передающего устройства и возвратов процесса.
Когда принимающее устройство не имеет ожидающих сообщений управления или данных для передачи, LLCP спецификация требует от устройства посылать SYMM после задержки вплоть до заданного максимального времени двустороннего обмена. Действительное время задержки и способ определения времени задержки остаются не сформулированными в LLCP спецификации. В предпочтительном варианте осуществления значение времени задержки определяется до отправки SYMM примитива в соответствии с типами кадров канала, принятых последними.
Если принятый кадр указывает, что данные являются приоритетным или обозначенным кадром и должны получить специальную обработку (этап 930), то таймер программируется с использованием таблицы значений или другого предопределенного способа (этап 940). Таймер запускается на этапе 950, и процесс возвращается.
Если последний полученный кадр не требует специальной обработки, то процесс определяет, является ли коэффициент задержки большим, чем нуль, на этапе 960. Если да, то на этапе 970 используется значение (коэффициент бездействия * задержку бездействия), и таймер запускается на этапе 950. Иначе, таймер останавливается на этапе 980, и SYMM примитив передается на этапе 990, после чего процесс возвращается.
Хотя настоящее изобретение было описано в связи с предпочтительными вариантами осуществления, представленными на чертежах, должно быть понято, что могут быть использованы другие подобные варианты осуществления, или могут быть сделаны модификации или дополнения по отношению к описанному варианту осуществления для выполнения той же самой функции настоящего изобретения, не отклоняясь от него. Кроме того, следует подчеркнуть, что принимается во внимание многообразие компьютерных платформ, в том числе операционные системы «карманных» устройств и другие ориентированные на приложение интерфейсные системы аппаратных средств/программного обеспечения, рассмотренные в настоящем документе, особенно ввиду того, что количество беспроводных сетевых устройств продолжает быстро увеличиваться. Поэтому настоящее изобретение не должно быть ограничено каким бы то ни было отдельным вариантом осуществления, а скорее должно быть истолковано в пределах сущности и объема в соответствии с прилагаемой формулой изобретения.
В заключение, раскрытые варианты осуществления, описанные в настоящем документе, могут быть адаптированы для использования в других процессорных архитектурах, системах, основанных на компьютерах, или системах виртуализации, и такие варианты осуществления рассматриваются как предвосхищенные настоящим раскрытием, и, таким образом, настоящее изобретение не должно ограничиваться только отдельными вариантами осуществления изобретения, описанными в настоящем документе, а наоборот должно быть истолковано наиболее широко.