1. Giới thiệu
Seuic AutoID UF3 là đầu thẻ đọc RFID với bộ xử lý lmpinj R2000 tích hợp RS232, TCP / IP và các giao thức giao thức khác, các thông số kỹ thuật khác nhau của ăng-ten có thể phù hợp. Kết hợp với các thuật toán xử lý tín hiệu hiệu quả và độc quyền có thể được sử dụng rộng rãi trong hậu cần, quản lý tài sản, cửa hàng thông minh, thành phố thông minh,…
2. Định dạng dữ liệu
2.1. Khối dữ liệu lệnh máy chủ
Len | Adr | Cmd | Data[] | LSB-CRC16 | MSB-CRC16 |
Mỗi phần của dữ liệu được mô tả như sau:
Chiều dài (byte) |
Mô tả | |
Len | 1 | Độ dài của lệnh khối dữ liệu, nhưng nó không bao gồm chính Len. Nghĩa là, độ dài của khối dữ liệu bằng 4 cộng với độ dài của Data[]. Giá trị tối đa được phép cho Len là 255 và giá trị tối thiểu là 4. |
Adr | 1 | Địa chỉ đầu đọc. Dải địa chỉ: 0x00~0xFE, 0xFF là địa chỉ quảng bá, đầu đọc chỉ phản hồi lệnh có cùng địa chỉ với địa chỉ của nó và địa chỉ là 0xFF. Địa chỉ mặc định của đầu đọc. |
Cmd | 1 | Mã lệnh |
Data[] | Not fixed | Trường tham số. Trong lệnh thực tế, nó có thể không xuất hiện. |
LSB-CRC16 | 1 | CRC16 Low byte. CRC16 là giá trị CRC16 từ Len đến Data[] |
MSB-CRC16 | 1 | CRC16 High byte |
2.2. Khối dữ liệu phản hồi của đầu đọc
Len | Adr | reCmd | Status | Data[] | LSB-CRC16 | MSB-CRC16 |
Mỗi phần của dữ liệu được mô tả như sau:
Chiều dài (byte) |
Mô tả | |
Len | 1 | Độ dài của khối dữ liệu phản hồi, nhưng nó không bao gồm chính Len. Nghĩa là, độ dài của khối dữ liệu bằng 5 cộng với độ dài của Data[]. |
Adr | 1 | Địa chỉ đầu đọc. |
reCmd | 1 | Cho biết lệnh nào mà khối dữ liệu phản hồi là một phản hồi. Nếu đó là câu trả lời cho một lệnh không được nhận dạng, reCmd là 0x00. |
Status | 1 | Trạng thái thể hiện kết quả thực hiện lệnh. |
Data[] | Not fixed | Trường dữ liệu. Nó có thể không xuất hiện. |
LSB-CRC16 | 1 | CRC16 low byte. CRC16 là giá trị CRC16 từ Len đến Data[]. |
MSB-CRC16 | 1 | CRC16 high byte. |
Thuật toán ngôn ngữ C của CRC16:
#define PRESET_VALUE 0xFFFF
#define POLYNOMIAL 0x8408
unsigned int uiCrc16Cal(unsigned char const * pucY, unsigned char ucX)
{
unsigned char ucI,ucJ;
unsigned short int uiCrcValue = PRESET_VALUE;
for(ucI = 0; ucI < ucX; ucI + + )
{
uiCrcValue = uiCrcValue ^ *(pucY + ucI);
for(ucJ = 0; ucJ < 8; ucJ + + )
{
if(uiCrcValue & 0x0001)
{
uiCrcValue = (uiCrcValue >> 1) ^ POLYNOMIAL;
}
else
{
uiCrcValue = (uiCrcValue >> 1);
}
}
}
return uiCrcValue;
}
pucY là mục nhập của mảng ký tự cần tính CRC16 và ucX là số ký tự trong mảng ký tự.
Khi máy chủ nhận dữ liệu, nó chỉ cần tính CRC16 của dữ liệu nhận được theo thuật toán trên, nếu kết quả là 0x0000, cho biết dữ liệu là chính xác.
3. Tổng hợp mã lệnh hoạt động
3.1. Lệnh EPC C1 G2 (ISO18000-6C)
S/N | Lệnh | Chức năng |
1 | 0x01 | Truy vấn thẻ (Query tag) |
2 | 0x02 | Đọc data |
3 | 0x03 | Ghi data |
4 | 0x04 | Ghi số EPC |
5 | 0x05 | Hủy thẻ |
6 | 0x06 | Đặt trạng thái bảo vệ đọc và ghi của vùng bộ nhớ |
7 | 0x07 | Xóa khối |
8 | 0x08 | Đặt cài đặt bảo vệ đọc theo số EPC |
9 | 0x09 | Không cần cài đặt bảo vệ đọc số EPC |
10 | 0x0A | Mở khóa bảo vệ đọc |
11 | 0x0B | Kiểm tra xem thẻ có được đặt bảo vệ đọc không |
12 | 0x0C | Cài đặt báo động EAS |
13 | 0x0D | Phát hiện báo động EAS |
14 | 0x0F | Truy vấn thẻ đơn |
15 | 0x10 | Ghi khối |
16 | 0x11 | Đọc các thông số làm việc của Monza4QT |
17 | 0x12 | Set các thông số làm việc của Monza4QT |
18 | 0x15 | Chỉ định mask để mở rộng dữ liệu đọc |
19 | 0x16 | Chỉ định mask để mở rộng dữ liệu ghi |
20 | 0x18 | Truy vấn với cache |
21 | 0x19 | Truy vấn hỗn hợp |
22 | 0x1a | Truy vấn với số EPC được chỉ định |
23 | 0x1b | Truy vấn QT |
3.2. Lệnh 18000-6B
S/N | Lệnh | Chức năng |
1 | 0x50 | Thứ tự truy vấn (thẻ đơn). Lệnh này chỉ có thể truy vấn một thẻ điện tử tại một thời điểm. Truy vấn không có điều kiện |
2 | 0x51 | Lệnh truy vấn điều kiện (nhiều thẻ). Lệnh này truy vấn các thẻ theo các điều kiện đã cho và trả về UID của các thẻ đáp ứng các điều kiện. Nhiều thẻ điện tử có thể được hỏi cùng một lúc. |
3 | 0x52 | Lệnh đọc dữ liệu. Lệnh này đọc dữ liệu của thẻ và có thể đọc tới 32 byte cùng một lúc. |
4 | 0x53 | Lệnh ghi dữ liệu. Ghi dữ liệu vào thẻ, có thể ghi tối đa 32 byte cùng một lúc. |
5 | 0x54 | Phát hiện lệnh khóa. Phát hiện xem một đơn vị lưu trữ đã bị khóa. |
6 | 0x55 | Khóa lệnh. Khóa một thẻ chưa được khóa. |
3.3 Lệnh tùy chỉnh đầu đọc
S/N | Lệnh | Chức năng |
1 | 0x21 | Đọc thông tin đầu đọc |
2 | 0x22 | Set tần số hoạt động của đầu đọc |
3 | 0x24 | Set địa chỉ mô-đun đọc-ghi |
4 | 0x25 | Set thời gian truy vấn mô-đun đọc-ghi |
5 | 0x28 | Set tốc độ truyền cổng nối tiếp |
6 | 0x2f | Điều chỉnh nguồn điện |
7 | 0x33 | Acousto – lệnh điều khiển quang học |
8 | 0x3f | Cấu hình ăng-ten |
9 | 0x40 | Cài đặt buzzer |
10 | 0x46 | Lệnh điều khiển GPIO |
11 | 0x47 | Đọc trạng thái GPIO |
12 | 0x4c | Lấy số sê-ri duy nhất của đầu đọc |
13 | 0x3a | Cài đặt chức năng tùy chỉnh thẻ |
14 | 0x66 | Set phát hiện ăng-ten |
15 | 0x6a | Set cổng kết nối |
16 | 0x6e | Cài đặt phát hiện hao hụt ăng ten/lệnh đọc |
17 | 0x70 | Set độ dài EPC/TID của cache |
18 | 0x71 | Lấy độ dài EPC/TID của cache |
19 | 0x72 | Lấy dữ liệu cache |
20 | 0x73 | Xóa bộ nhớ cache |
21 | 0x74 | Truy vấn số lượng thẻ cache |
22 | 0x75 | Set tham số truy vấn thời gian thực |
23 | 0x76 | Set chế độ làm việc |
24 | 0x77 | Đọc thông số chế độ làm việc |
25 | 0x78 | Đọc/ Set khoảng thời gian truy vấn heartbeat packet trong thời gian thực |
26 | 0x79 | Set công suất ghi |
27 | 0x7a | Đọc công suất ghi |
28 | 0x7b | Đọc/ Set ghi lại |
29 | 0x7d | Set mật khẩu người dùng của các chức năng tùy chỉnh thẻ |
30 | 0x7e | Đọc mật khẩu người dùng của các chức năng tùy chỉnh thẻ |
31 | 0x7f | Cài đặt hồ sơ đầu đọc /lệnh đọc |
32 | 0x85 | Đồng bộ stamp thời gian EM4325 |
33 | 0x86 | Lấy dữ liệu nhiệt độ EM4325 |
34 | 0x87 | Lấy dữ liệu ngoài SPI của EM4325 |
35 | 0x88 | Đặt lại báo thức EM4325 |
36 | 0x90 | Cài đặt DRM/lệnh đọc |
37 | 0x91 | Đo hao hụt của cổng ăng ten |
38 | 0x92 | Đo nhiệt độ làm việc hiện tại của đầu đọc |