সুচিপত্র:

STM32 CAN ইন্টারফেস: 7 ধাপ
STM32 CAN ইন্টারফেস: 7 ধাপ
Anonim
STM32 CAN ইন্টারফেস
STM32 CAN ইন্টারফেস

কন্ট্রোলার এরিয়া নেটওয়ার্ক বাস, বা ক্যান বাস, এটি একটি অত্যন্ত কার্যকর যোগাযোগ প্রোটোকল, যার উচ্চ গতির ক্ষমতা, দীর্ঘ পরিসরের নির্ভরযোগ্যতা এবং শব্দ প্রতিরোধ ক্ষমতা। এই কারণে, CAN যোগাযোগ স্বয়ংচালিত প্রযুক্তি এবং উচ্চ শব্দ পরিবেশে স্ট্যান্ডার্ড হয়ে উঠেছে। CAN বাসে থাকা ডিভাইসগুলিকে নোড বলা হয়। CAN বাসের সমস্ত নোড সমান্তরালভাবে সংযুক্ত থাকে, যার অর্থ প্রতিটি নোড নেটওয়ার্কের অন্যান্য সমস্ত নোডের সাথে সংযুক্ত থাকে। বার্তা প্রেরণের হারের উপর নির্ভর করে একটি একক CAN বাসে একবারে 115 টি নোড থাকতে পারে, তবে বেশিরভাগ অ্যাপ্লিকেশনের জন্য 32 টি ডিভাইস পর্যন্ত রাখার সুপারিশ করা হয়। প্রথম এবং শেষ নোডের মধ্যে দৈর্ঘ্য 40 মিটারেরও কম রাখার সুপারিশ করা হয়।

এই ধাপে ধাপে টিউটোরিয়ালটি আপনাকে দেখাবে কিভাবে STM32 মাইক্রোকন্ট্রোলার ব্যবহার করে একটি CAN নোড সেট আপ করতে হয়, যার মধ্যে সার্কিট এবং CAN বাসে লেখা ও লেখার সহজ C কোড

সরবরাহ

প্রতিটি CAN নোডের জন্য:

  • 1x STM32 ব্রেকআউট বোর্ড (নিউক্লিও, ব্লু পিল, অন্যান্য)
  • 1x MCP2551 CAN ট্রান্সসিভার আইসি
  • 1x 0.1µF ক্যাপাসিটর
  • 1x 120Ω প্রতিরোধক
  • 1x 1kΩ প্রতিরোধক
  • 1+ পঠনযোগ্য ইনপুট (বোতাম, সুইচ, পটেন্টিওমিটার, ইত্যাদি) বা আউটপুট (LED, MOSFET, ইত্যাদি)
  • 1x Dsub9 সংযোগকারী

ধাপ 1: ট্রান্সসিভার সার্কিট

ট্রান্সসিভার সার্কিট
ট্রান্সসিভার সার্কিট

CAN বাসের সাথে যোগাযোগ করার জন্য, আমরা MCP2551 CAN ট্রান্সসিভার IC ব্যবহার করব। আইসি একটি মধ্যবর্তী ট্রান্সমিটার/রিসিভার জোড়া হিসাবে কাজ করে যা STM32 কে CAN বাসে সংযুক্ত করে। এই আইসি স্থাপনের সার্কিটটি বেশ সহজ, তবে কয়েকটি জিনিস লক্ষ্য করা দরকার:

  • MCP2551 চিপে CAN_RX (পিন 4) এবং CAN_TX (পিন 1) শুধুমাত্র STM32 এর নির্দিষ্ট পিনগুলিতে যেতে পারে।

    • STM32F1 নিউক্লিওতে, RX লাইনকে PB8 পিন করতে এবং TX লাইনকে PB9 পিন করতে সংযুক্ত করুন।
    • STM32F1 নীল পিলটিতে, PA11 পিন করতে RX এবং PA12 পিন করতে TX সংযোগ করুন।
    • মনে রাখবেন এই পিন অ্যাসাইনমেন্টের বিকল্প আছে। কোন পিন CAN_RD এবং CAN_TD তে সক্ষম তা নির্ধারণ করতে মাইক্রোকন্ট্রোলার ম্যানুয়াল পড়ুন
    • যদি কোন CAN কমিউনিকেটর অন্তর্নির্মিত একটি Arduino বা একটি বোর্ড ব্যবহার করে, MCP2515 IC চিপকে অন্যান্য বার্তা প্রোটোকলগুলিকে CAN এ রূপান্তর করতে হবে।
  • CANL পিনটি অন্যান্য বাস নোডের অন্যান্য CANL পিনের সাথে সংযুক্ত থাকতে হবে। একই CANH পিনের জন্য যায়।
  • CANH এবং CANL পিন জুড়ে 120Ω রোধক শুধুমাত্র প্রয়োজন যদি নোড একটি টার্মিনাল নোড হয়। এর মানে হল যে এটি সমান্তরাল সংযোগ তারের শেষে। অন্য কথায়, CAN বাসে কেবল দুটি 120Ω প্রতিরোধক থাকা উচিত এবং এগুলি যতটা সম্ভব একে অপরের থেকে দূরে থাকা উচিত।
  • সবশেষে, RS (পিন 8) -এ 1kΩ রোধক 10kΩ রোধের বিনিময়ে CAN বার্তার বিটগুলির ক্রমবর্ধমান/পতনের সময় নিয়ন্ত্রণ করতে পারে। আরো বিস্তারিত জানার জন্য MCP2551 চিপ ডেটশীট পড়ুন।

ধাপ 2: CAN বাসে পড়া এবং লেখা

CAN বাসে পড়া এবং লেখা
CAN বাসে পড়া এবং লেখা

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

CAN বাস থেকে পড়তে হলে আমাদের প্রথমে CAN মেসেজের আইডি জানতে হবে। প্রতিটি বার্তার একটি অনন্য আইডি থাকা উচিত, নিম্ন আইডিগুলি উচ্চতর অগ্রাধিকার সহ। এখানে দেখানো কোড স্নিপেটটি 0x622 আইডি সহ একটি CAN বার্তার জন্য অপেক্ষা করছে। আমাদের সিস্টেমে, যদি 6th ষ্ঠ বাইটের প্রথম বিট বেশি হয়, তাহলে আমরা পিন A10 হাই সেট করতে চাই।

একটি CAN বার্তা লেখার সময়, আমাদের অবশ্যই মনে রাখতে হবে যে CAN বার্তাগুলি বহু-বাইট। প্রতিটি লিখিত বার্তার একটি আইডি এবং দৈর্ঘ্য থাকতে হবে। দেখানো কোডের দ্বিতীয় স্নিপেটে, আমরা প্রতিটি বাইটে ডেটা লিখি, তারপর বার্তাটি পাঠান (আইডি এবং দৈর্ঘ্যের পরামিতিগুলি কোডে আগে সংজ্ঞায়িত করা হয়েছে)।

ধাপ 3: সংযোগকারী নোড

সংযোগকারী নোড
সংযোগকারী নোড

একাধিক CAN নোড সংযুক্ত করার সময়, তারের দৈর্ঘ্যের দিকে সতর্ক মনোযোগ দেওয়া উচিত। দুটি দূরতম নোড একে অপরের থেকে 40 মিটার পর্যন্ত দূরে থাকতে পারে। বাসের সাথে যুক্ত মাঝারি নোডগুলি মূল বাস লাইনের 50cm এর মধ্যে হওয়া উচিত।

CAN সংযোগগুলি Dsub9 সংযোগকারীকে পিন 2 এ CANL লাইন এবং Pin7 এ CANH লাইনের সাথে শিল্পের মান অনুসরণ করে। CANGND লাইন পিন 3 এ যেতে পারে।

ধাপ 4: পিসিবি তৈরি করুন

পিসিবি তৈরি করুন
পিসিবি তৈরি করুন

পিসিবিতে CAN সিগন্যাল রাউটিং করার সময়, মনে রাখবেন CAN একটি ডিফারেনশিয়াল সিগন্যাল, এবং এইভাবে CANH এবং CANL এর জন্য রাউটিং নির্দেশিকা সাবধানে অনুসরণ করা উচিত।

ধাপ 5: বোর্ড প্রসারিত করা

বোর্ড সম্প্রসারণ
বোর্ড সম্প্রসারণ

আরও কিছু নোড একসাথে নিক্ষেপ করুন, কিছু ইনপুট/আউটপুট যোগ করুন এবং তাদের সমস্ত CANH এবং CANL পিন সংযুক্ত করুন। লক্ষ্য করুন যে প্রতিটি STM32 বা অন্যান্য মাইক্রোকন্ট্রোলারের নিজস্ব MCP2551 চিপ প্রয়োজন; সেগুলো ভাগ করা যাবে না।

এই বলে, আপনার PCB গুলি এখানে দেখানোর চেয়ে ছোট রাখার চেষ্টা করুন

ধাপ 6: JLCPCB থেকে আপনার PCBs অর্ডার করুন

JLCPCB থেকে আপনার PCBs অর্ডার করুন
JLCPCB থেকে আপনার PCBs অর্ডার করুন

JLCPCB খুব যুক্তিসঙ্গত মূল্যে দ্রুত, উচ্চমানের পরিষেবা প্রদান করে। মাত্র ৫ ডলারে ৫ টি বোর্ড, টন কাস্টমাইজেশনের যেকোনো রঙ পান! এবং যদি এটি আপনার প্রথম অর্ডার হয়, একই মূল্যে 10 টি বোর্ড পান!

শুধু আপনার gerbers আপলোড করুন এবং একটি তাত্ক্ষণিক উদ্ধৃতি পান! আপনার অর্ডার জমা দিন এবং আপনার বোর্ডগুলি এক ঘন্টার মধ্যে উৎপাদনের জন্য পর্যালোচনা করা হবে। একবার আপনি অর্থ প্রদান করলে, আপনি আপনার উচ্চ মানের বোর্ডগুলি তিন দিনের মধ্যে আশা করতে পারেন!

এখানে দেখুন

ধাপ 7: আপনার বোর্ড পান

আপনার বোর্ড পান!
আপনার বোর্ড পান!

এই প্রকল্পের পৃষ্ঠপোষকতার জন্য জেএলসিপিসিবি -কে চিত্কার করে। JLCPCB (ShenzhenJLC Electronics Co., Ltd.), চীনের বৃহত্তম PCB প্রোটোটাইপ এন্টারপ্রাইজ এবং একটি দ্রুত প্রযুক্তির প্রস্তুতকারক যা দ্রুত PCB প্রোটোটাইপিং এবং ছোট ব্যাচের PCB উৎপাদনে বিশেষজ্ঞ। তারা আমাদের সৌরশক্তি চালিত রেস গাড়ির জন্য আমাদের নতুন PCBs দিয়ে UBC সৌর সরবরাহ করার জন্য যথেষ্ট দয়ালু ছিল। আমরা শুক্রবার আমাদের অর্ডার দিয়েছি এবং বুধবার বোর্ড পেয়েছি!

প্রস্তাবিত: