ಜಿಗ್ಬೀ EZSP UART ಕುರಿತು

ಲೇಖಕ: TorchIoTBootCamp
ಲಿಂಕ್: https://zhuanlan.zhihu.com/p/339700391
ಇಂದ: Quora

1. ಪರಿಚಯ

ಸಿಲಿಕಾನ್ ಲ್ಯಾಬ್ಸ್ ಜಿಗ್‌ಬೀ ಗೇಟ್‌ವೇ ವಿನ್ಯಾಸಕ್ಕಾಗಿ ಹೋಸ್ಟ್+ಎನ್‌ಸಿಪಿ ಪರಿಹಾರವನ್ನು ನೀಡಿದೆ. ಈ ಆರ್ಕಿಟೆಕ್ಚರ್‌ನಲ್ಲಿ, ಹೋಸ್ಟ್ UART ಅಥವಾ SPI ಇಂಟರ್ಫೇಸ್ ಮೂಲಕ NCP ಯೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಬಹುದು. ಸಾಮಾನ್ಯವಾಗಿ, UART ಅನ್ನು SPI ಗಿಂತ ಹೆಚ್ಚು ಸರಳವಾಗಿರುವುದರಿಂದ ಬಳಸಲಾಗುತ್ತದೆ.

ಸಿಲಿಕಾನ್ ಲ್ಯಾಬ್ಸ್ ಹೋಸ್ಟ್ ಪ್ರೋಗ್ರಾಂಗೆ ಮಾದರಿ ಯೋಜನೆಯನ್ನು ಸಹ ಒದಗಿಸಿದೆ, ಇದು ಮಾದರಿಯಾಗಿದೆZ3GatewayHost. ಮಾದರಿಯು ಯುನಿಕ್ಸ್ ತರಹದ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಚಲಿಸುತ್ತದೆ. ಕೆಲವು ಗ್ರಾಹಕರು RTOS ನಲ್ಲಿ ರನ್ ಮಾಡಬಹುದಾದ ಹೋಸ್ಟ್ ಮಾದರಿಯನ್ನು ಬಯಸಬಹುದು, ಆದರೆ ದುರದೃಷ್ಟವಶಾತ್, ಸದ್ಯಕ್ಕೆ RTOS ಆಧಾರಿತ ಹೋಸ್ಟ್ ಮಾದರಿ ಇಲ್ಲ. ಬಳಕೆದಾರರು RTOS ಅನ್ನು ಆಧರಿಸಿ ತಮ್ಮದೇ ಆದ ಹೋಸ್ಟ್ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಬೇಕಾಗಿದೆ.

ಕಸ್ಟಮೈಸ್ ಮಾಡಿದ ಹೋಸ್ಟ್ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಮೊದಲು UART ಗೇಟ್‌ವೇ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಮುಖ್ಯವಾಗಿದೆ. UART ಆಧಾರಿತ NCP ಮತ್ತು SPI ಆಧಾರಿತ NCP ಎರಡಕ್ಕೂ, NCP ಯೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ಹೋಸ್ಟ್ EZSP ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಬಳಸುತ್ತದೆ.EZSPಗೆ ಚಿಕ್ಕದಾಗಿದೆಎಂಬರ್ಝ್ನೆಟ್ ಸೀರಿಯಲ್ ಪ್ರೋಟೋಕಾಲ್, ಮತ್ತು ಇದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆUG100. UART ಆಧಾರಿತ NCP ಗಾಗಿ, UART ಮೇಲೆ EZSP ಡೇಟಾವನ್ನು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ಸಾಗಿಸಲು ಕಡಿಮೆ ಲೇಯರ್ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ, ಅದುASHಪ್ರೋಟೋಕಾಲ್, ಸಂಕ್ಷಿಪ್ತವಾಗಿಅಸಮಕಾಲಿಕ ಸರಣಿ ಹೋಸ್ಟ್. ASH ಕುರಿತು ಹೆಚ್ಚಿನ ವಿವರಗಳಿಗಾಗಿ, ದಯವಿಟ್ಟು ನೋಡಿUG101ಮತ್ತುUG115.

EZSP ಮತ್ತು ASH ನಡುವಿನ ಸಂಬಂಧವನ್ನು ಈ ಕೆಳಗಿನ ರೇಖಾಚಿತ್ರದಿಂದ ವಿವರಿಸಬಹುದು:

1

EZSP ಮತ್ತು ASH ಪ್ರೋಟೋಕಾಲ್‌ನ ಡೇಟಾ ಸ್ವರೂಪವನ್ನು ಈ ಕೆಳಗಿನ ರೇಖಾಚಿತ್ರದಿಂದ ವಿವರಿಸಬಹುದು:

2

ಈ ಪುಟದಲ್ಲಿ, UART ಡೇಟಾ ಮತ್ತು ಜಿಗ್‌ಬೀ ಗೇಟ್‌ವೇಯಲ್ಲಿ ಆಗಾಗ್ಗೆ ಬಳಸಲಾಗುವ ಕೆಲವು ಪ್ರಮುಖ ಫ್ರೇಮ್‌ಗಳನ್ನು ರೂಪಿಸುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ನಾವು ಪರಿಚಯಿಸುತ್ತೇವೆ.

2. ಚೌಕಟ್ಟು

ಸಾಮಾನ್ಯ ಚೌಕಟ್ಟಿನ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಈ ಕೆಳಗಿನ ಚಾರ್ಟ್ನಿಂದ ವಿವರಿಸಬಹುದು:

3

ಈ ಚಾರ್ಟ್‌ನಲ್ಲಿ, ಡೇಟಾ ಎಂದರೆ EZSP ಫ್ರೇಮ್. ಸಾಮಾನ್ಯವಾಗಿ, ಚೌಕಟ್ಟಿನ ಪ್ರಕ್ರಿಯೆಗಳು: |ಇಲ್ಲ|ಹಂತ|ಉಲ್ಲೇಖ|

|:-|:-|:-|

|1|EZSP ಫ್ರೇಮ್ ಅನ್ನು ಭರ್ತಿ ಮಾಡಿ|UG100|

|2|ಡೇಟಾ ರಾಂಡಮೈಸೇಶನ್|UG101 ರ ವಿಭಾಗ 4.3|

|3|ನಿಯಂತ್ರಣ ಬೈಟ್ ಅನ್ನು ಸೇರಿಸಿ|UG101 ರ Chap2 ಮತ್ತು Chap3|

|4|CRC ಅನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಿ|UG101 ರ ವಿಭಾಗ 2.3|

|5|ಬೈಟ್ ಸ್ಟಫಿಂಗ್|UG101 ರ ವಿಭಾಗ 4.2|

|6|ಅಂತ್ಯ ಧ್ವಜವನ್ನು ಸೇರಿಸಿ|UG101 ರ ವಿಭಾಗ 2.4|

2.1. EZSP ಫ್ರೇಮ್ ಅನ್ನು ಭರ್ತಿ ಮಾಡಿ

EZSP ಫ್ರೇಮ್ ಫಾರ್ಮ್ಯಾಟ್ ಅನ್ನು UG100 ನ ಅಧ್ಯಾಯ 3 ರಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ.

4

SDK ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡಿದಾಗ ಈ ಸ್ವರೂಪವು ಬದಲಾಗಬಹುದು ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ಫಾರ್ಮ್ಯಾಟ್ ಬದಲಾದಾಗ, ನಾವು ಅದಕ್ಕೆ ಹೊಸ ಆವೃತ್ತಿ ಸಂಖ್ಯೆಯನ್ನು ನೀಡುತ್ತೇವೆ. ಈ ಲೇಖನವನ್ನು ಬರೆಯುವಾಗ ಇತ್ತೀಚಿನ EZSP ಆವೃತ್ತಿ ಸಂಖ್ಯೆ 8 ಆಗಿದೆ (ಎಂಬರ್‌ಝೆನೆಟ್ 6.8).

EZSP ಫ್ರೇಮ್ ಫಾರ್ಮ್ಯಾಟ್ ವಿಭಿನ್ನ ಆವೃತ್ತಿಗಳ ನಡುವೆ ವಿಭಿನ್ನವಾಗಿರಬಹುದು, ಹೋಸ್ಟ್ ಮತ್ತು NCP ಕಡ್ಡಾಯ ಅವಶ್ಯಕತೆಯಿದೆಮಾಡಬೇಕುಅದೇ EZSP ಆವೃತ್ತಿಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಿ. ಇಲ್ಲದಿದ್ದರೆ, ಅವರು ನಿರೀಕ್ಷಿಸಿದಂತೆ ಸಂವಹನ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.

ಅದನ್ನು ಸಾಧಿಸಲು, ಹೋಸ್ಟ್ ಮತ್ತು NCP ನಡುವಿನ ಮೊದಲ ಆಜ್ಞೆಯು ಆವೃತ್ತಿಯ ಆಜ್ಞೆಯಾಗಿರಬೇಕು. ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಹೋಸ್ಟ್ ಯಾವುದೇ ಇತರ ಸಂವಹನದ ಮೊದಲು NCP ಯ EZSP ಆವೃತ್ತಿಯನ್ನು ಹಿಂಪಡೆಯಬೇಕು. ಹೋಸ್ಟ್ ಬದಿಯ EZSP ಆವೃತ್ತಿಯೊಂದಿಗೆ EZSP ಆವೃತ್ತಿಯು ವಿಭಿನ್ನವಾಗಿದ್ದರೆ, ಸಂವಹನವನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಬೇಕು.

ಇದರ ಹಿಂದಿರುವ ಸೂಚ್ಯ ಅವಶ್ಯಕತೆಯೆಂದರೆ ಆವೃತ್ತಿಯ ಆಜ್ಞೆಯ ಸ್ವರೂಪವು ಮಾಡಬಹುದುಎಂದಿಗೂ ಬದಲಾಯಿಸಬೇಡಿ. EZSP ಆವೃತ್ತಿಯ ಕಮಾಂಡ್ ಫಾರ್ಮ್ಯಾಟ್ ಈ ಕೆಳಗಿನಂತಿದೆ:

5

ಪ್ಯಾರಾಮೀಟರ್ ಕ್ಷೇತ್ರದ ವಿವರಣೆಗಳು ಮತ್ತು ಆವೃತ್ತಿಯ ಪ್ರತಿಕ್ರಿಯೆಯ ಸ್ವರೂಪವನ್ನು UG100 ನ ಅಧ್ಯಾಯ 4 ರಲ್ಲಿ ಕಾಣಬಹುದು. ಪ್ಯಾರಾಮೀಟರ್ ಕ್ಷೇತ್ರವು ಹೋಸ್ಟ್ ಪ್ರೋಗ್ರಾಂನ EZSP ಆವೃತ್ತಿಯಾಗಿದೆ. ಈ ಲೇಖನವನ್ನು ಬರೆದಾಗ, ಅದು 8.
7
ಉದಾಹರಣೆಗೆ: ಟಾರ್ಚ್ ಐಒಟಿ ಬೂಟ್‌ಕ್ಯಾಂಪ್
链接:https://zhuanlan.zhihu.com/p/339700391
来源: 知乎
ನೀವು

2.2 ಡೇಟಾ ಯಾದೃಚ್ಛಿಕೀಕರಣ

ವಿವರವಾದ ಯಾದೃಚ್ಛಿಕ ಪ್ರಕ್ರಿಯೆಯನ್ನು UG101 ನ ವಿಭಾಗ 4.3 ರಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ. ಸಂಪೂರ್ಣ EZSP ಫ್ರೇಮ್ ಅನ್ನು ಯಾದೃಚ್ಛಿಕಗೊಳಿಸಲಾಗುತ್ತದೆ. ಯಾದೃಚ್ಛಿಕೀಕರಣವು ವಿಶೇಷ-ಅಥವಾ EZSP ಫ್ರೇಮ್ ಮತ್ತು ಹುಸಿ-ಯಾದೃಚ್ಛಿಕ ಅನುಕ್ರಮವಾಗಿದೆ.

ಹುಸಿ-ಯಾದೃಚ್ಛಿಕ ಅನುಕ್ರಮವನ್ನು ಉತ್ಪಾದಿಸುವ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಕೆಳಗೆ ನೀಡಲಾಗಿದೆ.

  • ರಾಂಡ್0 = 0×42
  • ರಾಂಡಿಯ ಬಿಟ್ 0 0 ಆಗಿದ್ದರೆ, ರಾಂಡಿ+1 = ರಾಂಡಿ >> 1
  • ರಾಂಡಿಯ ಬಿಟ್ 0 1 ಆಗಿದ್ದರೆ, ರಾಂಡಿ+1 = (ರಾಂಡಿ >> 1) ^ 0xB8

2.3 ಕಂಟ್ರೋಲ್ ಬೈಟ್ ಸೇರಿಸಿ

ನಿಯಂತ್ರಣ ಬೈಟ್ ಒಂದು ಬೈಟ್ ಡೇಟಾ, ಮತ್ತು ಫ್ರೇಮ್‌ನ ತಲೆಗೆ ಸೇರಿಸಬೇಕು. ಕೆಳಗಿನ ಕೋಷ್ಟಕದೊಂದಿಗೆ ಸ್ವರೂಪವನ್ನು ವಿವರಿಸಲಾಗಿದೆ:

6

ಒಟ್ಟಾರೆಯಾಗಿ, 6 ರೀತಿಯ ನಿಯಂತ್ರಣ ಬೈಟ್‌ಗಳಿವೆ. ಮೊದಲ ಮೂರು DATA, ACK ಮತ್ತು NAK ಸೇರಿದಂತೆ EZSP ಡೇಟಾದೊಂದಿಗೆ ಸಾಮಾನ್ಯ ಫ್ರೇಮ್‌ಗಳಿಗೆ ಬಳಸಲಾಗುತ್ತದೆ. RST, RSTACK ಮತ್ತು ERROR ಸೇರಿದಂತೆ ಸಾಮಾನ್ಯ EZSP ಡೇಟಾ ಇಲ್ಲದೆ ಕೊನೆಯ ಮೂರು ಬಳಸಲಾಗಿದೆ.

RST, RSTACK ಮತ್ತು ERROR ನ ಸ್ವರೂಪವನ್ನು ವಿಭಾಗ 3.1 ರಿಂದ 3.3 ರಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ.

2.4 CRC ಅನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಿ

16-ಬಿಟ್ CRC ಅನ್ನು ನಿಯಂತ್ರಣ ಬೈಟ್‌ನಿಂದ ಡೇಟಾದ ಅಂತ್ಯದವರೆಗೆ ಬೈಟ್‌ಗಳಲ್ಲಿ ಲೆಕ್ಕಹಾಕಲಾಗುತ್ತದೆ. ಪ್ರಮಾಣಿತ CRCCCITT (g(x) = x16 + x12 + x5 + 1) ಅನ್ನು 0xFFFF ಗೆ ಪ್ರಾರಂಭಿಸಲಾಗಿದೆ. ಅತ್ಯಂತ ಮಹತ್ವದ ಬೈಟ್ ಕನಿಷ್ಠ ಮಹತ್ವದ ಬೈಟ್‌ಗಿಂತ (ಬಿಗ್-ಎಂಡಿಯನ್ ಮೋಡ್) ಮುಂದಿದೆ.

2.5 ಬೈಟ್ ಸ್ಟಫಿಂಗ್

UG101 ನ ವಿಭಾಗ 4.2 ರಲ್ಲಿ ವಿವರಿಸಿದಂತೆ, ವಿಶೇಷ ಉದ್ದೇಶಕ್ಕಾಗಿ ಕೆಲವು ಕಾಯ್ದಿರಿಸಿದ ಬೈಟ್ ಮೌಲ್ಯಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಈ ಮೌಲ್ಯಗಳನ್ನು ಕೆಳಗಿನ ಕೋಷ್ಟಕದಲ್ಲಿ ಕಾಣಬಹುದು:

7

ಈ ಮೌಲ್ಯಗಳು ಚೌಕಟ್ಟಿನಲ್ಲಿ ಕಾಣಿಸಿಕೊಂಡಾಗ, ಡೇಟಾಗೆ ವಿಶೇಷ ಚಿಕಿತ್ಸೆಯನ್ನು ಮಾಡಲಾಗುತ್ತದೆ. - ಕಾಯ್ದಿರಿಸಿದ ಬೈಟ್‌ನ ಮುಂದೆ ಎಸ್ಕೇಪ್ ಬೈಟ್ 0x7D ಅನ್ನು ಸೇರಿಸಿ - ಆ ಕಾಯ್ದಿರಿಸಿದ ಬೈಟ್‌ನ ಬಿಟ್5 ಅನ್ನು ಹಿಮ್ಮುಖಗೊಳಿಸಿ

ಈ ಅಲ್ಗಾರಿದಮ್‌ನ ಕೆಲವು ಉದಾಹರಣೆಗಳನ್ನು ಕೆಳಗೆ ನೀಡಲಾಗಿದೆ:

8

2.6. ಅಂತ್ಯ ಧ್ವಜವನ್ನು ಸೇರಿಸಿ

ಅಂತಿಮ ಹಂತವು 0x7E ಅನ್ನು ಫ್ರೇಮ್‌ನ ಅಂತ್ಯಕ್ಕೆ ಸೇರಿಸುವುದು. ಅದರ ನಂತರ, ಡೇಟಾವನ್ನು UART ಪೋರ್ಟ್ಗೆ ಕಳುಹಿಸಬಹುದು.

3. ಡಿ-ಫ್ರೇಮಿಂಗ್ ಪ್ರಕ್ರಿಯೆ

UART ನಿಂದ ಡೇಟಾವನ್ನು ಸ್ವೀಕರಿಸಿದಾಗ, ಅದನ್ನು ಡಿಕೋಡ್ ಮಾಡಲು ನಾವು ಹಿಮ್ಮುಖ ಕ್ರಮಗಳನ್ನು ಮಾಡಬೇಕಾಗಿದೆ.

4. ಉಲ್ಲೇಖಗಳು


ಪೋಸ್ಟ್ ಸಮಯ: ಫೆಬ್ರವರಿ-08-2022
WhatsApp ಆನ್‌ಲೈನ್ ಚಾಟ್!