اطلاعیه

Collapse
No announcement yet.

ENC28j60 برای همه !!!!!!

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

    ENC28j60 برای همه !!!!!!

    در این تاپیک ، نحوه راه اندازی ماژول ENC28j60 به صورت کامل شرح داده شده .
    یک کتابخونه تهیه کردم ، به طوری که برای همه میکرو ها و در تمام کامپایلر ها جواب بده .
    فایل زیر رو دانلود کنید و از حالت فشرده خارج کنید .
    یک فایل PDF توی پوشه هست که در اون همه چیزو کامل توضیح دادم .

    #2
    پاسخ : ENC28j60 برای همه !!!!!!

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

    دیدگاه


      #3
      پاسخ : ENC28j60 برای همه !!!!!!

      اگه میخاییم کلاینت بشه ، یعنی اینکه قراره با یه سرور ارتباط برقرار کنه .
      قدم اول اینه که IP سرور رو بدونیم . ( فرض میکنم که میدونیم )
      قدم دوم اینه که به این سوال جواب بدیم : <آیا سرور روی همون شبکه ای است که ماژول قرار داره یا نه ؟> . بحث SUBNET MASK برای همینه . پس شما SUBNET MASK اون شبکه ای که ماژول روش قرار داره رو هم باید بدونی .
      قدم سوم : فرض کنیم که
      سرور روی همون شبکه ای است که ماژول قرار داره : اولین کار اینه که به سرور یک پکت ARP بفرستی تا MAC آدرس سرور رو به دست بیاری . کد زیر رو من در یکی از پروژه هام نوشتم
      کد:
      void CLNT_ARP(void)
      {
         unsigned char BFR[50];
         BFR[0]=0xFF;
         BFR[1]=0xFF;
         BFR[2]=0xFF;
         BFR[3]=0xFF;
         BFR[4]=0xFF;
         BFR[5]=0xFF;
         BFR[6]=mymac[0];
         BFR[7]=mymac[1];
         BFR[8]=mymac[2];
         BFR[9]=mymac[3];
         BFR[10]=mymac[4];
         BFR[11]=mymac[5];
         BFR[12]=0x08;
         BFR[13]=0x06;
         BFR[14]=0x00;
         BFR[15]=0x01;
         BFR[16]=0x08;
         BFR[17]=0x00;
         BFR[18]=0x06;
         BFR[19]=0x04;
         BFR[20]=0x00;
         BFR[21]=0x01;
         BFR[22]=mymac[0];
         BFR[23]=mymac[1];
         BFR[24]=mymac[2];
         BFR[25]=mymac[3];
         BFR[26]=mymac[4];
         BFR[27]=mymac[5];
         BFR[28]=myip[0];
         BFR[29]=myip[1];
         BFR[30]=myip[2];
         BFR[31]=myip[3];
         BFR[32]=0x00;
         BFR[33]=0x00;
         BFR[34]=0x00;
         BFR[35]=0x00;
         BFR[36]=0x00;
         BFR[37]=0x00;
         BFR[38]=GATEWAY_IP[0];
         BFR[39]=GATEWAY_IP[1];
         BFR[40]=GATEWAY_IP[2];
         BFR[41]=GATEWAY_IP[3];
         enc28j60PacketSend(42,BFR);
         ARP_STATE=1;
      }
      شما باید در مورد پروتکل ARP اطلاعات داشته باشین .
      در کد بالا به جای GATEWAY_IP ، باید SERVER_IP رو قرار بدین .

      دلیل: ادغام دو پست برای جلوگیری از اسپم

      اگه همه ی کارها رو درست انجام داده باشی و سرور هم در دسترس باشه ، سرور به این پکت یک جواب میده و در اون جواب ، مک آدرس سرور قرار داره
      قدم چهارم : فرض کنید که سرور و ماژول ، روی شبکه های مختلفی قرار دارن . در این حالت ، روی اون شبکه ای که ماژول قرار داره ، قطعا باید یک GATEWAY باشه که ارتباط بین شبکه های مختلف رو داره برقرار میکنه . در این حالت شما باید IP این GATEWAY رو بدونی و بعدش باز هم یک پکت ARP میفرستی البته مقصد این پکت همون GATEWAY است . اگه همه ی کارها رو درست انجام داده باشی و GATEWAY هم در دسترس باشه ، GATEWAY به این پکت یک جواب میده و در اون جواب ، مک آدرس GATEWAY قرار داره .

      دلیل: ادغام دو پست برای جلوگیری از اسپم

      قدم پنجم : فرض کنیم که شما میخای یک ارتباط TCP باسرور داشته باشی . اول باید اینو بدونی که ساختار ارتباطات در شبکه به صورت لایه لایه است . یعنی مثلا اگه شما یک پکت TCP میفرستی ، در اصل داری یک پکت اترنت میفرستی که توی اون ، یک پکت IP قرار داره و باز هم توی این پکت IP ، یک پکت TCP قرار داره و شاید مثلا توی همون پکت TCP ، یک پکت HTTP باشه !!!!!!!!!
      خب ، در ارتباط TCP ، اول باید HAND SHAKING انجام بدی . یعنی شما یک پکت SYN میفرسی و سرور با یک پکت SYN/ACK جواب میده . بعدش شما یک پکت ACK میفرستی . عکس زیر ، از نرم افزار WIRE SHARK گرفته شده . در این عکس ، انجام واقعی HAND SHAKING رو میبینید .






      جدیدترین ویرایش توسط FeriSali; ۰۱:۰۰ ۱۳۹۸/۱۰/۰۷.

      دیدگاه


        #4
        پاسخ : ENC28j60 برای همه !!!!!!

        به این کار میگن SOCKET PROGRAMMING .
        با انجام موفق مراحل بالا ، پورت یا سوکت از سمت سرور باز شده ( شما یک کانکشن با سرور داری). فرض کنیم که در لایه بعد از TCP ، شما از پروتکل HTTP ، استفاده میکنی . در این مرحله یک پکت HTTP و با دستور GET به سرور میفرستی و همه اطلاعاتی که میخای به سرور بفرستی رو توی همین پکت GET میچپونی !!!!!!!! به این کار میگن GET METHOD . سرور با یک پکت ACK به شما پاسخ میده و بلافاصله بعدش با یک پکت که شامل DATA هست . شما یک پکت ACK به سرور میفرستی و تمام . در انتها هم باید کانکشن رو ببندی .


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


        اینو یادم رفت که بگم . در تمام مراحل بالا ( مراحلی که بعد از ARP قرار دارن ) ، در لایه اترنت ، اگه سرور و ماژول روی یک شبکه هستن ، مک آدرس سرور رو قرار میدین . اگه سرور و ماژول روی یک شبکه نیستن ، مک آدرس GATE WAY رو قرار میدین .
        جدیدترین ویرایش توسط FeriSali; ۰۱:۱۹ ۱۳۹۸/۱۰/۰۷.

        دیدگاه


          #5
          پاسخ : ENC28j60 برای همه !!!!!!

          عکس زیر تمام مراحل بالا را نشان میدهد

          ( از ردیف 141 تا ردیف 150 )


          عکس زیر هم انجام پروتکل ARP را نشان میدهد . ( ردیف 84 و 85 )
          جدیدترین ویرایش توسط FeriSali; ۰۱:۳۷ ۱۳۹۸/۱۰/۰۷.

          دیدگاه


            #6
            پاسخ : ENC28j60 برای همه !!!!!!

            نوشته اصلی توسط FeriSali نمایش پست ها
            در این تاپیک ، نحوه راه اندازی ماژول ENC28j60 به صورت کامل شرح داده شده .
            یک کتابخونه تهیه کردم ، به طوری که برای همه میکرو ها و در تمام کامپایلر ها جواب بده .
            فایل زیر رو دانلود کنید و از حالت فشرده خارج کنید .
            یک فایل PDF توی پوشه هست که در اون همه چیزو کامل توضیح دادم .
            http://uplod.ir/w7czziqndom7/enc28j60.zip.htm

            با سلام و احترام
            خیلی ممنون از نمونه کدی که قرار دادید .
            در صورت امکان نمونه کد برای حالت کلاینت بصورتی که یک متد GET یا POST به یک IP خاص ارسال بشه قرار بدید خیلی عالی میشه و فک کنم این تاپیک برای این ماژول در کل اینترنت کافی باشه .

            دیدگاه


              #7
              پاسخ : ENC28j60 برای همه !!!!!!

              با تشکر از شما جناب مهندس .
              من بارها همچین کدی رو نوشتم و این ماژول رو در حالت کلاینت در پروژه های مختلف به کار بردم .
              ولی تمام اون پروژه ها رو به مشتری فروختم و اجازه انتشار کد اون ها رو ندارم .
              اگه یه کم سرم خلوت بشه ، یه نمونه کد رو از اول مینویسم و همینجا آپلود میکنم .

              دیدگاه


                #8
                پاسخ : ENC28j60 برای همه !!!!!!

                من نمونه کدها رو روی سایت upload.ir قرار داده بودم .
                مثل اینکه این سایت این فایل رو حذف کرده .
                دوستانی که این فایل رو دانلود کرده بودن ، لطفا اونو روی یه سایت معتبر آپلودش کنن و لینکشو اینجا قرار بدن .

                دیدگاه


                  #9
                  پاسخ : ENC28j60 برای همه !!!!!!

                  برنامه رو روی LPC1768ریختم اما جواب نمیده به نظرتون مشکل از چی میتونه باشه

                  دیدگاه


                    #10
                    پاسخ : ENC28j60 برای همه !!!!!!

                    فرکانس lpc1768 چقدره ؟ الان با چه فرکانسی کار میکنه ؟
                    چه کریستالی به 1768 وصل شده ؟
                    آیا pll فعاله ؟ CCLK چقدره ؟
                    چه طوری به ماژول وصل شدی ؟ IP های درست رو وارد کردی ؟

                    دیدگاه


                      #11
                      پاسخ : ENC28j60 برای همه !!!!!!

                      سلام
                      فایل نمیشه دان کرد. میشه چک کنید

                      دیدگاه


                        #12
                        پاسخ : ENC28j60 برای همه !!!!!!

                        سروری که فایل رو روش آپلود کرده بودم ، فایل ها رو حذف کرده .
                        یه سرور خوب معرفی کنین تا مجددا فایل رو آپ کنم .

                        دیدگاه


                          #13
                          پاسخ : ENC28j60 برای همه !!!!!!

                          کریستال 12مگ وصل هست/از این هدربرد های ecaهستش بردم/من برنامه شمارو اصلا دست نزدم که جواب داده فقط پایه های enc25j60رو به
                          cs-p0.5
                          sck-p0.7
                          miso-p0.8
                          mosi-p0.9
                          ,وصل کردم.با کابل شبکه به لپ تاپ وصل کردم واینترنت اکسپلورر ipرو زدم
                          جدیدترین ویرایش توسط morteza.msc; ۲۲:۰۸ ۱۳۹۸/۱۱/۰۷.

                          دیدگاه


                            #14
                            پاسخ : ENC28j60 برای همه !!!!!!

                            به تنظیمات کارت شبکه لب تاب برو و یک IP به لب تابت بده که با IP دستگاه در یک شبکه باشه .
                            برای اتصال به دستگاه فقط از موزیلا استفاده کنید .
                            به تنظیمات موزیلا برید و favicon رو غیر فعال کنید .

                            دیدگاه


                              #15
                              پاسخ : ENC28j60 برای همه !!!!!!

                              نوشته اصلی توسط FeriSali نمایش پست ها
                              سروری که فایل رو روش آپلود کرده بودم ، فایل ها رو حذف کرده .
                              یه سرور خوب معرفی کنین تا مجددا فایل رو آپ کنم .


                              پرشین‌گیگ - اولین و بزرگترین ارائه دهنده خدمات زیرساخت ابری در ایران

                              دیدگاه

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