CobraNet Developer FAQ
See frequently asked questions below.
In the past, the CobraNet Technology has only been available to Cirrus Logic’s CobraNet Licensees. Licensees have the rights to the underlying patents and core technology so that they may totally integrate CobraNet into their products. With the concurrence of our Licensees, Cirrus has developed the CM-1 module and the new Cirrus Logic Affiliate Program. In this way, the CobraNet Technology may be readily implemented in a modular fashion by Cirrus Logic Affiliate Subscribers without the necessity of a technology license.
- Use SNMP
- Create your own Ethernet protocol and use packet bridging via the Host Management Interface.
- Create your own serial protocol and use serial bridging via the SCI port
How can I use the CobraNet asynchronous service to carry my existing control protocol over the same network as the audio?
- Use the packet bridging feature of the Host Management Interface to send and receive bare Ethernet packets.
- Use the serial bridging feature to transport an asynchronous serial based protocol.
Each node may transmit no more than single packet via the asynchronous service per isochronous cycle. Assuming a 1-1/3ms isochronous cycle (see How long is an isochronous cycle?) and maximum length Ethernet packets (1500 byte payload) gives you a theoretical maximum of 9Mbit/second. On a repeater network, the network wide asynchronous service bandwidth is controlled by the conductor. Two metrics are published in the Beat Packet header: Asynchronous Packet Count and Asynchronous Accessibility. Asynchronous Packet count defines the number of control channel transmissions per isochronous cycle the conductor can adjust this metric to balance the relative audio and control channel bandwidths. Asynchronous Accessibility essentially defines how often an individual node is allowed to transmit a control packet. Transmissions may be as frequent as every isochronous cycle to as infrequently as every 255th isochronous cycle. The conductor uses Asynchronous Accessibility to keep collisions to a reasonable level.On a switched network, no network wide bandwidth limitations on the asynchronous are imposed.
The DSP’s host port supports data rates in excess of 10Mbyte/second. The host port can usually be wired directly to the address and data busses of a microcontroller. The host port may be operated in polled, interrupt or DMA modes.Host Management Interface (HMI) must service an interrupt for each 24bit word of data transferred. This interrupt service can take as long as 100us limiting usable bandwidth to a worst-case figure of 10Kwords/second (30Kbytes/second). Nominal performance can be over 10 times greater but it is complicated to quantify this as a software host port throttling mechanism slows response time of the host port when the node detects it may not otherwise have enough processing cycles to perform critical audio processing.In addition to transferring data, you need to tell the the HMI were to transfer to or from. This is accomplished by performing a Set Address transaction. A Set Address transaction can take a full isochronous cycle period or more to complete. The performance of data transfer activities which do not operate on contiguous areas of memory are typically constrained by the time required to perform the Set Address transaction.
The bandwidth of the packet bridge is constrained by the bandwidth of the Host Management Interface (see What is the bandwidth of the host interface?), by pipeline delays in receiving and transmitting and receiving Ethernet packets and by the fact that packet bridge data is single buffered.The following sequence allows a packet to be transmitted via the packet bridge
- Packet data is written via HMI
- Packet data ready signal given via HMI.
- Wait for next isochronous cycle boundary to schedule packet for transmission.
- 1 isochronous cycle pipeline delay before transmit ready.
- Wait for asynchronous portion of isochronous cycle and transmit.
The following sequence allows a packet to be transmitted via the packet bridge
- Packet received via Ethernet
- Packet data copied from Ethernet receive buffer to packet bridge receive buffer during following isochronous cycle.
- Host discovers packet available in packet bridge receive buffer.
- Host reads packet data via HMI.
- Host released packet bridge receive buffer via HMI.
When CobraNet transmits and receives the various word-lengths (16-bit, 20-bit and/or 24-bit audio), how does it handle the incoming and outgoing words? Are they truncated or dithered? Are transmit and receive word lengths handled identically?
24 significant bits of data is present on the synchronous serial audio interface. The resolution of the audio on the network is determined by the transmitter. If you select to transmit fewer than 24-bits onto the network, the data from the audio interface is truncated to the selected resolution before reaching the network. Receivers automatically adjust their behavior based on the configuration of the corresponding transmitter. If you are receiving a 16 or 20-bit audio channel from the network, the remaining 8 or 4 least significant of the bits are 0 filled to generate the 24-bit data that is sent out the audio interface.
The CobraNet interface can transmit up to 4 bundles onto the network. Each of the 4 bundles may contain up to 8 audio channels. The CobraNet interface is thus capable of transmitting up to 32 channels onto the network.The CobraNet interface can receive up to 4 bundles from the network. Each of the 4 bundles may contain up to 8 audio channels. The CobraNet interface is thus capable of receiving up to 32 channels from the network. Audio I/O between the CobraNet interface and the host hardware is accomplished through 4 bi-directional synchronous serial interfaces. The data rate of the serial ports is selectable to provide 2, 4 or 8 audio channels in each direction on each link. All serial interfaces must run at the same data rate. The CobraNet interface thus supports a maximum of 64 audio channels (32 in and 32 out).
The isochronous cycle is currently fixed at 1-1/3ms or 64 samples at 48Ksample/second. In order to support shorter delays through the network (see Are there plans to support lower delay through the network?), the isochronous cycle time will need to be shortened. Different cycle times may be deployed in support of other audio sample rates (see Are there plans to support sample rates other than 48K?) and video (see Are there plans to support video?).
To do SNMP queries, you’ll need to first get a PC connected to your CobraNet Network. If you are using the CobraNet Evaluation Kit, the kit consists of two EV-1 or EV-2 boards connected through an Ethernet crossover cable. To get a third device, the PC connected into this setup, you will need to obtain a Ethernet hub or switch. Most Ethernet equipment that you buy at a local electronics or computer store will work with CobraNet.To do the SNMP queries, you’ll need to download and install a copy of CobraNet Discovery from our web site. Install this on your PC. The purpose of this application is to get IP addresses assigned to the CobraNet devices. Run CobraNet Discovery and select the Configuration tab, select the appropriate Network Interface Card (NIC) and check the Enable Auto Assignment option. Flipping back to the Discovery tab, you should now see entries in the list and the entries should have IP addresses assigned to them.Download install the MG-SOFT MIB browser. You will use this application to retrieve and values of SNMP variables. Download the CobraNet MIB file CobraNet.mib.Run the MG-Soft MIB Compiler application that is installed with the MIB browser. Choose file/compile and locate CobraNet.mib on your computer. The CobraNet MIB will be compiled, then select "save all" and save to the default location. Close the MG-Soft MIB Compiler application.Start the MG-soft MIB Browser application. Select the MIB tab in the main window and move the CobraNet MIB entry from bottom window to the top window.Back in the first tab window of the MIB browser, you should be able to enter an IP address for a CobraNet device in the upper left and view and modify SNMP variables in the main window. CobraNet specific variables are probably what you are most interested in. These are located in the ...private.enterprises.peakAudio.CobraNet.coreManager branch. You can right click on variables to read a description of them.