Article View: comp.robotics
Article #961Re: 68HC11EVBU fanout data
From: Fred G Martin
Date: Tue, 13 Oct 1992 16:23
Date: Tue, 13 Oct 1992 16:23
53 lines
2894 bytes
2894 bytes
In article <1992Oct12.163640.25052@hemlock.cray.com> kilian@cray.com (Alan Kilian) writes: >The synchronous connections are generally daisy chained so that each CPUs >output only drives one other CPUs input. This way you can connect an infinite >number of CPUs together. Like this: > > CPU A CPU B CPU C >+-----------+ +----------+ +-----------+ >| MOSI +---->-----+ MOSI MISO+-->--+ MOSI MISO +-->--+ >| MISO +--<-+ | | | | | >+-----------+ | +----------+ +-----------+ | > +----------------------------------------+ >Now believe it or not this diagram is correct. >CPU A is the master. CPUs B&C are slaves. Alan, While this arrangement will probably work technically, I don't think it's standard practice. First off, it's generally not problematic for a CMOS output to drive lots and lots of CMOS inputs. 10 is easy, 100 is likely to be possible. So there isn't a fan-out problem in the first place that might need to be solved by the daisy-chaining scheme. Also, in your solution, the SCK (serial clock) line from the master must drive all of the slaves, so if there is a fan out problem, the daisy-chain doesn't solve it. Second, your scheme is very sensitive to the exact number of CPUs in the chain. If the master CPU (CPU A in your example) wants to get data back from CPU B, it must know exactly how many CPU's are in the return data path (in your example, one; CPU C). This isn't a very easy arrangement to deal with in software: if you add a CPU to the loop, either you have to change a bunch of constants or get the network to figure out for itself how many CPUs there are. The more accepted solution will tie together each of the MOSI, MISO, and SCK lines for each CPU. The one CPU is the master (its Master Out Slave In functions as output) and all the other CPUs are slave (their MOSIs are input). Likewise, a given slave can respond to the master by driving its MISO (Master In Slave Out). This topology is much more robust when it comes to adding and removing nodes; if each node has a unique ID, then the master can send out a network package of sorts that is addressed to a particular slave. If that slave doesn't respond, well then it is not connected. But communication with all of the other slaves can continue without modification. - Fred
Technical Details
Message-ID:
<1992Oct13.162310.3110@news.media.mit.edu>Path:
arc1-ca.pugleaf.net!sparky!uunet!stanford.edu!rutgers!micro-heart-of-gold.mit.edu!news.media.mit.edu!fredmReferences:
<1992Oct12.163640.25052@hemlock.cray.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!stanford.edu!rutgers!micro-heart-of-gold.mit.edu!news.media.mit.edu!fredm From: fredm@media.mit.edu (Fred G Martin) Newsgroups: comp.robotics Subject: Re: 68HC11EVBU fanout data Message-ID: <1992Oct13.162310.3110@news.media.mit.edu> Date: 13 Oct 92 16:23:10 GMT References: <1992Oct12.163640.25052@hemlock.cray.com> Sender: news@news.media.mit.edu (USENET News System) Organization: MIT Media Laboratory Lines: 53