NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3698 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 20 از 20

موضوع: شبکه کردن چندمیکرو

  1. #1
    عضو جدید
    تاریخ عضویت
    Feb 2014
    نوشته ها
    9
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض شبکه کردن چندمیکرو

    من میخاستم یک میکرو رو به 3میکرودیگه وصل کنم باusart.
    موقعی که ازیک میکرو به3میکرواطلاعات میفرستم درست کار میکنداما موقعی که از3میکروبه یک میکرو اطلاعات میفرستم میکرویک قاطی میکند ودرست کار نمیکنه
    چکاربایدکرد

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض

    نقل قول نوشته اصلی توسط ali137171 نمایش پست ها
    من میخاستم یک میکرو رو به 3میکرودیگه وصل کنم باusart.
    موقعی که ازیک میکرو به3میکرواطلاعات میفرستم درست کار میکنداما موقعی که از3میکروبه یک میکرو اطلاعات میفرستم میکرویک قاطی میکند ودرست کار نمیکنه
    چکاربایدکرد
    سلام
    برای شبکه کردن میکروکنترلر ها استفاده از usart زیاد مناسب نیست ، بهتره از پروتکل spi یا i2c در صورتی که میکروکنترلر ها بر روی یک برد هستند ، و از پروتکل های can یا rs485 در صورتی که میکروکنترلر ها در برد های مجزا هستند ، استفاده کنید .
    اصل شبکه بر مبنای درخواست / پاسخ استوار هست . در تمامی شبکه ها فقط یک مستر ( قطعه اصلی یا فرمان دهنده ) وجود داره و باقی قطعات ، اسلیو ( قطعه جانبی یا کناری یا فرمان گیرنده ) هستند .
    میکروکنترلر مستر یک اسلیو رو انتخاب میکنه و بهش دستور میده ، این دستور میتونه درخواست برای خوندن اطلاعات یا ارسال فرمامین و ... باشه ؛ میکروکنترلر اسلیو دستور رو دریافت میکنه و اجراش میکنه در صورت نیاز داده ای رو به میکروکنترلر مستر ارسال میکنه .
    به بیان ساده تر در یک شبکه ، در یک زمان واحد فقط دو قطعه با هم در حال تبادل هستند .
    دلیل هنگ کردن میکروکنترلر در پروژه شما، عدم رعایت تقدم در ارسال داده هست ، بهتره یه مقدار در مورد پروتکل های i2c یا spi تحقیق کنید .

  4. کاربران : 6 تشکر کرده اند از شما 1nafar برای ارسال این پست سودمند:


  5. #3
    عضو جدید
    تاریخ عضویت
    Feb 2014
    نوشته ها
    9
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    ببخشیددر مورد پروژه من حتما باید باusart باشه.اگه میشه بیشتر توضیح بدین در مورد اتصال اسلیوها به مستر

  6. #4
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

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

  7. تشکرها از این نوشته :


  8. #5
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

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

  9. کاربران : 3 تشکر کرده اند از شما sadeghbakhshi برای ارسال این پست سودمند:


  10. #6
    عضو جدید
    تاریخ عضویت
    Feb 2014
    نوشته ها
    9
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    خب چطوری باید این کار رو کرد.اگه میشه بایک برنامه بهم نشون بدین خیلی خیلی لازم دارم
    ترجیحاباcodvisionباشه
    ویرایش توسط ali137171 : 27-03-2014 در ساعت 17:00

  11. #7
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

    اقا مسعود یکجای کار میلنگه
    شما تمامی پایه های tx اسلیو رو به rx مستر متصل کردید
    در حالت عادی این پایه ها رو سطح بالا قرار دارند
    موقع ارسال بیت شروع فرستاده میشه و اطلاعات به مستر ارسال میشه
    حالا موقع ارسال داده میکروی مستر فقط کد 1111 1111 رو دریافت میکنه
    چون سیگنالها روی هم منطبق میشوند
    ولی توی پروتکل ههایی مثل i2c چون فقط یک خط دیتا داریم
    مشکلی پیش نمیاد و با ارسال یک ادرس اسلیو مورد نظر فعال میشه
    فکر میکنم شما بتونید با استفاده از مبدل های rs485 بتونید کار خودتون رو پیش ببرید

  12. #8
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    صادق جان دقیق یادم نیست چند سال پیش چینن کاری کردم البته از سرناچاری ، تقریبا جواب داد ولی روش ناقصی هست چون این ارتباط برای ارتباطات نظیر به نظیر ساخته شده

  13. تشکرها از این نوشته :


  14. #9
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2011
    نوشته ها
    40
    تشکر
    33
    تشکر شده 9 بار در 4 پست

    پیش فرض

    دوست عزیز اگه رو یه برد هستن همه ای سی ها برای هر کدوم یه سریال)in( نرم افزاری بنویسد
    ارسال هم همه rx هارو به هم
    و در نهایت به tx مستر وسال کنید
    اینطوری داده های مستر به همه اسلیو ها میرسه
    و هر اسلیو بدون تداخل میتونه جواب بفرسته

    من زیاد کار کردم رو این پروتوکول برای شبکه
    ولی جواب نمیده
    در حالتی هم جواب میده اولا ریزش دادش خیلی زیاد میشه
    در ثانی امکان هنگ کردن میکرو هم خیلی بالا میره!

  15. #10
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    سلام
    یه مثال ساده برای شما دوست عزیز
    شما برای توسعه کار یادتون باشه که این طرح و کلا شبکه به این صورت هست اسلیو ها خودسر عمل نمی کنند و تا زمانی که مستر درخواست نداده اطلاعاتی ارسال نخواهند کرد ،

    usart

  16. کاربران : 4 تشکر کرده اند از شما Ma3ood برای ارسال این پست سودمند:


  17. #11
    عضو جدید
    تاریخ عضویت
    Feb 2014
    نوشته ها
    9
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    ic 74ALS11 چه ic است وچکارمیکند؟

  18. #12
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    در اینجا نقش بافر را ایفا میکنه تا خروجی های tx اسلیو ها روی هم منطبق نشه

  19. #13
    عضو جدید
    تاریخ عضویت
    Feb 2014
    نوشته ها
    9
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    اقا مسعود درست شد انشالله توعروسیت جبران کنیم

  20. #14
    کاربر فعال mohamad_musav آواتار ها
    تاریخ عضویت
    Aug 2012
    نام
    سید محمد موسوی
    نوشته ها
    189
    تشکر
    61
    تشکر شده 39 بار در 29 پست

    New

    نقل قول نوشته اصلی توسط Ma3ood نمایش پست ها
    سلام
    یه مثال ساده برای شما دوست عزیز
    شما برای توسعه کار یادتون باشه که این طرح و کلا شبکه به این صورت هست اسلیو ها خودسر عمل نمی کنند و تا زمانی که مستر درخواست نداده اطلاعاتی ارسال نخواهند کرد ،

    usart
    سلام
    لطفا در صورت امکان فایل را اصلاح کنید نتونستم دانلود کنم. ممنون

  21. #15
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض

    ظاهرا سایت picofile.com مشکل پیدا کرده و دون هست . من فایل رو پیوست کردم :
    فايل هاي پيوست شده فايل هاي پيوست شده

  22. تشکرها از این نوشته :


  23. #16
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    یک سوال برای شبکه کردن پیش اومده.
    میشه بدون مستر با rs485 چند میکرو شبکه کرد؟ اگر نمیشه حالا اگر یه سیم چیپ سلکت یا cs هم به دو سیم خود rs485 اضافه کنیم چی؟ هر میکرو درخواست ارسال داده داره اگر cs صفر باشه یعنی خط آزاده بعد cs رو یک میکنه. حالا هر میکرو که این کارو میکنه یک زمان مشخصی باید یک نگه داره مثلا میکرو 1 برای 1 میلی ثانیه 2 هم 2 میلی ثانیه و ... با این کار حتی میکرو میفهمه که میکرو دیگه ای همزمان این کارو نکرده ( یک زمان سپری بشه و cs صفر بشه ولی خط هنوز یک باشه یعنی یکی دیگه این کارو همزمان کرده) بعد از سپری شدن زمان خط 1 میلی ثانیه صفر میشه و بعد یک میشه تا زمانی که درخواست فرستاده میشه و در نهایت صفر میشه که بگه خط آزاده.
    به نظر شما کار میکنه؟؟؟؟

  24. #17
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    یک روش دیگه هم اینه که یک مستر باشه که فقط به عنوان هاب یا سوئیچ عمل کنه و کار دیگه ای نداشته باشه.
    آیا باید مستر دونه به دونه به اسلیوها بگه کاری داری اگه نه به بعدی بگه و این کار دائم تکرار بشه یا اینکه هر وقت یک اسلیو کارداشت اعلام کنه کار دارم بعد مستر بگه که کارت چیه و در این صورت مسئله اینه که یک دوایس چطور باید بگه من کار دارم و دوتا دوایس همزمان نگن.

    در کل اگر بدون مستر برای rs485 راهی هست چیه و هماهنگی چطوره و اگه باید مستر باشه هماهنگی چطور انجام میشه؟
    ویرایش توسط esisafa : 29-04-2014 در ساعت 11:58

  25. #18
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    روش بدون مستر تقریبا شبیه can میشه که به سیگنال سوم هم نیاز نداره ولی با rs485 میشه پیاده کرد؟
    برای rs485 کدوم روش مطمئن تر و سریعتر هست.

  26. #19
    کاربر علاقه مند
    تاریخ عضویت
    Apr 2014
    نام
    جواد اسماعیلی
    نوشته ها
    51
    تشکر
    19
    تشکر شده 14 بار در 10 پست

    پیش فرض

    سلام مهندسین
    ببخشید بحثتون رو بهم میزنم
    ولی باید یک نکته رو بگم و اون اینه که پرت سریال هم قابلیت شبکه شدن رو داره بدون اینکه سخت افزاری رو لازم باشه اضافه کنید و این کار با استفاده از بیتی به نام mpcm انجام میشه و مشکل سخت افزاری که بیان شده بود رو از بین می بره .
    برای توضیحات کاملتر هم میتونید به فیلم های آموزشی استاد کی نژاد بخش سریال avr مراجعه کنید.
    موفق باشید.

  27. تشکرها از این نوشته :


  28. #20
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    بالاخره پروتکل can خودمونی بر روی rs485 رو اینطوری در نظر گرفتم. دوستان ببینن جایی مشکل داره؟
    ابتدا توضیح بدم که خط دو حالت درگیر و آزاد داره و با صفر و یک کاری نداریم. درگیر یعنی یکی یا چند تا از وسایل در حالت خروجی قرار گرفته و یک سیگنال قوی بر روی خط قرار داده و آزاد یعنی همه ی وسایل در حالت ورودی قرار دارن و یک سیگنال ضعیف (پول آپ یا داون) روی خط هست. منطق سیگنال قوی و ضعیف مخالف هم هست تا در موقع خوندن خط تشخیص داده بشن.
    خوب حالا بریم سر اصل مطلب. ( ما اومدیم ... غلامی بپذیرید. ببخشییییید اشتباه شد)
    در ابتدا هر وسیله ای بخاد داده ای بفرسته باید چک کنه خط آزاده. اگر درگیر بود منتظر بمونه اگر آزاد بود باید چک کنه به مدت 10 پالس که زمان ارسال یک بایت هست هم خط آزاد باشه. اگر درگیر بود یا درگیر شد یعنی یکی دیگه زودتر تصمیم به استفاده گرفته یا داده ارسال میشه اگر آزاد موند که حالا خط رو درگیر میکنه.
    بیاد و چند وسیله همزمان تصمیم گرفتن چی؟ به هر وسیله یک id (آیدی) میدیم که باید فرق کنه این آیدی زمان درگیر موندن خط توسط این وسیله رو تعیین میکنه. بعد این زمان درگیر بودن خط، وسیله خط رو آزاد میکنه و چک میکنه که خط آزاده یا توسط وسیله ی با اولویت بالاتر هنوز درگیره. اگر درگیر بود که انصراف میده اگر آزاد بود حالا همین وسیله شروع به ارسال داده میکه که شامل کد شناسایی و داده و crc و غیره هست. هر وقت ارسال داده تموم شد خط رو آزاد میکنه تا بقیه استفاده کنن و روز از نو.
    امیدوارم طوری گفته باشم که متوجه بشید. لطفا بررسی کنید که اگر به نتیجه ی مطلوبی رسیدیم نتایج رو قرار میدم.
    یک سوال. به نظر شما این آزاد و درگیر کردن خط بر روی فرستنده و گیرنده تاثیر نداره؟ مثلا گیرنده usart فکر کنه اینا داده هستن و دریافت کنه. یا اینکه اصلا مشکلی ایجاد نمیشه و با اومدن بیت شروع داده همه چیز حل میشه؟
    ویرایش توسط esisafa : 30-04-2014 در ساعت 01:39

  29. تشکرها از این نوشته :


مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •