نمایش نتایج 1 تا 12 از 12

نام تاپیک: راهنمایی برای ارتباط دو میکرو با هم

  1. #1

    راهنمایی برای ارتباط دو میکرو با هم

    سلام
    میخواستم بدونم میشه دو میکرو را از طریق 2 ارتباط همزمان مثل( rs232و ارتباط 3سیمه )به هم متصل کرد.

  2. #2

    نقل قول: راهنمایی برای ارتباط دو میکرو با هم

    سلام
    اگر منظورتون استفاده از پروتکل سریال سه سیمه (tx,rx.gnd) هست، بله با واحد uart میکرو ها می تونید این کار رو انجام بدید. فقط اتصال ضربدری و باوود ریت یکسان فراموش نشه.

  3. #3
    کاربر دائمی آواتار SEZAR.CO
    تاریخ عضویت
    آذر 1391
    محل زندگی
    پشت کامپیوتر
    پست
    319

    نقل قول: راهنمایی برای ارتباط دو میکرو با هم

    بستگی داره چه کار بخواهی بکنی چقدر فاصله ی دو میکرو باشه و...
    مثلا با i2c میشه و تا فاصله ی 80 سانت هم جواب میده
    پیوست رو نگاه کن (کار من نیست)
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: rar I2C.rar‏ (25.8 کیلوبایت, 529 دیدار)

  4. #4

    نقل قول: راهنمایی برای ارتباط دو میکرو با هم

    چون I2C میکروی AVR به عنوان master استفاده میشه و به طور "سخت افزاری" قابلیت slave شدن رو نداره، بهتره که برای ارتباط 2 مبکرو از uart به جای I2C استفاده کنید. در مثالی که دوستمون گذاشتند، با دستور bitwait امکان استفاده از باس در حالت slave به صورت " نرم افزاری" ایجاد شده که در این مثال مشکلی ایجاد نمی کنه ولی در کل، نگه داشتن برنامه توسط دستورهایی مثل bitwait می تونه مشکل ساز بشه.

  5. #5
    مدیر بخش آواتار Abbas Amiri
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    اصفهان
    پست
    2,327

    نقل قول: راهنمایی برای ارتباط دو میکرو با هم

    نقل قول نوشته شده توسط farzadsw مشاهده تاپیک
    چون I2C میکروی AVR به عنوان master استفاده میشه و به طور "سخت افزاری" قابلیت slave شدن رو نداره، بهتره که برای ارتباط 2 مبکرو از uart به جای I2C استفاده کنید. در مثالی که دوستمون گذاشتند، با دستور bitwait امکان استفاده از باس در حالت slave به صورت " نرم افزاری" ایجاد شده که در این مثال مشکلی ایجاد نمی کنه ولی در کل، نگه داشتن برنامه توسط دستورهایی مثل bitwait می تونه مشکل ساز بشه.
    سلام
    از حضور مجدد شما خوشحالم
    شما میگویید حالت Slave بصورت سخت افزاری پشتیبانی نمیشه ، ولی اینتراپت TWI در زمان Slave عمل میکنه واین یعنی بصورت سخت افزاری پشتیبانی میشه.

  6. #6

    نقل قول: راهنمایی برای ارتباط دو میکرو با هم

    سلام
    ممنون از لطف شما
    بله حق با شماست، تو بعضی از میکرو های سری تاینی اینطور بود. البته باز استفاده از i2c وقتی ارتباط دوطرفه (دو طرف امکان شروع ارتباط رو داشته باشند) مد نظر باشه باید بین حالت slave و مستر دائم سوییچ بشه و این سوییچ شدن رو باید نرم افزاری انجام داد (رجیستر twcr باید مدام مقدارش تغییر کنه). ولی خب اگه یک طرف دائم slave و طرف دیگه دائم master باشه مشکلی پیش نمیاد.
    البته من همچنان توصیه می کنم برای ارتباط 2 میکرو از uart استفاده بشه چون ارتباط full-duplex هست و حداقل مراحل نرم افزاری رو هم لازم داره (دستور استارت، آدرس دهی، مقدار دهی، اکنالج و استاپ رو نداره).

  7. #7
    کاربر دائمی آواتار hamid-nic
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    اصفهان
    پست
    813

    نقل قول: راهنمایی برای ارتباط دو میکرو با هم

    با اجازه ی آقا فرزاد
    اما در TWI یا همون I2C چه برای Master شدن و چه برای Slave شدن حالت سخت افزاری خاصی مثلا مثل SPI نداریم . همون طور که بهتر از من می دونید و در تصویر شکل زیر هم نشون داده شده فقط دو خط SDA و SCL را داریم که برای master و Slave شدن بصورت نرم افزاری باید اقدام کرد همون قضیه ی سوییچ شدن است که فرمودید .

    Name:  i2ca.GIF
Views: 1987
Size:  1.7 کیلوبایت


    پس منظورتون از این جمله چیه ؟
    I2C میکروی AVR به عنوان master استفاده میشه و به طور "سخت افزاری" قابلیت slave شدن رو نداره
    البته با شما کاملا موافقم که بهتره از Uart برای ارتباط 2 میکرو استفاده کرد .
    استفاده از I2C صرفا برای ارتباط چندین میکرو که قراره باهم تبادل اطلاعات کنند بسیار مفید خواهد بود .
    همچنین از SPI هم نباید در ارتباط چند میکرو در فواصل کوتاه و سرعت بالا غافل بود .

  8. #8

    نقل قول: راهنمایی برای ارتباط دو میکرو با هم

    بله، همونطور که عرض کردم:
    بله حق با شماست، تو بعضی از میکرو های سری تاینی اینطور بود.
    بعضی از میکرو های تاینی قابلیت آدرس گرفتن رو نداشتند (قدیم ندیما) روی همون حساب و اینکه بعد از اون همیشه از I2C برای ارتباط با سنسورها (slave) استفاده می کردم، اینطور تو ذهنم مونده بود(البته اون کد بسکام هم شکم رو بیشتر کرد!). ممنون که تصحیح کردید.

  9. #9
    کاربر دائمی آواتار mehran901
    تاریخ عضویت
    آبان 1391
    محل زندگی
    پشت کامپیوتر
    پست
    750

    نقل قول: راهنمایی برای ارتباط دو میکرو با هم

    سلام بر دوستان
    از اونجایی که دیدم دوستمون FarzadSW تمرکز نظرشون درمورد استفاده از usart/uart بوده گفتم جا داره ی مطلبی رو هرچند کوتاه عرض کنم
    دوست عزیز King amin من درصورتی که بخوام یک ارتباط مطمئن ایجاد کنم که نیم دوطرفه هم به خوبی پشتیبانی بشه و بین usart و i2c حق انتخاب داشته باشم قطعا i2c رو انتخاب می کنم چرا که من تا فاصله حدود 1 1.5 متر ( طول باس i2c ربات بنده بود ) به راحتی بدون حتی یک دفعه خطا ازش جواب گرفتم ولی ! usart دهن ما رو آسفالت کرد (البته برای فاصله های خیلی کم و کلا با واسط های استریپ لاین و روی برد بدک جواب نمی ده ) ،در کل مشکلات مختلفی داره ....
    اگه از usart/uart درحالت آسنکرون بخای استفاده کنی من شخصا به این نتیجه رسیدم هیچ تضمینی بر انتقال موفق اطلاعاتت نیست...!! و به راحتی سیستم دچار اختلال میشه
    ولی
    درحالت سنکرون و با استفاده از وقفه نسبتا خوب کار میکنه
    از طرفی : چرا عاقل کند کاری که باز آرد پشیمانی
    اگه حق انتخاب داری بین ارتباط های مختلف ، SPI ، البته با گراندت 3 سیم نیس ! و i2c ( با گراند 3 سیمه ! ) استفاده کنی خیلی عالیه
    شما به راحتی می تونی یک رشته رو توسط i2c بدون کوچکترین خطا انتقال بدی و اگه از لحاظ آدرس دهی سخت افزاری مشکل داری همه آدرس ها رویکی بده و داخل رشتت 2 رقم کد بذار ... میکرو ها به راحتی به تفکیک این 2 رقم کد آدرس دهی میشن...! و مابقی رشته هم میتونه شامل اطلاعات عددی یا رشته ای مورد نیازت باشه.....
    مطمئن باش خیلی بهتره تا usart ! البته برا استفاده از usart هرچی کریستال زیادبذاری خطا کمتری داری به شکلی که فرکانس کلاکت رو 11052200 هرتز بذاری خطا صفر میشه! اونوقت شاید کمیبشه بهش اعتماد کرد...!! بهش رسیدم که میگما....!

    موفق باشی
    آخرین ویرایش به وسیله mehran901 : دوشنبه 25 دی 1391 در 07:27 صبح

  10. #10

    نقل قول: راهنمایی برای ارتباط دو میکرو با هم

    بر خلاف نظر شما، بنده معتقد هستم که ارتباط uart برای اتصال دیتای دو میکرو کنترلر بهتر از I2C عمل می کنه.
    اول اینکه I2C سربار اطلاعاتش خیلی بیشتر از uart هست،به همین جهت نرخ ارسال و دریافت اطلاعات در UART "می تواند" خیلی بیشتر از I2C باشد(حدود 1 مگابیت در ثانیه و یا بیشتر)
    I2C برای ارتباطات داخل مداری طراحی شده (معنی اسمش هم همینه) و برای این موارد هم خوب جواب میده ولی برای مسافت های زیاد، اتفاقا مناسب نیست. شما uart رو نباید بدون لایه فیزیکیش درنظر بگیرید، همین uart رو میشه با rs232 یا rs485 استفاده کرد.با rs232 میشه تا 20 متر و باوود ریت 115200 ارتباط داشت و اگه باوودریت رو کمتر هم بکنید، بورد تا 50 متر هم خواهد رسید. با rs485 علاوه براین که تو محیطهای نویزی خیلی بهتر عمل میکنه، بورد مفیدش تا 1 کیلومتر هم می تونه برسه. البته بورد i2c رو هم میشه افزایش داد ولی نیاز به نصب ریپیتر در میان مسیر داره که هم هزینه رو افزایش میده و هم کار رو مشکل میکنه.
    نکته دیگه اینه که uart نسبت به سایر پروتکل ها استاندارد "استاندارد تری" هست! فرضا اگر بخواید ارتباط بدون سیم داشته باشید، می تونید به راحتی اطلاعات رو به صورت بی سیم به مودم یا ماژول وایرلس بدید و در طرف دیگه (مثلا 2 کیلومتر اونطرف تر) تحویل بگیرید. ماژولهای GPSو GSM نمونه های دیگه ای هستند که ارتباط uart به عنوان یک استاندارد در اونها استفاده میشه (البته این مورد زیاد به موضوع بحث مرتبط نیست). یکی از دلایلی که از I2C در محیطهای صنعتی کمتر استفاده میشه اینه که اگر یک نود روی باس مشکلی براش ایجاد بشه، کل باس از دست میره و بجای این پروتکل از پروتکلهایی مثل CAN استفاده میشه.

    در کل هر پروتکل ارتباطی برای یک کاری ساخته شده و پروتکل بهتر وجود نداره. در این مورد ارتباط "دو" میکرو، ارتباط سریال uart ارتباط مناسب تری هست. بعضی از کاربردهای اصلی این پروتکلها به صورت زیر هست:
    UART: برای ارتباط در مسافت کوتاه با میکروکنترلر و ماژولهای ارتباطی شامل : مودم، IRDA، کارت خوان (کارت هوشمند)، GPS، سیستمهای مخابراتی GSM
    UART+RS232: ارتباط بین دو دستگاه (میکرو-میکرو، میکرو-کامپیوتر،کامپیوتر-مودم و...) در مسافت های نسبتا بلند.
    UART+RS485: ایجاد شبکه با بورد بالا و یا سرعت بالا (بورد کم) در محیطهای نویزدار
    I2C: ارتباط با چنیدین وسیله ارتباطی (عموما سنسورها) در مسافت های کوتاه
    SPI: ایجاد ازتباط با وسایل مختلف با سرعت بسیار بالا در مسافت کم
    CAN: ایجاد شبکه با قابلیت اطمینان بسیار بالا در میحطهای صنعتی و پرنویز
    1Wire: برای ارتباط با سنسورها (باس)در محیطهای صنعتی ولی با سرعت کم (جایگزین i2c در محیطهای صنعتی)

    *از نظر صحت اطلاعات رسیده هردوی i2c , uart تضمینی ندارند ولی بازم uart یه پریتی چک داره لااقل!

  11. #11
    کاربر دائمی آواتار mehran901
    تاریخ عضویت
    آبان 1391
    محل زندگی
    پشت کامپیوتر
    پست
    750

    نقل قول: راهنمایی برای ارتباط دو میکرو با هم

    حق با شماست من بدون در نظر گرفتن rs232 , rs485 و همین طور فرکانس و سرعت انتقال اطلاعات usart، پست قبلی رو نوشتم و بهتر هست این طوری تصحیح کنم ، من در ارتباط usart خاطره خوبی نداشتم، و ممنون بابت اطلاعات جامعتون
    البته یادم اومد به یکی از کاربرد های i2c در صنعت خودرو ها اشاره کنم که i2c در خودرو 206 به عنوان مهمترین باس انتقال اطلاعات استفاده میشه ...ولی خب ی سری معایبش رو هم شما مورد بررسی قرار دادین

    تشکر

  12. #12

    Thumbs up نقل قول: راهنمایی برای ارتباط دو میکرو با هم

    با سلام
    از مناظره شما در پست بالا حسابی استفاده کردم و اطلاعات کسب کردم
    از هر دوی شما تشکر میکنم
    دوستان در مورد ارتباط i2c در خودرو 206 اگر اطلاعاتی دارید لطفا راهنمایی کنید
    من در این مورد دوست دارم اطلاعاتی کسب کنم و برای اولین بار در اینترنت دیدم که شما گفتید این ارتباط i2c است
    دوستان چینی با یه مگا8 یه کانورت ساختند که اطلاعات ارسالی از ریموت کنترل رادیو پخش 206 در کنار فرمان خودرو را دریافت میکنه و این اطلاعات را تغییر داده و به پخش مارک sony میده تا اون هم با یه پروتکل دیگه قابل کنترل باشه این قطعه که حدود 40 تومن هست اگر اطلاعاتی از پروتکل 206 داشتم و شیوه ارسال اطلاعات میتونستم یه جورایی شخصی سازی کنم و اون تغییراتی که دوست دارم را انجام بدم

تاپیک های مشابه

  1. آموزش: راهنمایی برای ارتباط vb.net به access
    نوشته شده توسط mohammad1314 در بخش VB.NET
    پاسخ: 3
    آخرین پست: شنبه 27 آبان 1391, 13:52 عصر
  2. راهنمایی برای ارتباط یک کلاینت با یک بانک اطلاعاتی در سرور
    نوشته شده توسط opluse در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 3
    آخرین پست: دوشنبه 26 دی 1390, 19:07 عصر
  3. درخواست راهنمایی برای ارتباط دیتابیس
    نوشته شده توسط bushehr-it در بخش ASP.NET Web Forms
    پاسخ: 7
    آخرین پست: چهارشنبه 10 آذر 1389, 11:18 صبح
  4. راهنمایی برای ارتباط بین جداول
    نوشته شده توسط *unos* در بخش SQL Server
    پاسخ: 5
    آخرین پست: شنبه 14 آذر 1388, 08:15 صبح
  5. درخواست راهنمایی برای ارتباط VB2005 با SQL
    نوشته شده توسط zeho19 در بخش VB.NET
    پاسخ: 3
    آخرین پست: چهارشنبه 23 خرداد 1386, 10:55 صبح

قوانین ایجاد تاپیک در تالار

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