Начальный бит по сравнению с байтом запуска

Хорошо, я вижу одно решение этой проблемы. Вы передаете его в тело (как данные) и передаете формат вместе с ним. Например,

new Date (). ToUTCString ()

, и на сервере вы можете получить его как

public void MyGetMethod([FromBody] DateTime myDate)
8
задан Steve 9 November 2008 в 03:10
поделиться

5 ответов

Большой вопрос! Большая часть асинхронной передачи также указывает стоповый бит, который является дополнением начального бита, гарантируя, что каждый новый символ начинается с stop-start перехода.

Пример: давайте передадим символы ABC, которые являются ASCII 65, 66, и 67:

A = 65 = 0x41 = 0100 0001
B = 66 = 0x42 = 0100 0010
C = 67 = 0x43 = 0100 0011

Давайте также предположим (произвольно), что начальный бит 0 и стоповый бит 1, и данные передаются от MSB до LSB. Передатчик будет на остановке (1) заявите, когда никакие данные не будут переданы. Таким образом, получатель мог бы видеть это:

Data:   ....1111 0010000011 111 0010000101 0010000111 11111....
         (quiet) ^   A    $     ^    B   $ ^    C   $ (quiet)

С извинениями за графику ASCII данные состоят из серии остановки (1) биты, в то время как канал незанят. Когда передатчик готов отправить символ, он отправляет запуск (0) бит (отмеченный с ^), сопровождаемый кодом символа, и заканчивающийся остановкой (1) бит (отмеченный с $). Это продолжает отправлять стоповые биты, пока следующий символ не передается, начинаясь с другого начального бита.

Причиной мы используем начальные биты вместо байтов, является эффективность. Схема выше требует, чтобы 10 битов (1start + 8data + 1stop) передали 8 битов данных, приводящих к издержкам (10 - 8) / 8 = 1/4 = 25%. Если бы мы использовали, запускают и останавливают байты, мы должны были бы передать 3 байта для каждого байта данных, которые будут издержками (3 - 1)/1 = 2 = 200%. Если бы запуск, данные и байты остановки были каждым 8 битов, то мы должны были бы передать 24 бита вместо 10 для каждого символа, таким образом, это возьмет почти в 2 1/2 раза более длинный для отправки данных!

9
ответ дан 5 December 2019 в 20:20
поделиться

Можно всегда определять байт запуска как признак, что сообщение начинается (и SOH ASCII, STX, и коды ETX были предназначены в таких целях). Однако стандартное оборудование и протоколы для соединения с аппаратурой передачи данных (RS232C и позже) работают на более низком уровне, и это обычно не возможно и не желательно изменить то расположение (особенно с помощью программного обеспечения).

Высокопроизводительные синхронные схемы передачи данных, такие как используемые в локальных сетях и глобальных системах передачи действительно используют тщательно продуманные маркеры кадра. Маркером кадра является отличный шаблон битов, который никогда не происходит в потоке для данных сообщения. Обычно существует специальное правило перезаписи, которое по существу "выходит" из любого возникновения в данных подобной комбинации двоичных разрядов так, чтобы оборудование передачи не рассматривало его как маркер кадра. Эти завершенные шаблоны восстановлены получателем, таким образом, отправитель и получатель никогда не должны обращать внимание на это. Эти расположения делают специализированные аппаратные средства еще более важными, такой как в типичной Сетевой карте (в эти дни, микросхема материнской платы) на персональных компьютерах.

ФОН НА АСИНХРОННОЙ ПОСЛЕДОВАТЕЛЬНОЙ ПЕРЕДАЧЕ

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

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

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

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

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

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

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

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

Википедия имеет хорошее описание асинхронной последовательной передачи, что используют последовательные порты компьютера.

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

1
ответ дан 5 December 2019 в 20:20
поделиться

Вот способ, которым обычно работают стартовые и стоповые биты:

  1. Начальный бит отправляется, скажите 1. Это указывает к получателю, что конкретное количество битов данных будет передано, скажет 8.
  2. 8 битов данных отправляются.
  3. Стоповый бит отправляется, скажите 0. Это указывает, что 8 битов данных были отправлены.

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

0
ответ дан 5 December 2019 в 20:20
поделиться

Стартовые и стоповые биты прибывают со дней телетайпов. Они по существу были импульсами, которые заняли время к виду позволенных механический аппаратный набор. Строки текстового файла DOS заканчиваются CR LF, который буквально заставил каретку возвращаться к столбцу 1 и валику для усовершенствования одной строки. Я думаю, что это находится в порядке, потому что у CR занимает больше времени произойти, и LF может эффективно произойти параллельно.

Обнаружение его немного более трудно. Вы сортируете, должны наблюдать, что поток битов проходит. Со временем необходимо смочь обнаружить его, поскольку данными обычно является ASCII с запуском/стоповыми битами вокруг этого. Обычно это не проблема, потому что она обрабатывается UART, который выполняет COM-порт.

-2
ответ дан 5 December 2019 в 20:20
поделиться

Это все зависимо от протокола. Можно сказать после начального символа ожидание символов N, или Вы будете читать, пока Вы не встретитесь с символом остановки.

Где символ мог быть любой последовательностью n-bit (включая бит и байт.)

Действительно, Ваш пример с битами точно относятся к протоколу, который использует байты вместо битов.

Скажите, что Вы отправляете 00000000, передают потоком 11111111 00000000 потоков B 11111111. В этом случае можно все еще перепутать его с потоком C =, передают потоком 11111111 00000000 потоков B.

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

0
ответ дан 5 December 2019 в 20:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: