Способ и аппаратура для повышения надежности передачи данных в беспроводных системах связи

Иллюстрации

Показать все

Изобретение относится к системам беспроводной связи. Технический результат заключается в повышении надежности передачи данных. Описаны способы выполнения детектирования дублирования и переупорядочивания для HARQ передачи. Для детектирования дублирования приемник определяет, является ли декодированный пакет х для ARQ канала у дублированным пакетом, основываясь на пакете х и предшествующем декодированном пакете для ARQ канала у. Для переупорядочивания приемник определяет, ожидается ли еще на любом другом ARQ канале более ранний пакет на основе предшествующих декодированных пакетов для ARQ каналов, и перенаправляет пакет х только в случае, если не ожидаются более ранние пакеты. На другом ARQ канале z отсутствуют какие-либо ожидаемые более ранние пакеты, если (1) декодированный пакет был принят по ARQ каналу z в течение заданного времени или позже или (2) в пределах временного окна от текущего времени не был принят корректно декодированный пакет по ARQ каналу z. 7 н. и 23 з.п. ф-лы, 13 ил., 1 табл.

Реферат

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

[0001] В общем случае настоящее изобретение относится к беспроводным связям, более конкретно к технологиям повышения надежности передачи данных.

УРОВЕНЬ ТЕХНИКИ

[0002] Множество систем беспроводной связи используют HARQ для повышения надежности передачи данных. При помощи HARQ каждый пакет данных может передаваться передатчиком один раз или многократно до тех пор, пока пакет не будет правильно декодирован приемником, или не будет передано максимальное число передач для этого пакета. HARQ объект в передатчике (который часто называют HARQ объектом передатчика) принимает пакеты, которым присвоены порядковые номера, кодирует каждый пакет в один или несколько подпакетов и передает эти подпакеты в последовательном порядке.

[0003] Соответствующий HARQ объект в приемнике (который часто называют HARQ объектом приемника) принимает передачи от передатчика и комбинирует подпакеты, которые принадлежат одному пакету. Затем комбинированные подпакеты для каждого переданного пакета декодируют при попытке восстановить переданный пакет.Однако из-за деградации, вызванной разрушительными эффектами в беспроводной линии связи, некоторые из принятых пакетов могут быть декодированы с ошибкой и называются уничтоженными пакетами. Приемник может послать передатчику подтверждение (ACK) для каждого правильно декодированного пакета, чтобы закончить дальнейшую передачу подпакетов для этого пакета и/или отрицательное подтверждение (NAK) для каждого уничтоженного пакета, чтобы начать передачу другого подпакета этого пакета. Передатчик может ошибочно принять ACK и/или NAK, посланный приемником. Каждый ACK, который ошибочно детектирован передатчиком как NAK, приводит к передаче другого подпакета для пакета, который уже был правильно декодирован приемником. Избыточная передача может быть правильно декодирована приемником, что приведет к дублированию пакета. Уровень ошибок для передач ACK может быть высоким и, следовательно, приемник может часто получать дублированные пакеты.

[0004] HARQ объект приемника также должен предоставлять корректно декодированные пакеты на верхние уровни. Во многих системах ожидается, что верхние уровни принимают данные в надлежащем порядке, как определено порядковыми номерами пакетов. Используя HARQ, несмотря на то, что HARQ объект передатчика посылает первые подпакеты в последовательном порядке, из-за дополнительных передач подпакетов для уничтоженных пакетов HARQ объект приемника может восстанавливать пакеты в произвольном порядке. В результате HARQ объект приемника обычно буферизует пакеты, которые были правильно декодированы, переупорядочивает эти пакеты по мере необходимости и верхним уровням предоставляет переупорядоченные пакеты. Если пакеты восстановлены в произвольном порядке, то HARQ объект приемника может “остановить” или задержать доставку на верхние уровни корректно декодированных пакетов всякий раз при детектировании отсутствия более ранних пакетов пока либо (1) недостающие пакеты не будут правильно декодированы HARQ объектом приемника, либо (2) HARQ объект приемника не будет уверен, что недостающие пакеты потеряны и не будут приняты. Если HARQ объект приемника объявляет, что пакет потерян, хотя это не так, то верхние уровни могут (1) инициировать повторную передачу потерянного пакета, несмотря на длинную задержку, или (2) рассматривать пакет, как потерянный, но оба варианта нежелательны.

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

[0006] Поэтому в данной области техники существует потребность в эффективном выполнении детектирования дублирования и переупорядочивания при HARQ передаче.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

