Andy Melnikov (nponeccop) wrote,
Andy Melnikov
nponeccop

Как правильно подтираться спецификацией USB 2.0

Я тут нашёл окончательный ответ на извечный вопрос о том, какова же скорость USB 2.0. Ответ, как положено, 42 или около того.

https://superuser.com/q/317217/98646

Число 480 мбит/c - это signalling rate. Там используется NRZ-кодировка c максимальным замедлением 6/7, так что битрейт получается плавающим от 411 до 480 мегабит в зависимости от того, какие данные мы передаем.

Далее этими числами тоже можно подтереться, потому что используются фреймы в стиле TDМ каждую 1 мс, внутри каждого фрейма 8 микрофреймов по 125 мс, внутри каждого микрофрейма до 13 пакетов по 512 байт пейлоада (но реально 10 в сторону хоста и 8 в сторону устройства).

http://www.cypress.com/file/88486/download

Second, USB is a packetized protocol where longer blocks of data are divided into 512-byte packets. Each packet contains a header identifying the packet contents, and a CRC at the end of the packet for data integrity. Each packet also requires an ACK from the other side of the link. Start of Frame (SOF) packets are sent every 125 uSec (microframe) to maintain timing on the bus. The net effect of this is that the theoretical maximum bandwidth of USB is 13 bulk packets per microframe, or 53,248,000 bytes/second. Even this limit is not achievable with current host controllers, which can receive 10 bulk packets/microframe or send 8 bulk packets/microframe.

Ну вот 1000 * 8 * 512 * Х, где X = 8, 10 и 13. Получаем: 32 768 000, 40 960 000 и 53 248 000 bytes/second.
Tags: programming, все пидарасы а я, до чего техника дошла
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 7 comments