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

موضوع: الگوریتم برا ارتباط میکرو و کامپیوتر

  1. #1
    کاربر فعال lpln852 آواتار ها
    تاریخ عضویت
    Dec 2008
    نوشته ها
    344
    تشکر
    53
    تشکر شده 88 بار در 55 پست

    پیش فرض الگوریتم برا ارتباط میکرو و کامپیوتر

    من avr رو با پورت کام به نرم افزاری که با C# نوشتم متصل کردم
    میخواستم بدونم روش خاصی هست برای ایجاد ارتباط بین این دوتا ؟
    منطور من اینه که مثلا کامپیوتر میخواتد اطلاعت سنسور اول رو از میکرو بگیره چطور تو برنامه تعریف کنم
    من بیشتر میخوام یه روش کلی بهم بگید

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

  3. #2
    کاربر فعال
    تاریخ عضویت
    Aug 2011
    نام
    Dany
    نوشته ها
    257
    تشکر
    138
    تشکر شده 185 بار در 106 پست

    پیش فرض

    نقل قول نوشته اصلی توسط lpln852 نمایش پست ها
    من avr رو با پورت کام به نرم افزاری که با C# نوشتم متصل کردم
    میخواستم بدونم روش خاصی هست برای ایجاد ارتباط بین این دوتا ؟
    منطور من اینه که مثلا کامپیوتر میخواتد اطلاعت سنسور اول رو از میکرو بگیره چطور تو برنامه تعریف کنم
    من بیشتر میخوام یه روش کلی بهم بگید
    سلام خب یک سری تنظیمات هستش که اول باید رعایت کنید
    مثلا تنظیمات باودریت باید در دو طرف شبیه هم باشد
    بعد که مطمن شدید که دریافت و ارسال صورت می گیرد باید مشخص کنید که مثلا اگر از سمت میکرو اطلاعات به صورت رشته ارسال می شود در طرف کامپیوتر هم این رشته را در نظر بگیرید و اگر نیاز بود تبدیل کنید به همین راحتی

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

    پیش فرض

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

  5. #4
    کاربر فعال lpln852 آواتار ها
    تاریخ عضویت
    Dec 2008
    نوشته ها
    344
    تشکر
    53
    تشکر شده 88 بار در 55 پست

    پیش فرض

    نقل قول نوشته اصلی توسط skiboys نمایش پست ها
    سلام خب یک سری تنظیمات هستش که اول باید رعایت کنید
    مثلا تنظیمات باودریت باید در دو طرف شبیه هم باشد
    بعد که مطمن شدید که دریافت و ارسال صورت می گیرد باید مشخص کنید که مثلا اگر از سمت میکرو اطلاعات به صورت رشته ارسال می شود در طرف کامپیوتر هم این رشته را در نظر بگیرید و اگر نیاز بود تبدیل کنید به همین راحتی
    ممنون من تو دریافت و ارسال مشکلی ندارم

    منظورم رو با یه مثال میگم
    مثلا من 1 برد دارم که 10 تا سنسور بهش وصل هست و چند تا هم ورودی خروجی که نرم افزار روی کامپیوتر اطلاعات این سنسور ها رو دریافت میکنه و مثلا خروجی ها روهم نسبتبه این اطلاعات تغییر میده و ..... حالا من میخوام بدون بهترین راه برای تبادل بین ایندوتا چیه مثلا کامپیوتر دیتای سنسور 5 رو میخواد یا اینکه خروجی 10 رو میخواد فعال کنه


    من خودم برای این کار اومدم برای هر سنسور یه حرف تو برنامه تعرف کردم مثلا s یعنی سنسور اول هر وقت کامپیوتر حرف s رو ارسال کنه میکرو اطلاعات سنسور اولرو برمیگردونه ولی بنظرم اصلا روش خوبی نیست


    میخواستم بپرسم بهترین راه چی هست ؟؟

    امیدوارم تونسته باشم منظورم رو برسونم

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

    پیش فرض

    دوست من بهترین راه اینه که همه اطلاعاتت را یه بار بگیری همشو تو یه رشته بزار بعدا جدا کن مثلا هر 20 ثانیه یه بار بفرسته بعدم برای دریافت اطلاعات از طرف میکرو بهتره وقفه یوزارت را فعال کنی و با توجه با کاراکتر خروجی تو تغییر وضعیت بدی

  7. #6
    کاربر فعال
    تاریخ عضویت
    Aug 2011
    نام
    Dany
    نوشته ها
    257
    تشکر
    138
    تشکر شده 185 بار در 106 پست

    پیش فرض

    همان طور که اقا مسعود گفتن حتما از وقفه استفاده کنید تا cpu الکی الاف نشه
    در مورد برنامه هم برای هر سنسور کارکتر یا هرچیزی دوست دارید انتخاب کنید در برنامه داخل میکرو هم از if استفاده نکنید و بجاش از switch .....case استفاده کنید

  8. #7
    کاربر فعال lpln852 آواتار ها
    تاریخ عضویت
    Dec 2008
    نوشته ها
    344
    تشکر
    53
    تشکر شده 88 بار در 55 پست

    پیش فرض

    نقل قول نوشته اصلی توسط masoud70 نمایش پست ها
    دوست من بهترین راه اینه که همه اطلاعاتت را یه بار بگیری همشو تو یه رشته بزار بعدا جدا کن مثلا هر 20 ثانیه یه بار بفرسته بعدم برای دریافت اطلاعات از طرف میکرو بهتره وقفه یوزارت را فعال کنی و با توجه با کاراکتر خروجی تو تغییر وضعیت بدی
    این کار رو کردم قبلا ولی خیلی خطا ایجاد میشه

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

    پیش فرض

    من دقیقا همین کار رو کردم مشکلی نداره خطایی ایجاد نمیشه چون روش شما خیلی برنامه طولانی میشه و همش باید میکرو به ارسال مشغول بشه

  10. #9
    کاربر فعال
    تاریخ عضویت
    Aug 2011
    نام
    Dany
    نوشته ها
    257
    تشکر
    138
    تشکر شده 185 بار در 106 پست

    پیش فرض

    نقل قول نوشته اصلی توسط lpln852 نمایش پست ها
    این کار رو کردم قبلا ولی خیلی خطا ایجاد میشه
    چه خطایی بیشتر توضیح می دهید من با این روش مقادیر مورد نیاز برای pwm را به میکرو با سرعت بالا می فرستادم مشکلی نداشتم

  11. #10
    کاربر فعال lpln852 آواتار ها
    تاریخ عضویت
    Dec 2008
    نوشته ها
    344
    تشکر
    53
    تشکر شده 88 بار در 55 پست

    پیش فرض

    نقل قول نوشته اصلی توسط skiboys نمایش پست ها
    چه خطایی بیشتر توضیح می دهید من با این روش مقادیر مورد نیاز برای pwm را به میکرو با سرعت بالا می فرستادم مشکلی نداشتم
    تو این پروژه که من دارم حدود 100 تا دیتای متفاوت هست که باید بین میکرو و کامپیوتر رد و بدل بشه
    من اومدم از حروف الفبا و 1 عدد بعدش برای هر دیتا استفاده کردم مثلا s1,s2 , .... تو این روش مثلا بعضی وقتا عدد بعد از این با دیتا اشتباه میشه

    تو اون روش هم که هر از یه مدت میکرو کل اطلاعات رو بفرسته هم میکرو بعضی وقتا قفل مبکنه

    بعضی وقت ها هم بعضی از اطلاعات دریافت نمیشه و سرعت کار خیلی میاد پایین چون میکرو زمان زیادی رو صرف ارسال و دریافت میکنه
    ویرایش توسط lpln852 : 14-04-2013 در ساعت 00:19

  12. #11
    کاربر فعال
    تاریخ عضویت
    Aug 2011
    نام
    Dany
    نوشته ها
    257
    تشکر
    138
    تشکر شده 185 بار در 106 پست

    پیش فرض

    نقل قول نوشته اصلی توسط lpln852 نمایش پست ها
    تو این پروژه که من دارم حدود 100 تا دیتای متفاوت هست که باید بین میکرو و کامپیوتر رد و بدل بشه
    من اومدم از حروف الفبا و 1 عدد بعدش برای هر دیتا استفاده کردم مثلا s1,s2 , .... تو این روش مثلا بعضی وقتا عدد بعد از این با دیتا اشتباه میشه

    تو اون روش هم که هر از یه مدت میکرو کل اطلاعات رو بفرسته هم میکرو بعضی وقتا قفل مبکنه

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

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

    پیش فرض

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

  14. #13
    کاربر فعال lpln852 آواتار ها
    تاریخ عضویت
    Dec 2008
    نوشته ها
    344
    تشکر
    53
    تشکر شده 88 بار در 55 پست

    پیش فرض

    ممنون

    پس شما راهی به جز این چیزی ه من هم قبلا استفاده کردم نمیدونید ؟؟

  15. #14
    تازه وارد
    تاریخ عضویت
    Sep 2012
    نوشته ها
    2
    تشکر
    1
    تشکر شده 0 بار در 0 پست

    پیش فرض

    دوست عزیز، این روشی که شما استفاده کردید اصلاً استاندارد نیست.
    باید اطلاعات در قالب فریم ها منتقل بشن.
    فریم ها دارای Start Byte ، Check Sum ، Frame Number و ... هست، که اگر حتی یک بیت دچار اشکال بشه می شه متوجه شد.
    تو این روش، PC یک فریم Request خاص به میکرو می فرسته و تو اون به میکرو میگه چی می خواد و میکرو هم جوابش رو بصورت یک فریم به PC ارسال می کنه، تو این روش نه میکرو و نه App خیلی درگیر نمی شن.
    حتی می تونی طبق یک زمان بندی خاص، به میکرو بگی که اون فریم رو به PC ارسال کنه.
    فریم ها هم می تونن Command باشن و هم Data.

  16. #15
    کاربر فعال lpln852 آواتار ها
    تاریخ عضویت
    Dec 2008
    نوشته ها
    344
    تشکر
    53
    تشکر شده 88 بار در 55 پست

    پیش فرض

    نقل قول نوشته اصلی توسط dimo2106 نمایش پست ها
    دوست عزیز، این روشی که شما استفاده کردید اصلاً استاندارد نیست.
    باید اطلاعات در قالب فریم ها منتقل بشن.
    فریم ها دارای start byte ، check sum ، frame number و ... هست، که اگر حتی یک بیت دچار اشکال بشه می شه متوجه شد.
    تو این روش، pc یک فریم request خاص به میکرو می فرسته و تو اون به میکرو میگه چی می خواد و میکرو هم جوابش رو بصورت یک فریم به pc ارسال می کنه، تو این روش نه میکرو و نه app خیلی درگیر نمی شن.
    حتی می تونی طبق یک زمان بندی خاص، به میکرو بگی که اون فریم رو به pc ارسال کنه.
    فریم ها هم می تونن command باشن و هم data.
    میشه یکم بیشتر توضیح بدید

  17. #16
    تازه وارد
    تاریخ عضویت
    Sep 2012
    نوشته ها
    2
    تشکر
    1
    تشکر شده 0 بار در 0 پست

    پیش فرض

    توضیحات بیشتر .
    فايل هاي پيوست شده فايل هاي پيوست شده

  18. #17
    کاربر علاقه مند abbas1371sa آواتار ها
    تاریخ عضویت
    Aug 2008
    نوشته ها
    46
    تشکر
    15
    تشکر شده 9 بار در 8 پست

    پیش فرض

    سلام
    من خودم وقتی چنین پروژه ای داشته باشم از چند تا تکنیک ارسال در یافت استفاده میکنم

    مثلا اگه یک کامپیوتر باشه و تعداد زیادی میکرو ارتباط بین این ها را بصورت Request - Answer ایجاد میکنم
    یعنی برای هر میکرو یک شناسه (مثل IP شبکه) قرار میدم و دیتا را بین میکرو و کامپیوتر ارسال میکنم
    در این صورت اگه یکی از میکرو ها به مشکل بخوره، دیگه شبکه من مختل نمیشه.

    یک سری کار های دیگه ای مثل ChekSum گذاشتن و ... میتونه به بهتر شدن ارتباط و کاهش خطا کمک بسیاری بکنه.

    موفق باشید

  19. #18
    کاربر فعال
    تاریخ عضویت
    Dec 2011
    نام
    علی حاجی آبادی
    نوشته ها
    240
    تشکر
    46
    تشکر شده 237 بار در 155 پست

    پیش فرض

    سلام
    روش دادن ID به هر میکرو و استفاده از Req - Ans که بالا گفتن بسیار روش عالی هست من خودم استفاده کردم.

    بهترین روش تشخیص خطا ، CRC است. که البته در جاهایی که اندازه پکت بسیار بزرگ باشه کاربرد بیشتری داره.
    ولی روش های تصحیح خطا هم وجود داره. برای اطلاعات بیشتر می تونید راجع به روش های FEC (Forward Error Correction) تحقیق کنید.

  20. #19
    کاربر فعال lpln852 آواتار ها
    تاریخ عضویت
    Dec 2008
    نوشته ها
    344
    تشکر
    53
    تشکر شده 88 بار در 55 پست

    پیش فرض

    نقل قول نوشته اصلی توسط ali_h نمایش پست ها
    سلام
    روش دادن id به هر میکرو و استفاده از req - ans که بالا گفتن بسیار روش عالی هست من خودم استفاده کردم.

    بهترین روش تشخیص خطا ، crc است. که البته در جاهایی که اندازه پکت بسیار بزرگ باشه کاربرد بیشتری داره.
    ولی روش های تصحیح خطا هم وجود داره. برای اطلاعات بیشتر می تونید راجع به روش های fec (forward error correction) تحقیق کنید.
    این روش هایی که شما میگید رو با rs232 استفاده کردید ؟

  21. #20
    کاربر فعال
    تاریخ عضویت
    Dec 2011
    نام
    علی حاجی آبادی
    نوشته ها
    240
    تشکر
    46
    تشکر شده 237 بار در 155 پست

    پیش فرض

    نقل قول نوشته اصلی توسط lpln852 نمایش پست ها
    این روش هایی که شما میگید رو با rs232 استفاده کردید ؟
    من روش Req - Ans رو هم با RS232 ، هم با TCP/IP روی بستر اترنت و GPRS و هم با یک ارتباط بیسیم ساده پیاده سازی کردم.

    این روش ها به بستر ارتباطی وابسته نیستند. مثلاً CRC در پروتکل TCP / IP روی بستر اترنت ، وای فای ، وای مکس و درگاه های ماهواره ای اینترنت استفاده می شود.
    روش های FEC در ارتباطات ماهواره های تصویری دیجیتال استفاده می شود و در عین حال در ارتباطات ماجول های Zigbee هم مورد استفاده قرار می گیرند.
    البته دقت کنید که هرکدام از این روش ها سرباری به داده اصلی اضافه می کنند که باعث کاهش پهنای باند موثر (Throughput) می شود.
    ویرایش توسط ali_h : 27-04-2013 در ساعت 14:10

موضوعات مشابه

  1. ایده یا الگوریتم کار یا برنامه نرم افزاری
    توسط sarab1 در انجمن گفت و گوي آزاد
    پاسخ: 10
    آخرين نوشته: 27-11-2013, 23:45
  2. طراحی و ساخت پروگرامر و جیتگ
    توسط tps_star در انجمن پروگرامرهای AVR.PIC.8051.XMEGA.ARM
    پاسخ: 3
    آخرين نوشته: 03-11-2010, 10:14
  3. طراحی و ساخت پروگرامر و جیتگ
    توسط tps_star در انجمن FPGA
    پاسخ: 0
    آخرين نوشته: 20-10-2010, 17:31
  4. سایتهای مورد نیاز در زمینه برق و الکترونیک
    توسط alnz در انجمن لينك سايت هاي برق و الكترونيك
    پاسخ: 0
    آخرين نوشته: 07-05-2010, 15:36
  5. الگوریتم طراحی و ساخت یک روبات مس
    توسط ROBOMAN در انجمن مفاهیم اولیه در رباتیک
    پاسخ: 0
    آخرين نوشته: 14-03-2009, 18:14

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

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