[0007] В данном разделе описаны способы выполнения детектирования дублирования и переупорядочивания при HARQ передаче. В синхронной HARQ системе при HARQ передаче используется множество ARQ каналов, и при HARQ передаче и передатчику, и приемнику априори известно время, в которое происходит передача по каждому ARQ каналу. В асинхронной HARQ системе время между последующими передачами подпакетов по тому же самому ARQ каналу является переменным и определяется объектом планирования, исходя из канала и/или других особенностей. Если объект планирования находится в передатчике, что обычно имеет место в восходящей линии связи (или нисходящей линии связи), то для сообщения приемнику времени, в которое каждый ARQ канал совершает передачу, может использоваться надежный механизм управления. В системе с полностью запланированной нисходящей линией связи (или восходящей линией связи) объект планирования находится в приемнике, который в этом случае знает время, в которое происходит передача по каждому ARQ каналу. И для синхронных, и для асинхронных HARQ систем предполагается, что и передатчик, и приемник знают время, в которое происходит передача по каждому ARQ каналу.

[0008] В HARQ передаче передатчик принимает последовательность пакетов данных, которым можно назначить порядковые номера для указания их порядка в последовательности. Передатчик обрабатывает каждый пакет и генерирует множество подпакетов, которым назначает последовательно пронумерованные идентификаторы подпакета (SPID). Передатчик передает пакеты в последовательном порядке (на основе их порядковых номеров или в порядке прибытия из верхних уровней) по ARQ каналу, как только эти каналы становятся доступными. Каждый пакет посылают по одному ARQ каналу. Для каждого пакета подпакеты для этого пакета посылаются в последовательном порядке на основе их SPID, один подпакет за один раз, до тех пор, пока для пакета не будет принят ACK или не будут посланы все подпакеты.

[0009] Для детектирования дублирования приемник определяет, является ли данный корректно декодированный пакет x для данного ARQ канала у дублированным пакетом, основываясь на корректно декодированном пакете x и предшествующем корректно декодированном пакете для ARQ канала у. После получения предшествующего корректно декодированного пакета приемник присваивает непредусмотренному SPID для ARQ канала у значение SPID ℓ последнего подпакета, принятого для предшествующего корректно декодированного пакета, плюс один, то есть непредусмотренный SPID=ℓ+1. Непредусмотренный SPID представляет собой SPID для подпакета, прием которого не ожидается по ARQ каналу у. Например, приемник может послать ACK для предшествующего корректно декодированного пакета, который может быть ошибочно детектирован передатчиком как NAK, который может затем передать следующий подпакет со SPID ℓ+1. Приемник получает SPID последнего подпакета, принятого для корректно декодированного пакета x, сравнивает SPID этого подпакета c непредусмотренным SPID и объявляет, что пакет x является дублированным пакетом, если два SPID совпадают.Приемник увеличивает непредусмотренный SPID каждый раз, когда по ARQ каналу y может быть послан подпакет таким образом, чтобы непредусмотренный SPID отслеживал SPID подпакета, прием которого не ожидается по ARQ каналу y. Такое увеличение происходит, даже если приемник не детектировал передачу. Например, приемник может декодировать пакет со значением SPID=ℓ на ARQ канале y и послать ACK, который ошибочно детектируется передатчиком как NAK. Приемник не сможет детектировать по ARQ каналу y последующую передачу подпакета SPID=ℓ+1, но сможет детектировать передачу после того, как SPID приобретет значение ℓ+2. Путем постоянного увеличения непредусмотренного SPID гарантируется, что приемник будет всегда детектировать дублированные пакеты, даже если он не обнаружит некоторые подпакеты.

[0010] Для переупорядочивания приемник получает корректно декодированный пакет x для ARQ канала y, определяет, ожидается ли все еще на любом другом ARQ канале более ранний пакет на основе предшествующих корректно декодированных пакетов (если это имеет место) для ARQ каналов, и перенаправляет пакет x в верхние уровни только в случае, если не ожидаются более ранние пакеты. Каждый ожидаемый более ранний пакет представляет собой пакет, который был послан перед пакетом x и который все еще может быть принят.На другом ARQ канале z отсутствуют какие-либо ожидаемые более ранние пакеты, если (1) корректно декодированный пакет был принят по ARQ каналу z в течение заданного времени или позже,или (2) из текущего кадра в пределах временного окна не был принят корректно декодированный пакет по ARQ каналу z. Заданное время для пакета x определяется временем начала и номерами ARQ каналов, доступных для HARQ передачи. Для синхронного HARQ временное окно определяется максимальным количеством подпакетов для каждого пакета и количеством ARQ каналов. Для асинхронного HARQ в запланированной системе объекту планирования известно временное окно для передачи по каждому ARQ каналу.

[0011] Ниже более подробно описаны различные аспекты и варианты осуществления настоящего изобретения.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0012] На ФИГ.1 показана обработка пакета для HARQ систем.

