TM
CobraNet
Routing Primer
Steve Gray, Cirrus Logic, Inc.
Configuring CobraNetTM systems to properly route audio is fairly straightforward once the underlying
concepts are understood. This document explains the concepts behind end to end routing and how to
configure CobraNet
CobraNet
TM
device Data Sheets and Reference Manuals.
The variables referred to in this document are described in the CobraNet
TM
interfaces to route audio channels. Use this document as a companion to the available
TM
Programmer’s Reference. They
are known as Management Interface (MI) variables and can be read and written via the hardware Host
Management Interface (HMI) or via SNMP over the network.
The signals referred to are described in the Datasheet or Hardware Reference Manual applicable to the
particular CobraNet
TM
interface in use.
Referring to Figure 1 below, let’s consider the components of CobraNetTM audio routing.
Fig. 1 Simplified Routing Schematic
CobraNetTM Audio Routing Primer Rev. 1.2 ©Copyright 2004 Cirrus Logic, Inc
Page 1 of 9
Components of Routing
Bundles
A Bundle is the basic unit of data for transporting audio over a CobraNetTM network and can contain from
zero to eight audio sub-channels. Sample size, sample rate and transmission latency all have an impact on
processor bandwidth and packet sizes required to process and transmit the audio data. These factors can limit
the number of audio channels that can be processed by a CobraNetTM interface. The maximum number of
audio sub-channels allowable per bundle will be from 3 to 8 depending on these settings. The maximum
number of bundles possible can also be affected by these settings. Maximum sub-channel count per bundle
will typically be eight but may be less depending on the particular configuration.
An important attribute of the Bundle is the identifying number assigned to it (the Bundle number). The
Bundle number determines both where the data is sent and, to a large extent, how it is sent. When a receiver
on one interface is assigned the same bundle number as that of a transmitter on another interface, the
CobraNet
interfaces.
Bundles can be transmitted using the following modes:
Refer to the Programmer’s reference for information on valid bundle numbers and how they affect addressing
modes.
TM
protocol will automatically establish a connection and begin transmitting audio data between the
• Unicast (one-to-one)
• Multiple unicast (up to four copies unicast to more than one receiver)
• Multicast (one bundle to an unlimited number of receivers)
• Private (same as unicast or multicast but requiring specification of a MAC address)
Network Transmitters and Receivers
Transmitters and Receivers are logical entities within the CobraNetTM interface which are closely coupled to
the concept of Bundles. Each transmitter or receiver is capable of sending or receiving one Bundle. The
number of transmitters and receivers within a CobraNetTM interface is dependant on the particular
implementation and is fixed by the firmware. The user can configure the number of available transmitters or
receivers to be used.
Synchronous Serial Interface
Each CobraNetTM interface contains one or more Synchronous Serial Interfaces, or SSI’s. SSI’s carry
multiplexed audio data into and out of the CobraNet
DACs, ADCs, DSP processors and other digital audio interfaces. See Appendix C for more information on
the SSI.
TM
interface in time slices and are typically connected to
Audio Routing Channels
Audio routing channels are used to map audio data between a multiplexed SSI time slice and a bundle subchannel. CobraNet
>32 are used for transmitting and channels 33->64 are used for receiving. The actual number of routing
channels available is dependant on the particular CobraNet
special case which is, strictly speaking, not a routing channel. Channel 0, when assigned to a transmitter
Bundle, will cause transmission of an empty channel equivalent to silence. Channel 0, when assigned to a
receiver bundle sub-channel, will cause the bundle sub-channel received to be discarded.
For practical purposes, each unique audio routing channel can be thought of as having a fixed association
with a unique SSI time slice. In reality, audio routing channels are assigned to SSI time slices via the
audioMap variable array. Omission of this variable in Figure 1 is intentional. It should not be changed. See
Appendix B for default SSI to Audio Routing channel assignments.
TM
interfaces contain up to 64 audio routing channels numbered from 1 to 64. Channels 1-
TM
implementation. Channel 0 is an additional
CobraNetTM Audio Routing Primer Rev. 1.2 ©Copyright 2004 Cirrus Logic, Inc
Page 2 of 9
Bundle to Audio Routing Channel Mapping – txSubMap and rxSubMap
The RxSubMap and TxSubMap variable arrays are used to map Audio Routing Channels to and from Bundle
sub-channels. As described above, an Audio Routing Channel can be thought of as assigned to a specific time
slice within a Synchronous Serial Interface. Therefore, assigning an Audio Routing Channel to a bundle subchannel is equivalent to assigning an SSI time slice to a bundle sub-channel. See Appendix B for default SSI
to Audio Routing channel assignments.
Routing Variables
• txBundle *1 - Each transmitter has a txBundle variable associated with it which specifies the Bundle
Number assigned to that transmitter. There is one instance of this variable for each transmitter.
• rxBundle
Number assigned to that receiver. There is one instance of this variable for each receiver.
• txSubMap *
• rxSubMap *
• txSubFormat *
• rxSubFormat *
• Each interface has one modeRateControl variable which specifies the latency and sample rate used
for all bundles transmitted and received by the interface.
*1
Array variables. There is one instance of this variable for each transmitter and each receiver.
*2
Array variables that are also members of an array. There are multiple instances of this variable for
each transmitter and each receiver.
*3
8 equals the maximum permissible number of audio sub-channels per bundle.
*1
- Each receiver has an rxBundle variable associated with it which specifies the Bundle
2
- Each transmitter has up to 8 txSubMap variables associated with it. *3
2
- Each receiver has up to 8 rxSubMap variables associated with it. *3
2 -
Each transmitter has up to 8 txSubFormat variables associated with it. *3
2
- Each receiver has up to 8 rxSubFormat variables associated with it. *3
Putting it Together
To route audio between two CobraNetTM interfaces, both the transmitter and receiver must be configured to
send and receive audio channels. In many cases default values can be used and only txSubMap, rxSubMap,
txBundle and rxBundle variables need be set.
Transmitter Configuration
• Assign a bundle number to the transmitter using txBundle.
• Assign Audio Routing channels (and by extension SSI audio channels) to the transmitter (Bundle)
using txSubMap.
• Specify the format of the channels using txSubFormat
• Make sure the value of modeRateControl agrees with the selected txSubFormat.
• Make sure txSubCount for each transmitter is greater than or equal to the number of channels being
transmitted in the bundle. If the value of txSubCount is larger than required, unassigned subchannels will be sent as empty channels.
Receiver Configuration
• Assign a bundle number to a receiver using rxBundle.
• Assign Audio Routing channels (and by extension SSI audio channels) to the receiver (Bundle)
using rxSubMap
• Make sure the value of modeRateControl agrees with the format of the channels to be received.
CobraNetTM Audio Routing Primer Rev. 1.2 ©Copyright 2004 Cirrus Logic, Inc
Page 3 of 9