AN451
ওয়্যারলেস এম-বাস সফ্টওয়্যার বাস্তবায়ন
ভূমিকা
এই অ্যাপ্লিকেশন নোটটি সিলিকন ল্যাবস C8051 MCU এবং EZRadioPRO® ব্যবহার করে ওয়্যারলেস এম-বাসের সিলিকন ল্যাবস বাস্তবায়নের বর্ণনা করে। 868 MHz ফ্রিকোয়েন্সি ব্যান্ড ব্যবহার করে মিটার-রিডিং অ্যাপ্লিকেশনের জন্য ওয়্যারলেস এম-বাস একটি ইউরোপীয় স্ট্যান্ডার্ড।
স্ট্যাক স্তর
ওয়্যারলেস এম-বাস 3-স্তর আইইসি মডেল ব্যবহার করে, যা 7-স্তর ওএসআই মডেলের একটি উপসেট (চিত্র 1 দেখুন)।
ভৌত (PHY) স্তরটি EN 13757-4 এ সংজ্ঞায়িত করা হয়েছে। ভৌত স্তর সংজ্ঞায়িত করে কিভাবে বিটগুলি এনকোড করা এবং প্রেরণ করা হয়, আরএফ মডেমের বৈশিষ্ট্য (চিপ রেট, প্রস্তাবনা এবং সিঙ্ক্রোনাইজেশন শব্দ), এবং আরএফ প্যারামিটার (মডুলেশন, কেন্দ্র ফ্রিকোয়েন্সি এবং ফ্রিকোয়েন্সি বিচ্যুতি)।
PHY স্তরটি হার্ডওয়্যার এবং ফার্মওয়্যারের সংমিশ্রণ ব্যবহার করে প্রয়োগ করা হয়। EZRadioPRO সমস্ত RF এবং মডেম ফাংশন সম্পাদন করে। EZRadioPRO প্যাকেট হ্যান্ডলারের সাথে FIFO মোডে ব্যবহার করা হয়। MbusPhy.c মডিউলটি SPI ইন্টারফেস, এনকোডিং/ডিকোডিং, ব্লক রিড/রাইট এবং প্যাকেট হ্যান্ডলিং প্রদান করে এবং ট্রান্সসিভারের অবস্থা পরিচালনা করে।
M-Bus ডেটা লিঙ্ক স্তর MbusLink.c মডিউলে প্রয়োগ করা হয়। M-Bus অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস পাবলিক ফাংশন নিয়ে গঠিত যা মূল থ্রেডের অ্যাপ্লিকেশন স্তর থেকে কল করা যেতে পারে। MbusLink মডিউল ডাটা লিঙ্ক লেয়ারও প্রয়োগ করে। ডেটা লিঙ্ক স্তরটি প্রয়োজনীয় শিরোনাম এবং CRC যোগ করে অ্যাপ্লিকেশন TX বাফার থেকে MbusPhy TX বাফারে ডেটা ফর্ম্যাট এবং অনুলিপি করবে।
অ্যাপ্লিকেশন স্তর নিজেই M-বাস ফার্মওয়্যারের অংশ নয়। অ্যাপ্লিকেশন স্তর সংজ্ঞায়িত করে কিভাবে ট্রান্সমিশনের জন্য বিভিন্ন ধরণের ডেটা ফরম্যাট করা হবে। বেশিরভাগ মিটারের শুধুমাত্র এক বা দুই ধরনের ডেটা প্রেরণ করতে হবে। মিটারে যেকোন ধরনের ডেটা মিটমাট করার জন্য প্রচুর পরিমাণে কোড যোগ করলে মিটারে অপ্রয়োজনীয় কোড এবং খরচ যোগ হবে। এটি একটি লাইব্রেরি বা একটি শিরোনাম বাস্তবায়ন সম্ভব হতে পারে file তথ্য প্রকারের একটি সম্পূর্ণ তালিকা সহ। যাইহোক, বেশিরভাগ মিটারিং গ্রাহকরা জানেন যে তাদের কি ধরনের ডেটা প্রেরণ করতে হবে এবং ফর্ম্যাটিং বিশদ বিবরণের জন্য মান উল্লেখ করতে পারে। একটি সার্বজনীন পাঠক বা স্নিফার PC GUI-তে অ্যাপ্লিকেশন ডেটা প্রকারের সম্পূর্ণ সেট প্রয়োগ করতে পারে। এই কারণে, অ্যাপ্লিকেশন স্তর ex ব্যবহার করে প্রয়োগ করা হয়ampএকটি মিটার এবং রিডার জন্য আবেদন.
প্রয়োজনীয় মান
- EN 13757-4
EN 13757-4
মিটারের জন্য যোগাযোগ ব্যবস্থা এবং মিটারের রিমোট রিডিং
পার্ট 4: ওয়্যারলেস মিটার রিডআউট
868 MHz থেকে 870 MHz SRD ব্যান্ডে অপারেশনের জন্য রেডিওমিটার রিডিং - EN 13757-3
মিটারের জন্য যোগাযোগ ব্যবস্থা এবং মিটারের রিমোট রিডিং
পার্ট 3: ডেডিকেটেড অ্যাপ্লিকেশন লেয়ার - IEC 60870-2-1:1992
টেলিকন্ট্রোল সরঞ্জাম এবং সিস্টেম
পার্ট 5: ট্রান্সমিশন প্রোটোকল
বিভাগ 1: লিঙ্ক ট্রান্সমিশন পদ্ধতি - IEC 60870-1-1:1990
টেলিকন্ট্রোল সরঞ্জাম এবং সিস্টেম
পার্ট 5: ট্রান্সমিশন প্রোটোকল
বিভাগ 1: ট্রান্সমিশন ফ্রেম ফরম্যাট
সংজ্ঞা
- এম-বাস-M-Bus হল ইউরোপে মিটার রিডিংয়ের জন্য একটি তারযুক্ত মান।
- ওয়্যারলেস এম-বাস—ইউরোপে মিটার রিডিং অ্যাপ্লিকেশনের জন্য ওয়্যারলেস এম-বাস।
- PHY—ফিজিক্যাল লেয়ার সংজ্ঞায়িত করে কিভাবে ডেটা বিট এবং বাইট এনকোড করা হয় এবং প্রেরণ করা হয়।
- API-অ্যাপ্লিকেশন প্রোগ্রামার ইন্টারফেস।
- লিঙ্ক -ডেটা লিঙ্ক স্তর সংজ্ঞায়িত করে কিভাবে ব্লক এবং ফ্রেম প্রেরণ করা হয়।
- সিআরসি-সাইক্লিক রিডানডেন্সি চেক।
- FSK-ফ্রিকোয়েন্সি শিফট কীয়িং।
- চিপ-প্রেরিত তথ্যের ক্ষুদ্রতম একক। একটি ডেটা বিট একাধিক চিপ হিসাবে এনকোড করা হয়।
- মডিউল-এসি কোড উৎস .c file.
M-বাস PHY কার্যকরী বর্ণনা
প্রস্তাবনা ক্রম
M-bus স্পেসিফিকেশন দ্বারা নির্দিষ্ট প্রস্তাবনা ক্রম হল একটি পূর্ণসংখ্যা সংখ্যা পর্যায়ক্রমে শূন্য এবং এক। একটি উচ্চ কম্পাঙ্ক হিসাবে সংজ্ঞায়িত করা হয়, এবং একটি শূন্য নিম্ন ফ্রিকোয়েন্সি হিসাবে সংজ্ঞায়িত করা হয়।
nx (01)
Si443x-এর প্রস্তাবনা বিকল্পগুলি হল পর্যায়ক্রমিক ও শূন্য সমন্বিত নিবলগুলির একটি পূর্ণসংখ্যা।
nx (1010)
একটি অতিরিক্ত অগ্রণী সহ একটি প্রস্তাবনা একটি সমস্যা হবে না, কিন্তু, তারপর, সিঙ্ক্রোনাইজেশন শব্দ এবং পেলোড এক বিট দ্বারা ভুলভাবে সংযোজিত হবে।
সমাধান হল মডুলেশন কন্ট্রোল 2 রেজিস্টারে (0x71) ইঞ্জিন বিট সেট করে পুরো প্যাকেটটি উল্টানো। এটি প্রস্তাবনা, সিঙ্ক শব্দ এবং TX/RX ডেটা উল্টে দেবে। ফলস্বরূপ, TX ডেটা লেখার সময় বা RX ডেটা পড়ার সময় ডেটা উল্টানো উচিত। এছাড়াও, Si443x সিঙ্ক্রোনাইজেশন ওয়ার্ড রেজিস্টারে লেখার আগে সিঙ্ক্রোনাইজেশন শব্দটি উল্টানো হয়।
সিঙ্ক্রোনাইজেশন শব্দ
EN-13757-4 এর জন্য সিঙ্ক্রোনাইজেশন শব্দটি মোড S এবং মোড R-এর জন্য 18 টি চিপ বা মডেল T-এর জন্য 10 টি চিপ। Si443x-এর জন্য সিঙ্ক্রোনাইজেশন শব্দ হল 1 থেকে 4 বাইট। যাইহোক, যেহেতু সিঙ্ক্রোনাইজেশন শব্দটি সর্বদা প্রস্তাবনার পূর্বে থাকে, তাই প্রস্তাবনার শেষ ছয়টি বিটকে সিঙ্ক্রোনাইজেশন শব্দের অংশ হিসাবে বিবেচনা করা যেতে পারে; সুতরাং, প্রথম সিঙ্ক্রোনাইজেশন শব্দটি একটি শূন্যের তিনটি পুনরাবৃত্তি দ্বারা প্যাড করা হয় এবং একটি একটি দ্বারা অনুসরণ করা হয়। সিঙ্ক্রোনাইজেশন শব্দটি Si443x রেজিস্টারে লেখার আগে পরিপূরক হয়।
সারণী 1. মোড S এবং মোড R-এর জন্য সিঙ্ক্রোনাইজেশন শব্দ
EN 13757-4 | 00 | 01110110 | 10010110 | বাইনারি |
00 | 76 | 96 | সম্মোহন | |
(01) x 3 সহ প্যাড | 01010100 | 01110110 | 10010110 | বাইনারি |
54 | 76 | 96 | সম্মোহন | |
পরিপূরক | 10101011 | 10001001 | 01101001 | বাইনারি |
AB | 89 | 69 | সম্মোহন |
সারণী 2. মোড টি মিটারের জন্য অন্যের সাথে সিঙ্ক্রোনাইজেশন শব্দ
SYNCH | SYNCH | SYNCH |
শব্দ | শব্দ | শব্দ |
3 | 2 | 1 |
প্রস্তাবনা দৈর্ঘ্য প্রেরণ
ন্যূনতম প্রস্তাবনা চারটি ভিন্ন অপারেটিং মোডের জন্য নির্দিষ্ট করা হয়েছে। একটি প্রস্তাবনা নির্দিষ্ট সময়ের চেয়ে দীর্ঘ রাখা গ্রহণযোগ্য। প্রস্তাবনাটির জন্য ছয়টি চিপ বিয়োগ করলে Si443x প্রস্তাবনার জন্য সর্বনিম্ন সংখ্যক চিপ পাওয়া যায়। বাস্তবায়নটি প্রস্তাবনা সনাক্তকরণ এবং আন্তঃক্রিয়াশীলতা উন্নত করতে সমস্ত সংক্ষিপ্ত প্রস্তাবনা মোডে প্রস্তাবনার দুটি অতিরিক্ত নিবল যুক্ত করে। একটি দীর্ঘ প্রস্তাবনা সহ মোড এস-এর প্রস্তাবনাটি খুব দীর্ঘ; তাই, ন্যূনতম প্রস্তাবনা ব্যবহার করা হয়। নিবলে প্রস্তাবনার দৈর্ঘ্য প্রস্তাবনা দৈর্ঘ্য (0x34) রেজিস্টারে লেখা হয়। প্রস্তাবনা দৈর্ঘ্য রেজিস্টার শুধুমাত্র সংক্রমণের সময় প্রস্তাবনা নির্ধারণ করে। ন্যূনতম স্পেসিফিকেশন এবং প্রস্তাবনা দৈর্ঘ্য সেটিংস সারণী 3 এ সংক্ষিপ্ত করা হয়েছে।
সারণী 3. প্রস্তাবনা দৈর্ঘ্য প্রেরণ
EN-13757-4 সর্বনিম্ন |
Si443x প্রস্তাবনা সেট করা |
সিঙ্ক শব্দ |
মোট | অতিরিক্ত | |||
nx (01) | চিপস | কামড়ানো | চিপস | চিপস | চিপস | চিপস | |
মোড এস সংক্ষিপ্ত প্রস্তাবনা | 15 | 30 | 8 | 32 | 6 | 38 | 8 |
মোড এস দীর্ঘ প্রস্তাবনা | 279 | 558 | 138 | 552 | 6 | 558 | 0 |
মোড T (মিটার-অন্যান্য) | 19 | 38 | 10 | 40 | 6 | 46 | 8 |
মোড আর | 39 | 78 | 20 | 80 | 6 | 86 | 8 |
অভ্যর্থনার জন্য সর্বনিম্ন প্রস্তাবনা প্রস্তাবনা সনাক্তকরণ নিয়ন্ত্রণ রেজিস্টার (0x35) দ্বারা নির্ধারিত হয়। অভ্যর্থনা করার পরে, ব্যবহারযোগ্য প্রস্তাবনা নির্ধারণ করতে সিঙ্ক শব্দে বিটের সংখ্যা অবশ্যই নির্দিষ্ট ন্যূনতম প্রস্তাবনা থেকে বিয়োগ করতে হবে। AFC সক্রিয় থাকলে রিসিভারের ন্যূনতম নিষ্পত্তির সময় হল 16-চিপ বা AFC নিষ্ক্রিয় থাকলে 8-চিপ। প্রস্তাবনা সনাক্তকরণ কন্ট্রোল রেজিস্টারের ন্যূনতম সেটিং নির্ধারণ করতে রিসিভার নিষ্পত্তির সময়টি ব্যবহারযোগ্য প্রস্তাবনা থেকেও বিয়োগ করা হয়।
একটি মিথ্যা প্রস্তাবনার সম্ভাবনা নির্ভর করে প্রস্তাবনা সনাক্তকরণ নিয়ন্ত্রণ রেজিস্টারের সেটিংয়ের উপর। 8-চিপগুলির একটি সংক্ষিপ্ত সেটিং এর ফলে প্রতি কয়েক সেকেন্ডে একটি মিথ্যা প্রস্তাবনা সনাক্ত করা যেতে পারে। 20 চিপসের প্রস্তাবিত সেটিং মিথ্যা প্রস্তাবনা সনাক্তকরণকে একটি অসম্ভাব্য ঘটনা করে তোলে। প্রস্তাবিত সেটিং ব্যবহার করার জন্য মোড R এবং মোড SL-এর প্রস্তাবনা দৈর্ঘ্য যথেষ্ট লম্বা।
20 টি চিপের চেয়ে দীর্ঘ প্রস্তাবনা সনাক্ত করার জন্য খুব কম সুবিধা রয়েছে।
AFC মডেল S-এর জন্য একটি সংক্ষিপ্ত প্রস্তাবনা এবং মডেল T এর জন্য অক্ষম করা হয়েছে। এটি রিসিভারের নিষ্পত্তির সময়কে হ্রাস করে এবং একটি দীর্ঘ প্রস্তাবনা সনাক্তকরণের অনুমতি দেয়। AFC অক্ষম থাকলে, মোড T 20 টি চিপের প্রস্তাবিত সেটিং ব্যবহার করতে পারে। একটি সংক্ষিপ্ত প্রস্তাবনা সহ মডেল এস-এর জন্য 4 টি নিবল বা 20 টি চিপের একটি সেটিং ব্যবহার করা হয়। এটি এই মডেলের জন্য একটি মিথ্যা প্রস্তাবনা সনাক্তকরণের সম্ভাবনাকে কিছুটা বেশি করে তোলে।
সারণি 4. প্রস্তাবনা সনাক্তকরণ
EN-13757-4 সর্বনিম্ন |
সিঙ্ক শব্দ |
ব্যবহারযোগ্য প্রস্তাবনা |
আরএক্স সেটলিং | সনাক্ত করুন মিনিট |
Si443x প্রস্তাবনা সনাক্তকরণ সেটিং |
|||
nx (01) | চিপস | চিপস | চিপস | চিপস | চিপস | কামড়ানো | চিপস | |
মোড এস সংক্ষিপ্ত প্রস্তাবনা | 15 | 30 | 6 | 24 | 8* | 16 | 4 | 16 |
মডেল এস দীর্ঘ প্রস্তাবনা | 279 | 558 | 6 | 552 | 16 | 536 | 5 | 20 |
মডেল টি (মিটার-অন্যান্য) | 19 | 38 | 6 | 32 | 8* | 24 | 5 | 20 |
মোড আর | 39 | 78 | 6 | 72 | 16 | 56 | 5 | 20 |
*দ্রষ্টব্য: AFC নিষ্ক্রিয় |
ন্যূনতম নির্দিষ্ট প্রস্তাবনা ব্যবহার করে একটি ট্রান্সমিটারের সাথে ইন্টারঅপারেট করার জন্য রিসিভার কনফিগার করা হয়েছে। এটি নিশ্চিত করে যে রিসিভার যেকোনো এম-বাস-অনুশীলিত ট্রান্সমিটারের সাথে ইন্টারঅপারেটিং করবে।
ওয়্যারলেস এম-বাস স্পেসিফিকেশনের জন্য কমপক্ষে 1 চিপের মোড S558-এর জন্য একটি খুব দীর্ঘ প্রস্তাবনা প্রয়োজন। প্রস্তাবনাটি প্রেরণ করতে এটি প্রায় 17 এমএস সময় নেবে। Si443x-এর এত দীর্ঘ প্রস্তাবনা প্রয়োজন হয় না এবং দীর্ঘ প্রস্তাবনা থেকে উপকৃত হয় না। যদিও দীর্ঘ প্রস্তাবনা মোড S2-এর জন্য ঐচ্ছিক হিসাবে উল্লেখ করা হয়েছে, Si443x-এর সাথে দীর্ঘ প্রস্তাবনা ব্যবহার করার কোনো কারণ নেই। যদি একমুখী যোগাযোগের ইচ্ছা হয়, মোড T1 একটি সংক্ষিপ্ত প্রস্তাবনা, উচ্চ ডেটা রেট এবং দীর্ঘ ব্যাটারি জীবন প্রদান করবে। মোড S2 ব্যবহার করে দ্বি-মুখী যোগাযোগের প্রয়োজন হলে, একটি সংক্ষিপ্ত প্রস্তাবনা সুপারিশ করা হয়।
লক্ষ্য করুন যে একটি দীর্ঘ প্রস্তাবনা সহ মডেল S-এর সনাক্তকরণ থ্রেশহোল্ড একটি ছোট প্রস্তাবনা সহ মডেল S-এর জন্য প্রেরিত প্রস্তাবনা নিবলের সংখ্যার চেয়ে দীর্ঘ৷ এর অর্থ হল দীর্ঘ প্রস্তাবনা মোড এস রিসিভার একটি সংক্ষিপ্ত প্রস্তাবনা মোড এস ট্রান্সমিটার থেকে একটি প্রস্তাবনা সনাক্ত করবে না। দীর্ঘ প্রস্তাবনা মোড S রিসিভার দীর্ঘ প্রস্তাবনা থেকে কোনো সুবিধা পেতে হলে এটি প্রয়োজনীয়।
মনে রাখবেন যে সংক্ষিপ্ত প্রস্তাবনা মোড এস রিসিভার প্রস্তাবনা সনাক্ত করবে এবং একটি সংক্ষিপ্ত প্রস্তাবনা মোড এস উভয় থেকে প্যাকেট গ্রহণ করবে
ট্রান্সমিটার এবং একটি দীর্ঘ-প্রস্তাবনা মোড এস ট্রান্সমিটার; তাই, সাধারণভাবে, মিটার রিডারের সংক্ষিপ্ত প্রস্তাবনা মোড S রিসিভার কনফিগারেশন ব্যবহার করা উচিত।
এনকোডিং/ডিকোডিং
ওয়্যারলেস এম-বাস স্পেসিফিকেশনের জন্য দুটি ভিন্ন এনকোডিং পদ্ধতি প্রয়োজন। ম্যানচেস্টার এনকোডিং মোড এস এবং মোড আর-এর জন্য ব্যবহৃত হয়। মডেল টি-তে অন্য-টু-মিটার লিঙ্কের জন্যও ম্যানচেস্টার এনকোডিং ব্যবহার করা হয়। মডেল টি মিটার-টু-অন্য লিঙ্কটি 3টির মধ্যে 6টি এনকোডিং ব্যবহার করে।
1। ম্যানচেস্টার এনকোডেড/ডিকোডিং
একটি সহজ এবং সস্তা মডেম ব্যবহার করে শক্তিশালী ঘড়ি পুনরুদ্ধার এবং ট্র্যাকিং প্রদানের জন্য ম্যানচেস্টার এনকোডিং ঐতিহাসিকভাবে RF সিস্টেমে সাধারণ। যাইহোক, Si443x-এর মতো একটি আধুনিক উচ্চ-কার্যক্ষমতা সম্পন্ন রেডিওর ম্যানচেস্টার এনকোডিংয়ের প্রয়োজন নেই। ম্যানচেস্টার এনকোডিং প্রাথমিকভাবে বিদ্যমান মানগুলির সাথে সামঞ্জস্যের জন্য সমর্থিত, কিন্তু ম্যানচেস্টার এনকোডিং ব্যবহার না করার সময় Si443x-এর ডেটা হার কার্যকরভাবে দ্বিগুণ হয়।
Si443x হার্ডওয়্যারে সমগ্র প্যাকেটের ম্যানচেস্টার এনকোডিং এবং ডিকোডিং সমর্থন করে। দুর্ভাগ্যবশত, সিঙ্ক্রোনাইজেশন শব্দটি ম্যানচেস্টার এনকোডেড নয়। একটি অবৈধ ম্যানচেস্টার ক্রম ইচ্ছাকৃতভাবে সিঙ্ক্রোনাইজেশন শব্দের জন্য বেছে নেওয়া হয়েছে৷ এটি ম্যানচেস্টার এনকোডিংকে Si443x সহ বিদ্যমান বেশিরভাগ রেডিওর সাথে বেমানান করে তোলে। ফলস্বরূপ, ম্যানচেস্টার এনকোডিং এবং ডিকোডিং MCU দ্বারা সঞ্চালিত হতে হবে। আনকোড করা ডেটার প্রতিটি বাইট আটটি ডেটা বিট নিয়ে গঠিত। ম্যানচেস্টার এনকোডিং ব্যবহার করে, প্রতিটি ডেটা বিট একটি টু-চিপ প্রতীকে এনকোড করা হয়। যেহেতু এনকোড করা ডেটা একটি সময়ে রেডিও FIFO আট চিপগুলিতে লিখতে হবে, তাই ডেটার একটি নিবল এনকোড করা হয় এবং একবারে FIFO-তে লেখা হয়।
সারণী 5. ম্যানচেস্টার এনকোডিং
তথ্য | অক্স12 | 0x34 | বাইট | ||
অক্স1 | 0x2 | 0x3 | 0x4 | কামড়ানো | |
1 | 10 | 11 | 100 | বাইনারি | |
চিপ | 10101001 | 10100110 | 10100101 | 10011010 | বাইনারি |
ফিফো | OxA9 | OxA6 | OxA5 | অক্স9 এ | সম্মোহন |
প্রেরণ করা প্রতিটি বাইট এনকোড বাইট ফাংশনে একবারে একটি বাইট পাস করা হয়। এনকোড বাইট ফাংশনটি এনকোড নিবল ফাংশনটিকে দুবার কল করবে, প্রথমে সবচেয়ে উল্লেখযোগ্য নিবলের জন্য এবং তারপরে সবচেয়ে গুরুত্বপূর্ণ নিবলের জন্য।
সফটওয়্যারে ম্যানচেস্টার এনকোডিং কঠিন নয়। সবচেয়ে গুরুত্বপূর্ণ বিট থেকে শুরু করে, একটিকে "01" চিপ সিকোয়েন্স হিসেবে এনকোড করা হয়। একটি শূন্য একটি "10" চিপ ক্রম হিসাবে এনকোড করা হয়. এটি একটি লুপ ব্যবহার করে এবং প্রতিটি প্রতীকের জন্য দুই-বিট স্থানান্তর করে সহজেই সম্পন্ন করা যেতে পারে। যাইহোক, প্রতিটি নিবলের জন্য একটি সাধারণ 16 এন্ট্রি লুক-আপ টেবিল ব্যবহার করা দ্রুততর। এনকোড ম্যানচেস্টার নিবল ফাংশন ডেটার একটি নিবলকে এনকোড করে তারপর এটি ফিফোতে লিখে। উল্টানো প্রস্তাবনা প্রয়োজনীয়তার জন্য হিসাব করার জন্য FIFO-তে লেখার আগে চিপগুলি উল্টানো হয়।
প্রাপ্ত করার সময়, FIFO-এর প্রতিটি বাইটে আটটি চিপ থাকে এবং ডেটার একটি নিবলে ডিকোড করা হয়। রিড ব্লক ফাংশনটি FIFO থেকে একবারে একটি বাইট পড়ে এবং ডিকোড বাইট ফাংশনকে কল করে। FIFO থেকে পড়ার পরে উল্টানো প্রস্তাবনা প্রয়োজনীয়তার জন্য চিপগুলি উল্টানো হয়। ম্যানচেস্টার এনকোডেড চিপগুলির প্রতিটি বাইট ডেটার একটি নিবলে ডিকোড করা হয়। রাইটিং নিবল RX বাফার ফাংশন ব্যবহার করে ডিকোড করা নিবল RX বাফারে লেখা হয়।
লক্ষ্য করুন যে এনকোড করা এবং ডিকোডিং উভয়ই ফ্লাইতে একবারে একটি ডেটা নিবল সঞ্চালিত হয়। একটি বাফারে এনকোড করার জন্য আনকোড করা ডেটার দ্বিগুণ আকারের অতিরিক্ত বাফার প্রয়োজন। এনকোডিং এবং ডিকোডিং দ্রুততম সমর্থিত ডেটা হার (প্রতি সেকেন্ডে 100 কে চিপ) থেকে অনেক দ্রুত। যেহেতু Si443x FIFO-তে মাল্টিপল-বাইট রিড এবং রাইট সমর্থন করে, তাই শুধুমাত্র একক-বাইট রিড এবং রাইট ব্যবহার করার ক্ষেত্রে একটি ছোট ওভারহেড রয়েছে। 10টি এনকোডেড চিপের জন্য ওভারহেড প্রায় 100 µs। সুবিধা হল 512 বাইটের RAM সঞ্চয়।
2। ছয়টির মধ্যে তিনটি এনকোডিং ডিকোডিং
EN-13757-4-এ উল্লেখিত থ্রি-আউট-অফ-সিক্স এনকোডিং পদ্ধতিটি MCU-তে ফার্মওয়্যারেও প্রয়োগ করা হয়েছে। এই এনকোডিংটি মিটার থেকে অন্য উচ্চ গতির (100 কে চিপস প্রতি সেকেন্ড) মোড T-এর জন্য ব্যবহৃত হয়। মডেল T একটি ওয়্যারলেস মিটারের জন্য সবচেয়ে কম ট্রান্সমিশন সময় এবং দীর্ঘতম ব্যাটারি লাইফ প্রদান করে।
প্রেরণ করা ডেটার প্রতিটি বাইট দুটি নিবলে বিভক্ত। সবচেয়ে উল্লেখযোগ্য নিবলটি প্রথমে এনকোড করা এবং প্রেরণ করা হয়। আবার, এটি একটি এনকোড বাইট ফাংশন ব্যবহার করে প্রয়োগ করা হয় যা এনকোড নিবল ফাংশনটিকে দুবার কল করে।
ডেটার প্রতিটি নিবল ছয়-চিপ প্রতীকে এনকোড করা হয়। ছয়-চিপ চিহ্নের ক্রম অবশ্যই 8 চিপ ফিফোতে লিখতে হবে।
এনকোডিংয়ের সময়, দুটি বাইট ডেটা চারটি নিবল হিসাবে এনকোড করা হয়। প্রতিটি নিবল একটি 6-চিপ প্রতীক। চারটি 6 চিপ প্রতীক তিনটি বাইট হিসাবে একত্রিত হয়।
সারণি 6. ছয়টি এনকোডিংয়ের মধ্যে তিনটি
তথ্য | 0x12 | 0x34 | বাইট | ||||
অক্স1 | 0x2 | 0x3 | 0x4 | কামড়ানো | |||
চিপ | 15 | 16 | 13 | 34 | অক্টাল | ||
1101 | 1110 | 1011 | 11100 | বাইনারি | |||
ফিফো | 110100 | 11100010 | 11011100 | বাইনারি | |||
0x34 | OxE2 | অক্সডিসি | সম্মোহন |
সফ্টওয়্যারে, তিনটি নেস্টেড ফাংশন ব্যবহার করে ছয়টির মধ্যে তিনটি এনকোডিং প্রয়োগ করা হয়। এনকোড বাইট ফাংশনটি এনকোড নিবল ফাংশনটিকে দুবার কল করবে। এনকোড নিবল ফাংশনটি ছয়-চিপ প্রতীকের জন্য একটি লুক-আপ টেবিল ব্যবহার করে এবং ছয়টি ফাংশনের মধ্যে তিনটি শিফটে প্রতীকটি লেখে। এই ফাংশনটি সফ্টওয়্যারে একটি 16-চিপ শিফট রেজিস্টার প্রয়োগ করে। চিহ্নটি শিফট রেজিস্টারের সর্বনিম্ন উল্লেখযোগ্য বাইটে লেখা হয়। রেজিস্টার দুইবার বামে স্থানান্তরিত হয়। এটি তিনবার পুনরাবৃত্তি হয়। যখন একটি সম্পূর্ণ বাইট শিফট রেজিস্টারের উপরের বাইটে উপস্থিত থাকে, তখন এটি উল্টানো হয় এবং FIFO-তে লেখা হয়।
যেহেতু ডেটার প্রতিটি বাইট দেড় এনকোডেড বাইট হিসাবে এনকোড করা হয়, তাই শিফট রেজিস্টারটি প্রাথমিকভাবে পরিষ্কার করা গুরুত্বপূর্ণ যাতে প্রথম এনকোড করা বাইটটি সঠিক হয়। যদি প্যাকেটের দৈর্ঘ্য একটি বিজোড় সংখ্যা হয়, সমস্ত বাইট এনকোড করার পরে, শিফট রেজিস্টারে এখনও একটি নিবল অবশিষ্ট থাকবে। এটি পরবর্তী বিভাগে ব্যাখ্যা করা পোস্টাম্বেলের সাথে পরিচালনা করা হয়।
এনকোড করা ছয়টির মধ্যে তিনটি ডিকোড করা হল বিপরীত পদ্ধতি। ডিকোড করার সময়, তিনটি এনকোড করা বাইট দুটি ডেটা বাইটে ডিকোড করা হয়। সফ্টওয়্যার শিফ্ট রেজিস্টার আবার ডিকোড করা ডেটার একত্রিত বাইট ব্যবহার করা হয়। একটি 64-এন্ট্রি ইনভার্স লুক-আপ টেবিল ডিকোডিংয়ের জন্য ব্যবহার করা হয়। এটি কম চক্র কিন্তু আরো কোড মেমরি ব্যবহার করে। সংশ্লিষ্ট প্রতীকের জন্য একটি 16-এন্ট্রি লুক-আপ টেবিল অনুসন্ধান করা যথেষ্ট বেশি সময় নেয়।
পোস্টাম্বেল
ওয়্যারলেস এম-বাস স্পেসিফিকেশনে পোস্টাম্বেল বা ট্রেলারের জন্য নির্দিষ্ট প্রয়োজনীয়তা রয়েছে। সমস্ত মোডের জন্য, সর্বনিম্ন দুটি চিপ, এবং সর্বোচ্চ আটটি চিপ। যেহেতু FIFO-এর ন্যূনতম পারমাণবিক একক হল এক বাইট, তাই মোড S এবং মোড R-এর জন্য একটি 8-চিপ ট্রেলার ব্যবহার করা হয়। প্যাকেটের দৈর্ঘ্য জোড় হলে আট চিপ বা প্যাকেটের দৈর্ঘ্য বিজোড় হলে মোড টি পোস্ট্যাম্বল হল আট চিপ। একটি বিজোড় প্যাকেটের দৈর্ঘ্যের জন্য চার-চিপ পোস্ট্যাম্বল কমপক্ষে দুটি বিকল্প চিপ থাকার প্রয়োজনীয়তা পূরণ করে।
সারণি 7. পোস্টাম্বেলের দৈর্ঘ্য
পোস্টাম্বেলের দৈর্ঘ্য (চিপস) | |||||
মিনিট | সর্বোচ্চ | বাস্তবায়ন | চিপ ক্রম | ||
মোড এস | 2 | 8 | 8 | 1010101 | |
মোড টি | 2 | 8 | 4 | (অস্বাভাবিক) | 101 |
8 | (এমন কি) | 1010101 | |||
মোড আর | 2 | 8 | 8 | 1010101 |
প্যাকেট হ্যান্ডলার
Si443x-এর প্যাকেট হ্যান্ডলার একটি পরিবর্তনশীল প্যাকেট প্রস্থ মোড বা একটি নির্দিষ্ট প্যাকেট প্রস্থ মোডে ব্যবহার করা যেতে পারে। পরিবর্তনশীল প্যাকেট প্রস্থ মোডের জন্য সিঙ্ক্রোনাইজেশন শব্দ এবং ঐচ্ছিক হেডার বাইটের পরে একটি প্যাকেট দৈর্ঘ্য বাইট প্রয়োজন। অভ্যর্থনা করার পরে, রেডিও একটি বৈধ প্যাকেটের শেষ নির্ধারণ করতে দৈর্ঘ্য বাইট ব্যবহার করবে। ট্রান্সমিশনে, হেডার বাইটের পরে রেডিও দৈর্ঘ্য ক্ষেত্র সন্নিবেশ করবে।
ওয়্যারলেস M-বাস প্রোটোকলের জন্য L ক্ষেত্রটি Si443x দৈর্ঘ্য ক্ষেত্রের জন্য ব্যবহার করা যাবে না। প্রথমত, এল ক্ষেত্রটি প্রকৃত প্যাকেটের দৈর্ঘ্য নয়। এটি সিআরসি বাইট বা এনকোডিং সহ নয় লিঙ্ক লেয়ার পেলোড বাইটের সংখ্যা। দ্বিতীয়ত, এল-ফিল্ড নিজেই ম্যানচেস্টার এনকোডিং ব্যবহার করে এনকোড করা হয় বা মোড টি মিটারের জন্য ছয়টির মধ্যে তিন এনকোডিং ব্যবহার করে।
বাস্তবায়ন প্যাকেট হ্যান্ডলারকে ট্রান্সমিশন এবং রিসেপশন উভয়ের জন্য নির্দিষ্ট প্যাকেট প্রস্থ মোডে ব্যবহার করে। ট্রান্সমিশনের পরে, PHY স্তরটি ট্রান্সমিট বাফারে L ক্ষেত্রটি পড়বে এবং পোস্টাম্বেল সহ এনকোড করা বাইটের সংখ্যা গণনা করবে। প্যাকেট দৈর্ঘ্য রেজিস্টারে (0x3E) প্রেরণ করার জন্য মোট এনকোড করা বাইটের সংখ্যা লেখা হয়।
অভ্যর্থনা করার পরে, প্রথম দুটি এনকোড করা বাইট ডিকোড করা হয় এবং L-ক্ষেত্রটি রিসিভ বাফারে লেখা হয়। L-ক্ষেত্রটি প্রাপ্ত করার জন্য এনকোড করা বাইটের সংখ্যা গণনা করতে ব্যবহৃত হয়। প্রাপ্ত এনকোড করা বাইটের সংখ্যা তারপর প্যাকেট দৈর্ঘ্য রেজিস্টারে (0x3E) লেখা হয়। পোস্টাম্বেলটি বাতিল করা হয়েছে।
MCU-কে অবশ্যই L-ক্ষেত্রটি ডিকোড করতে হবে, এনকোড করা বাইটের সংখ্যা গণনা করতে হবে, এবং প্যাকেটের দৈর্ঘ্য রেজিস্টারে মানটি লিখতে হবে তার আগে সম্ভাব্য সর্বনিম্ন প্যাকেট দৈর্ঘ্য প্রাপ্ত হবে। PHY স্তরের জন্য সংক্ষিপ্ততম অনুমোদিত L-ক্ষেত্র হল 9, যা 12টি আনকোড করা বাইট দেয়। এটি মডেল T-এর জন্য 18টি এনকোড করা বাইট দেয়। প্রথম দুটি বাইট ইতিমধ্যেই ডিকোড করা হয়েছে। এইভাবে, প্যাকেটের দৈর্ঘ্য রেজিস্টারটি 16-বাইট বার 100 kbps বা 1.28 মিলিসেকেন্ডে আপডেট করতে হবে। 8051 MIPS এ চলমান একটি 20 এর জন্য এটি কোন সমস্যা নয়।
বিজোড় প্যাকেট দৈর্ঘ্যের মোড টি প্যাকেটের জন্য ব্যবহৃত চার-চিপ পোস্ট্যাম্বল ব্যতীত প্রাপ্ত বাইটের সংখ্যা পোস্টম্যাবল অন্তর্ভুক্ত করে না। সুতরাং, মডেল টি বিজোড় দৈর্ঘ্যের প্যাকেটগুলি ব্যতীত রিসিভারের একটি ডাকঘরের প্রয়োজন হয় না। শুধুমাত্র এনকোডেড বাইটের একটি পূর্ণসংখ্যা দেওয়ার জন্য এই পোস্টাম্বেলটি প্রয়োজন। পোস্টাম্বলের বিষয়বস্তু উপেক্ষা করা হয়; সুতরাং, যদি পোস্টাম্বলটি প্রেরণ না করা হয়, চারটি চিপ শব্দ প্রাপ্ত হবে এবং উপেক্ষা করা হবে। যেহেতু এনকোড করা বাইটের মোট সংখ্যা 255 (0xFF) এ সীমাবদ্ধ, তাই বাস্তবায়ন বিভিন্ন মোডের জন্য সর্বাধিক L-ক্ষেত্রকে সীমাবদ্ধ করে।
সারণি 8. প্যাকেটের আকারের সীমা
এনকোড করা | ডিকোড করা | এম-বাস | ||||
বাইট | বাইট | এল-ফিল্ড | ||||
ডিসেম্বর | সম্মোহন | ডিসেম্বর | সম্মোহন | ডিসেম্বর | সম্মোহন | |
মোড এস | 255 | FF | 127 | 7 F | 110 | 6E |
মোড T (মিটার-অন্যান্য) | 255 | FF | 169 | A9 | 148 | 94 |
মোড আর | 255 | FF | 127 | 7 F | 110 | 6E |
এই সীমাগুলি সাধারণত একটি ওয়্যারলেস মিটারের সাধারণ ব্যবহারের ক্ষেত্রের উপরে থাকে৷ সর্বোত্তম সম্ভাব্য ব্যাটারি লাইফ পেতে প্যাকেটের দৈর্ঘ্য ছোট রাখা উচিত।
উপরন্তু, ব্যবহারকারী সর্বোচ্চ L-ক্ষেত্র নির্দিষ্ট করতে পারে যা প্রাপ্ত করা উচিত (USER_RX_MAX_L_FIELD)। এটি রিসিভ বাফার (USER_RX_BUFFER_SIZE) এর জন্য প্রয়োজনীয় আকার নির্ধারণ করে।
255-এর সর্বাধিক L-ক্ষেত্র সমর্থন করার জন্য 290 বাইটের একটি রিসিভ বাফার এবং সর্বাধিক 581 ম্যানচেস্টার এনকোডেড বাইট প্রয়োজন। প্যাকেট হ্যান্ডলারকে নিষ্ক্রিয় করতে হবে এবং সেই ক্ষেত্রে প্যাকেট দৈর্ঘ্য রেজিস্টার ব্যবহার করা যাবে না। এটি সম্ভবপর, তবে সম্ভব হলে প্যাকেট হ্যান্ডলার ব্যবহার করা আরও সুবিধাজনক।
ফিফো ব্যবহার
Si4431 প্রেরণ এবং গ্রহণের জন্য একটি 64 বাইট FIFO প্রদান করে। যেহেতু এনকোডেড বাইটের সংখ্যা 255, তাই একটি সম্পূর্ণ এনকোড করা প্যাকেট 64-বাইট বাফারের মধ্যে ফিট নাও হতে পারে।
সংক্রমণ
ট্রান্সমিশনে, এনকোডেড বাইটের মোট সংখ্যা গণনা করা হয়। পোস্টম্যাবল সহ মোট এনকোড করা বাইটের সংখ্যা 64 বাইটের কম হলে, পুরো প্যাকেটটি FIFO-তে লেখা হয় এবং শুধুমাত্র পাঠানো প্যাকেটটি বাধা সক্রিয় করা হয়। বেশিরভাগ ছোট প্যাকেট এক ফিফো ট্রান্সফারে পাঠানো হবে।
এনকোড করা বাইটের সংখ্যা 64-এর বেশি হলে, প্যাকেট পাঠানোর জন্য একাধিক FIFO স্থানান্তর প্রয়োজন হবে। প্রথম 64 বাইট ফিফোতে লেখা হয়। প্যাকেট প্রেরিত এবং TX FIFO প্রায় খালি বাধা সক্রিয় করা হয়েছে। TX FIFO প্রায় খালি থ্রেশহোল্ড 16 বাইট (25%) সেট করা হয়েছে। প্রতিটি IRQ ইভেন্টে, স্ট্যাটাস 2 রেজিস্টার পড়া হয়। প্যাকেট সেন্ট বিটটি প্রথমে চেক করা হয়, এবং, যদি প্যাকেটটি সম্পূর্ণরূপে পাঠানো না হয়, তাহলে পরবর্তী 48 বাইট এনকোড করা ডেটা FIFO-তে লেখা হয়। সমস্ত এনকোড করা বাইট লেখা না হওয়া পর্যন্ত এবং প্যাকেট সেন্ট ইন্টারাপ্ট না হওয়া পর্যন্ত এটি চলতে থাকে।
1। অভ্যর্থনা
রিসেপশনে, প্রাথমিকভাবে, শুধুমাত্র সিঙ্ক ওয়ার্ড ইন্টারাপ্ট সক্রিয় করা হয়েছে। সিঙ্ক শব্দটি পাওয়ার পরে, সিঙ্ক শব্দ বাধা নিষ্ক্রিয় করা হয় এবং FIFO প্রায় সম্পূর্ণ বিঘ্ন সক্রিয় করা হয়। FIFO প্রায় সম্পূর্ণ থ্রেশহোল্ড প্রাথমিকভাবে 2 বাইট সেট করা হয়. প্রথম FIFO Almost Full interrupt ব্যবহার করা হয় কখন দুটি দৈর্ঘ্য বাইট প্রাপ্ত হয়েছে তা জানতে। একবার দৈর্ঘ্য পাওয়া গেলে, দৈর্ঘ্যটি ডিকোড করা হয় এবং এনকোড করা বাইটের সংখ্যা গণনা করা হয়। RX FIFO প্রায় সম্পূর্ণ থ্রেশহোল্ড তারপর 48 বাইট সেট করা হয়। RX FIFO প্রায় পূর্ণ এবং বৈধ প্যাকেট বাধা সক্রিয় করা হয়েছে৷ পরবর্তী IRQ ইভেন্টে, স্ট্যাটাস 1 রেজিস্টার পড়া হয়। প্রথমে, ভ্যালিড প্যাকেট বিট চেক করা হয় এবং তারপর ফিফো প্রায় ফুল বিট চেক করা হয়। শুধুমাত্র RX FIFO প্রায় সম্পূর্ণ বিট সেট করা থাকলে, পরবর্তী 48 বাইট FIFO থেকে পড়া হয়। বৈধ প্যাকেট বিট সেট করা থাকলে, প্যাকেটের অবশিষ্টাংশ FIFO থেকে পড়া হয়। MCU কত বাইট পড়া হয়েছে তার ট্র্যাক রাখে এবং শেষ বাইটের পরে পড়া বন্ধ করে দেয়।
ডেটা লিঙ্ক স্তর
ডেটা লিঙ্ক স্তর মডিউল একটি 13757-4:2005 অনুগত লিঙ্ক স্তর প্রয়োগ করে। ডেটা লিঙ্ক লেয়ার (LINK) ফিজিক্যাল লেয়ার (PHY) এবং অ্যাপ্লিকেশন লেয়ার (AL)-এর মধ্যে একটি ইন্টারফেস প্রদান করে।
ডেটা লিঙ্ক স্তর নিম্নলিখিত ফাংশন সম্পাদন করে:
- ফাংশন প্রদান করে যা PHY এবং AL এর মধ্যে ডেটা স্থানান্তর করে
- বহির্গামী বার্তাগুলির জন্য CRC তৈরি করে
- আগত বার্তাগুলিতে CRC ত্রুটি সনাক্ত করে
- শারীরিক ঠিকানা প্রদান করে
- দ্বিমুখী যোগাযোগ মোডের জন্য স্থানান্তর স্বীকার করে
- ফ্রেম ডেটা বিট
- আগত বার্তাগুলিতে ফ্রেমিং ত্রুটি সনাক্ত করে
লিংক লেয়ার ফ্রেম ফরম্যাট
EN 13757-4:2005-এ ব্যবহৃত ওয়্যারলেস M-Bus ফ্রেম বিন্যাসটি IEC3-3-60870 থেকে FT5 (ফ্রেম টাইপ 2) ফ্রেম বিন্যাস থেকে নেওয়া হয়েছে। ফ্রেমে ডেটার এক বা একাধিক ব্লক থাকে। প্রতিটি ব্লকে একটি 16-বিট CRC ক্ষেত্র রয়েছে। প্রথম বক হল 12 বাইটের একটি নির্দিষ্ট দৈর্ঘ্যের ব্লক যাতে এল-ফিল্ড, সি-ফিল্ড, এম-ফিল্ড এবং এ-ফিল্ড অন্তর্ভুক্ত থাকে।
- এল-ফিল্ড
L-ক্ষেত্র হল লিঙ্ক স্তর ডেটা পেলোডের দৈর্ঘ্য। এটি L-ক্ষেত্র নিজেই বা CRC বাইটগুলির কোনো অন্তর্ভুক্ত করে না। এতে এল-ফিল্ড, সি-ফিল্ড, এম-ফিল্ড এবং এ-ফিল্ড অন্তর্ভুক্ত রয়েছে। এগুলি PHY পেলোডের অংশ।
কারণ এনকোড করা বাইটের সংখ্যা 255 বাইটের মধ্যে সীমাবদ্ধ, এম-ফিল্ডের জন্য সর্বাধিক সমর্থিত মান হল ম্যানচেস্টার এনকোড করা ডেটার জন্য 110 বাইট এবং মোড টি থ্রি-আউট-অফ-সিক্স এনকোডেড ডেটার জন্য 148 বাইট।
ট্রান্সমিশনে L-ক্ষেত্র গণনা করার জন্য লিঙ্ক স্তর দায়ী। লিঙ্ক-স্তরটি অভ্যর্থনায় এল-ক্ষেত্র ব্যবহার করবে।
মনে রাখবেন L-ক্ষেত্রটি PHY পেলোডের দৈর্ঘ্য বা এনকোড করা বাইটের সংখ্যা নির্দেশ করে না। ট্রান্সমিশনের পরে, PHY PHY পেলোডের দৈর্ঘ্য এবং এনকোড করা বাইটের সংখ্যা গণনা করবে। অভ্যর্থনা করার পরে, PHY L-ক্ষেত্রটি ডিকোড করবে এবং ডিকোড করার জন্য বাইটের সংখ্যা গণনা করবে। - সি-ফিল্ড
সি-ক্ষেত্র হল ফ্রেম নিয়ন্ত্রণ ক্ষেত্র। এই ক্ষেত্রটি ফ্রেমের প্রকার সনাক্ত করে এবং লিঙ্ক ডেটা এক্সচেঞ্জ পরিষেবা আদিম জন্য ব্যবহৃত হয়। C-ক্ষেত্রটি ফ্রেমের ধরন নির্দেশ করে - পাঠান, নিশ্চিত করুন, অনুরোধ করুন বা প্রতিক্রিয়া জানান। SEND এবং REQUEST ফ্রেমের ক্ষেত্রে, C-ক্ষেত্র নির্দেশ করে যে একটি CONFIRM বা RESPOND প্রত্যাশিত কিনা।
মৌলিক Link TX ফাংশন ব্যবহার করার সময়, C-এর যেকোনো মান ব্যবহার করা যেতে পারে। লিঙ্ক পরিষেবা আদিম ব্যবহার করার সময়, EN 13757-4:2005 অনুযায়ী C ক্ষেত্রটি স্বয়ংক্রিয়ভাবে জনবহুল হয়। - এম-ফিল্ড
M-ক্ষেত্র হল প্রস্তুতকারকের কোড। নির্মাতারা নিম্নলিখিত থেকে একটি তিন-অক্ষরের কোড অনুরোধ করতে পারেন web ঠিকানা: http://www.dlms.com/flag/INDEX.HTM তিন-অক্ষরের কোডের প্রতিটি অক্ষর পাঁচটি বিট হিসাবে এনকোড করা হয়েছে। 5-বিট কোডটি ASCII কোড গ্রহণ করে এবং 0x40 ("A") বিয়োগ করে পাওয়া যেতে পারে। তিনটি 5-বিট কোড 15-বিট তৈরি করতে একত্রিত হয়। সবচেয়ে উল্লেখযোগ্য বিট হল শূন্য। - এ-ক্ষেত্র
ঠিকানা ক্ষেত্রটি প্রতিটি ডিভাইসের জন্য একটি অনন্য 6-বাইট ঠিকানা। অনন্য ঠিকানা প্রস্তুতকারকের দ্বারা বরাদ্দ করা উচিত। প্রতিটি ডিভাইসের একটি অনন্য 6-বাইটের ঠিকানা রয়েছে তা নিশ্চিত করা প্রতিটি নির্মাতার দায়িত্ব৷ পাঠান এবং অনুরোধ ফ্রেমের ঠিকানা হল মিটার বা অন্য ডিভাইসের স্ব-ঠিকানা। নিশ্চিতকরণ এবং প্রতিক্রিয়া ডেটা ফ্রেমগুলি আসল ডিভাইসের ঠিকানা ব্যবহার করে পাঠানো হয়। - CI-ক্ষেত্র
CI-ক্ষেত্র হল অ্যাপ্লিকেশন শিরোনাম এবং অ্যাপ্লিকেশন ডেটা পেলোডে ডেটার ধরন নির্দিষ্ট করে। যদিও EN13757-4:2005 একটি সীমিত সংখ্যক মান উল্লেখ করে, লিংক সার্ভিস প্রিমিটিভস যেকোনো মান ব্যবহার করার অনুমতি দেবে। - সিআরসি
CRC EN13757-4:2005-এ নির্দিষ্ট করা আছে।
CRC বহুপদ হল:
X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
মনে রাখবেন যে M-Bus CRC প্রতিটি 16-বাইট ব্লকের উপর গণনা করা হয়। ফলাফল হল যে প্রতি 16 বাইট ডেটা প্রেরণের জন্য 18 বাইট প্রয়োজন,
অতিরিক্ত তথ্য
লিঙ্ক লেয়ার ইমপ্লিমেন্টেশন সম্পর্কে অতিরিক্ত তথ্যের জন্য, "AN452: ওয়্যারলেস এম-বাস স্ট্যাক প্রোগ্রামার গাইড" দেখুন।
পাওয়ার ম্যানেজমেন্ট
চিত্র 2 একটি মিটার এক্সের জন্য পাওয়ার ম্যানেজমেন্ট টাইমলাইন দেখায়ample মোড T1 ব্যবহার করে।
শক্তি সংরক্ষণের জন্য যখনই সম্ভব MCU স্লিপ মোডে থাকা উচিত। এই প্রাক্তনampলে, MCU ঘুমাচ্ছে যখন RTC চলছে, যখন রেডিও ক্রিস্টাল স্টার্ট-আপে অপেক্ষা করছে, এবং যখন FIFO থেকে ট্রান্সমিট করছে। MCU একটি পোর্ট ম্যাচ জেগে ওঠার সাথে সংযুক্ত EZRadioPRO IRQ সংকেত থেকে জেগে উঠবে।
একটি ব্লকের বেশি সময় ধরে বার্তা প্রেরণ করার সময়, MCU অবশ্যই FIFO পূরণ করতে জেগে উঠতে হবে (FIFO প্রায় খালি বাধার উপর ভিত্তি করে) এবং তারপরে ঘুমাতে যেতে হবে।
ADC থেকে পড়ার সময় MCU লো পাওয়ার অসিলেটর বা বার্স্ট-মোড অসিলেটর থেকে চলমান নিষ্ক্রিয় মোডে থাকা উচিত। ADC একটি SAR ঘড়ি প্রয়োজন.
যখন ব্যবহার করা হয় না, তখন EZRadioPRO শাটডাউন মোডে থাকা উচিত SDN পিন উচ্চ চালিত। এর জন্য MCU এর সাথে একটি হার্ডওয়্যারযুক্ত সংযোগ প্রয়োজন। ইজেড রেডিও প্রো রেজিস্টারগুলি শাটডাউন মোডে সংরক্ষিত হয় না; তাই, প্রতিটি RTC ব্যবধানে EZRadioPro শুরু করা হয়। রেডিও চালু করতে 100 µs এর কম সময় লাগে এবং 400 nA সংরক্ষণ করে। এর ফলে 10-সেকেন্ডের ব্যবধানের উপর ভিত্তি করে 10 µJ শক্তি সঞ্চয় হয়।
EZRadioPRO ক্রিস্টাল একটি POR-এর জন্য প্রায় 16 ms লাগে। এটি প্রায় আটটি ব্লকের জন্য CRC গণনা করার জন্য যথেষ্ট। ক্রিস্টাল স্থিতিশীল হওয়ার আগে সমস্ত CRC সম্পন্ন করলে MCU আবার ঘুমাতে যাবে। এনক্রিপশনের প্রয়োজন হলে, ক্রিস্টাল অসিলেটরে অপেক্ষা করার সময় এটিও শুরু করা যেতে পারে।
বেশিরভাগ কাজের জন্য কম-পাওয়ার অসিলেটর ব্যবহার করে MCU 20 MHz এ চালানো উচিত। যে কাজগুলির জন্য একটি সুনির্দিষ্ট টাইমআউট প্রয়োজন সেগুলিকে অবশ্যই স্লিপ মোডের পরিবর্তে নির্ভুল অসিলেটর এবং নিষ্ক্রিয় মোড ব্যবহার করতে হবে। RTC বেশিরভাগ কাজের জন্য যথেষ্ট রেজোলিউশন প্রদান করে। T2 মিটারের জন্য পাওয়ার ম্যানেজমেন্ট টাইমলাইন প্রাক্তনampলে অ্যাপ্লিকেশন চিত্র 3 এ দেখানো হয়েছে।
মিটার জেগে উঠলে এবং কোন রিডার উপস্থিত না থাকলে ট্রান্সসিভার বাস্তবায়নকে স্বাভাবিক ক্ষেত্রে অপ্টিমাইজ করা উচিত। ন্যূনতম/সর্বোচ্চ ACK টাইমআউট যথেষ্ট দীর্ঘ যাতে C8051F930 RTC ব্যবহার করা এবং MCU-কে স্লিপ মোডে রাখা সম্ভব হয়।
বিল্ড বিকল্পগুলি মেইন বা ইউএসবি-চালিত পাঠকদের জন্য সরবরাহ করা হয়েছে যেগুলির স্লিপ মোড ব্যবহার করার প্রয়োজন নেই৷ নিষ্ক্রিয় মোডটি ঘুমের পরিবর্তে ব্যবহার করা হবে যাতে USB এবং UART MCU-কে বাধাগ্রস্ত করতে পারে।
সরলতা স্টুডিও
MCU এবং ওয়্যারলেস টুলস, ডকুমেন্টেশন, সফ্টওয়্যার, সোর্স কোড লাইব্রেরি এবং আরও অনেক কিছুতে এক-ক্লিক অ্যাক্সেস। উইন্ডোজের জন্য উপলব্ধ,
ম্যাক এবং লিনাক্স!
![]() |
![]() |
![]() |
![]() |
আইওটি পোর্টফোলিও www.silabs.com/IoT |
SW/HW www.silabs.com/simplicity |
গুণমান www.silabs.com/quality |
সমর্থন এবং সম্প্রদায় community.silabs.com |
দাবিত্যাগ
সিলিকন ল্যাবস গ্রাহকদের সিলিকন ল্যাবস পণ্যগুলি ব্যবহার করে বা ব্যবহার করতে ইচ্ছুক সিস্টেম এবং সফ্টওয়্যার বাস্তবায়নকারীদের জন্য উপলব্ধ সমস্ত পেরিফেরাল এবং মডিউলগুলির সর্বশেষ, সঠিক এবং গভীরতার ডকুমেন্টেশন প্রদান করতে চায়৷ ক্যারেক্টারাইজেশন ডেটা, উপলব্ধ মডিউল এবং পেরিফেরাল, মেমরির আকার এবং মেমরি অ্যাড্রেস প্রতিটি নির্দিষ্ট ডিভাইসকে নির্দেশ করে এবং প্রদত্ত "সাধারণ" প্যারামিটারগুলি বিভিন্ন অ্যাপ্লিকেশনে পরিবর্তিত হতে পারে এবং করতে পারে। আবেদন প্রাক্তনampএখানে বর্ণিত লেস শুধুমাত্র দৃষ্টান্তমূলক উদ্দেশ্যে। সিলিকন ল্যাবস এখানে পণ্যের তথ্য, স্পেসিফিকেশন, এবং বর্ণনাগুলিতে আরও বিজ্ঞপ্তি এবং সীমাবদ্ধতা ছাড়াই পরিবর্তন করার অধিকার সংরক্ষণ করে এবং অন্তর্ভুক্ত তথ্যের যথার্থতা বা সম্পূর্ণতা সম্পর্কে ওয়ারেন্টি দেয় না। এখানে সরবরাহকৃত তথ্য ব্যবহারের ফলাফলের জন্য সিলিকন ল্যাব-এর কোনো দায় থাকবে না। এই দস্তাবেজটি কোন ইন্টিগ্রেটেড সার্কিট ডিজাইন বা বানোয়াট করার জন্য এখানে দেওয়া কপিরাইট লাইসেন্সগুলিকে বোঝায় বা প্রকাশ করে না। সিলিকন ল্যাবসের নির্দিষ্ট লিখিত সম্মতি ব্যতীত পণ্যগুলি কোনও লাইফ সাপোর্ট সিস্টেমের মধ্যে ব্যবহারের জন্য ডিজাইন বা অনুমোদিত নয়। একটি "লাইফ সাপোর্ট সিস্টেম" হল জীবন এবং/অথবা স্বাস্থ্যকে সমর্থন বা টিকিয়ে রাখার উদ্দেশ্যে যে কোনো পণ্য বা সিস্টেম, যেটি যদি ব্যর্থ হয়, তাহলে তাৎপর্যপূর্ণ ব্যক্তিগত আঘাত বা মৃত্যু হতে পারে বলে আশা করা যায়। সিলিকন ল্যাব পণ্যগুলি সামরিক অ্যাপ্লিকেশনের জন্য ডিজাইন বা অনুমোদিত নয়। সিলিকন ল্যাবস পণ্যগুলি কোনো অবস্থাতেই পারমাণবিক, জৈবিক, বা রাসায়নিক অস্ত্র, বা এই ধরনের অস্ত্র সরবরাহ করতে সক্ষম ক্ষেপণাস্ত্র সহ (তবে সীমাবদ্ধ নয়) গণবিধ্বংসী অস্ত্রগুলিতে ব্যবহার করা যাবে না।
ট্রেডমার্ক তথ্য
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs®, এবং Silicon Labs logo®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, Energy Micro লোগো এবং এর সংমিশ্রণ, “বিশ্বের সবচেয়ে শক্তি বান্ধব মাইক্রোকন্ট্রোলার”, Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress®, এবং অন্যান্যগুলি হল সিলিকন ল্যাবসের ট্রেডমার্ক বা নিবন্ধিত ট্রেডমার্ক৷ ARM, CORTEX, Cortex-M3, এবং থাম্বস হল ARM Holdings-এর ট্রেডমার্ক বা নিবন্ধিত ট্রেডমার্ক। কেয়েল হল এআরএম লিমিটেডের একটি নিবন্ধিত ট্রেডমার্ক। এখানে উল্লিখিত অন্যান্য সমস্ত পণ্য বা ব্র্যান্ডের নামগুলি তাদের নিজ নিজ ধারকদের ট্রেডমার্ক।
সিলিকন ল্যাবরেটরিজ ইনক.
400 পশ্চিম সিজার শ্যাভেজ
অস্টিন, TX 78701
USA
http://www.silabs.com
দলিল/সম্পদ
![]() |
সিলিকন ল্যাবস ওয়্যারলেস এম-বাস সফ্টওয়্যার বাস্তবায়ন AN451 [পিডিএফ] ব্যবহারকারীর নির্দেশিকা সিলিকন ল্যাবস, C8051, MCU, এবং, EZRadioPRO, ওয়্যারলেস M-বাস, ওয়্যারলেস, M-BUS, সফ্টওয়্যার, বাস্তবায়ন, AN451 |