فهرست مطالب:

رابط STM32 CAN: 7 مرحله
رابط STM32 CAN: 7 مرحله

تصویری: رابط STM32 CAN: 7 مرحله

تصویری: رابط STM32 CAN: 7 مرحله
تصویری: STM32 CAN BUS COMMUNICATION PART 1 PROTOCAL USING STM32CUBEMX || HAL|| KEIL uVISION. 2024, جولای
Anonim
رابط STM32 CAN
رابط STM32 CAN

گذرگاه Controller Area Network یا گذرگاه CAN به دلیل قابلیت های سرعت بالا ، قابلیت اطمینان برد طولانی و ایمنی سر و صدا ، یک پروتکل ارتباطی بسیار مثر است. به همین دلایل ، ارتباطات CAN به استاندارد در فناوری های خودرو و محیط های با سر و صدای زیاد تبدیل شده است. به دستگاه های موجود در گذرگاه CAN گره گفته می شود. همه گره های گذرگاه CAN به طور موازی به هم متصل می شوند ، به این معنی که هر گره به تمام گره های دیگر شبکه متصل است. بسته به میزان انتقال پیام ، یک گذرگاه واحد CAN می تواند تا 115 گره را همزمان داشته باشد ، اما برای اکثر برنامه های کاربردی ، داشتن حداکثر 32 دستگاه توصیه می شود. همچنین توصیه می شود که طول بین اولین و آخرین گره را کمتر از 40 متر از یکدیگر حفظ کنید.

این آموزش گام به گام نحوه تنظیم یک گره CAN با استفاده از میکروکنترلر STM32 ، شامل مدار و کد C ساده برای خواندن و نوشتن در گذرگاه CAN را نشان می دهد.

تدارکات

برای هر گره CAN:

  • 1x برد شکست STM32 (Nucleo ، Blue Pill ، دیگران)
  • 1x IC فرستنده گیرنده MCP2551 CAN
  • 1x 0.1μF خازن
  • 1x مقاومت 120Ω
  • مقاومت 1x 1kΩ
  • 1+ ورودی قابل خواندن (دکمه ، سوئیچ ، پتانسیومتر و غیره) یا خروجی (LED ، MOSFET و غیره)
  • 1x اتصال Dsub9

مرحله 1: مدار فرستنده گیرنده

مدار فرستنده گیرنده
مدار فرستنده گیرنده

برای ارتباط با گذرگاه CAN ، از IC فرستنده گیرنده MCP2551 CAN استفاده می کنیم. IC به عنوان یک جفت فرستنده/گیرنده واسطه عمل می کند تا STM32 را به گذرگاه CAN متصل کند. مدار برای راه اندازی این IC بسیار ساده است ، اما به چند نکته توجه کنید:

  • CAN_RX (پین 4) و CAN_TX (پین 1) در تراشه MCP2551 فقط می توانند به پین های خاصی در STM32 بروند.

    • در STM32F1 Nucleo ، خط RX را به پین PB8 و خط TX را به پین PB9 وصل کنید.
    • در قرص آبی STM32F1 ، RX را به پین PA11 و TX را به پین PA12 وصل کنید.
    • توجه داشته باشید که این تخصیص پین جایگزین دارد. برای تعیین اینکه کدام پین ها قادر به CAN_RD و CAN_TD هستند به کتابچه های راهنمای میکروکنترلر مراجعه کنید.
    • در صورت استفاده از آردوینو یا برد بدون اتصال CAN تعبیه شده ، تراشه IC MCP2515 برای تبدیل سایر پروتکل های پیام به CAN مورد نیاز است.
  • پین CANL باید به دیگر پایه های CANL گره های گذرگاه دیگر متصل شود. در مورد پین های CANH نیز همین امر صادق است.
  • مقاومت 120Ω در پین CANH و CANL تنها در صورتی مورد نیاز است که گره یک گره پایانی باشد. این بدان معنی است که در انتهای سیم کشی اتصال موازی قرار دارد. به عبارت دیگر ، گذرگاه CAN باید فقط دو مقاومت 120Ω در خود داشته باشد و باید تا حد امکان از یکدیگر فاصله داشته باشند.
  • در نهایت ، مقاومت 1kΩ در RS (پین 8) را می توان با یک مقاومت 10kΩ مبادله کرد تا زمان افزایش/سقوط بیت های پیام CAN را کنترل کند. برای اطلاعات بیشتر به برگه اطلاعات تراشه MCP2551 مراجعه کنید.

مرحله 2: خواندن و نوشتن در گذرگاه CAN

خواندن و نوشتن در اتوبوس CAN
خواندن و نوشتن در اتوبوس CAN

