ИНТЕРФЕЙС ДЛЯ УСТРОЙСТВА ВВОДА ДАННЫХ Российский патент 2004 года по МПК G06F3/23 

Описание патента на изобретение RU2233468C2

Настоящее изобретение относится к устройству ввода данных, в частности клавиатуре и любому иному устройству, которое совместимо с универсальной последовательной шиной (USB от англ. "Universal Serial Bus"), и может работать в нескольких режимах.

Во многих прикладных системах, таких как кассовые терминалы, предназначенные для расчета по магнитным карточкам, используются персональные компьютеры, к которым подключаются самые разнообразные устройства, такие как сканеры, выдвижные ящики с наличными деньгами, видеомониторы, принтеры и клавиатуры. В кассовых терминалах обычно применяется не традиционно используемая с персональными компьютерами клавиатура (т.е. "стандартная клавиатура" для ввода "стандартных данных путем нажатия на клавиши"), а клавиатура, имеющая более 112 клавиш. Дополнительные клавиши клавиатуры, применяемой в кассовом терминале. позволяют вводить "нестандартные данные путем нажатия на клавиши", например команды управления кассовым аппаратом, а также другие команды, непосредственно связанные с работой кассового терминала и выполнением через него расчетов. В большинстве подобных кассовых терминалов используются стандартные операционные системы, такие как DOS, Windows 3.11, Windows 9x или Windows NT. В таких терминалах применяется также система специализированного программного обеспечения или относящаяся к "промежуточному уровню" система программных драйверов и программ, которая занимает промежуточный уровень между операционной системой и прикладными программами для кассового терминала. Подобная система драйверов и программ известна в данной области техники как подсистема кассового терминала (ПСКТ). Указанные системы относятся к системам "промежуточного уровня", поскольку они загружаются в память компьютера после загрузки операционной системы, но перед загрузкой прикладных программ. В состав ПСКТ входят дополнительные драйверы и функциональные средства, необходимые для управления аппаратными средствами и оборудованием, применяемым исключительно в кассовых терминалах, таким как контрольные сканеры и выдвижные ящики с наличными деньгами, и для их работы.

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

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

С учетом всего сказанного выше в кассовом терминале целесообразно было бы использовать клавиатуру, которая могла бы работать в нескольких режимах, т.е. в первом режиме, допускающем использование такой клавиатуры в качестве стандартной клавиатуры, и одном или нескольких дополнительных режимах, допускающих использование этой клавиатуры непосредственно в качестве клавиатуры, предназначенной для выполнения конкретных функций, предусмотренных назначением кассового терминала, а именно во втором или третьем режиме работы. Первый режим предпочтительно использовать для обновления и загрузки программного обеспечения "нижнего уровня", такого как базовая система ввода-вывода (BIOS or англ. "basic input-output system"), операционная система и система диагностики. Если клавиатура не способна работать как стандартная клавиатура, то в некоторых случаях для обновления программного обеспечения нижнего уровня потребовалось бы использовать другую клавиатуру. Помимо этого необходимо обеспечить возможность простого переключения такой клавиатуры с одного режима работы на другой.

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

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

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

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

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

Согласно одному из предпочтительных вариантов в компьютерной системе предлагается использовать клавиатуру, которая может работать в трех функциональных режимах, предпочтительно USB-совместимых режимах. Первый, или стандартный, режим работы представляет собой стандартный режим работы USB-совместимой клавиатуры, при работе в котором поддерживается ввод данных лишь со стандартных клавиш компьютерной клавиатуры, а также поддерживается управление светоизлучающими диодами (СИД). В этом режиме работы дополнительные функциональные клавиши клавиатуры кассового терминала относятся к особым клавишам, которые включены и стандарты USB (Universal Serial Bus Specifications (спецификации на универсальную последовательную шину), пересмотренное и исправленное издание 1.1, 23 сентября 1998 г.), но отсутствуют на стандартной клавиатуре ПК, таким как клавиши F13, F14, "mute" ("выключение звука") и т.д. Такие стандартные клавиши, имеющиеся у клавиатуры в данном режиме работы, могут использоваться любым прикладным программным обеспечением, не зависящим от функциональных клавиш клавиатуры кассового терминала. Таким образом, пользователь может обновлять систему BIOS, пользоваться операционной системой DOS или другими функциями, при этом перед использованием клавиатуры не требуется загружать драйвер относительно более высокого уровня.

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

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

Возможность работы клавиатуры в рассмотренных выше режимах обеспечивается благодаря тому что (1) в программно-аппаратных средствах ("зашитых программах") клавиатуры предусмотрены дополнительные системные программы, которые позволяют клавиатуре идентифицировать себя в качестве иного USB-совместимого устройства, и (2) в хост-машине наряду со стандартными драйверами USB (т.е. драйверами, входящими в состав с операционной системы) имеются дополнительные программные драйверы. Такие дополнительные драйверы позволяют создавать в памяти хост-машины дополнительные стеки данных, которые могут работать независимо от стандартного стека данных USB. Дополнительно предусмотрены также аппаратные средства, благодаря которым USB-совместимая хост-машина принудительно вносит клавиатуру в список новых устройств и идентифицирует ее как новое устройство, что позволяет клавиатуре переключаться между различными режимами работы.

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

на фиг.1 - схема выполненной по одному из вариантов хост-системы обработки данных, имеющей интерфейс USB и USB-совместимую клавиатуру,

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

на фиг.3 - схема USB-совместимой клавиатуры, выполненной по одному из вариантов,

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

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

На фиг.1 схематично показан компьютер, имеющий главное вычислительное устройство или хост-процессор, называемый также центральным процессором (ЦП) 101. Необходимые для работы ЦП 101 программы, команды и данные считываются в оперативное запоминающее устройство (ОЗУ) 106. ЦП 101 по информационной шине обменивается также данными с хост-контроллером 102. Этот хост-контроллер 102 взаимодействует с USB-совместимыми устройствами, соединенными с соответствующей USB-сетью или шиной, т.е. со средствами передачи данных, и управляет этими устройствами. В рассматриваемом варианте хост-контроллер 102 управляет USB-совместимой клавиатурой 105. Остальные устройства, которые не работают в стандарте USB, такие как монитор 104, накопители на жестких дисках, принтеры, подключаемые через параллельный порт, модемы, подключаемые через последовательный порт, и т.д., взаимодействуют с ЦП 101 через подсистему 103 ввода-вывода. Эта подсистема 103 ввода-вывода имеет множество различных портов для взаимодействия с различными периферийными устройствами компьютера.

После загрузки в ОЗУ 106 необходимых драйверов и имеющих определенную структуру данных хост-контроллер 102 разрешает ЦП 101 выдать на USB-совместимое устройство команду на логическое отсоединение от хост-контроллера 102 USB и повторное подключение к нему как иное устройство. Хотя USB-совместимое устройство физически и остается подключенным через тот же самый аппаратный интерфейс, со стороны главного вычислительного устройства подобная операция расценивается как отключение исходного устройства и подключение вместо него другого, "нового" USB-совместимого устройства. Это "новое" устройство взаимодействует с другой частью стека данных о USB-совместимых устройствах в ОЗУ 106 через другой программный интерфейс USB.

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

На фиг.2 показана функциональная схема стеков данных, созданных в ОЗУ 106 главного вычислительного устройства (хост-компьютера). Взаимодействие между прикладной программой, ПСКТ, операционной системой и микропроцессором осуществляется через стек данных или канал связи. Структуры данных представляют собой организационные схемы, в соответствии с которыми различные подпрограммы и программы могут выполнять конкретные операции с данными.

