Расширяемая архитектура для вспомогательных дисплеев

Иллюстрации

Показать все

Изобретение относится к области вспомогательных вычислительных устройств. Техническим результатом является облегчение подключения вспомогательного устройства отображения к главной компьютерной системе. Описаны система и способ, посредством которых вспомогательное вычислительное устройство, содержащее платформу вспомогательного дисплея, который отображает информацию, соответствующую данным, источником которых является главная компьютерная система, может быть расширено производителем устройства. Расширенные аппаратные средства добавляются к устройству, такому как радиоприемник и/или звуковой декодер. Платформа вспомогательного дисплея является многоуровневой и расширяемой на каждом уровне и включает в себя расширяемый уровень абстракций аппаратных средств, который является расширяемым, чтобы поддерживать расширенные аппаратные средства, если необходимо, и уровень драйверов, который является расширяемым посредством добавления кода драйверов для расширенных аппаратных средств. Уровень среды исполнения также является расширяемым, чтобы поддерживать расширенные аппаратные средства по мере необходимости, которым являются библиотеки, вспомогательная программная оболочка и иной управляемый код. Клиентский API также является расширяемым, чтобы предоставить приложениям в главной компьютерной системе возможность осуществлять связь с расширенными аппаратными средствами через уровень среды исполнения устройства. 3 н. и 15 з.п. ф-лы, 5 ил.

Реферат

Область техники, к которой относится изобретение

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

Предшествующий уровень техники

Заявки на выдачу патентов Соединенных Штатов под порядковыми номерами 10/429,930 и 10/429,932 в целом ориентированы на концепцию компьютерных систем, содержащих вспомогательную обработку и вспомогательные механизмы, которые обеспечивают некоторые вспомогательные вычислительные функциональные возможности. Например, небольшой жидкокристаллический дисплей (LCD) на крышке или боковой поверхности переносного компьютера может снабжать его владельца полезной информацией, такой как время и место встречи, даже когда дисплей (устройство отображения) главного компьютера не является беспрепятственно видимым, например, когда крышка переносного компьютера закрыта и/или питание главного компьютера отключено. Могут быть предусмотрены средства управления, такие как кнопки, чтобы предоставить пользователю возможность взаимодействовать со вспомогательным устройством, чтобы просматривать разные типы данных, к примеру, чтобы осуществлять прокрутку для просмотра по всем условленным встречам из числа календарных данных, прочитывать сообщения электронной почты, читать распоряжения и так далее.

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

Однако есть много разновидностей устройств, которые могут служить в качестве вспомогательного дисплея для компьютерной системы. Как результат, есть много путей, чтобы сконфигурировать такое устройство внутри. Это создает сложность для производителей (иногда называемых независимыми поставщиками аппаратных средств, или IHV-поставщиками) устройств в том, что пользователи будут хотеть, чтобы их устройство служило в качестве вспомогательного дисплея, однако производителю необходимо, чтобы устройство выполняло свои требуемые функциональные возможности. Таким образом, потребуется, чтобы устройство было спроектировано по-другому, независимо от того, является ли оно, главным образом, аудиоплеером, приемником системы глобального позиционирования (GPS), телефоном, конструкцией цифрового изображения и так далее. Прежде единственный путь конфигурировать аппаратные средства в системе по специальным требованиям заказчика и помимо этого еще использовать устройство в качестве полнофункционального вспомогательного дисплея состоял в необходимости для производителя писать очень большие объемы кода, чтобы интегрировать свои аппаратные средства с другим существующим микропрограммным обеспечением, которое заключало в себе функциональные возможности вспомогательного дисплея. Требуется вычислительная архитектура, которая позволяет устройству, когда уместно, работать в качестве полнофункционального вспомогательного дисплея и помимо этого является расширяемой так, что производитель способен добавлять желательные функциональные возможности, а также вводить новшества и отличать свои устройства от устройств другого производителя.

Сущность изобретения

