بالاخره
بعد از مدتی که شروع به کار روی این پروژه کردم طرح کامل
شد . خیلی وقته که روی این طرح کار میکردم ولی کارهای جانبی دیگه مثل ساخت
GSM و
CallerID و چند طرح دیگه نمیگذاشت که
این طرح که برام خیلی جالب بود سریع پیش بره . به هر صورت توی هفته گذشته اکثر
وقتم رو گرفت ولی بالاخره کامل شد .
اما
در مورد پروژه : مدتی قبل یکی از دوستان پیشنهاد ساخت یک سیستم محافظ سرور دادند
هدف این بود که دستگاهی ساخته بشه که کند شدن یا هنگ کردن سرور رو تشخیص بده و
سرور یا مودم رو ریستارت کنه . طرز کار هم به این صورت تعیین شد که دستگاه باید
سرور رو هر چند ثانیه Ping کنه و در صورت بالا رفتن زمان
دریافت پاسخ سرور رو ریستارت کنه . این طرح باعث شد که به فکر طرح یک
سیستم کامل برای ارتباط دادن میکروکنترلر با پروتکلهای مختلف شبکه بیفتم با اینکار
علاوه بر این طرح کاربردهای بسیار دیگه ای هم میشد با این سیستم انجام داد . توی
شروع کار چند نمونه خارجی از Firmware های مربوط به ارتباط
میکرو با شبکه رو دیدم زیادی پیچیده بودن اصلا باهاشون راحت نبودم حجم زیاد کدها
سر در آوردن ازشون رو مشکل میکرد . به این فکر میکردم که بعدها اگه بخام تغییری
توی کدها بدم کارم خیلی مشکل میشه . برخی از این کدها هم خیلی پر حجم بودن و
تقریبا تمام حجم حافظه میکرو رو میگرفتن و یا حتی فقط روی میکرویی با حداقل
4
کیلوبایت حافظه (Atmega64) قابل اجرا بودن . به هر حال
علاقه زیادی داشتم که خودم تمام برنامه رو بنویسم و پروتکلهای زیر بنایی شبکه رو
تجربه کنم . البته اصلا کار ساده ای نبود !
بعد از مدتی کار طرح کامل شد. سیستم شامل
یک میکرو AVR هستش که از طریق یک بورد رابط شبکه که طراحی
کردم با استفاده از آی سی RTL8019AS قادر بود با یک شبکه
LAN ارتباط برقرار کنه . برای اینکار پروتکلهای زیربنایی شبکه رو به
زبان C و توسط کامپایلر CodevisionAVR
پیاده سازی کردم . پروتکلها از ابتدایی ترین روتینهای مربوط به راه
اندازی درایور شبکه تا پردازش پکتهای ورودی پاسخ به درخواست
ARP
و تا پروتکلهای پیچیده تری مثل TCP رو توی برنامه پیاده
سازی کردم . برنامه خیلی کوچکتر از نمونه های مشابه ساده تر شخصی تر و سریعتر بود
(پاسخ Ping با یک کریستال
14 مگاهرتزی
زیر یک میلی ثانیه بود ) .
مشخصات Firmware نوشته شده برای شبکه تا بحال :
-
ARP ( Send and Request ) , ICMP (Send and
Request) , UDP , TCP , SMTP , HTTP
-
بروز رسانی
ARP Cache
با ارسال ARP یا در حین دریافت packet
جدید .
-
انتقال
خودکار پکتهای خارج از شبکه به روتر .
-
حجم
کم و قابلیت اجرا شدن حتی روی یک میکرو
ATmega8 .
-
پشتیبانی از
GET و POST
در HTTP .
-
تشخیص خطاهای
HTTP 404 و HTTP 400
و HTTP 501 .
-
ارسال تصاویر استفاده شده در صفحات
HTML به صورت داخلی (نرم افزاری برای تبدیل عکس به آرایه مورد نیاز در
این بخش نوشته شد).
اما در نهایت سیستم مورد نیاز اولیه برای
تشخیص کند شدن یا هنگ کردن سرور هم حاظر شد این سیستم با استفاده از Firmware
نوشته شده که توضیحات اولیه اونرو دارم کار میکنه و در صورت بالا رفتن
زمان پاسخ Ping سرور (که IP
اون توی رابط HTML برنامه تعیین میشه) رله ای رو
فعال میکنه تا سرور ریستارت بشه و همچنین به شماره ای که برای سیستم تعریف شده تماس
میگیره (با سیستم شماره گیری تن که توی بخش پروژه های آموزشی هست) و آلارم یا
پیغامی رو پخش میکنه . تمامی تنظیمات دستگاه از طریق یک رابط HTML
انجام میشه به این صورت که IP پیش فرض
سیستم (یا IP دلخواه کاربر بعد از انجام تنظیمات)
توی یک مرورگر وارد میشه , دستگاه به عنوان یک WebServer
عمل میکنه و یک صفحه HTML رو به مرورگر
میفرسته تا کاربر تغییرات رو اعمال کنه و در نهایت باز صفحه به دستگاه ارسال
(با متد POST) میشه و
دستگاه تنظیمات کاربر رو توی خودش ذخیره میکنه ( مثل صفحه رابط WAP
یا برخی مودمهای ADSL یا Router
). اسم این سیستم
Server GUARD در نظر گرفته شد .
HTML ذخیره شده روی میکرو توی IE
باز شده و تنظیمات رو نمایش میده تا کاربر در صورت نیاز اونها رو تغییر بده .
امیدوارم طی روزهای آینده بتونم بیشتر در
مورد لایه های شبکه و این طرح یا کاربردهای دیگه این سیستم توضیح بدم .
|
لیست قیمت (تک فروشی) :
-
قیمت این سیستم با کارکرد نوشته شده (محافظ
سرور) 80 هزار تومان میباشد .
|
|
انجام این پروژه به معنی توانایی (تکنولوژی تولید شده) ما در ارتباط
میکروکنترلر با شبکه میباشد .
کاربردهای بسیار دیگری نیز میتواند به این نحو مطرح شود مانند ارتباط
چندین تابلو برق یا PLC تحت یک شبکه
LAN یا اتصال سایر دستگاههایی که نیاز به چک
شدن یا ارسال و دریافت اطلاعات از طریق شبکه LAN
را دارند مانند سیستمهای حظور و غیاب و یا سیستمهای امنیتی
دوربین دار .
در صورتی که ایده ای برای استفاده از این سیستم دارید با کمال میل قادر
به اعمال ایده شما هستم .
|
|