Для поиска и маршрутизации всех данных USB-совместимым устройством из класса АЧМИ используется соответствующий драйвер 202 устройств, относящихся к классу АЧМИ. Поступающие по USB-шине данные от USB-совместимых устройств передаются в концентратор USB или в хост-контроллер USB либо в подсистему, такую как хост-контроллер 102 USB, показанный на фиг.1, и затем после обработки программами нижнего уровня или драйверами, такими как драйвер 202 устройств из класса АЧМИ, поступают в память хост-компьютера, т.е. в ОЗУ 106. В типичной операционной системе, такой как Windows NT, обычные компьютерные клавиатуры работают в режиме "самозагрузки". Данные, вводимые с работающей в режиме "самозагрузки" клавиатуры, по каналу 203 передачи данных передаются драйверу 204 USB-совместимой клавиатуры, который представляет собой стандартный драйвер, рассчитанный на взаимодействие с клавиатурами. Драйвер 204 USB-совместимой клавиатуры по каналу 205 передачи данных передает далее вводимые с клавиатуры данные драйверу 206 устройств, относящихся к классу USB-совместимых клавиатур. Драйвер 204 USB-совместимой клавиатуры является обычно входящим в операционную систему драйвером клавиатуры, работающей в режиме "самозагрузки". Драйвер 204 USB-совместимой клавиатуры не распознает нажатий на конкретные клавиши клавиатуры кассового терминала. Драйвер 206 является драйвером устройств, относящихся к классу клавиатур. Этот драйвер предназначен для управления всеми функциями, связанными с клавиатурой. Несмотря на то что такой драйвер предназначен для конкретной операционной системы, обычно он не зависит от типа шины клавиатуры (например, PS/2 или USB). Таким образом, драйвер 206 устройств, относящихся к классу USB-совместимых клавиатур, является универсальным драйвером устройств из класса клавиатур, поддерживающим подключаемые к системе и через USB, и через другие порты клавиатуры. С другой стороны, драйвер 204 USB-совместимой клавиатуры используется лишь с USB-совместимым клавиатурами, работающими в режиме "самозагрузки". Драйвер 206 устройств, относящихся к классу USB-совместимых клавиатур, является используемым по умолчанию драйвером, который обеспечивает работу клавиатуры без использования каких-либо специальных программных драйверов.

От драйвера 206 устройств, относящихся к классу USB-совместимых клавиатур, данные по каналу 207 передачи данных передаются далее в очередь 208 сообщений операционной системы. Операционная система взаимодействует с прикладной программой 210 или 212 посредством сообщений, которые содержатся в очереди. Очередь 208 сообщений является основной входной очередью для операционной системы. В эту очередь помещаются вводимые при нажатии на клавиши клавиатуры данные, а также другие входные сообщения, соответствующие различным операциям, связанным с вводом данных, например операциям, связанным с движением мыши, изменением размера окна графического интерфейса или перемещением изображения на экране монитора. Из очереди 208 сообщений операционной системы данные передаются далее по каналу 209 передачи данных связанному с выполнением расчетов через кассовый терминал приложению 210 либо обычному (не связанному с выполнением расчетов через кассовый терминал) приложению 212, которое может работать в соответствующей операционной системе. Передача данных из очереди 208 сообщений операционной системы в обычное (не связанное с выполнением расчетов через кассовый терминал) приложение 212 осуществляется по каналу 213. Поток данных, передаваемых по каналам 203, 205 и 213 от драйвера 202 устройств, относящихся к классу АЧМИ, приложению 212, называют стеком данных.

Подобный стек данных, образуемый каналами 203, 205 и 213 передачи данных, известен как стандартный стек USB операционной системы, работающей в "режиме самозагрузки". Через такой стек данных в прикладную программу 212 поступают лишь данные, соответствующие нажатиям на стандартные клавиши компьютерной клавиатуры. Такой стек данных использует стандартные драйверы операционной системы. В этом отношении согласно настоящему изобретению при использовании указанного стека клавиатура работает в режиме, соответствующем режиму работы обычной компьютерной клавиатуры. Следовательно, в этом режиме компьютер не реагирует на нажатия на дополнительные функциональные клавиши, относящиеся к выполнению безналичных расчетов через кассовый терминал, поскольку стандартные драйверы операционной системы не распознают нажатия на такие дополнительные функциональные клавиши клавиатуры кассового терминала.

Во втором режиме, отличном от режима "самозагрузки", стандартные данные, вводимые нажатием на клавиши, передаются в часть стандартного стека USB, тогда как относящиеся к выполнению расчетов через кассовый терминал данные, такие как данные, считываемые сканером для кредитных карт (СКК) с имеющейся у них магнитной полосы и связанные с функциями кассового терминала данные (данные, относящиеся к управлению светоизлучающими диодами, блокировкой клавиш, дисплеем и т.д.), передаются через новые стеки данных. В этом режиме все данные по каналу 215 передаются от драйвера 202 устройств, относящихся к классу АЧМИ, драйверу 214 USB-совместимой клавиатуры кассового терминала. Использование драйвера 214 USB-совместимой клавиатуры кассового терминала предпочтительно из-за необходимости синхронизировать вводимые нажатием на стандартные клавиши и относящиеся к выполнению расчетов через кассовый терминал данные. Иными словами, драйвер 214 USB-совместимой клавиатуры кассового терминала является альтернативой драйверу 204 USB-совместимой клавиатуры. Драйвер 214 USB-совместимой клавиатуры кассового терминала направляет данные в зависимости от их типа по трем различным маршрутам. При передаче по первому маршруту вводимые нажатием на клавиши данные передаются в обход драйвера 204 USB-совместимой клавиатуры и поступают в стек USB Microsoft в нижнюю часть драйвера 206 устройств, относящихся к классу USB-совместимых клавиатур. Таким образом, стек для данных, вводимых нажатием на клавиши в режиме, отличном от режима самозагрузки, определяется каналами 215, 217, 207 и 209 передачи данных. Данные второго типа, т.е. данные, считываемые сканером для кредитных карт (СКК-данные), поступают по каналу 219 в подпрограммы обработки СКК-данных, входящие в состав подсистемы 216 кассового терминала (ПСКТ). Данные третьего типа, т.е. связанные с функциями кассового терминала данные, передаются по каналу 221 во входящие в состав ПСКТ 216 подпрограммы обработки данных, вводимых с клавиатуры. При необходимости ПСКТ 216 передает СКК-данные и связанные с функциями кассового терминала данные в прикладную программу по каналу 225. Таким образом, драйвер 214 USB-совместимой клавиатуры кассового терминала используется для управления данными, вводимыми с клавиатуры в режиме, отличном от режима самозагрузки (т.е. данными, вводимыми при нажатии на стандартные клавиши персонального компьютера и клавиши, относящиеся к выполнению расчетов через кассовый терминал). Отличный от режима самозагрузки режим в дополнение к связанным с выполнением расчетов через кассовый терминал функциям клавиатуры поддерживает ввод данных через стандартные клавиши компьютера и специальные клавиши кассового терминала. Таким образом, в этом режиме пользователь помимо прикладных программ, связанных с функциями кассового терминала, может работать с обычными прикладными программами.

В третьем режиме ("обычном режиме") все вводимые с клавиатуры данные передаются в обход стандартных драйверов и стандартного стека USB. В этом режиме драйвер 202 устройств, относящихся к классу АЧМИ, передает данные по каналу 218 драйверу 214 USB-совместимой клавиатуры кассового терминала. Драйвер 214 USB-совместимой клавиатуры кассового терминала направляет весь поток вводимых с клавиатуры данных в обход стека USB операционной системы (т.е. в обход драйвера 204 USB-совместимой клавиатуры, драйвера 206 устройств, относящихся к классу USB-совместимых клавиатур, и очереди 208 сообщений операционной системы). Драйвер 214 USB-совместимой клавиатуры кассового терминала передает СКК-данные по каналу 219 во входящие в состав ПСКТ 216 подпрограммы обработки СКК-данных. Данные, управляющие блокировкой клавиш, и данные, управляющие светоизлучающими диодами кассового терминала, передаются по каналу 221 во входящие в состав ПСКТ 216 подпрограммы обработки вводимых с клавиатуры данных. Данные, вводимые нажатием на клавиши в обычном режиме, передаются по каналу 223 во входящие в состав ПСКТ 216 подпрограммы обработки вводимых с клавиатуры данных. Этот режим в дополнение к вводу данных через специальные клавиши кассового терминала и в дополнение к любым другим связанным с выполнением расчетов через кассовый терминал функциям клавиатуры поддерживает ввод данных через стандартные клавиш компьютера. При работе в этом третьем режиме клавиатура не взаимодействует непосредственно с программами для Windows, не относящимися к выполнению расчетов через кассовый терминал. При этом ПСКТ 216 будет взаимодействовать только с той связанной с выполнением расчетов через кассовый терминал прикладной программой, которая была зарегистрирована этой подсистемой ПСКТ 216. Преимущество такого режима работы состоит в том, что пользователь не может получить доступ к тем прикладным программам хост-компьютера, которые не относятся к выполнению расчетов через кассовый терминал.

На фиг.3 показана схема, иллюстрирующая особенности внутреннего устройства системы управления и аппаратных средств клавиатуры. Показанная на фиг.1 клавиатура 105 взаимодействует с ЦП 101 через кабель для подключения к USB-порту (не показан). Клавиатура 105 имеет целый ряд обычных компонентов, таких как микроконтроллер/USB-интерфейс 304, переключательную матрицу и схему 310 сопряжения, цифровую память 306 и/или 308 и регулятор 302 напряжения. Цифровая память может представлять собой флэш-память, постоянное запоминающее устройство (ПЗУ) 306 или запоминающее устройство с произвольной выборкой (ЗУПВ) 308. Работой клавиатуры в первую очередь управляет микроконтроллер/USB-интерфейс 304, срабатывающий в ответ на считываемые из ПЗУ 306 команды или операционную логику. Подобную хранящуюся в памяти логику называют также встроенной программой ("зашитой программой"). В ЗУПВ 308 хранится информация, введенная пользователем, а также программные переменные, используемые в процессе работы микроконтроллером/USB-интерфейсом 304.

Микроконтроллер/USB-интерфейс 304 является периферийным микроконтроллером для приложений USB. Такие микроконтроллеры имеют встроенный в кристалл модуль USB. Такой модуль USB при его работе во взаимодействии с микроконтроллером известным образом задает функциональные возможности USB-совместимого устройства. Mикpoкoнтpoллep/USB-интepфeйc 304 оснащен также контрольным таймером 307. Этот контрольный таймер 307 представляет собой схему, которая автоматически устанавливает микроконтроллер/USB-интерфейс в исходное состояние 304 в случае неудачного или неправильного завершения выполняемой операции. Контрольный таймер 307 активизируется по соответствующей команде, поступающей от встроенной программы, хранящейся в ПЗУ 306, и при отсутствии вмешательства со стороны этой встроенной программы переполняется и инициирует сброс объединенных в общую микросхему микpoкoнтpoллepa/USB-интepфeйca 304. Таким путем осуществляется установка микpoкoнтpoллepa/USB-интepфeйca 304 в исходное состояние. При нормальной работе микроконтроллера/USB-интерфейса встроенная программа во избежание их сброса периодически обнуляет показания контрольного таймера 307.

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

На фиг.4 показана блок-схема, на которой представлена последовательность операций, выполняемых при работе предлагаемого в изобретении устройства. Показанные на фиг.4 операции по обработке данных представляют собой согласно одному из вариантов операции, выполняемые драйвером 214 USB-совместимой клавиатуры кассового терминала. Рассмотренная ниже процедура начинается с шага 402, на котором драйвер 214 USB-совместимой клавиатуры кассового терминала вызывает конкретную подпрограмму. В ходе предварительного поиска на шаге 404 проверяется, подсоединены ли к USB-порту стандартные (работающие в режиме самозагрузки) клавиатуры. При выявленном на шаге 404 наличии таких стандартных (работающих в режиме самозагрузки) клавиатур, подсоединенных к USB-порту, на следующем шаге 406 путем проверки переданного от клавиатуры через USB-интерфейс дескриптора устройства определяется наличие среди таких клавиатур многофункциональной клавиатуры (т.е. клавиатуры, допускающей ее работу в нескольких режимах). Если на шаге 404 или шаге 406 будет получен отрицательный результат, то это свидетельствует об отсутствии подключенной к системе многофункциональной клавиатуры, и оставшаяся часть подпрограммы не выполняется. Хост-компьютер может работать в первом режиме, т.е. в режиме самозагрузки, в котором используются стандартные драйверы, стеки данных и структуры данных. Если же на шаге 406 будет установлено наличие многофункциональной клавиатуры, то на следующем шаге 408 ЦП 101 посылает в многофункциональную клавиатуру команду на смену режима ее работы. В ответ на эту команду на смену режима в многофункциональное клавиатуре выполняется проиллюстрированная на фиг.5 подпрограмма, в соответствии с которой клавиатура логически отсоединяется от сети USB, а затем повторно подсоединяется к сети. После такого повторного подсоединения клавиатура идентифицирует себя как иное USB-совместимое устройство, т.е. как клавиатура кассового терминала. На шаге 410 операционная система с помощью технологии Plug and Play ("включай и работай") распознает подключенную к компьютерной системе клавиатуру кассового терминала. На шаге 412 драйвер 202 устройств, относящихся к классу АЧМИ, уведомляет приложение(я) о готовности клавиатуры к использованию (т.е. о наличии готового к работе устройства). Процедура смены режима работы клавиатуры завершается на шаге 414, после которого продолжается выполнение обычных процедур и прикладной программы.

Последовательность операций, выполняемых клавиатурой в ответ на поступившую от хост-компьютера команду на смену режима работы, проиллюстрирована на блок-схеме, показанной на фиг.5. Выполнение этой последовательности операций начинается на шаге 502. Команда на смену режима работы, переданная от ЦП 101 на шаге 408, поступает на шаге 504 в микроконтроллер/USB-интерфейс 304. На следующем шаге 506 микроконтроллер/USB-интерфейс 304 записывает в ЗУПВ 308 определенную битовую комбинацию с целью идентифицировать следующий режим работы (с целью согласовать режим работы со структурой данных, присутствующей в ЦП 101). На шаге 508 микроконтроллер/USB-интерфейс 304 прекращает посылать в контрольный таймер 307 сигналы, по которым обнуляются его показания. Затем на следующем шаге 510 контрольный таймер 307 в результате его переполнения инициирует сброс микросхемы. После такого сброса микроконтроллер/USB-интерфейс 304 на следующем шаге 512 считывает из ЗУПВ 308 ранее записанную в него битовую комбинацию с целью определить предполагаемый режим работы. На основании полученного на шаге 512 результата микроконтроллер/USB-интерфейс 304 на следующем шаге 513 переключается на новый режим работы и после этого на шаге 514 передает в хост-компьютер новый дескриптор устройства или идентификационный код. Поскольку в каждом режиме работы имеется отличный от других дескриптор устройства, ЦП 101 воспринимает клавиатуру как иное устройство. В результате при выполнении операции по повторному подсоединению к хост-компьютеру (шаг 410 на фиг.4) клавиатура переподключается к хост-компьютеру как новое устройство, после чего на шаге 516 выполнение подпрограммы по смене режима работы клавиатуры завершается.

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

Возможность работы клавиатуры кассового терминала в нескольких режимах позволяет также идентифицировать такую клавиатуру как стандартную клавиатуру. Режим, в котором клавиатура работает как стандартная клавиатура, предпочтительно использовать для обновления и загрузки программного обеспечения "нижнего уровня", такого как BIOS и операционная система. Если же клавиатура кассового терминала не способна работать как стандартная клавиатура, то для обновления программного обеспечения нижнего уровня требуется использовать другую (стандартную) клавиатуру.

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

Похожие патенты RU2233468C2

название год авторы номер документа
ОБЕСПЕЧЕНИЕ ЗАЩИЩЕННОГО ВВОДА В СИСТЕМУ С ВЫСОКОНАДЕЖНОЙ СРЕДОЙ ИСПОЛНЕНИЯ ПРОГРАММ 2004
  • Чу Кристин М.
  • Ямамото Хирофуми
  • Аврахэм Идан
  • Пафф Джон Е.
  • Робертс Пол К.
RU2365988C2
ПРОЦЕДУРЫ ЗАГРУЗКИ ДЛЯ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ 2004
  • Кураиши Надим Ахмад
  • Лэм Рекс Йинзок
  • Пикеринг Роберт Лилэнд
  • Куна Венката Дхананджайа
  • Пэтил Сангшетти
  • Лимэй Стивен Дж.
RU2331928C9
АРХИТЕКТУРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ USB В ИГРОВОЙ МАШИНЕ 2004
  • Лэм Рекс Йинзок
  • Кураиши Надим Ахмад
  • Лимэй Стивен Дж.
RU2331927C9
ПЛАТЕЖНЫЙ ТЕРМИНАЛ С ИСПОЛЬЗОВАНИЕМ МОБИЛЬНОГО КОММУНИКАЦИОННОГО УСТРОЙСТВА, ТАКОГО КАК МОБИЛЬНЫЙ ТЕЛЕФОН, И СПОСОБ БЕЗНАЛИЧНЫХ ПЛАТЕЖЕЙ 2010
  • Флорек Мирослав
  • Масарык Михал
  • Риффелмачер Давид Алан