[0013] На ФИГ.2 показана синхронная HARQ передача по одному ARQ каналу.

[0014] На ФИГ.3А показана синхронная HARQ передача по четырем ARQ каналам;

[0015] На ФИГ.3B показан буфер данных для HARQ передачи, приведенной на ФИГ.3А;

[0016] На ФИГ.4 показана обработка выполнения детектирования дублирования;

[0017] На ФИГ.5A и 5B показаны два состояния определения, ожидается ли все еще более ранний пакет по другому ARQ каналу;

[0018] На ФИГ.6 показана процедура переупорядочивания пакетов;

[0019] На ФИГ.7 показана процедура определения, есть или нет ожидаемые более ранние пакеты;

[0020] На ФИГ.8 показана процедура обработки принятых пакетов для HARQ передачи;

[0021] На ФИГ.9 показана процедура переупорядочивания и перенаправления пакетов в верхние уровни;

[0022] На ФИГ.10 показана процедура HARQ передачи, приведенной на ФИГ.3А; и

[0023] На ФИГ.11 показана блок-схема беспроводного устройства и базовой станции.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

[0024] Слово “иллюстративный” в настоящем описании имеет значение “служить примером, случаем или иллюстрацией”. Любой вариант осуществления, описанный в настоящем описании как “иллюстративный”, не обязательно следует рассматривать как более предпочтительный или выгодный, чем другие варианты осуществления.

[0025] Описанные в настоящем описании способы детектирования дублирования и переупорядочивания могут использоваться для различных систем связи, таких как система Множественного Доступа с Кодовым Разделением Каналов (CDMA), система Множественного Доступа с Временным Разделением Каналов (TDMA), система Множественного Доступа с Частотным Разделением Каналов (FDMA), Множественный Доступ с Ортогональным Частотным Разделением Каналов (OFDMA), Ультраширокополосная Система (UWB) и т.д. Система CDMA может быть реализована в виде cdma2000, широкополосная-CDMA (W-CDMA) или в виде некоторых других способов радио доступа (RAT) CDMA. Система TDMA может быть реализована в виде Глобальной Системы Мобильной Связи (GSM) или в виде любой другой RAT. Система OFDM может быть реализована в виде IEEE 802.11, IEEE 802.16 или IEEE 802.20. Система UWB может быть реализована в виде 802.15. cdma2000 IS-95, IS-2000 и IS-856 и описана в документах от консорциума, названного “Проект Партнерства 3-его Поколения 2” (3GPP2). W-CDMA и GSM описаны в документах консорциума, названного “Проект Партнерства 3-его Поколения” (3GPP). 3GPP и 3GPP2 - документы являются доступными. Способы детектирования дублирования и переупорядочивания также могут использоваться для восходящей линии связи (или нисходящей линии связи) и нисходящей линии связи (или восходящей линия связи). Для ясности эти способы описаны для нисходящей линии связи в cdma2000 версии D.

[0026] На Фиг.1 показана обработка пакета для HARQ системы. Беспроводное устройство обрабатывает каждый пакет данных с целью генерации закодированного пакета и дальнейшего разделения закодированного пакета на три подпакета. Пакетам данных/кодированным пакетам назначают последовательные порядковые номера и маркируют как Pac0, Pac1, Pac2 и т.д., см. Фиг.1. Этим трем подпакетам для каждого кодированного пакета назначают идентификаторы подпакета (SPID) '0', '1' и '2' и на Фиг.1 маркируют как SP0, SP1 и SP2. Каждый подпакет содержит достаточную информацию, чтобы позволить принимающей базовой станции при благоприятных условиях декодировать подпакет канала и восстановить пакет.Три подпакета каждого пакета содержат различную избыточную информацию для данного пакета. Три подпакета для некоторого пакета могут рассматриваться как различные версии данного пакета или различные передачи данного пакета.

[0027] Закодированные пакеты начинают передавать в последовательном порядке. Таким образом, самый ранний пакет 0 (Pac0) передается перед пакетом 1 (Pac1), который передается перед пакетом 2 (Pac2), который передается перед пакетом 3 (РасЗ) и т.д. Для каждого пакета три подпакета передаются в последовательном порядке по одному и тому же ARQ каналу. Таким образом, подпакет 0 (SP0) передается первым, затем при необходимости следует подпакет 1 (SP1) и затем при необходимости следует подпакет 2 (SP2). Для каждого пакета могут быть переданы один, два или все три подпакета. Описанные выше обработка пакета и передача могут использоваться для каналов данных/трафика в различных системах, таких как, например, Нисходящий Канал Пакетных Данных (R-PDCH) в cdma2000 версия D. Для ясности конкретные детали описаны ниже для R-PDCH.

