ARM, STM32, توصیه شده, معرفی, مقاله

آشنایی و راه‌اندازی پروتکل CAN با استفاده از STM32

Sisoog Can Protocol

برای برقراری ارتباط پروتکل‌های زیادی وجود دارند؛ پروتکل‌هایی که برای ارتباط نزدیک طراحی و پایه‌ریزی شده‌اند، پروتکل‌هایی که برای ارتباط راه دور (پروتکل CAN) مورد‌استفاده قرار می‌گیرند و حتی پروتکل‌هایی که مخصوص روی برد هستند.

یکی از مهم‌ترین نیاز‌های هر ارتباطی، اطمینان از صحت داده‌های دریافتی است. قبلاً در خصوص خطایابی و ترمیم داده با استفاده از همینگ کد توضیح داده‌ایم. چالش بعدی سرعت انتقال داده است. با توجه به نرم‌افزاری بودن سیستم خطایابی در بیشتر پروتکل‌های ارتباطی، سرعت، رابطه‌ای مستقیم با فرکانس پردازنده خواهد داشت. حال فرض کنید پروتکلی موجود باشد که خطایابی را به‌صورت سخت‌افزاری انجام دهد و نیازی به درگیری پردازنده نباشد. با این تکنیک می‌توان به سرعت‌های بالاتری دست پیدا کرد. پروتکل‌هایی مثل شبکه و یا CAN دارای چنین قابلیت‌هایی هستند.

چیزی که استفاده از این پروتکل‌ها را محدود کرده است، در وهله‌ی اول، پیچیدگی‌های سخت‌افزاری و نیاز به قطعات جانبی مورد‌نیاز و بعد‌از‌آن پیچیدگی ظاهری پروتکل است.

در این مقاله قصد داریم به بررسی پروتکل ارتباطی CAN بپردازیم و مختصری از نحوه‌ی کانفیگ اولیه آن را به زبان ساده بیان کنیم. با سیسوگ همراه باشید.

پروتکل CAN چیست و از کجا آمده است؟

شاید باور این‌که، این پروتکل ابتدا برای خودرو پایه‌ریزی شد، مقداری سخت باشد. خب البته باید دید که چه خودروهایی از این پروتکل استفاده می‌کرده‌اند؛ قطعاً ماشین‌هایی با استاندارد‌های الکترونیکی بالا! نه خودروهایی مثل تولیدات داخلی!

در سال 1980 شرکت Bosch با هدف کاهش سیم‌کشی‌های انبوه موجود در خودروها، دست به ابداع پروتکل محبوب CAN زد.

محبوبیت و مقبولیت پروتکل ابداعی تا جایی پیش رفت که علاوه بر استفاده موفق از آن در صنعت خودرو، در دیگر صنایع نیز مورد‌استفاده قرار گرفت. پروتکل CAN علاوه بر تأمین ایمنی در سطح شبکه، نیاز به سخت‌افزار پیچیده‌ای برای برقراری ارتباط ندارد و از روش آشنای دو رشته سیم به هم تابیده و خطوط دیفرانسیلی استفاده می‌کند.

امنیت در پروتکل CAN تا اندازه‌ای است که علاوه بر استفاده در خودرو، در هواپیماها نیز مورد‌استفاده قرار می‌گیرد و سنسور‌های سیستم ناوبری هواپیما برای برقراری ارتباط با کامپیوتر مرکزی از این پروتکل استفاده می‌کنند.

چرا باید از CAN استفاده کنیم؟

CAN BUS

دلایل زیادی وجود دارد که استفاده از پروتکل CAN رو توجیه می‌کند، ولی مهم‌ترین دلایلی که در پروژه‌هایی با سطح صنعتی، باید از CAN استفاده کنیم به شرح زیر هستند:

  • اگر در شبکه CAN یکی از Node ها کرش یا هنگ کند، به‌صورت اتوماتیک توسط لایه‌ی فیزیکی از شبکه خارج می‌شود و شبکه به کار خود ادامه می‌دهد.
  • عدم نیاز به عناصر خارجی زیاد و سادگی مدار راه‌انداز: تنها به یک واسط لایه‌ی فیزیکی نیاز دارد که معمولاً یک آی سی 8 پایه است.
  • پروتکل CAN با توجه به لایه‌ی فیزیکی مورد‌استفاده (خطوط داده دیفرانسیلی) قادر است در محیط‌هایی با نویز زیاد مثل محیط‌های صنعتی کار کنند.
  • پروتکل CAN از لایه‌بندی مدل استاندارد OSI استفاده می‌کند.
  • تأمین امنیت داده‌های ارسالی با استفاده از CRC در لایه‌ی سخت‌افزاری
  • اولویت‌بندی پیام‌های ارسالی به‌نحوی که داده‌هایی با اولویت بالاتر زودتر ارسال می‌شوند.
  • شبکه‌ی CAN یک شبکه Real Time است؛ یعنی ارسال و دریافت داده‌ها را در بازه‌های زمانی مشخص، گارانتی می‌کند.

و البته موارد دیگر که شمردن آن‌ها در این مقاله ممکن نیست. برای روشن شدن اهمیت استفاده از پروتکل CAN، دو مورد از قابلیت‌های ذاتی این پروتکل را بیشتر توضیح می‌دهیم:

مورد مهم اول، خارج شدن Node های مشکل‌دار از شبکه به‌صورت خودکار است.، فرض کنید ماشینی که از مدل شبکه CAN استفاده می‌کند، در اتوبان با سرعت بالایی در حال حرکت است. ماشین دیگری از مسیر خود خارج شده و با آن تصادف می‌کند. بر اثر ضربه‌ی وارده، سیستم قفل مرکزی آسیب می‌بیند. آسیب وارده باعث نمی‌شود که سیستم کیسه‌ی هوا نیز با اختلال مواجه شود و کار نکند؛ با فرض این‌که هر دو سیستم از باس مشترک CAN استفاده می‌کنند.

مورد دوم، اولویت‌بندی پیام و Real Time بودن شبکه است. همان تصادف را فرض کنید؛ سیستم موتور قصد دارد پیامی را به سیستم سوخت‌رسانی ارسال کند تا باعث قطع سوخت‌رسانی و جلوگیری از آتش‌سوزی شود. از طرفی سنسور ضربه قصد دارد به سیستم کیسه هوا وقوع تصادف را گزارش دهد. Real Time بودن شبکه CAN کمک می‌کند که پیام‌های مورد‌نظر در زمان‌های تعیین‌شده به مقصد برسند و از وقوع فاجعه جلوگیری کنند.

در ضمن پیام وقوع تصادف، مهم‌تر از دستور خاموش شدن موتور است. پروتکل CAN این قابلیت را دارد که پیام وقوع تصادف را زودتر منتشر کند تا سیستم‌های مربوطه اقدامات لازم را انجام دهند.

همین مثال و قابلیت‌ها را می‌توان به‌راحتی برای کنترل یک کارخانه یا خط تولید گسترش داد. وجود چنین قابلیت‌هایی باعث می‌شود که پروتکل CAN امروزه بخش جدایی‌ناپذیر صنعت باشد. شاید تنها مشکل این پروتکل حجم محدود اطلاعات باشد.

فریم‌های ارسالی در پروتکل CAN به چه صورت هستند‌؟

برای این‌که شبکه CAN قادر باشد که به‌صورت Real Time عمل کند و داده‌ها در زمان مناسبی ارسال شوند، محدودیت‌هایی جهت ارسال بسته‌های (فریم‌های) داده‌ای وجود دارد؛ به این صورت که هر بسته داده‌ای نمی‌تواند بیشتر از 8 بایت اطلاعات را حمل کند.

قبل از این‌که به تشریح فریم‌های داده‌ای بپردازیم, لازم به ذکر است که دو ورژن مختلف از استاندارد CAN امروزه رایج هستند:

  •  استاندارد CAN 2.0A
  • استاندارد CAN 2.0B

تفاوت این دو استاندارد در تعداد بیت‌های آدرس‌دهی (identifier) است؛ به‌صورتی که در استاندارد CAN 2.0A تعداد بیت‌های مجاز برای آدرس 11 بیت هستند و در استاندارد CAN 2.0B تعداد بیت مجاز به 29 بیت گسترش یافته‌اند. خوشبختانه تغییرات این دو استاندارد به نحوی بوده که هر دو استاندارد قادرند به تبادل دیتا بر روی یک خط داده مشغول باشند، بدون این‌که اختلالی به وجود آید.

پروتکل CAN

همان‌طور که در تصویر فوق مشاهده می‌کنید، هر بسته‌ی داده‌ای دارای یک آدرس منحصر‌به‌فرد است که بسته به نوع استاندارد CAN مورد‌استفاده، می‌تواند 11 یا 29 بیت طول داشته باشد. تعداد داده‌های موجود در هر فریم توسط DLC مشخص می‌شود که در بیشترین حالت می‌تواند 8 بایت داده باشد. بخش بعد CRC است که توسط سخت‌افزار تولید و بررسی می‌شود. در صورت صحت آدرس و CRC، گیرنده با ارسال ACK فرستنده را از دریافت اطلاعات آگاه می‌کند.

چطور اولویت یک پیام مشخص می‌شود؟

اما چطور می‌شود که پیام‌ها را اولویت‌بندی کرد؟ چطور می‌شود که اولویت یک پیام از دیگری بالاتر باشد؟ این اتفاق در لایه‌ی فیزیکی رقم می‌خورد. به این صورت که فریم‌های داده‌ای با آدرس (identifier) کوچک‌تر، دارای اولویت بالاتری برای ارسال هستند. بالاترین اولویت برای ارسال، مربوط به identifier با ارزش 0 است و پایین‌ترین اولویت هم مربوط به identifier با 2047 در استاندارد Can 2.0A است.

Arbitration in CAN networks

برای روشن شدن مسئله، به عکس فوق دقت کنید. فرض کنید سه Node قصد دارند به‌صورت همزمان داده ارسال کنند. لایه‌ی فیزیکی اگر بیت مورد‌نظر را بر روی خط مشاهده نکند، باس را آزاد می‌کند؛ به این شکل که مثلاً وقتی Node 2 قصد ارسال بیت 5 ام را دارد، مشاهده می‌کند که بر‌خلاف مقدار بیت 5 ام که باید مقدار باس 1 باشد، صفر شده است و این بدان معناست که فرستنده‌ای با اولویت بالاتر، در حال ارسال داده است. پس دسترسی را واگذار می‌کند. فرستنده Node 1 همین وضعیت را در ارسال بیت دوم مشاهده می‌کند و این‌گونه می‌شود که Node 3 باس را در اختیار می‌گیرد و به ارسال داده می‌پردازد.

سیم‌کشی شبکه‌ی CAN به چه صورت است؟

همان‌طور که قبلا توضیح دادیم، پروتکل CAN از باس دیفرانسیلی استفاده می‌کند؛ مثل باس RS-485. به همین دلیل نمی‌توان و نباید از مدل ستاره‌ای برای این شبکه استفاده کرد (معمولاً افراد به این مسئله‌ی مهم توجه نمی‌کنند و همین امر باعث می‌شود که عملکرد سیستم با اختلال همراه باشد.)، مگر در حالت خاص و با در نظر گرفتن شرایط و محاسبه‌ی امپدانس مورد‌نیاز به شکلی که امپدانس خط بر روی 60 اهم باشد.

در حالت خطی که در تصویر فوق مشاهده می‌کنید، باید یک مقاومت به ابتدا و یکی هم به انتها اضافه شود. مقدار توصیه‌شده برای این مقاومت‌ها مقدار 120 اهم است.

Can Signalling

همان‌طور که در تصویر بالا می‌بینید، باس دیفرانسیلی مورد‌استفاده در CAN طبق استاندارد ISO 11898-2، باید با رفرنس 2.5 ولت باشد. مقدار رفرنس در آی سی لایه‌ی فیزیکی قابل‌تعیین است که به‌صورت پیش‌فرض مقدار 2.5 برای آن در نظر گرفته شده است.

تعیین سرعت مورد‌استفاده یکی از پارامتر‌های مهم در شبکه CAN است. با توجه به طول باس، باید از سرعت مناسب استفاده کرد. در بیشترین حالت، طبق استاندارد می‌توان تا 500 متر باس CAN طول داشته باشد و بیشترین سرعت قابل پشتیبانی در ISO 11898-2، یک مگابیت بر ثانیه است. اما محدودیت‌هایی وجود دارد که باید آن‌ها را رعایت کرد؛ مثلاً نمی‌توان انتظار داشت در خطوط دیتا با طول 200 متر بتوان داده‌ها را با سرعت 1 مگابیت بر ثانیه منتقل کرد.

برای سهولت ما چهار مقدار از تناسب طول خطوط داده و بیت ریت را آماده کرده‌ایم که به شرح زیر هستند:

  1. سرعت 1 مگابیت بر ثانیه برای خطوط داده با حداکثر طول 40 متر
  2. سرعت 500 کیلوبیت بر ثانیه برای خطوط داده با حداکثر طول 100 متر
  3. سرعت 250 کیلوبیت بر ثانیه برای خطوط داده با حداکثر طول 200 متر
  4. سرعت 125 کیلوبیت بر ثانیه برای خطوط داده با حداکثر طول 500 متر

سخت‌افزار لایه‌ی فیزیکی

can physical layer

معمولاً به دلیل آسیب‌پذیری لایه‌ی فیزیکی با توجه به نوع عملکرد آن، این قسمت را در چیپ میکروکنترلر قرار نمی‌دهند تا در صورت بروز حادثه در باس، که موجب سوختن این آی سی واسط می‌شود، به میکروکترلر یا کنترلر CAN صدمه وارد نشود.

آی سی های مختلفی توسط شرکت‌های مختلف برای واسط شبکه‌ی CAN ساخته شده‌اند ولی در دسترس‌ترین و مناسب‌ترین آن‌ها، آی سی MCP2551 ساخت شرکت میکروچیپ است.

در نگاه اول، افرادی که قصد راه‌اندازی باس CAN توسط میکرو‌کنترلر‌های ARM را دارند، به دلیل وجود تغذیه‌ی 5 ولت این آی سی، از آن استفاده نمی‌کنند. معادل این آی سی با تغذیه‌ی 3.3 ولت، هم کمیاب است و هم قیمتی تا 4 برابر این این آی سی دارد. در‌صورتی‌که به‌راحتی و بدون هیچ مدار اضافه‌ای می‌توان این آی سی را به میکروکنترلر ARM متصل کرد (در‌صورتی‌که میکروکنترلر از 3.3 استفاده کند). فقط دقت داشته باشید که پایه‌ی 8 را حتماً به زمین متصل کنید. اگر بتوانید یک خازن 100 نانو فاراد هم بر روی پایه 5 و زمین قرار دهید که بهتر خواهد بود. پایه‌ی 5 در واقع همان ولتاژ رفرنس 2.5 ولت است که برای تشخیص سطح منطقی باس به کار می‌رود.

نرم‌افزار و راه‌اندازی اولیه

معمولاً اکثر میکروکنترلرهای آرم به‌صورت سخت‌افزاری از CAN پشتیبانی می‌کنند. اگر هم قصد دارید از CAN استفاده کنید و سخت‌افزار آن در میکروکنترلر مورد‌نظر شما وجود ندارد، به‌راحتی می‌توانید از آی سی MCP2515 استفاده کنید. این آی سی یک مبدل SPI به CAN است. ما در این مقاله از میکروکنترلر STM32F103 استفاده می‌کنیم که واسط CAN را به‌صورت سخت‌افزاری درون خود میکروکنترلر دارد.

همان‌طور که مثال فوق مشاهده می‌کنید، می‌توان تنظیمات اولیه مربوط به CANx (بسته به نوع نیاز می‌تواند CAN1 یا CAN2 باشد) را به‌راحتی انجام داد. بعد از انجام تنظیمات اولیه، به‌سادگی و با نوشتن خطوط زیر می‌توان داده‌های مورد‌نظر را از بستر CAN منتقل کرد.

همان‌طور که مشاهده می‌کنید، ما یک فریم داده که شامل 1 بایت داده است را با مشخصه‌ی 0x321 و با فرمت استاندارد (11 بیت) در شبکه CAN منتشر می‌کنیم. اگر گیرنده وجود نداشته باشد یا مستر ACK را دریافت نکند، به‌صورت سخت‌افزاری ارسال تا تعداد دفعات مشخصی تکرار می‌شود.

در آینده

