پیشنهاد میکنم، خیلی خودتون رو درگیر این لغات اختصاری و اصطلاحاتی که در قسمت قبل معرفی کردیم نکنید. به علت پیچیدگی ارتباط، سعی شده طراحی، کاملاً ماژولار باشه و هر بخش کار مخصوصی رو انجام بده. شاید در ابتدا گیجکننده به نظر برسه اما کمکم با این کلمات مأنوس شده و متوجه میشویم که بودنشان مفید (و گاهی الزامی) هست. بهعنوانمثال اگر بخواهیم از فیبر نوری استفاده کنیم؛ کافیه قسمت PHY تغییر کنه و همچنین سوکت اختصاصی فیبر نوری استفاده بشه و مابقی بخشها مثل سابق به کارشون ادامه میدن.
بخش 1: پردازنده یا میکروکنترلر
بخش 2: کنترلر اترنت
بخش 3: فرستنده/گیرنده PHY
بخش 4: فیلتر و سوکت
در تجهیزات صنعتی و کارتهای شبکه قدیمی، بخش 4 واقعا دارای دو قسمت مجزای سوکت و فیلتر بود (قطعه سیاه رنگ در تصویر سمت راست از شکل 2)؛ اما در حال حاضر عموما بخش فیلتر درون سوکت جاسازی میشه (کمتر شدن فضای اشغال شده روی PCB ؛کم شدن فاصله سوکت تا فیلتر و همچنین زیباتر شدن برد) و در نتیجه سوکت شبکه، دارای فیلتر نیز هست.
سوکت HR911105A که ما در بردمون استفاده کردیم، هر دو بخش را داراست. لازم به ذکر است نوع نری روی کابل و مادگی روی برد قرار می گیرد. همچنین در شکل 2 پین اوت و رنگبندی استاندارد یک کابل اترنت را مشاهده می کنید. دو استاندارد برای رنگ بندی سیم ها تعریف شده اما توجه داشته باشید که بسته به نوع کابل؛ straghit (مستقیم یا یک به یک) یا cross (ضربدری یا متقاطع؛ اتصال TX یک سمت به RX طرف دیگر و بالعکس) و همچنین با توجه به سلیقه شرکت سازنده، ممکن است رنگبندی متفاوت باشد. به علت قابلیت تشخیص خودکار نوع کابل در تراشه (IC, Chip) های جدید، استفاده از هر دو نوع کابل (مستقیم یا ضربدری) میسر است. در قسمت های آینده توضیحات بیشتری در این مورد داده خواهد شد.
شکل 2: سوکت RJ45
و اما نکته مهم در هنگام طراحی سختافزار از دید یک مهندس طراح الکترونیک، ترکیب بخشهای 1 تا 3 در شکل 1 هست؛ که چندین حالت را بوجود می آورد.
یک حالت اینه که هر سه قسمت، درون یک تراشه باشند؛ یعنی میکروکنترلر، هم کنترلر اترنت رو داشته باشه و هم فرستنده/گیرنده PHY رو؛ مثل بعضی از میکروکنترلرهای خانواده PIC همانند PIC18F87J60. این میکروکنترلرها عموماً قیمتی بیشتر از میکروهای ساده دارند و کاربر رو در انتخاب میکروکنترلر محدود میکنند.
حالت دیگه اینه که میکروکنترلر ما فقط دارای کنترلر اترنت باشه؛ لذا ما باید بخش PHY رو جداگانه به مدار اضافه کنیم. مثل میکروهای STM32f105/107 یا LPC1763~69 و جهت بخش PHY نیز میتوان از تراشههایی مثل W3100A,DP83848,LAN8742 استفاده نمود.
حالت سوم اینه که هر سه بخش، جدا باشند. این حالت در حال حاضر بهندرت استفاده میشود؛ چون عموماً بخش كنترلر اترنت، یا درون پردازنده قرار میگیرد یا همراه با قسمت PHY ارائه میشود. در حالتهای دوم و سوم؛ شما علاوه بر اینکه باید به ارتباط با مک کنترلر مسلط باشید؛ باید به ارتباط MII و بخش PHY نیز تسلط کافی داشته باشید تا بتونید برد رو اصطلاحاً راهاندازی کنید. راهاندازی این دو بخش خودش نیاز به وقت و اطلاعات دوچندان داره.
و حالت نهایی که مقصود ما نیز هست (به این دلیل که بتوانیم از اترنت، روی هر میکروکنترلری حتی میکروهای ضعیفتری مثل خانواده AVR هم استفاده کنیم) اینه که از تراشهای استفاده کنیم که دارای هر دو بخش کنترلر اترنت و فرستنده/گیرنده PHY باشه. در این سند، از تراشه ENC28J60 تولید شرکت میکروچیپ استفاده میکنیم. میکروکنترلر نیز تراشه STM32f103RBT6 استفاده شده که بهراحتی میتونه با یه میکروی ARM دیگه جایگزین بشه و با کمی تغییر در کد، میتوانیم از هر میکروی دیگه ای استفاده کنیم.
فقط کافیه میکروکنترلر ما دارای پورت SPI برای برقراری ارتباط با تراشه ENC28j60 باشه. جهت اطلاع؛ برنامه هم در محیط KEIL نوشته شده که زیاد مهم نیست. هدفمون اینه که برد ما بتونه بدون واسطه و با استفاده از ارتباط اترنت و پروتکلهای آن با یک کامپیوتر در ارتباط باشه.
لازم به ذکره که یه شبکه واقعی بسیار پیچیدهتر از این حالته و تعداد زیادی وسایل میانی مثل سوئیچها (switch) و روترها (مسیریاب، Router) و … داخل شبکه وجود خواهند داشت. در ادامه متوجه ميشيم كه ميشه در حضور سوئیچ (مودمهای خانگی معمولاً سوئیچ هم هستند) هم، همين كار رو انجام داد؛ ولي چون در شبكه ما، فقط دو دستگاه (هاست، host) وجود دارد؛ ما از سوئیچ استفاده نكرديم و اتصال بین کامپیوتر و برد، مستقیم هست. بعد از بخش ابتدایی و اصلی این سند (در ضمایم)، مفاهیم شبکه رو دوباره بررسی میکنیم و این قطعات و تجهیزات رو از دید یک مهندس الکترونیک معرفی میکنیم. دوباره یادآوری میکنیم که نوع ارتباط شما با شبکه (مثلاً اینکه شما فروشنده تجهیزات هستید؛ طراح و نصاب یک شبکهاید؛ مدیر یا ادمین شبکه هستید يا برنامهنویس تحت وب يا…)، در اینکه چه بخشهایی رو باید بیشتر بهش توجه کنید، حایز اهمیته. ما از دید یک مهندس الکترونیک که قصد داره بین برد خودش و تجهیزات دیگه، از ارتباط اترنت و پروتکل هاش استفاده کنه؛ به مبحث شبكه نگاه میکنیم.
احتمالاً شنيديد كه در هر مدل از طراحی یک شبكه؛ لایههای زيادي وجود دارند. امروزه، تراشههای کنترلر اترنت، قابلیتهای گوناگونی دارند و گاهی پروتکلهای واقع در چندلایه رو پشتیبانی میکنند. اما یک تراشه کنترلر اترنت، حداقل باید بتونه لایه دوم، یعنی دریافت و ارسال فریمهای اصلی اترنت مبتنی بر پروتکل Ethernet ii رو انجام بده (لایه اول توسط بخش PHY اجرا میشود). ما، برای یادگیری مفاهیم اصلی؛ مابقی پروتکلها در لایههای بالاتر رو در نرمافزار پیادهسازی میکنیم؛ اما اگر تراشه، قابلیت اجراي لایههای بالاتر رو داشته باشه (مثل W5500, W5100)؛ میشه از ظرفیتهای تراشه هم استفاده کرد.
شکل 3 که از دیتاشیت ENC برداشته شده؛ نحوه اتصال این تراشه به میکروکنترلر و همچنین سوکت رو نشون میده. چون میکروکنترلر 3.3 ولتی هست؛ Level Shifter بین میکروکنترلر و ENC28J60 نیاز نیست. از پایه INT هم استفاده نکردیم. پس تنها چهار پین برای ارتباط SPI و یک پین برای Reset استفاده شده و اتصال، مستقیم هست.
سوکت های اترنت هم، از سمت بیرون ( RJ45 در شکل 3) با چهار پین به کابل شبکه متصل میشن. این چهار پین عبارتند از:
شکل 3: ارتباط تراشه ENC28J60 با سوکت حاوی فیلتر و پردازنده
توجه داشته باشید؛ سوکت اترنتیای که ما استفاده میکنیم با شماره HR911105A از شرکت HanRun، دارای فیلتر داخلی و LEDهای وضعیت هم هست، پس قسمتهایی که داخل کادر در شکل 3 مشخص شده اند؛ داخل سوکت قرار دارند (با رنگ قرمز اگر فایل pdf رو میخونید). شماره های کنار آنها نیز شماره پین در پشت سوکت HR911105A رو نشون میده که در شکل 4 جداگانه ترسیم شده ن.
از پشت سوکت (chip side در شکل 4) هم 12 پین در اختیار ماست که ما از 6 تای اون برای سیگنال های ارسال و دریافت استفاده می کنیم؛ 4 پین برای سیگنال های دیفرانسیلی TX,RX؛ به علاوه 2 پین که سروسط ترانسفورماتورهای فیلترینگ هستند.
چهار پین هم سرهای LED های روی سوکت هستند. این LED ها برای نمایش بصری وضعیت ارتباط همچون برقراری لینک (عموما به رنگ سبز) و ارسال/دریافت بیت ها (رنگ زرد) هستند. قابلیت تعریف نوع عملکرد و زمان روشن ماندن آن ها نیز از طریق ثبات های داخلی (register) وجود دارد. شکل 4 از دیتاشیت سوکت HR911105A برداشته شده است.
شکل 4: پین اوت سوکت HR911105A
همانطور که در تصویر 3 مشخص است.
نویسنده شو !
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.