Project

General

Profile

USB Protocol » History » Version 2

laforge, 05/14/2018 09:31 AM
isochronous notes

1 1 laforge
h1. USB Protocol
2
3
This page describes a proposed mapping of E1 payload to USB, which we want to implement in E1 adapters within the Osmocom project.
4
5
* vendor-specific USB device/interface
6
* isochronous IN and OUT endpoints
7
8
The general functional split between USB device is as follows:
9
10
# USB device
11
#* mandatory: bit/octet alignment of basic frames to octet boundaries
12
#* optional: bit-order reversal on per timeslot basis, on configuration from host
13
#* optional: CRC-4 verification on receive side (including reporting via "E" bits in TS0 towards remote end)
14
#* optional: CRC-4 generation on transmit side
15
# USB host
16
#* mandatory: CRC-4 multi-frame alignment of the basic frames received from USB Device
17
#* mandatory: bit-order reversal on per timeslot basis, on configuration from host
18
#* mandatory: CRC-4 verification on receive side (including reporting via "E" bits in TS0 towards remote end)
19
#* mandatory: CRC-4 generation on transmit side
20
21
Depending on the capabilities of the USB device, the host may then switch off some of the functionalities that the USB device can perform in order to reduce processing requirements on the host.
22
23
h2. URB format on ISO IN/OUT endpoints
24
25
* Mandatory part: N number of 32-byte octet-aligned E1 "basic frames"
26
** one byte per timeslot (0..31)
27
*** TS0 bit-order MSB first
28
*** TS1..31 bit-order MSB first (default), optionally LSB-first if requested by USB host
29
* Optional: Trailer of up to 31 bytes of "status" information
30
** details of this still TBD. Must be odd (< 32) bytes length to distinguish it from E1 basic frames in front
31 2 laforge
32
h2. Isochronous USB related notes
33
34
After a quick re-read of the relevant sections of the USB spec, we should probably configure our USB endpoints as follows:
35
* specify the Interval of the endpoints to 1ms (the lowest interval possible)
36
* set the maximum packet size to something of at least 256 (probably more)
37
** we expect eight 32 byte frames during 1000ms
38
** we want to have room fo the "trailer" explained above
39
** can the host miss to schedule a transfer in one frame? In that case we should be able to transmit twice the amount in the next frame?
Add picture from clipboard (Maximum size: 48.8 MB)