[0028] На Фиг.2 показана структура канала данных в синхронной HARQ системе. Время передачи для канала данных разделено на кадры, причем каждый кадр имеет фиксированную продолжительность (например, для R-PDCH в cdma2000 - 10 миллисекунд (ms)). В каждом кадре может быть послан один подпакет.Затем время передачи делят на четыре ARQ канала, которым назначают идентификаторы ARQ каналов (ACID) '0', '1', '2' и '3'. Четыре ARQ канала перемежаются таким образом, что ARQ канал 0 с ACID=0 занимает каждый четвертый кадр, начинающийся в заданном кадре, ARQ канал 1 с ACID=1 занимает каждый четвертый кадр сразу после ARQ канала 0, ARQ канал 2 с ACID=2 занимает каждый четвертый кадр сразу после ARQ канала 1, и ARQ канал 3 с ACID=3 занимает каждый четвертый кадр сразу после ARQ канала 2. Кадры, используемые для всех четырех ARQ каналов, определены, основываясь на системном времени (SYS_TIME), и известны беспроводному устройству и базовой станции. Четыре ARQ канала также называются ARQ и могут быть рассмотрены как четыре логических канала или четыре подканала канала данных в синхронной HARQ системе.

[0029] На ФИГ.2 также показана иллюстративная синхронная HARQ передача по одному ARQ каналу. Передается каждый пакет и возможно повторно передается по одному ARQ каналу. Для данного пакета беспроводное устройство сначала передает подпакет 0 в кадре для ARQ канала, затем подпакет 1 (если нужно) в следующем доступном кадре для того же ARQ канала и, наконец, подпакет 2 (если нужно) в следующем доступном кадре для ARQ канала. Поскольку принимается каждый подпакет, базовая станция пытается декодировать пакет, основываясь на всех подпакетах, которые были приняты для данного пакета. Если декодирование прошло успешно, то базовая станция посылает ACK по Восходящему Каналу Подтверждений (F-ACKCH), и беспроводное устройство прекращает посылать подпакеты этого пакета. Наоборот, если декодирование прошло неудачно, то базовая станция посылает NAK по F-ACKCH, и беспроводное устройство посылает следующий подпакет данного пакета. Задержка для передачи NAK или ACK представляет собой один кадр. В асинхронной HARQ системе передача каждого подпакета также происходит последовательно по одному и тому же ARQ каналу, но отсутствует какая-либо фиксированная продолжительность времени между последовательными передачами по одному и тому же ARQ каналу.

[0030] Для примера, показанного на Фиг.2, беспроводное устройство передает подпакет 0 пакета 0, который декодирован базовой станцией с ошибкой. Затем беспроводное устройство передает подпакет 1 пакета 0, который декодирован корректно, и следовательно посылает назад ACK. Затем беспроводное устройство передает подпакет 0 следующего пакета 1, который декодирован базовой станцией с ошибкой. Затем беспроводное устройство передает подпакет 1 пакета 1. Для других пакетов передача данных продолжается таким же образом.

[0031] Для ясности на Фиг.2 показана передача как NAK, так и ACK. С целью уменьшения количества передач сигналов многие системы посылают только ACK или только NAK. Для схемы, основанной на ACK, приемник передает ACK только в том случае, если пакет декодирован корректно, и не посылает никакой NAK. Таким образом, ACK посылается явным образом, а NAK является посланным неявно (т.е. предполагается в связи с отсутствием ACK или обозначается некоторыми другими способами). Для схемы, основанной на NAK, приемник посылает NAK только в том случае, если пакет декодирован с ошибкой, и не посылает ACK. Описанные в настоящем описании способы могут использоваться с любым видом обратной связи.

[0032] Приемник может определить, декодирован ли данный пакет корректно или с ошибкой, основываясь на ошибочном коде детектирования, используемом для данного пакета. Например, пакет декодирован корректно, если для пакета прошла проверка избыточности циклической суммы (CRC), и декодирован с ошибкой, если CRC не прошла. Как используется в настоящем описании, декодированный пакет представляет собой пакет, который приемником декодирован корректно (например, прошла CRC), а уничтоженный пакет представляет собой пакет, который декодирован приемником с ошибкой (например, CRC не прошла).

[0033] Как показано на Фиг.2, введены некоторые задержки для передачи подпакета, декодирования пакета и посылает назад ACK или NAK. Передачи подпакетов для каждого ARQ канала отделены четырьмя кадрами для учета задержки передачи и обработки. По четырем ARQ каналам беспроводное устройство может передавать параллельно до четырех пакетов. В любой данный момент может проходить до четырех ожидающих обработки пакетных передач. Каждая ожидающая обработки пакетная передача происходит для пакета, который не был опознан как декодируемый базовой станцией.

