11.01.2014 Views

CANopen Slave

CANopen Slave

CANopen Slave

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Dual-Port-Memory 38/112<br />

3.3.2 Extended Status<br />

The content of the channel specific extended status block is specific to the implementation. Depending<br />

on the protocol, a status area may or may not be present in the dual-port memory. It is always<br />

available in the default memory map (see section 3.2.1 of netX Dual-Port Memory Manual).<br />

Note:<br />

Have in mind, that all offsets mentioned in this section are relative to the beginning of the<br />

common status block, as the start offset of this block depends on the size and location of<br />

the preceding blocks.<br />

Extended Status Block<br />

Offset Type Name Description<br />

0x0050 UINT8[ ] abExtendedStatus[432] Extended Status Area<br />

Protocol Stack Specific<br />

Status Area<br />

Table 14: Extended Status Block (General Structure)<br />

Extended Status Block Structure<br />

typedef struct CANOPEN_SLAVE_EXTENDED_STATE_Ttag<br />

CANOPEN_SLAVE_EXTENDED_STATE_T;<br />

#define CANOPEN_SLAVE_EXT_STATE_FLAG_CAN_INIT 0x00000001L<br />

#define CANOPEN_SLAVE_EXT_STATE_FLAG_CAN_ACTIVE 0x00000002L<br />

#define CANOPEN_SLAVE_EXT_STATE_FLAG_PASSIVE 0x00000004L<br />

#define CANOPEN_SLAVE_EXT_STATE_FLAG_BUS_OFF 0x00000008L<br />

#define CANOPEN_SLAVE_EXT_STATE_FLAG_RX_OVERFLOW 0x00000010L<br />

#define CANOPEN_SLAVE_EXT_STATE_FLAG_TX_OVERFLOW 0x00000020L<br />

#define CANOPEN_SLAVE_EXT_STATE_FLAG_WDG<br />

0x00000100L<br />

#define CANOPEN_SLAVE_EXT_STATE_CTRL<br />

0x00001000L<br />

#define CANOPEN_SLAVE_EXT_STATE_NRDY<br />

0x00002000L<br />

#define CANOPEN_SLAVE_EXT_STATE_TIMEOUT<br />

0x00004000L<br />

#define CANOPEN_SLAVE_EXT_STATE_UNKNOWN<br />

#define CANOPEN_SLAVE_EXT_STATE_OPERATIONAL<br />

#define CANOPEN_SLAVE_EXT_STATE_STOP<br />

#define CANOPEN_SLAVE_EXT_STATE_PRE_OPERATIONAL<br />

#define CANOPEN_SLAVE_EXT_STATE_INITIALISING<br />

#define CANOPEN_SLAVE_ADD_DETAIL_SIZE<br />

0x00000000L<br />

0x00000001L<br />

0x00000002L<br />

0x00000080L<br />

0x000000FFL<br />

0x00000003L<br />

struct CANOPEN_SLAVE_EXTENDED_STATE_Ttag<br />

{<br />

TLR_UINT32 ulFlags;<br />

TLR_UINT32 ulNodeState;<br />

TLR_UINT32 ulBusOffEveCnt;<br />

TLR_UINT32 ulErrorPassiveEveCnt;<br />

TLR_UINT32 ulRxOverflowCnt;<br />

TLR_UINT32 ulTxOverflowCnt;<br />

TLR_UINT32 ulReserved;<br />

TLR_UINT32 ulTimeoutCnt;<br />

};<br />

TLR_UINT32 aulReserved[4];<br />

TLR_UINT32 ulDiagInfoCount;<br />

TLR_UINT32 ulLastDiagInfo;<br />

TLR_UINT32 ulMaxRecvIdx;<br />

TLR_UINT32 ulMaxSendIdx;<br />

TLR_UINT32 aulAddDetail[CANOPEN_SLAVE_ADD_DETAIL_SIZE];<br />

<strong>CANopen</strong> <strong>Slave</strong> |<br />

DOC070901API06EN | Revision 6 | English | 2010-06 | Released | Public © Hilscher, 2006-2010

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!