Project

General

Profile

Download (4.16 KB) Statistics
| Branch: | Tag: | Revision:
1
#ifndef _OPENPCD_PROTO_H
2
#define _OPENPCD_PROTO_H
3

    
4
/* This header file describes the USB protocol of the OpenPCD RFID reader */
5

    
6
#include <sys/types.h>
7

    
8
struct openpcd_hdr {
9
	uint8_t cmd;		/* command. high nibble: class,
10
				 *	     low nibble: cmd */
11
	uint8_t flags;
12
	uint8_t reg;		/* register */
13
	uint8_t val;		/* value (in case of write *) */
14
	uint8_t data[0];
15
} __attribute__ ((packed));
16

    
17
#define OPCD_REV_LEN	16
18
struct openpcd_compile_version {
19
	char svnrev[OPCD_REV_LEN];
20
	char by[OPCD_REV_LEN];
21
	char date[OPCD_REV_LEN];
22
} __attribute__ ((packed));
23

    
24
#define OPENPCD_FLAG_RESPOND	0x01	/* Response requested */
25
#define OPENPCD_FLAG_ERROR	0x80	/* An error occurred */
26

    
27
enum openpcd_cmd_class {
28
	OPENPCD_CMD_CLS_GENERIC		= 0x0,
29
	/* PCD (reader) side */
30
	OPENPCD_CMD_CLS_RC632		= 0x1,
31
	//OPENPCD_CMD_CLS_LED		= 0x2,
32
	OPENPCD_CMD_CLS_SSC		= 0x3,
33
	OPENPCD_CMD_CLS_PWM		= 0x4,
34
	OPENPCD_CMD_CLS_ADC		= 0x5,
35
	OPENPCD_CMD_CLS_LIBRFID		= 0x6,
36
        OPENPCD_CMD_CLS_PRESENCE        = 0x7,
37
	/* SIM SCAN */
38
	OPENPCD_CMD_CLS_SIM		= 0x8,
39
	/* PICC (transponder) side */
40
	OPENPCD_CMD_CLS_PICC		= 0xe,
41

    
42
	OPENPCD_CMD_CLS_USBTEST		= 0xf,
43
};
44

    
45
#define OPENPCD_REG_MAX	0x3f
46

    
47
#define OPENPCD_CMD_CLS(x)	(x >> 4)
48
#define OPENPCD_CMD(x)		(x & 0xf)
49

    
50
#define OPENPCD_CLS2CMD(x)	(x << 4)
51

    
52
/* Generic */
53
#define OPENPCD_CMD_GET_VERSION		(0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC))
54
#define OPENPCD_CMD_SET_LED		(0x2|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC))
55
#define OPENPCD_CMD_GET_SERIAL		(0x3|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC))
56
#define OPENPCD_CMD_GET_API_VERSION	(0x4|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC))
57
#define OPENPCD_CMD_GET_ENVIRONMENT	(0x5|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC))
58
#define OPENPCD_CMD_SET_ENVIRONMENT	(0x6|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC))
59
#define OPENPCD_CMD_RESET		(0x7|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC))
60

    
61
/* CMD_CLS_RC632 */
62
#define OPENPCD_CMD_WRITE_REG		(0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
63
#define OPENPCD_CMD_WRITE_FIFO		(0x2|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
64
#define OPENPCD_CMD_WRITE_VFIFO		(0x3|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
65
#define OPENPCD_CMD_REG_BITS_CLEAR	(0x4|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
66
#define OPENPCD_CMD_REG_BITS_SET	(0x5|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
67
#define OPENPCD_CMD_READ_REG		(0x6|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
68
#define OPENPCD_CMD_READ_FIFO		(0x7|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
69
#define OPENPCD_CMD_READ_VFIFO		(0x8|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
70
#define OPENPCD_CMD_DUMP_REGS		(0x9|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
71
#define OPENPCD_CMD_IRQ			(0xa|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
72
#define OPENPCD_CMD_WRITE_REG_SET	(0xb|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
73

    
74
/* CMD_CLS_SSC */
75
#define OPENPCD_CMD_SSC_READ		(0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_SSC))
76
#define OPENPCD_CMD_SSC_WRITE		(0x2|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_SSC))
77

    
78
/* CMD_CLS_PWM */
79
#define OPENPCD_CMD_PWM_ENABLE		(0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PWM))
80
#define OPENPCD_CMD_PWM_DUTY_SET	(0x2|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PWM))
81
#define OPENPCD_CMD_PWM_DUTY_GET	(0x3|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PWM))
82
#define OPENPCD_CMD_PWM_FREQ_SET	(0x4|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PWM))
83
#define OPENPCD_CMD_PWM_FREQ_GET	(0x5|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PWM))
84

    
85
/* CMD_CLS_PICC */
86
#define OPENPCD_CMD_PICC_REG_WRITE	(0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PICC))
87
#define OPENPCD_CMD_PICC_REG_READ	(0x2|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PICC))
88

    
89
/* CMD_CLS_ADC */
90
#define OPENPCD_CMD_ADC_READ		(0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_ADC))
91

    
92
/* CMD_CLS_LIBRFID */
93
#define OPENPCD_CMD_LRFID_DETECT_IRQ	(0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_LIBRFID))
94

    
95
/* CMD_CLS_LIBRFID */
96
#define OPENPCD_CMD_PRESENCE_UID_GET    (0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PRESENCE))
97

    
98
/* CMD_CLS_USBTEST */
99
#define OPENPCD_CMD_USBTEST_IN		(0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_USBTEST))
100
#define OPENPCD_CMD_USBTEST_OUT		(0x2|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_USBTEST))
101

    
102
/* FIXME */
103
#define OPENPCD_CMD_PIO_IRQ		(0x3|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_USBTEST))
104

    
105

    
106
#define OPENPCD_VENDOR_ID	0x16c0
107
#define SIMTRACE_PRODUCT_ID	0x0762
108
#define OPENPCD_PRODUCT_ID	0x076b
109
#define OPENPICC_PRODUCT_ID	0x076c
110
#define OPENPCD_OUT_EP		0x01
111
#define OPENPCD_IN_EP		0x82
112
#define OPENPCD_IRQ_EP		0x83
113

    
114
#endif
(5-5/11)
Add picture from clipboard (Maximum size: 48.8 MB)