ஆசிரியர்: TorchIoTBootCamp
இணைப்பு: https://zhuanlan.zhihu.com/p/339700391
குவோராவிலிருந்து
1. அறிமுகம்
சிலிக்கான் லேப்ஸ், ஜிக்பீ கேட்வே வடிவமைப்பிற்காக ஒரு ஹோஸ்ட்+என்சிபி தீர்வை வழங்கியுள்ளது. இந்தக் கட்டமைப்பில், ஹோஸ்ட் ஆனது UART அல்லது SPI இடைமுகம் வழியாக NCP உடன் தொடர்பு கொள்ள முடியும். SPI-ஐ விட UART மிகவும் எளிமையானதாக இருப்பதால், பொதுவாக அதுவே பயன்படுத்தப்படுகிறது.
சிலிக்கான் லேப்ஸ், ஹோஸ்ட் நிரலுக்காக ஒரு மாதிரித் திட்டத்தையும் வழங்கியுள்ளது, அதுவே அந்த மாதிரித் திட்டமாகும்.Z3 கேட்வே ஹோஸ்ட்இந்த மாதிரி, யூனிக்ஸ் போன்ற அமைப்பில் இயங்குகிறது. சில வாடிக்கையாளர்கள் RTOS-இல் இயங்கக்கூடிய ஒரு ஹோஸ்ட் மாதிரியை விரும்பலாம், ஆனால் துரதிர்ஷ்டவசமாக, தற்போதைக்கு RTOS அடிப்படையிலான ஹோஸ்ட் மாதிரி எதுவும் இல்லை. பயனர்கள் RTOS-ஐ அடிப்படையாகக் கொண்டு தங்களின் சொந்த ஹோஸ்ட் நிரலை உருவாக்க வேண்டும்.
தனிப்பயனாக்கப்பட்ட ஹோஸ்ட் நிரலை உருவாக்குவதற்கு முன், UART கேட்வே நெறிமுறையைப் புரிந்துகொள்வது அவசியம். UART அடிப்படையிலான NCP மற்றும் SPI அடிப்படையிலான NCP ஆகிய இரண்டிலும், ஹோஸ்ட் ஆனது NCP உடன் தொடர்புகொள்ள EZSP நெறிமுறையைப் பயன்படுத்துகிறது.EZSPஇதன் சுருக்கம்எம்பர்ஸ்நெட் தொடர் நெறிமுறைமேலும், அது வரையறுக்கப்பட்டுள்ளதுயுஜி100UART அடிப்படையிலான NCP-க்கு, EZSP தரவை UART வழியாக நம்பகத்தன்மையுடன் கொண்டு செல்ல ஒரு கீழ் அடுக்கு நெறிமுறை செயல்படுத்தப்படுகிறது, அதுதான்சாம்பல்நெறிமுறை, சுருக்கமாகஒத்திசைவற்ற தொடர் ஹோஸ்ட்ASH பற்றிய மேலும் விவரங்களுக்கு, தயவுசெய்து பார்க்கவும்.யுஜி101மற்றும்யுஜி115.
EZSP மற்றும் ASH-க்கு இடையேயான தொடர்பை பின்வரும் வரைபடத்தின் மூலம் விளக்கலாம்:
EZSP மற்றும் ASH நெறிமுறைகளின் தரவு வடிவத்தை பின்வரும் வரைபடத்தின் மூலம் விளக்கலாம்:
இந்தப் பக்கத்தில், UART தரவைக் கட்டமைத்தல் செயல்முறையையும், Zigbee நுழைவாயிலில் அடிக்கடி பயன்படுத்தப்படும் சில முக்கிய பிரேம்களையும் அறிமுகப்படுத்துவோம்.
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 சட்டகத்தையும் ஒரு போலி-சமவாய்ப்புத் தொடரையும் பிரத்தியேகமாக-OR செய்வதாகும்.
போலி-சீரற்ற வரிசையை உருவாக்கும் வழிமுறை கீழே கொடுக்கப்பட்டுள்ளது.
- rand0 = 0×42
- randi-யின் பிட் 0, 0 ஆக இருந்தால், randi+1 = randi >> 1
- randi-யின் பிட் 0, 1 ஆக இருந்தால், randi+1 = (randi >> 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








