پروتکل YModem

محمد کبیر
54 بازدید
۱۴۰۴-۰۵-۰۱
5 دقیقه
  • نویسنده: فضیله حمیدی
  • درباره نویسنده: ---
پروتکل Ymodem چیست؟
پروتکل YModem یک پروتکل انتقال فایل است که برای انتقال اطلاعات بین دو دستگاه از طریق اتصال سریال (Serial Connection) استفاده می‌شود.

پروتکل YModem یک پروتکل انتقال فایل است که برای انتقال اطلاعات بین دو دستگاه از طریق اتصال سریال (Serial Connection) استفاده می‌شود. این پروتکل در سه حالت یا مود اصلی عمل می‌کند:

  • YModem
  • YModem-1K 
  • YModem-g

YModem: در حالت عادی YModem، انتقال اطلاعات به صورت بلوک‌های 128 بایتی انجام می‌شود. هر بلوک شامل 128 بایت اطلاعات و 4 بایت برای کنترل (Cyclic Redundancy Check) CRC است. CRC برای اطمینان از صحت انتقال اطلاعات استفاده می‌شود.

YModem-1K: در حالت YModem-1K، به‌جای انتقال بلوک‌های 128 بایتی، از بلوک‌های 1024 بایتی استفاده می‌شود. هر بلوک در این حالت 1020 بایت اطلاعات و 4 بایت CRC دارد. این تغییر به‌منظور افزایش سرعت انتقال اطلاعات انجام شده است.

YModem-g: در حالت YModem-g، کد CRC که برای اطمینان از صحت انتقال اطلاعات است، حذف می‌شود. بعد از ارسال هر بلوک اطلاعات، فرستنده منتظر کد (Acknowledgment) ACK که برای تأیید دریافت اطلاعات است نمی‌ماند و بلافاصله بلوک اطلاعات بعدی را ارسال می‌کند.

به‌طورکلی، انتخاب از بین پروتکل‌های YModem ،YModem-1K و YModem-g به میزان سرعت و دقت موردنیاز برنامه یا سیستم مقصد بستگی دارد.

فرمت قالب شروع (Start frame format)

در پروتکل YModem ،Start Frame Format یا قالب شروع (Start Frame) شامل اطلاعات مربوط به شروع یک جلسه ارتباطی برای انتقال فایل است. این اطلاعات در یک یا چند بایت ابتدای هر قالب‌ اطلاعات قرار دارند و به‌عنوان پیشوند (Header) شناخته می‌شوند.

فرمت شروع (Start Frame Format) در پروتکل YModem عمدتاً شامل اطلاعاتی از جمله نام فایل، اندازه فایل، ویژگی‌های فایل و غیره است. این اطلاعات برای آغاز انتقال فایل و هماهنگی بین دو طرف (فرستنده و گیرنده) استفاده می‌شود.

یک مثال از فرمت شروع در پروتکل YModem ممکن است درک مطلب را ساده‌تر کند:

SOH 00 FF: هدر فریم (Frame Header) که مشخصات اصلی فریم اطلاعات را تعیین می‌کند.

SOH: یک بایت که نشان‌دهنده شروع یک فریم جدید است.

مقدار 0x01 در اینجا نشان‌دهنده این است که انتظار می‌رود فریم داده حاوی 128 بایت اطلاعات باشد.

00: یک بایت که شماره سریال فریم داده را نشان می‌دهد.

در این مورد، برای شروع، این شماره همواره صفر است (در اولین بلوک اطلاعات 01 است).

FF: یک بایت که شماره فریم را معکوس می‌کند.

Filename: نام فایل که با 00 پایان می‌یابد.

برای مثال، اگر نام فایل “foo.c” باشد، می‌تواند به‌صورت 66 6F 6F 2E 63 00 باشد.

File size: اندازه فایل که با 00 به پایان می‌رسد.

برای مثال، اگر اندازه فایل 1024 بایت باشد، می‌تواند به صورت 34 30 30 00 یا 0x400 باشد.

NULL: 128 بایت داده، به‌استثنای نام فایل و اندازه فایل، بقیه بایت‌ها با 00 پر می‌شوند.

CRC: 16 بیت CRC برای اعتبارسنجی بخش داده‌ها.

این مقادیر CRC بر اساس محتوای بخش داده‌ها محاسبه می‌شوند.