Кратко настоящее изобретение предусматривает вычислительную архитектуру для вспомогательных дисплеев, которая включает в себя разные уровни кода, каждый из которых производители могут независимо расширять, когда желательно, в зависимости от своих конкретных нужд. Наряду с архитектурой, настоящее изобретение предоставляет производителям устройств возможность конфигурировать по специальным требованиям заказчика компоненты аппаратных средств таким образом, который требует лишь значительно уменьшенного (например, минимального, если вообще какого бы то ни было) количества изменений в микропрограммном обеспечении. Примеры конфигурирования по специальным требованиям заказчика включают в себя интегрирование в устройство радиоприемника или приемопередатчика, такого как радиоприемник для мобильных средств связи, SPOT-радио, Bluetooth-радио и/или GPS-приемник; другие аппаратные средства включают в себя датчик температуры, декодеры звукового сигнала (например, для цифровой обработки сигналов), дополнительные запоминающие устройства и/или другие аппаратные средства, такие как индикаторы.

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

Поверх драйверов иное программное обеспечение устройства включает в себя общеязыковую среду исполнения, такую как TinyCLR, которая содержит реализацию относительно меньшего масштаба конфигурации общеязыковой среды исполнения .NET. Управляемый код, который исполняется в общеязыковой среде исполнения, будет исполняться на любой платформе, на которой исполняется общеязыковая среда исполнения, что сделано возможным посредством HAL (уровня абстракций аппаратных средств) для такой платформы, например, HAL для платформы, основанной на микросхеме ARM7. Поскольку большинство микропрограммного обеспечения написано в управляемом коде, оно также является независимым от типа аппаратных средств, на которых оно исполняется. Посредством управления большинством микропрограммного обеспечения устройства и включения в архитектуру HAL и CLR производители устройств могут повторно использовать существующее программное обеспечение без каких-либо изменений, что является важным для обеспечения высокого качества, совместимого восприятия между различными типами устройств, которые служат в качестве вспомогательных дисплеев.

При разделении архитектуры на уровни производителям устройств требуется всего лишь расширять код на соответствующем уровне (или уровнях) в архитектуре. Например, если изменением является новый центральный процессор (ЦП, CPU), то требуется адаптация HAL. Однако если изменение состоит в добавлении части аппаратных средств, не меняя ЦП, для которого существует HAL, то, вероятно, требуется только должный драйвер для аппаратных средств и другое соответствующее программное обеспечение для работы в устройстве и управления этими аппаратными средствами. Определенные приложения, которые не могут быть написаны в управляемом коде, к примеру, по соображениям быстродействия, например, задействующие высокоскоростную буферизацию данных, могут быть написаны на собственном коде, таком как С или С++, и, по существу, расширять CLR.

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

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

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

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

Перечень чертежей

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

Фиг.2А-2Е - примерные иллюстрации, в целом представляющие местоположения для размещения вспомогательного дисплея на различных устройствах;

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

Фиг.4 - структурная схема, в целом представляющая примерную многоуровневую архитектуру, построенную в соответствии с аспектом настоящего изобретения; и

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

Подробное описание

Примерная рабочая среда

Фиг.1 - структурная схема, представляющая вычислительное устройство 120 в виде традиционной персональной компьютерной системы, в которую может быть включено настоящее изобретение. Специалисты в данной области техники будут принимать во внимание, что персональная компьютерная система 120, изображенная на фиг.1, имеет намерением быть всего лишь иллюстративной, и что настоящее изобретение может быть осуществлено на практике с другими конфигурациями компьютерных систем, в том числе карманными устройствами, многопроцессорными системами, основанной на микропроцессорах или программируемой бытовой электронной аппаратурой, сетевыми персональными компьютерами (ПК, PC), миникомпьютерами, универсальными вычислительными машинами, серверами без устройств отображения и т.п. Изобретение также может быть осуществлено на практике в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки данных, которые связаны через сеть передачи данных. В распределенной вычислительной среде программные модули могут быть расположены как в локальных, так и в удаленных запоминающих устройствах.

Персональная компьютерная система 120 включает в себя модуль 121 обработки данных (процессор), системную память 122 и системную шину 123, которая присоединяет различные системные компоненты, в том числе системную память, к модулю 121 обработки данных. Системная шина 123 может относиться к любому из некоторых типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, используя любую из многообразия шинных архитектур. Системная память включает в себя постоянное запоминающее устройство (ПЗУ, ROM) 124 и оперативное запоминающее устройство (ОЗУ, RAM) 125.

