Subject:
|
Re: NXT - ARM7's and USB
|
Newsgroups:
|
lugnet.robotics
|
Date:
|
Mon, 9 Jan 2006 03:12:18 GMT
|
Viewed:
|
1661 times
|
| |
| |
In lugnet.robotics, Kevin L. Clague wrote:
Your on the right track but your terminology is a little off. USB like many of
the next generation protocols is indeed point-to-point.
However, the problem is at the protocol level (as you start to point out). ALL
USB transactions are initiated by a host controller (master as a lot of people
are calling it). There is only one host per USB bus. Every transaction involves
a token packet which explains the type of transfer, endpoint address, and
other information needed to handshake with a target device. Token packets are
only sent by a host device implementing a host controller interface (HCI). There
are three current standards for HCIs which define how to send and track packets
(frames) on the bus (UHCI and EHCI developed by Intel for 1.1 and 2.0 specs
respectively and the older OHCI Compaq spec which is I believe has been
essentially deprecated by Intels dominance).
Hopefully the above makes sense and was somewhat informative! My bet would be
just like the majority of embedded devices, like the NXT, they dont come with a
USB controller implementation due to cost and memory limitations. You see one of
the trade offs of creating cheap host controllers is that typically software,
i.e. drivers, need to manage the host controller, I/O (DMA tables) and packet
interfaces. This added complexity yields larger drivers and with the NXTs
firmware specs doesnt seem like a plausible option. Not to mention that on top
of that you need the various USB class drivers to work with devices (storage,
human interface devices (HID), audio, etc.) built into the firmware. You just
dont have the memory!
As many of have pointed out, what is really needed is some small device that can
act as a host controller connected to the NXT in order to initiate commands.
What I dont quite understand is what the NXT looks like as a target device
within the USB bus? In other words, the NXT itself is not a USB device but I
suspect it has various USB device functions exposed per port (via descriptors).
Im wonder if the NXT can act as a target serial device that you can send
commands to via USB (though I think the bluetooth capabilities have more
potential).
Anyway, Ive signed up for the Developers Program (doubt I will be picked) but
I have some ideas/thoughts for writing driver interfaces for it (my real job
anyway). I bought the original Mindstorms while I was an undergrad and sort of
lost interest in it due to time constraints. Saw the NXT article posted on
Slashdot and then found Lugnet from my beloved Google. Wow, its good to know Im
not the only one that still loves Legos!
-aps (Alexander)
PS Uggh, without an official membership ID, getting this message posted was
tough!
|
|
Message has 2 Replies: | | Re: NXT - ARM7's and USB
|
| Hi Alexander, (...) I suspect it will have a bidirectional stream of data, like the serial or USB towers of the current system. (...) It sure is. (...) I also suspect bluetooth will communicate in the same way. Of course, I could be completely wrong (...) (19 years ago, 12-Jan-06, to lugnet.robotics)
|
Message is in Reply To:
| | Re: NXT - ARM7's and USB
|
| (...) Chris, I know little about USB, but USB communication is not peer to peer like an ethernet port. You have masters and slaves, or hosts and devices. Whether you are host or device, you still need to be able to communicate bidirectionally. If (...) (19 years ago, 8-Jan-06, to lugnet.robotics)
|
9 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|