You can do this with Ethernet, however, it will be very expensive. In
order to get determinism from Ethernet it would be necessary to have
each PC have 20 ethernet cards (20 cards should be possible with a
combination of PCI and USB ethernet cards). Ethernet is only
deterministic in a point to point configuration,. USB is deterministic
in a multi-point configuration so using USB as the bus for ethernet
adapters will work.
You would need to wire the system like this
1
20 --/|-- 2
19 --|\ / | \ /|-- 3
18–|/\ \ | / /|–4
17+/\ \ \ | / / //+5
16-----------------------6
15+// / / | \ \ /+7
14–|/ / | \ /|–8
13–|/ \ | / |–9
12–|/–10
11
Obviously, I can’t show all the connections in ASCII graphics, but you
get the idea (each machine has a point to point connection with each
other machine).
Now, if the above seems ridiculous, I agree, and if you are using QNX6
you better off using a deterministic network (20 Mbit arcnet would be
ideal, if you can find the hardware, you would then need to write a
20Mbit arcnet driver for Qnet - QSSL should be able to supply just about
everything you need to do this, as they support 20Mbit arcnet on QNX4).
Note, however, that you system may not meet the 1.3 millisecond deadline
during a bus reconfiguration cycle on 20Mbit arcnet, which, if memory
serves, is about 5ms (i.e. your system may not work during the time when
nodes are being taken off-line or brought on-line - this may - or may
not - be a problem for you - and can be solved by having dual networks).
Another important point is that you will want to use QNX native
networking, as TCP/IP does not carry kernel level priority information
and is therefore unsuitable for distributed real-time systems (i.e.
priority inversion can - and will - occur on a system-wide basis).
Right now (given the maturity of QNX6 wrt deterministic networking) I
would suggest using QNX4. Given the right networking hardware your
project would be easily doable in QNX4 (in fact there simply isn’t a
better O/S in the world for doing what you want to do).
-----Original Message-----
From: ycao [mailto:ycao@mail.ipp.ac.cn]
Posted At: Wednesday, May 23, 2001 8:40 PM
Posted To: advocacy
Conversation: advice please!
Subject: advice please!
hi,all
We will build a conrtol system ,and the demand of the realtimeness
and
stability is very high.The system consists of 20 industrial PCs,
which will be connected by network adapter.(however,it maybe
unreasonable,but we have no enough money,and want tomake a try ) The
control
cycle time is about 1.3 milliscend,that is we have only 1.3 milliscend
to
transfer data from one node to others,inluding the date processing on
every
nodes.It must be mentioned that the data transfered from one node to
others
is about 20 bytes every time.Among the control cycle time the transfer
frome
one node to another may happen 20 times,and some of them can be
paralleled.
We choose QNX as the OS for the control system above.But as a
greenhand i
can’t conclude that QNX will be fit for the system.So i wish you give me
a
hint and help me out .Give me any advice will be good.
Thank you beforehand!