ইউনিট
1. ইলেকট্রনিক্স এবং কমিউনিকেশন ইঞ্জিনিয়ারিং-এ কৃত্রিম বুদ্ধিমত্তার ভূমিকা: সীমানা, বৈধতা, দায়িত্ব এবং নীতিশাস্ত্র 2. সার্কিট ডিজাইন এবং পিসিবি লেআউট সাপোর্টে কৃত্রিম বুদ্ধিমত্তা 3. সংকেত প্রক্রিয়াকরণ: ফিল্টার, নমুনা এবং ফ্রিকোয়েন্সি বিশ্লেষণ 4. মডুলেশন, ডিজিটাল কমিউনিকেশন এবং ত্রুটি পুনরুদ্ধার 5. আরএফ, অ্যান্টেনা এবং লিঙ্ক বাজেট বিশ্লেষণ 6. এমবেডেড সিস্টেম এবং ফার্মওয়্যার উন্নয়নে কৃত্রিম বুদ্ধিমত্তা 7. কমিউনিকেশন প্রোটোকল এবং নেটওয়ার্ক স্ট্যাক 8. নেটওয়ার্ক পারফরম্যান্স এবং অপ্টিমাইজেশানে কৃত্রিম বুদ্ধিমত্তা 9. ইএমসি/ইএমআই, পরীক্ষা এবং পরিমাপে কৃত্রিম বুদ্ধিমত্তা 10. ভবিষ্যদ্বাণীমূলক রক্ষণাবেক্ষণ এবং সরঞ্জাম স্বাস্থ্যে কৃত্রিম বুদ্ধিমত্তা 11. স্ট্যান্ডার্ড এবং নিয়ন্ত্রক গবেষণা যাচাই 12. সিগন্যাল এবং টেলিকম ডেটা বিশ্লেষণ এবং পাইথনের সাথে AI এর ফ্রন্টিয়ার্স
ইউনিট 6 / 12

এমবেডেড সিস্টেম এবং ফার্মওয়্যার উন্নয়নে কৃত্রিম বুদ্ধিমত্তা

লাভ:

  • এআই সহ মাইক্রোকন্ট্রোলার ফার্মওয়্যার কঙ্কাল, ড্রাইভার এবং স্টেট মেশিন ড্রাফ্টগুলিকে ত্বরান্বিত করার ক্ষমতা
  • AI সমর্থনের সাথে ইন্টারাপ্ট, টাইমিং, ওয়াচডগ এবং কম পাওয়ার লজিক পর্যালোচনা করার ক্ষমতা
  • স্ট্যাটিক বিশ্লেষণ, হার্ডওয়্যার পরীক্ষা এবং নিরাপত্তা প্রয়োজনীয়তার মাধ্যমে এআই-জেনারেটেড ফার্মওয়্যার কোড যাচাই করার ক্ষমতা

একটি এমবেডেড সিস্টেম হল একটি মাইক্রোকন্ট্রোলারের চারপাশে নির্মিত একটি ইলেকট্রনিক ডিভাইস (একটি ছোট কম্পিউটার যা একটি একক চিপে প্রসেসর, মেমরি এবং পেরিফেরালগুলিকে রাখে) একটি নির্দিষ্ট কাজ করার জন্য ডিজাইন করা হয়েছে: একটি থার্মোস্ট্যাট, একটি মডেম, একটি সেন্সর নোড, একটি মোটর ড্রাইভার। ফার্মওয়্যার হল সেই সফটওয়্যার যা সরাসরি এই ডিভাইসের হার্ডওয়্যার চালায়। এই ইউনিটে আপনি দেখতে পাবেন কিভাবে ফার্মওয়্যার ডেভেলপমেন্টে (ড্রাইভার রাইটিং, স্টেট মেশিন, ইন্টারাপ্ট এবং টাইমিং লজিক, কম পাওয়ার ম্যানেজমেন্ট) একটি অ্যাক্সিলারেটর হিসাবে AI ব্যবহার করতে হয়। AI কোডিং এ সত্যিই শক্তিশালী; কিন্তু এমবেডেড বিশ্বে, কোড হার্ডওয়্যার, রিয়েল টাইম এবং প্রায়শই নিরাপত্তার সাথে জড়িত। তাই এআই উৎপন্ন প্রতিটি লাইনকে অবশ্যই স্ট্যাটিক বিশ্লেষণ, রেজিস্টার/ডেটাশিট চেকিং এবং হার্ডওয়্যারে প্রকৃত পরীক্ষার মধ্য দিয়ে যেতে হবে।

AI ফার্মওয়্যারে কোথায় শক্তিশালী, কোথায় ঝুঁকিপূর্ণ

ফার্মওয়্যারের "কঙ্কাল" এবং "ডাই" অংশে AI খুব শক্তিশালী: একটি I2C/SPI ড্রাইভারের কাঠামো, একটি স্টেট মেশিনের কাঠামো (যুক্তি যা ডিভাইসের অবস্থা এবং রূপান্তরকে সংজ্ঞায়িত করে), একটি রিং বাফার বাস্তবায়ন, একটি নির্দেশ পার্সার, একটি পরীক্ষা কঙ্কাল। এটি একটি জটিল ডেটাশিটে রেজিস্টার টেবিল পড়তে পারে এবং ইনিশিয়ালাইজেশন কোড তৈরি করতে পারে। একটি ত্রুটি ব্যাখ্যা করতে পারে, একটি কম্পাইলার সতর্কতা ব্যাখ্যা করতে পারে।

যেখানে এটি ঝুঁকিপূর্ণ তা হল এমবেডেড সিস্টেমের সারাংশ:

  • নিবন্ধন ঠিকানা এবং বিট ক্ষেত্র: এআই একটি চিপের নিবন্ধন মানচিত্র ভুল মনে রাখতে পারে; প্রতিটি ঠিকানা এবং বিট ডেটাশীট থেকে যাচাই করা আবশ্যক।
  • সময় এবং বাস্তব সময়: একটি অপারেশন কত মাইক্রোসেকেন্ড লাগে, কত ঘন ঘন একটি বাধা আসে, হার্ডওয়্যারের উপর নির্ভর করে; এআই ভবিষ্যদ্বাণী করে, আপনি পরিমাপ করুন।
  • কনকারেন্সি: যদি ইন্টারাপ্ট সার্ভিস রুটিন (ISR) এবং প্রধান লুপের মধ্যে ভাগ করা ভেরিয়েবলগুলি উদ্বায়ী এবং পারমাণবিক অ্যাক্সেস দ্বারা সুরক্ষিত না থাকে, তাহলে নীরব, অ-পুনরাবৃত্তিযোগ্য ত্রুটি দেখা দেয়।
  • সম্পদের সীমা: স্ট্যাক ওভারফ্লো, মেমরি লিক, ওয়াচডগ টাইমআউট মানে এমবেড করা ক্র্যাশ।

বাধা, সময় এবং প্রহরী

একটি বিঘ্ন হল যখন একটি ঘটনা ঘটে (ডেটা এসেছে, টাইমারের মেয়াদ শেষ হয়ে গেছে), প্রসেসর মূল কাজ ত্যাগ করে এবং একটি পরিষেবা রুটিনে (ISR: Interrupt Service Routine) চলে যায়। আইএসআরগুলি এমবেডেড সিস্টেমের কোডের সবচেয়ে সংবেদনশীল অংশ। মৌলিক নিয়ম: ISR সংক্ষিপ্ত হওয়া উচিত (দীর্ঘ কাজ মূল লুপে বাকি আছে), এতে কোন ব্লকিং অপারেশন (অপেক্ষা, মুদ্রণ) থাকা উচিত নয়, ভাগ করা ভেরিয়েবলগুলি সুরক্ষিত করা উচিত।

ওয়াচডগ হল একটি নিরাপত্তা ব্যবস্থা যা সফ্টওয়্যার ক্র্যাশ হলে ডিভাইসটিকে স্বয়ংক্রিয়ভাবে রিবুট করে; ফার্মওয়্যার এটি নিয়মিত "ফিড" করে, যদি না হয়, সিস্টেমটি পুনরায় সেট করা হয়। AI এই কাঠামোর খসড়া তৈরি করে, তবে আপনার সিস্টেমে প্রকৃত লোডের বিপরীতে ওয়াচডগ সময়কাল, বাধাগ্রস্ত অগ্রাধিকার এবং সময় নির্ধারণের বাজেট যাচাই করা দরকার।

টিপ: AI-তে একটি ISR প্রিন্ট করার সময়, এটিকে স্পষ্টভাবে নির্দেশ দিন "ISR ছোট রাখুন, কোন ব্লকিং না করুন, উদ্বায়ী এবং পারমাণবিক অ্যাক্সেস সহ ভাগ করা ভেরিয়েবল চিহ্নিত করুন, একটি পতাকা সহ মূল লুপে দীর্ঘ কাজ অর্পণ করুন।" তারপর কোডে লাইন বাই লাইন চেক করুন যে এই নিয়মগুলি আসলে প্রয়োগ করা হয়েছে।

কম শক্তি এবং নিরাপত্তা

ব্যাটারি চালিত ডিভাইসে কম পাওয়ার ম্যানেজমেন্ট গুরুত্বপূর্ণ: প্রসেসরকে ঘুমাতে দেওয়া, পেরিফেরিয়াল বন্ধ করা, কোনো ইভেন্টের সাথে জেগে ওঠা। AI স্লিপ মোড ট্রানজিশন এবং জেগে ওঠার যুক্তি স্কেচ করে, কিন্তু প্রকৃত বর্তমান খরচ শুধুমাত্র পরিমাপের মাধ্যমে জানা যায় (মাইক্রোঅ্যাম্পিয়ার স্তরে বর্তমান মিটার); AI বলছে "এটি এই মোডে ~2 µA আঁকে" একটি অনুমান।

নিরাপত্তার দৃষ্টিকোণ থেকে, এমবেডেড ডিভাইসগুলি ক্রমবর্ধমান নেটওয়ার্কে যুক্ত হচ্ছে এবং ফার্মওয়্যার দুর্বলতা (বাফার ওভারফ্লো, অননুমোদিত ইনপুট, দুর্বল ক্রিপ্টোগ্রাফি, ওপেন ডিবাগ ইন্টারফেস) গুরুতর ঝুঁকি। AI আপনাকে নিরাপদ কোডিং নীতির কথা মনে করিয়ে দিতে পারে, তবে জেনারেট করা কোডের নিরাপত্তা স্ট্যাটিক অ্যানালাইসিস টুল, কোড রিভিউ এবং প্রয়োজনে নিরাপত্তা পরীক্ষার মাধ্যমে যাচাই করা হয়। নিরাপত্তা-সমালোচনামূলক ব্যবস্থায় (চিকিৎসা, স্বয়ংচালিত, শিল্প) AI আউটপুট কখনই উপযুক্ত প্রকৌশলীর অনুমোদন এবং প্রাসঙ্গিক নিরাপত্তা মান (যেমন IEC 61508, ISO 26262) দ্বারা প্রয়োজনীয় প্রক্রিয়াগুলিকে প্রতিস্থাপন করা উচিত নয়।

তিনটি মিনি কেস

কেস 1 - অরক্ষিত ভাগ করা পরিবর্তনশীল। একজন প্রকৌশলী এআই থেকে একটি UART প্রাপ্ত কোডের অনুরোধ করেন। কোডটি আইএসআর-এ একটি কাউন্টার বৃদ্ধি করে এবং প্রধান লুপটি এই কাউন্টারটি পড়ে; কিন্তু কাউন্টারটি উদ্বায়ী নয় এবং মাল্টিবাইট রিড পারমাণবিক নয়। ডিভাইসটি বেশিরভাগ সময় কাজ করে, কিন্তু মাঝে মাঝে এটি ডেটা গণনা ভুল করে এবং ত্রুটি পুনরাবৃত্তি করা যায় না। স্ট্যাটিক বিশ্লেষণ এবং কোড পর্যালোচনা অনুপস্থিত উদ্বায়ী ধরা; কাউন্টারটি সুরক্ষিত থাকলে ত্রুটিটি অদৃশ্য হয়ে যায়। পাঠ: এআই কোডে একযোগে ত্রুটিগুলি ঘন ঘন এবং প্রতারক; এটা পড়া এবং যাচাই করা প্রয়োজন.

কেস 2 - ভুল রেজিস্টার বিট। একজন ইন্টার্ন এআই দ্বারা উত্পন্ন ADC ইনিশিয়ালাইজেশন কোড আপলোড করে; ADC অপ্রত্যাশিত মান পড়ে। ডেটাশিটের সাথে তুলনা করলে দেখা যাচ্ছে যে AI ভুল অবস্থানে একটি কনফিগারেশন বিট সেট করেছে (চিপের একটি ভিন্ন রূপের জন্য মানচিত্র)। একবার বিট সংশোধন করা হলে, ADC সঠিকভাবে কাজ করে। পাঠ: ডেটাশীটের সঠিক রূপের বিপরীতে প্রতিটি নিবন্ধন বানান যাচাই করুন।

কেস 3 - সঠিক ব্যবহার। একজন প্রকৌশলী একটি জটিল সেন্সর প্রোটোকলের জন্য একটি রাষ্ট্রীয় মেশিনের কঙ্কালের জন্য এআইকে জিজ্ঞাসা করেন; স্টেট, ট্রানজিশন এবং টাইমআউট শাখা বর্ণনা করে। AI একটি পরিষ্কার, পঠনযোগ্য কাঠামো তৈরি করে। ইঞ্জিনিয়ার এই ফ্রেমওয়ার্কটি নেয়, ডেটাশিটের সাথে প্রতিটি রেজিস্টার অ্যাক্সেস যাচাই করে, অসিলোস্কোপ দিয়ে সময় পরিমাপ করে এবং হার্ডওয়্যারে পরীক্ষা করে। কয়েক দিনের পরিবর্তে কয়েক ঘণ্টায় উন্নয়ন শেষ হয়। পাঠ: AI কঙ্কালের গতি বাড়ায়; ইঞ্জিনিয়ার ভেরিফিকেশন করে।

অনুলিপিযোগ্য প্রম্পট টেমপ্লেট

ড্রাইভার স্কেলেটন টেমপ্লেট"[চিপ/পেরিফেরাল]-এর জন্য একটি [I2C/SPI/UART] ড্রাইভারের কঙ্কাল লিখুন: প্রাথমিককরণ, পড়া, লিখুন, ত্রুটি পরিচালনার ফাংশন। PLACEHOLDER-এ রেজিস্টার ঠিকানা এবং বিট ক্ষেত্রগুলি ছেড়ে দিন (যেমন REG_XXX) এবং পরিবর্তে 'সেগুলি থেকে ডেটা' ব্যবহার করুন এবং টাইমআউট করুন' নোট করুন। ব্লকিংওয়েট প্রতিটি ফাংশন একটি মন্তব্য লাইনের সাথে কি অনুমান করে তা নির্দিষ্ট করুন৷"

ISR নিরাপত্তা টেমপ্লেট"নিম্নলিখিত ইভেন্টের জন্য একটি ইন্টারাপ্ট সার্ভিস রুটিন (ISR) খসড়া লিখুন: [ইভেন্ট]। নিয়ম: ISR সংক্ষিপ্ত রাখুন, ব্লক করবেন না, ভাইভোলাটাইল এবং পারমাণবিক অ্যাক্সেসের সাথে শেয়ার করা ভেরিয়েবলগুলি চিহ্নিত করুন, একটি পতাকা সহ প্রধান লুপে দীর্ঘ কাজটি অর্পণ করুন। কোডের শেষে, এই নিয়মগুলি আইটেম করুন যেখানে প্রতিটি আইটেম প্রয়োগ করতে পারে।"

স্টেট মেশিন টেমপ্লেট "নিম্নলিখিত প্রোটোকল/প্রসেসের জন্য একটি স্টেট মেশিন কঙ্কাল লিখুন: [রাষ্ট্র, ঘটনা, ট্রানজিশন এবং টাইমআউট বর্ণনা করুন]। প্রতিটি স্টেটের জন্য এন্ট্রি/প্রস্থান অ্যাকশন এবং ত্রুটি/টাইমআউট শাখা নির্দিষ্ট করুন। হার্ডওয়্যার-নির্দিষ্ট মানগুলি (রেজিস্টার, সময়কাল) স্থানধারক হিসাবে ছেড়ে দিন যা তাদের প্রয়োজন হয় না।"

কোড পর্যালোচনা টেমপ্লেট "নিম্নলিখিত ফার্মওয়্যার কোড একটি এমবেডেড দৃষ্টিকোণ থেকে পরীক্ষা করুন এবং ঝুঁকিগুলি পতাকাঙ্কিত করুন: অরক্ষিত ভাগ করা পরিবর্তনশীল (অস্থির/পরমাণু), ISR-এ দীর্ঘ/ব্লকিং অপারেশন, স্ট্যাক ওভারফ্লো হওয়ার ঝুঁকি, সময়সীমা ছাড়াই অপেক্ষা করুন, ত্রুটিগুলি নিবন্ধন করুন, ওয়াচডগ ফিড। প্রতিটির জন্য আমি কীভাবে পরীক্ষা/যাচাই করব তা পরামর্শ দিন।

দুর্বল প্রম্পট / শক্তিশালী প্রম্পট

দুর্বল প্রম্পট: "আমাকে একটি UART ড্রাইভার লিখুন।"

স্ট্রং প্রম্পট: "[মাইক্রোকন্ট্রোলার]-এর জন্য একটি ইন্টারাপ্ট-ভিত্তিক UART রিসিভ ড্রাইভার ফ্রেমওয়ার্ক লিখুন। একটি রিং বাফার ব্যবহার করুন; ISR সংক্ষিপ্ত রাখুন এবং শুধুমাত্র বাফারে লিখুন, প্রধান লুপে প্রসেসিং করুন। শেয়ার্ড ইনডেক্সগুলিকে উদ্বায়ী এবং পারমাণবিক করুন। রেজিস্টার ঠিকানাগুলিকে স্থানধারকগুলিতে ছেড়ে দিন, কোড শীটে যাচাই করার জন্য কোডের তালিকা থেকে যাচাই করতে তাদের চিহ্নিত করুন। সামঞ্জস্য এবং সময়ের শর্তাবলী।"

দুর্বল প্রম্পট কোড তৈরি করে যা হার্ডওয়্যার এবং কনকারেন্সি ব্লাইন্ড; শক্তিশালী প্রম্পট এমবেডেড নিয়ম আরোপ করে এবং যাচাইকরণ তালিকার জন্য প্রম্পট দেয়।

ফার্মওয়্যার যাচাইকরণ স্তর

স্তর

কি ধরা

AI এর ভূমিকা

ডেটাশিট চেক

ভুল রেজিস্টার/বিট

স্থানধারক এবং নিয়ন্ত্রণ নোট তৈরি করে

স্ট্যাটিক বিশ্লেষণ (লিন্টার)

উদ্বায়ী, প্রকার, সীমানা ত্রুটি

নিয়ম তালিকা এবং ব্যাখ্যা

কম্পাইলার সতর্কতা

অন্তর্নিহিত রূপান্তর, অব্যবহৃত মান

সতর্কতামূলক মন্তব্য

হার্ডওয়্যারে পরীক্ষা করা হচ্ছে

সময়, প্রকৃত আচরণ

পরীক্ষার দৃশ্যের পরামর্শ

অসিলোস্কোপ/বিশ্লেষক

সংকেত এবং প্রোটোকল নির্ভুলতা

পরিমাপ বিন্দু এবং প্রত্যাশিত তরঙ্গ

সতর্কতা: শুধুমাত্র একটি ফার্মওয়্যার "সংকলন" করে এবং "বেশিরভাগ সময় কাজ করে" এর অর্থ এই নয় যে এটি সঠিক। সামঞ্জস্য এবং সময় ত্রুটি শুধুমাত্র নির্দিষ্ট শর্তের অধীনে ঘটে; এজন্য হার্ডওয়্যারে স্ট্যাটিক বিশ্লেষণ এবং বাস্তব পরীক্ষা অপরিহার্য।

সাধারণ ভুল

  • ভাগ করা ভেরিয়েবলগুলিকে রক্ষা করছে না। ISR এবং প্রধান লুপের মধ্যে ডেটা অবশ্যই উদ্বায়ী এবং পারমাণবিক হতে হবে।
  • ডেটাশীট দিয়ে রেজিস্টার ঠিকানা/বিট যাচাই করা হচ্ছে না। AI ভুল বৈকল্পিক ম্যাপ করতে পারে।
  • আইএসআর দীর্ঘ রাখা বা এর মধ্যে ব্লক করা। সিস্টেম সাড়া দিতে পারে না, বাধা মিস হয়।
  • পরিমাপ ছাড়া সময় অনুমান. প্রকৃত সময় হার্ডওয়্যারের উপর নির্ভর করে; একটি অসিলোস্কোপ দিয়ে যাচাই করা হয়েছে।
  • AI অনুমোদনের জন্য নিরাপত্তা/নিরাপত্তা-সমালোচনা কোড ত্যাগ করা। একজন দক্ষ প্রকৌশলী এবং প্রাসঙ্গিক স্ট্যান্ডার্ড প্রক্রিয়া অপরিহার্য।

সংক্ষেপে

এই ইউনিটে আপনি ফার্মওয়্যার কঙ্কাল, ড্রাইভার, স্টেট মেশিন এবং আইএসআর স্কেচ তৈরিতে একটি শক্তিশালী অ্যাক্সিলারেটর হিসাবে AI ব্যবহার করেছেন। কিন্তু এমবেডেড বিশ্বে, কোডটি হার্ডওয়্যার, রিয়েল টাইম এবং নিরাপত্তার সাথে জড়িত: রেজিস্টার/বিট মানগুলি ডেটাশিট থেকে যাচাই করা হয়, স্থিতিশীল বিশ্লেষণ থেকে সমমর্যাদা যাচাই করা হয়, অসিলোস্কোপ থেকে সময় যাচাই করা হয়, হার্ডওয়্যারের বাস্তব পরীক্ষা থেকে আচরণ যাচাই করা হয়। এআই কয়েক মিনিটের মধ্যে কঙ্কাল সরবরাহ করে; প্রকৌশলী ফার্মওয়্যার সঠিকভাবে, নিরাপদে এবং সময়মতো কাজ করছে তা যাচাই করে। নিরাপত্তা-সমালোচনামূলক সিস্টেমে, AI আউটপুট প্রাসঙ্গিক নিরাপত্তা মান প্রক্রিয়া এবং দক্ষ প্রকৌশলীর অনুমোদন প্রতিস্থাপন করে না।

আবেদন টাস্ক

একটি পেরিফেরাল নির্বাচন করুন (যেমন একটি I2C সেন্সর)। "ড্রাইভার কঙ্কাল" টেমপ্লেটের সাথে, AI-কে এমন একটি ড্রাইভার কঙ্কালের জন্য জিজ্ঞাসা করুন যা স্থানধারকগুলিতে রেজিস্টার রেখে যায়। তারপর "ISR নিরাপত্তা" টেমপ্লেট সহ এই সেন্সর থেকে ডেটা-রেডি ইন্টারাপ্টের জন্য একটি ISR স্কেচ তৈরি করুন৷ অবশেষে, এমবেডেড ঝুঁকির জন্য "কোড পর্যালোচনা" টেমপ্লেটের সাথে এটি তৈরি করা কোডটি স্ক্যান করুন এবং কমপক্ষে তিনটি যাচাই/পরীক্ষার ধাপ লিখুন।

চেকলিস্ট

  • [ ] আমি সঠিক ডেটাশীট বৈকল্পিক থেকে প্রতিটি নিবন্ধন ঠিকানা এবং বিট যাচাই করেছি।
  • [ ] আমি আইএসআর এবং প্রধান লুপ উদ্বায়ী এবং পারমাণবিক মধ্যে ভাগ করা ভেরিয়েবল তৈরি করেছি।
  • [ ] আমি আইএসআর সংক্ষিপ্ত রেখেছি, ব্লকিং করিনি, দীর্ঘ কাজটি মূল লুপে হস্তান্তর করেছি।
  • আমি হার্ডওয়্যারে এবং একটি অসিলোস্কোপ দিয়ে সময় এবং বাস্তব আচরণ পরীক্ষা করার পরিকল্পনা করেছি।
  • [ ] আমি স্ট্যাটিক বিশ্লেষণ এবং কম্পাইলার সতর্কতা সহ কোডটি স্ক্যান করেছি।
  • [ ] আমি নিরাপত্তা/নিরাপত্তা-গুরুত্বপূর্ণ অংশগুলি একজন দক্ষ প্রকৌশলীর অনুমোদন এবং প্রাসঙ্গিক স্ট্যান্ডার্ড প্রক্রিয়ার উপর ছেড়ে দিয়েছি।