RU2543935C2
ПРОТОКОЛЫ И СТАНДАРТЫ ДЛЯ КОММУНИКАЦИЙ С USB-ПЕРИФЕРИЕЙ 2004
  • Кураиши Надим Ахмад
  • Лэм Рекс Йинзок
  • Пикеринг Роберт Лилэнд
  • Куна Венката Дхананджайа
  • Пэтил Сангшетти
  • Лимэй Стивен Дж.
RU2331926C9
СПОСОБ И УСТРОЙСТВО ОСУЩЕСТВЛЕНИЯ ФИНАНСОВЫХ СДЕЛОК 1996
  • Уоллнер Джордж
RU2134901C1
БЕЗОПАСНАЯ СВЯЗЬ С КЛАВИАТУРОЙ ИЛИ РОДСТВЕННЫМ УСТРОЙСТВОМ 2004
  • Пейнадо Маркус
  • Бенало Джош
RU2371756C2
УСТРОЙСТВО И СПОСОБ ДЛЯ ИДЕНТИФИКАЦИИ И АУТЕНТИФИКАЦИИ 2007
  • Эхренсверд Якоб
  • Эхренсверд Стина
RU2469391C2
РАСШИРЯЕМАЯ АРХИТЕКТУРА ДЛЯ ВСПОМОГАТЕЛЬНЫХ ДИСПЛЕЕВ 2005
  • Фуллер Эндрю Дж.
  • Поливи Дэниел Дж.
  • Ротен Мэттью П.
  • Бернстейн Майкл С.
  • Уинн Роджер Х.
RU2406119C2
СИСТЕМА БАНКОМАТА И СПОСОБ ЕЕ ОСУЩЕСТВЛЕНИЯ 2001
  • Миллер Грегори Р.
  • Путман Гарольд В.
  • Клингширн Дэйл
  • Шэйн Анна
  • Тримбл Питер
RU2253150C2

Иллюстрации к изобретению RU 2 233 468 C2

Реферат патента 2004 года ИНТЕРФЕЙС ДЛЯ УСТРОЙСТВА ВВОДА ДАННЫХ

Изобретение относится к устройству ввода данных. Технический результат заключается в разработке USB-совместимой клавиатуры нестандартного типа. Система содержит вычислительное устройство, операционную систему, систему специализированного программного обеспечения, выполняемого одновременно с указанной операционной системой, способной выполнять специализированное прикладное программное обеспечение, информационную шину, клавиатуру со стандартными клавишами и схемы, обеспечивающие взаимодействие между указанными стандартными клавишами и стандартными прикладными программами в первом режиме работы, причем клавиатура дополнительно имеет нестандартные клавиши, при этом предусмотрены каналы передачи данных, обеспечивающие взаимодействие между стандартными клавишами и стандартными прикладными программами и специализированным прикладным программным обеспечением во втором режиме работы, а также каналы передачи данных, обеспечивающие взаимодействие между нестандартными клавишами и специализированным прикладным программным обеспечением. 3 н. и 7 з.п. ф-лы, 5 ил.

Формула изобретения RU 2 233 468 C2

1. Компьютерная система, имеющая вычислительное устройство (101), операционную систему (208), выполняемую на этом вычислительном устройстве, способным выполнять также стандартные прикладные программы (212), а также имеющая систему (216) специализированного программного обеспечения (216), выполняемого одновременно с указанной операционной системой, способной выполнять специализированное прикладное программное обеспечение (210), информационную шину, связанную с вычислительным устройством, клавиатуру (105) со стандартными клавишами и схемы, обеспечивающие взаимодействие (203, 205, 207, 213) между указанными стандартными клавишами и стандартными прикладными программами в первом режиме работы, отличающаяся тем, что клавиатура дополнительно имеет нестандартные клавиши, связанные с информационной шиной, при этом предусмотрены каналы (215, 217, 207, 209, 213) передачи данных, обеспечивающие взаимодействие между стандартными клавишами и стандартными прикладными программами и специализированным прикладным программным обеспечением во втором режиме работы, а также каналы (215, 219, 221, 225) передачи данных, обеспечивающие взаимодействие между нестандартными клавишами и специализированным прикладным программным обеспечением.2. Компьютерная система по п.1, имеющая также каналы (218, 221, 223, 225) передачи данных, обеспечивающие взаимодействие между стандартными, а также нестандартными клавишами и специализированным прикладным программным обеспечением в третьем режиме работы.3. Компьютерная система по п.1, в которой информационная шина представляет собой универсальную последовательную шину (USB-шину).4. Компьютерная система по п.1, в которой клавиатура (105) имеет схемы, обеспечивающие взаимодействие с информационной шиной, когда вычислительное устройство работает в первом, втором и третьем режимах, и схемы для переключения между этими режимами работы.5. Компьютерная система по п.3, в которой клавиатура имеет также микроконтроллер (304) и запоминающее устройство с произвольной выборкой (ЗУПВ) (308), а схемы для переключения между режимами работы имеют схемы, осуществляющие запись битовой комбинации в ЗУПВ для установления нового режима работы, схемы, осуществляющие сброс микроконтроллера, схемы, осуществляющие считывание битовой комбинации из ЗУПВ, и схемы, осуществляющие передачу в хост-компьютер нового идентификационного кода, основанного на указанной битовой комбинации.6. Совместимое с универсальной последовательной шиной (USB-совместимое) устройство (105) для ввода данных в хост-компьютер (101), имеющее узел USB и встроенный контроллер (304), имеющий систему управления, которая связана с указанным узлом USB и выполнена с возможностью работы в стандартном USB-совместимом режиме и нестандартном USB-совместимом режиме.7. USB-совместимое устройство (105) по п.6, имеющее схемы, обеспечивающие взаимодействие с указанным узлом USB, когда хост-компьютер работает в стандартном USB-совместимом режиме и нестандартном USB-совместимом режиме, и схемы для переключения между этими режимами работы.8. USB-совместимое устройство (105) по п.6, имеющее также микроконтроллер (304) и ЗУПВ (308), при этом схемы для переключения между режимами работы имеют схемы, осуществляющие запись битовой комбинации в ЗУПВ для установления нового режима работы, схемы, осуществляющие сброс микроконтроллера, схемы, осуществляющие считывание битовой комбинации из ЗУПВ, и схемы, осуществляющие передачу в хост-компьютер нового идентификационного кода, основанного на указанной битовой комбинации.9. Способ обеспечения взаимодействия между USB-совместимым устройством (105) и прикладным программным обеспечением (210), выполняемым хост-компьютером (101), когда такое взаимодействие осуществляется в стандартном USB-совместимом режиме и по меньшей мере в одном нестандартном USB-совместимом режиме, заключающийся в том, что создают первый стек (204, 206, 208) данных, использующий стандартный стек данных операционной системы, выполняемой хост-компьютером, и создают второй стек (214, 206, 208) данных, проходящий в обход определенных частей (204) стандартного стека данных операционной системы, выполняемой хост-компьютером, при этом обмен данными между драйвером (202) устройства и прикладной программой осуществляют с использованием стандартного стека данных, если обмен данными осуществляется в стандартном USB-совместимом режиме, а если USB-совместимое устройство работает в нестандартном USB-совместимом режиме, то обмен данными между драйвером устройства и прикладной программой осуществляют с использованием второго стека данных.10. Способ по п.9, в котором создают также третий стек (214) данных путем создания в памяти хост-компьютера (101) новых путей прохождения данных и в том случае, если USB-совместимое устройство работает во втором нестандартном USB-совместимом режиме, обмен данными между вторым драйвером (216) устройства и прикладной программой (210) осуществляют по этому третьему стеку данных.

Документы, цитированные в отчете о поиске Патент 2004 года RU2233468C2

US 5504483 А, 02.04.1996
JP 09044283 А, 14.02.1997
JP 62074117 А, 04.04.1987
WO 9921077 A1, 29.04.1999
УСТРОЙСТВО ДЛЯ ВВОДА-ВЫВОДА ИНФОРМАЦИИ 1992
  • Абрамов Вадим Алексеевич
RU2029352C1
УСТРОЙСТВО ДЛЯ ВВОДА ИНФОРМАЦИИ 1991
  • Каюмов В.П.
  • Романов А.Н.
RU2020554C1

RU 2 233 468 C2

Авторы

Като Роберт

До Фук

Кори Кумар

Нго Тхан

Даты

2004-07-27Публикация

2000-10-23Подача