СПОСОБ, КОМПЬЮТЕРНЫЙ ПРОГРАММНЫЙ ПРОДУКТ И УСТРОЙСТВО ДЛЯ СОЕДИНЕНИЯ С КАРТОЙ ПАМЯТИ
METHOD, COMPUTER PROGRAMME PRODUCT AND DEVICE FOR CONNECTING TO MEMORY CARD

ОБЛАСТЬ ТЕХНИКИ
Типичные варианты осуществления данного изобретения относятся в основном к съемным модулям памяти, содержащим устройства памяти, и более конкретно к соединениям со съемными модулями памяти, известными, в частности, под названием карт памяти MultiMedia Card (MMC) и карт памяти Secure Digital (SD), но не ограничиваясь ими.
УРОВЕНЬ ТЕХНИКИ
В съемных модулях памяти, таких как MMC, предусмотрена сигнализация о занятости, например, в связи с программированием данных. Сигнал занятости подается из карты MMC в базовое устройство ("хост") и используется в данном случае для указания на то, готов ли буфер к приему следующей порции данных. Команда стирания также использует сигнал занятости, но в этом случае он означает занятость вследствие выполнения стирания. Поскольку обычно, чтобы сохранить число выводов неизменным, имеется только одна линия для сигнала занятости, использование сигнала занятости не является гибким.
Существующее определение сигнала занятости в системе Ассоциации MMC (ММСА) основано на том, что уровни программного обеспечения базового устройства обычно реализованы так, что данные передаются блоками, например блоками по 16 кбайт. Поэтому целесообразно использовать так называемые команды многоблочной записи, когда один блок данных, передаваемых через интерфейс MMC, является только частью блока данных базового устройства, который имеет больший размер (обычно блок MMC имеет размер 512 байт). Когда значением сигнала занятости, в случае передачи данных, является "готовность буфера", базовое устройство может передавать в MMC множество блоков данных размером 512 байт, не опрашивая состояние буферов.
Однако в настоящее время обнаружилась проблема, состоящая в том, что после передачи последнего блока (например, последнего блока размером 512 байт из общего блока в 16 кбайт) базовое устройство должно начать опрос для определения состояния сигнала "готовность программирования", что становится уместным в этот момент, поскольку новых блоков для передачи больше нет. Требование к базовому устройству опрашивать состояние сигнала готовности программирования приводит к неэффективному использованию обрабатывающей мощности базового устройства.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Типичные варианты осуществления данного изобретения позволяют решить изложенную выше проблему и другие проблемы, а также получить другие преимущества.
Первым аспектом данного изобретения является способ подключения первого блока ко второму блоку через шину, которая содержит сигнальную линию. Способ включает передачу первой информации от первого блока второму по сигнальной линии; управление сигнальной линией со стороны второго блока так, чтобы вызвать изменение ее состояния; интерпретацию изменения состояния сигнальной линии в первом блоке как имеющего первое смысловое значение и, в ответ, передачу второй информации в сигнальную линию из первого блока; управление сигнальной линией со стороны второго блока так, чтобы снова вызвать изменение ее состояния, и интерпретацию первым блоком изменения состояния сигнальной линии, возникающего после подачи второй информации в сигнальную линию, как имеющего второе смысловое значение, отличное от первого.
В качестве второго аспекта данное изобретение представляет компьютерный программный продукт на машиночитаемом носителе, включающий программные инструкции для выполнения операции подключения первого блока ко второму блоку через шину, которая содержит сигнальную линию. Операции включают передачу первой информации из первого блока второму по сигнальной линии; управление сигнальной линией со стороны второго блока так, чтобы вызвать изменение ее состояния; интерпретацию изменения состояния сигнальной линии в первом блоке как имеющего первое смысловое значение и, в ответ, передачу второй информации в сигнальную линию из первого блока; управление сигнальной линией со стороны второго блока так, чтобы снова вызвать изменение состояния, и интерпретацию первым блоком изменения состояния сигнальной линии, возникающего после подачи второй информации в сигнальную линию, как имеющего второе смысловое значение, отличное от первого.
В качестве третьего аспекта данное изобретение представляет устройство для подключения первого блока ко второму блоку через шину, которая содержит сигнальную линию. Устройство в этой реализации изобретения содержит передатчик в первом блоке, соединенный с сигнальной линией, и приемник в первом блоке, соединенный с сигнальной линией. Передатчик приводится в действие для передачи первой, а затем второй информации из первого блока во второй блок по сигнальной линии, а приемник приводится в действие для обнаружения изменения состояния сигнальной линии, вызванного вторым блоком, как после приема первой информации, так и после приема второй информации во втором блоке. Контроллер в первом блоке приводится в действие для интерпретации изменения состояния сигнальной линии как имеющего первое смысловое значение после передачи первой информации и второе смысловое значение, отличное от первого, после передачи второй информации из первого блока второму по сигнальной линии. Первый блок может содержать базовое устройство, второй блок может содержать карту памяти.
В качестве четвертого аспекта данное изобретение представляет устройство для подключения первого блока ко второму блоку через шину, которая содержит сигнальную линию. Устройство в этой реализации изобретения содержит передатчик в первом блоке, соединенный с сигнальной линией, и приемник в первом блоке, соединенный с сигнальной линией. Приемник приводится в действие для приема первой информации, а затем второй информации из второго блока по сигнальной линии, а передатчик приводится в действие для изменения состояния сигнальной линии, идущей ко второму блоку, как после приема первой, так и после приема второй информации. Контроллер в первом блоке вызывает изменение состояния сигнальной линии, имеющее первое смысловое значение после приема первой информации и второе смысловое значение, отличное от первого, после приема второй информации от второго блока по сигнальной линии. Первый блок может содержать карту памяти, второй блок может содержать базовое устройство.
В качестве следующего аспекта данное изобретение представляет способ передачи данных из первого блока второму блоку через шину. Способ включает инициирование n-блочной передачи данных, где n>1; для первых n-1 блоков данных, передаваемых из первого блока во второй, управление сигналом состояния, генерируемым вторым блоком, как сигналом состояния "занятость/готовность буфера" после каждого из n-1 блоков данных для уведомления первого блока о том, когда он может передавать следующий блок данных; а для n-го блока данных, передаваемого из первого блока во второй, управление сигналом состояния как сигналом состояния "занятость/готовность программирования" после n-го блока данных для уведомления первого блока вторым блоком о завершении внутреннего программирования, если оно имело место.
В качестве следующего аспекта данное изобретение представляет компьютерный программный продукт на машиночитаемом носителе, включающий программные инструкции для выполнения операции передачи данных из первого блока второму блоку через шину. Операции включают инициирование n-блочной передачи данных, где n>1; для первых n-1 блоков данных, передаваемых из первого блока во второй, управление сигналом состояния, генерируемым вторым блоком, как сигналом состояния "занятость/готовность буфера" после каждого из n-1 блоков данных для уведомления первого блока о том, когда он может передавать следующий блок данных; а для n-го блока данных, передаваемого из первого блока во второй, управление сигналом состояния как сигналом состояния "занятость/готовность программирования" после n-го блока данных для уведомления первого блока вторым блоком о завершении внутреннего программирования, если оно имело место.
В качестве еще одного аспекта данное изобретение представляет устройство для передачи данных из первого блока второму блоку через шину. Устройство содержит контроллер для инициирования n-блочной передачи данных, где n>1. Для первых n-1 блоков данных, передаваемых из первого блока во второй, второй блок управляет сигналом состояния как сигналом состояния "занятость/готовность буфера" после каждого из n-1 блоков данных для уведомления первого блока о том, когда он может передавать следующий блок данных, а для n-го блока данных, передаваемого из первого блока во второй, второй блок управляет сигналом состояния как сигналом состояния "занятость/готовность программирования" после n-го блока данных для уведомления первого блока вторым блоком о завершении внутреннего программирования, если оно имело место.
В соответствии с другим режимом работы, варианты осуществления данного изобретения включают способ, компьютерный программный продукт и устройство для передачи данных от первого блока второму блоку через шину. Способ включает инициирование n-блочной передачи данных, где n>1; для первых n-1 блоков данных, передаваемых из первого блока во второй, управление сигналом состояния, генерируемым вторым блоком, как сигналом состояния "занятость/готовность буфера" после каждого из n-1 блоков данных для уведомления первого блока о том, когда он может передавать следующий блок данных; а после передачи n-го блока данных из первого блока во второй, передачу команды остановки передачи во второй блок и управление сигналом состояния как сигналом состояния "занятость/готовность программирования" для уведомления первого блока вторым блоком о завершении внутреннего программирования, если оно имело место.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Изложенные выше и другие аспекты типичных вариантов осуществления данного изобретения будут более очевидны из следующего подробного описания изобретения с приложенными чертежами, на которых:
на фиг.1 приведена блок-схема, показывающая первый блок, соединенный со вторым блоком с помощью шины; и
на фиг.2 приведена типичная временная диаграмма сигналов, иллюстрирующая работу данного изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
На фиг.1 изображен первый блок, например базовое устройство ("хост") 1, соединенное со вторым устройством, например картой 2 памяти (например, типа ММС), посредством шины 3, которая включает сигнал 4 занятости, связанный с линией 5 данных. Также показана линия 6 команд (CMD), через которую базовое устройство 1 посылает команды карте 2, и линия 7 синхросигнала (CLK). Обычно шина 3 может быть совместима с шиной, описанной в документе "The MultiMediaCard, System Specification, Version 3.31, MMCA Technical Committee, 2003", за исключением модификации в соответствии с вариантами осуществления данного изобретения, предоставляющими многофункциональный или многорежимный сигнал 4 занятости. Однако следует принимать во внимание, что варианты осуществления данного изобретения не должны рассматриваться как ограничение изобретения использованием только ММС-совместимых карт, интерфейсов и шин.
Базовое устройство 1 может представлять собой сотовый телефон, цифровую камеру, ПК или любое подходящее устройство, которое может быть приспособлено для использования карты 2 памяти. Базовое устройство 1 содержит передатчик ("драйвер") 1А и приемник 1В, соединенные с сигнальной линией 5 данных, и управляющую логику 1C, соединенную с передатчиком 1А и приемником 1В, которая работает в соответствии с данным изобретением. Карта 2 памяти содержит передатчик ("драйвер") 2А и приемник 2В, соединенные с сигнальной линией 5 данных, и управляющую логику 2С, соединенную с передатчиком 2А и приемником 2В, которая также работает в соответствии с изобретением.
Типичные варианты осуществления данного изобретения обеспечивают изменение смыслового значения сигнала 4 занятости во время выполнения команд. Для случая операции передачи данных ММС это предполагает, что для первых передаваемых блоков данных используется сигнал 4 занятости, который интерпретируется базовым устройством 1 в соответствии с текущим определением (т.е. "занятость/готовность буфера"), но для последнего блока данных сигнал 4 занятости интерпретируется как "занятость/готовность программирования". Следует заметить, что в карте ММС 2 программирование может производиться параллельно с передачей данных. Соответственно, сигнал состояния "занятость/готовность программирования" используется для информирования базового устройства 1 о завершении внутреннего программирования карты 2 памяти.
При использовании типичного варианта осуществления данного изобретения базовое устройство не имеет необходимости опрашивать внутренний сигнал состояния "занятость/готовность программирования" ММС 2, что экономит ресурсы интерфейса базового устройства. Вместо этого базовое устройство 1 может продолжать использовать более эффективный режим работы с прерываниями на основе сигнала занятости для всего процесса передачи данных. Кроме того, использование вариантов осуществления изобретения подразумевает, что потребуется меньше программных таймеров (например, отпадает необходимость в таймерах, отслеживающих операции опроса), что упрощает реализацию. Использование вариантов осуществления данного изобретения также подразумевает, что может быть повышена производительность; что возможна совместимость как сверху вниз, так и снизу вверх; и что возможна эффективная реализация параллельной работы.
Далее описаны два типичных режима работы. Следует понимать, что существует более двух режимов работы, которые можно использовать для осуществления изобретения.
Первый режим работы известен под названием многоблочной записи. Для работы в ММС-совместимом режиме последовательность команд такова:
CMD16 (Set_Block_Length) (задать длину блока);
CMD23 (Set_Block_Count) (задать число блоков); имея эту информацию, карта ММС 2 может определить, какой блок данных является последним; и
CMD24 (Write_Block); запись множества блоков данных.
После этой последовательности команд следует посылка блоков данных по линии 5 данных в ММС 2. Между блоками данных в линию 5 данных подается сигнал занятости. Смысловым значением занятости в этом случае является "занятость/готовность буфера". После того как сигнал занятости снимается (уровень становится высоким), базовое устройство 1 может послать в ММС 2 следующий блок данных. Как было сказано выше, в ходе передачи данных можно одновременно производить программирование данных внутри ММС 2. В соответствии с аспектом данного изобретения, после того, как ММС 2 получит последний блок данных, смысловое значение сигнала 4 занятости меняется на "занятость/готовность программирования". Это означает, что базовому устройству 1 не нужно будет начинать опрос состояния программирования ММС 2, а вместо этого оно может продолжать ожидать прерывания занятости также на этой фазе доступа.
Однако появление прерывания занятости интерпретируется базовым устройством 1 как появление указания на состояние "готовность программирования".
Второй режим работы известен под названием многоблочной записи с открытым завершением. Для ММС-совместимой работы последовательность команд такова:
CMD16 (Set_Block_Length) (задать длину блока);
CMD25 (Write_Multiple_Block) (записать множество блоков);
передача блоков данных в линию данных; и
CMD 12 (Stop_Transmission) (остановить передачу); из этой информации ММС 2 узнает, что был передан последний блок данных.
Между блоками данных в линию 5 данных подается сигнал занятости. Смысловое значение сигнала в этом случае "занятость/готовность буфера". Как только сигнал занятости снимается, базовое устройство 1 может посылать в ММС 2 следующий блок данных. В ходе передачи данных можно одновременно производить программирование данных внутри ММС 2. В соответствии с аспектом данного изобретения, после получения картой ММС 2 команды остановки (CMD12) она снова выставляет сигнал занятости, но в этом случае сигнал 4 занятости снова означает "занятость/готовность программирования".
Следует отметить, что команда CMD 12 может быть послана в ММС 2 в течение нескольких возможных временных интервалов, и это может оказывать влияние на смысловое значение и интерпретацию сигнала 4 занятости.
На фиг.2 приведен пример временной диаграммы сигналов, иллюстрирующей режим работы, при котором команды CMD23 (Set_Block_Count - задать число блоков) и CMD25 (Write_Multiple_Block - записать множество блоков) посылаются по сигнальной линии 6 команд (CMD), при этом показана линия 5 данных, по которой передаются первый и последний блоки данных, и показано использование двухрежимного сигнала 4 занятости (BUSY), который подается картой 2 для индикации одного из состояний "занятость/готовность буфера" и "занятость/готовность программирования".
В альтернативном варианте осуществления изобретения могут использоваться разные сигнальные линии занятости для разных видов индикации состояния (т.е., в данном случае, состояния буфера и состояния программирования). Однако такой подход потребует большего числа физических выводов и не позволит обеспечить обратную совместимость.
В противоположность предшествующим способам использования сигнала 4 занятости, в соответствии с аспектами данного изобретения смысловое значение сигнала 4 занятости может изменяться в пределах одной команды (например, многоблочной записи) и от одного передаваемого блока данных к другому.
В рамках типичного варианта осуществления изобретения базовое устройство 1 может программировать карту ММС 2 для выбора режима работы сигнализации о занятости. Например, при сбросе параметров при выключении питания ММС 2 может по умолчанию перейти к традиционному использованию сигналов занятости, но затем может быть запрограммирована базовым устройством 1 на работу с многорежимным использованием сигнализации занятости (например, "занятость/готовность буфера" и "занятость/готовность программирования"). Альтернативно, в качестве режима работы при включении питания можно задать многорежимное использование сигнализации занятости, после чего базовое устройство 1 может программировать ММС 2 на использование традиционной сигнализации о занятости/готовности.
В одном из аспектов предполагается, что варианты осуществления данного изобретения предусматривают карту 2 памяти, которая включает интерфейс шины для соединения с базовым устройством 1 через шину 3, содержащую сигнальную линию 5 данных. Интерфейс шины включает передатчик 2А, подключенный к сигнальной линии данных, и приемник 2В, также подключенный к сигнальной линии 5 данных. Приемник 2В принимает первую информацию от базового устройства 1 по сигнальной линии 5 данных. Передатчиком 2А управляют для управления изменением состояния (например, переключением сигнала 4 занятости) сигнальной линии 5 данных, идущей к базовому устройству 1. Карта 2 памяти также содержит управляющую логику или контроллер 2С, который соединен с передатчиком 2А и приемником 2В и обеспечивает изменение состояния сигнальной линии 5 данных так, что оно имеет первое значение (т.е. "занятость/готовность буфера") после приема первой информации и второе значение (т.е. "занятость/готовность программирования") после приема второй информации от базового устройства 1 по сигнальной линии 5 данных.
Шина 3 также включает сигнальную линию 6 команд, и контроллер 2С отвечает за прием по меньшей мере одной команды по сигнальной линии 6 команд от базового устройства 1, для изменения состояния сигнальной линии 5 данных так, что оно имеет первое смысловое значение после приема первой информации и второе смысловое значение после приема второй информации от базового устройства 1 по сигнальной линии 5 данных.
Контроллер 2С может в ответ на программирование, получаемое от базового устройства 1, определять смысловое значения изменения состояния сигнальной линии 5 данных так, что после приема первой информации от базового устройства по сигнальной линии данных оно имеет первое значение, а после приема второй информации от базового устройства по сигнальной линии данных - второе значение, или имеет первое значение после приема от базового устройства 1 по сигнальной линии 5 данных первой информации, и также имеет первое значение после приема второй информации от базового устройства 1 по сигнальной линии 5 данных.
В предшествующем описании представлены типичные и не ограничивающие изобретение примеры способа и устройства, в настоящее время рассматриваемые изобретателями как наилучшие варианты осуществления изобретения. Тем не менее, на основе этого описания в сочетании с приложенными чертежами и формулой изобретения специалисты могут предложить очевидные для них модификации и адаптации изобретения.
Например, специалистами может быть предложено использование других аналогичных или эквивалентных протоколов сигнализации и типов модулей. Кроме того, сигнал 4 занятости может иметь более двух смысловых значений в ходе выполнения одной команды передачи данных. Например, при передаче трех блоков данных сигнал 4 занятости может получить первое значение после передачи первого блока данных, второе значение после передачи второго блока данных и третье значение после передачи третьего блока данных. Кроме того, в этом отношении сигнал занятости может быть использован для индикации множества различных состояний во время выполнения многоэтапной команды. Например, можно представить использование многоэтапной команды стирания, с пересылкой адреса (адресов) для стирания по линии команд, где сигнал 4 занятости после приема первых адресов указывает, что можно пересылать следующий адрес (адреса), а после посылки последних адресов для стирания сигнал занятости указывает на состояние стирания.
Однако все подобные и схожие модификации изобретения по-прежнему не будут выходить за рамки вариантов осуществления изобретения.
Кроме того, некоторые из признаков типичных вариантов осуществления данного изобретения можно с успехом использовать без соответствующего использования других признаков. Таким образом, предыдущее описание следует рассматривать исключительно как иллюстрацию принципов и вариантов осуществления изобретения, но не в смысле его ограничения.