ಲೇಖಕ : ಟಾರ್ಚಿಯೊಟ್ಬೂಟ್ಕ್ಯಾಂಪ್
ಲಿಂಕ್ : https: //zhuanlan.zhihu.com/p/339700391
: Quora ನಿಂದ
1. ಪರಿಚಯ
ಸಿಲಿಕಾನ್ ಲ್ಯಾಬ್ಸ್ ಜಿಗ್ಬೀ ಗೇಟ್ವೇ ವಿನ್ಯಾಸಕ್ಕಾಗಿ ಹೋಸ್ಟ್+ಎನ್ಸಿಪಿ ಪರಿಹಾರವನ್ನು ನೀಡಿದೆ. ಈ ವಾಸ್ತುಶಿಲ್ಪದಲ್ಲಿ, ಹೋಸ್ಟ್ ಯುಎಆರ್ಟಿ ಅಥವಾ ಎಸ್ಪಿಐ ಇಂಟರ್ಫೇಸ್ ಮೂಲಕ ಎನ್ಸಿಪಿಯೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಬಹುದು. ಸಾಮಾನ್ಯವಾಗಿ, UART ಅನ್ನು SPI ಗಿಂತ ಹೆಚ್ಚು ಸರಳವಾಗಿರುವುದರಿಂದ ಬಳಸಲಾಗುತ್ತದೆ.
ಸಿಲಿಕಾನ್ ಲ್ಯಾಬ್ಸ್ ಹೋಸ್ಟ್ ಪ್ರೋಗ್ರಾಂಗಾಗಿ ಮಾದರಿ ಯೋಜನೆಯನ್ನು ಸಹ ಒದಗಿಸಿದೆ, ಅದು ಮಾದರಿZ3Gatewayhost
. ಮಾದರಿ ಯುನಿಕ್ಸ್ ತರಹದ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಚಲಿಸುತ್ತದೆ. ಕೆಲವು ಗ್ರಾಹಕರು ಆರ್ಟಿಒಗಳಲ್ಲಿ ಚಲಿಸಬಲ್ಲ ಹೋಸ್ಟ್ ಮಾದರಿಯನ್ನು ಬಯಸಬಹುದು, ಆದರೆ ದುರದೃಷ್ಟವಶಾತ್, ಸದ್ಯಕ್ಕೆ ಆರ್ಟಿಒಎಸ್ ಆಧಾರಿತ ಹೋಸ್ಟ್ ಮಾದರಿ ಇಲ್ಲ. ಬಳಕೆದಾರರು ಆರ್ಟಿಒಎಸ್ ಆಧರಿಸಿ ತಮ್ಮದೇ ಆದ ಹೋಸ್ಟ್ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಬೇಕಾಗಿದೆ.
ಕಸ್ಟಮೈಸ್ ಮಾಡಿದ ಹೋಸ್ಟ್ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಮೊದಲು UART ಗೇಟ್ವೇ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಬಹಳ ಮುಖ್ಯ. UART ಆಧಾರಿತ ಎನ್ಸಿಪಿ ಮತ್ತು ಎಸ್ಪಿಐ ಆಧಾರಿತ ಎನ್ಸಿಪಿ ಎರಡಕ್ಕೂ, ಆತಿಥೇಯರು ಎನ್ಸಿಪಿಯೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ಇ Z ಡ್ಎಸ್ಪಿ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಬಳಸುತ್ತಾರೆ.EZSPಚಿಕ್ಕದಾಗಿದೆಎಂಬರ್ಜ್ನೆಟ್ ಸರಣಿ ಪ್ರೋಟೋಕಾಲ್, ಮತ್ತು ಇದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆUg100. UART ಆಧಾರಿತ NCP ಗಾಗಿ, UART ಮೇಲೆ EZSP ಡೇಟಾವನ್ನು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ಸಾಗಿಸಲು ಕಡಿಮೆ ಲೇಯರ್ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ, ಅದುಬೂದಿಪ್ರೋಟೋಕಾಲ್, ಚಿಕ್ಕದಾಗಿದೆಅಸಮಕಾಲಿಕ ಸರಣಿ ಹೋಸ್ಟ್. ಆಶ್ ಬಗ್ಗೆ ಹೆಚ್ಚಿನ ವಿವರಗಳಿಗಾಗಿ, ದಯವಿಟ್ಟು ನೋಡಿUG101ಮತ್ತುUG115.
ಇ Z ಡ್ಎಸ್ಪಿ ಮತ್ತು ಆಶ್ ನಡುವಿನ ಸಂಬಂಧವನ್ನು ಈ ಕೆಳಗಿನ ರೇಖಾಚಿತ್ರದಿಂದ ವಿವರಿಸಬಹುದು:
ಇ Z ಡ್ಎಸ್ಪಿ ಮತ್ತು ಆಶ್ ಪ್ರೋಟೋಕಾಲ್ನ ಡೇಟಾ ಸ್ವರೂಪವನ್ನು ಈ ಕೆಳಗಿನ ರೇಖಾಚಿತ್ರದಿಂದ ವಿವರಿಸಬಹುದು:
ಈ ಪುಟದಲ್ಲಿ, ನಾವು UART ಡೇಟಾವನ್ನು ರೂಪಿಸುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮತ್ತು ಜಿಗ್ಬೀ ಗೇಟ್ವೇಯಲ್ಲಿ ಆಗಾಗ್ಗೆ ಬಳಸಲಾಗುವ ಕೆಲವು ಪ್ರಮುಖ ಫ್ರೇಮ್ಗಳನ್ನು ಪರಿಚಯಿಸುತ್ತೇವೆ.
2. ಫ್ರೇಮಿಂಗ್
ಸಾಮಾನ್ಯ ಫ್ರೇಮಿಂಗ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಈ ಕೆಳಗಿನ ಪಟ್ಟಿಯಿಂದ ವಿವರಿಸಬಹುದು:
ಈ ಚಾರ್ಟ್ನಲ್ಲಿ, ಡೇಟಾ ಎಂದರೆ EZSP ಫ್ರೇಮ್. ಸಾಮಾನ್ಯವಾಗಿ, ಫ್ರೇಮಿಂಗ್ ಪ್ರಕ್ರಿಯೆಗಳು ಹೀಗಿವೆ: | ಇಲ್ಲ | ಹಂತ | ಉಲ್ಲೇಖ |
|:-|:-|:-|
| 1 | EZSP ಫ್ರೇಮ್ ಅನ್ನು ಭರ್ತಿ ಮಾಡಿ | ug100 |
| 2 | ಡೇಟಾ ಯಾದೃಚ್ ization ಿಕೀಕರಣ | UG101 | ನ ವಿಭಾಗ 4.3 |
| 3 | UG101 | ನ ನಿಯಂತ್ರಣ ಬೈಟ್ | CHAP2 ಮತ್ತು CHAP3 ಅನ್ನು ಸೇರಿಸಿ
| 4 | UG101 | ನ CRC | ವಿಭಾಗ 2.3 ಅನ್ನು ಲೆಕ್ಕಹಾಕಿ
| 5 | ಬೈಟ್ ಸ್ಟಫಿಂಗ್ | UG101 | ನ ವಿಭಾಗ 4.2 |
| 6 | ಅಂತಿಮ ಧ್ವಜವನ್ನು ಸೇರಿಸಿ | UG101 | ನ ವಿಭಾಗ 2.4 |
2.1. EZSP ಫ್ರೇಮ್ ಅನ್ನು ಭರ್ತಿ ಮಾಡಿ
EZSP ಫ್ರೇಮ್ ಸ್ವರೂಪವನ್ನು UG100 ನ ಅಧ್ಯಾಯ 3 ರಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ.
ಎಸ್ಡಿಕೆ ನವೀಕರಣಗೊಂಡಾಗ ಈ ಸ್ವರೂಪವು ಬದಲಾಗಬಹುದು ಎಂದು ಗಮನ ಕೊಡಿ. ಸ್ವರೂಪವು ಬದಲಾದಾಗ, ನಾವು ಅದಕ್ಕೆ ಹೊಸ ಆವೃತ್ತಿ ಸಂಖ್ಯೆಯನ್ನು ನೀಡುತ್ತೇವೆ. ಈ ಲೇಖನವನ್ನು ಬರೆದಾಗ ಇತ್ತೀಚಿನ EZSP ಆವೃತ್ತಿ ಸಂಖ್ಯೆ 8 ಆಗಿದೆ (ಎಂಬಬರ್ಜ್ನೆಟ್ 6.8).
EZSP ಫ್ರೇಮ್ ಸ್ವರೂಪವು ವಿಭಿನ್ನ ಆವೃತ್ತಿಗಳ ನಡುವೆ ಭಿನ್ನವಾಗಿರುವುದರಿಂದ, ಹೋಸ್ಟ್ ಮತ್ತು ಎನ್ಸಿಪಿ ಕಡ್ಡಾಯ ಅವಶ್ಯಕತೆಯಿದೆಮಾಡಬೇಕಾದಅದೇ EZSP ಆವೃತ್ತಿಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಿ. ಇಲ್ಲದಿದ್ದರೆ, ಅವರು ನಿರೀಕ್ಷೆಯಂತೆ ಸಂವಹನ ನಡೆಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
ಅದನ್ನು ಸಾಧಿಸಲು, ಹೋಸ್ಟ್ ಮತ್ತು ಎನ್ಸಿಪಿ ನಡುವಿನ ಮೊದಲ ಆಜ್ಞೆಯು ಆವೃತ್ತಿ ಆಜ್ಞೆಯಾಗಿರಬೇಕು. ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಆತಿಥೇಯರು ಬೇರೆ ಯಾವುದೇ ಸಂವಹನದ ಮೊದಲು ಎನ್ಸಿಪಿಯ ಇ Z ಡ್ಎಸ್ಪಿ ಆವೃತ್ತಿಯನ್ನು ಹಿಂಪಡೆಯಬೇಕು. ಆತಿಥೇಯ ಬದಿಯ EZSP ಆವೃತ್ತಿಯೊಂದಿಗೆ EZSP ಆವೃತ್ತಿಯು ವಿಭಿನ್ನವಾಗಿದ್ದರೆ, ಸಂವಹನವನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಬೇಕು.
ಇದರ ಹಿಂದಿನ ಸೂಚ್ಯ ಅವಶ್ಯಕತೆಯೆಂದರೆ ಆವೃತ್ತಿ ಆಜ್ಞೆಯ ಸ್ವರೂಪವು ಮಾಡಬಹುದುಎಂದಿಗೂ ಬದಲಾಗಬೇಡಿ. EZSP ಆವೃತ್ತಿ ಆಜ್ಞಾ ಸ್ವರೂಪವು ಕೆಳಗಿನಂತಿದೆ:
链接 : https: //zhuanlan.zhihu.com/p/339700391
来源 : 知乎
, 非商业转载请注明出处。
2.2. ಡೇಟಾ ಯಾದೃಚ್ ization ಿಕೀಕರಣ
ವಿವರವಾದ ಯಾದೃಚ್ ization ಿಕ ಪ್ರಕ್ರಿಯೆಯನ್ನು UG101 ನ ವಿಭಾಗ 4.3 ರಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ. ಇಡೀ ಇ Z ಡ್ಎಸ್ಪಿ ಫ್ರೇಮ್ ಅನ್ನು ಯಾದೃಚ್ ized ಿಕಗೊಳಿಸಲಾಗುತ್ತದೆ. ಯಾದೃಚ್ ization ಿಕೀಕರಣವು ವಿಶೇಷ-ಅಥವಾ ಇ Z ಡ್ಎಸ್ಪಿ ಫ್ರೇಮ್ ಮತ್ತು ಹುಸಿ-ಯಾದೃಚ್ seequence ್ ಅನುಕ್ರಮವಾಗಿದೆ.
ಹುಸಿ-ಯಾದೃಚ್ sequ ಿಕ ಅನುಕ್ರಮವನ್ನು ಉತ್ಪಾದಿಸುವ ಅಲ್ಗಾರಿದಮ್ ಕೆಳಗೆ ಇದೆ.
- rand0 = 0 × 42
- ರಾಂಡಿಯ ಬಿಟ್ 0 0 ಆಗಿದ್ದರೆ, ರಾಂಡಿ+1 = ರಾಂಡಿ >> 1
- ರಾಂಡಿಯ ಬಿಟ್ 0 ಆಗಿದ್ದರೆ, ರಾಂಡಿ+1 = (ರಾಂಡಿ >> 1) ^ 0xb8
2.3. ನಿಯಂತ್ರಣ ಬೈಟ್ ಸೇರಿಸಿ
ಕಂಟ್ರೋಲ್ ಬೈಟ್ ಒಂದು ಬೈಟ್ ಡೇಟಾ, ಮತ್ತು ಅದನ್ನು ಫ್ರೇಮ್ನ ತಲೆಗೆ ಸೇರಿಸಬೇಕು. ಸ್ವರೂಪವನ್ನು ಕೆಳಗಿನ ಕೋಷ್ಟಕದೊಂದಿಗೆ ವಿವರಿಸಲಾಗಿದೆ:
ಸಂಪೂರ್ಣವಾಗಿ, 6 ರೀತಿಯ ನಿಯಂತ್ರಣ ಬೈಟ್ಗಳಿವೆ. ಮೊದಲ ಮೂರು ದತ್ತಾಂಶ, ಎಸಿಕೆ ಮತ್ತು ಎನ್ಎಕೆ ಸೇರಿದಂತೆ ಇ Z ಡ್ಎಸ್ಪಿ ಡೇಟಾದೊಂದಿಗೆ ಸಾಮಾನ್ಯ ಫ್ರೇಮ್ಗಳಿಗೆ ಬಳಸಲಾಗುತ್ತದೆ. ಕೊನೆಯ ಮೂರು ಆರ್ಎಸ್ಟಿ, ಆರ್ಎಸ್ಟಾಕ್ ಮತ್ತು ದೋಷ ಸೇರಿದಂತೆ ಸಾಮಾನ್ಯ ಇ Z ಡ್ಎಸ್ಪಿ ಡೇಟಾ ಇಲ್ಲದೆ ಬಳಸಲಾಗುತ್ತದೆ.
ಆರ್ಎಸ್ಟಿ, ಆರ್ಎಸ್ಟಾಕ್ ಮತ್ತು ದೋಷದ ಸ್ವರೂಪವನ್ನು ವಿಭಾಗ 3.1 ರಿಂದ 3.3 ರಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ.
2.4. ಸಿಆರ್ಸಿಯನ್ನು ಲೆಕ್ಕಹಾಕಿ
ದತ್ತಾಂಶದ ಅಂತ್ಯದವರೆಗೆ ನಿಯಂತ್ರಣ ಬೈಟ್ನಿಂದ ಬೈಟ್ಗಳಲ್ಲಿ 16-ಬಿಟ್ ಸಿಆರ್ಸಿಯನ್ನು ಲೆಕ್ಕಹಾಕಲಾಗುತ್ತದೆ. ಸ್ಟ್ಯಾಂಡರ್ಡ್ crcccitt (g (x) = x16 + x12 + x5 + 1) ಅನ್ನು 0xFFFF ಗೆ ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ. ಅತ್ಯಂತ ಮಹತ್ವದ ಬೈಟ್ ಕಡಿಮೆ ಮಹತ್ವದ ಬೈಟ್ಗೆ (ಬಿಗ್-ಎಂಡಿಯನ್ ಮೋಡ್) ಮುಂಚಿತವಾಗಿರುತ್ತದೆ.
2.5. ಬೈಟ್ ಸ್ಟಫಿಂಗ್
UG101 ನ ವಿಭಾಗ 4.2 ರಲ್ಲಿ ವಿವರಿಸಿದಂತೆ, ವಿಶೇಷ ಉದ್ದೇಶಕ್ಕಾಗಿ ಕೆಲವು ಕಾಯ್ದಿರಿಸಿದ ಬೈಟ್ ಮೌಲ್ಯಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಈ ಮೌಲ್ಯಗಳನ್ನು ಈ ಕೆಳಗಿನ ಕೋಷ್ಟಕದಲ್ಲಿ ಕಾಣಬಹುದು:
ಈ ಮೌಲ್ಯಗಳು ಫ್ರೇಮ್ನಲ್ಲಿ ಗೋಚರಿಸಿದಾಗ, ಡೇಟಾಗೆ ವಿಶೇಷ ಚಿಕಿತ್ಸೆ ಮಾಡಲಾಗುತ್ತದೆ. - ಕಾಯ್ದಿರಿಸಿದ ಬೈಟ್ನ ಮುಂದೆ ಎಸ್ಕೇಪ್ ಬೈಟ್ 0x7 ಡಿ ಅನ್ನು ಸೇರಿಸಿ - ಆ ಕಾಯ್ದಿರಿಸಿದ ಬೈಟ್ನ ಬಿಟ್ 5 ಅನ್ನು ಹಿಮ್ಮುಖಗೊಳಿಸಿ
ಈ ಅಲ್ಗಾರಿದಮ್ನ ಕೆಲವು ಉದಾಹರಣೆಗಳನ್ನು ಕೆಳಗೆ ನೀಡಲಾಗಿದೆ:
2.6. ಅಂತಿಮ ಧ್ವಜವನ್ನು ಸೇರಿಸಿ
ಅಂತಿಮ ಹಂತವೆಂದರೆ ಅಂತಿಮ ಧ್ವಜ 0x7e ಅನ್ನು ಫ್ರೇಮ್ನ ಕೊನೆಯಲ್ಲಿ ಸೇರಿಸುವುದು. ಅದರ ನಂತರ, ಡೇಟಾವನ್ನು UART ಬಂದರಿಗೆ ಕಳುಹಿಸಬಹುದು.
3. ಡಿ-ಫ್ರೇಮಿಂಗ್ ಪ್ರಕ್ರಿಯೆ
UART ಯಿಂದ ಡೇಟಾವನ್ನು ಸ್ವೀಕರಿಸಿದಾಗ, ಅದನ್ನು ಡಿಕೋಡ್ ಮಾಡಲು ನಾವು ಹಿಮ್ಮುಖ ಹಂತಗಳನ್ನು ಮಾಡಬೇಕಾಗಿದೆ.
4. ಉಲ್ಲೇಖಗಳು
ಪೋಸ್ಟ್ ಸಮಯ: ಫೆಬ್ರವರಿ -08-2022