تا اینجا با کلیت پروتکل CAN آشنا شدیم و چند خط از نحوه‌ی کانفیگ نرم‌افزاری آن را برای میکروکنترلر‌های STM32F103 قرار دادیم. برای یافتن مثال‌های بیشتر می‌توانید به مثال‌های منتشر‌شده از سوی شرکت ST مراجعه کنید. اما چیزی که متأسفانه به‌درستی به آن پرداخته نشده، نحوه‌ی کانفیگ نرخ ارسال داده است.

در این مثال و دیگر مثال‌ها و برنامه‌ها، نرخ ارسال اطلاعات به‌صورت ثابت در برنامه قرار گرفته است و در مورد چگونگی محاسبه‌ی آن هیچ توضیحی ارائه نشده است. در مقاله‌ی آینده به توضیح این مهم خواهیم پرداخت و خواهیم گفت که چطور می‌شود با استفاده از پارامتر‌های مورد‌نظر، مقادیر مناسبی برای ایجاد نرخ ارسال اطلاعات انتخاب کنید.

 

نوشته های مشابه

34 دیدگاه در “آشنایی و راه‌اندازی پروتکل CAN با استفاده از STM32

  1. فرید گفت:

    سلام
    اگر به جای میکروی STM از یه AVR معمولی استفاده کنیم و با واحد ارتباط یوزارتش به این ای سی های MCP2551 دیتا بدیم و بگیریم مثلا با بادریت 9600 ایا شدنیه؟؟
    من یه جایی حوندم که شدنیه وحتی بهتر از MAX485 هست و دو طرفه هم هست.ای سی مکس نمونه تقلبیش زیاده و من میخوام برای ارتباط فواصل دور از این ای سی استفاده کنم.نظر شما چیه؟

    1. زئوس Zeus زئوس Zeus گفت:

      در واقع پروتکل CAN یه پروتکل پیچیده است که مثل شبکه نیاز به لایه سخت افزاری داره ؛ پروتکل CAN خیلی متفاوت تر از پروتکل Serial هست و سخت افزار سریال قابل استفاده نیست
      اگر میخواید از CAN روی پردازنده AVR استفاده کنید بهتره به سراغ خانواده ای هایی برید که این لایه سخت افزاری رو داشته باشند مثل سری AT90CAN128 یا از آیسی واسط mcp2517fd استفاده کنید.
      در مورد کاربردی که شما مد نظرتون هست ، حقیقت اینه که دلیلی برای رد یا تاییدش ندارم و تا تست نکنید نمیشه قطعی گفت ؛ اگر تست کردید جوابش رو هم با ما در اشتراک بگذارید.

      1. فرید گفت:

        متاسفانه این ای سی واسط تو ایران نایابه
        برای ارتباط در فواصل دور به صورت شبکه دچار مشکل شدم چون از طرفی هم ای سی های موجود تقلبی هستن هم دیود tvs sm712 گیر نمیاد که بزارم رو لاین a , b ای سی مثلا max485 و… که ای سی زود نسوزه.شما tvs مشابه برای اینکار سراغ دارین؟
        باشه خبرش رو میدم به شما ای سی کن رو سفارش دادم بیاد.

        1. زئوس Zeus زئوس Zeus گفت:

          ببینید حتما نیازی نیست TVS باشه ؛ میتونید از دیود زنر یا حتی دیود عادی به عنوان برش دهنده ولتاژ استفاده کنید
          بله متاسفانه قطعات نامرغوب به شدت زیاد شده
          از مدار پیشنهادی خودش توی دیتاشیت استفاده کنید ، تا حدود زیادی مشکلات رو حل میکنه

  2. فتحی گفت:

    مطالب سایتتون مواقعا آموزنده است.

  3. محمد م گفت:

    سلام
    من با دو تا میکرو stm32f103c8t6 و ماژول مبدل tja1050، که لینک هر دو در ادامه هست، میخوام ارسال و دریافت اطلاعات داشته باشم اما به مشکل خوردم.
    https://shop.aftabrayaneh.com/Tja1050_CAN_BUS_TTL__AFTAB.html?search=tja
    https://shop.aftabrayaneh.com/Stm32f103c8t6_ARM_Board__AFTAB.html?search=stm32f103c8

    نحوه اتصال خیلی ساده هست…tx و rx ماژول های tja به tx و rx میکروها و can h و can L ماژول ها به هم دیگه… ماژول ها رو هم با 5 ولت تغذیه کردم

    برنامه رو با cube و کتابخونه HAL نوشتم که به شکل زیر هست.
    برنامه ی ارسال کننده به این شکل هست.
    uint32_t TX_ID = 0x4840040;
    hcan.pTxMsg->Data[0] = ‘a’;
    hcan.pTxMsg->Data[1] = ‘b’;
    hcan.pTxMsg->Data[2] = ‘c’;

    hcan.pTxMsg->IDE = CAN_ID_EXT;
    hcan.pTxMsg->ExtId = TX_ID;

    hcan.pTxMsg->DLC = 3;

    HAL_CAN_Transmit(&hcan, 1000);
    if(HAL_CAN_Transmit(&hcan, 1000) == HAL_OK)
    HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);

    و برنامه دریافت کننده به این شکل:

    CAN_FilterConfTypeDef a;
    a.FilterActivation = DISABLE;
    HAL_CAN_ConfigFilter(&hcan, &a);

    if(HAL_CAN_Receive(&hcan,CAN_FIFO0, 1000) == HAL_OK)
    HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);

    با این برنامه ها در اصل باید با هر دریافت و ارسال یک بار led رویبرد تغییر وضعیت بده. اما همیچن اتفاقی نمیوفته. در ضمن مطمئن هستم که خروجی توابع ارسال و دریافت HAL_TIMEOUT هست نه چیز دیگه ای(چون تست کردم). الان چطوری میتونم این مشکل رو حل کنم؟ مشکل از برنامه هست یا سخت افزار؟

    1. زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز،
      اول باید از صحت آیسی های مبدل اطمینان پیدا کنید ، برای این کار ولتاژ روی پایه 5 رو اندازه گیری کنید ، باید حدود 2.5 ولت باشه ، برای هر دو آیسی این کار رو انجام بدید ، اگر اینطور بود که یعنی مشکلی نداره !
      بعد از اون سراغ اتصالات برید ، اتصال باید به صورت یک به یک باشه ، یعنی RX آیسی مبدل به RX میکرو وصل میشه و TX آیسی مبدل به TX میکروکنترلر وصل میشه
      نکته خیلی مهم که باید بهش توجه داشته باشید به دلیل استفاده از RAM مشترک برای CAN , USB در آیسی های STM32F103 دقت داشته باشید که پریفال USB حتما خاموش شده باشه و روشن نباشه ، خوب نکته مهم بعدی اینه که چون برد بلوپیل قسمت USB رو وصل کرده یعنی مقاومت گذاشته رو خط ها ، سعی کنید از پایه های دیفالت CAN که مشترک با USB هم هست استفاده نکنید. (یعنی پایه های PA11 و PA12) و به جای اون از پایه های ری مپ شده استفاده کنید که آزاد باشند یعنی پایه های PB8 و PB9.
      نکته دیگه ای که باید بهش توجه داشته باشید ، اینه که وقتی فقط یک دستگاه رو باس کن وجود داره ، ارسال به صورت سخت افزاری انجام نمیشه و خطا میده ، پس باید هر دو دستگاه روشن باشن ، برای سهولت کار ، و اطمینان از برنامه ، راهی وجود داره
      و اون این که CAN رو در حالت LoopBack تنظیم کنید (از توی نرم افزار Cubemx امکانش هست گزینه Operating Mode رو ببینید) در این حالت هرچی ارسال کنید به صورت داخلی دایرکت میشه و خودتون دریافتش میکنید و کاری به رابط سخت افزاری نداره اینطوری میتونید از صحت برنامه مطمئن بشید.
      اگر سوالی بود در خدمت هستیم

      1. محمد م گفت:

        ممنون
        با این توضیحات و استفاده از مد loopback تونستم حداقل ارسال رو درست کنم. با این شرایط مونده دریافت. فکر میکنم مشکل من بیشتر روی فیلتر هست…حالا باز هم نتیجه گرفتم سعی میکنم اینجا توضیح بدم روش حل مشکل رو.

        1. زئوس Zeus زئوس Zeus گفت:

          بسیار عالی ، با استفاده از همون loopback میتونید فرایند دریافت رو هم اوکی کنید .
          منتظر توضیحاتتون هستیم 🙂

  4. محمد گفت:

    درباره دریافت اطلاعات توضیحی ندادید. چطوری میشه اطلاعات مربوط به آی دی های مختلف رو دریافت کرد؟؟ یا این که تفاوت مستر و اسلیو در شبکه کن چی هست؟

    1. زئوس Zeus زئوس Zeus گفت:

      سعی میکنیم در مقاله ای دیگر به جزییات بیشتر پیردازیم
      تا اونجا که اطلاع دارم ، مستر و اسلیو توی شبکه Can وجود نداره ، هر دستگاهی میتونه هم زمان هم مستر و هم اسلیو باشه

      1. محمد گفت:

        آخه فعال کردنش توی کیوب حالت مستر و اسلیو داره…
        امیدوارم زودتر حاظر بشه و استفاده کنیم از آموزشتون

        1. زئوس Zeus زئوس Zeus گفت:

          من الان توی نرم افزار کیوب چک کردم هم برای برای میکروی سری 103 و هم سری 407 ، حالت Slave برای can نداره !
          کیوب من ورژنش 4.15.1 است.
          انشالله

  5. احسان گفت:

    بسیار عالی بود.

  6. جعفر گفت:

    مطالبتون به زیبایی نوشته شده. تبریک میگم

    1. زئوس Zeus زئوس Zeus گفت:

      خواهش میکنم دوست عزیز

  7. Sajjad Azadfalah سجاد گفت:

    سلامم خیلی خیلی عالی بود واقعا ممنون . اگر بخش دومش رو هم قرار بدین خیلی خوب میشه .

    1. زئوس Zeus زئوس Zeus گفت:

      خواهش میکنم دوست عزیز
      در دست بررسی است.

  8. dehghan گفت:

    سلام
    اگر در مورد پروتکل dmx512 و ارسال و دریافت دیتا با stm32 مثال بگذارید خیلی ممنون میشم.

    1. زئوس Zeus زئوس Zeus گفت:

      بررسی میکنیم دوست گرامی

  9. امین نجفی گفت:

    باسلام وتشکر. آموزشتون عالی بود ممنونم.اگه ممکنه درمورد ارتباط یو اس بی کامپیوتر با شبکه کن هم توضیح بدین

    1. زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      در برنامه کاری هست ، انشالله به این موارد نیز خواهیم پرداخت.

  10. میم جیم masoud گفت:

    سلام
    تشکر و خسته نباشید.

    1. زئوس Zeus زئوس Zeus گفت:

      خواهش میکنم دوست عزیز.

  11. سعید گفت:

    سایتتون عالیه..دو ساعته دارم فقط مطالبش رو میخونم…خسته نباشین

    1. Yalda Shirazi Yalda Shirazi گفت:

      خیلی ممنون دوست عزیز. خوشحالیم مطالب براتون مفید بوده.

  12. فرزانه گفت:

    سلام میشه لطفا پروژه های بیشتری با stm32cube و برنامه نویسی ان با keil5 بزارید
    واقعیتش من تازه دارم کارمیکنم بااین نرم افزار و میخوام یه سون سکمنت با hal اجرا کنم ولی متاسفانه جواب نگرفتم میخواستم ببینم میتونین راهنماییم کنین
    باتشکر از سایتتون

    1. زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      خواهش میکنم ، انشالله توی دستور کار هست که این کارو انجام بدیدم !
      برای راهنمایی می تونید از طریق ایمیل یا تلگرام سیسوگ در ارتباط باشید.

  13. سروش گفت:

    سلام
    ممنون از آموزشتون .فوق العاده بود .
    لطفا ادامه بدید.

    1. Sisoog Os Sisoog Os گفت:

      خواهش میکنم دوست عزیز

  14. محمد گفت:

    با سلام .ممنون از مطلب مفیدتون .
    لطفا در مورد طریقه راه اندازی پروتکل اترنت و ویژگی ها نیز مطلب بگذارید

    1. زئوس Zeus زئوس Zeus گفت:

      سلام و درود خدمت شما دوست عزیز ، خوشحالیم که مطالب سایت مورد توجه دوستان قرار گرفته است
      در مورد شبکه ، انشالله مطالب آموزیشی منتشر خواهیم کرد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *