• AN228 - در نظر گرفتن لایه فیزیکی CAN. رابط ارتباطی CAN

    در این مقاله، ما به طور کامل پروتکل CAN را شرح نمی دهیم، بلکه فقط به مواردی توجه می کنیم که برای استفاده یا توسعه باید بدانید و درک کنید. لوازم برقیبا پشتیبانی CAN

    پروتکل CAN برای صنعت خودرو توسعه داده شد و متعاقباً به استانداردی در زمینه شبکه های داخلی برای اتومبیل ها، حمل و نقل ریلی و غیره تبدیل شد. CAN به شما امکان می دهد شبکه هایی را با ابزارهای پیشرفته کنترل خطا، سرعت انتقال تا 1 مگابیت در ثانیه و بسته هایی که بیش از هشت بایت داده ندارند ایجاد کنید.

    پیوند و لایه های فیزیکیمی توان

    هیچ تعریف دقیقی از لایه فیزیکی در پروتکل CAN وجود ندارد، بنابراین، به عنوان مثال، از جفت پیچ خورده یا فیبر نوری می توان برای انتقال پیام استفاده کرد. در اصل، CAN لایه پیوند را پیاده سازی می کند. تشکیل بسته های پیام، محدود کردن انتشار خطاها، تصدیق و داوری را انجام می دهد. البته استانداردهای مشترکی وجود دارد سطح کاربردیبه عنوان مثال CANopen، اما اگر نیازی به ارائه قابلیت همکاری بین تجهیزات تولید کنندگان مختلف نیست، بهتر است از یک پروتکل داخلی استفاده کنید.

    ساختار میزبانمی توان

    گره شبکه CAN مورد نظر ما شامل یک میکروکنترلر، یک کنترل کننده CAN و یک فرستنده گیرنده است (شکل 1). بیشتر اوقات، ما از میکروکنترلرهایی با کنترلر CAN داخلی برای ساده کردن مدار استفاده می کنیم، اما گاهی اوقات از یک کنترل کننده CAN مستقل با رابط SPI (MCP2510) استفاده می شود. سپس فرستنده گیرنده به یک جفت پیچ خورده متصل می شود که در انتهای آن مقاومت های پایانی (ترمیناتور) با مقاومت 120 اهم وجود دارد.

    شکل 1 - گره شبکه CAN

    برای تشکیل یک منطقی در یک جفت پیچ خورده یا گذرگاه آزاد، ولتاژی معادل نصف اختلاف ولتاژ بین 0 یا Vcc به هر دو سیم اعمال می شود. صفر منطقی مربوط به تامین ولتاژ دیفرانسیل به سیم های خط است (شکل 2).




    شکل 2 - سطوح منطقی در گذرگاه CAN

    گذرگاه CAN به شما امکان می دهد داده ها را با سرعت 1 مگابیت بر ثانیه با طول کابل بیش از 40 متر انتقال دهید. در ادبیات آموزشی نوشته شده است که با کاهش سرعت انتقال به 10 کیلوبیت بر ثانیه، می توانید به طول شبکه 1.5 کیلومتر

    بسته پیاممی توان

    فرمت پیام CAN در شکل 3 نشان داده شده است.




    شکل 3 - بسته پیام CAN

    در واقع بسته پیام توسط کنترلر CAN تشکیل می شود و نرم افزار کاربردی فقط شناسه پیام، طول پیام را تنظیم می کند و بایت های داده را ارائه می دهد، بنابراین ما بسته را به طور کامل در نظر نمی گیریم، اما به داده هایی که هنگام کار با آنها تغییر می دهیم نگاه می کنیم. اتوبوس CAN

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

    داوری در اتوبوسمی توان

    بدون جزئیات، پیام با کوچکترین شناسه همیشه ابتدا در گذرگاه CAN مخابره می شود.

    تنظیم نرخ باود اتوبوسمی توان

    سرعت انتقال داده در گذرگاه CAN با تشکیل برش‌های زمانی تنظیم می‌شود، نه مانند بسیاری دیگر از پروتکل‌های انتقال داده سریال، توسط تقسیم‌کننده نرخ. در اغلب موارد از سرعت های 10Kbps، 20Kbps، 50Kbps، 100Kbps، 125Kbps، 500Kbps، 800Kbps، 1MBaud استفاده می شود و تنظیمات این سرعت ها قبلا محاسبه شده است. شکل 4 پنجره انتخاب سرعت را در PcanView نشان می دهد.



    شکل 4 - انتخاب نرخ باود در برنامه PcanView

    همانطور که می بینیم، هنگام تنظیم سرعت استاندارد، تنظیمات به طور خودکار تنظیم می شوند، اما مواقعی وجود دارد که لازم است از سرعت انتقال داده متفاوتی استفاده شود. به عنوان مثال روی هواپیما وسیله نقلیه CANمی تواند با سرعت 83 کیلوبیت بر ثانیه کار کند. در این صورت باید تنظیمات را خودتان محاسبه کنید یا به دنبال یک ماشین حساب تخصصی سرعت در اینترنت باشید. برای محاسبه مستقل سرعت، لازم است بدانیم که از چند کوانتا برای انتقال یک بیت از یک پیام استفاده می شود و فاصله انتقال شامل سه بخش است (شکل 5).




    شکل 5 - زمان انتقال یک بیت

    بخش اول همیشه ثابت است و برابر با یک کوانتوم است. سپس دو بخش Tseg1 و Tseg2 وجود دارد و تعداد کوانتوم ها در هر بخش توسط کاربر تعریف شده است و می تواند از 8 تا 25 باشد. نقطه نمونه برداری بین Tseg1 و Tseg2 است، یعنی. در پایان بخش اول و در ابتدای بخش دوم. کاربر همچنین می تواند عرض پرش همگام سازی (Synchronization Jump Width - SJW) را برای تنظیم نرخ بیت دستگاه گیرنده تعریف کند که می تواند در محدوده 1 تا 4 برش زمانی باشد.

    اکنون فرمول محاسبه سرعت را می‌دهیم (نمونه‌ای از محاسبه سرعت برای کنترلر CAN SJA1000):

    BTR = Pclk/(BRP * (1 + Tseg1 + Tseg2))

    BTR - سرعت انتقال داده،

    Pclk - فرکانس عملکرد کنترلر CAN،

    BRP - مقدار پیش مقیاس کننده فرکانس مولد نرخ باود

    Tseg1 - بخش اول

    Tseg2 - بخش دوم

    برای بررسی، اجازه دهید سرعت محاسبه شده از قبل 125 کیلوبیت بر ثانیه را در نظر بگیریم و سعی کنیم تنظیمات را به صورت دستی دریافت کنیم. Pclk 16 مگاهرتز می گیرد.

    BRP = 16 مگاهرتز / (125K * (1 + Tseg1 + Tseg2))

    سپس فاصله انتقال بیت را که در بازه 8 تا 25 برش زمانی است انتخاب می کنیم تا یک مقدار صحیح BRP بدست آید. در مورد ما، اگر (1 + Tseg1 + Tseg2) = 16 را بگیریم، آنگاه BRP برابر 30 خواهد بود.

    SP = ((1 + Tseg1 + Tseg2) * 70)/100

    مقادیر را جایگزین می کنیم و 16 * 0.7 = 11.2 به دست می آوریم که مربوط به رابطه Tseg1 = 10، Tseg2 = 5 است، یعنی. 1 + 10 + 5 = 16. سپس نگاه می کنیم اگر Tseg2 >= 5، سپس SJW = 4، اگر Tseg2< 5, то SJW = (Tseg2 – 1). В нашем случае SJW = 4.

    در مجموع برای به دست آوردن سرعت 125Kbps باید در پارامترهای BRP = 30، Tseg1 = 10، Tseg2 = 5، SJW = 4 مشخص کنید.

    P.S. پیکربندی نرخ باود بین ماژول‌های USB-CAN قدیمی (GW-001 و GW-002) با کنترلر SJA1000 و ماژول‌های sysWORXX جدید با کنترل‌کننده AT91SAM7A3 تفاوت قابل‌توجهی دارد. در مقاله تشریح کار با CAN داخل خودرو با سرعت 83 کیلوبیت بر ثانیه، محاسبه سرعت برای کنترلر AT91SAM7A3 آورده شده است.


    نمونه ای از دریافت و انتقال داده ها از طریقرابط CAN

    در مثال، ما از یک آداپتور CAN با برنامه PcanView از SYSTEC استفاده می کنیم و به CAN داخلی خودرو که با سرعت 125 کیلوبیت بر ثانیه کار می کند متصل می شویم. خودروی مورد نظر ما مجهز به صندلی های برقی است و بنابراین داده های مسئول موقعیت صندلی ها را بررسی می کنیم و سعی می کنیم با تعویض پکیج با استفاده از کامپیوتر، وضعیت پشتی را تغییر دهیم.

    برای شروع، در نمودار ماشین، راحت ترین کانکتور را با خطوط CANH و CANL پیدا می کنیم و آداپتور خود را به آن وصل می کنیم. اگر کانکتور و سیم‌ها پیدا نشد، می‌توانید به واحد کنترل صندلی خزیده، دو سیم را که به هم پیچیده شده‌اند پیدا کنید و برای اتصال آداپتور سیم‌ها را با دقت قطع کنید. اگر پس از اتصال و پیکربندی، پیام های آداپتور نمی آیند، ابتدا سعی کنید CANH CANL را بین خود تغییر دهید و بررسی کنید که احتراق روشن است یا خیر.
    بعد، برنامه PcanView را اجرا کنید، در پنجره تنظیمات باز شده، Baudrate = 125Kbps را تنظیم کنید و روی OK کلیک کنید (شکل 4). در پنجره بعدی، Message filter = Standard را تنظیم کنید، محدوده آدرس را از 000 تا 7FF تنظیم کنید و روی OK کلیک کنید (شکل 6).



    شکل 6 - راه اندازی فیلتر CAN

    اگر همه چیز به درستی انجام شود، پیام هایی از صندلی ها را خواهیم دید (شکل 7) و هنگامی که دکمه شیب پشتی را روی صفحه کنترل فشار دهید، پیام دیگری با آدرس 1F4 مشاهده خواهیم کرد که از ریموت کنترل به صندلی می رسد ( شکل 8).



    شکل 7 - پیام های CAN از صندلی برقی


    شکل 8 - پیام های CAN از صندلی برقی و پیام از صفحه کنترل به صندلی

    اکنون می‌دانیم که آدرس، طول و داده‌های بسته CAN برای شبیه‌سازی فشار دادن دکمه برای تغییر موقعیت برگشت چقدر باید باشد. در تب Transmit روی NEW کلیک کنید و در پنجره باز شده یک کپی از بسته 1F4 ایجاد کنید. ID = 1F4، طول = 3، داده = 40 80 00. دوره می تواند در 0 ms باقی بماند، سپس با فشار دادن کلید فاصله پیام ها ارسال می شود (شکل 9).



    شکل 9 - ایجاد یک پیام CAN

    شکل 10 فیلد Transmit پنجره اصلی را نشان می دهد که شامل تمام پیام های ارسال شده به CAN و اطلاعات مربوط به آنها است. هنگامی که یک پیام برجسته می شود و دکمه فاصله فشرده می شود، یک بسته به شبکه CAN ارسال می شود و صندلی کمی در جهت دلخواه حرکت می کند.



    واضح است که در این صورت امکان دستیابی به کنترل کامل صندلی وجود نخواهد داشت، زیرا. ما نمی توانیم بسته های کنترل از راه دور کارخانه را از شبکه حذف کنیم، اما این مشکل کاملا قابل حل است.

    نتیجه

    ما دیدیم که چگونه با کمی تلاش و مهارت می توانید سیستم های الکترونیکی خود را با استفاده از فناوری پیشرفته ایجاد کنید پروتکل CANو نحوه اتصال، کاوش و کنترل دستگاه های متصل به اتوبوس CAN ماشین.

    رابط CAN در اواخر دهه 1980 توسط بوش برای ارتباط بین دستگاه های الکترونیکی مورد استفاده در خودروها توسعه یافت.

    توضیحات کلی CANاین شبکه برای ارتباط گره هایی در نظر گرفته شده است که می توانند گیرنده یا فرستنده باشند. هر گره از دو جزء تشکیل شده است: یک کنترل کننده CAN و یک فرستنده گیرنده (فرستنده گیرنده). کنترل کننده پروتکل تبادل را روی شبکه CAN پیاده سازی می کند و فرستنده گیرنده تعامل با شبکه (انتقال و دریافت سیگنال ها) را فراهم می کند.

    در عمل، طبق استاندارد، گذرگاه CAN معمولاً یک جفت پیچ خورده است که سیگنال ها از طریق آن به صورت دیفرانسیل ارسال می شوند.

    روی انجیر ساختار شبکه CAN نشان داده شده است. معمولاً از یک میکروکنترلر به عنوان کنترل کننده استفاده می شود که دارای یک ماژول CAN است که دارای یک خروجی فرستنده TxD از یک کد سریال و یک ورودی گیرنده کد RxD است. فرستنده گیرنده سیگنال های منطقی، یعنی منطق 0 و 1 را به ولتاژ دیفرانسیل اعمال شده به دو سیم باس با برچسب CAN_H و CAN_L تبدیل می کند.

    طبق استاندارد، خط باید دارای امپدانس مشخصه در محدوده 108-132 اهم باشد. برای کاهش انعکاس سیگنال، مقاومت های پایانی RC 120 اهم باید در هر انتهای گذرگاه متصل شوند. برای افزایش قابلیت اطمینان انتقال و افزایش ایمنی نویز، گاهی اوقات از سیم سوم استفاده می شود - یک سیم معمولی که به عنوان GND نامیده می شود. ولتاژ تغذیه UCC (یا UDD) با توجه به GND +5 V استاندارد است.

    برای انتزاع از رسانه انتقال فیزیکی، مشخصات CAN دو حالت منطقی (یعنی منطقی 0 و 1) را به عنوان مغلوب (مغلوب) و غالب (غلبه) تعریف می کند. فرض بر این است که وقتی یک گره شبکه یک بیت مغلوب را ارسال می کند و دیگری غالب، بیت غالب دریافت می شود.

    در حالت مغلوب (یعنی منطق 1 در ورودی TxD فرستنده گیرنده)، ولتاژ دیفرانسیل UDIFF =UCANH - UCANL کمتر از حداقل آستانه است (0.5 ولت در ورودی گیرنده یا 0.05 ولت در خروجی فرستنده).

    در حالت غالب (یعنی منطق 0 در ورودی TxD فرستنده گیرنده)، ولتاژ دیفرانسیل UDIFF بیشتر از آستانه حداقل است (0.9 ولت در ورودی گیرنده یا 1.5 ولت در خروجی فرستنده).

    پیام ها در CAN.رابط از پیام های کوتاه استفاده می کند: حداکثر اندازه 94 بیت است. محتوای داده در پیام CAN، همانطور که بود، به طور ضمنی آدرس منبع این پیام و آدرس گیرندگانی که به این اطلاعات نیاز دارند را تعیین می کند.

    مثلا. یک گره CAN پیام "دمای روغن موتور 80" را به اتوبوس ارسال می کند. تمام گره های دیگر این پیام را دریافت می کنند، اما فقط گره هایی که به آن نیاز دارند از این اطلاعات استفاده می کنند.

    پیام هایی که از طریق گذرگاه CAN ارسال می شوند، فریم یا فریم نامیده می شوند. بسته به آغازگر انتقال و هدف آن، 4 نوع فریم وجود دارد:

    1) قاب داده که برای انتقال داده استفاده می شود.

    2) قاب درخواست داده، که برای درخواست از راه دور داده از یک گره راه دور استفاده می شود.

    3) یک چارچوب خطا، زمانی که خطاها در اتوبوس شناسایی می شوند.

    4) فریم اضافه بار، برای به تاخیر انداختن ارسال بسته ها، یک قاب داده و یک فریم درخواست، به عنوان مثال، زمانی که گیرنده آماده نیست، منتقل می شود.

    نمایی از قالب پیام استاندارد قاب داده در شکل نشان داده شده است. از هفت فیلد بیت مختلف تشکیل شده است:

      فیلد شروع فریم از یک بیت غالب تشکیل شده است که برای همگام سازی مولدهای فرستنده و گیرنده نیز عمل می کند.

      فیلد داوری شامل یک شناسه 11 بیتی و یک بیت RTR - (درخواست انتقال داده) است. برای یک قاب داده، این بیت باید در سطح غالب باشد.

      فیلد کنترل از شش بیت تشکیل شده است. دو بیت مهم در حال حاضر استفاده نمی شوند. کد طول داده چهار بیتی تعداد بایت های فیلد داده را نشان می دهد.

      فیلد داده شامل صفر تا هشت بایت داده است.

      فیلد جمع چک شامل جمع چک پیام (15 بیت) و یک بیت جداکننده مغلوب است.

      فیلد تایید از دو بیت تشکیل شده است. مهم ترین بیت به نام Slot گره ارسال را در سطح مغلوب قرار می دهد. اگر انتقال موفقیت آمیز بود، گره دریافت کننده با تنظیم این بیت در سطح غالب سیگنال می دهد. بیت دوم در این زمینه بیت جداکننده مغلوب است.

      قسمت انتهایی فریم از هفت بیت مغلوب تشکیل شده است.

    انتهای فریم (EOF) با یک میدان شکاف متشکل از سه بیت مغلوب دنبال می شود. پس از این فاصله، لاستیک آزاد در نظر گرفته می شود.

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

    هر گره از دو جزء تشکیل شده است. این خود کنترل کننده CAN است که تعامل با شبکه و پیاده سازی پروتکل و یک ریزپردازنده (CPU) را فراهم می کند.

    برنج. 1. توپولوژی شبکه CAN.

    کنترل کننده های CAN با استفاده از یک گذرگاه دیفرانسیل، که دارای دو خط است - CAN_H (can-high) و CAN_L (can-low) متصل می شوند، که سیگنال ها از طریق آن منتقل می شوند. زمانی که سیگنال در خط CAN_H بالاتر از خط CAN_L باشد، صفر منطقی ثبت می شود. واحد منطقی - در مواردی که سیگنال های CAN_H و CAN_L یکسان هستند (کمتر از 0.5 ولت متفاوت هستند). استفاده از چنین طرح انتقال دیفرانسیل باعث می شود شغل ممکنشبکه های CAN در شرایط محیطی بسیار سخت. صفر منطقی را بیت غالب و یک منطقی را بیت مغلوب می نامند. این اسامی نشان دهنده اولویت یک و صفر منطقی در گذرگاه CAN است. با ارسال همزمان به لاگ اتوبوس. صفر و یک، فقط یک صفر منطقی (سیگنال غالب) در اتوبوس ثبت می شود و یک منطقی سرکوب می شود (سیگنال مغلوب).

    انواع پیام CAN

    داده ها در CAN در قالب پیام های کوتاه با فرمت استاندارد منتقل می شوند. چهار نوع پیام در CAN وجود دارد:

    • چارچوب داده
    • قاب از راه دور
    • قاب خطا
    • قاب اضافه بار

    چارچوب دادهرایج ترین نوع پیام مورد استفاده است. از بخش های اصلی زیر تشکیل شده است:

    • فیلد داوری اولویت پیام را زمانی که دو یا چند گره به طور همزمان تلاش می کنند تا داده ها را به شبکه ارسال کنند، تعیین می کند. حوزه داوری به نوبه خود شامل موارد زیر است:
      • برای استاندارد CAN-2.0A، شناسه 11 بیتی + 1 بیت RTR (انتقال مجدد)
      • برای استاندارد CAN-2.0B، شناسه 29 بیتی + 1 بیت RTR (انتقال مجدد)

      لازم به ذکر است که فیلد شناسه، علی رغم نامش، به خودی خود نه گره موجود در شبکه و نه محتویات فیلد داده را شناسایی نمی کند. برای یک قاب داده، بیت RTR همیشه روی صفر منطقی (سیگنال غالب) تنظیم می شود.

    • فیلد داده شامل 0 تا 8 بایت داده است
    • فیلد CRC حاوی جمع 15 بیتی پیام است که برای تشخیص خطا استفاده می شود
    • شکاف تأیید (1 بیت)، هر کنترل کننده CAN که به درستی پیام را دریافت کرده است، یک بیت تأیید را به شبکه ارسال می کند. گره ای که پیام را ارسال کرده است به این بیت گوش می دهد و اگر تایید دریافت نشود، ارسال را تکرار می کند. در مورد دریافت شکاف تایید، گره فرستنده تنها می تواند مطمئن باشد که حداقل یکی از گره های شبکه پیام خود را به درستی دریافت کرده است.

    برنج. 2. قاب داده استاندارد CAN 2.0A.

    قاب از راه دوریک Data Frame بدون فیلد داده و با مجموعه بیت RTR (1 - بیت های مغلوب) است. هدف اصلی قاب Remote، راه اندازی توسط یکی از گره های شبکه انتقال به شبکه داده توسط گره دیگری است. این طرح به شما امکان می دهد کل ترافیک شبکه را کاهش دهید. با این حال، اکنون به ندرت در عمل از Remote Frame استفاده می شود (به عنوان مثال، Remote Frame به هیچ وجه در DeviceNet استفاده نمی شود).

    قاب خطاپیامی است که به وضوح فرمت پیام CAN را نقض می کند. ارسال چنین پیامی باعث می شود که تمام گره های شبکه یک خطای فرمت فریم CAN را ثبت کنند و به نوبه خود به طور خودکار یک Error Frame را به شبکه ارسال کنند. نتیجه این فرآیند، ارسال مجدد خودکار داده ها به شبکه توسط گره فرستنده است. Error Frame از قسمت Error Flag تشکیل شده است که از 6 بیت تشکیل شده است همان مقدار(و بنابراین چارچوب Error بررسی Bit Stuffing را نقض می کند، به قسمت زیر مراجعه کنید) و قسمت Error Delimiter که از 8 بیت مغلوب تشکیل شده است. Error Delimiter به سایر گره های شبکه اجازه می دهد تا هنگام شناسایی یک فریم خطا، پرچم خطای خود را به شبکه ارسال کنند.

    قاب اضافه بار- ساختار و منطق فریم Error را تکرار می کند، با این تفاوت که توسط یک گره اضافه بار استفاده می شود که نمی تواند پیام دریافتی را در لحظه پردازش کند و بنابراین درخواست ارسال مجدد داده ها با استفاده از فریم Overload را دارد. در حال حاضر، قاب Overload عملا استفاده نمی شود.

    کنترل دسترسی به رسانه انتقال ( داوری بیتی).

    فیلد داوری یک قاب CAN در CAN برای حل و فصل برخوردهای دسترسی اتوبوس با استفاده از داوری غیر مخرب استفاده می شود. ماهیت روش داوری غیر مخرب به شرح زیر است. در حالتی که چندین کنترل کننده همزمان شروع به ارسال یک فریم CAN به شبکه می کنند، هر کدام از آنها بیتی را که قرار است به گذرگاه ارسال شود با بیتی که کنترل کننده رقیب در تلاش برای ارسال به گذرگاه است مقایسه می کند. اگر مقادیر این بیت ها برابر باشد، هر دو کنترل کننده بیت بعدی را ارسال می کنند. و این اتفاق می افتد تا زمانی که مقادیر بیت های ارسالی متفاوت باشد. اکنون کنترل کننده ای که یک صفر منطقی (سیگنال با اولویت بالاتر) ارسال کرده است به ارسال خود ادامه می دهد و کنترلر دیگر (سایر) انتقال آن را تا زمانی که اتوبوس دوباره آزاد شود قطع می کند. البته اگر اتوبوس در حال حاضر مشغول باشد، کنترل کننده تا زمانی که آزاد نشود شروع به ارسال نمی کند.

    برنج. 3. داوری بیتی در گذرگاه CAN.

    روش های تشخیص خطا

    پروتکل CAN پنج روش را برای تشخیص خطاهای شبکه تعریف می کند:

    • نظارت بیتی
    • پر کردن کمی
    • بررسی قاب
    • بررسی ACKKnowledgement
    • بررسی CRC

    نظارت بیتی- هر گره در حین انتقال بیت ها به شبکه، مقدار بیت ارسال شده توسط خود را با مقدار بیتی که در گذرگاه ظاهر می شود مقایسه می کند. اگر این مقادیر مطابقت نداشته باشند، گره یک خطای بیت ایجاد می کند. طبیعتاً در هنگام داوری در اتوبوس (گذراندن فیلد داوری به اتوبوس) این مکانیسم بررسی خطا غیرفعال می شود.

    پر کردن کمی- وقتی یک گره 5 بیت با همان مقدار را به صورت متوالی به گذرگاه ارسال می کند، یک بیت ششم با مقدار مخالف اضافه می کند. گره های دریافت کننده این بیت اضافی را حذف می کنند. اگر یک گره بیش از 5 بیت متوالی را با همان مقدار در گذرگاه شناسایی کند، یک خطای چیز ایجاد می کند.

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

    بررسی ACKKnowledgement- هر گره با دریافت پیام صحیح از طریق شبکه، یک بیت غالب (0) را به شبکه ارسال می کند. اگر این اتفاق نیفتد، گره فرستنده یک خطای تصدیق را ثبت می کند.

    بررسی CRC- هر پیام CAN حاوی یک جمع CRC است و هر گره دریافت کننده مقدار CRC را برای هر پیام دریافتی محاسبه می کند. اگر مقدار CRC محاسبه شده مجموع با مقدار CRC در متن پیام مطابقت نداشته باشد، گره دریافت کننده یک خطای CRC ایجاد می کند.

    مکانیسم محدودیت خطا

    هر گره از شبکه CAN، در حین کار، سعی می کند یکی از پنج خطای احتمالی را شناسایی کند. اگر خطایی تشخیص داده شود، گره یک فریم خطا را به شبکه می فرستد و در نتیجه تمام ترافیک فعلی شبکه (انتقال و دریافت) را از بین می برد. پیام فعلی). تمام گره های دیگر Error Frame را شناسایی کرده و اقدام مناسب را انجام می دهند (پیام دریافتی را دور بیندازید). علاوه بر این، هر گره دو شمارنده خطا دارد: شمارشگر خطای انتقال و شمارشگر خطای دریافت. این شمارنده ها طبق چند قانون کم یا زیاد می شوند. قوانین مدیریت شمارشگر خطا به خودی خود بسیار پیچیده هستند، اما آنها به یک اصل ساده خلاصه می شوند، یک خطای انتقال باعث می شود شمارنده خطای انتقال 8 افزایش یابد، یک خطای دریافت شمارنده خطای دریافت را 1 افزایش می دهد، هر ارسال / دریافت صحیح یک پیام شمارنده مربوطه را 1 کاهش می دهد. این قوانین منجر به این می شود که شمارشگر خطای ارسال گره فرستنده سریعتر از شمارنده خطای دریافت گره های دریافت کننده افزایش می یابد. این قانون با این فرض مطابقت دارد که احتمال زیادی وجود دارد که منبع خطا، گره ارسال کننده باشد.

    هر گره از شبکه CAN می تواند در یکی از سه حالت باشد. هنگامی که یک گره شروع به کار می کند در حالت Error Active قرار دارد. هنگامی که حداقل یکی از دو شمارنده خطا از حد 127 تجاوز کند، گره وارد حالت Error Passive می شود. زمانی که مقدار حداقل یکی از دو شمارنده از حد 255 تجاوز کند، گره وارد حالت Bus Off می شود.

    یک گره در حالت Error Active در صورت تشخیص خطا در گذرگاه، پرچم های خطای فعال را به شبکه ارسال می کند. Active Error Flags از 6 بیت غالب تشکیل شده است، بنابراین همه گره ها آن را ثبت می کنند. یک گره در حالت خطای غیرفعال، هنگامی که خطایی را در شبکه تشخیص می‌دهد، پرچم‌های خطای غیرفعال را به شبکه ارسال می‌کند. پرچم های خطای غیرفعال از 6 بیت مغلوب تشکیل شده است، بنابراین بقیه گره های شبکه متوجه آن نمی شوند و پرچم های خطای غیرفعال تنها منجر به افزایش شمارنده خطا گره می شود. یک گره در حالت Bus Off چیزی را به شبکه ارسال نمی کند (نه تنها فریم های خطا، بلکه هیچ کدام).

    آدرس دهی و پروتکل های سطح بالا

    هیچ آدرس دهی صریحی برای پیام ها و گره ها در CAN وجود ندارد. پروتکل CAN در هیچ کجا مشخص نمی کند که فیلد داوری (فیلد شناسایی + RTR) باید به عنوان شناسه پیام یا گره استفاده شود. بنابراین، شناسه‌های پیام و آدرس‌های گره می‌توانند در هر فیلد پیام (فیلد داوری، فیلد داده یا هر دو) ظاهر شوند. به طور مشابه، پروتکل استفاده از فیلد داوری را برای انتقال داده ها ممنوع نمی کند.

    استفاده از فیلد داوری و فیلد داده، و توزیع آدرس‌های گره، شناسه‌های پیام و اولویت‌ها در شبکه موضوعی است که به اصطلاح پروتکل‌های لایه بالاتر (HLP) نامیده می‌شود. نام HLP نشان دهنده این واقعیت است که پروتکل CAN تنها دو لایه پایین مدل شبکه مرجع ISO/OSI را توصیف می کند، در حالی که لایه های باقی مانده توسط پروتکل های HLP توصیف می شوند.

    برنج. 4. ساختار منطقی پروتکل CAN.

    بسیاری از این پروتکل های سطح بالا وجود دارد. رایج ترین آنها عبارتند از:

    • DeviceNet
    • CAL/CANopen
    • CanKingdom

    لایه فیزیکی پروتکل CAN

    لایه فیزیکی (Physical Layer) پروتکل CAN مقاومت کابل، سطح سیگنال های الکتریکی در شبکه و غیره را تعیین می کند. چندین لایه فیزیکی از پروتکل CAN وجود دارد (ISO 11898، ISO 11519، SAE J2411).

    در اکثریت قریب به اتفاق موارد، لایه فیزیکی CAN تعریف شده در استاندارد ISO 11898 استفاده می شود. ISO 11898 یک خط دیفرانسیل دو سیمه با امپدانس (ترمیناتور) 120 اهم را به عنوان رسانه انتقال تعریف می کند (نوسانات امپدانس در محدوده مجاز است. از 108 اهم تا 132 اهم لایه فیزیکی CAN در تراشه های ویژه - فرستنده گیرنده های CAN (فرستنده گیرنده) پیاده سازی شده است که سطوح سیگنال معمول TTL مورد استفاده توسط کنترل کننده های CAN را به سطوح سیگنال در گذرگاه CAN تبدیل می کند. رایج ترین فرستنده گیرنده CAN فیلیپس است. 82C250 که به طور کامل با استاندارد ISO 11898 مطابقت دارد.

    حداکثر سرعت شبکه CAN طبق پروتکل 1 مگابیت بر ثانیه است. در سرعت 1 مگابیت بر ثانیه، حداکثر طول کابل تقریباً 40 متر است. محدودیت در طول کابل مربوط به سرعت محدود نور و مکانیسم داوری بیت به بیت است (در طول داوری، تمام گره های شبکه باید بیت انتقال جریان را به طور همزمان دریافت کنند، سیگنال باید زمان انتشار داشته باشد. در طول کل کابل در یک شمارش زمان شبکه، رابطه بین نرخ انتقال و حداکثر طول کابل نشان داده شده در جدول:

    اتصال دهنده های شبکه CAN هنوز استاندارد نشده اند. هر پروتکل سطح بالا معمولاً نوع اتصال دهنده خود را برای شبکه CAN تعریف می کند.

    اتوبوس CAN - مقدمه

    پروتکل CAN یک استاندارد ISO (ISO 11898) برای ارتباط سریال است. این پروتکل با هدف استفاده در برنامه های حمل و نقل توسعه داده شد. امروزه CAN فراگیر شده است و در سیستم های اتوماسیون تولید صنعتی و همچنین در حمل و نقل استفاده می شود.

    استاندارد CAN از یک لایه فیزیکی و یک لایه ارتباط داده تشکیل شده است که چندین لایه را تعریف می کند انواع مختلفپیام‌ها، قوانین حل تعارض دسترسی اتوبوس، و حفاظت از خطا.

    پروتکل CAN

    پروتکل CAN در استاندارد ISO 11898-1 توضیح داده شده است و می توان آن را به صورت زیر خلاصه کرد:

    لایه فیزیکی از انتقال داده های دیفرانسیل از طریق جفت پیچ خورده استفاده می کند.

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

    پیام ها کوچک هستند (عمدتا 8 بایت داده) و توسط یک جمع کنترل محافظت می شوند.

    پیام‌ها آدرس واضحی ندارند، در عوض هر پیام حاوی یک مقدار عددی است که ترتیب آن را در گذرگاه کنترل می‌کند و همچنین می‌تواند به عنوان یک شناسه برای محتوای پیام عمل کند.

    یک طرح مدیریت خطا که به خوبی اندیشیده شده است که تضمین می کند که پیام ها در صورت عدم دریافت صحیح، مجددا ارسال می شوند.
    وجود دارد وسیله موثربرای جداسازی خطاها و حذف گره های معیوب از اتوبوس.

    پروتکل های سطح بالاتر

    خود پروتکل CAN فقط تعریف می کند که چگونه بسته های داده کوچک را می توان به طور ایمن از نقطه A به نقطه B از طریق رسانه ارتباطی منتقل کرد. همانطور که ممکن است انتظار داشته باشید، چیزی در مورد نحوه کنترل جریان نمی گوید. انتقال تعداد زیادی ازداده ها در یک پیام 8 بایتی قرار می گیرند. و نه در مورد آدرس های گره. برقراری ارتباط و غیره این نقاط توسط پروتکل لایه بالاتر (HLP) تعریف می شوند. اصطلاح HLP از مدل OSI و هفت لایه آن می آید.

    از پروتکل های سطح بالاتر برای موارد زیر استفاده می شود:

    استانداردسازی روش راه اندازی، از جمله انتخاب نرخ داده.

    توزیع آدرس ها بین گره های تعاملی یا انواع پیام ها.

    تعاریف نشانه گذاری پیام؛
    اطمینان از رسیدگی به خطا در سطح سیستم

    گروه های کاربری و غیره

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

    محصولات CAN

    در سطح پایین، تمایز اساسی بین دو نوع محصول CAN موجود در بازار آزاد وجود دارد - تراشه‌های CAN و ابزارهای توسعه CAN. برای بیشتر سطح بالا- دو نوع دیگر از محصولات: ماژول های CAN و ابزارهای مهندسی CAN. طیف وسیعی از این محصولات در حال حاضر در بازار آزاد موجود است.

    ثبت اختراعات CAN

    پتنت های مربوط به برنامه های CAN می توانند انواع مختلفی داشته باشند: اجرای زمان بندی و فرکانس ها، انتقال مجموعه داده های بزرگ (پروتکل CAN از فریم های داده تنها 8 بایت استفاده می کند) و غیره.

    سیستم های کنترل توزیع شده

    پروتکل CAN مبنای خوبی برای توسعه سیستم های کنترل توزیع شده است. روش حل تعارض استفاده شده توسط CAN تضمین می کند که هر گره CAN با پیام هایی که مربوط به این گره است تعامل خواهد داشت.

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

    پیام های CAN

    باس CAN یک اتوبوس پخش است. این بدان معنی است که همه گره ها می توانند به همه ارسال ها "گوش دهند". هیچ راهی برای ارسال پیام به یک گره خاص وجود ندارد، همه گره ها بدون استثنا همه پیام ها را دریافت خواهند کرد. با این حال، سخت افزار CAN قابلیت فیلتر محلی را فراهم می کند تا هر ماژول فقط بتواند به پیامی که به آن علاقه دارد پاسخ دهد.

    آدرس دهی پیام CAN

    CAN از پیام های نسبتا کوتاه استفاده می کند - حداکثر طول فیلد اطلاعات 94 بیت است. پیام‌ها آدرس صریح ندارند، می‌توان آنها را آدرس‌دهی محتوا نامید: محتوای پیام به طور ضمنی (به طور ضمنی) مخاطب را تعیین می‌کند.

    انواع پیام

    4 نوع پیام (یا فریم) در گذرگاه CAN ارسال می شود:

    چارچوب داده (Data Frame);

    قاب از راه دور (Remote Frame);

    قاب خطا؛

    قاب اضافه بار.

    چارچوب داده

    به طور خلاصه: "سلام به همه، داده هایی با علامت X وجود دارد، امیدوارم دوست داشته باشید!"
    قاب داده رایج ترین نوع پیام است. این شامل بخش های اصلی زیر است (برخی از جزئیات برای اختصار حذف شده است):

    فیلد داوری، که ترتیب پیام را زمانی که دو یا چند گره برای اتوبوس رقابت می کنند، تعیین می کند. فیلد داوری شامل:

    در مورد CAN 2.0A، یک شناسه 11 بیتی و یک بیت، بیت RTR که چارچوب داده تعیین کننده است.

    در مورد CAN 2.0B، یک شناسه 29 بیتی (که همچنین شامل دو بیت مغلوب: SRR و IDE) و یک بیت RTR است.

    فیلد داده که شامل 0 تا 8 بایت داده است.

    فیلد CRC (فیلد CRC)، حاوی یک جمع کنترلی 15 بیتی است که برای اکثر قسمت‌های پیام محاسبه می‌شود. این چک جمع برای تشخیص خطا استفاده می شود.

    شکاف قدردانی. هر کنترل کننده CAN که قادر به دریافت صحیح پیام است، یک بیت تصدیق را در انتهای هر پیام ارسال می کند. فرستنده و گیرنده وجود بیت شناسایی را بررسی می کند و اگر هیچ کدام یافت نشد، پیام را دوباره ارسال می کند.

    نکته 1: وجود بیت تشخیص در اتوبوس به معنای دریافت پیام هر مقصد برنامه ریزی شده نیست. تنها چیزی که مشخص است این است که پیام توسط یک یا چند گره اتوبوس به درستی دریافت شده است.

    نکته 2: شناسه در فیلد داوری علیرغم نام آن لزوماً محتوای پیام را مشخص نمی کند.

    قاب داده CAN 2.0B ("CAN استاندارد").

    قاب داده CAN 2.0B ("Extended CAN").

    قاب از راه دور

    به طور خلاصه: "سلام به همه، آیا کسی می تواند داده هایی با برچسب X تولید کند؟"
    یک فریم حذف شده بسیار شبیه به یک قاب داده است، اما با دو تفاوت مهم:

    به صراحت به عنوان یک فریم حذف شده علامت گذاری شده است (بیت RTR در قسمت داوری مغلوب است) و

    فیلد داده وجود ندارد.

    وظیفه اصلی یک فریم راه دور درخواست ارسال یک قاب داده مناسب است. اگر مثلاً گره A یک فریم راه دور با پارامتر میدان داوری 234 را ارسال کند، گره B، اگر به درستی مقداردهی اولیه شود، باید یک قاب داده با پارامتر فیلد داوری 234 را نیز ارسال کند.

    از فریم های راه دور می توان برای اجرای کنترل ترافیک اتوبوس درخواست-پاسخ استفاده کرد. با این حال، در عمل، قاب از راه دور کمتر استفاده می شود. این خیلی مهم نیست، زیرا استاندارد CAN دقیقاً نحوه نشان دادن آن را در اینجا تجویز نمی کند. اکثر کنترل‌کننده‌های CAN را می‌توان طوری برنامه‌ریزی کرد که به طور خودکار به یک فریم از راه دور پاسخ دهند، یا در عوض به پردازنده محلی اطلاع دهند.

    یک ترفند با فریم راه دور وجود دارد: کد طول داده باید روی طول پیام پاسخ مورد انتظار تنظیم شود. در غیر این صورت، حل تعارض کارساز نخواهد بود.

    گاهی اوقات لازم است که گره ای که به یک فریم راه دور پاسخ می دهد، به محض شناسایی شناسه، انتقال خود را آغاز کند، بنابراین قاب خالی از راه دور را پر می کند. این یک مورد متفاوت است.

    قاب خطا

    به طور خلاصه (با هم، با صدای بلند): "اوه عزیزم، بیایید یکی یکی یکی را امتحان کنیم"
    چارچوب خطا است پیام ویژه، که قوانین کادربندی پیام CAN را نقض می کند. زمانی ارسال می‌شود که یک گره شکست را تشخیص دهد و به سایر گره‌ها کمک می‌کند تا خرابی را تشخیص دهند - و آنها نیز فریم‌های خطا را ارسال می‌کنند. فرستنده به طور خودکار سعی می کند دوباره پیام را ارسال کند. یک طرح شمارشگر خطا به خوبی فکر شده وجود دارد تا اطمینان حاصل شود که یک گره نمی تواند ارتباط اتوبوس را با ارسال مکرر فریم های خطا مختل کند.

    قاب خطا حاوی یک پرچم خطا است که از 6 بیت با همان مقدار تشکیل شده است (در نتیجه قانون پر کردن بیت را نقض می کند) و یک جداکننده خطا که از 8 بیت مغلوب تشکیل شده است. جداکننده خطا فضایی را فراهم می کند که سایر گره های گذرگاه می توانند پرچم های خطای خود را پس از اینکه خودشان اولین پرچم خطا را تشخیص دهند، ارسال کنند.

    قاب اضافه بار

    به طور خلاصه: "من خیلی سرم شلوغ است 82526 کوچک، می توانید یک دقیقه صبر کنید؟"
    قاب اضافه بار در اینجا فقط برای کامل بودن ذکر شده است. از نظر فرمت بسیار شبیه به یک فریم خطا است و توسط یک گره مشغول ارسال می شود. قاب اضافه بار به ندرت استفاده می شود زیرا کنترلرهای مدرن CAN به اندازه کافی قدرتمند هستند که از آن استفاده نکنند. در واقع، تنها کنترل کننده ای که فریم های اضافه بار تولید می کند، 82526 منسوخ شده است.

    استاندارد و توسعه یافته CAN

    در ابتدا استاندارد CAN طول شناسه در فیلد داوری را 11 بیت تعیین کرد. بعداً به درخواست خریداران، استاندارد گسترش یافت. فرمت جدید اغلب به عنوان Extended CAN (Extended CAN) نامیده می شود و حداقل 29 بیت در شناسه اجازه می دهد. یک بیت رزرو شده در قسمت کنترل برای تمایز بین دو نوع فریم استفاده می شود.

    به طور رسمی، استانداردها به صورت زیر نامگذاری می شوند -

    2.0A - فقط با شناسه های 11 بیتی.
    2.0B یک نسخه توسعه یافته با شناسه های 29 بیتی یا 11 بیتی است (آنها را می توان مخلوط کرد). Node 2.0B می تواند باشد

    2.0B فعال قادر به ارسال و دریافت فریم های پخش یا

    2.0B منفعل (منفعل)، یعنی. فریم های طولانی دریافتی را بی سر و صدا دور می اندازد (اما زیر را ببینید).

    1.x - به مشخصات اصلی و اصلاحات آن اشاره دارد.

    در حال حاضر، کنترلرهای جدیدتر CAN معمولاً از نوع 2.0B هستند. یک کنترل کننده نوع 1.x یا 2.0A هنگام دریافت پیام با 29 بیت داوری اشتباه می شود. کنترل‌کننده نوع غیرفعال 2.0B آنها را می‌پذیرد، در صورت صحیح بودن آنها را تشخیص می‌دهد و سپس آنها را دور می‌اندازد. یک کنترلر 2.0B از نوع فعال می تواند هم چنین پیام هایی را ارسال و هم دریافت کند.

    کنترلرهای 2.0B و 2.0A (و همچنین 1.x) سازگار هستند. تا زمانی که کنترل‌کننده‌های 2.0B از ارسال فریم‌های گسترده خودداری کنند، می‌توانید از همه آنها در یک اتوبوس استفاده کنید.

    گاهی اوقات افراد ادعا می کنند که CAN استاندارد "بهتر" از CAN توسعه یافته است زیرا در پیام های CAN توسعه یافته سربار بیشتری وجود دارد. این ضروری نمی باشد. اگر از یک فیلد داوری برای انتقال داده ها استفاده می کنید، یک فریم CAN توسعه یافته ممکن است دارای سربار کمتری نسبت به فریم استاندارد CAN باشد.

    Basic CAN (Basic CAN) و CAN کامل (Full CAN)

    عبارت Basic CAN و Full CAN از دوران کودکی CAN سرچشمه می گیرد. روزی روزگاری، یک کنترلر Intel 82526 CAN وجود داشت که یک رابط به سبک DPRAM را در اختیار برنامه نویس قرار می داد. سپس فیلیپس با 82C200 آمد که از یک مدل برنامه نویسی مبتنی بر FIFO استفاده کرد و فرصت های محدودفیلتراسیون برای تمایز بین این دو مدل برنامه نویسی، مردم روش اینتل را Full CAN و روش فیلیپس را Basic CAN می نامند. امروزه اکثر کنترلرهای CAN از هر دو مدل برنامه نویسی پشتیبانی می کنند، بنابراین استفاده از اصطلاحات Full CAN و Basic CAN هیچ فایده ای ندارد - در واقع، این عبارات می توانند باعث سردرگمی شوند و باید از آنها اجتناب شود.

    در واقع یک کنترل کننده Full CAN می تواند با یک کنترل کننده Basic CAN ارتباط برقرار کند و بالعکس. هیچ مشکل سازگاری وجود ندارد.

    حل تعارض اتوبوس و اولویت پیام

    حل تعارض پیام (فرآیندی که طی آن دو یا چند کنترل کننده CAN تصمیم می گیرند چه کسی از گذرگاه استفاده کند) در تعیین پهنای باند واقعی برای انتقال داده بسیار مهم است.

    هر کنترل کننده CAN زمانی می تواند انتقال را آغاز کند که تشخیص دهد گذرگاه بیکار است. این می تواند باعث شود که دو یا چند کنترل کننده همزمان (تقریباً) یک پیام را ارسال کنند. تعارض به شرح زیر حل می شود. گره های فرستنده گذرگاه را در حین ارسال پیام نظارت می کنند. اگر یک گره یک سطح غالب را تشخیص دهد در حالی که خودش یک سطح مغلوب را ارسال می کند، بلافاصله از فرآیند حل تعارض خارج می شود و به گیرنده تبدیل می شود. تفکیک برخورد در کل فیلد داوری انجام می شود و پس از ارسال این فیلد، تنها یک فرستنده در اتوبوس باقی می ماند. اگر اتفاقی نیفتد، این گره به انتقال خود ادامه خواهد داد. فرستنده های بالقوه دیگر سعی می کنند پیام های خود را بعداً، زمانی که اتوبوس آزاد است، منتقل کنند. هیچ زمانی در روند حل تعارض تلف نمی شود.

    یک شرط مهم برای حل موفقیت آمیز تضاد، عدم امکان موقعیتی است که در آن دو گره بتوانند یک میدان داوری را انتقال دهند. یک استثنا برای این قانون وجود دارد: اگر پیام حاوی داده ای نباشد، هر گرهی می تواند این پیام را ارسال کند.

    از آنجایی که گذرگاه CAN یک گذرگاه سیمی و و بیت غالب یک 0 منطقی است، پیامی که از نظر عددی کمترین فیلد داوری را داشته باشد، حل تعارض را برنده خواهد شد.

    سوال: اگر یک گره اتوبوس بخواهد پیامی ارسال کند چه اتفاقی می افتد؟

    پاسخ: البته گره در حل تعارض پیروز می شود و پیام را با موفقیت منتقل می کند. اما وقتی زمان تشخیص فرا می رسد ... هیچ گره ای بیت غالب ناحیه تشخیص را ارسال نمی کند، بنابراین فرستنده یک خطای تشخیص را تشخیص می دهد، یک پرچم خطا ارسال می کند، شمارنده خطای ارسال خود را 8 افزایش می دهد و دوباره شروع به ارسال می کند. این چرخه 16 بار تکرار می شود، سپس فرستنده به وضعیت خطای غیرفعال می رود. طبق یک قانون خاص در الگوریتم محدود کردن خطا، اگر گره وضعیت خطای غیرفعال داشته باشد و خطا یک خطای تشخیص باشد، مقدار شمارنده خطای انتقال دیگر افزایش نخواهد یافت. بنابراین، گره برای همیشه منتقل می شود، تا زمانی که کسی پیام را تشخیص دهد.

    آدرس دهی و شناسایی پیام

    باز هم، هیچ اشکالی در این واقعیت وجود ندارد که پیام های CAN حاوی آدرس های دقیق نیستند. هر کنترل کننده CAN تمام ترافیک اتوبوس را دریافت می کند و با استفاده از ترکیبی از فیلترهای سخت افزاری و نرم افزار، تعیین می کند که آیا به این پیام "علاقه مند" است یا خیر.

    در واقع پروتکل CAN فاقد مفهوم آدرس پیام است. در عوض، محتوای پیام توسط شناسه‌ای تعریف می‌شود که در جایی در پیام قرار دارد. پیام‌های CAN را می‌توان «خطاب به محتوا» نامید.

    یک آدرس خاص مانند این کار می کند: "این یک پیام برای گره X است." یک پیام خطاب به محتوا را می توان اینگونه توصیف کرد: "این پیام حاوی داده هایی با علامت X است." تفاوت بین این دو مفهوم کوچک اما قابل توجه است.

    محتوای فیلد داوری، طبق استاندارد، برای تعیین ترتیب پیام در اتوبوس استفاده می شود. همه کنترل‌کننده‌های CAN همچنین از تمام (تنها بخشی) فیلد داوری به‌عنوان کلید در فرآیند فیلتر کردن سخت‌افزار استفاده می‌کنند.

    استاندارد نمی گوید که فیلد داوری لزوماً باید به عنوان شناسه پیام استفاده شود. با این حال، این یک مورد استفاده بسیار رایج است.

    نکته ای در مورد مقادیر شناسه

    گفتیم که 11 بیت (CAN 2.0A) یا 29 (CAN 2.0B) بیت در دسترس شناسه است. این کاملا درست نیست. برای سازگاری با یک کنترلر قدیمی CAN (حدس بزنید کدام یک؟)، شناسه ها نباید 7 بیت مهم را روی یک منطقی تنظیم کنند، بنابراین مقادیر 0..2031 برای شناسه های 11 بیتی و کاربران 29 بیتی در دسترس هستند. شناسه های بیت می توانند از 532676608 مقادیر مختلف استفاده کنند.

    توجه داشته باشید که سایر کنترل کننده های CAN شناسه های "اشتباه" را می پذیرند، بنابراین شناسه های 2032..2047 را می توان بدون محدودیت در سیستم های CAN مدرن استفاده کرد.

    لایه های فیزیکی CAN

    اتوبوس CAN

    گذرگاه CAN از کد بدون بازگشت به صفر (NRZ) با پر کردن بیت استفاده می کند. دو حالت سیگنال متفاوت وجود دارد: غالب (0 منطقی) و مغلوب (منطقی 1). آنها با سطوح الکتریکی خاصی مطابقت دارند، بسته به لایه فیزیکی مورد استفاده (چندین وجود دارد). ماژول ها با سیم و به گذرگاه متصل می شوند: اگر حداقل یک گره گذرگاه را در حالت غالب قرار دهد، بدون توجه به اینکه چند گره حالت مغلوب را منتقل می کنند، کل گذرگاه در این حالت قرار دارد.

    سطوح مختلف فیزیکی

    لایه فیزیکیسطوح الکتریکی و طرح سیگنال دهی اتوبوس، امپدانس کابل و غیره را تعریف می کند.

    چند وجود دارد نسخه های مختلفلایه های فیزیکی: رایج ترین نوع آن توسط استاندارد CAN، بخشی از ISO 11898-2 تعریف شده است و یک طرح سیگنال دهی متعادل دو سیم است. گاهی اوقات به آن پرسرعت CAN نیز می گویند.

    بخش دیگری از همان استاندارد ISO 11898-3 یک طرح سیگنال متوازن دو سیمه متفاوت را برای اتوبوس کندتر توصیف می کند. تحمل خطا دارد، بنابراین سیگنال‌دهی می‌تواند ادامه یابد حتی اگر یکی از سیم‌ها قطع شده باشد، اتصال به زمین یا در حالت Vbat باشد. گاهی اوقات این طرح کم سرعت CAN نامیده می شود.

    SAE J2411 یک لایه فیزیکی تک سیم (البته به علاوه زمین) را توصیف می کند. این عمدتا در اتومبیل ها استفاده می شود - به عنوان مثال GM-LAN.

    چندین لایه فیزیکی اختصاصی وجود دارد.

    در زمان های قدیم، زمانی که درایورهای CAN وجود نداشت، از تغییرات RS485 استفاده می شد.

    سطوح مختلف فیزیکی، به عنوان یک قاعده، نمی توانند با یکدیگر تعامل داشته باشند. برخی از ترکیبات ممکن است در شرایط خوب کار کنند (یا به نظر کارآیی داشته باشند). برای مثال، فرستنده‌های پرسرعت و کم‌سرعت ممکن است فقط گاهی اوقات در یک اتوبوس کار کنند.

    اکثریت قریب به اتفاق تراشه های فرستنده گیرنده CAN توسط فیلیپس ساخته می شوند. تولیدکنندگان دیگر عبارتند از Bosch، Infineon، Siliconix و Unitrode.

    رایج ترین فرستنده گیرنده 82C250 است که لایه فیزیکی توصیف شده توسط استاندارد ISO 11898 را پیاده سازی می کند.نسخه بهبود یافته 82C251 است.

    یک فرستنده گیرنده CAN با سرعت کم، فیلیپس TJA1054 است.

    حداکثر سرعت داده اتوبوس

    حداکثر سرعت انتقال داده در گذرگاه CAN، طبق استاندارد، برابر با 1 مگابیت در ثانیه است. با این حال، برخی از کنترلرهای CAN از سرعت بالای 1 مگابیت در ثانیه پشتیبانی می کنند و می توانند در برنامه های تخصصی استفاده شوند.

    CAN با سرعت پایین (ISO 11898-3، به بالا مراجعه کنید) تا سرعت 125 کیلوبیت در ثانیه کار می کند.

    باس CAN تک سیم حالت استانداردمی تواند داده ها را با سرعتی در حدود 50 کیلوبیت در ثانیه و در حالت ویژه با سرعت بالا، به عنوان مثال، برای برنامه نویسی یک ECU (ECU)، حدود 100 کیلوبیت در ثانیه انتقال دهد.

    حداقل سرعت انتقال داده در اتوبوس

    توجه داشته باشید که برخی از فرستنده‌ها به شما اجازه نمی‌دهند نرخی کمتر از مقدار مشخصی را انتخاب کنید. برای مثال اگر از 82C250 یا 82C251 استفاده می کنید، می توانید سرعت را بدون مشکل روی 10 کیلوبیت بر ثانیه تنظیم کنید، اما اگر از TJA1050 استفاده کنید، نمی توانید سرعت را زیر 50 کیلوبیت بر ثانیه قرار دهید. مشخصات را بررسی کنید.

    حداکثر طول کابل

    در سرعت انتقال داده 1 مگابیت بر ثانیه، حداکثر طول کابل مورد استفاده می تواند حدود 40 متر باشد. این به دلیل الزام طرح حل تعارض است که جبهه موج سیگنال باید بتواند به دورترین گره برسد و قبل از خواندن بیت به عقب برگردد. به عبارت دیگر طول کابل با سرعت نور محدود می شود. پیشنهادهایی برای افزایش سرعت نور در نظر گرفته شد، اما به دلیل مشکلات بین کهکشانی رد شد.

    سایر حداکثر طول کابل (مقادیر تقریبی هستند):

    100 متر در 500 کیلوبیت بر ثانیه؛

    200 متر در 250 کیلوبیت بر ثانیه؛

    500 متر در 125 کیلوبیت بر ثانیه؛
    6 کیلومتر با سرعت 10 کیلوبیت بر ثانیه.

    اگر از اپتوکوپلرها برای جداسازی گالوانیکی استفاده شود، حداکثر طول باس بر این اساس کاهش می یابد. نکته: از کوپلرهای نوری سریع استفاده کنید و به تاخیر سیگنال در دستگاه نگاه کنید، نه حداکثر سرعت داده در برگه داده.

    پایان اتوبوس

    گذرگاه CAN ISO 11898 باید با یک پایانه خاتمه یابد. این امر با نصب یک مقاومت 120 اهم در هر انتهای باس به دست می آید. فسخ دو هدف را دنبال می کند:

    1. بازتاب سیگنال در انتهای اتوبوس را حذف کنید.

    2. مطمئن شوید که در حال گرفتن سطوح صحیح است جریان مستقیم(دی سی).

    گذرگاه CAN ISO 11898 باید بدون توجه به سرعت آن خاتمه یابد. تکرار می کنم: گذرگاه CAN ISO 11898 باید بدون توجه به سرعت آن خاتمه یابد. برای کار آزمایشگاهیممکن است یک ترمیناتور کافی باشد. اگر اتوبوس CAN شما حتی در غیاب ترمیناتورها کار می کند، شما فقط خوش شانس هستید.

    توجه کنید که سایر سطوح فیزیکیمانند CAN با سرعت کم، CAN تک سیم و موارد دیگر، ممکن است به پایانه اتوبوس نیاز داشته باشند یا نباشند. اما گذرگاه CAN پرسرعت ISO 11898 شما همیشه به حداقل یک ترمیناتور نیاز دارد.

    کابل

    استاندارد ISO 11898 بیان می کند که مقاومت در برابر موجکابل اسمی باید 120 اهم باشد، با این حال، محدوده ای از مقادیر مقاومت اهم مجاز است.

    تعداد کمی از کابل های موجود در بازار امروز این الزامات را برآورده می کنند. این احتمال وجود دارد که دامنه مقادیر مقاومت در آینده افزایش یابد.

    ISO 11898 جفت پیچ خورده، محافظ یا بدون محافظ را توصیف می کند. کار بر روی استاندارد کابل تک سیم SAE J2411 در حال انجام است.

    مدیر

    نیاز به اتصال سریال در خودروها

    این مقاله ترجمه شده بعدی ما از چرخه اختصاص داده شده به گذرگاه CAN است که با کمی جزئیات بیشتر نحوه چیدمان و عملکرد گذرگاه CAN را نشان می دهد. اصل انگلیسی.

    بسیاری از خودروها در حال حاضر تعداد زیادی سیستم کنترل الکترونیکی دارند. رشد وسایل الکترونیکی خودرو تا حدی نتیجه تمایل مصرف کنندگان برای ایمنی و راحتی بیشتر و تا حدودی خواسته های دولت برای کنترل بهتر آلاینده ها و مصرف سوخت کمتر است. کنترل‌هایی که این الزامات را برآورده می‌کنند قبلاً برای مدتی در زمینه‌های کنترل موتور، گیربکس و دریچه گاز و همچنین در سیستم‌های ترمز ضد قفل (ABS) و کنترل شتاب (ASC) استفاده شده‌اند.

    پیچیدگی توابع پیاده سازی شده در این سیستم ها مستلزم تبادل داده بین آنهاست. سیستم‌های سنتی با استفاده از خطوط سیگنال اختصاصی ارتباط برقرار می‌کنند، اما با پیچیده‌تر شدن عملکردهای کنترلی، این امر دشوارتر و گران‌تر می‌شود. چه زمانی سیستم های پیچیدهکنترل ها (مانند Motronic)، به ویژه، تعداد اتصالات را دیگر نمی توان افزایش داد.

    علاوه بر این، تعدادی سیستم در حال توسعه هستند که عملکردهایی را اجرا می کنند که بیش از یک دستگاه کنترل را پوشش می دهد. به عنوان مثال، ASC به تعامل سیستم مدیریت موتور و کنترل دریچه گاز (پاشش) برای کاهش گشتاور هنگام لغزش چرخ محرک نیاز دارد. نمونه دیگری از عملکردهایی که بیش از یک واحد کنترل را شامل می شود، کنترل گیربکس الکترونیکی است، که در آن می توان با تنظیم مختصر زمان جرقه زنی، سهولت تعویض دنده را بهبود بخشید.

    اگر تحولات آتی را با هدف بهینه سازی کلی وسایل نقلیه نیز در نظر بگیریم، لازم است بر محدودیت هایی که به دلیل وجود دارد غلبه کنیم. دستگاه های معمولیمدیریت. این کار را فقط می توان با شبکه کردن اجزای سیستم با استفاده از گذرگاه داده سریال انجام داد. بوش کنترلر را توسعه داده است شبکه منطقه ای(CAN)، که از آن زمان به صورت بین المللی استاندارد شده است (ISO 11898) و توسط چندین سازنده نیمه هادی "ریخته گری در سنگ (در سیلیکون)" انجام شده است.

    با استفاده از CAN، ایستگاه های همتا به همتا (تک سطح) (کنترل کننده ها، حسگرها و محرک ها) از طریق یک گذرگاه سریال متصل می شوند. خود اتوبوس یک مدار دو سیمه متعادل یا نامتقارن است که می تواند محافظ یا بدون محافظ باشد. پارامترهای الکتریکی انتقال فیزیکی نیز در استاندارد ISO 11898 مشخص شده است. تراشه های راننده اتوبوس مناسب از طیف وسیعی از تولید کنندگان در دسترس هستند.

    پروتکل CAN که با لایه پیوند داده در مدل مرجع ISO/OSI مطابقت دارد، الزامات خودرو را برای کاربردهای فعلی خودرو برآورده می‌کند. برخلاف سازه های درخت کابل، پروتکل شبکهخطاهای انتقال ناشی از تداخل الکترومغناطیسی را شناسایی و تصحیح می کند. مزایای اضافی چنین شبکه ای سهولت پیکربندی کل سیستم و امکان تشخیص مرکزی است.

    هدف از استفاده از CAN در وسایل نقلیه این است که به هر ایستگاه اجازه می دهد با هر ایستگاه دیگری بدون تحمیل بار زیادی به رایانه کنترل کننده ارتباط برقرار کند.

    استفاده از شبکه CAN در خودروها

    چهار کاربرد اصلی برای ارتباطات سریال در وسایل نقلیه وجود دارد که هر کدام نیازمندی ها و اهداف متفاوتی دارند.

    کنترل کننده های شبکه برای همگام سازی موتور، گیربکس، شاسی و ترمز. نرخ انتقال داده در محدوده - معمولی برای سیستم های بلادرنگ - از 200 کیلوبیت بر ثانیه تا 1 مگابیت در ثانیه است.
    اجزای شبکهالکترونیک عمومی و الکترونیک شاسی که باعث راحتی بیشتر خودرو می شود. نمونه هایی از چنین کاربردهای چندگانه عبارتند از: کنترل روشنایی، تهویه مطبوع و قفل مرکزی، و تنظیم صندلی و آینه. در اینجا باید به هزینه های قطعات و الزامات سیم کشی اهمیت ویژه ای داده شود. سرعت داده معمولی حدود 50 کیلوبیت بر ثانیه است.
    در آینده نزدیک از ارتباطات سریالی نیز در میدان استفاده خواهد شد ارتباطات سیاربرای اتصال قطعاتی مانند رادیو ماشین، تلفن ماشین، وسایل کمک ناوبری و غیره به یک پانل کنترل مرکزی و ارگونومیک تر. عملکردهای تعریف شده در پروژه Prometheus، مانند ارتباط وسیله نقلیه به وسیله نقلیه، به شدت بر ارتباط سریال متکی هستند.
    در حال حاضر، CAN برای سه برنامه اول استفاده می شود، اما برای تشخیص، یک رابط مطابق با ISO 9141 راه حل ترجیحی است.

    کاربردهای صنعتی شبکه CAN

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

    استفاده استاندارد از CAN در "کلاس S" مرسدس بنز و استفاده از CAN توسط خودروسازان تجاری ایالات متحده برای انتقال سریع (حداکثر 1 مگابیت بر ثانیه) باعث شد تا کاربران صنعتی گوش های خود را تیز کنند. نه تنها تولید کنندگان ماشین آلات و تجهیزات کشاورزی و دریایی متحرک و ثابت، CAN را انتخاب کرده اند، بلکه تولید کنندگان تجهیزات پزشکی، ماشین آلات نساجی و همچنین تجهیزات ویژه و کنترل آسانسور را نیز انتخاب کرده اند. یک سیستم گذرگاه سریال مخصوصاً برای دستگاه‌های ورودی/خروجی «هوشمند» شبکه، و همچنین حسگرها و محرک‌های داخل ماشین یا کارخانه مناسب است.

    صنعت ماشین آلات نساجی یکی از پیشگامان CAN است. یکی از تولیدکنندگان دستگاه‌های بافندگی خود را با سیستم‌های کنترل مدولار که در زمان واقعی از طریق شبکه‌های CAN ارتباط برقرار می‌کردند، در اوایل سال 1990 مجهز کرد. در این بین، چندین تولید کننده ماشین آلات نساجی در "گروه کاربران نساجی CAN" ادغام شدند که به نوبه خود عضوی از گروه بین المللی کاربر و تولید کننده "CAN in Automation" است. الزامات مشابهی برای ماشین آلات نساجی در ماشین آلات بسته بندی و ماشین آلات تولید و پردازش کاغذ وجود دارد.

    در ایالات متحده، تعدادی از شرکت ها از CAN در خطوط تولید و ماشین ابزار استفاده می کنند سیستم داخلیلاستیک برای سنسورها و محرک های شبکه در داخل خط یا مستقیماً روی دستگاه. برخی از کاربران، مانند بخش مهندسی پزشکی، CAN را انتخاب کردند زیرا الزامات امنیتی ویژه ای داشتند. سایر تولید کنندگان ماشین آلات و تجهیزات با الزامات ایمنی خاص (مانند ربات ها و سیستم های حمل و نقل) با مشکلات مشابهی روبرو هستند.

    علاوه بر قابلیت اطمینان انتقال بالا، هزینه های اتصال کم به ازای هر ایستگاه یکی دیگر از استدلال های تعیین کننده برای CAN است. در برنامه‌هایی که قیمت آن بسیار مهم است، ضروری است که تراشه‌های CAN از تولیدکنندگان مختلف در دسترس باشند. فشردگی سایر تراشه‌های کنترل‌کننده نیز از جمله موارد مهم است، به عنوان مثال در زمینه تابلو برق ولتاژ پایین.

    شبکه های CAN چگونه کار می کنند

    اصول تبادل داده

    هنگامی که داده ها از طریق CAN منتقل می شوند، هیچ ایستگاهی آدرس دهی نمی شود، اما در عوض محتوای پیام (مثلاً سرعت یا دمای موتور) توسط یک شناسه که در سراسر شبکه منحصر به فرد است، شناسایی می شود. شناسه نه تنها محتوا، بلکه اولویت پیام را نیز تعیین می کند. این برای تخصیص اتوبوس مهم است زمانی که ایستگاه های متعدد برای دسترسی به اتوبوس رقابت می کنند. اگر CPU یک ایستگاه معین بخواهد پیامی را به یک یا چند ایستگاه ارسال کند، داده ها و شناسه های آنها را به تراشه CAN اختصاص داده شده (حالت آماده) ارسال می کند. این تمام کاری است که CPU باید برای شروع ارتباط انجام دهد. پیام با استفاده از تراشه CAN شکل گرفته و منتقل می شود. به محض اینکه تراشه CAN یک تخصیص اتوبوس را دریافت کرد (وضعیت "ارسال پیام")، تمام ایستگاه های دیگر در شبکه CAN گیرنده این پیام می شوند (وضعیت "دریافت پیام"). هر ایستگاه در شبکه CAN، پس از دریافت صحیح پیام، یک تست پذیرش (آزمون دریافت) را انجام می دهد تا تعیین کند که آیا داده های دریافتی برای این ایستگاه اعمال می شود (وضعیت "انتخاب"). اگر داده ها مربوط به ایستگاه مربوطه باشد، پردازش می شود (وضعیت "پذیرفته شده")، در غیر این صورت نادیده گرفته می شود. درجه بالایی از انعطاف پذیری سیستم و پیکربندی از طریق یک طرح آدرس دهی محتوا گرا به دست می آید. اضافه کردن ایستگاه ها به یک شبکه CAN موجود بدون ایجاد هیچ تغییری در سخت افزار یا سخت افزار بسیار آسان است نرم افزاربرای ایستگاه های موجود، مشروط بر اینکه ایستگاه های جدید گیرنده های خالص باشند. از آنجایی که پروتکل ارتباطی به آدرس‌های مقصد فیزیکی برای اجزای جداگانه نیاز ندارد، از مفهوم الکترونیک ماژولار پشتیبانی می‌کند و همچنین امکان دریافت چندگانه (پخش، چندپخشی) و همگام‌سازی فرآیندهای توزیع شده را فراهم می‌کند: اندازه‌گیری‌های مورد نیاز به عنوان اطلاعات توسط چندین کنترلر می‌توانند از طریق آن منتقل شوند. یک شبکه به گونه ای که هر کنترل کننده نیازی به داشتن سنسور خاص خود نداشته باشد.



    1. انتقال پخش و فیلتر ورودی توسط گره های CAN برای تعیین اینکه آیا داده ها برای یک گره خاص مناسب هستند یا خیر.

    بررسی بیتی غیر مخرب:

    برای اینکه داده ها در زمان واقعی پردازش شوند، باید به سرعت منتقل شوند. این نه تنها به یک پیوند داده فیزیکی تا 1 مگابیت در ثانیه نیاز دارد، بلکه به تخصیص سریع گذرگاه در زمانی که چندین ایستگاه می خواهند همزمان پیام ارسال کنند نیز نیاز دارد.



    2. اصل تایید بیتی غیر مخرب (ارزیابی، خواندن)

    در زمان واقعی، فوریت (صف) پیام‌های شبکه می‌تواند بسیار متفاوت باشد: اندازه‌ای که به سرعت در حال تغییر است (مثلاً بار موتور) باید بیشتر و در نتیجه با تأخیرهای کوتاه‌تری نسبت به اندازه‌گیری‌های دیگر (مثلاً دمای موتور) که نسبت به آهسته تغییر می‌کند، ارسال شود. اولویتی که در آن یک پیام نسبت به پیام کمتر فوری دیگری منتقل می شود توسط شناسه پیام مربوطه تعیین می شود. اولویت ها در طراحی سیستم به عنوان مقادیر باینری متناظر تنظیم می شوند و نمی توان آنها را به صورت پویا تغییر داد. شناسه با کوچکترین عدد باینریبالاترین اولویت را دارد.

    تداخل دسترسی گذرگاه با بررسی بیت به بیت هر یک از ایستگاه های شرکت کننده شناسه های دریافتی با مشاهده (خواندن) سطح گذرگاه بیت به بیت حل می شود. با توجه به مکانیسم "سیمی و" که توسط آن حالت غالب (منطقی 0) حالت مغلوب را بازنویسی می کند (منطقی 1)، مناقشه برای تخصیص اتوبوس توسط همه این ایستگاه ها با انتقال مغلوب و ساعت غالب (صبر کنید تا 0 دریافت شود) از بین می رود. همه "بازنده ها" به طور خودکار دریافت کنندگان پیام با بالاترین اولویت می شوند و تا زمانی که اتوبوس دوباره در دسترس نباشد، ارسال مجدد نمی کنند.

    راندمان توزیع تایر:

    کارایی یک سیستم توزیع اتوبوس در درجه اول با استفاده احتمالی از یک گذرگاه سریال برای آن سیستم تعیین می شود. به منظور قضاوت در مورد اینکه کدام سیستم اتوبوس برای کدام کاربرد مناسب است، ادبیات شامل روشی برای طبقه‌بندی روش‌های تخصیص اتوبوس است. ما معمولاً بین کلاس های زیر تمایز قائل می شویم:

    توزیع بر اساس برنامه زمانی مشخص تخصیص به طور متوالی برای حداکثر مدت زمان به هر شرکت کننده انجام می شود، صرف نظر از اینکه آیا این شرکت کننده در حال حاضر به اتوبوس نیاز دارد یا خیر (مثلاً: سلول نشانه یا انتقال رمز).
    تخصیص تایر بر اساس نیاز اتوبوس بر اساس درخواست‌های انتقال معوق به یک عضو اختصاص داده می‌شود، یعنی سیستم تخصیص فقط شرکت‌کنندگانی را که مایل به انتقال هستند در نظر می‌گیرد (مثلاً: CSMA، CSMA/CD، پرواز کنترل، حلقه یا چک بیت). برای CAN، تخصیص گذرگاه منحصراً بین پیام‌هایی که منتظر ارسال هستند، مذاکره می‌شود. این بدان معنی است که رویه تعریف شده توسط CAN به عنوان تخصیص بر اساس نیاز طبقه بندی می شود.

    روش دیگر برای ارزیابی اثربخشی سیستم های بازرسی (ارزیابی) تایر، روش دسترسی اتوبوس است:

    دسترسی غیر مخرب اتوبوس با روش هایی از این نوع، اتوبوس به یک و تنها یک ایستگاه، بلافاصله یا در مدت زمان معین پس از یک بار دسترسی به اتوبوس (توسط یک یا چند ایستگاه) اختصاص داده می شود. این تضمین می کند که هر دسترسی به اتوبوس توسط یک یا چند ایستگاه منجر به تخصیص اتوبوس منحصر به فرد می شود (مثلاً: مکان توکن، انتقال نشانه، حلقه زدن، بررسی بیت).
    توزیع مخرب لاستیک دسترسی همزمان بیش از یک ایستگاه به اتوبوس منجر به توقف تمام تلاش‌های انتقال می‌شود و از این رو تخصیص اتوبوس موفقیت‌آمیزی وجود ندارد. تخصیص گذرگاه ممکن است به بیش از یک دسترسی اتوبوس نیاز داشته باشد، تعداد تلاش‌ها قبل از تخصیص موفقیت‌آمیز گذرگاه صرفاً یک مقدار آماری است (مثلاً: CSMA/CD، اترنت). برای رسیدگی به تمام درخواست‌های انتقال شبکه CAN و در عین حال رعایت محدودیت‌های تأخیر با کمترین نرخ داده ممکن، پروتکل CAN باید یک روش تخصیص گذرگاه را پیاده‌سازی کند که تضمین کند همیشه یک تخصیص گذرگاه بدون ابهام وجود دارد، حتی اگر دسترسی‌های گذرگاهی به طور همزمان از کشورهای مختلف وجود داشته باشد. ایستگاه ها

    روش بررسی بیت به بیت، با استفاده از شناسه پیام‌هایی که قرار است ارسال شوند، هر گونه برخورد بین ایستگاه‌های متعددی را که می‌خواهند ارسال کنند، به‌طور منحصربه‌فرد برطرف می‌کند و این کار را حداکثر در 13 (فرمت استاندارد) یا 33 (فرمت توسعه‌یافته) انجام می‌دهد. دوره های بیت برای هر دوره دسترسی به تایر. برخلاف بررسی مبتنی بر پیام که توسط روش CSMA/CD استفاده می‌شود، این روش حل تعارض غیر مخرب تضمین می‌کند که پهنای باند گذرگاه بدون ارسال اطلاعات مفید استفاده نمی‌شود.

    حتی در شرایطی که گذرگاه شلوغ است، مرتبط کردن اولویت دسترسی به گذرگاه با محتوای پیام در مقایسه با پروتکل‌های موجود CSMA/CD یا توکن (توکن) یک ویژگی سیستم مفید است: علی‌رغم پهنای باند گذرگاه ناکافی، تمام درخواست‌های انتقال معوق در پردازش می‌شوند. اهمیت آنها را برای کل سیستم سفارش دهید (همانطور که اولویت پیام تعیین می شود).

    پهنای باند موجود به طور موثر برای انتقال داده های مفید استفاده می شود، زیرا "شکاف ها" در تخصیص گذرگاه بسیار کوچک نگه داشته می شوند. سقوط کل سیستم انتقال به دلیل اضافه بار، که می تواند با پروتکل CSMA / CD اتفاق بیفتد، با CAN امکان پذیر نیست. به این ترتیب، CAN امکان پیاده‌سازی دسترسی سریع و تعریف‌شده توسط ترافیک را فراهم می‌کند که به دلیل بررسی بیت به بیت بر اساس اولویت پیام استفاده شده، غیرمخرب است.

    دسترسی غیر مخرب اتوبوس را می توان به موارد زیر تقسیم کرد:

    مدیریت متمرکز دسترسی اتوبوس و
    کنترل دسترسی غیرمتمرکز اتوبوس

    بسته به اینکه مکانیسم های کنترلی فقط یک بار (متمرکز) یا بیش از یک بار (غیرمتمرکز) در سیستم وجود داشته باشد.

    سیستم ارتباطی با ایستگاه اختصاص داده شده (به ویژه برای کنترل دسترسی متمرکز اتوبوس) باید راهبردی را ارائه دهد که در صورت خرابی ایستگاه اصلی عمل کند. این مفهوم این عیب را دارد که اجرای استراتژی مدیریت شکست پیچیده و پرهزینه است و زمان زیادی طول می کشد تا ایستگاه پشتیبان ایستگاه مرکزی را تصاحب کند.

    به این دلایل، و برای دور زدن مشکل قابلیت اطمینان ایستگاه اصلی (و بنابراین کل سیستم ارتباطی)، پروتکل CAN مدیریت اتوبوس غیرمتمرکز را پیاده سازی می کند. تمام مکانیزم های ارتباطی اولیه، از جمله کنترل دسترسی اتوبوس، چندین بار در سیستم انجام می شود، زیرا این تنها راه برای برآورده کردن نیازهای دسترسی بالا سیستم ارتباطی است.

    به طور کلی می توان گفت که CAN یک سیستم تخصیص اتوبوس تعریف شده از ترافیک را پیاده سازی می کند که با استفاده از دسترسی غیرمخرب اتوبوس با کنترل دسترسی غیرمتمرکز، اجازه می دهد تا سطح بالایی را ارائه دهد. سرعت مفیدانتقال داده ها با کمترین نرخ داده اتوبوس ممکن در شرایط اتوبوس شلوغ برای همه ایستگاه ها. کارایی روش بررسی اتوبوس با این واقعیت افزایش می یابد که اتوبوس فقط توسط ایستگاه هایی استفاده می شود که منتظر ارسال درخواست هستند.

    این درخواست ها به ترتیب اهمیت پیام ها برای سیستم به عنوان یک کل پردازش می شوند. این به ویژه در صورت اضافه بار مفید است. از آنجایی که دسترسی گذرگاه اولویت مبتنی بر پیام است، تاخیر فردی کم را می توان در سیستم های بلادرنگ تضمین کرد.



    3. قاب پیام برای فرمت استاندارد (مشخصات CAN 2.0A)

    فرمت های پیام

    پروتکل CAN از دو فرمت فریم (فریم) پیام پشتیبانی می کند، تنها تفاوت مهم در طول شناسه (ID) است. در فرمت استاندارد، طول شناسه 11 بیت و در فرمت توسعه یافته، طول 29 بیت است. چارچوب پیام برای انتقال در اتوبوس شامل هفت فیلد اصلی است.

    یک پیام با فرمت استاندارد با یک بیت شروع "شروع قاب" شروع می شود و پس از آن یک "فیلد اعتبار سنجی" حاوی یک شناسه و یک بیت "RTR" (درخواست انتقال از راه دور) است که نشان می دهد یک قاب داده است یا یک فریم درخواست بدون هر یا بایت داده (قاب درخواست از راه دور).

    "فیلد کنترل" حاوی بیت پسوند IDE (شناسه پسوند) است که فرمت استاندارد یا فرمت توسعه یافته را نشان می دهد، بیت برای برنامه های افزودنی آینده رزرو شده است و - در 4 بیت آخر - تعداد بایت های داده فیلد داده.

    طول "فیلد داده" بین 0 تا 8 بایت است و پس از آن یک فیلد "CRC" وجود دارد که به عنوان یک بررسی ایمنی فریم برای تشخیص خطاهای بیت استفاده می شود.

    فیلد "ACK" حاوی یک اسلات ACK (1 بیت) و یک جداکننده ACK (یک بیت مغلوب) است. بیت موجود در شکاف ACK به عنوان یک بیت مغلوب ارسال می شود و به عنوان یک بیت غالب توسط گیرنده هایی که داده ها را به درستی (درست) در آن نقطه از زمان دریافت کرده اند بازنویسی می شود (تأیید مثبت). پیام های صحیحبدون در نظر گرفتن نتیجه آزمون پذیرش توسط گیرندگان تایید شده است. پایان یک پیام با "پایان فریم" نشان داده می شود. "Gap" حداقل تعداد دوره های بیتی است که پیام های متوالی را از هم جدا می کند. اگر ایستگاهی به اتوبوس بعدی دسترسی نداشته باشد، اتوبوس بیکار می ماند ("اتوبوس بیکار").

    تشخیص خطا و سیگنال دهی

    برخلاف سایر سیستم های گذرگاهی، پروتکل CAN از پیام های تایید استفاده نمی کند، بلکه هر گونه خطای رخ داده را علامت می دهد. برای شناسایی خطاها در پروتکل CAN، سه مکانیسم در سطح پیام پیاده سازی می شود:

    بررسی افزونگی چرخه ای (CRC) CRC با افزودن بیت های بررسی اضافی در انتهای انتقال، از اطلاعات موجود در یک فریم محافظت می کند. در انتهای گیرنده، این بیت ها دوباره محاسبه شده و با بیت های دریافتی بررسی می شوند. اگر آنها مخالف باشند، یک خطای CRC رخ داده است. بررسی فریم - این مکانیسم ساختار فریم ارسالی را با بررسی فیلدهای بیت برای قالب و اندازه قاب ثابت بررسی می کند. خطاهایی که در طول بررسی فریم پیدا می شوند به عنوان "خطاهای قالب" نامیده می شوند.
    خطاهای ACK همانطور که در بالا ذکر شد، فریم های دریافتی توسط همه گیرندگان از طریق "تأیید مثبت" تایید می شوند. اگر هیچ تاییدی از فرستنده پیام دریافت نشود (خطای ACK)، این ممکن است به این معنی باشد که یک خطای انتقال وجود دارد که فقط توسط گیرنده ها شناسایی شده است، فیلد ACK خراب شده است یا گیرنده ای وجود ندارد.

    پروتکل CAN همچنین دو مکانیسم تشخیص خطا در سطح بیت را پیاده سازی می کند.

    نظارت بر. توانایی فرستنده برای تشخیص خطاها بر اساس نظارت بر سیگنال اتوبوس است: هر گره ای که ارسال می کند سطح گذرگاه را نیز نظارت می کند و بنابراین تفاوت بین یک بیت ارسالی و یک بیت دریافتی را تشخیص می دهد. این امکان تشخیص قابل اعتماد تمام خطاهای سراسری و فرستنده-محلی را فراهم می کند.
    Bit Stuffing - رمزگذاری تک تک بیت ها در سطح بیت بررسی می شود. نمایش بیت مورد استفاده توسط CAN کدگذاری NRZ (بدون بازگشت به صفر) است که حداکثر کارایی را در رمزگذاری بیت تضمین می کند. لبه‌های همگام‌سازی به‌وسیله‌ی پر کردن بیت ایجاد می‌شوند، یعنی پس از پنج بیت متوالی مساوی، فرستنده بیت‌های اطلاعاتی را با مقدار اضافی وارد جریان بیت می‌کند که توسط گیرنده‌ها حذف می‌شوند. راستی‌آزمایی کد محدود به بررسی این است که از قانون padding پیروی می‌شود. اگر یک یا چند خطا توسط حداقل یک ایستگاه (هر ایستگاه) با استفاده از مکانیسم های فوق شناسایی شود، انتقال فعلی با ارسال "پرچم خطا" متوقف می شود. این امر از دریافت پیام توسط ایستگاه های دیگر جلوگیری می کند و در نتیجه ثبات داده ها را در سراسر شبکه تضمین می کند.

    پس از پایان انتقال پیام اشتباهفرستنده به طور خودکار انتقال را دوباره امتحان می کند (درخواست مجدد خودکار). ممکن است دوباره رقابت برای تخصیص اتوبوس وجود داشته باشد. به طور معمول، پس از شناسایی یک خطا، ارسال مجدد در دوره های 23 بیتی آغاز می شود. در موارد خاص، زمان بازیابی سیستم 31 بیت است.

    با این حال، روش توصیف شده می تواند در مواردی مؤثر و کارآمد باشد که نقص ایستگاه می تواند منجر به قطع شدن همه پیام ها (از جمله پیام های صحیح) شود که در صورت عدم اقدامات نظارتی خود سیستم اتوبوس را مسدود می کند. بنابراین، پروتکل CAN مکانیزمی برای جداسازی خطاهای پراکنده از خطاهای مداوم و محلی سازی خرابی های ایستگاه (محدود کردن خطا) فراهم می کند. این کار توسط ارزیابی آماریموقعیت های خطای ایستگاه به منظور تشخیص عیوب خود ایستگاه و ورود احتمالیبه حالتی از عملکرد که در آن بقیه شبکه CAN تحت تأثیر قرار نگیرد. این ممکن است تا آنجا پیش برود که باعث شود ایستگاه به خودی خود خاموش شود تا از شناسایی نادرست پیام های نادرست در میان پیام هایی که سقط شده اند جلوگیری شود.

    قابلیت اطمینان داده های پروتکل CAN:

    معرفی سیستم های مرتبط با ایمنی در وسایل نقلیه با الزامات بالایی برای قابلیت اطمینان انتقال داده همراه است. هدف اغلب به گونه ای تنظیم می شود که از موقعیت های خطرناک برای راننده در نتیجه تبادل داده ها در طول عمر وسیله نقلیه جلوگیری کند.

    این هدف در صورتی محقق می شود که قابلیت اطمینان داده ها به اندازه کافی بالا باشد یا احتمال خطای باقیمانده به اندازه کافی کم باشد. در زمینه سیستم های گذرگاه داده، قابلیت اطمینان به توانایی شناسایی داده های خراب شده توسط خطاهای انتقال اشاره دارد. احتمال خطای باقیمانده یک معیار آماری برای زوال قابلیت اطمینان داده ها است: احتمال خرابی داده ها را تعیین می کند و اینکه این خرابی شناسایی نمی شود. احتمال خطای باقیمانده باید آنقدر کم باشد که به طور متوسط ​​هیچ داده خراب در طول عمر سیستم مورد توجه قرار نگیرد.



    4. احتمال خطای باقیمانده به عنوان تابعی از احتمال خطای بیت

    محاسبه احتمال خطای باقیمانده نیاز به طبقه بندی خطا دارد و اینکه کل مسیر انتقال توسط مدل توصیف شود. اگر احتمال خطای باقیمانده CAN را به عنوان تابعی از احتمال خطای بیت برای طول پیام از 80 تا 90 بیت، برای پیکربندی سیستم، به عنوان مثال، پنج یا ده گره و با نرخ خطا 1/1000 تعریف کنیم (خطایی در یک پیام در هر هزار)، سپس حداکثر احتمال خطای بیت تقریباً 0.02 تا حدود 10^-13 است. بر این اساس، می توان حداکثر تعداد خطاهای غیرقابل کشف را برای یک شبکه CAN مشخص محاسبه کرد.

    به عنوان مثال، اگر شبکه CAN با سرعت داده 1 مگابیت در ثانیه، با میانگین استفاده از پهنای باند گذرگاه 50 درصد، با طول عمر کل 4000 ساعت، و با میانگین طول پیام 80 بیت، کار می کند، تعداد کل پیام های ارسالی 9x10^10 است. بنابراین تعداد آماری خطاهای انتقال کشف نشده در طول عمر کمتر از مرتبه 10^-2 است. یا به عبارت دیگر، با مدت زمان هشت ساعت در روز به مدت 365 روز در سال و نرخ خطا در هر 0.7 ثانیه، هر هزار سال یک خطای کشف نشده رخ می دهد (میانگین آماری).

    پیام های پیشرفته CAN

    کمیته فرعی کامیون‌ها و اتوبوس‌های SAE دارای سیگنال‌ها و پیام‌های استاندارد شده و همچنین پروتکل‌های انتقال داده برای نرخ‌های مختلف داده است. آشکار شده است که این نوع استانداردسازی زمانی که یک فیلد شناسایی طولانی‌تر در دسترس باشد، آسان‌تر اجرا می‌شود.

    برای حمایت از این تلاش ها، پروتکل CAN با معرفی یک شناسه 29 بیتی توسعه یافته است. این شناسه از یک شناسه 11 بیتی (Base-ID) و یک پسوند 18 بیتی (Extension-ID) تشکیل شده است. بنابراین، پروتکل CAN امکان استفاده از دو قالب پیام را می دهد: StandardCAN (نسخه 2.0A) و ExtendedCAN (نسخه 2.0B). از آنجایی که دو قالب باید در یک گذرگاه همزیستی داشته باشند، مشخص می‌شود که در صورت برخورد گذرگاه با فرمت‌های ضد aliasing و شناسه پایه یکسان، کدام پیام در گذرگاه اولویت بیشتری دارد: یک پیام استاندارد همیشه بر یک قالب توسعه‌یافته اولویت دارد. پیام

    کنترل‌کننده‌های CAN که از پیام‌های فرمت توسعه‌یافته پشتیبانی می‌کنند نیز می‌توانند پیام‌های قالب استاندارد را ارسال و دریافت کنند. در صورتی که کنترل کننده های CAN که فقط از فرمت استاندارد (نسخه 2.0A) پشتیبانی می کنند در این شبکه استفاده شود، فقط پیام هایی با فرمت استاندارد در سراسر شبکه قابل انتقال هستند. پیام‌های با فرمت توسعه‌یافته اشتباه درک خواهند شد. با این حال، کنترل‌کننده‌های CAN وجود دارند که فقط از فرمت استاندارد پشتیبانی می‌کنند، اما پیام‌های فرمت توسعه‌یافته را تشخیص می‌دهند و آنها را نادیده می‌گیرند (نسخه 2.0B غیرفعال).

    تمایز بین قالب استاندارد و فرمت توسعه یافته با استفاده از بیت IDE (بیت پسوند شناسه) انجام می شود که در مورد یک قاب قالب استاندارد به عنوان غالب منتقل می شود. برای فریم های فرمت توسعه یافته، این مغلوب است. بیت RTR بسته به اینکه داده ارسال یا درخواست شده باشد غالب یا مغلوب منتقل می شود. پیام خاصاز ایستگاه به جای بیت RTR در قالب استاندارد، بیت SRR (تعویض درخواست از راه دور) برای فریم های شناسه توسعه یافته ارسال می شود. بیت SRR همیشه به صورت مغلوب منتقل می‌شود تا اطمینان حاصل شود که در صورت بررسی، یک فریم استاندارد همیشه دارای اولویت گذرگاه به یک فریم توسعه‌یافته است زمانی که هر دو پیام دارای شناسه پایه یکسان هستند.

    برخلاف فرمت استاندارد، در فرمت توسعه یافته، بیت IDE با یک شماره شناسه 18 بیتی، یک بیت RTR و یک بیت رزرو شده (r1) دنبال می شود.

    تمام فیلدهای زیر با استاندارد یکسان هستند. مطابقت بین دو فرمت با این واقعیت تضمین می شود که کنترل کننده های CAN که از فرمت توسعه یافته پشتیبانی می کنند نیز می توانند داده ها را در قالب استاندارد تبادل کنند.



    5. قاب پیام برای فرمت توسعه یافته (مشخصات CAN 2.0A)

    پیاده سازی پروتکل CAN

    ارتباطات برای همه پیاده سازی های پروتکل CAN یکسان است. با این حال، تفاوت‌هایی در میزان مدیریت یک پیاده‌سازی پیام‌های ارسالی از میکروکنترلرهایی که آن را در مدار دنبال می‌کنند، وجود دارد. ارتباطات برای همه پیاده سازی های پروتکل CAN یکسان است. با این حال، در نحوه اجرای پیام از میکروکنترلرهایی که آن را در مدار دنبال می کنند، تفاوت هایی وجود دارد.

    کنترلر CAN با بافر میانی

    کنترل‌کننده‌های بافر CAN (که قبلاً به تراشه‌های BasicCAN گفته می‌شد) منطق مورد نیاز برای ایجاد و تأیید یک جریان بیت را طبق پروتکل به عنوان سخت‌افزار پیاده‌سازی می‌کنند. با این حال، مدیریت مجموعه داده های ارسال و دریافت، به ویژه فیلتر دریافت، تنها توسط کنترل کننده CAN انجام می شود.

    به عنوان یک قاعده، کنترل کننده های CAN با بافر میانی دارای دو بافر دریافت و یک بافر انتقال هستند. رجیسترهای کد 8 بیتی و ماسک امکان فیلتر پذیری محدود را می‌دهند (8 MSB شناسه). انتخاب مناسب از این مقادیر موردی، امکان خواندن گروه‌های شناسه یا در موارد مرزی، انتخاب همه شناسه‌ها را فراهم می‌کند. اگر بیش از 8 ID-MSB برای تمایز پیام مورد نیاز است، میکروکنترلری که از کنترل کننده CAN در مدار پیروی می کند باید فیلتر پذیرش نرم افزار را تکمیل کند.

    کنترل‌کننده‌های CAN با بافر میانی می‌توانند بار زیادی را روی یک میکروکنترلر با فیلتر دریافتی تخلیه کنند، اما آنها فقط به یک منطقه تراشه کوچک نیاز دارند و بنابراین می‌توانند با هزینه کمتری تولید شوند. در اصل، آنها می توانند تمام اشیاء را در شبکه CAN دریافت کنند.

    کنترلر CAN با ذخیره سازی اشیا.

    اشیاء CAN عمدتاً از سه جزء تشکیل شده است: یک شناسه، یک کد طول داده و بار واقعی.

    کنترل‌کننده‌های CAN ذخیره‌سازی (که قبلاً fullCAN نامیده می‌شد) مانند کنترل‌کننده‌های CAN با بافرهای میانی عمل می‌کنند، اما اشیاء خاصی را نیز مدیریت می‌کنند. در جایی که چندین درخواست همزمان وجود داشته باشد، برای مثال تعیین می کنند که کدام شی باید ابتدا ارسال شود. آنها همچنین فیلتر پذیرش را روی اشیاء ورودی انجام می دهند. رابط میکروکنترلر بعدی با RAM مطابقت دارد. داده هایی که باید ارسال شوند در ناحیه رم مربوطه نوشته می شوند، داده های دریافتی به ترتیب از ناحیه رم خوانده می شوند. میکروکنترلر فقط باید چند بیت را مدیریت کند (مثلاً درخواست انتقال).

    کنترل‌کننده‌های CAN با ذخیره‌سازی شی برای حداکثر بار از میکروکنترلر محلی طراحی شده‌اند. با این حال، این کنترل‌کننده‌های CAN به مساحت تراشه بزرگ‌تری نیاز دارند و بنابراین گران‌تر هستند. علاوه بر این، آنها فقط می توانند تعداد محدودی تراشه (میکروکنترلر) را مدیریت کنند.

    امروزه کنترل کننده های CAN موجود هستند که هر دو اصل پیاده سازی را با هم ترکیب می کنند. آنها دارای ذخیره سازی شی هستند که حداقل یکی از آنها به عنوان یک بافر میانی طراحی شده است. به همین دلیل، دیگر تفاوت قائل شدن بین basicCAN و fullCAN منطقی نیست.

    CAN کنترلرهای برده برای توابع I/O.

    درست مانند کنترلرهای CAN که از تمام عملکردهای پروتکل CAN پشتیبانی می کنند، تراشه های CAN نیز وجود دارند که به میکروکنترلر بعدی نیاز ندارند. این تراشه های CAN SLIO نامیده می شوند ( اتصال سریال I/O). تراشه های CAN برده هستند و باید توسط یک CAN master (میکروکنترلر مرکزی، اصلی در شبکه) کنترل شوند.

    اتصال فیزیکی CAN

    نرخ داده (تا 1 مگابیت بر ثانیه) نیاز به یک شیب پالس نسبتاً تند دارد که فقط با استفاده از سلول های قدرت قابل تحقق است. در اصل، چندین اتصال فیزیکی امکان پذیر است. با این حال، کاربران و سازندگان گروه CAN در اتوماسیون، استفاده از طرح‌های درایور را مطابق با ISO 11898 توصیه می‌کنند.

    آی سی های درایور جاسازی شده مطابق با ISO 11898 از چندین شرکت (Bosch، Philips، Siliconix، و Texas Instruments) در دسترس هستند. گروه بین المللی کاربران و تولیدکنندگان (CiA) چندین اتصال مکانیکی (کابل و کانکتور) را نیز تعریف می کند.



    6. اتصال فیزیکی CAN مطابق ISO 11898

    با احترام، ترجمه توسط تیم کارگاه ارائه می شود