Marti Bolivar from LeafLabs talked about UniPro (Unified Protocol), which is the high-speed interface technology used for the modules to communicate with one another.
From а high level, UniPro is very easy to use, it is very mobile-friendly. There is a variety of other protocols that are built on UniPro. And Project Ara team is building a variety of their own protocols. Two established ones are also defined by the standards body of the UniPro: CSI-3 (Camera Serial Interface) and UFS (Universal Flash Storage) protocols. CSI-3 is a stack on top of UniPro, which transmits camera data and controls signals through UniPro network. UFS is a flash-storage standard.
The main takeaway message about UniPro is that it provides bi-directional connections for the data transfer. At the heart of the phone there is a switch that allows to create connections between modules. It’s possible to have zero, one, or more connections between any pair of modules.
The interface blocks are presented with the blue squares. Each UniPro port on an interface block establishes a link with a corresponding UniPro port on a switch in the Endo. Each module is assigned a “Device ID” (like an IP address). When one module wants to send a packet to another module, it embeds the Device ID within the packet, that is how the destination is identified.
There is a couple of non-features of UniPro that should be emphasized:
– There are no stream semantics. It’s always datagrams, message boundaries are preserved, and messages are delivered in order.
– Another non-feature is multicast. Connections are always between a pair of modules only. You can’t have a CPort share between three modules, for example (CPort means “connection-oriented port” in UniPro jargon).
In terms of logical structure UniPro is very strictly layered according OSI (Open Systems Interconnection) seven layer model. The scope of UniPro specification is between physical layer and transport layer. The transport layer is where the bi-directional datagrams are sent and received.
CSI-3 and UFS are application-specific protocols that are built on the top of UniPro, as was mentioned already. But there is a need of a lot more of protocols. Project Ara team is working on that.