UHF-Reader通信协议

SC UHF Reader 控制协议

UART通信

波特率:115200

8个数据位,没有奇偶校验位,1个停止位。(8 N 1)

RCP(Reader Control Protocol) 协议格式

Payload End Mask CRC-16 Preamble Message Type Code Payload Length

(unit of byte : N)

1 BYTE 1 BYTE 1 BYTE

2 BYTE N BYTE 1 BYTE 2 BYTE

RCP 协议中,同一域段里,高字节在前。Preamble为最先发送字节,CRC-16的低字节为最后发送的字节。

Preamble and End Mark field

Preamble 的值为0xBB.(不参与计算CRC)

End mark 的值为0x7E. (参与计算CRC)

在Payload中也可能包括,0xBB与0x7E。因此不能以0xBB,0x7E判断帧的开始与结束。

Message type field

Command :用户发送到读写器的信息。

Response 和notification :读写器返回给用户的信息。

Code value (HEX)

Command 0x00

Response 0x01

Notification 0x02

Command and response

Command:用户发送到读写器的命令。

Response:读写器响应用户的命令,每一条命令都会有相应的响应。

Notification

读写器主动返回的信息,如:查询标签命令发送后,当有标签在读写器范围内时,读写器将会返回标签的EPC号。

Message code field

Message code Message type Code Get Region 0x00 / 0x01 0x06 Set Region 0x00 / 0x01 0x07 Set System Reset 0x00 / 0x01 0x08 Get Type C A/I Select Parameters 0x00 / 0x01 0x0B Set Type C A/I Select Parameters 0x00 / 0x01 0x0C Get Type C A/I Query Related Parameters 0x00 / 0x01 0x0D Set Type C A/I Query Related Parameters 0x00 / 0x01 0x0E Get current RF Channel 0x00 / 0x01 0x11 Set current RF Channel 0x00 / 0x01 0x12 Get FH and LBT Parameters 0x00 / 0x01 0x13 Set FH and LBT Parameters 0x00 / 0x01 0x14 Read Type C UII 0x00 / 0x01 0x22 Start Auto Read 0x00 / 0x01 / 0x02 0x27 Stop Auto Read 0x00 / 0x01 0x28 Read Type C Tag Data 0x00 / 0x01 0x29 Get Frequency Hopping Table 0x00 / 0x01 0x30 Set Frequency Hopping Table 0x00 / 0x01 0x31 Get Modulation 0x00 / 0x01 0x32 Set Modulation 0x00 / 0x01 0x33 Start Auto Read2 0x00 / 0x01 / 0x02 0x36 Stop Auto Read2 0x00 / 0x01 0x37 Write Type C Tag Data 0x00 / 0x01 0x46 BlockWrite Type C Tag Data 0x00 / 0x01 0x47 BlockErase Type C Tag Data 0x00 / 0x01 0x48 Kill/Recom Type C Tag 0x00 / 0x01 0x65 Lock Type C Tag 0x00 / 0x01 0x82 Get RSSI 0x00 / 0x01 0xC5 Update Registry 0x00 / 0x01 0xD2 Command Failure 0x01 0xFF

1.Get Region (6)

2.Set Region (7)

3.Get Type C A/I Select Parameters (8)

4.Set Type C A/I Select Parameters (9)

5.Get Type C A/I Query Parameters (10)

6.Set Type C A/I Query Parameters (11)

7.Get current RF Channel (12)

8.Set current RF Channel (13)

9.Get FH and LBT Parameters (14)

10.Set FH and LBT Parameters (15)

11.Read Type C UII (16)

12.Start Auto Read (17)

13.Stop Auto Read (19)

14.Start Auto Read2 (20)

15.Read Type C Tag Data (22)

16.Get Frequency Hopping Table (23)

17.Set Frequency Hopping Table (24)

18.Get Modulation Mode (25)

19.Set Modulation Mode (27)

20.Write Type C Tag Data (29)

21.BlockWrite Type C Tag Data (30)

22.BlockErase Type C Tag Data (31)

23.BlockPermalock Type C Tag (32)

24.Kill Type C Tag (33)

25.Lock Type C Tag (34)

26.Get RSSI (35)

27.Update Registry(Save all setting) (36)

https://www.360docs.net/doc/339550976.html,mand failure (37)

CRC General

The Command and Response use the same CRC-16 for verify a purity of message bits. The 16-bit CRC shall be calculated on all the message bits from the message type field to the end mark field . The Polynomial used to calculate the CRC is X16+X12+X5+1 (initial value is 0xFFFF). The resulting CRC value shall be attached to the end of the packet (after End Mark filed) and transmitted. The most significant byte shall be transmitted first. The most significant bit of each byte shall be transmitted first.

unsigned short crc16_ccitt_tableH[256]={

0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,

0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,

0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,

0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,

0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,

0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,

0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,

0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,

0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,

0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,

0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,

0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,

0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,

0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,

0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,

0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,

0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,

0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,

0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,

0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,

0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,

0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,

0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,

0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,

0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,

0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,

0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,

0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,

0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,

0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,

0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,

0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0

};

unsigned short do_crcH(unsigned short crcInit, unsigned char *message, unsigned int len) {

unsigned short int crc = crcInit;

while(len--)

{

crc = (crc<<8) ^ crc16_ccitt_tableH[((crc>>8) ^ *message++) & 0xff];

}

return crc;

}

Get the current region.

Command

Message Type: Command (0x00)

Code: Get Region (0x06)

Arguments

- None

Preamble Msg Type Code PL (MSB) PL (LSB) End Mark CRC-16

0xBB 0x00 0x06 0x00 0x00 0x7E 0xNNNN

Response

Message Type: Response (0x01)

Code: Get Region (0x06)

- Korea (0x11)

- US (0x21)

- Europe (0x31)

- Japan (0x41)

- China (0x52)

Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x06 0x00 0x01 0x31 0x7E 0xNNNN

Set the current region.

Command

Message Type: Command (0x00)

Code: Set Region (0x07)

Arguments

- Korea (0x11)

- US (0x21)

- Europe (0x31)

- Japan (0x41)

- China (0x52)

Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x00 0x07 0x00 0x01 0x31 0x7E 0xNNNN

Response

Message Type: Response (0x01)

Code: Set Region (0x07)

Arguments

- Success (0x00)

Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x07 0x00 0x01 0x00 0x7E 0xNNNN

Get 18000-6C air interface protocol command ‘Select’parameters.

Command

Message Type: Command (0x00)

Code: Get Type C A/I Select Parameters (0x0B)

Arguments

- None

Preamble M sg Type Code PL (MSB) PL (LSB) End Mark CRC-16

0xBB 0x00 0x0B 0x00 0x00 0x7E 0xNNNN

Response

Message Type: Response (0x01)

Code: Get Type C A/I Select Parameters (0x0B)

Arguments

- Target (3-bit): S0 (000), S1 (001), S2 (010), S3 (011), SL (100)

- Action (3-bit): Refer to ISO18000-6C.

- Memory Bank (2-bit): 00 RFU, 01 EPC, 10 TID, 11 User

- Pointer (32-bit): Starting mask address

- Length (8-bit): mask length bits

- Truncate (1-bit): Enable (1) and Disable (0)

- Reserve (7-bit): Reserved 0000000 value should be placed here.

- Mask (0~255 bits): Mask value

Example)

Target=S0, Action=assert SL or inventoried - > A, MB=User, Pointer = 0x000000FF,

Length =0x20, T=0, Mask = 11111111111111110000000000000000

Preamble Msg Type Code PL(MSB) PL (LSB) T A M Ptr(MSB)

0xBB 0x01 0x0B 0x00 0x0B 000 000 11 0x00 0x00 Ptr (LSB) Length T Reserve Mask(MSB)

0x00 0xFF 0x20 0 0000000 0xFF 0xFF 0x00 0x00 End Mark CRC-16

0x7E 0xNNNN

Set 18000-6C air interface protocol command ‘Select’parameters.

Command

Message Type: Command (0x00)

Code: Set Type C A/I Select Parameters (0x0C)

Arguments

- Target (3-bit): S0 (000), S1 (001), S2 (010), S3 (011), SL (100)

- Action (3-bit): Refer to ISO18000-6C.

- Memory Bank (2-bit): RFU (00), EPC (01), TID (10), User (11)

- Pointer (32-bit): Starting mask address

- Length (8-bit): mask length bits

- Truncate (1-bit): Enable (1) and Disable (0)

- Reserve (7-bit): Reserved 0000000 value should be placed here.

- Mask (0~255 bits): Mask value

Example)

Target=S0 where C, Action=assert SL ors inventoried - > A, MB=User, Pointer =

0x000000FF Length=0x20, T=0, Mask=11111111111111110000000000000000

Preamble Msg Type Code PL(MSB) PL (LSB) T A M Ptr(MSB)

0xBB 0x00 0x0C 0x00 0x0B 000 000 11 0x00 0x00 Ptr (LSB) Length T Reserve Mask(MSB)

0x00 0xFF 0x20 0 0000000 0xFF 0xFF 0x00 0x00 End Mark CRC-16

0x7E 0xNNNN

Response

Message Type: Response (0x01)

Code: Set Type C A/I Select Parameters (0x0C)

Arguments

- Success (0x00)

Example)

Success

Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16

0xBB 0x01 0x0C 0x00 0x01 0x00 0x7E 0xNNNN

Get 18000-6C air interface protocol command ‘Query’parameters.

Command

Message Type: Command (0x00)

Code: Get Type C A/I Query Parameters (0x0D)

Arguments

- None

Preamble M sg Type Code PL (MSB) PL (LSB) End Mark CRC-16

0xBB 0x00 0x0D 0x00 0x00 0x7E 0xNNNN

Response

Message Type: Response (0x01)

Code: Get Type C A/I Query Parameters (0x0D)

Arguments

- DR (1-bit): DR=8 (0), DR=64/3 (1)

- M (2-bit): M=1 (00), M=2 (01), M=4 (10), M=8 (11)

- TRext (1-bit): No pilot tone (0), Use pilot tone (1)

- Sel (2-bit): All (00 or 01), ~SL (10), SL (11)

- Session (2-bit): S0 (00), S1 (01), S2 (10), S3 (11)

- Target (1-bit): A (0), B (1)

- Q (4-bit): 0-15; the number of slots in the round.

Example)

DR=8, M=1, TRext=Use pilot tone, Sel=All, Session=S0, Target=A, Q=4, No change to Q Preamble Msg Type Code PL (MSB) PL (LSB) DR M TR Sel S 0xBB 0x01 0x0D 0x00 0x02 0 00 1 00 00 T Q RSV EndMark CRC-16

0 0100 000 0x7E 0xNNNN

Set 18000-6C air interface protocol command ‘Query’parameters.

Command

Message Type: Command (0x00)

Code: Set Type C A/I Query Parameters (0x0E)

Arguments

- DR (1-bit): DR=8 (0), DR=64/3 (1)

- M (2-bit): M=1 (00), M=2 (01), M=4 (10), M=8 (11)

- TRext (1-bit): No pilot tone (0), Use pilot tone (1)

- Sel (2-bit): All (00 or 01), ~SL (10), SL (11)

- Session (2-bit): S0 (00), S1 (01), S2 (10), S3 (11)

- Target (1-bit): A (0), B (1)

- Q (4-bit): 0-15; the number of slots in the round.

Example)

DR=8, M=1, TRext=Use pilot tone, Sel=All, Session=S0, Target=A, Q=4, No change to Q Preamble Msg Type Code PL (MSB) PL (LSB) DR M TR Sel S 0xBB 0x01 0x0E 0x00 0x02 0 00 1 00 00 T Q RSV EndMark CRC-16

0 0100 000 0x7E 0xNNNN

Response

Message Type: Response (0x01)

Code: Set Type C A/I Query Parameters (0x0E)

Arguments

- Success (0x00)

Example)

Success

Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16

0xBB 0x01 0x0E 0x00 0x01 0x00 0x7E 0xNNNN

Get RF channel. This command is valid only for non-FH mode.

Command

Message Type: Command (0x00)

Code: Get current RF Channel (0x11)

Arguments

- None

Example)

Get current RF channel

Preamble M sg Type Code PL (MSB) PL (LSB) End Mark CRC-16 0xBB 0x00 0x11 0x00 0x00 0x7E 0xNNNN

Response

Message Type: Response (0x01)

Code: Get current RF Channel (0x11)

Arguments

- CN (8-bit): Channel Number. The range of channel number depends on regional settings - CNO (8-bit): Channel number offset for miller subcarrier.

Example)

Channel Number = 10

Preamble M sg Type Code PL (MSB) PL (LSB) CN CNO

0xBB 0x01 0x11 0x00 0x02 0x0A 0x00 End Mark CRC-16

0x7E 0xNNNN

Set RF channel. This command is valid only for non-FHSS mode.

Command

Message Type: Command (0x00)

Code: Set current RF Channel (0x12)

Arguments

- CN (8-bit): Channel number. The range of channel number depends on regional settings - CNO (8-bit): Channel number offset for miller subcarrier.

Example)

Channel Number = 10, Channel Number Offset = 0

Preamble M sg Type Code PL (MSB) PL (LSB) CN CNO

0xBB 0x00 0x12 0x00 0x02 0x0A 0x00

End Mark CRC-16

0x7E 0xNNNN

Response

Message Type: Response (0x01)

Code: Set current RF Channel (0x12)

Arguments

- None

Example)

Success

Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x12 0x00 0x01 0x00 0x7E 0xNNNN

Get FH and LBT control

Command

Message Type: Command (0x00)

Code: Get FH and LBT Parameters (0x13)

Arguments

- None

Example)

Preamble M sg Type Code PL (MSB) PL (LSB) End Mark CRC-16 0xBB 0x00 0x13 0x00 0x00 0x7E 0xNNNN

Response

Message Type: Response (0x01)

Code: Get FH and LBT Parameters (0x13)

Arguments

- RT (16-bit): Read Time (1 = 1ms)

- IT (16-bit): Idle Time (1 = 1ms)

- CST (16-bit): Carrier Sense Time (1 = 1ms)

- RFL (16-bit): Target RF power level (-dBm x 10)

- FH (8-bit): enable (0x01 or over) / disable (0x00)

- LBT (8-bit): enable (0x01 or over) / disable (0x00)

- CW (8-bit): enable (0x01) / disable (0x00)

Example)

Success, FH disable, LBT enable, RT 400ms, IT 100ms, CST 10ms, RFL -630 (-63.0 dBm) Preamble M sg Type Code PL (MSB) PL (LSB) RT MSB RT (LSB) 0xBB 0x01 0x13 0x00 0x0B 0x01 0x90

IT (MSB) IT (LSB) CST(MSB) CST (LSB) RFL(MSB) RFL (LSB) FH

0x00 0x64 0x00 0x0A 0xFD 0x8A 0x00 LBT CW End Mark CRC-16

0x01 0x00 0x7E 0xNNNN

Set FH and LBT Parameters

Command

Message Type: Command (0x00)

Code: Set FH and LBT Parameters (0x14)

Arguments

- RT (16-bit): Read Time (1 = 1ms)

- IT (16-bit): Idle Time (1 = 1ms)

- CST (16-bit): Carrier Sense Time (1 = 1ms)

- RFL (16-bit): Target RF power level (-dBm x 10)

- FH (8-bit): enable (0x01 or over) / disable (0x00)

- LBT (8-bit): enable (0x01 or over) / disable (0x00)

- CW (8-bit): enable (0x01) / disable (0x00)

Example1)

FH enable (with LBT feature), RT 400ms, IT 100ms, CST 10ms, RFL -740 (-74.0 dBm) Preamble M sg Type Code PL (MSB) PL (LSB) RT MSB RT (LSB) 0xBB 0x00 0x14 0x00 0x0B 0x01 0x90

IT (MSB) IT (LSB) CST(MSB) CST (LSB) RFL(MSB) RFL (LSB) FH

0x00 0x64 0x00 0x0A 0xFD 0x8A 0x01

LBT CW End Mark CRC-16

0x01 0x00 0x7E 0xNNNN

Example2)

LBT enable (with FH feature), RT 400ms, IT 100ms, CST 10ms, RFL -740 (-74.0 dBm) Preamble M sg Type Code PL (MSB) PL (LSB) RT MSB RT (LSB) 0xBB 0x00 0x14 0x00 0x0B 0x01 0x90

IT (MSB) IT (LSB) CST(MSB) CST (LSB) RFL(MSB) RFL (LSB) FH

0x00 0x64 0x00 0x0A 0xFD 0x8A 0x01

LBT CW End Mark CRC-16

0x02 0x00 0x7E 0xNNNN

Response

Message Type: Response (0x01)

Code: Set FH and LBT Parameters (0x14)

Arguments

- None

Example)

Success

Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x14 0x00 0x01 0x00 0x7E 0xNNNN

11.Read Type C UII

Read a EPC Block (PC + EPC)

Command

Message Type: Command (0x00)

Code: Read Type C UII (0x22)

Arguments

- None

Example)

Preamble M sg Type Code PL (MSB ) PL (LSB) End Mark CRC-16 0xBB 0x00 0x22 0x00 0x00 0x7E 0xNNNN

Response

Message Type: Response (0x01)

Code: Read Type C UII (0x22)

Arguments

- EPC Block (PC + EPC)

Example)

PC = 0x3000, EPC = 0xE2003411B802011383258566

Preamble M sg Type Code PL (MSB) PL (LSB) PC (MSB) PC (LSB) 0xBB 0x01 0x22 0x00 0x0E 0x30 0x00 EPC(MSB)

0xE2 0x00 0x34 0x11 0xB8 0x02 0x01

EPC (LSB) End Mark CRC-16 0x13 0x83 0x25 0x85 0x66 0x7E 0xNNNN

12.Start Auto Read

Start an automatic tag read operation during the inventory round, tag IDs are sent back to user though notification packet.

Command

Message Type: Command (0x00)

Code: Start Auto Read (0x27)

Arguments

- Command Code (0x22)

- RC (16-bit): Repeat cycle (how many times reader perform inventory round)

Example)

Repeat Cycle = 100

Preamble M sg Type Code PL (MSB) PL (LSB) Reserve RC (MSB) 0xBB 0x00 0x27 0x00 0x03 0x22 0x00

RC (LSB) End Mark CRC-16

0x64 0x7E 0xNNNN

Response

Message Type: Response (0x01)

Code: Start Auto Read (0x27)

Arguments

- Success (0x00)

Example)

Success

Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x27 0x00 0x01 0x00 0x7E 0xNNNN

Notification 1:

Message Type: Notification (0x02)

Code: Read Type C UII (0x22)

Arguments

- EPC Block (PC + EPC)

Example)

PC = 0x3000, EPC = 0xE2003411B802011383258566

Preamble M sg Type Code PL (MSB) PL (LSB) PC (MSB) PC (LSB) 0xBB 0x02 0x22 0x00 0x0E 0x30 0x00

EPC(MSB)

0xE2 0x00 0x34 0x11 0xB8 0x02 0x01

EPC (LSB) End Mark CRC-16

0x13 0x83 0x25 0x85 0x66 0x7E 0xNNNN

Notification 2:

Message Type: Notification (0x02)

Code: Start Auto Read (0x27)

Arguments

- Read complete (0x1F)

Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x02 0x27 0x00 0x01 0x1F 0x7E 0xNNNN

Stop an automatic tag read operation.

Command

Message Type: Command (0x00)

Code: Stop Auto Read (0x28)

Arguments

- None

Example)

Preamble Msg Type Code PL(MSB) PL (LSB) End Mark CRC-16

0xBB 0x00 0x28 0x00 0x00 0x7E 0xNNNN

Response

Message Type: Response (0x01)

Code: Stop Auto Read (0x28)

Arguments

- Success (0x00)

Example)

Success

Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x28 0x00 0x01 0x00 0x7E 0xNNNN

Start an automatic tag read operation, tag IDs are sent back to user though notification packet. Command

Message Type: Command (0x00)

Code: Start Auto Read2 (0x36)

Arguments

- Reserve: type B tag (0x01), type C Tag (0x02)

- MTNU: maximum number of tag to read

- MTIME: maximum elapsed time to tagging (sec)

- RC (16-bit): Repeat cycle (how many times reader perform inventory round).

Example)

MTNU = 0, MTIME = 0, Repeat Cycle = 100

Preamble M sg Type Code PL (MSB) PL (LSB) Reserve MTNU

0xBB 0x00 0x36 0x00 0x05 0x02 0x00 MTIME RC(MSB) RC(LSB) End Mark CRC-16

0x00 0x00 0x64 0x7E 0xNNNN

Response

Message Type: Response (0x01)

Code: Start Auto Read2 (0x36)

Arguments

- Success (0x00)

Example)

Success

Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x36 0x00 0x01 0x00 0x7E 0xNNNN

Notification 1:

Message Type: Notification (0x02)

Code: Read Type C UII (0x22)

Arguments

- EPC Block (PC + EPC)

Example)

PC = 0x3000, EPC = 0xE2003411B802011383258566

Preamble M sg Type Code PL (MSB) PL (LSB) PC(MSB) PC(LSB) 0xBB 0x02 0x22 0x00 0x0E 0x30 0x00

EPC(MSB)

0xE2 0x00 0x34 0x11 0xB8 0x02 0x01

EPC (LSB) End Mark CRC-16

0x13 0x83 0x25 0x85 0x66 0x7E 0xNNNN Notification 2:

sip协议原理分析及总结

SIP协议学习总结 1、SIP协议定义 SIP(Session Initiation Protocol,即初始会话协议)是IETF提出的基于文本编码的IP电话/多媒体会议协议。用于建立、修改并终止多媒体会话。SIP 协议可用于发起会话,也可以用于邀请成员加入已经用其它方式建立的会话。多媒体会话可以是点到点的话音通信或视频通信,也可以是多点参与的话音或视频会议等。SIP协议透明地支持名字映射和重定向服务,便于实现ISDN,智能网以及个人移动业务。SIP协议可以用多点控制单元(MCU)或全互连的方式代替组播发起多方呼叫。与PSTN相连的IP电话网关也可以用SIP协议来建立普通电话用户之间的呼叫。 SIP协议在IETF多媒体数据及控制体系协议栈结构的位置 H.323SIP RTSP RSVP RTCP H.263 etc. RTP TCP UDP IP PPP Sonet AAL3/4AAL5 ATM Ethernet PPP V.34 SIP协议支持多媒体通信的五个方面: ◆用户定位:确定用于通信的终端系统; ◆用户能力:确定通信媒体和媒体的使用参数; ◆用户有效性:确定被叫加入通信的意愿; ◆会话建立:建立主叫和被叫的呼叫参数; ◆会话管理:包括呼叫转移和呼叫终止; SIP协议的结构 SIP是一个分层的协议,也就是说SIP协议由一组相当无关的处理层次组成,这些层次之间只有松散的关系。 SIP最底层的是它的语法和编码层。编码方式是采用扩展的Backus-Naur Form grammar (BNF范式)。 第二层是传输层。它定义了一个客户端发送请求和接收应答的方式,以及一 个服务器接收请求和发送应答的方式。所有的SIP要素都包含一个通讯层。 第三层是事务层。事务是SIP的基本组成部分。一个事务是UAC向UAS发送的一个请求以及UAS向UAC发送的一系列应答。事务层处理应用服务层的重发,匹配请求的应答,以及应用服务层的超时。任何一个用户代理客户端完成的事情都是

常用的硬件接口及通信协议详解

一:串口 串口是串行接口的简称,分为同步传输(USRT)和异步传输(UART)。在同步通信中,发送端和接收端使用同一个时钟。在异步通信中,接受时钟和发送时钟是不同步的,即发送端和接收端都有自己独立的时钟和相同的速度约定。 1:RS232接口定义 2:异步串口的通信协议 作为UART的一种,工作原理是将传输数据的每个字符一位接一位地传输。图一给出了其工作模式: 图一 其中各位的意义如下: 起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。

数据位:紧接着起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。 奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。 停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。 空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。 波特率:是衡量资料传送速率的指针。表示每秒钟传送的二进制位数。例如资料传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10×120=1200字符/秒=1200波特。 3:在嵌入式处理器中,通常都集成了串口,只需对相关寄存器进行设置,就可以使用啦。尽管不同的体系结构的处理器中,相关的寄存器可能不大一样,但是基于FIFO的uart框图还是差不多。

发送过程:把数据发送到fifo中,fifo把数据发送到移位寄存器,然后在时钟脉冲的作用下,往串口线上发送一位bit数据。 接受过程:接受移位寄存器接收到数据后,将数据放到fifo中,接受fifo事先设置好触发门限,当fifo中数据超过这个门限时,就触发一个中断,然后调用驱动中的中断服务函数,把数据写到flip_buf 中。 二:SPI SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

常见通信协议的接口调试方法修订稿

常见通信协议的接口调 试方法 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

常见通信协议的接口调试方法 版本号:发布时间:2012-2-4 1.Modbus Modbus是一种工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。 Modbus协议是一个Master/Slave架构的协议。有一个节点是Master 节点,其他使用Modbus协议参与通信的节点是 Slave 节点。Master节点类似Client/Server架构中的Client,Slave则类似Server。工业上Modbus协议的常见架构如下图所示。

…… 1.1. 应用场合 Modbus 协议主要用于测风塔数据实时读取、风机数据实时读取。将来有可能用于集控系统中,读取各类数据和进行远程控制。 在清三营、长风风电场,莱维赛尔的测风塔使用Modbus RTU 协议与功率预测系统通信。 在向阳风电场,明阳的SCADA 服务器通过Modbus TCP 协议向功率预测系统提供各风机的实时运行数据。 在乌力吉、浩日格吐、马力、前后查台等风电场,赛风的测风塔使用Modbus RTU over TCP 协议与功率预测系统通信。 1.2. Modbus 数据模型 在Slave 和Master 进行通信时,Slave 会将其提供的变量映射到四张不同的表上,Master 从表中相应位置读/写变量,就完成了数据获取或命令下达。这四张不同的表,称作Modbus 数据模型(Modbus Data Model )。 为了理解方便,这里将四张表分别称作1位只读表、1位可读可写表、16位只读表、16位可读可写表。(类似电力通信国标中的遥信、遥控、遥测、遥调。)1位表用来映射单比特数据类型的变量,通常是布尔型变量;16位表用来映射双字节数据类型的变量,如

动环FSU与被监控智能设备通信接口协议及版本库管理办法

动环FSU(监控设备)与被监控智能设备通 信接口 协议及版本库管理办法 第一条为降低基站动环FSU与被监控智能设备互联互通的工作难度,总部特建立动环FSU与被监控智能设备通信接口协议及版本库。 总部通信技术研究院负责对动环FSU与被监控智能设备通信接口协议及版本库进行管理。 第二条目前形成的动环FSU与被监控智能设备通信接口协议及版本库内容清单见附表;后续,总部通信技术研究院还会收集整理形成三家电信企业存量基站所属智能设备的通信接口协议及版本库。 第三条动环FSU与被监控智能设备通信接口协议及版本的使用: (一)通信技术研究院对被监控智能设备通信接口协议使用需求进行管理,各使用单位向通信技术研究院提出需求,由通信技术研究院审核无误后,将申请方所需协议内容提供给需求单位;

(二)相关智能设备协议的解析以及与北向B接口功能字典的匹配,均由动环FSU厂家完成; (三)FSU厂家与智能设备厂家间由于接口协议沟通协调遇到技术困难时,可联系通信技术研究院进行协调。 第四条本办法发布后,凡各省级分公司再自行采购的新厂商被监控智能设备,均应要求厂家将相关互联互通的通信接口协议及版本先行提供给总部通信技术研究院,以免出现FSU与被监控智能设备不能互联互通的问题。 第五条总部通信技术研究院后续会对购买的被监控智能设备接口协议分类逐步进行统一,实现铁塔公司FSU设备协议的标准化。 附表:新建基站被监控智能设备通信接口协议及版本库总目录(V1.00)

附表:新建基站被监控智能设备通信接口协议及版本库总目录(V1.00) 可修改编辑

(1)新建基站开关电源通信接口协议及版本库(V1.00) 可修改编辑

多媒体通信协议

多媒体通信协议 实验报告 实验成绩

多媒体通信协议实验报告 实验一颜色 一、实验目的 了解颜色的表示方法。 二、实验原理 1. RGB表示法 人们在生活中,用红、橙、黄、绿、青、蓝和紫等名词来描述彩色的大致范围。如果再进一步细分,红色则有深红、浅红、大红、粉红等。即使这样细分,仍然不能把颜色表达得十分准确。根据德国科学家格拉兹曼所总结的法则,任何一种彩色都可由另外的不多于三种的其他彩色按不同的比例合成。这意味着,如果选定了三种人所共知的标准基色(标准基色必须是独立的,即其中一种不能由其他两种产生),那么任何一种彩色,可以用合成这一彩色所需要的3种基色的数量来表示。例如,选择波长分别为700nm、546:1nm和435:8nm的红、绿、蓝光作为基色,用不同比例的三基色光可以配出任何一种彩色。三种光的能量之和决定了合成光的亮度,而三种光强之间的比例关系决定了合成光的色调(颜色)和饱和度(颜色深浅)。一个任意光(A)和三基色光之间的关系可以写成下式(A) = ra(R) + ga(G) + ba(B) (1)式中带有括号的大写字母只代表某种光,如(R)只代表红光,并不具有数量和量纲的含义,数量由它们各自的系数代表。式(1)表明,在基色光(R)、(G)和(B)选定以后,任何一种彩色(A)都可以用三个相应的数ra、ga和ba来表示。这事实上已经解决了用数学的方法严格地定义彩色的问题。但是在实际的应用中发现,这样的三个数有时相互之间在数量上可以相差个数量级,以至于有的数值小到在进行色度计算时可以忽略,而它在光的合成中却起着明显作用,又不能忽略。解决这一问题的办法,是用合成某种标准白光(如等能白光)所对应的三个系数值,分别作为三种基色光的1个计量单位。以此计量单位度量的任意彩色(A) 的三个系数称为三色系数,用R、G、B表示。 2. matlab的imshow()函数 imshow()是matlab图像处理工具箱中用于显示图像的函数。imshow()函数有几种用法,其中一种用法是imshow(RGB)参数RGB是一个m _ n _ 3的矩阵,矩阵中的每个元素是0 _ 1之间的小数。

一张图秒懂电动汽车充电接口及通信协议新国标

一张图秒懂电动汽车充电接口及通信协议新国标 截至2015年底,全国已建成充换电站3600座,公共充电桩4.9万个,较上年增加1.8万个,同比增速58%。 作为实现电动汽车传导充电的基本要素,电动汽车充电用接口及通信协议技术内容的统一和规范,是保证电动汽车与充电基础设施互联互通的技术基础。 2015年12月底,质检总局、国家标准委、国家能源局、工信部、科技部等部门联合在京发布了新修订的《电动汽车传导充电系统第1部分:一般要求》、《电动汽车传导充电用连接装置第1部分:通用要求》、《电动汽车传导充电用连接装置第2部分:交流充电接口》、《电动汽车传导充电用连接装置第3部分:直流充电接口》、《电动汽车非车载传导式充电机与电池管理系统之间的通信协议》等5项电动汽车充电接口及通信协议国家标准。新标准于2016年1月1日起正式实施。 新标准有何亮点? 此次5项标准修订全面提升了充电的安全性和兼容性。在安全性方面,新标准增加了充电接口温度监控、电子锁、绝缘监测和泄放电路等功能,细化了直流充电车端接口安全防护措施,明确禁止不安全的充电模式应用,能够有效避免

发生人员触电、设备燃烧等事故,保证充电时对电动汽车以及使用者的安全。 在兼容性方面,交直流充电接口型式及结构与原有标准兼容,新标准修改了部分触头和机械锁尺寸,但新旧插头插座能够相互配合,直流充电接口增加的电子锁止装置,不影响新旧产品间的电气连接,用户仅需更新通信协议版本,即可实现新供电设备和电动汽车能够保障基本的充电功能。交流充电占空比和电流限值的映射关系与国际标准兼容,并为今后交流充电的数字通信预留拓展空间。 新标准有何意义? 目前,我国电动汽车直流接口、控制导引电路、通信协议等国家标准与美国、欧洲、日本并列为世界4大直流充电接口标准。 质检总局党组成员、国家标准委主任田世宏指出,新标准对充电接口和通信协议进行了全面系统的规范,为充电设施质量保证体系提供了技术保障,确保了电动汽车与充电设施的互联互通,避免了市场的无序发展和充电“孤岛”,有利于降低因不兼容而造成的社会资源浪费,对促进电动汽车产业政策落地,增强购买使用电动汽车消费信心将起到积极的促进作用。 下一步,质检总局和国家标准委将会同国家能源局、工信部等有关行业部门加强对新标准的宣传培训和贯彻实施,

通讯接口、协议 简单汇总

硬件接口(定义相应的电气特性) RS232 .RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C 总线标准设有25条信号线,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。RS-232-C标准规定的数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。 RS485 在要求通信距离为几十米到上千米时,广泛采用RS-485 串行总线标准。RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线。应用RS-485 可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。 通讯协议 分层网络协议 网络模型共分七层:从上至下依次是 应用层 指网络操作系统和具体的应用程序,对应WWW服务器、FTP服务器等应用软件 表示层 数据语法的转换、数据的传送等 会话层 建立起两端之间的会话关系,并负责数据的传送。

376.3远程通信模块接口协议

ICS Q/GDW 国家电网公司企业标准 Q/GDW —2012 电力用户用电信息采集系统通信协议 第3部分:采集终端远程通信模块接口协议 power user electric energy data acquisition system communication protocol Part 3: acquire terminal telecommunication modules interface XXXX - XX - XX发布XXXX - XX - XX实施

目次 前言........................................................... II 1 范围 (1) 2 规范性引用文件 (1) 3 术语、定义和缩略语 (1) 4 接口 (2) 远程通信模块与终端的接口 (2) 通信模块与SIM卡的接口 (3) 通信模块网络工作状态指示 (3) 5 功能要求 (3) 基本业务功能 (3) 串行口多路复用 (3) 6 命令集 (3) 标准命令集 (3) 扩展命令集 (3) 非透明数据传输命令集 (8)

透明数据传输命令集 (13) 主动上报命令集 (14) FTP功能命令集 (16) 锁频相关命令集 (19) 卫星定位相关命令 (21) 错误代码 (21) 附录A(资料性附录)标准命令集 (23) 编制说明 (33)

前言 Q/GDW 1376—2012《电力用户用电信息采集系统通信协议》是根据国家电网公司2012年度企业标准制修订计划任务(国家电网科[2012]66号)的安排,对Q/GDW 376—2009《电力用户用电信息采集系统通信协议》的修订。 与原标准相比,本次修订做了如下重大调整和修订: ——增加了磁场异常事件记录; ——增加了终端对时事件记录; ——增加了集中器与本地通信模块交互流程; ——增加了采集终端远程通信模块接口协议(Q/GDW 1376的第3部分)。 Q/GDW 1376—2012《电力用户用电信息采集系统通信协议》分为下列3个部分: ——Q/GDW 《电力用户用电信息采集系统通信协议第1部分:主站与采集终端通信协议》; ——Q/GDW 《电力用户用电信息采集系统通信协议第2部分:集中器本地通信模块接口协议》; ——Q/GDW 《电力用户用电信息采集系统通信协议第3部分:采集终端远程通信模块接口协议》。

A接口协议比较

协议比较 3GPP TS 08.08 V8.12.0 (2002-02) (Release 1999)与ETSI TS 100 590 V6.5.0 (2000-06) (GSM 08.08 version 6.5.0 Release 1997) 相比,有如下消息增加IE,没有修改或着删除IE,因此R99是兼容R97协议的。 3.2.1Message Contents (1) 3.2.1.1ASSIGNMENT REQUEST (1) 3.2.1.2ASSIGNMENT COMPLETE (1) 3.2.1.8HANDOVER REQUEST (2) 3.2.1.9HANDOVER REQUIRED (3) 3.2.1.10HANDOVER REQUEST ACKNOWLEDGE (4) 3.2.1.25HANDOVER PERFORMED (4) 3.2.1.32COMPLETE LAYER 3 INFORMATION (5) 3.2.1 Message Contents 3.2.1.1 ASSIGNMENT REQUEST This message is sent from the MSC to the BSS via the relevant SCCP connection in order to request the BSS to assign radio resource(s), the attributes of which are defined within the message. The message may also include the terrestrial circuit to be used. 8 This information element is included if LSA access control function shall be suppressed in the BSS. 9 This information element is included if a preference for other radio access technologies shall be applied to the MS connection. 3.2.1.2 ASSIGNMENT COMPLETE The ASSIGNMENT COMPLETE message is sent from the BSS to the MSC and indicates that the requested assignment has been completed correctly. The message is sent via the BSSAP SCCP connection associated with the dedicated resource(s).

接口通信协议

北京国铁华晨通信信息技术公司 视频监控接口 通信协议 讨论稿 V1.0 北京国铁华晨通信信息技术公司1. 协议说明发布 3..

1.1. 协议适用范围 3.. 1.2. 相关术语解释 3.. 2. 概述 3... 2.1. 系统组织组织 3.. 2.2. 接口协议: 3... 2.3. 工作流程介绍 4.. 3. 通讯命令和参数定义 4.. 3.1. 网络通讯命令格式 4.. 3.1.1. 通信综合网管系统发送的命令格式......................... 4. 3.1.2. 视频监控专业网管系统发送的命令格式 (5) 3.2. 网络通信命令及参数定义 5.. 3.2.1. 告警上报指令 5.. 3.2.2. 告警上报反馈 6.. 3.2.3. 告警同步 6.. 3.2. 4. 网管配置更改通知 6.. 3.2.5. 摄像机配置更改通知 7.. 3.2.6. 编码器配置更改通知 7.. 3.2.7. 解码器配置更改通知 8.. 3.2.8. 网络视频服务器配置更改通知............................. 8. 3.2.9. 查询网管配置信息 9.. 3.2.10. 查询摄像机配置信息 9.. 3.2.11. 查询编码器配置信息 9.. 3.2.12. 查询解码器配置信息 9.. 3.2.13. 查询网络视频服务器配置信息.......................... 1. 0 3.2.1 4. 查询网络视频服务器 CPU 占用率....................... 1.0 3.2.15. 查询网络视频服务器内存占用率........................ 1. 0

PS2通信协议说明与接口定义(键盘和鼠标)

PS2键盘与鼠标的接口定义 针脚定义: 原理 PS/2鼠标接口采用一种双向同步串行协议?即每在时钟线上发一个脉冲,就在数据线上发送一位数据?在相互传输中,主机拥有总线控制权,即它可以在任何时候抑制鼠标的发送?方法是把时钟线一直拉低,鼠标就不能产生时钟信号和发送数据?在两个方向的传输中,时钟信号都是由鼠标产生,即主机不产生通信时钟信号? 如果主机要发送数据,它必须控制鼠标产生时钟信号?方法如下:主机首先下拉时钟线至少100μs抑制通信,然后再下拉数据线,最后释放时钟线?通过这一时序控制鼠标产生时钟信号?当鼠标检测到这个时序状态,会在10ms内产生时钟信号?如图3中 A 时序段?主机和鼠标之间,传输数据帧的时序如图2?图3所示?2.2 数据包结构在主机程序中,利用每个数据位的时钟脉冲触发中断,在中断例程中实现数据位的判断和接收?在实验过程中,通过合适的编程,能够正确控制并接收鼠标数据?但该方案有一点不足,由于每个CLOCK都要产生一次中断,中断频繁,需要耗用大量的主机资源? PS/2鼠标的四种工作模式是:Reset模式,当鼠标上电或主机发复位命令 0xFF给它时进入这种模式;Stream模式鼠标的默认模式,当鼠标上电或复位完成后,自动进入此模式,鼠标基本上以此模式工

;Remote模式,只有在主机发送了模式设置命令 0xF0后,鼠标才进入这种模式;Wrap模式,这种模式只用于测试鼠标与主机连接是否正确? PS/2鼠标在工作过程中,会及时把它的状态数据发送给主机?发送的数据包格式如表1所示? Byte1中的Bit0?Bit1?Bit2分别表示左?右?中键的状态,状态值0表示释放,1表示按下?Byte2和Byte3分别表示X轴和Y轴方向的移动计量值,是二进制补码值?Byte4的低四位表示滚轮的移动计量值,也是二进制补码值,高四位作为扩展符号位?这种数据包由带滚轮的三键三维鼠标产生?若是不带滚轮的三键鼠标,产生的数据包没有Byte4 其余的相同? 一.PS/2 鼠标键盘协议 PC 键盘可以有6 脚的mini-DIN 或5 脚的DIN 连接器如果你的键盘是6 脚的mini-DIN 而你的计算机是5 脚的DIN 或者相反这两类连接器可以用上面提到的适配器来兼容具有6 脚mini-DIN 的键盘通常被叫做PS/2 键盘而那些有5 脚DIN 叫做AT 设备XT 键盘也使用5 脚DIN 但它们非常古老并且多年前就不生产了所有现代的为PC 建造的键盘不是PS/2,AT 就是USB 的这篇文章不适用于USB 设备它们使用了一种完全不同的接口。 每种连接器的引脚定义如下所示 在刚才提到连接器上有四个有趣的管脚电源地5V 数据和时钟host 计算机提供5V 并且键盘/鼠标的地连接到host 的电源地上数据和时钟都是集电极开路的这就意味着它们通常保持高电平而且很容易下拉到地逻辑0 任何你连接到PS/2 鼠标键盘或host 的设备在时钟和数据线上要PS/2 技术参考著Adam Chapweske 译Roy Show第4 页共4 页 02-11-22发布有一个大的上拉电阻置0 就把线拉低置1 就让线上浮成高电平参考图1 中数据和时钟线的一般接口结构注意如果你打算使用象PIC 这样的微控制器由于它们的I/O 管脚是双向的你可以跳过晶体管和缓冲门并且通用同一个管脚进行输入和输出在这种组态情况下要设置管脚为输入就写入1 使得电阻上拉线上的电平要改变管脚为输出就写入0 到那个管脚把线路下拉到地。) PS/2 鼠标和键盘履行一种双向同步串行协议。换句话说每次数据线上发送一位数据并且每在时钟线上发一个脉冲就被读入。键盘/鼠标可以发送数据到主机,而主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自于键盘/鼠标的通讯,只要把时钟拉低即可。 从键盘/鼠标发送到主机的数据在时钟信号的下降沿当时钟从高变到低的时候被读取从主机发送到键盘/鼠标的数据在上升沿(当时钟从低变到高的时候)被读取;不管通讯的方向怎样键盘/鼠标总是产生时钟信号如果主机要发送数据它必须首先告诉设备开始产生时钟信号这个过程在下一章节中被描述)。最大的时钟频率是33kHz ,而且大多数设备工作在10 20kHz 。如果你要制作一个PS/2 设备。我推荐你把频率控制在15kHz 左右。这就意味着时钟应该是高40 微秒低40 微秒。 所有数据安排在字节中,每个字节为一帧,包含了11-12 个位。这些位的含义如下: 如果数据位中包含偶数个1,校验位就会置1;如果数据位中包含奇数个1,校验位就会置0 。数据位中1 的个数加上校验位总为奇数(这就是奇校验)这是用来错误检测。 当主机发送数据给键盘/鼠标时,设备回送一个握手信号来应答数据包已经收到。这个位不会出现

常用的硬件接口及通信协议详解

:串口 串口是串行接口的简称,分为同步传输( USRT)和异步传输 (UART)。在同步通信中,发送端和接收端使用同一个时钟。在异步 通信中,接受时钟和发送时钟是不同步的,即发送端和接收端都有自己 独立的时钟和相同的速度约定。 1:RS232接口定义 1 DCD载波检测 2 RXD接收数据 ------ 向:终端到计算机 3 TXD发送数据 ------ 向:计算机到终端 4 DTR数据终端准备好 5 GND信号地线 6 DSR数据准备好 7 RTS请求发送 8 CTS清除发送 9 RI 振铃扌旨示 2:异步串口的通信协议 作为UART的一种,工作原理是将传输数据的每个字符一位接位地传输。图一给出了其工作模式: 图一 其中各位的意义如下:

起始位:先发出一个逻辑” 0的信号,表示传输字符的开始 数据位:紧接着起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。 奇偶校验位:资料位加上这一位后,使得“ 1的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。 停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2 位的高电平。 空闲位:处于逻辑“ 1状态,表示当前线路上没有资料传送。 波特率:是衡量资料传送速率的指针。表示每秒钟传送的二进制位数。例如资料传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10X120= 1200字符/秒= 1200波特。 3:在嵌入式处理器中,通常都集成了串口,只需对相关寄存器进行设置,就可以使用啦。尽管不同的体系结构的处理器中,相关的寄存器可能不大一样,但是基于FIFO的uart框图还是差不多。

相关文档
最新文档