Базовая система 126 ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают передавать информацию между элементами в пределах персонального компьютера 120, к примеру, во время запуска, сохранена в ПЗУ 124. Персональный компьютер 120 дополнительно может включать в себя накопитель 127 на жестких дисках для считывания с и записи на жесткий диск непоказанный, магнитный дисковод 128 для считывания с и записи на съёмный магнитный диск 129 и оптический дисковод 130 для считывания с и записи на съемный оптический диск 131, такой как CD-ROM (ПЗУ на компакт диске) или другие оптические носители. Накопитель 127 на жестких дисках, магнитный дисковод 128 и оптический дисковод 130 подключены к системной шине 123 посредством интерфейса 132 накопителя на жестких дисках, интерфейса 133 магнитного дисковода и интерфейса 134 оптического дисковода, соответственно. Накопители и дисководы и их ассоциированные машиночитаемые носители обеспечивают энергонезависимое хранение для машиночитаемых инструкций, структур данных, программных модулей и других данных для персонального компьютера 120. Несмотря на то, что примерная компьютерная система, описанная в материалах настоящей заявки, применяет жесткий диск, съемный магнитный диск 129 и съемный оптический диск 131, специалистами в данной области техники должно быть принято во внимание, что другие виды машиночитаемых носителей, которые могут сохранять данные, которые являются пригодными для осуществления доступа компьютером, такие как магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи Бернулли, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ) и т.п., также могут быть использованы в примерной компьютерной системе.

Некоторое количество программных модулей может быть сохранено на жестком диске, магнитном диске 129, оптическом диске 131, в ПЗУ 124 или ОЗУ 125, в том числе операционная система 135 (такая как Windows XP), одна или более прикладных программ 136 (таких как Microsoft Outlook), другие программные модули 137 и данные 138 программ. Пользователь может вводить команды и информацию в персональный компьютер 120 через устройства ввода, такие как клавиатура 140 и координатно-указательное устройство 142. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую параболическую антенну, сканнер или тому подобное. Эти и другие устройства ввода часто подключены к модулю 121 обработки данных через интерфейс 146 последовательного порта, который присоединен к системной шине, но могут быть подключены посредством других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 147 или другой вид устройства отображения также подключен к системной шине 123 через интерфейс, такой как видеоадаптер 148. В дополнение к монитору 147 персональные компьютеры в типичном случае включают в себя другие периферийные устройства вывода (не показаны), такие как динамики и принтеры. Вспомогательный дисплей/устройство 200 является дополнительным устройством вывода и, например, может быть подключен к системной шине 123 через интерфейс 155 вспомогательного дисплея.

Вспомогательный дисплей также может подключаться к главному вычислительному устройству 120 через интерфейс последовательного порта или посредством других интерфейсов, таких как параллельный порт, игровой порт, инфракрасное или беспроводное соединение, универсальная последовательная шина (USB) или другое соединение периферийных устройств. Устройство 120 ввода по фиг.1 может предусматривать один или более исполнительных механизмов для сопряжения с и/или управления вспомогательным дисплеем 200 и, например, может быть подключено к системной шине 123 через интерфейс 156 устройства ввода, которым может быть последовательный интерфейс, или посредством других интерфейсов, таких как параллельный порт, игровой порт, инфракрасное или беспроводное соединение, универсальная последовательная шина (USB) или другое соединение периферийного устройства.

Персональный компьютер 120 может работать в сетевой среде с использованием логических соединений с одним или более удаленными компьютерами, такими как удаленный компьютер 149. Удаленный компьютер 149 может быть еще одним персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым устройством или другим общим узлом сети и в типичном случае включает в себя многие или все из элементов, описанных выше относительно персонального компьютера 120, хотя только запоминающее устройство 150 проиллюстрировано на фиг.1. Логические соединения, отображенные на фиг.1, включают в себя локальную сеть (LAN) 151 и глобальную сеть (WAN) 152. Такие сетевые среды являются обычными в офисах, корпоративных компьютерных сетях, сетях Интранет (локальных сетях, основанных на технологиях Интернет) и Интернете.

При использовании в сетевой среде LAN персональный компьютер 120 подключен к локальной сети 151 через сетевой интерфейс или адаптер 153. При использовании в сетевой среде WAN персональный компьютер 120 в типичном случае включает в себя модем 154 или другое средство для установления связи через глобальную сеть 152, такую как Интернет. Модем 154, который может быть внутренним или внешним, подключен к системной шине 123 через интерфейс 146 последовательного порта. В сетевой среде программные модули, изображенные относительно персонального компьютера 120, или их части могут быть сохранены в удаленном запоминающем устройстве. Будет принято во внимание, что показанные сетевые соединения являются примерными, и может быть использовано другое средство установления линии связи между компьютерами.

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

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

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

Фиг.2А-2Е иллюстрируют примерные местоположения на вычислительных устройствах или ассоциируемые с вычислительными устройствами для размещения экранов 200a-200e вспомогательного дисплея, соответственно. Как представлено на фиг.2A и 2B, экран 200a вспомогательного дисплея может быть размещен на передней, задней или на другой поверхности автономного (с наземной линией связи или мобильного) телефона 202 (которому не нужно быть физически соединенным, если соединен иным образом, к примеру, посредством технологии Bluetooth) и/или другого экрана 200b вспомогательного дисплея, размещенного на кромке или крышке мобильного компьютера 204 или планшетного вычислительного устройства (не показано). Другое место для экрана 200с вспомогательного дисплея (фиг.2С) может быть на телефоне, смонтированном на компьютере, или периферийном устройстве, прикрепленном к компьютеру, к примеру, на мониторе 206 или на клавиатуре (не показана). Фиг.2D и 2E иллюстрируют дополнительные размещения экранов 200d и 200e вспомогательного дисплея на передней панели автономной консоли 208, подключенной к компьютеру, или какого-то другого корпуса 210 (такого как корпус для материнской платы), соответственно. Специалисты в данной области техники будут принимать во внимание, что экран вспомогательного дисплея может быть размещен на любой поверхности любого вычислительного устройства или другого устройства, выполненного с возможностью отображения, такого как экран, размещенный на наручных часах с беспроводным или другим соединением с компьютером, на устройстве дистанционного управления, на удаленном смонтированном на стене блоке и т.п. Действительно, вспомогательному дисплею не нужно быть физически близким к главной компьютерной системе, так как соединение может быть через LAN или WAN, или даже по Интернету.

Как должно быть очевидно из фиг.2А-2Е, вспомогательный дисплей может быть в реализован в форме любого количества известных типов дисплеев, таких как один или более светоизлучающих диодов (LED-диодов), 2-строчный буквенно-цифровой дисплей, монохромный дисплей или цветной дисплей. Специалисты в данной области техники будут принимать во внимание, что настоящее изобретение также может использовать дисплей других вычислительных или коммуникационных устройств в качестве вспомогательного дисплея 200. Эти другие вычислительные или коммуникационные связные устройства включают в себя компьютеры общего применения, сотовые телефоны и карманные устройства, такие как пейджер или персональный цифровой секретарь (PDA). Дополнительно настоящее изобретение может использовать виртуальный вспомогательный дисплей, реализованный в пределах области экранного изображения вычислительного устройства 120 (например, экранную заставку или компонент графического интерфейса пользователя) в качестве вспомогательного дисплея 200, в том числе до того, как пользователь осуществил логический вход систему. Вспомогательный дисплей 200 может включать в себя сочетание любых разновидностей, описанных выше, а также быть физически или логически объединенным с индикаторами, такими как один или более LED-диодов, и/или использованным в соединении с виртуальным вспомогательным дисплеем.

Вспомогательное устройство может предоставлять функциональные возможности даже без экрана или когда питание его экрана выключено. Например, вспомогательное устройство может проигрывать звук, собирать данные (например, для более поздней загрузки обратно в главную компьютерную систему), выполнять расчеты и так далее. К тому же дисплей может содержать один или более LED-диодов или тому подобное, а не полный экран. Таким образом, несмотря на то, что возникают многие полезные результаты и преимущества от обладания экраном вспомогательного дисплея, и соответственно вспомогательное устройство может называться в материалах настоящей заявки вспомогательным дисплеем, дисплей не является необходимым. Вообще, вспомогательный дисплей, который упоминается в материалах настоящей заявки, может быть составлен из, по существу, всего что угодно, что может быть воспринято, включая любые воспринимаемые зрением, слышимые и/или тактильные представления. Примеры типов устройств, которые могут служить в качестве вспомогательного устройства отображения, включают в себя отдельную компьютерную систему, дисплеи на крышках переносных компьютеров, мобильные телефоны, малогабаритные персональные компьютеры, основанные на цифровых изображениях изобразительные конструкции, кухонные дисплеи, телевизоры, устройства воспроизведения мультимедийных данных, часы, в том числе, будильники, наручные часы, и так далее. Другие виды устройств включают в себя вспомогательные устройства, встроенные в или использующие главный дисплей устройства бытовой электронной аппаратуры (такой как холодильник, приемник домашнего кинотеатра, DVD-проигрыватель и т.п.), настенные дисплеи, автомобильные, транспортные или другие предназначенные для транспортных средств модули (например, использующие дисплеи, уже находящиеся в автомобиле/поезде/самолете, в качестве вспомогательного дисплея), клавиатуры или другие устройства ввода главной компьютерной системы, PDA-секретари (в том числе, PDA, не относящиеся к сотовым телефонам) и тому подобного.

Расширяемая архитектура для вспомогательных дисплеев

Обращаясь к фиг.3 чертежей, показана примерная реализация, которая предоставляет вспомогательные устройства 300 и/или 301 для взаимодействия клиентам, содержащим прикладные программы 302 и другие программы (например, компоненты операционной системы), посредством набора 304 API вспомогательного дисплея. Набор 304 API предоставляет API-интерфейсы для различных функций, в том числе регистрации клиентского приложения 306 (компонента программы или, возможно, самой программы) системой, отправки контента прикрепленным устройствам, оправки уведомлений прикрепленным устройствам и приема событий от прикрепленных устройств. События могут включать в себя навигационные события, события запроса контента, события изменения контента (информационно значимого содержимого) и так далее.

Уровень 304 API записан в наборе 310 API портативного устройства, который осуществляет связь с процессом драйвера устройства через инфраструктуру 312 драйверов пользовательского режима. Набор 310 API портативного устройства устанавливает соответствие вспомогательного дисплея категории портативных устройств, и он делает возможным перечисление возможностей устройства. Это, однако, инкапсулировано в пределах драйвера пользовательского режима и не открыто для клиентского приложения 306. Другие (необязательные) компоненты, показанные на фиг.3, включают в себя клиент 316 уведомлений, который может предоставлять уведомления на вспомогательном дисплее. Например, даже когда прикладная программа, такая как программа календаря, не работает, может быть желательным предоставлять запланированные уведомления, соответствующие такой программе; клиент 316 уведомлений дает возможность таких сценариев.

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

При любом событии инфраструктура драйверов пользовательского режима предусматривает интерфейс драйверов устройств (DDI) для сопряжения драйверов устройств (например, 324 и 325) с платформой вспомогательного дисплея. Драйверы затем пересылают (и возвращают) данные, соответствующие принятой через API информации, предопределенному интерфейсу (транспортному элементу) аппаратных средств для передачи данных вспомогательному устройству отображения. Например, на фиг.3 драйвер 324 устройства показан как пересылающий данные (посредством заранее определенного протокола) в удаленные стек и драйвер 327 для беспроводной (например, Bluetooth, Wi-Fi, AM/FM (с амплитудной/частотной модуляцией), инфракрасной и т.п.) связи устройству 300, тогда как драйвер 325 устройства показан как пересылающий данные в основанные на USB аппаратные средства 328, хотя пригодны другие типы транспортных протоколов, в том числе сетевые транспортные протоколы, такие как основанные на TCP/IP (протоколе управления передачей/межсетевом протоколе) транспортные протоколы. Заметим, что драйвер пользовательского режима может работать для всех расширенных дисплеев, невзирая на тип соединения, однако, вероятно, является более простым использовать один драйвер для каждого устройство по каждому типу соединения. Дополнительно отметим, что, как представлено на фиг.3, многочисленные устройства могут быть присоединены к компьютеру, чтобы вместе служить в качестве вспомогательного дисплея. Пользователь может задавать конфигурацию (например, посредством панели управления или ей подобного от поставщиков 308 системных данных) того, какие данные клиентского приложения отображаются и на каких устройствах. Поставщик 308 системных данных также поставляет системную информацию, такую как данные о времени, данные об уровне радиосигнала и/или данные об уровне заряда аккумулятора, на вспомогательные дисплеи.

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