اکنون که مدار فرستنده به STM32 متصل شده است ، می توانیم نوشتن پیام ها را در گذرگاه CAN شروع کنیم. این راهنمای آموزنده عمیقاً وارد کد STM32 نمی شود. با این حال ، مطمئن شوید که کد ما را برای نمونه در اینجا بررسی کنید. استفاده از STM32 به عنوان یک گره CAN به یک فایل سربرگ CAN نیاز دارد. ما خودمان را نوشتیم ، که در github ما در اینجا یافت می شود. در اینجا ، ما یک مرور کوتاه از روند خواندن/نوشتن ارائه می دهیم.

برای خواندن از گذرگاه CAN ، ابتدا باید شناسه پیام CAN را بدانیم. هر پیام باید دارای یک شناسه منحصر به فرد باشد و شناسه های پایین تر دارای اولویت بیشتری باشند. قطعه کد نشان داده شده در اینجا منتظر پیام CAN با شناسه 0x622 است. در سیستم ما ، اگر اولین بیت 6 بایت بالا باشد ، می خواهیم پین A10 را بالا تنظیم کنیم.

هنگام نوشتن پیام CAN ، باید به خاطر داشته باشیم که پیام های CAN چند بایت هستند. هر پیام نوشته شده باید دارای شناسه و طول باشد. در قطعه دوم کد نشان داده شده ، ما داده ها را برای هر بایت می نویسیم ، سپس پیام را ارسال می کنیم (پارامترهای شناسه و طول در کد قبلاً تعریف شده است).

مرحله 3: اتصال گره ها

اتصال گره ها
اتصال گره ها

هنگام اتصال چندین گره CAN ، باید به طول کابلها توجه زیادی شود. دو دورترین گره می توانند تا 40 متر از یکدیگر فاصله داشته باشند. گره های میانی متصل به گذرگاه باید در فاصله 50 سانتی متری خطوط اصلی اتوبوس قرار داشته باشند.

اتصالات CAN از استاندارد صنعت استفاده از اتصال Dsub9 با خط CANL در پین 2 و خط CANH در پین 7 پیروی می کنند. گزینه CANGND line می تواند روی پین 3 حرکت کند.

مرحله 4: PCB را بسازید

PCB را بسازید
PCB را بسازید

هنگام مسیریابی سیگنال های CAN بر روی PCB ، به یاد داشته باشید که CAN یک سیگنال دیفرانسیل است ، بنابراین ، دستورالعمل های مسیریابی برای CANH و CANL باید با دقت دنبال شود.

مرحله 5: گسترش هیئت مدیره

گسترش هیئت مدیره
گسترش هیئت مدیره

چند گره دیگر را کنار هم قرار دهید ، مقداری ورودی/خروجی اضافه کنید و همه پین های CANH و CANL آنها را متصل کنید. توجه داشته باشید که هر STM32 یا میکروکنترلر دیگر به تراشه MCP2551 مخصوص خود نیاز دارد. آنها نمی توانند به اشتراک گذاشته شوند

با این اوصاف ، سعی کنید PCB های خود را کوچکتر از آنچه در اینجا نشان داده شده ، نگه دارید

مرحله 6: PCB های خود را از JLCPCB سفارش دهید

PCB های خود را از JLCPCB سفارش دهید
PCB های خود را از JLCPCB سفارش دهید

JLCPCB خدمات سریع و با کیفیت بالا را با قیمت های بسیار مناسب ارائه می دهد. 5 تخته ، هر رنگی با تنوع سفارشی ، فقط با 2 دلار دریافت کنید! و اگر اولین سفارش شماست ، 10 تخته با همان قیمت تهیه کنید!

فقط gerbers خود را بارگذاری کنید و یک نقل قول فوری دریافت کنید! سفارش خود را ارسال کنید و تابلوهای شما برای تولید در عرض یک ساعت بررسی می شوند. پس از پرداخت ، می توانید تخته های با کیفیت خود را در عرض سه روز انتظار داشته باشید!

اینجا را بررسی کنید

مرحله 7: تخته های خود را دریافت کنید

تخته های خود را دریافت کنید!
تخته های خود را دریافت کنید!

فریاد بزرگی به JLCPCB برای حمایت از این پروژه. JLCPCB (ShenzhenJLC Electronics Co.، Ltd.) ، بزرگترین شرکت نمونه PCB در چین و یک تولید کننده با تکنولوژی بالا است که متخصص در نمونه سازی سریع PCB و تولید PCB دسته ای است. آنها به اندازه کافی مهربان بودند تا PCB های جدید ما را برای ماشین مسابقه ای خورشیدی خود به UBC Solar ارائه دهند. ما سفارش خود را در روز جمعه قرار دادیم و چهارشنبه تخته ها را دریافت کردیم!

توصیه شده: