CANopen Slave
CANopen Slave
CANopen Slave
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