Concerto devices have two Bosch-licensed CAN controllers allowing support of CAN protocol version two and both parts A and B, bit rates up to 1 Mbps, and thirty two message objects, each with its own identifier. These are maskable interrupts, so the user can interrupt either the host, the ARM3, or the C2000 core with a CAN transmission. The programmable loop-back mode for self test is also supported, so if multiple nodes are out on CAN the user can do the roll back self-testing operation. There are multiple options, but two of the main protocols are CAN open and DeviceNet. Other protocols, such as POWERLINK, EtherCAT, Profinet, EtherNetIP, and also TCP/IP are also included. These are all different subsets of the CAN architecture. TI has also enabled USB On-The-Go on the Concerto device, which has an integrated controller and PHY. This is USB 2.0 full speed, 12 Mb operation compliant, and it will work with On-The-Go/host/device, or host and device, able to do transfers, control, interrupts, bulk, and isochronous. The host will support up to eight endpoints, with endpoints zero and one hardwired for control transfers only, which is one in and one out, and then endpoints two through seven are defined by the firmware. There is 4 kB of dedicated endpoint memory which is DMA memory, and one of the endpoints in this device may be defined as double-buffered for the isochronous exercises.