[0034] На Фиг.3А показана иллюстративная синхронная HARQ передача по всем четырем ARQ каналам. Беспроводное устройство посылает подпакет 0 пакетов 0, 1, 2 и 3 по ARQ каналам 0, 1, 2 и 3 соответственно, в кадрах 0, 1, 2 и 3 соответственно. Базовая станция принимает эти четыре подпакета, декодирует пакеты 0, 1 и 3 с ошибкой, а пакет 2 декодирует корректно. Затем беспроводное устройство передает подпакет 1 пакетов 0, 1 и 3 по ARQ каналам 0, 1 и 3 соответственно, в кадрах 4, 5 и 7 соответственно, а по ARQ каналу 2 в кадре 6 передает подпакет 0 следующего пакета 4. Базовая станция принимает подпакеты, декодирует пакеты 0 и 3 корректно, а пакеты 1 и 4 декодирует с ошибкой. Затем беспроводное устройство передает подпакет 0 следующего пакета 5 по ARQ каналу 0 в кадре 8, подпакет 2 пакета 1 по ARQ каналу 1 в кадре 9, подпакет 1 пакета 4 по ARQ каналу 2 в кадре 10 и подпакет 0 следующего пакета 6 по ARQ каналу 3 в кадре 11. Базовая станция принимает подпакеты, декодирует пакеты 1, 5 и 6 с ошибкой, а пакет 4 декодирует корректно. Затем беспроводное устройство передает подпакет 1 пакета 5 по ARQ каналу 0 в кадре 12, подпакет 0 следующего пакета 7 по ARQ каналу 1 в кадре 13, подпакет 0 следующего пакета 8 по ARQ каналу 2 в кадре 14 и подпакет 1 пакета 6 по ARQ каналу 3 в кадре 15. Беспроводное устройство передает новый пакет по ARQ каналу 1, даже если пакет 1 не был декодирован, так как для пакета 1 были посланы все три подпакета. Беспроводное устройство продолжает передавать новый пакет всякий раз, когда канал ARQ становится доступным.

[0035] На Фиг.3B показано содержимое буфера данных, используемого для хранения декодированных пакетов в базовой станции. Буфер данных обычно называют буфером переупорядочивания. Каждый декодированный пакет может временно храниться в буфере данных до тех пор, пока пакет не будет готов к его отправке на верхние уровни. На Фиг.3B показан каждый декодированный пакет и кадр, в котором был декодирован пакет. Пакет 2 был декодирован в кадре 2, пакет 0 был декодирован в кадре 4, пакет 3 был декодирован в кадре 7, пакет 4 был декодирован в кадре 10, пакет 5 был декодирован в кадре 12 и пакет 8 был декодирован в кадре 14. В кадре 9 было детектировано отсутствие пакета 1. Как показано на Фиг.3А и 3B, хотя беспроводное устройство передает пакеты, начиная в последовательном порядке, базовая станция восстанавливает пакеты в произвольной последовательности из-за дополнительных передач уничтоженных пакетов.

[0036] Для простоты, на Фиг.3А не принимаются ошибки детектирования для ACK и NAK, посланных базовой станцией в беспроводное устройство. Для каждого ACK, который детектирован как NAK, беспроводное устройство передает следующий подпакет пакета, который уже декодирован базовой станцией. Для каждого NAK, который детектирован как ACK, беспроводное устройство передает следующий пакет, даже если предшествующий пакет не был декодирован базовой станцией. Для достижения надежной передачи данных уровень ошибок NAK/ACK обычно является небольшим (например, 0,1%). Однако уровень ошибок ACK/NAK может быть высоким и переменным (например, от 1 до 10%). Базовая станция может принять дублированные пакеты из-за ошибок ACK/NAK.

[0037] Базовая станция может выполнять детектирование дублирования с целью идентификации и отказа от дублированных пакетов. Детектирование дублирования может выполняться, исходя из следующих предположений: (1) базовая станция (или приемник) имеет информацию об ARQ канале, посылаемую в каждом кадре, основываясь на синхронизации системы, (2) подпакеты для каждого пакета посылают в последовательном порядке, и (3) базовая станция может присвоить SPID подпакета только в случае декодирования пакета.

[0038] На Фиг.4 показана блок-схема процедуры 400 выполнения детектирования дублирования пакетов, принятых посредством HARQ передачи. Для каждого ARQ канала базовая станция поддерживает переменную Unexpected_SPID. Эта переменная указывает SPID подпакета, прием которого не ожидается на ARQ канале. В начале HARQ передачи для каждого ARQ канала базовая станция инициализирует Unexpected_SPID недостоверным значением (этап 410). Например, Unexpected_SPID может быть присвоено Max_Num_Tx, который представляет собой максимальное количество подпакетов для каждого пакета, где Max_Num_Tx=3 для R-PDCH в cdma2000 версии D. На этапе 410 для HARQ передачи инициализация выполняется один раз.

