সুচিপত্র:

তোমার চোখ খোল! লজিক্যাল অ্যানালাইজার: 21 টি ধাপ
তোমার চোখ খোল! লজিক্যাল অ্যানালাইজার: 21 টি ধাপ

ভিডিও: তোমার চোখ খোল! লজিক্যাল অ্যানালাইজার: 21 টি ধাপ

ভিডিও: তোমার চোখ খোল! লজিক্যাল অ্যানালাইজার: 21 টি ধাপ
ভিডিও: Ghum - Odd Signature [Official] 2024, জুলাই
Anonim
Image
Image
সমাবেশ
সমাবেশ

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

এই ভিডিওতে, আমি একটি গ্রাফিক্যাল ইন্টারফেস এবং ফ্রি সফটওয়্যারের সাথে তুলনামূলকভাবে সস্তা (প্রায় $ 35) এবং দক্ষ মডেল ব্যবহার করেছি।

ধাপ 1: সমাবেশ

ধাপ 2: ব্যবহৃত বৈশিষ্ট্য - সার্ভার

বৈশিষ্ট্য ব্যবহৃত - সার্ভার
বৈশিষ্ট্য ব্যবহৃত - সার্ভার

For সংযোগের জন্য জাম্পার

• 2 Arduinos (আমরা 2 মেগা Arduinos 2560 ব্যবহার করেছি)

• লজিক্যাল অ্যানালাইজার (আমরা Saleae ব্যবহার করি)

Arduino এবং বিশ্লেষকের জন্য ইউএসবি সংযোগ তারগুলি।

• অসিলোস্কোপ (alচ্ছিক)

• প্রোটোবোর্ড

ধাপ 3: সার্কিট ব্যবহৃত

সার্কিট ব্যবহৃত
সার্কিট ব্যবহৃত

এখানে আমাদের পরিকল্পিত আছে, যা তিনটি পিনের পর্যবেক্ষণ দেখায়: TX0, SDA, এবং SCL। আমাদের দুটি Arduinos আছে: একটি মাস্টার এবং একটি দাস।

ধাপ 4: সোর্স কোড: মাস্টার

সেটআপে, আমরা i2c যোগাযোগের জন্য লাইব্রেরি অন্তর্ভুক্ত করব। আমরা নেটওয়ার্কে মাস্টার হিসাবে প্রবেশ করেছি এবং সিরিয়াল ০ -এর সূচনা করেছি। আমরা সিরিয়ালে মুদ্রণ করি, যা যুক্তি বিশ্লেষক, প্রাপ্ত বাইট দিয়ে মূল্যায়ন করা হবে।

#অন্তর্ভুক্ত // ইনক্লুই একটি বিবলিওটেকা প্যারা কমিউনিকেও I2C অকার্যকর সেটআপ () {Wire.begin (); // Entra na rede como Mestre (endereço é opcional para o mestre) Serial.begin (115200); // inicia a serial 0} void loop () {Wire.requestFrom (8, 6); // requisita 6 bytes de dados do escravo de endereço 8 while (Wire.available ()) {// enquanto houver bytes para receber। । । char c = Wire.read (); // recebe cada byte e armazena como caracter Serial.print (c); // envia o caracter pela serial (na verdade vai para o buffer)} বিলম্ব (500); // aguarda meio segundo}

ধাপ 5: সোর্স কোড: স্লেভ

এই স্লেভ কোডে, আমি আবার i2c যোগাযোগের জন্য লাইব্রেরি অন্তর্ভুক্ত করি। আমি 8 নম্বর ঠিকানা দিয়ে একটি ক্রীতদাস হিসাবে নেটওয়ার্কে প্রবেশ করি। আপনার লুপে কিছু করার দরকার নেই, শুধু 0.1 সেকেন্ড বিলম্ব দিন।

পরিশেষে, আমাদের কাছে অনুরোধ ফাংশন আছে যা সম্পাদিত হবে যখন মাস্টারের অনুরোধের ঘটনা ঘটবে, যা সেটআপে নিবন্ধিত ছিল। আমরা অবশেষে 6 বাইটের একটি বার্তা দিয়ে উত্তর দিই।

#অন্তর্ভুক্ত // ইনক্লুই একটি বিবলিওটেকা প্যারা কমিউনিকেও I2C অকার্যকর সেটআপ () {Wire.begin (8); // entra na rede como escravo com endereço 8 Wire.onRequest (requestEvent); // registra o evento de requisiçao // e associa à função requestEvent} void loop () {delay (100); // não faz nada no loop, apenas aguarda 0, 1 segundo} // função que será execuda quando ocorrer o evento de requisição pelo mestre // foi registrada como evento no setup void requestEvent () {Wire.write ("teste"); // responde com uma mensagem de 6 bytes}

ধাপ 6: বিশ্লেষক: হার্ডওয়্যার

বিশ্লেষক: হার্ডওয়্যার
বিশ্লেষক: হার্ডওয়্যার

নমুনা হার পর্যন্ত: 24 MHz

যুক্তি: 5 V থেকে 5.25 V

নিম্ন স্তরের থ্রেশহোল্ড 0.8 V

উচ্চ স্তরের থ্রেশহোল্ড 2.0 V

ইনপুট প্রতিবন্ধকতা প্রায় 1 মোহম বা তার বেশি

ধাপ 7: Saleae সফটওয়্যার ইনস্টলেশন

Saleae সফটওয়্যার ইনস্টলেশন
Saleae সফটওয়্যার ইনস্টলেশন

যে প্রোগ্রামটি যুক্তি বিশ্লেষক দ্বারা প্রাপ্ত তথ্য গ্রহণ করে এবং বিটগুলি ডিকোড করে তা নীচের লিঙ্কে ডাউনলোড করা যেতে পারে:

ধাপ 8: আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা

আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা
আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা

আমি এখানে ইন্টারফেসটি দেখাই, যা আমি বিশেষভাবে পছন্দ করেছি কারণ এটি পরিষ্কার ছিল।

ধাপ 9: আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা

আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা
আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা

এখানে কিছু কনফিগারেশন বিকল্প রয়েছে:

The চ্যানেলের নামের উপর ক্লিক করে, আমরা এটি পরিবর্তন করতে পারি।

The আমরা নির্ধারণ করতে পারি যে কোন একটি চ্যানেল ক্যাপচার এবং সনাক্তকরণের ফর্ম হিসেবে কাজ করবে কিনা।

Clicking চ্যানেল নম্বরটি ক্লিক করে ধরে রেখে, আপনি তালিকায় আপনার অবস্থান পরিবর্তন করতে পারেন।

The গিয়ারে ক্লিক করে, আমরা চ্যানেল ভিজ্যুয়ালাইজেশন কনফিগার করতে পারি, প্রসারিত করছি …

•… অথবা চ্যানেল লুকিয়ে রাখা। আমরা ব্যবহার করব না এমন সব চ্যানেল আমরা লুকিয়ে রাখব।

ধাপ 10: আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা

আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা
আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা

"স্টার্ট" বোতামের তীরগুলিতে ক্লিক করে, নমুনা হার এবং রেকর্ডিংয়ের সময়কালের বিকল্প রয়েছে।

কিছু কারণে, যদি সফ্টওয়্যার সনাক্ত করে যে হার বজায় রাখা যাবে না, একটি বার্তা প্রদর্শিত হবে এবং স্বয়ংক্রিয়ভাবে একটি কার্যকরী মান না পৌঁছানো পর্যন্ত হার হ্রাস করা হবে।

ধাপ 11: আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা

আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা
আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা

আমরা প্রোটোকল বিশ্লেষকদেরও অন্তর্ভুক্ত করব। প্রথমে এটি I2C, WIRE লাইব্রেরির সংজ্ঞা অনুসরণ করে এবং চ্যানেলগুলিকে সঠিকভাবে যুক্ত করে। অবশেষে, আমরা বিশ্লেষককে অ্যাসিঙ্ক্রোনাস সিরিয়ালের সাথে পরিচয় করিয়ে দেব। সমাবেশ অনুসারে প্যারামিটারগুলি সঠিকভাবে কনফিগার করার জন্য আমাদের সতর্ক থাকতে হবে।

ধাপ 12: আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা

আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা
আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা

"ডিকোডেড প্রোটোকলস" ট্যাবে, আমাদের কোন প্রোটোকল বিশ্লেষক সক্ষম তা পরীক্ষা করা উচিত। সেখানে, ডেটা প্রদর্শিত হবে। "টীকা" ট্যাবে, আমরা ভাল দৃশ্যের জন্য কিছু ফলাফল যোগ করতে পারি। শুধু "পরিমাপ যোগ করুন" আইকনে ক্লিক করুন।

ধাপ 13: ক্যাপচার: ওভারভিউ

ক্যাপচার: ওভারভিউ
ক্যাপচার: ওভারভিউ

ক্যাপচার স্ক্রিনে, প্রোগ্রামটি SDA, SCL, এবং TX0 এর ডেটা পালস ট্রেন প্রদর্শন করে।

ধাপ 14: ক্যাপচার: প্রোটোকল বিশ্লেষণের ফলাফল

ক্যাপচার: প্রোটোকল বিশ্লেষণের ফলাফল
ক্যাপচার: প্রোটোকল বিশ্লেষণের ফলাফল

এখানে, আমরা ক্যাপচারের ফলাফল দেখতে পাই। "ডিকোডেড প্রোটোকল" ট্যাবে, আমাদের আছে:

Id আইডি 8 সহ দাসের জন্য সার্ভার অনুরোধ।

• দাস প্রতিক্রিয়া, ছয়টি অক্ষর: "t", "e", "s", "t", "e" এবং একটি স্থান।

NACK (স্বীকৃতি নয়) স্থান অক্ষর ব্যতীত প্রতিটি একটি ACK বিট (স্বীকৃতি) দ্বারা সঠিক বাইট অভ্যর্থনা নির্দেশ করে।

• এর পরে, আমরা TX0 সিরিয়ালের ডিকোডিং ফলাফল দেখতে পাই, যা Arduino IDE সিরিয়াল টার্মিনালে প্রাপ্ত এবং পাঠানো অক্ষর নির্দেশ করে।

ধাপ 15: ক্যাপচার: চ্যানেল 0 এবং ডেটা (এসডিএ)

ক্যাপচার: চ্যানেল 0 এবং ডেটা (এসডিএ)
ক্যাপচার: চ্যানেল 0 এবং ডেটা (এসডিএ)

এই ছবিতে, আমাদের SDA লাইনের পালস ট্রেন আছে। লক্ষ্য করুন যে প্রতিটি প্রেরিত বাইট দেখা যাবে।

ধাপ 16: ক্যাপচার: চ্যানেল 1 এবং ক্লক (এসসিএল)

ক্যাপচার: চ্যানেল 1 এবং ক্লক (এসসিএল)
ক্যাপচার: চ্যানেল 1 এবং ক্লক (এসসিএল)

এখন, আমাদের এখানে এসসিএল লাইনের পালস ট্রেন আছে। আপনি ইমেজে যেমন দেখছেন তেমনি সিগন্যালের উপরে মাউস বসিয়ে আপনি আরও বিশদটি পরীক্ষা করতে পারেন। আমরা দেখতে পাচ্ছি যে ঘড়ির ফ্রিকোয়েন্সি ছিল 100 kHz।

ধাপ 17: ক্যাপচার: চ্যানেল 2 এবং সিরিয়াল (TX0)

ক্যাপচার: চ্যানেল 2 এবং সিরিয়াল (TX0)
ক্যাপচার: চ্যানেল 2 এবং সিরিয়াল (TX0)

TX0 লাইনের পালস ট্রেনের জন্য, আমরা স্টার্ট বিট এবং প্রতিটি বিটের ফ্রেমিং পয়েন্ট দেখতে পারি। আমাদের একটি বাইট আছে যা "ই" চরিত্রটি উপস্থাপন করে।

ধাপ 18: আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা

আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা
আমাদের পরীক্ষার জন্য পরিবেশ কনফিগার করা

এখানে আমাদের ডেটা পড়ার জন্য বেশ কিছু অপশন আছে।

ধাপ 19: ক্যাপচার: অসিলোস্কোপ এবং বিশ্লেষক

ক্যাপচার: অসিলোস্কোপ এবং বিশ্লেষক
ক্যাপচার: অসিলোস্কোপ এবং বিশ্লেষক

আমার অসিলোস্কোপ থেকে আমি যে স্ক্রিনটি ধরেছি তা এখানে দেখুন। যুক্তি বিশ্লেষক সংকেত শুধুমাত্র উচ্চ এবং নিম্ন সনাক্তকরণের প্রতিনিধিত্ব করে, কিন্তু এটি সংকেত মানের প্রতিনিধিত্ব করে না। এটি অসিলোস্কোপে সবচেয়ে ভালোভাবে লক্ষ্য করা যায়।

ধাপ 20: ক্যাপচার: একটি ব্যর্থতা পর্যবেক্ষণ (সিরিয়াল ব্যর্থতার উদাহরণ)

ক্যাপচার: একটি ব্যর্থতা পর্যবেক্ষণ (সিরিয়াল ব্যর্থতার উদাহরণ)
ক্যাপচার: একটি ব্যর্থতা পর্যবেক্ষণ (সিরিয়াল ব্যর্থতার উদাহরণ)

এখন, আমি একটি সিরিয়াল ব্যর্থতার উদাহরণ দেখাব, যা আসলে আমার সাথে ঘটেছিল। আমি একটি জিপিআরএস মডেমের সাথে ছিলাম, একটি মোবাইল ফোনে ব্যবহৃত সিম কার্ড, ইএসপি 32 এর সাথে সংযোগ করার চেষ্টা করছিলাম। কিন্তু এটি কেবল সংযুক্ত হয়নি। আমি তখন পাওয়ার সাপ্লাই, ওয়্যারিং এবং বোর্ড পরিবর্তন করেছি। আমি সবকিছু করেছি, কিন্তু কিছুই ঠিক করে নি। আমি একটি যৌক্তিক বিশ্লেষণ করার সিদ্ধান্ত নিয়েছি: আমি আবিষ্কার করেছি যে UART 115200 এ ESP সংকেতটি অসঙ্গতিপূর্ণ হতে শুরু করেছে। অর্থাৎ, ESP32 এর চেয়ে আলাদা গতিতে 115, 200 হওয়া উচিত ছিল।

এই ত্রুটি, যা পার্সার দ্বারা চিহ্নিত করা হয়েছিল, লাল রঙে একটি এক্স দিয়ে প্রদর্শিত হয়েছিল। আমার বোধগম্যতায়, প্রোগ্রামটি বলে যে এই বিন্দুটি এমন একটি বিট যা সময় অর্ধ-স্থানচ্যুত হয়। এই শিফট বাড়ার সাথে সাথে এমন একটা সময় আসতে পারে যখন সবকিছু মিলছে না, যাতে তথ্য অন্য দিকে না পৌঁছায়। এটি সাধারণত আসে, কিন্তু SIM800 সংবেদনশীল এবং যদি এটি সঠিক না হয়, তথ্য অন্য প্রান্তে পৌঁছায় না।

আমি জানি না যে এটি এমন কিছু যা প্রায়শই ঘটে বা না হয়, তবে এটি আমার সাথে ঘটেছিল, এবং তাই আমি এখানে এই বিষয়টির সমাধান করার সিদ্ধান্ত নিয়েছি। তাহলে আমি কি করলাম? আমি ধীর হয়ে গেলাম। যদি আপনি 9, 600, 19, 200, 38, 400 পর্যন্ত রাখেন, এটি কাজ করে, যা 115, 200 এর সাথে ঘটে না।

ধাপ 21: ফাইল ডাউনলোড করুন

পিডিএফ

আইএনও

প্রস্তাবিত: