اطلاعیه

Collapse
No announcement yet.

پیشنهاد برای طراحی یک سیستم میکروکنترلری

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پیشنهاد برای طراحی یک سیستم میکروکنترلری

    با سلام
    قرار است سیستمی طراحی کنم که بتواند اطلاعات 8 تا 13 سنسور را که خروجی آنها به صورت سریال است دریافت کند و اطلاعات مفید دریافت شده از هر سنسور را جدا کرده و به صورت یک packet بر روی خروجی اترنت ارسال کند. به نظر شما از چه میکروکنترلری می توان استفاده کرد؟ لازم به تذکر است که باید قابلیت اطمینان و real time بودن در آن حفظ شود.
    اگر از ARM استفاده کنم به نظر شما کدام سری ARM توانایی انجام این کار را دارد؟
    با تشکر

    #2
    پاسخ : پیشنهاد برای طراحی یک سیستم میکروکنترلری

    نوشته اصلی توسط yadegari
    با سلام
    قرار است سیستمی طراحی کنم که بتواند اطلاعات 8 تا 13 سنسور را که خروجی آنها به صورت سریال است دریافت کند و اطلاعات مفید دریافت شده از هر سنسور را جدا کرده و به صورت یک packet بر روی خروجی اترنت ارسال کند. به نظر شما از چه میکروکنترلری می توان استفاده کرد؟ لازم به تذکر است که باید قابلیت اطمینان و real time بودن در آن حفظ شود.
    اگر از ARM استفاده کنم به نظر شما کدام سری ARM توانایی انجام این کار را دارد؟
    با تشکر
    سلام
    ببینید قاعدتا شما باید اول از همه از میکرویی استفاده کنید که خودش کارت شبکه روش داشته باشه پس دور میکروهای معمولی رو خط بکشید بهتره.
    دوم اینکه پردازش اطلاعات شبکه غالبا زمان بره. بنابراین میکروهای معمولی (حتی اگر اترنت داشته باشن) بعیده بتونن جواب بدن (به صورت ریل تایم). بنابراین همون آرم براتون میمونه.

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

    دیدگاه


      #3
      پاسخ : پیشنهاد برای طراحی یک سیستم میکروکنترلری

      ممنون از جوابی که دادید، چون ابعاد پروژه برای خودم هنوز به صورت کامل بیان نشده نمیتوانم بیشتر توضیح دهم.
      نوشته اصلی توسط hamidreza.nayeri
      میکروی شما ادوات انتقال اطلاعات سریال داره، اما نه ۸ تا. فلذا یا نباید از اونها استفاده کنید یا باید با یک سیستمی اشتراک زمانی ایجاد کنید توش.
      میتوانید این قسمت اشتراک زمانی رو بیشتر توضیح بدهید
      نوشته اصلی توسط hamidreza.nayeri
      اگر هم بخواید خودتون ارتباط سریالش رو طراحی کنید، قاعدتا میکروتون باید تعداد پایه هاش مناسب باشه.
      منظورتون از اینکه ارتباط سریال رو خودم طراحی کنم چیه؟
      نوشته اصلی توسط hamidreza.nayeri
      بعدش هم اینکه ابعاد کارتون هم مهمه. حافظه رم و رامی که میکرو پشتیبانی میکنه هم مهمه. اگر بتونید بگید دقیقا برای چه کاری میخواید، میشه دقیقتر بهتون یک میکرو معرفی کرد.
      چگونه میشه از روی اطلاعات سریال به میزان حافظه مورد نیاز پی برد؟

      ضمنا من احتیاج به یک ساعت مرکزی دارم که که زمان کل سیستم رو در خود نگه دارد، آیا میکروهای آرم چنین قابلیتی را در خود دارند؟ oo:
      ببخشید که سوالاتم خیلی مبتدیانه است

      دیدگاه


        #4
        پاسخ : پیشنهاد برای طراحی یک سیستم میکروکنترلری

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

        دیدگاه


          #5
          پاسخ : پیشنهاد برای طراحی یک سیستم میکروکنترلری

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

          ضمنا من احتیاج به یک ساعت مرکزی دارم که که زمان کل سیستم رو در خود نگه دارد، آیا میکروهای آرم چنین قابلیتی را در خود دارند؟ oo:
          ببخشید که سوالاتم خیلی مبتدیانه است
          خواهش میکنم.
          ببینید اول از همه سنسورهاتون چین؟ اطلاعات سریال رو با چه پروتوکلی ارسال میکنن؟ اصلا از این پروتوکل های استاندارد پشتیبانی میکنن یا یک سیستم خاص خودشون رو دارن؟
          میکرو ها چند تا مدار دارن برای ارتباطات سریالی که استاندارد هستند. مثل SPI (البته اگر اسمش رو درست نوشته باشم) یا One-Wired و ... اینا استانداردند. ولی بعضی از اوقات سنسورها از اینها استفاده نمیکنن.
          اگر شما بخواید از این استاندارد ها استفاده کنید که خوب میکرو فقط یه مدار داره که میتونه این کار رو بکنه بنابراین در یک لحظه باید از یک سنسور اطلاعات خونده بشه و در لحظه بعد از یکی دیگه. حالا بعضی از این استاندارد ها آدرس دهی رو هم پشتیبانی میکنن مثلا بعضی از سنسورها رو میشه با سیم کشی بهشون یک آدرس داد. بعدا وقتی مدار سریال میخواد باهاشون کار کنه، توی هدری که میفرسته میگه که مثلا من با فلان سنسور کار دارم که آدرسش فلانه. در نتیجه اطلاعات سنسور ها با هم قاطی نمیشه و شما هم نیاز به مدار جداگونه برای جدا کردن سنسورها و ... ندارید. اگر سنسورها تون از این نوع باشن مشکلی بر نمیخورید.
          اما اگر سنسورها از این استاندارد ها پشتیبانی نکنن، یک مقدار زحمت شما به عنوان برنامه نویس بیشتر میشه. البته نشدنی نیست و کار خیلی سختی هم نیست ولی خوب باید روش کار بکنید دیگه.
          سیستم اشتراک زمانی رو هم اشتباهی گفتم. حواسم نبود این استانداردها آدرس دهی رو پشتیبانی میکنن. ولی خوب اگر آدرس دهی نداشته باشن مجبورید این کار رو بکنید. (بگذریم یعنی چی، اگر سنسورهاتون از این مسیله پشتیبانی نمیکردن بهتون میگم. الان ذهنتون رو الکی مشغول نکنید مخصوصا اینکه این موضوع خیلی بعیده).

          دوم اینکه از روی اطلاعات سریال نمیشه به حافظه پی برد. ابعاد کاری که میخواید بکنید و نوع پردازشتون این رو تعیین میکنه که این رو هم میفرمایید هنوز به خودتون هم کامل نگفته اند پروژه چیه.

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

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

          دیدگاه


            #6
            پاسخ : پیشنهاد برای طراحی یک سیستم میکروکنترلری

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

            دیدگاه


              #7
              پاسخ : پیشنهاد برای طراحی یک سیستم میکروکنترلری

              آقای نیری سوالات خوبی پرسیدن. جواب شما(yadegari) به این سوالات می تونه سرعت پاسخ دهی و همچنین کیفیت پاسخ دهی رو بیشتر کنه.

              دیدگاه


                #8
                پاسخ : پیشنهاد برای طراحی یک سیستم میکروکنترلری

                ازاینکه این همه توجه کردیدواقعا متشکرم
                چون یک مقدار دسترسیم به اینترنت کمه شاید دیر بتونم جواب بدم
                سنسورهایی که ما داریم از استاندارد RS232,RS485 استفاده میکنند.
                حداقل فاصله 4 متر و حداکثر 40 متر برای سنسورهای مختلف متفاوت است :eek:

                دیدگاه


                  #9
                  پاسخ : پیشنهاد برای طراحی یک سیستم میکروکنترلری

                  منتظر یاری سبزتان هستیم :icon_razz:

                  دیدگاه


                    #10
                    پاسخ : پیشنهاد برای طراحی یک سیستم میکروکنترلری

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

                    دیدگاه


                      #11
                      پاسخ : پیشنهاد برای طراحی یک سیستم میکروکنترلری

                      سلام
                      با یه میکروی LPC و واسط فیزیکی شبکه می تونید این کارو انجام بدید. من خودم می تونم با یه LPC1768 این کارو ردیف کنم.

                      و اما در مورد پورتهای سریال، به جز 485 که یکطرفه ست و یه سری سیگنالینگ داره (خیلی سخت نیست)، 422 و 232 عملاً همون UART هستند. میکروکنترلرها حداکثر 4-5 تا پورت سریال دارند. راه حلهای ممکن که من در عمل ازشون استفاده می کنم ایناست:
                      - استفاده از چند میکروکنترلر. هر LPC 4 تا پورت سریال داره. 4 تا میکرو می شه 16 تا پورت سریال. یکی از این میکروها پردازش اصلی و انتقال Ethernet رو هم انجام میده. خط اشتراک بین میکروها می تونه باس 8 بیتی با آدرس دهی باشه، یا SPI سریع، یا هر چیز دیگه. من معمولاً باس 8 بیتی درست می کنم.
                      - استفاده از یه آی سی دیجیتال سریع مثه CPLD/FPGA. تو یه کاری، با CPLD چندین ورودی/خروجی سریال رو می خوندیم و می نوشتیم. کار ساده ایه. چون فقط داده های سریال رو از سنسورها می خونه و به میکروکنترلر تحویل میده. ارتباط CPLD/FPGA با میکروکنترلر می تونه باس 8 بیتی با آدرس دهی باشه.

                      بیایید با Google آشتی کنیم!

                      دیدگاه


                        #12
                        پاسخ : پیشنهاد برای طراحی یک سیستم میکروکنترلری

                        با سلام
                        ممنون از جوابی که دادید جناب رستمی،اما چند مورد:
                        1- فکر کنم RS485 دوطرفه باشه نه یک طرفه (ضمنا فکر کنم من با همین 485 باید کار کنم)
                        2- اصولا برای ارتباطات دو سویه از کدام استاندارد سریال استفاده میشود uart یا spi ؟
                        3- آیا لازم است از چند میکرو استفاده کرد و نمیشود به طریقی مثلا سیستم آدرس دهی تمامی سنسورها را بر روی یک میکرو پیاده سازی کرد؟
                        4-چون با fpga کار عملی نکردم نمی خواهم الان از اون استفاده کنم اما بعدا باید این سیستم روی fpga پیاده بشود.
                        نوشته اصلی توسط محمد رستمی
                        خط اشتراک بین میکروها می تونه باس 8 بیتی با آدرس دهی باشه، یا SPI سریع، یا هر چیز دیگه. من معمولاً باس 8 بیتی درست می کنم.
                        در این مورد بیشتر توضیح میدهید
                        با تشکر

                        دیدگاه


                          #13
                          پاسخ : پیشنهاد برای طراحی یک سیستم میکروکنترلری

                          سلام
                          1) 485 نیمه دوطرفه ست (Half-Duplex).
                          2) برای ارتباط دوطرفه توی صنعت از پورت سریال (485 یا 422) استفاده می شه که طول مسیر می تونه زیاد باشه و ضمناً نویزپذیریش هم کمتر از RS232 اِ. ارتباط Ethernet هم یه راه دیگه ست. SPI عموماً برای ارتباطات میکروکنترلر با آی سی های دیگه ست و سرعت/طول مسیرش کمه.
                          3) آدرس دهی هم ممکنه. شما برای این کار باید باس درست کنید. هر دستگاه توی باس می تونه یه ID داشته باشه (در ساده ترین حالت یه شماره تک بایتی) و میکروکنترلر تمام انتقال اطلاعات مابین دستگاهها رو با پروتکل مورد نظر در اون باس کنترل می کنه (با فرض وجودِ تنها یک میکروکنترلر فرمانده).

                          اگر چند تا میکروکنترلر داشته باشیم که هر کدوم با چند تا سنسور در ارتباطند، برای انتقال اطلاعات مابین میکروکنترلرها باید یه راهی در نظر بگیریم. این راه می تونه SPI، I2C، Ethernet یا یه باس ساده موازی (8/16 بیتی) باشه. شما به هر میکروکنترلر یه ID (یه شماره) تخصیص میدی، یه میکروکنترلر میشه فرمانده، بقیه فرمانبر. یه پروتکل طرح می کنی و داده ها رو به صورت 8/16 بیتی منتقل می کنی. سیگنالهای Read/Write، Enable، CLK و غیره هم بسته به نظر شما می تونند تو این طرح وجود داشته باشند.
                          بیایید با Google آشتی کنیم!

                          دیدگاه


                            #14
                            پاسخ : پیشنهاد برای طراحی یک سیستم میکروکنترلری

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

                            شما بگو چقده میخوای هزینه کنی ؟
                            دعایم کنید که شاید به واسطه ی دعای خیر شما مشکلاتم حل شود .

                            دیدگاه


                              #15
                              پاسخ : پیشنهاد برای طراحی یک سیستم میکروکنترلری

                              چونکه به نظر می آید شما با Ethernet و RS485 به صورت عملی تجربه کافی را ندارید، و چونکه به نظر می آید پروژه شما صنعتی می باشد، پیشنهاد می کنم کار رو به یک شرکت و یا یک شخص وارد در این ضمینه واگذار کنید، چونکه عملا نکات زیادی وجود داره که در ظاهر دیده نمیشه و این تصور ممکنه پیدا بشه که با یک هزینه خیلی پایین بشه یک کار صنعتی با کیفیت انجام داد.

                              دیدگاه

                              لطفا صبر کنید...
                              X