Project Home
Project Home
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - Qnet across SPI?: (6 Items)
   
Qnet across SPI?  
Hi,

A customer plans to connect three ARM9 based CPUs using SPI and is asking if it is possible to use Qnet?

Thanks,

Garry?
Re: Qnet across SPI?  
SPI is just a bus. But if you can run Ethernet on top of it I assume you 
can run Qnet over it. Or you may be able to enhance Qnet to work over 
another transport.

/P

On 10-11-10 06:31 AM, Garry Bleasdale wrote:
> Hi,
>
> A customer plans to connect three ARM9 based CPUs using SPI and is
> asking if it is possible to use Qnet?
>
> Thanks,
>
> Garry?
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post74180
>
RE: Qnet across SPI?  
Cheers Patrik.

Regards,
 
Garry
 
Garry Bleasdale
Field Application Engineer
QNX Software Systems (UK + Ireland)
 
Email - gbleasdale@qnx.com
Tel - +44 (0) 1223 862077
www.qnx.com

-----Original Message-----
From: Patrik Lahti [mailto:community-noreply@qnx.com] 
Sent: 10 November 2010 14:47
To: general-networking
Subject: Re: Qnet across SPI?

SPI is just a bus. But if you can run Ethernet on top of it I assume you

can run Qnet over it. Or you may be able to enhance Qnet to work over 
another transport.

/P

On 10-11-10 06:31 AM, Garry Bleasdale wrote:
> Hi,
>
> A customer plans to connect three ARM9 based CPUs using SPI and is
> asking if it is possible to use Qnet?
>
> Thanks,
>
> Garry?
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post74180
>



_______________________________________________

General
http://community.qnx.com/sf/go/post74198
Re: RE: Qnet across SPI?  
A pseudo-Ethernet driver approach would be the most straight forward thing to do.  Making it look like an Ethernet 
driver has the advantage of letting you use IP or QNET or any other protocol for the upper layers seamlessly.  The 
serial RapidIO package done a few years back used this method (albeit with io-net and not io-pkt).  You're not going to 
get the best performance since you'll be pulling in QNET's reliability layer when you don't need it, but bypassing the 
layer is not for the faint of heart.

In terms of overhead, you could just send Ethernet packets over the interface as is or, if there's too much overhead, 
simply remove the Ethernet header before sending the packet and add it back after receiving a packet (before sending it 
up the stack).  The MAC that you select for each host could uniquely determine the appropriate SPI interface to transmit
 on. 
       Robert.

RE: RE: Qnet across SPI?  
Hi Robert,

Good to hear from you and thanks very much for the detailed response.

Regards,
 
Garry
 
Garry Bleasdale
Field Application Engineer
QNX Software Systems (UK + Ireland)
 
Email - gbleasdale@qnx.com
Tel - +44 (0) 1223 862077
www.qnx.com
-----Original Message-----
From: Robert craig [mailto:community-noreply@qnx.com] 
Sent: 12 November 2010 19:20
To: general-networking
Subject: Re: RE: Qnet across SPI?

A pseudo-Ethernet driver approach would be the most straight forward
thing to do.  Making it look like an Ethernet driver has the advantage
of letting you use IP or QNET or any other protocol for the upper layers
seamlessly.  The serial RapidIO package done a few years back used this
method (albeit with io-net and not io-pkt).  You're not going to get the
best performance since you'll be pulling in QNET's reliability layer
when you don't need it, but bypassing the layer is not for the faint of
heart.

In terms of overhead, you could just send Ethernet packets over the
interface as is or, if there's too much overhead, simply remove the
Ethernet header before sending the packet and add it back after
receiving a packet (before sending it up the stack).  The MAC that you
select for each host could uniquely determine the appropriate SPI
interface to transmit on. 
       Robert.





_______________________________________________

General
http://community.qnx.com/sf/go/post74512
Re: RE: Qnet across SPI?  
A good reason to not try this would be the underlying bus architecture. SPI is a pure master / slave bus, and the slaves
 are not able to initate any actions on their own behalf. Modeling a peer-to-peer behavior would require the master to 
(very) frequently poll for available data from the slave. That incurs overhead on the master side, and also potentially 
long delays (worst case at least a ticksize) for outgoing frames from the slave.

So unless the slave device has some means to signal an interrupt to the master CPU, 'upstream' performance may be poor. 
Of course the slave could buffer a large number of frames to transmit at once, so the effective throughput might not 
even be so bad, but if you tried to ping-pong, things'd get slooow.

- Thomas