В примерной реализации, представленной на фиг.3, чтобы осуществлять навигацию и отображать кэшированный контент, приложения 369 устройства и программная оболочка 370 дополнительно исполняются поверх инфраструктуры 374 TinyCLR и компонента 376 среды исполнения TinyCLR, которые осуществляют интерпретацию, навигацию и отображение данных. Компонент 376 среды исполнения TinyCLR показан поверх, по меньшей мере, одного драйвера 377 и TinyHAL, как описано ниже со ссылкой на фиг.4.

Вообще, программная оболочка 370 обеспечивает базовую страницу, неклиентскую область, меню и общее впечатление и ощущение от использования вспомогательного устройства отображения. Предоставленные данные могут быть в виде направленного графа экранов или приведены к направленному графу экранов, каждый из которых является наглядным деревом объектов View TinyCLR, укорененных объектом Form TinyCLR. Уровень оболочки принимает события кнопочных элементов с более низких уровней микропрограммного обеспечения, интерпретирует их и осуществляет навигацию по данным надлежащим образом. Программная оболочка 370 также допускает запросы уведомлений от главной компьютерной системы через платформу вспомогательного дисплея, которая описана выше, и выдает запросы в главную компьютерную систему на предоставление нового контента, когда она узнает от менеджера 372 кэширования, что контент необходим (например, находится в недостатке). Программная оболочка 370 также отображает задержанные уведомления, которые могут случаться, когда главная компьютерная система не подсоединена. Заметим, что машина 370 визуализации также может быть расширяемой так, чтобы приложение могло предоставлять заказной код, который выполнен с возможностью визуализации данных таких приложений.

Автономный менеджер 327 кэширования содержит средство, написанное поверх TinyCLR 376, которое управляет кэшем элементов данных, сохраненных в устройстве. Этот компонент, к тому же, выполняет некоторое управление памятью, имея дело с тем фактом, что системные прикладные программы могут поставлять больше данных, чем устройство может сохранить. Если микропрограммное обеспечение модифицирует кэш данных, этот компонент отслеживает такую информацию и сообщает о событии прикладной программе в системе, чтобы дать ей знать либо немедленно, если главная компьютерная система на связи, либо, если не на связи, когда машина снова окажется на связи. Менеджер кэша может быть открыт для взаимодействия драйверу 360 через интерфейс.

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

Более точно, в дополнение к панели или контроллеру 490 дисплея, вспомогательному процессору 491 и памяти 492 производителем устройства добавляются расширенные аппаратные средства 493, чтобы конфигурировать устройство по специальным требованиям заказчика. Примеры конфигурирования по специальным требованиям заказчика включают в себя интегрирование в устройство одного или более из следующего, к примеру SPOT-радио, Bluetooth-радио, GPS-приемника, датчика температуры, звукового декодера, кодера звука, дополнительного запоминающего устройства, биометрического датчика, такого как считыватель отпечатков пальцев, акселерометра, RFID-ярлыков/считывателя, датчика присутствия, интерфейса к массивам запоминающих устройств/управлению системой (например, доступа к системной шине, такой как SMbus (системная управляющая шина в процессорах Xeon), который может предоставить системную информацию, или доступ к большим массивам запоминающих устройств), аккумулятора (например, собственного источника питания устройства вместо совместно используемого с главной компьютерной системой), инфракрасного приемопередатчика, радиочастотного передатчика (например, пульта дистанционного радиоуправления), микрофона и/или других аппаратных средств, таких как индикаторы. Как будет понятно, производители могут конфигурировать компоненты аппаратных средств по специальным требованиям заказчика таким образом, который требует всего лишь в значительной степени сниженного (например, минимального, если вообще какого бы то ни было) количества изменений по отношению к стеку микропрограммного обеспечения вспомогательного устройства.

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