Colour Processor Interface ASIC
camera and is able to load the appropriate drivers for the camera. Once this has been done the camera is
said to be enumerated.
2.2.4.4 USB Isochronous Transfers
As stated in section 2.2.4.1, Isochronous IN Endpoint 1 is used to transfer video data from the camera to the
host. Interface 1 has four Alternate Settings defined allowing different USB bandwidths to be requested for
this transfer of video data. Furthermore, it is possible to use the USB_BANDWIDTH input to select a second
set of Alternate Setting isochronous bandwidths. In normal operation USB_BANDWIDTH is left unconnected
(internally pulled up). If it is pulled LO externally a second set of Alternate Setting isochronous bandwidths
are used. The table below shows the Alternate Setting isochronous bandwidths of Endpoint 1 for both
USB_BANDWIDTH HI and LO.
Alternate Setting
0
1
2
3
Isochronous bandwidth per ms
USB_BANDWIDTH=1 (default)
0 bytes
448 bytes
704 bytes
960 bytes
Isochronous bandwidth per ms
USB_BANDWIDTH=0
0 bytes
320 bytes
616 bytes
896 bytes
Note that the second set of Alternate Setting bandwidths available by pulling USB_BANDWIDTH LO allow a
slightly lower set of bandwidth settings to be used.
The isochronous bandwidth is reported as the number of bytes per USB frame. The USB is framed into 1ms
time slots.
Alternate Setting 0 is always 0 bytes/ms. This ensures that we can select an Alternate Setting for the camera
where no bandwidth is reserved. Alternate Setting 0 is the default Alternate Setting selected when the CPiA
USB driver is loaded, such that when the camera is enumerated but not in operation (no application is using
the camera hardware to transfer video data) then no USB bandwidth is requested. This is essential for a USB-
friendly peripheral such that other devices may use the full potential of the bus at this time.
When an application wishes to use the camera the CPiA USB driver will request isochronous bandwidth for
the transfer of video data. It will start by requesting the largest bandwidth supported by CPiA, that is Alternate
Setting 3, to ensure the best possible framerate by default. If the USB bus has many isochronous devices
attached and Alternate Setting 3 cannot be supported the CPiA USB driver will then request Alternate Setting
2 and if necessary Alternate Setting 1 to guarantee bandwidth for the transfer of video data. If even the
bandwidth requirement of Alternate Setting 1 cannot be supported by the bus at that time the user will have to
stop using another isochronous device to free-up isochronous bus time to allow the USB camera to operate.
Additionally, the camera user can select the USB bandwidth they wish to use by means of the Multimedia
Control Panel Settings Dialogue for the camera. Here they can select High (Alternate Setting 3), Medium
(Alternate Setting 2) or Low (Alternate Setting 1) USB bandwidth. Thus if the CPiA camera is currently using
High bandwidth and they wish to connect and simultaneously use another isochronous USB device they can
manually force the CPiA camera to use less bandwidth by selecting Medium or Low bandwidth settings.
Obviously this may result in lower framerate video (depending on the current compression setting).
Once an Alternate Setting has been selected and is supported by the bus then the CPiA camera has
guaranteed bandwidth and latency for the transfer of video data. This means that in every 1ms USB time slot
an IN token will be issued to the CPiA Endpoint 1 for the transfer of up to MaxPacketSize bytes of video data,
where MaxPacketSize is the reserved bandwidth per ms. The CPiA camera will transfer as much data as it
currently has available up to MaxPacketSize. When no compression is selected then MaxPacketSize bytes of
video data will be transfered in every USB frame. If compression is selected then less than MaxPacketSize
bytes of video data may be transfered depending on the level of compression requested. When the device is
V:\apps\cpia\docs\cpia datasheet\cpia_datasheet4.fm
02/07/98
23
Commercial In Confidence