ஆசிரியர்: 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என்பது குறுகியதாகும்EmberZnet தொடர் நெறிமுறை, மற்றும் இது வரையறுக்கப்பட்டுள்ளதுUG100. UART அடிப்படையிலான NCP க்கு, EZSP தரவை UART மீது நம்பகத்தன்மையுடன் கொண்டு செல்ல குறைந்த அடுக்கு நெறிமுறை செயல்படுத்தப்படுகிறது, அதுதான்ASHநெறிமுறை, சுருக்கமாகஒத்திசைவற்ற சீரியல் ஹோஸ்ட். ASH பற்றிய கூடுதல் விவரங்களுக்கு, தயவுசெய்து பார்க்கவும்UG101மற்றும்UG115.
EZSP மற்றும் ASH இடையே உள்ள தொடர்பை பின்வரும் வரைபடத்தின் மூலம் விளக்கலாம்:
EZSP மற்றும் ASH நெறிமுறையின் தரவு வடிவத்தை பின்வரும் வரைபடத்தில் விளக்கலாம்:
இந்தப் பக்கத்தில், UART தரவு மற்றும் ஜிக்பீ கேட்வேயில் அடிக்கடி பயன்படுத்தப்படும் சில முக்கிய சட்டகங்களை வடிவமைக்கும் செயல்முறையை நாங்கள் அறிமுகப்படுத்துவோம்.
2. ஃப்ரேமிங்
பொதுவான கட்டமைப்பின் செயல்முறையை பின்வரும் விளக்கப்படம் மூலம் விளக்கலாம்:
இந்த விளக்கப்படத்தில், தரவு என்பது EZSP சட்டத்தை குறிக்கிறது. பொதுவாக, ஃப்ரேமிங் செயல்முறைகள்: |இல்லை|படி|குறிப்பு|
|:-|:-|:-|
|1|EZSP சட்டகத்தை நிரப்பவும்|UG100|
|2|தரவு ரேண்டமைசேஷன்|UG101 இன் பிரிவு 4.3|
|3|கண்ட்ரோல் பைட்டைச் சேர்|UG101 இன் அத்தியாயம்2 மற்றும் அத்தியாயம்3|
|4|CRCயை கணக்கிடுங்கள்|UG101 இன் பிரிவு 2.3|
|5|பைட் ஸ்டஃபிங்|UG101 இன் பிரிவு 4.2|
|6|முடிவுக் கொடியைச் சேர்|UG101 இன் பிரிவு 2.4|
2.1 EZSP சட்டத்தை நிரப்பவும்
EZSP சட்ட வடிவம் UG100 இன் அத்தியாயம் 3 இல் விளக்கப்பட்டுள்ளது.
SDK மேம்படுத்தப்படும் போது இந்த வடிவம் மாறக்கூடும் என்பதில் கவனம் செலுத்துங்கள். வடிவம் மாறும்போது, புதிய பதிப்பு எண்ணைக் கொடுப்போம். இந்த கட்டுரை எழுதப்படும் போது சமீபத்திய EZSP பதிப்பு எண் 8 ஆகும் (EmberZnet 6.8).
வெவ்வேறு பதிப்புகளுக்கு இடையில் EZSP சட்ட வடிவம் வேறுபட்டிருக்கலாம் என்பதால், ஹோஸ்ட் மற்றும் NCP இன் கட்டாயத் தேவை உள்ளதுவேண்டும்அதே EZSP பதிப்பில் வேலை செய்யுங்கள். இல்லையெனில், அவர்கள் எதிர்பார்த்தபடி தொடர்பு கொள்ள முடியாது.
அதை அடைய, ஹோஸ்டுக்கும் NCPக்கும் இடையே உள்ள முதல் கட்டளை பதிப்பு கட்டளையாக இருக்க வேண்டும். வேறு வார்த்தைகளில் கூறுவதானால், புரவலன் NCP இன் EZSP பதிப்பை வேறு எந்த தொடர்புக்கும் முன் மீட்டெடுக்க வேண்டும். ஹோஸ்ட் பக்கத்தின் EZSP பதிப்புடன் EZSP பதிப்பு வேறுபட்டால், தகவல்தொடர்பு நிறுத்தப்பட வேண்டும்.
இதற்குப் பின்னால் உள்ள மறைமுகமான தேவை என்னவென்றால், பதிப்பு கட்டளையின் வடிவம் முடியும்ஒருபோதும் மாறாதே. EZSP பதிப்பு கட்டளை வடிவம் கீழே உள்ளது:
链接:https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载联系作者获得授权,非商业转载请注明商
2.2 தரவு ரேண்டமைசேஷன்
விரிவான சீரற்றமயமாக்கல் செயல்முறை UG101 இன் பிரிவு 4.3 இல் விவரிக்கப்பட்டுள்ளது. முழு EZSP சட்டமும் சீரற்றதாக இருக்கும். ரேண்டமைசேஷன் என்பது பிரத்தியேக-அல்லது EZSP சட்டகம் மற்றும் ஒரு போலி-சீரற்ற வரிசை.
போலி-சீரற்ற வரிசையை உருவாக்குவதற்கான வழிமுறை கீழே உள்ளது.
- rand0 = 0×42
- ராண்டியின் பிட் 0 0 என்றால், ராண்டி+1 = ராண்டி >> 1
- ராண்டியின் பிட் 0 1 என்றால், ராண்டி+1 = (ராண்டி >> 1) ^ 0xB8
2.3 கட்டுப்பாட்டு பைட்டைச் சேர்க்கவும்
கட்டுப்பாட்டு பைட் என்பது ஒரு பைட் தரவு மற்றும் சட்டத்தின் தலையில் சேர்க்கப்பட வேண்டும். வடிவம் கீழே உள்ள அட்டவணையில் விளக்கப்பட்டுள்ளது:
மொத்தத்தில், 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 இல் விவரிக்கப்பட்டுள்ளபடி, சிறப்பு நோக்கத்திற்காகப் பயன்படுத்தப்படும் சில ஒதுக்கப்பட்ட பைட் மதிப்புகள் உள்ளன. இந்த மதிப்புகளை பின்வரும் அட்டவணையில் காணலாம்:
இந்த மதிப்புகள் சட்டத்தில் தோன்றும் போது, தரவுகளுக்கு ஒரு சிறப்பு சிகிச்சை செய்யப்படும். - ஒதுக்கப்பட்ட பைட்டின் முன் எஸ்கேப் பைட் 0x7D ஐச் செருகவும் - அந்த ஒதுக்கப்பட்ட பைட்டின் பிட் 5 ஐ மாற்றவும்
இந்த அல்காரிதத்தின் சில எடுத்துக்காட்டுகள் கீழே:
2.6 இறுதிக் கொடியைச் சேர்க்கவும்
இறுதிக் கொடி 0x7E ஐ சட்டத்தின் முடிவில் சேர்ப்பதே இறுதிப் படியாகும். அதன் பிறகு, தரவை UART போர்ட்டுக்கு அனுப்பலாம்.
3. டி-ஃப்ரேமிங் செயல்முறை
UART இலிருந்து தரவு பெறப்பட்டால், அதை டிகோட் செய்ய நாம் தலைகீழ் படிகளைச் செய்ய வேண்டும்.
4. குறிப்புகள்
இடுகை நேரம்: பிப்ரவரி-08-2022