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

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

1. ভূমিকা

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

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

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

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

১

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

২

এই পৃষ্ঠায়, আমরা UART ডেটা ফ্রেম করার প্রক্রিয়া এবং জিগবি গেটওয়েতে প্রায়শই ব্যবহৃত কিছু কী ফ্রেমের সাথে পরিচয় করিয়ে দেব।

2. ফ্রেমিং

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

৩

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

|:-|:-|:-|

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

|2|ডেটা র‍্যান্ডমাইজেশন|UG101 এর ধারা 4.3|

|3|UG101| এর কন্ট্রোল বাইট|অধ্যায় 2 এবং অধ্যায় 3 যোগ করুন।

|4|UG101 এর CRC|ধারা 2.3 গণনা করুন|

|৫|বাইট স্টাফিং|UG101 এর ধারা ৪.২|

|6|UG101 এর সমাপ্তি পতাকা|ধারা 2.4 যোগ করুন|

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

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

৪

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

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

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

এর পেছনে অন্তর্নিহিত প্রয়োজনীয়তা হল যে সংস্করণ কমান্ডের বিন্যাসটিকখনও পরিবর্তন করবেন না. EZSP সংস্করণ কমান্ড ফর্ম্যাটটি নীচের মত:

৫

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

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

বিস্তারিত র‍্যান্ডমাইজেশন প্রক্রিয়াটি UG101 এর ধারা 4.3 এ বর্ণনা করা হয়েছে। পুরো EZSP ফ্রেমটি র‍্যান্ডমাইজ করা হবে। র‍্যান্ডমাইজেশনটি হল EZSP ফ্রেম এবং একটি ছদ্ম-র‍্যান্ডম ক্রমকে একচেটিয়াভাবে।

নিচে ছদ্ম-র‍্যান্ডম ক্রম তৈরির অ্যালগরিদম দেওয়া হল।

  • র‍্যান্ড০ = ০×৪২
  • যদি র‍্যান্ডির বিট ০ ০ হয়, তাহলে র‍্যান্ডি+১ = র‍্যান্ডি >> ১
  • যদি র‍্যান্ডির বিট ০ ১ হয়, তাহলে র‍্যান্ডি+১ = (র‍্যান্ডি >> ১) ^ ০xB৮

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

কন্ট্রোল বাইট হল এক বাইট ডেটা, এবং ফ্রেমের মাথায় যোগ করা উচিত। ফর্ম্যাটটি নীচের টেবিলের সাহায্যে চিত্রিত করা হয়েছে:

৬

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

RST, RSTACK এবং ERROR এর বিন্যাস বিভাগ 3.1 থেকে 3.3 এ বর্ণনা করা হয়েছে।

২.৪। CRC গণনা করুন

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

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

UG101 এর বিভাগ 4.2 এ বর্ণিত হিসাবে, বিশেষ উদ্দেশ্যে ব্যবহৃত কিছু সংরক্ষিত বাইট মান রয়েছে। এই মানগুলি নিম্নলিখিত সারণীতে পাওয়া যাবে:

৭

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

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

৮

২.৬। এন্ড ফ্ল্যাগ যোগ করুন

শেষ ধাপ হল ফ্রেমের শেষে 0x7E ফ্ল্যাগ যুক্ত করা। এরপর, ডেটা UART পোর্টে পাঠানো যেতে পারে।

৩. ডি-ফ্রেমিং প্রক্রিয়া

যখন UART থেকে তথ্য গ্রহণ করা হয়, তখন এটি ডিকোড করার জন্য আমাদের কেবল বিপরীত পদক্ষেপগুলি করতে হবে।

৪. তথ্যসূত্র


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