Queries on CSP usage

188 views
Skip to first unread message

Alpha

unread,
Jan 28, 2011, 9:30:00 AM1/28/11
to cubesat-spa...@googlegroups.com
Hi,

I am quite new to the Cubesat Space Protocol(or network layer for embedded) and am actually trying to understand the fundamentals, will really appreciate if you could help me out.

I have attached a draft of my system and basically my questions are :

1) is CSP software needed for the subsystem? My guess is YES. if No, how do we configure the address at subsystem? 

2) How do we address the passive system(no microcontroller) on the same I2C bus? does it mean they cant be addressed using the CSP protocol? are they allowed to be on the same bus that uses the CSP protocol to communicate?

3) in the CSP documentation, how does the sample server code and client code correspond to the compenents in the attached diagram? the main system uses server code and subsystem client code?

Thanks in advance!
system.JPG

Jeppe Ledet-Pedersen

unread,
Jan 28, 2011, 9:45:12 AM1/28/11
to cubesat-spa...@googlegroups.com
On 2011-01-28 15:30, Alpha wrote:
> Hi,

Hi,

> I am quite new to the Cubesat Space Protocol(or network layer for embedded)
> and am actually trying to understand the fundamentals, will really
> appreciate if you could help me out.

First of all, thank you for showing interest in CSP!

> I have attached a draft of my system and basically my questions are :
>
> 1) is CSP software needed for the subsystem? My guess is YES. if No, how do
> we configure the address at subsystem?

Well, you don't *need* CSP, but it's a viable option. You configure the
CSP addresses when you initialize CSP with csp_init() on the individual
hosts. Your I2C addresses will be configured in your device driver/CSP
interface.

> 2) How do we address the passive system(no microcontroller) on the same I2C
> bus? does it mean they cant be addressed using the CSP protocol? are they
> allowed to be on the same bus that uses the CSP protocol to communicate?

It is possible to both CSP and non-CSP devices on the same bus. You need
to distinguish between CSP addresses and I2C addresses. They are not
necessarily the same. CSP supports mapping to I2C addresses, when
setting up the routing table. If you want to access non-CSP devices on
the bus, you don't use CSP.

> 3) in the CSP documentation, how does the sample server code and client code
> correspond to the compenents in the attached diagram? the main system uses
> server code and subsystem client code?

It depends entirely on the functionality of your system. If your
subsystems provide some type of service to the main computer (say
measurement data), the subsystems will run servers. In this case, the
main computer will be the client.

Most likely, you will run servers on both the subsystems and on the main
computer.

I hope this answers your questions.

Best regards,
Jeppe

Alpha

unread,
Jan 28, 2011, 11:22:40 AM1/28/11
to cubesat-space-protocol
Hi Jeppe, thanks for the prompt and clear response. Much understood
now, just need some further clarifications:

> > 2) How do we address the passive system(no microcontroller) on the same I2C
> > bus? does it mean they cant be addressed using the CSP protocol? are they
> > allowed to be on the same bus that uses the CSP protocol to communicate?
>
> It is possible to both CSP and non-CSP devices on the same bus. You need
> to distinguish between CSP addresses and I2C addresses. They are not
> necessarily the same. CSP supports mapping to I2C addresses, when
> setting up the routing table. If you want to access non-CSP devices on
> the bus, you don't use CSP.

Okay, so your recommendation is that I address the passive device
directly using the default I2C address (the fixed I2C address in
datasheet) ?

> > 3) in the CSP documentation, how does the sample server code and client code
> > correspond to the compenents in the attached diagram? the main system uses
> > server code and subsystem client code?
>
> It depends entirely on the functionality of your system. If your
> subsystems provide some type of service to the main computer (say
> measurement data), the subsystems will run servers. In this case, the
> main computer will be the client.
>
> Most likely, you will run servers on both the subsystems and on the main
> computer.

I have checked out the GomSpace systems and will like to know:

on default configuration, is nanomind the client and the subsystems
(nanocam, nanopower, nanocom) the servers? since they(subsystem) are
feeding measurements when queried by nanomind. or does the subsystems
also act as client and initiate a connection as well?

Thanks!

Jeppe Ledet-Pedersen

unread,
Jan 29, 2011, 6:24:47 AM1/29/11
to cubesat-spa...@googlegroups.com
On 2011-01-28 17:22, Alpha wrote:
> Okay, so your recommendation is that I address the passive device
> directly using the default I2C address (the fixed I2C address in
> datasheet) ?

Yes, I guess that is your only option since you cannot access them using
CSP.

> I have checked out the GomSpace systems and will like to know:
>
> on default configuration, is nanomind the client and the subsystems
> (nanocam, nanopower, nanocom) the servers? since they(subsystem) are
> feeding measurements when queried by nanomind. or does the subsystems
> also act as client and initiate a connection as well?

Both the NanoMind and the subsystems are running servers and both sides
initiate connections. As an example, the NanoMind can fetch housekeeping
data from the NanoPower and the NanoPower can send event log messages to
the NanoMind.

The NanoCom is a bit special, since it acts as a router between the
internal satellite bus (CAN or I2C) and the space link, and thus has two
interfaces.

Best regards,
Jeppe

Alpha

unread,
Jan 29, 2011, 6:48:57 PM1/29/11
to cubesat-space-protocol
Thanks Jeppe!
Reply all
Reply to author
Forward
0 new messages