Communication bus discussion
The old LV2 bus system, on the "bus continuum":
master/slave model < - - -flight computer model- - - - - - - - - - - - - - - - > peer-to-peer model
- with CAN, we can use either the master/slave model, or a peer-to-peer model
- with USB, we can only use the master/slave model
The Men Micro board only brings out one USB port, but it has 2 CAN nodes. We could go totally USB, or we could put the IMU on one CAN bus, and put everything else on another CAN bus. The last system (where everything was on the same CAN bus), was adequate bandwidth-wise. For more information on CAN bus bandwidth utilization, see this page. It is important to note that we might need more bandwidth in the future.
(!) The avionics team has been kicking around the idea of having a node that monitors the rocket state and turns on a tri-colored LED according to the system state. As far as we can tell, there is no way to monitor the USB bus, unless it's through the host (the flight computer). Messages are intended for only one device, which means there would be redundancy in the messages to the state monitoring node.
- lots of bandwidth
- device drivers are easy to write
- can easily test device drives with a laptop (don't have to mess with uncanny or Cantalope)
A USB node would most likely be self powered. The problem the avionics team had with the last rocket was that the bus voltage was a wide range. When the lithium ion batteries were being charged, the bus voltage could be as high as 20V. It was usually between 10V-15V, but each node needed a specific DC current (9V or 12V, exactly). Thus a switching power supply was needed for each node, to convert the "20V" bus down to the required voltage.
USB fact and question list
- uses master/slave model only
- requires a host and a hub
- FC uses USB 1.1 (full speed is 12Mbps)
- we will probably need to make our own connectors and special wiring
- Does PP1 require a physical layer chip?
- (./) MPC2500 has OHCI (which requires more hardware). This means we need to make or buy a chip.
- how do we do power up without 5 volts? (3.3V/5V)
- latency with multiple endpoints?
- Isochronous scheduling
- each device is polled every 1ms
- note that this does NOT mean that with 5 devices, you have 5ms between polls.
- when adding more isochronous devices, you have to make sure that the max packet size you allocate for each endpoint doesn't go over the maximum bytes allowed in a frame
- no handshaking, no way of knowing the data was received
- if a CRC check fails during an isochronous transfer, what happens?
- (./) If a CRC check fails, the receiver ignores the packet, and the transmitter doesn't try to resend the failed packet. For system-critical nodes where we really want the message to get through, the USB driver or client software would probably attempt to resend the packet during the next poll. According to the USB 1.1 spec, errors due to electrical failures are rare.
- "LEO" low earth orbit
- "GEO" geosynchronous earth orbit (or geostationary earth orbit)
- about 36,000 km (23,000 miles) above the earth
- this is the ultimate goal for satellite positioning
- when a satellite is in GEO, it moves at the same speed as the earth
- a satellite in GEO always looks like it's overhead