[0039] Базовая станция выполняет детектирование дублирования для каждого кадра при передаче. Базовая станция определяет ARQ канал для текущего кадра (который называют ARQ канал y), основываясь на его информации о системном времени (этап 420). Затем базовая станция пытается декодировать пакет для текущего кадра (этап 422). Далее происходит определение того, был ли пакет декодирован (этап 424). Если пакет был декодирован, то базовая станция получает SPID из подпакета, принятого в текущем кадре (который называют SPID k) (этап 426). В cdma2000 версии D каждый подпакет несет SPID, назначенный для подпакета, но базовая станция может достоверно установить SPID, только если пакет декодирован.

[0040] Затем базовая станция определяет, равен ли SPID значению Unexpected_SPID для ARQ канала y (этап 428). Если для ARQ канала y SPID не равен Unexpected_SPID, что имело бы место для первого пакета, посланного по ARQ каналу у, поскольку Unexpected_SPID инициализировался недостоверной величиной, то Unexpected_SPED присваивается значение к+1 (этап 432). Для ARQ канала у базовая станция не ожидает приема подпакета со значением SPID к+1 в следующем кадре, так как пакет x уже декодирован. Если в следующем кадре для ARQ канала y принят подпакет со значением SPID k+1, то этот подпакет должен был быть послан из-за ошибки ACK/NAK и является дублированным пакетом. Таким образом, возвращаясь на этап 428, если SPID к равен Unexpected_SPID, то пакет x объявляется дублированным пакетом и от него отказываются (этап 430). После этапа 430 Unexpected_SPID присваивается значение к+1 (этап 432).

[0041] Если для текущего кадра пакет был уничтожен, как определено на этапе 424, то происходит определение, является ли для ARQ канала у значение Unexpected_SPID недостоверным (например, равным Max_Num_Tx) (этап 434). Если ответом является 'Нет', то для ARQ канала у базовая станция увеличивает значение Unexpected_SPID на один (этап 436). Если на этапе 434 и после этапа 436 ответом является 'Да', процедура возвращается на этап 420 для обработки следующего кадра.

[0042] Детектирование дублирования по Фиг.4 присваивает значение Unexpected_SPID, основываясь на SPID последнего подпакета, принятого для декодированного пакета. Детектирование дублирования увеличивает на этапе 436 значение Unexpected_SPID на единицу (1) всякий раз при приеме уничтоженного пакета, поскольку подпакеты посылают в последовательном порядке, и (2) если значение Unexpected_SPID не достигает Max_Num_Tx и не является недостоверной величиной, присвоенной на этапе 410. Если значение Unexpected_SPID достигает на этапе 436 значения Max_Num_Tx, то значение Unexpected_SPID может быть сохранено со значением Max_Num_Tx или установлено в некоторую другую недостоверную величину. Детектирование дублирования также может быть выполнено другими способами, исходя из данного описания.

[0043] Как показано на Фиг.3А и 3B, HARQ объект приемника в базовой станции может восстанавливать пакеты в произвольной последовательности, даже если пакеты были посланы последовательно. Для уменьшения задержки является желательным, перенаправлять каждый декодированный пакет в верхние уровни как можно скорее. Однако если верхние уровни ожидают приема пакетов в последовательном порядке, то HARQ объект приемника обычно буферизует декодированные пакеты, переупорядочивает пакеты, которые не являются последовательными, и затем предоставляет переупорядоченные пакеты верхним уровням.

[0044] Для данного декодированного пакета x базовая станция может перенаправлять пакет x верхним уровням при отсутствии пакета, который был послан перед пакетом x и все еще может быть принят. Другой пакет b посылают перед пакетом x, если передача пакета b началась перед передачей пакета x. Если пакеты посылают в последовательном порядке, то, если бы другой пакет b был послан перед пакетом x, пакет b должен был быть перенаправлен в верхние уровни до пакета x, в случае если верхние уровни ожидают приема пакетов в последовательном порядке. Если пакет b не декодирован после максимально возможного количества повторных ARQ передач, то пакет b является потерянным, и пакет x может быть перенаправлен в верхние уровни.

[0045] Для каждого ARQ канала базовая станция может поддерживать флаг и может сбрасывать этот флаг для пакета x, если по ARQ каналу нет никаких ожидаемых более ранних пакетов. Ожидаемый более ранний пакет представляет собой пакет, который был послан по ARQ каналу перед пакетом x и который все еще может быть принят базовой станцией. Базовая станция может перенаправить пакет x в верхние уровни, если для всех ARQ каналов сброшены флаги. В Таблице 1 представлены различные переменные, используемые в приведенном ниже описании, и для каждой переменной дано краткое описание. Для R-PDCH в cdma2000 в третьей колонке Таблицы 1 для некоторых из переменных приведены значения по умолчанию.

Таблица 1

Переменная Описание Значение по умолчанию
Num_Channels Номер ARQ канала, доступного для передачи данных 4
Max_Num_Tx Максимальное количество подпакетов для каждого пакета 3
Max_Wait Максимальное количество времени (в кадрах) ожидания для пакета на другом ARQ канале 8 кадров
Current_Frame Текущий обрабатываемый кадр
Start_Time Время первой передачи пакета. Start_Time поддерживается для каждого пакета и задается в единицах кадров.
Last_Decode_Time Время последнего приема декодированного пакета по ARQ каналу. Last_Decode_Time поддерживается для каждого ARQ канала и задается в единицах кадров.

[0046] В синхронном HARQ значение Max_Wait может быть вычислено следующим образом:

Max_Wait=Num_Channels x (Max_Num_Tx-1). уравнение (1)

Max_Wait=8 кадров для R-PDCH в cdma2000 версии D. В R-PDCH для синхронного HARQ возможно наличие автономных передач.

[0047] В асинхронном HARQ по R-PDCH может быть запланирована каждая передача. Max_Wait для ARQ канала представляет собой время между первой и последней передачей подпакета по данному ARQ каналу и может иметь переменную продолжительность. Приемнику известно значение Max_Wait для каждого ARQ канала, если объект планирования находится в приемнике. Это верно для полностью запланированных нисходящих линий связи, таких как IEEE 802.16. Если объект планирования находится в передатчике, то для ARQ канала может быть определено значение Max_Wait, если передатчик имеет надежный способ передачи в приемник подпакета и идентификатора ARQ канала.

[0048] Для каждого ARQ канала z, где z∈С, и С обозначает набор всех ARQ каналов, базовая станция может сбросить флаг для ARQ канала z, если будет соблюдено любое из следующих двух условий:

1. Пакет был послан по ARQ каналу z после Start_Time для пакета x или, что эквивалентно, значение Last_Decode_Time для ARQ канала z больше, чем значение Start_Time для пакета x минус значение Num_Channels;

2. По меньшей мере, (Max_Num_Tx-1) подпакетов были посланы по ARQ каналу z, начиная со значения Start_Time для пакета x.

Для незапланированной, но синхронной HARQ передачи количество подпакетов, которое было послано по ARQ каналу, может быть определено по времени, прошедшему начиная с последнего декодирования. Для запланированной HARQ передачи как синхронной, так и асинхронной приемник знает, что подпакет является запланированным. В этом случае приемник знает, когда по каждому ARQ каналу посылают (Max_Num_Tx-1).

[0049] Для синхронного HARQ, где каждый следующий подпакет передают по ARQ каналу после фиксированной задержки, условия 1 и 2 подробно описаны ниже. Это уменьшает время на описание приведенного ниже алгоритма. Алгоритм также может использоваться для асинхронного HARQ, если приемник знает значение Start_Time каждого ARQ канала.

[0050] На Фиг.5A показан сброс флагов для ARQ каналов, основываясь на первом условии. Для примера, показанного на Фиг.5A, пакет x посылают по ARQ каналу у-1, начиная в Start_Time, показанном на Фиг.5A, и декодируется в текущем кадре. Все кадры, начинающиеся после Start_Time-4 (которое представляет собой заданное время и равно Start_Time-Num_Channels) до текущего кадра, показаны диагональной штриховкой. Если бы пакет для какого-нибудь ARQ канала z был декодирован в любом из кадров со штриховкой, то любой пакет, который мог быть послан после этого декодированного пакета по тому же ARQ каналу z, имел бы время начала больше, чем Start_Time для пакета x. Следовательно, этот ARQ канал z не может нести более ранний пакет, чем пакет x, и флаг для этого ARQ канала z может быть сброшен. Включение кадра Start_Time-4 для первого условия является дополнительным для декодирования пакета x во время разрешения сброса флага для ARQ канала у для пакета x.

[0051] На Фиг.5B показан сброс флагов для ARQ каналов, исходя из второго условия. Для примера, показанного на Фиг.5B, Max_Num_Tx=3 и для каждого пакета посылают до трех подпакетов. Пакет x посылают по ARQ каналу у=1, начиная при Start_Time, показанном на Фиг.5B, и корректно декодируется в кадре Tc-3, который для пакета x находится через четыре кадра после Start_Time. ARQ канал z, который для пакета x нес Max_Num_Tx-1 подпакеты, начиная с Start_Time, не может нести пакет, который был послан для пакета x перед Start_Time. Например, ARQ канал z=2 несет подпакет в кадре Tc-2, который находится за два кадра перед текущим кадром, и другой подпакет в кадре Tc-6, который находится за шесть кадров перед текущим кадром. Для пакета x оба подпакета посылают по ARQ каналу 2 после Start_Time. После обработки подпакета для ARQ канала 2 в кадре Tc-2 нельзя, чтобы ARQ канал 2 все еще нес пакет, который для пакета x был послан перед Start_Time. Так происходит, поскольку, если для пакета x по ARQ каналу 2 перед Start_Time был бы послан пакет, то этот пакет необходимо было бы посылать, начиная с кадра Tc-10 и заканчивая в кадре Tc-2, независимо от того, был ли пакет декодирован или уничтожен, потому что для этого пакета было послано максимальное количество подпакетов. Для второго условия для каждого ARQ канала z может быть сброшен флаг, если в пределах последних кадров Num_Wait, начиная от текущего кадра, который может быть рассмотрен как скользящее временное окно, для ARQ канала z никакой пакет не был декодирован. Вышеупомянутый пример также может быть применен, если пакет x был декодирован в кадре Tc-7, а не в кадре Тс-3.

[0052] На Фиг.6 показана блок-схема процедуры 600 переупорядочивания пакетов, принятых посредством HARQ передачи. При передаче базовая станция выполняет переупорядочивание каждого кадра. Базовая станция определяет ARQ канал для текущего кадра (который назван ARQ канал y) (этап 620). Затем базовая станция пытается декодировать пакет x для текущего кадра (этап 622). Затем происходит определение, был ли декодирован пакет x (этап 624). Если пакет x был декодирован, то базовая станция определяет, был ли перед пакетом x послан другой пакет по другому ARQ каналу, и можно ли его еще принять, т.е. есть ли более ранний пакет, который все еще ожидается на другом ARQ канале (этап 626). Если ожидается более ранний пакет, и базовая станция должна ждать этот пакет, как определено на этапе 628, то базовая станция хранит пакет x в буфере данных (этап 632). В противном случае, если более ранние пакеты не ожидаются, то базовая станция перенаправляет пакет x и/или все пакеты, которые были декодированы, и ждет пакет x (этап 630). Возможны случаи, когда пакет x не может быть перенаправлен, но декодирование пакета x позволяет другим пакетам ожидать перенаправления в буфере данных. Затем процедура возвращается на этап 620 для обработки следующего кадра.

[0053] На Фиг.7 показана блок-схема варианта осуществления этапа 626 по Фиг.6. Сначала вычисляется Start_Time для пакета x, как описано ниже (этап 710), и для всех ARQ каналов флаги установлены в логическую единицу (этап 712). Индекс i для ARQ каналов устанавливается в ноль для первого ARQ канала, который был оценен (этап 714). Затем происходит определение, был ли принят по ARQ каналу i пакет x, который был декодирован в текущем кадре (этап 720). Если на этапе 720 ответом является 'Да', то флаг для ARQ канала i сбрасывается (этап 726). В противном случае происходит определение, был ли для ARQ канала i получен декодированный пакет после Start_Time-Num_Channels, где Start_Time представляет собой время начала для пакета x (этап 722). Если на этапе 722 ответом является 'Да', то флаг для ARQ канала i сбрасывается (этап 726). В противном случае происходит определение, не был ли получен какой-либо декодированный пакет для ARQ канала i в последних кадрах Max_Wait-1 (этап 724). Если на этапе 724 ответом является 'Да', то флаг для ARQ канала i сбрасывается (этап 726).

[0054] Этапы 720 и 722 представляют собой первое условие, описанное выше по Фиг.5A, которые для ясности на Фиг.7 показаны как два отдельных этапа. Этап 724 представляет собой второе условие, описанное выше по Фиг.5B, если ответом является 'Нет' на всех трех этапах 720, 722, и 724, то, по меньшей мере, имеется один ожидаемый пакет, который был послан перед пакетом x и который все еще может быть принят.Затем предоставляется индикатор того, что пакет x ожидает другой пакет (этап 734), при этом обработка для этапа 626 заканчивается.

[0055] Если флаг для ARQ канала i сбрасывается на этапе 726, поскольку в этом ARQ канале не ожидается никакой более ранний пакет, то происходит определение, были ли оценены все ARQ каналы (этап 728). Если ответом является 'Нет', то индекс увеличивается (этап 730), и процедура возвращается на этап 720 для оценки следующего ARQ канала. В противном случае, если на этапе 728 ответом является 'Да', это означает, что флаги для всех ARQ каналов были сброшены, предоставляется индикатор того, что пакет x может быть перенаправлен в верхние уровни (этап 732), и при этом обработка для этапа 626 заканчивается.

[0056] Ниже описан конк