این قالب برای شروع یک جلسه ارتباطی استفاده می‌شود و اطلاعات مربوط به نام فایل، اندازه فایل و CRC جهت اطمینان از صحت اطلاعات را در اختیار گیرنده قرار می‌دهد. این اطلاعات اولین بسته ارسالی است که توسط فرستنده به گیرنده ارسال می‌شود تا اطلاعات موردنیاز برای ادامه ارتباط به‌درستی تعیین شود.

بعد از ارسال قالب شروع حال نوبت به ارسال داده می‌رسد. داده در تعداد زیادی بلوک‌های اطلاعاتی تقسیم‌بندی شده است تا ارسال اطلاعات سریع‌تر و مطمئن‌تر انجام شود. هر بلوک اطلاعات در پروتکل ymodem که شامل فریم داده است فرمت بخصوصی دارد.

فرمت فریم داده (data frame format)

STX (Start of Text): این مقدار با 0x02 نشان‌دهنده شروع یک داده‌ایم است که در ادامه 1024 بایت داده را شامل می‌شود.

01: نمایانگر اولین فریم داده است.

FE به‌صورت معکوس (Reversed): این مقدار یک بازنمایی معکوس از 0xFE است که برای تشخیص دقیق‌تر داده‌ها استفاده می‌شود.

Data[1024]: یعنی 1024بایت داده که اطلاعات اصلی را در خود جای‌داده‌اند.

CRCH  و CRCL (Cyclic Redundancy Check High and Low): این‌ کدها برای اطمینان از درستی ارسال داده‌ در داده‌فریم استفاده می‌شوند.

استفاده از STX درصورتی‌که حجم آخرین داده‌فایل بین 128 و 1024 بایت باشد: اگر حجم آخرین داده فایل در بازه 128 تا 1024 بایت باشد، 1024 بایت از STX برای انتقال استفاده می‌شود. فضای باقی‌مانده پس از داده‌ها با 0x1A پر خواهد شد:

1A…1A: فضای باقی‌مانده که با 0x1A پر شده‌اند.

استفاده از SOH درصورتی‌که حجم فایل کمتر از 128 بایت باشد: اگر حجم کل فایل کمتر از 128 بایت باشد، از فریم داده SOH برای انتقال استفاده خواهد شد. در این حالت، بقیه فضا با 0x1A پر خواهد شد:

ساختار فریم داده پایانی با 128 بایت داده:

همچنین، فریم داده پایانی با ساختار 128 بایتی SOH ارسال می‌شود. ساختار این فریم داده به شرح زیر است:

SOH (Start of Header): نمایانگر شروع یک داده‌فریم است.

00: مقدار ثابتی است که در اینجا نشان‌دهنده نوع فریم داده پایانی است.

Ff: یک مقدار ثابت دیگر که نمایانگر نوع خاصی از پایان داده‌هاست.

NUM[128]: 128 بایت اطلاعات فریم پایانی. در اینجا، داده‌های پایانی با مقدارهای متناسب با نیاز برنامه پر شده‌اند.

CRCH CRCH CRCH و CRCL (Cyclic Redundancy Check High and Low): این‌ کدها برای اطمینان از درستی ارسال داده‌ در داده‌فریم استفاده می‌شوند.

فرایند انتقال فایل

فرایند انتقال فایل

 فرض کنید یک فایل به نام “foo.c” با اندازه 4196 بایت و 0x1064 بایت وجود دارد. فرآیند انتقال به شکل زیر است:

این فرایند نشان‌دهنده مراحل انتقال فایل است که توسط فرستنده به دریافت‌کننده ارسال می‌شود. در هر مرحله، دستگاه دریافت‌کننده با ACK یا NAK به فرستنده پاسخ می‌دهد تا انتقال داده‌ها به‌درستی انجام شود.

سیگنال داده و معانی آنها به شرح زیر است:

نمادمقدار عددیمعنی
SOH0x01128 بایت داده
STX0x021024 بایت داده
EOT0x04پایان انتقال
ACK0x06پاسخ مثبت
NAK0x15بدون پاسخ
CA0x18انتقال متوقف شده
C0x43درخواست پکت
CA (ارسال توسط فرستنده برای متوقف کردن انتقال)0x18انتقال متوقف شد

 

این سیگنال‌ها نمایانگر انواع مختلف اطلاعات و وضعیت‌ها در فرایند انتقال داده از فرستنده به دریافت‌کننده هستند.

اطلاعات
54
0
0
لینک و اشتراک
profile

فضیله حمیدی

متخصص الکترونیک

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ
سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله