Hardware Reference
In-Depth Information
LAN Port
The little SMSC LAN9512 used for the USB ports has LAN in the part name for a reason. If you were to take a look at
the high block-level design of the LAN9512 you will notice that it has one upstream USB port and three downstream
ports. A downstream USB port is what you, the end user, can use to connect into and the upstream ports are what the
USB hub uses to talk to the rest of the computer system. Hang on, you said three USB ports? Yes, and you get only two.
The other USB downstream port is internally connected to the Ethernet physical layer interface chip (or PHY) in order
to provide you with network functions. That's an amazing amount of functionality from such a small package. Like I
said, it comes at a price: we now have two USB ports and a LAN port sharing the one single upstream port. Obviously
you may encounter bandwidth issues when using the USB ports for storage and when accessing the network
functions. It's the price we must pay to save cost and space on the Pi.
The Ethernet PHY that I spoke about previously is feature-rich for such a small package: it even supports Wake-
on-LAN functions and TCP/UDP checksum offloading. Checksum offloading will be very appreciated, given that we
have limited CPU cycles. The offload functions allow the Ethernet PHY to calculate the TCP/UDP checksum rather
than leaving this task for the main CPU.
CSI Header
Moving on, we have a little black connector behind the LAN port. This black header is a 15-pin flat flex cable header
for the MIPI Alliance's CSI-2 interface. CSI stands for Camera Serial Interface and the 2 stands for version 2.
What's so good about the CSI then? The CSI interface standard defines a unidirectional serial interface standard for
a CSI-compliant camera device. The good thing about the CSI standard when compared to a cheap USB web camera is
that the standard defines what they call the command control interface (CCI) master and slave and the CSI transmitter
and receiver. The architecture of the CCI master and slave is what makes this interface a good idea for the Pi.
The CCI master, according to the CSI standard, can be an application or some low-level hardware controller; in
the case of the Raspberry Pi it's inside the low-level hardware as part of the Broadcom GPU. The GPU can talk via the
CSI interface to act as a CCI master for a cheap camera unit. The camera can then communicate directly to the GPU
via the CSI interface: the camera will be the slave device to the GPU. This is a really great way to set up a camera as
the GPU will take care of decoding the raw video from the camera. Given that the Raspberry Pi has limited CPU cycles
this is a very clever use of the GPU (by limited CPU cycles, I mean that you're working with a slower processor; for
example, your Pentium 3 would be considered slower than your Core i7 processor or you could say the Pentium 3 is
CPU cycle-limited when compared to the Core i7).
Now that you know that I like about the CSI interface I am going to talk about where it falls very short on the Pi.
CSI defines the hardware-level interface nothing more, nothing less and if you just take the hardware at face value
it's quite simple. Unfortunately, as everyone knows, you need a little something called software to make use of the
hardware.
CSI defines nothing about how you write the software or even where it runs. You could embed code in firmware
or have it running fully in software.
Firmware is the name for code that is stored inside the chip itself or inside a small flash chip attached to the
device. An example is a common Mp3 player, which uses firmware to store its small operating system.
Note
It also will not define how you communicate over the CSI bus. While it may be easy to find a camera that will
physically fit and is compliant with CSI-2, the chances of it working with the Pi are nonexistent. After all, the GPU is a
proprietary device and the CSI interface is part of it. The foundation is looking at making a small CSI camera available
to the community later on. For the time being we can do nothing useful with this interface.
 
 
Search WWH ::




Custom Search