জিগবি ইজেডএসপি ইউএআরটি সম্পর্কে

লেখকঃ টর্চআইওটিবুটক্যাম্প
লিঙ্কঃ https://zhuanlan.zhihu.com/p/339700391
সূত্রঃ কোরা

১. ভূমিকা

সিলিকন ল্যাবস জিগবি গেটওয়ে ডিজাইনের জন্য একটি হোস্ট+এনসিপি সলিউশন প্রদান করেছে। এই আর্কিটেকচারে, হোস্ট ইউএআরটি (UART) অথবা এসপিআই (SPI) ইন্টারফেসের মাধ্যমে এনসিপি-র সাথে যোগাযোগ করতে পারে। সাধারণত ইউএআরটি ব্যবহৃত হয়, কারণ এটি এসপিআই-এর চেয়ে অনেক বেশি সরল।

সিলিকন ল্যাবস হোস্ট প্রোগ্রামের জন্য একটি নমুনা প্রজেক্টও সরবরাহ করেছে, যা হলো নমুনা।Z3GatewayHostনমুনাটি একটি ইউনিক্স-সদৃশ সিস্টেমে চলে। কিছু গ্রাহক এমন একটি হোস্ট নমুনা চাইতে পারেন যা আরটিওএস (RTOS)-এ চলতে পারে, কিন্তু দুর্ভাগ্যবশত, আপাতত কোনো আরটিওএস-ভিত্তিক হোস্ট নমুনা নেই। ব্যবহারকারীদের আরটিওএস-এর উপর ভিত্তি করে তাদের নিজস্ব হোস্ট প্রোগ্রাম তৈরি করতে হবে।

কাস্টমাইজড হোস্ট প্রোগ্রাম তৈরি করার আগে UART গেটওয়ে প্রোটোকল বোঝা গুরুত্বপূর্ণ। UART ভিত্তিক NCP এবং SPI ভিত্তিক NCP উভয়ের ক্ষেত্রেই, হোস্ট NCP-এর সাথে যোগাযোগের জন্য EZSP প্রোটোকল ব্যবহার করে।ইজেডএসপিএর সংক্ষিপ্ত রূপএমবারজেডনেট সিরিয়াল প্রোটোকলএবং এটি সংজ্ঞায়িত করা হয়েছেইউজি১০০UART ভিত্তিক NCP-এর ক্ষেত্রে, UART-এর মাধ্যমে EZSP ডেটা নির্ভরযোগ্যভাবে বহন করার জন্য একটি নিম্ন স্তরের প্রোটোকল প্রয়োগ করা হয়, সেটি হলো...ছাইপ্রোটোকল, সংক্ষিপ্ত রূপঅ্যাসিঙ্ক্রোনাস সিরিয়াল হোস্টASH সম্পর্কে আরও বিস্তারিত জানতে, অনুগ্রহ করে দেখুনইউজি১০১এবংইউজি১১৫.

EZSP এবং ASH-এর মধ্যকার সম্পর্কটি নিম্নলিখিত চিত্রের মাধ্যমে ব্যাখ্যা করা যেতে পারে:

১

EZSP এবং ASH প্রোটোকলের ডেটা ফরম্যাটটি নিম্নলিখিত ডায়াগ্রামের মাধ্যমে ব্যাখ্যা করা যেতে পারে:

২

এই পৃষ্ঠায় আমরা UART ডেটা ফ্রেম করার প্রক্রিয়া এবং জিগবি গেটওয়েতে প্রায়শই ব্যবহৃত কিছু গুরুত্বপূর্ণ ফ্রেম সম্পর্কে আলোচনা করব।

২. কাঠামোবদ্ধকরণ

সাধারণ ফ্রেম তৈরির প্রক্রিয়াটি নিম্নলিখিত চার্টের মাধ্যমে চিত্রিত করা যেতে পারে:

৩

এই চার্টে, ডেটা বলতে EZSP ফ্রেমকে বোঝানো হয়েছে। সাধারণভাবে, ফ্রেমিং প্রক্রিয়াগুলো হলো: |নং|ধাপ|রেফারেন্স|

|:-|:-|:-|

|1|EZSP ফ্রেমটি পূরণ করুন|UG100|

|২|ডেটা র‍্যান্ডমাইজেশন|ইউজি১০১ এর ৪.৩ অনুচ্ছেদ|

|৩|কন্ট্রোল বাইট যোগ করুন|ইউজি১০১ এর অধ্যায় ২ এবং ৩|

|4|সিআরসি গণনা করুন|ইউজি১০১ এর অনুচ্ছেদ ২.৩|

|৫|বাইট স্টাফিং|ইউজি১০১ এর ৪.২ অনুচ্ছেদ|

|6|শেষ ফ্ল্যাগ যোগ করুন|UG101-এর অনুচ্ছেদ 2.4|

২.১. EZSP ফ্রেমটি পূরণ করুন

UG100-এর অধ্যায় ৩-এ EZSP ফ্রেম ফরম্যাটটি ব্যাখ্যা করা হয়েছে।

৪

অনুগ্রহ করে মনে রাখবেন যে SDK আপগ্রেড হলে এই ফরম্যাটটি পরিবর্তিত হতে পারে। ফরম্যাট পরিবর্তিত হলে, আমরা এটিকে একটি নতুন ভার্সন নম্বর দেব। এই নিবন্ধটি লেখার সময় সর্বশেষ EZSP ভার্সন নম্বরটি হলো ৮ (EmberZnet 6.8)।

যেহেতু বিভিন্ন সংস্করণের মধ্যে EZSP ফ্রেম ফরম্যাট ভিন্ন হতে পারে, তাই হোস্ট এবং NCP-এর জন্য একটি বাধ্যতামূলক শর্ত রয়েছে।অবশ্যইএকই EZSP সংস্করণ ব্যবহার করুন। অন্যথায়, তারা প্রত্যাশিতভাবে যোগাযোগ করতে পারবে না।

তা অর্জন করতে, হোস্ট এবং এনসিপি-র মধ্যে প্রথম কমান্ডটি অবশ্যই ভার্সন কমান্ড হতে হবে। অন্য কথায়, অন্য যেকোনো যোগাযোগের আগে হোস্টকে অবশ্যই এনসিপি-র ইজেডএসপি ভার্সনটি সংগ্রহ করতে হবে। যদি ইজেডএসপি ভার্সনটি হোস্ট প্রান্তের ইজেডএসপি ভার্সন থেকে ভিন্ন হয়, তবে যোগাযোগটি বাতিল করতে হবে।

এর পেছনের অন্তর্নিহিত শর্তটি হলো যে ভার্সন কমান্ডের ফরম্যাটটি হতে পারেকখনো বদলাবেন নাEZSP ভার্সনের কমান্ড ফরম্যাটটি নিচের মতো:

৫

প্যারামিটার ফিল্ড এবং ভার্সন রেসপন্সের ফরম্যাটের ব্যাখ্যা UG100-এর অধ্যায় ৪-এ পাওয়া যাবে। প্যারামিটার ফিল্ড হলো হোস্ট প্রোগ্রামের EZSP ভার্সন। এই নিবন্ধটি লেখার সময়, এর ভার্সন হলো ৮।
৭
উদাহরণ: টর্চিআইওটিবুটক্যাম্প
链接: https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转转请注明出处.

২.২. ডেটা র‍্যান্ডমাইজেশন

বিস্তারিত র‍্যান্ডমাইজেশন প্রক্রিয়াটি UG101-এর ৪.৩ অনুচ্ছেদে বর্ণনা করা হয়েছে। সম্পূর্ণ EZSP ফ্রেমটিকে র‍্যান্ডমাইজ করা হবে। এই র‍্যান্ডমাইজেশনটি হলো EZSP ফ্রেম এবং একটি সিউডো-র‍্যান্ডম সিকোয়েন্সের মধ্যে এক্সক্লুসিভ-অর (exclusive-OR) পদ্ধতি ব্যবহার করা।

নিম্নে ছদ্ম-এলোমেলো অনুক্রম তৈরির অ্যালগরিদমটি দেওয়া হলো।

  • rand0 = 0×42
  • যদি randi-এর বিট 0-এর মান 0 হয়, তাহলে randi+1 = randi >> 1
  • যদি randi-এর বিট 0 1 হয়, randi+1 = (randi >> 1) ^ 0xB8

২.৩. কন্ট্রোল বাইট যোগ করুন

কন্ট্রোল বাইট হলো এক বাইটের ডেটা, এবং এটি ফ্রেমের শুরুতে যোগ করা উচিত। এর ফরম্যাটটি নিচের টেবিলে দেখানো হলো:

৬

মোট ৬ ধরনের কন্ট্রোল বাইট রয়েছে। প্রথম তিনটি EZSP ডেটা সহ সাধারণ ফ্রেমের জন্য ব্যবহৃত হয়, যার মধ্যে রয়েছে DATA, ACK এবং NAK। শেষের তিনটি সাধারণ EZSP ডেটা ছাড়া ব্যবহৃত হয়, যার মধ্যে রয়েছে RST, RSTACK এবং ERROR।

RST, RSTACK এবং ERROR-এর ফরম্যাট ৩.১ থেকে ৩.৩ অনুচ্ছেদে বর্ণনা করা হয়েছে।

২.৪. সিআরসি গণনা করুন।

কন্ট্রোল বাইট থেকে ডেটার শেষ পর্যন্ত বাইটগুলোর উপর একটি ১৬-বিটের সিআরসি (CRC) গণনা করা হয়। স্ট্যান্ডার্ড CRCCCITT (g(x) = x16 + x12 + x5 + 1)-কে 0xFFFF দিয়ে ইনিশিয়ালাইজ করা হয়। সবচেয়ে গুরুত্বপূর্ণ বাইটটি সবচেয়ে কম গুরুত্বপূর্ণ বাইটের আগে থাকে (বিগ-এন্ডিয়ান মোড)।

২.৫. বাইট স্টাফিং

UG101-এর ৪.২ অনুচ্ছেদে যেমন বর্ণনা করা হয়েছে, বিশেষ উদ্দেশ্যে ব্যবহৃত কিছু সংরক্ষিত বাইট মান রয়েছে। এই মানগুলো নিম্নলিখিত সারণিতে পাওয়া যাবে:

৭

যখন এই মানগুলি ফ্রেমে প্রদর্শিত হবে, তখন ডেটার উপর একটি বিশেষ প্রক্রিয়া সম্পন্ন করা হবে। – সংরক্ষিত বাইটের সামনে এস্কেপ বাইট 0x7D সন্নিবেশ করুন – ঐ সংরক্ষিত বাইটের বিট5 উল্টে দিন

নিচে এই অ্যালগরিদমটির কয়েকটি উদাহরণ দেওয়া হলো:

৮

২.৬. সমাপ্তি পতাকা যোগ করুন

চূড়ান্ত ধাপটি হলো ফ্রেমের শেষে এন্ড ফ্ল্যাগ 0x7E যোগ করা। এরপর ডেটা UART পোর্টে পাঠানো যাবে।

৩. কাঠামো অপসারণ প্রক্রিয়া

UART থেকে ডেটা পেলে, তা ডিকোড করার জন্য আমাদের শুধু বিপরীত ধাপগুলো অনুসরণ করতে হবে।

৪. তথ্যসূত্র


পোস্ট করার সময়: ০৮-ফেব্রুয়ারি-২০২২
হোয়াটসঅ্যাপ অনলাইন চ্যাট!