در دنیای مدرن، شبکههای کامپیوتری بخش جداییناپذیر از بسیاری از سیستمها و دستگاهها هستند. یکی از مهمترین تکنولوژیها برای برقراری ارتباط میان این سیستمها، اترنت است که به طور گسترده در شبکههای محلی و سیستمهای تعبیهشده (Embedded Systems) مورد استفاده قرار میگیرد. راهاندازی شبکه اترنت در سیستمهای تعبیهشده نیازمند توجه به سختافزار، پروتکلها و نحوه تعامل بین اجزای مختلف است.
در دوره آموزشی راه اندازی Embedded Ethernet ، مراحل مختلف راهاندازی اترنت نهفته از طراحی سختافزار تا کدنویسی پروتکلها و نحوه ارتباط اجزاء مختلف بررسی شده است. امروز با قسمت اول راه اندازی Embedded Ethernet همراه سیسوگ باشید.
اگر بخواهیم در چند جمله، به مخاطب که احتمالا یک مهندس طراح الکترونیک هست؛ بگیم که چطور باید اترنت رو راه بندازه و در واقع نقشه مسیر یا سرنخ رو بهش بدیم؛ اینطور باید بگیم: ” ابتدا باید سخت افزار اترنت رو راه بندازید؛ این سخت افزار از دو قسمت تشکیل شده. کنترلر اترنت و ترانسیور PHY. در نتیجه اگر میکروکنترلرتون، تنها بخش اترنت کنترلر داره، باید PHY رو جدا تهیه کنید. بعد از راه اندازی تراشه کنترلر اترنت به همراه PHY؛ باید بتونید با استفاده از میکروکنترلر و تراشه اترنت؛ فریم هایی به فرمت Ethernet ii که بهش IEEE 802.3 هم میگن؛ رو ارسال و دریافت کنید. از اینجا به بعد، مابقی پروتکل ها عموما در نرم افزار میکروکنترلر پیاده سازی میشه.
پیشنهاد من اینه در مرحله اول ARP و IP کدنویسی بشوند. در مرحله بعد ICMP، که بتونید حداقل دستور پینگ رو اجرا کنید و از برقراری یک ارتباط درست اطمینان کسب کنید. در گام بعدی UDP و TCP و در گام های بعد پروتکل های لایه های بالاتر مثل DHCP ,HTTP ,DNS یا SMTP “. چون اولین و سخت ترین مرحله، راه اندازی تراشه هست؛ شاید نیاز باشه یک بار متن رو بخونید و بعد برید سراغ سخت افزار!
اگه قرار باشه چند وسیله با هم ارتباط داشته باشند ما یک شبکه داریم. واضحه که شبکه های مختلفی بر اساس نیاز طراحی شده ن و از یک جایی به بعد تصمیم گرفته شده مفاهیم و مدل هاي شبکه، استاندارد بشه تا هر شبکه و یا تجهیز جدیدی، با استفاده از این قالب استاندارد، دارای تعریف ساده ای باشه که براحتی بشه باهاش آشنا شد و اون رو راه انداخت. احتمالا شما هم نام دو مدل OSI و TCP/IP Stack رو شنیدید.
در این دو مدل که شباهت بسیار زیادی هم با هم دارند؛ سعی شده تمام وظایف یک شبکه در قالب 7 (در دومی 5) لایه توضیح داده بشه. هر لایه وظیفه مشخصی داره و عملا شبکه به صورت ماژولار تعریف شده. برای شروع نیاز نیست که با تمامی این لایه ها آشنا باشید. اما اگر بخواهیم به طور خلاصه و در چند سطر رفتار شبکه رو توضیح بدیم؛ اینطوریه که داده اصلی یا نهایی که مورد استفاده کاربر یا سیستم هست؛ در هنگام ارسال، از بالاترین لایه مسیر خودش رو شروع میکنه؛ در هر لایه یک بخش به عنوان هدر (Header ، سرآمد) به اون اضافه میشه و تحویل لایه پایین تر میشه. بالاخره داده ها به لایه دوم می رسند.
در این لایه علاوه بر هدر؛ یک فوتر (footer) هم به داده ها اضافه میشه و به لایه اول داده میشه. لایه اول هیچ هدر یا فوتری اضافه نمیکنه و کارش، فقط تبدیل 0 و 1 های دیجیتال به سیگنال های فیزیکی (ولتاژ، موج، نور) هست یا به قولی ” ارسال بیت های منطقی توسط رسانه فیزیکی (medium)”. در سمت گیرنده عکس این عملیات اجرا میشه. این داده ها میتونن داده های چند سنسور از یک برد الكترونيكی باشند یا تگ های HTML برای نمایش در جستجوگر (Browser) شما. تفاوت دو مدل در اینه که لایه های 5 تا 7 در مدل OSI در مدل TCP/IP تنها در یک لایه قرار داده شده ن و وظايف 3 لايه بالايي در يك لايه خلاصه شده است(در قسمت های بعدی این دو مدل رو کامل تر بررسی کردیم). برد شما در ساده ترین حالت باید لایه های 1 و 2 رو پوشش بده؛ مابقی لایه ها میتونن در نرم افزار یا سخت افزار اجرا بشن.
یک برد با قابلیت برقراری ارتباط اترنت، در ساده ترین حالت به صورت شکل 1 بر روی برد الکترونیکی ایجاد می شود. همونطور که گفتیم “ساده ترین حالت” یعنی اینکه تنها لایه های 1 و 2 از مدل، درون سخت افزار هست.
سخت افزار اترنت برای پیاده سازی لایه های 1 و 2 از مدل شبکه
سخت افزار مربوط به شبکه از قسمت های زیر تشکیل شده؛ در ابتدا پردازنده ما هست که برای این قسمت از یک میکروکنترلر استفاده کرده ایم. میکروکنترلر در واقع مبدا یا مقصد داده نهایی است و لایه های 3 تا 7 رو در نرم افزار پوشش میده.
بخش های دیگه عبارتند از :
امور مرتبط با تشکیل فريم (frame) اترنت اینجا انجام می شود.
امور مرتبط به آدرس دهی در اینجا انجام می شود.
به مجموع دو قسمت LLC و MAC در مدل شبکه OSI (ضمیمه [7]) اصطلاحا لایه لینک داده گفته می شود. این قسمت، لایه دوم از مدل های OSI و TCP/IP Stackرا تشکیل می دهد و گاهی به تراشه های آن فقط با عنوان “مک کنترلر” یا MAC یاد می شود. لایه یک در مدل های شبکه، قسمت PHY یا لایه فیزیکی است كه در شكل بالا با شماره (3) مشخص شده است.
چرا مستقل؟ چون فريم اترنت در حالت منطقی مستقل از لایه فیزیکی و نحوه ارسال بیت ها است. بیت ها ممکن است به صورت پالس های ولتاژ یا جریان، پالس های نور یا حتا به صورت بی سیم ( امواج ) ارسال شوند. در این نوع ارتباط؛ در هر کلاک؛ 4 بیت از MAC به PHY ارسال می شود؛ پس برای یک ارسال یک بایت (8 بیت) تنها به دو کلاک نیاز است. در سرعت 10Mb این بخش با کلاک 2.5MHz و در سرعت 100Mb با کلاک 25MHz کار میکند.
اما از آنجایی که در این ارتباط، به 16 پین نیاز است؛ برای کاهش تعداد پین (به 9 پین)، از نوع ارتباط RMII (Reduced MII) استفاده می شود که در هر کلاک دو بیت ارسال/دریافت می کند و به کلاک 50MHz نیاز دارد. نوع تک بیتی آن به نام SNI(Serial Network Interface) یا SMII نیز وجود دارد که 7 پین نیاز دارد و فقط در حالت 10Mb استفاده می شود (کمتر هم مورد استفاده قرار می گیرد). اطلاع در مورد MII، وقتی حایز اهمیت است که بخش کنترلر اترنت از بخش ترانسیور PHY جدا باشد (مبحث گسترده ای هم هست). توجه داشته باشید که ارتباط MII برای ارسال و دریافت داده های روی لایه فیزیکی و تحویل به /از مک کنترلر استفاده می شود.
برای ارتباط با خود تراشه (منظور ارتباط MAC و PHY) و تنظیم ثبات های داخلی آن از ارتباط سریال جداگانه ای با دو پین برای کلاک و داده استفاده می شود. از آنجاییکه عملکرد بخش PHY در اسناد IEEE به صورت استاندارد تعریف شده است؛ تراشه های PHY، ساختار داخلی و عملکرد تقریبا مشابهی دارند و کدهای پیاده سازی شده برای هر تراشه را می توان با کمترین تغییر، برای تراشه های دیگر به کار گرفت. (برای 10BaseT و 100BaseTX دو سند IEEE802.3i, IEEE802.3u رو ببینید)
وظیفه این بخش تبدیل بیت های منطقی به ماهیتی (سطوح ولتاژ، جریان الکتریکی، نور) است که سخت افزار باید بفهمه تا بتونه ارسال یا دریافت کنه. در حالت ارسال، بخش PHY از طرف مک کنترلر بایت هایی را دریافت میکنه ( به پهنای 4 ؛ 2 یا 1 بیت) و اون ها رو به پالس هایی با ماهیت مشخص تبدیل میکنه. در حالت دریافت نیز عکس عمل فوق انجام می گیرد. همچنین این بخش مسوولیت پیاده سازی قابلیت هایی مثل AutoNegotiation, Cillision detect, LTP و … رو بر عهده داره؛ در نتیجه بخش PHY با روش ارسال و دریافت داده ها؛ بررسی خطا؛ تست برقراری لینک و تعیین خودکار نوع ارتباط ( سرعت؛ دوطرفه بودن و..) ارتباط مستقیم داره. گاهی به این بخش، تنها Transceiver یا فقط PHY گفته میشه.
چرا وابسته؟ چون به دلیل نوع رسانه (Media یا Medium) انتخابی و ارتباط فیزیکی؛ بايد بیت ها به گونه ای به لایه فیزیکی و ملحقات آن مثل فیلتر، داده شوند که قابل تفسیر و اجرا باشند. مجددا یادآور می شویم که بیت ها ممکن است به هر نحوی (ولتاژ ، جریان، نور یا امواج الکترومغناطیسی) ارسال شوند و همونطور که در شکل مشخصه، MDI رابط بین PHY و فیلتر (یا به طور کلی سوکت) هست. گاهی به این بخش PMD (Physical Medium Dependent) هم گفته میشه.
این قسمت شامل یک فیلتر پایین گذر؛ مختص ارسال بیت ها به صورت پالس های الکتریکی دیفرانسیلی است و معمولا به صورت ترانسفورماتوری پیاده سازی می شود اما امکان ساخت آن با روش های دیگر مثلا با خازن نیز وجود دارد (در حالتی که ارتباط در یک محیط آزمایشگاهی و احتمالا در یک فاصله کم صورت می گیرد). این قسمت ممکن است در انواع دیگر، طور دیگری باشد یا حتا نباشد. همچنین به یاد داشته باشید که تحریک ترانس ها در دو مد جریانی یا ولتاژی ممکنه انجام بشه.
در انتها نیز سوکت رو داریم که در حالت استاندارد از سوکت RJ45 استفاده می شود اما بنا به سلیقه طراح؛ انتخاب هر سوکتی که حداقل دارای 4 پین باشد؛ آزاد است (مثلا در دوربین های صنعتی یا قطعات محرک، از انواع سوکت قفل شونده استفاده می شود).
نویسنده شو !
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.