ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 12
  1. #1
    2008/01/18
    تهران
    506
    7

    راه اندازی پروتکل UDP در میکروکنترلر AT91SAM7X256

    سلام

    من قصد دارم تا با بهره گیری از بورد SAM7X-EX256 پروتکل UDP رو پیاده سازی کنم. حالا این که چرا بین TCP و UDP پروتکل UDP رو برای راه اندازی انتخاب کردم دلایل مختلفی داره. یکی از آن ها سادگی در راه اندازی این پورتکل هست. یکی دیگه از دلایلی که قصد دارم تا پروتکل UDP را راه اندازی کنم عدم وجود مثال ساده و مناسب برای آن است. برای TCP پروژه easyweb هست که فکر می کنم هم مفید باشه و هم مکفی.
    از دوستانی هم که علاقه دارند تا این پروتکل را راه بیاندازیم دعوت می کنم که مطالب خودشون رو ارائه بدهند. من در قدم اول یه listener با استفاده از #C نوشتم که برای تست برنامه هایی که روی میکرو می نویسیم کمکمون کنه.

    آدمی از عالم خاکی نمی آید بدست

    عالمی دیگر بباید ساخت و از نو آدمی
    پردازش تصویر با FPGA از صفر تا انتها
    http://www.eca.ir/forum2/index.php?topic=74299.0
  2. #2
    2008/01/18
    تهران
    506
    7

    پاسخ : راه اندازی پروتکل UDP در میکروکنترلر AT91SAM7X256

    در شکل زیر اجزای یک پکت UDP را مشاهده می کنید.

    http://www.4shared.com/photo/rcpcDdKR/UDP_Datagram2.html

    در شکل فوق
    Source Port: Identifies the sending port when meaningful and should be assumed to be the port to reply to if needed. if not used then it should be zero
    Destination Port: Field identifies the destination port and is required.
    Length: the length of the entire datagram: header and data. the min length is 8 bytes since that's the length of the header
    Checksum: the checksum field is used for error checking of the header and data
    آدمی از عالم خاکی نمی آید بدست

    عالمی دیگر بباید ساخت و از نو آدمی
    پردازش تصویر با FPGA از صفر تا انتها
    http://www.eca.ir/forum2/index.php?topic=74299.0
  3. #3
    2008/01/18
    تهران
    506
    7

    پاسخ : راه اندازی پروتکل UDP در میکروکنترلر AT91SAM7X256

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

    عالمی دیگر بباید ساخت و از نو آدمی
    پردازش تصویر با FPGA از صفر تا انتها
    http://www.eca.ir/forum2/index.php?topic=74299.0
  4. #4
    2008/01/18
    تهران
    506
    7

    پاسخ : راه اندازی پروتکل UDP در میکروکنترلر AT91SAM7X256

    این مثال در داخل سایت توسط دوستان بررسی شده. تاپیک های ایجاد شده از نظر تئوری شاید برای من که کمتر نسبت به مبانی شبکه تسلط دارم قدری سنگین باشه. برای همین سعی می کنم به زبان ساده هر آن چه که از بررسی مثال easyweb می یابم توضیح بدهم و در نهایت سعی کنیم تا پروتکل UDP را بر روی ARM پیاده سازی کنیم.
    نخستین تابعی که در main فراخوانی می شود تابع TCPLowLevelInit است. یه سری تنظیمات اولیه در داخل این تابع انجام می شود. مثل راه اندازی تایمر، راه اندازی وقفه، تنظیم مبدل آنالوگ به دیجیتال. در پروتکل TCP چهار نوع تایمر می توان تعریف کرد که یکی از آن ها Retransmission نام دارد.
    آدمی از عالم خاکی نمی آید بدست

    عالمی دیگر بباید ساخت و از نو آدمی
    پردازش تصویر با FPGA از صفر تا انتها
    http://www.eca.ir/forum2/index.php?topic=74299.0
  5. #5
    2008/01/18
    تهران
    506
    7

    پاسخ : راه اندازی پروتکل UDP در میکروکنترلر AT91SAM7X256

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

    عالمی دیگر بباید ساخت و از نو آدمی
    پردازش تصویر با FPGA از صفر تا انتها
    http://www.eca.ir/forum2/index.php?topic=74299.0
  6. #6
    2008/09/02
    اصفهان
    1,897
    41

    پاسخ : راه اندازی پروتکل UDP در میکروکنترلر AT91SAM7X256

    درباره این مورد و موارد مشابه در سلسله پست های آقای حسینی خیلی بحث شده. ضمنا فکر میکنم پروتکل UDP در سورس های easyweb هم موجود هست. منتهی در سورس اصلی استفاده نشده.
  7. #7
    2008/01/18
    تهران
    506
    7

    پاسخ : راه اندازی پروتکل UDP در میکروکنترلر AT91SAM7X256

    نقل قول نوشته اصلی توسط رضا آقازاده
    درباره این مورد و موارد مشابه در سلسله پست های آقای حسینی خیلی بحث شده. ضمنا فکر میکنم پروتکل UDP در سورس های easyweb هم موجود هست. منتهی در سورس اصلی استفاده نشده.
    ممنون از اطلاع رسانی. سورسی که در آن از پروتکل UDP استفاده شده است را از کجا می شه پیدا کرد؟ آیا داده ای رو از طریق UDP به Application خاصی در ویندوز ارسال می کند یا فقط کدهاش موجوده و عملی نشده؟

    پیروز و سربلند باشید
    آدمی از عالم خاکی نمی آید بدست

    عالمی دیگر بباید ساخت و از نو آدمی
    پردازش تصویر با FPGA از صفر تا انتها
    http://www.eca.ir/forum2/index.php?topic=74299.0
  8. #8
    2009/03/11
    373
    9

    پاسخ : راه اندازی پروتکل UDP در میکروکنترلر AT91SAM7X256

    protocol UDP یک الگوریتم برای انتقال دیتا هستش و این پروتوکل توی sam7x256 که وجود سخت افزاری نداره ! و باید نرم افزاری باهاش کار کرد.
    ولی عملا UDP برای جاهایی استفاده میشه که عدم وجود یک یا چند بیت در یک رشته فرضا 32 بیتی , عملا برای decode کردن مشکلی پیش نیاره
    فرض بگیرین یک تصویر میخایم بفریتیم 640p*480p اگر از این همه پیکسلی که داریم(307200 عدد ) در حد چند تا بیت و شاید هم بیشتر هم وجود نداشته باشه مشکلی در مشاهده تصویر بوجود نمیاره
    چون که تعداد متغییر ها خیلی زیاده
    عملا UDP بیشتر برای انتقال تصاویر (در دوربین های مدار بسته یا IP camera) استفاده میشه
    راستی پیاده کردن UDP زیاد هم آسون نیست ! برای این که اینو بفهمین این جا رو ببینین :

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


  9. #9
    2008/09/02
    اصفهان
    1,897
    41

    پاسخ : راه اندازی پروتکل UDP در میکروکنترلر AT91SAM7X256

    متاسفانه من اشتباه کردم. پروتکل UDP در مثال EasyWeb پیاده سازی نشده. میتونین این مطلب رو در تابع ProcessEthIAFrame ببینید. اما بر خلاف گفته دوستمون پیاده سازی این پروتکل کار سختی نیست. البته برای شرایط خاص. و اونهم اینه که checksum حساب نکنین و در فیلد مربوطه عدد صفر بذارین. ولی موقعی که فریم IP اخذ میشه و در تابع فوق الذکر ProcessEthIAFrame بایستی ابتدای فریم 8 بایتی رو جدا کنین و با استفاده از فیلد Length دیتا رو بردارین. در هنگام ارسال هم کافیه لایه MAC و لایه IP و هدر UDP رو بسازین و در انتها داده رو قرار بدین. سپس با استفاده از تابع RequestSend حجم کل فریم رو مشخص کنین و توسط توابع مربوطه اقدام به ارسال اطلاعات به لایه MAC کنین. مثلا: CopyToFrame_EMAC.
    فقط باید توجه کنین که غیر از قسمت داده های خام برنامه که در انتهای فریم UDP قرار میگیره؛ تمامی داده های 2 و چهار بایتی باید بفرم Little Endian قرار داده بشه. من ARM های اتمل رو نمیشناسم. اما از اونجایی که آرم های فیلیپس از حالت BigEndian استفاده میکنن میشه حدس زد که باید تمامی فیلد های 2 و چهار بایتی شما در فریم های MAC و IP و UDP بایستی با استفاده از swap بایت هاش عکس و سپس ارسال بشه.
  10. #10
    2008/01/18
    تهران
    506
    7

    پاسخ : راه اندازی پروتکل UDP در میکروکنترلر AT91SAM7X256

    خیلی ممنون توضیحاتون خیلی راه گشا و مفید بود.

    دو تا از مهمترین تابع هایی که در این نمونه کد وجود داره ProcessEthIAFrame و ReadFrameBE_EMAC است. با استفاده از تابع ReadFrameBE_EMAC داده هایی را که از پورت شبکه وارد می شود می توان دریافت کرد. هر بار که فراخوانی شود داده جدید را گرفته و مقدار آن را بر می گرداند. فعلا محتوی تابع را فرصت نکردم بررسی کنم. در حال می خواهم سعی کنم از همین تابع برای پیاده سازی پروتکل UDP استفاده کنم. تا بعد که دوباره بر گردم و کدهای داخل تابع مذکور را مطالعه کنم.
    بخشی از تابع ProcessEthIAFrame را در ادامه ملاحظه می کنید.
    if (!memcmp(&MyIP, &TargetIP, 4)) // is it for us?
    switch (ProtocolType) {
    case PROT_ICMP : { ProcessICMPFrame(); break; }
    case PROT_TCP : { ProcessTCPFrame(); break; }
    case PROT_UDP : break; // not implemented!
    }
    در نمونه کد بالا مشاهده می کنید که بخشی برای تشخیص نوع پروتکل مشخص شده است. متغیر ProtocolType یکی از آن متغیرهایی است که توسط تابع ReadFrameBE_EMAC مقدار دهی می شود. همان طور که مشاهده می کنید بخش مربوط به پروتکل UDP خالی مانده. یعنی تا قبل از فراخوانی این تابع همه چیز به نظر می رسه که برای راه اندازی دو تا پروتکل یکسان هست. پیشنهاد من اینه که فعلا داده ای از سمت کامپیوتر بفرستم به آرم ببینم چیزی می تونم دریافت کنم بعدش روی قالب بندی آن کار می کنم.
    آدمی از عالم خاکی نمی آید بدست

    عالمی دیگر بباید ساخت و از نو آدمی
    پردازش تصویر با FPGA از صفر تا انتها
    http://www.eca.ir/forum2/index.php?topic=74299.0
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 12

موضوعات مشابه

  1. پاسخ: 1
    آخرين نوشته: 2015/04/03, 04:14
  2. پاسخ: 4
    آخرين نوشته: 2014/08/18, 21:32
  3. راه اندازی SSD1963 با میکروکنترلر AT91SAM7X256
    توسط mohammad_6910 در انجمن ATMEL
    پاسخ: 0
    آخرين نوشته: 2014/07/01, 21:34
  4. unlpugشدن میکروکنترلر AT91SAM7X256 از پورت USB
    توسط mohammad_6910 در انجمن پروسسورهای ARM
    پاسخ: 0
    آخرين نوشته: 2011/09/27, 13:05
  5. پروتکل PPP روی میکروکنترلر
    توسط Hamid_Rostami در انجمن سایر مطالب مرتبط با ميکرو ها و پروسسورها
    پاسخ: 3
    آخرين نوشته: 2008/07/11, 16:22

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •