1 | /*-----------------------------------------------------------------------------
|
---|
2 | vmod.h -- VMOD specific definitions (message specifiers, values)
|
---|
3 |
|
---|
4 | Copyright (c) 1994 JANZ Computer AG
|
---|
5 | All Rights Reserved
|
---|
6 |
|
---|
7 | Created 96/08/01 by Stefan Althoefer
|
---|
8 | Version 1.19 of 00/03/29
|
---|
9 |
|
---|
10 | -----------------------------------------------------------------------------*/
|
---|
11 |
|
---|
12 | #ifndef vmod_DEFINED
|
---|
13 | #define vmod_DEFINED
|
---|
14 |
|
---|
15 | #ifdef __cplusplus
|
---|
16 | extern "C" {
|
---|
17 | #endif
|
---|
18 |
|
---|
19 | /* Specifiers of general messages */
|
---|
20 | #define M_NOP 0x00 /* nil message, no operation */
|
---|
21 | #define M_CONNECT 0x01 /* connect to host without interrupts */
|
---|
22 | #define M_CONNECT_INTR 0x02 /* connect to host with interrupts */
|
---|
23 | #define M_DISCONNECT 0x03 /* disconnect from host */
|
---|
24 | #define M_IDVERS 0x04 /* get id and version */
|
---|
25 | #define M_MSG_LOST 0x05 /* messages lost, host reads too slow */
|
---|
26 | #define M_DEBUG 0x06 /* formatted debug output */
|
---|
27 | #define M_SELECT 0x07 /* select functionality */
|
---|
28 | #define M_NEWHOSTIF 0x08 /* switch to new stylish hostif */
|
---|
29 | #define M_MEMORY 0x09 /* get info about memory */
|
---|
30 | #define M_INQUIRY 0x0a /* get some info about module status */
|
---|
31 |
|
---|
32 | #define M_LOCK_LOADER 0x0b /* lock loader on next reset */
|
---|
33 | #define M_FW_DOWNLOAD_req 0x0c /* host starts a firmware download */
|
---|
34 | #define M_FW_DOWNLOAD_CONT_ind 0x0d /* target requests for more data */
|
---|
35 | #define M_FW_DOWNLOAD_CONT_res 0x0e /* host responds with next data */
|
---|
36 | #define M_FW_DOWNLOAD_con 0x0f /* target confirms the service */
|
---|
37 |
|
---|
38 | #define M_SET_AFIL 0x10 /* set acceptance filter mask */
|
---|
39 | #define M_INIT_FDPMQUEUE 0x11 /* initialize fast dpmqueue */
|
---|
40 | #define M_HW_CONF 0x12 /* configure hardware features */
|
---|
41 | #define M_SET_PRIO_BND 0x13 /* set priority boundaries */
|
---|
42 | #define M_HANDLE_HOST_GUARDING 0x14 /* spec dealing with host-guarding */
|
---|
43 |
|
---|
44 | #define M_FMSG_LOST 0x15 /* lost messages on fast queue */
|
---|
45 |
|
---|
46 | #define M_DEV_DEBUG 0x1f /* for debugging purposes */
|
---|
47 |
|
---|
48 | /* host guarding stuff concerning macros */
|
---|
49 | #define GUARD_ACTIVE 0x01
|
---|
50 | #define GUARD_INACTIVE 0x00
|
---|
51 | #define ALIVE 0xaa
|
---|
52 | #define DEAD 0x55
|
---|
53 |
|
---|
54 | /* module/host dependant CANopen configuration */
|
---|
55 | #define M_CONF_CANOPEN_MUX 0x16 /* user <-> CANopen relevant config. */
|
---|
56 | #define M_CONF_CANOPEN_MUX_DPM_ENDIAN 0x0 /* endianess of host */
|
---|
57 | /* possible values: */
|
---|
58 | #define COP_DPM_BIG_ENDIAN 0x00 /* mapping for Big Endian hosts */
|
---|
59 | #define COP_DPM_LITTLE_ENDIAN 0x01 /* mapping for Little Endian hosts */
|
---|
60 | /* mux for seeing the SYNC or not at host */
|
---|
61 | #define M_CONF_CANOPEN_MUX_SEND_SYNC_TO_HOST 0x1 /* visibility of SYNC on host */
|
---|
62 |
|
---|
63 | #define M_ADD_FDPMQUEUE_PRIO 0x17 /* create one additional prioritized fast fromhost dpmqueue */
|
---|
64 |
|
---|
65 | /* BULK_BUFFER-stuff shouldn't it belong to mican.h (ICANOS) ??? */
|
---|
66 | #define M_CONFIG_BULK_BUFFER 0x18 /* configbulk buffer for CAN-Layer-2-messages */
|
---|
67 | #define MS_CONFIG_BULK_BUFFER_TIMEOUT_ONLY 0x0000 /* configure bulk buffers timeout to send */
|
---|
68 | #define MS_CONFIG_BULK_BUFFER_TIMEOUT_SIZE 0x0001 /* configure bulk buffers timeout and size */
|
---|
69 |
|
---|
70 | #define M_CONFIG_SNIFF 0x1a /* config sniff buffer */
|
---|
71 | #define MS_CONFIG_SNIFF_BUFFER_TIMEOUT_ONLY 0x0000 /* config sniff buff. timeout to send */
|
---|
72 | #define MS_CONFIG_SNIFF_BUFFER_TIMEOUT_SIZE 0x0001 /* config sniff buff. timeout and size */
|
---|
73 | #define MS_CONFIG_SNIFF_BUFFER_ECHO 0x0002 /* config sniff buff. echo from queues */
|
---|
74 | #define MS_CONFIG_SNIFF_FILTER_STD 0x0003 /* set sniff acc. filt. (Std. CAN frames) */
|
---|
75 | #define MS_CONFIG_SNIFF_FILTER_XTD 0x0004 /* set sniff acc. filt. (Xtd. CAN frames) */
|
---|
76 | #define MS_SNIFF_INQUIRY 0x0005 /* inquiry module status (refer to M_INQUIRY) forces sending of INQUIRY message with SNIFF specifier */
|
---|
77 | #define MS_SNIFF_IDVERS 0x0006 /* inquiry module version (refer to M_IDVERS) forces sending of IDVERS message with SNIFF specifier */
|
---|
78 | #define MS_SNIFF_BUSLOAD_ALL 0x0007
|
---|
79 | #define MS_SNIFF_CONFIG_BUSLOAD 0x0008
|
---|
80 | #define MS_SNIFF_INQUIRY_CONTROLLER 0x0009 /* inquiry CAN controller status (refer to M_INQUIRY) forces sending of INQUIRY_CONTROLLER message with SNIFF specifier */
|
---|
81 |
|
---|
82 |
|
---|
83 |
|
---|
84 | /* message specifier/subspecifier for measurement of CAN bus load */
|
---|
85 | #define M_BUSLOAD 0x19 /* configure resp. send/receive bus-load-measurement parameter/values */
|
---|
86 | #define MS_CONFIG_BUSLOAD 0x0000 /* configure/de-/activate bus-load parameters (host -> module) */
|
---|
87 | #define MS_REQUEST_BUSLOAD_ALL 0x0001 /* configure/de-/activate bus-load parameters (host -> module) */
|
---|
88 |
|
---|
89 |
|
---|
90 | /* Customer 1 */
|
---|
91 | #define M_CUST1 0xc0 /* Customer 1 */
|
---|
92 |
|
---|
93 | /* Subspecs for Customer 1 */
|
---|
94 | #define MS_CUST1_INIT_req 0x0000 /* SysClk Init */
|
---|
95 | #define MS_CUST1_START_TS_req 0x0001 /* OBSOLET! */
|
---|
96 |
|
---|
97 | /* Subspecs/defines for module inquiry M_INQUIRY */
|
---|
98 | #define MS_INQUIRY_STATUS 0x0000 /* CAN Chip / module status */
|
---|
99 | #define MS_INQUIRY_TIMING_MASKS_TERM 0x0001 /* CANbus bit rate, accept */
|
---|
100 | /* masks, termination state */
|
---|
101 | #define MS_INQUIRY_HOST_IF 0x0002 /* new/old host interface */
|
---|
102 | /* on module */
|
---|
103 | #define MS_INQUIRY_AFIL 0x0003 /* looks for acceptance mask */
|
---|
104 | #define MS_INQUIRY_EXTD_STATUS 0x0004 /* CAN Chip / module status */
|
---|
105 | /* superior format. */
|
---|
106 |
|
---|
107 | #define MASK_COUNT 50 /* count of ID masks which will be sent */
|
---|
108 | /* on a MS_INQUIRY_AFIL response (CAVE AT */
|
---|
109 | /* the buffer size to loose no messages!) */
|
---|
110 | #define INVALID_ID 9 /* signals out of id-range in INQUIRY_AFIL */
|
---|
111 |
|
---|
112 | #define INQUIRY_CTRL_82C200 0x01 /* 82C200 extended infos */
|
---|
113 | #define INQUIRY_CTRL_SJA1000 0x02 /* SJA100 extended infos */
|
---|
114 |
|
---|
115 | /* Definitions for ICAN2/3 dependent termination states */
|
---|
116 | #define TERM_INFO_AVAILABLE 0x80
|
---|
117 | #define TERM_INFO_NOT_AVAILABLE 0x00
|
---|
118 | #define TERM_ON 0x01
|
---|
119 | #define TERM_OFF 0x00
|
---|
120 |
|
---|
121 | /* Maximum data length of messages */
|
---|
122 | #define MSGLEN 252
|
---|
123 |
|
---|
124 |
|
---|
125 | /* Definition of some special DPM locations. */
|
---|
126 | #define TARGET_ALIVE 0xc
|
---|
127 | #define TARGET_STATUS 0xe
|
---|
128 |
|
---|
129 | /*
|
---|
130 | * Some CANopen definitions for process picture
|
---|
131 | */
|
---|
132 | /* length of necessary bytes for synchronization between host and VMOD-ICAN3 */
|
---|
133 | #define NUM_DPM_SYNC_BYTES 2
|
---|
134 | #define SYNC_BYTE_ICAN_OWNED 0
|
---|
135 | #define SYNC_BYTE_HOST_OWNED 1
|
---|
136 |
|
---|
137 | #define MAX_DPM_PAGES 256 /* 0 .. 255 */
|
---|
138 | #define MAX_DPM_BYTES 256 /* 0 .. 255 */
|
---|
139 |
|
---|
140 | #define DPM_DATA_INVALID 0
|
---|
141 | #define DPM_DATA_VALID 1
|
---|
142 |
|
---|
143 | /* location of process picture */
|
---|
144 | #define PP_START_IN_DPM 0x8000 /* PP starts at 32KByte in DPM */
|
---|
145 | #define PP_MAX_BYTE_NUM 0x8000 /* PP has a length of 32KByte in DPM */
|
---|
146 |
|
---|
147 |
|
---|
148 |
|
---|
149 | #ifdef __cplusplus
|
---|
150 | }
|
---|
151 | #endif
|
---|
152 |
|
---|
153 | #endif /* !vmod_DEFINED */
|
---|