Summary: This module was created to support students effort on how to design a scalable system based on multiple MSP430 with the goal of maximizing the processing power while reducing the power consumption used. The hot-plug property is mandatory to enable the system to evolve while being used, and to facilitate setting and management for in-situ deployment or modification.
You task is to develop an architecture able to permit several microcontrollers (MCU, for instance the MSP430) to cooperatively manage a task. The different MCU will be surrounded by everything necessary to reside on a board. Since the consumption is a primary concern, the MCU boards should be able to be inserted or extracted from the system "live". That means you have to create a system able to locate, identify and assign some kind of addresses to the different boards and be able to swap them easily. We want a completely automated process, with the least manual actions possible to make it work. The choice of the MSP430 is to respect the emphasis to the power consumption. This MCU should provide a basis to fix several constraints.
The applications will be the ubiquitous computing in smart spaces and embedded systems where the Space, Weight, Power and Cost are the main constraints. Your solution should respect those criteria.
The system should be open, well documented and be able to be demonstrated on a PBC as small as possible (wrt to the size of the power source used).
If we choose to use a mother board, we will restrain the architecture to some fixed number of "port", we could do best than that. We have to decide of a serial or parallel port which could be used to address, transmit data, and only restrain the solution to wider constraints. The best example could be the SPI bus. It enable several peripherals to be connected to the same wires but it does not permit to address them individually because the protocol does not contain addressing capability. The less capable bus, the I2C is able to assign an address but is too slow. We need to find a more suitable manner. Another consideration in this project is the power consumption. Adding to much chips, or greatly rising the clock frequency will not be a good idea. Moreover, space constraints should be kept to the minimum, as this is a must for the application. We need to choose a protocol, a mix of some, or develop our own. To help choose, we have to keep in mind to be easier to develop, more power efficient, and saving space on the PCB, the best idea whould probably to find only 1 IC which implement all the requested features.
The SPI with I2C protocol could be a solution, but restrain the available address to very few, since the I2C addresses are often hardwired or partially. A CPLD or FPGA will be certainly able to do what we want to do but we have to develop custom protocol which means a lot of work and besides, the consumption of this solution will be not as optimized as it could be. Next, we could implement a Time Multiplexed Sharing of a common communication medium, but we have to find a suitable IC. Last idea is to use a domestic, industrial or automotive bus, which should surely have already solve this problem.