پروتکل KNX چیست ؟
KNX یک خط باس است شامل دستگاه هایی که به آن ها اشیاء گروهی می گویند.
یک شئ گروه برای مثال می تواند وضعیت سویچ، شدت نور روز یا دمای اتاق باشد.
برنامه ی نرم افزاری مقادیر یک سنسور را اندازه گیری می کند .و پارامتر فیزیکی را ( مثلاَ حالت اتصال، مقدار لوکس، دما و …) و مقدار این پارامتر را در شئ گروه مناسب می نویسد. به طور همزمان، به نرم افزار سیستم درخواست می دهد که مقدار جدید شئ گروه را روی خط باس بفرستد، به منظور آگاه کردن بقیه ی دستگاه های مرتبط با سنسور از مقدار جدید این پارامترها
برای درک از شبکه KNX نیاز است که یک سری اطلاعات سخت افزاری از انتقال بیتها و نوع انتقال( مودلاسیون) را داشته باشید.
در ادامه اشنایی مختصری راجب به لایه های شبکه و معرف هر لایه در پروتکل KNX را توضیح داده و در اخر مدل استارد داده در یک تلگرام را شرح میدهیم.
امید که این مقاله برای شما سود مند باشد. شاپ الکترونیک تولید کننده انواع تجیزات بر مبنای پروتکل KNX اماده دریافت سفارشات شما میباشد.
دسته بندی باس های سریال بر اساس نوع مودلاسیون
- مدولاسیون دامنه (AM): دامنهٔ سیگنال حامل بر اساس تغییرات سیگنال پیام تغییر داده میشود.
- مدولاسیون فرکانس (FM): فرکانس سیگنال حامل بر اساس تغییرات سیگنال پیام تغییر داده میشود.
- مدولاسیون فاز (PM): فاز سیگنال حامل بر اساس تغییرات سیگنال پیام تغییر داده میشود.
- مدولاسیون تقسیم فرکانس عمود برهم(ofdm):پهنای باند بین چند زیرحامل که برهم عمود هستند تقسیم میشود.
در مدولاسیون دو شکل موج دخیلاند:
سیگنال مدوله کننده که پیام را نشان میدهد، و موج حامل که باید برای آن کاربرد خاص مناسب باشد. مدولاتور موج حامل را به صورتی متناظر با تغییرات سیگنال مدولهکننده تغییر میدهد. پس موج مدوله شده حاصل اطلاعات پیام را حمل میکند. مدولاسیون باید عملی برگشت پذیر باشد تا بتوان عمل مکمل دمدولاسیون را انجام داد.
مالتی پلکس فرآیند ترکیب چند سیگنال برای ارسال همزمان روی یک کانال است.
مالتی پلکس فرکانس (FDM) :
پیام های ارسالی فرکانس های حامل را مدوله می کند، با مدولاسیون فرکانسی یا دامنه. بنابرین یک خط باس می تواند چندین کانال را پشتیبانی کند (فرکانس های مختلف)، که هر کدام مستقل از بقیه دیتا ارسال می کنند.
فرکانس حامل با اطلاعات باینری فرستاده شده مدوله می شود.
مدولاسیون هم در مالتی پلکس فرکانسی و هم در مالتی پلکس زمانی استفاده می شود.
مالتی پلکس زمانی (TDM) :
در KNX بخش های زمانی خاص برای هر پیام یا کانال تعیین می شود، به عبارت دیگر دستگاه های روی خط باس یکی پس از دیگری از خط استفاده می کنند. بنابرین در روش TDM، دسترسی به باس پایه کنترل شود برای جلوگیری از ارسال همزمان اطلاعات توسط چندین دستگاه روی خط.
- طراحی باس متمرکز (Master/Slave)
- طراحی باس غیر متمرکز (Flying Master / Token passing)
- ترکیبی از هر دو روش کنترل دسترسی (برای مثال PROFIBUS)
- CSMA/CD (تشخیص حامل با چندین دسترسی با تشخیص تداخل
برای مثال Ethernet CSMA/CA (تشخیص حامل با چندین دسترسی با جلوگیری از تداخل – برای مثال KNX,CAN)
چگونه شکل سیگنال (نمایش بیت) با مدولاسیون تغییر می کند :
چگونگی شکل سیگنال (نمایش بیت) با Baseband Transmission :
در ارتباط Baseband ، اطلاعات باینری به شکل پالس های مستطیلی ارسال می شوند. این شکل ارسال اطلاعات در KNX استفاده می شود. شکل های متداول ارتباط Baseband (توالی بیت 00101100 را در نظر بگیرید).
روش های تشخیص خطا :
-Parity (خطایابی عمودی)
یک بیت به ازای هر کاراکتر، فرد یا زوج. مناسب برای ارتباط کاراکتر به کاراکتر مانند KNX، اغلب به تمام روش های انتقال دیتا با Strat-Stop اعمال می شود. اغلب به عنوان Parity عمودی شناخته می شود. این روش فقط خطا های فرد را شناسایی می کند.
افقی / طولی ( خطایابی طولی)
یک رشته عددی که تعداد بیت هایش به اندازه بیت های کاراکتر های ارسالی است اسفاده می شود. بیت های این رشته های عددی از بیت هایی مشابه در کاراکتر های اطلاعات ارسالی بدست می آیند.
– خطایابی دو جهته
ترکیبی از خطایابی عمودی و افقی است. این نوع خطایابی قادر است خطاهای تک بیتی را اصلاح کند و خطاهای دو بیتی را تشخیص دهد. برای مثال : KNX با خطایابی عمودی زوج و افقی فرد.
یک خطای تک بیتی در کاراکتر چهارم وجود دارد که با خطایابی عمودی تشخیص داده شده و مکان بیت غلط با خطایی افقی مشخص شده. این روش امکان اصلاح خطاهای تک بیتی را فراهم می کند.
کاراکتر چهارم دارای 2 بیت خطا است که این خطا توسط خطایابی عمودی تشخیص داده نشده است ولی با خطایابی افقی پیدا شده ولی مکان بیت های مشکل دار مشخص نمی شود.
-خطایابی چرخشی (CRC)
با این روش خطایابی، یک رشته عدد توسط محاسباتی خاص تولید می شود که حتی پیچیده ترین خطاها را پیدا می کند.
مقاسیه بین روش های خطایابی
مدل مرجع OSI) ISO 7498) :
در این بخش مدل مرجع لایه های شبکه برسی می شود و در هر بخش توضیح داده می شود.
1- معرفی مدل مرجع OSI
1-1- چرا استاندارد ها ضروری است؟
وقتی سیستم های پردازش داده و شبکه های ارتباطی سازنده های مختلف برای اولین بار معرفی شدند، سازگاری بین آن ها نبود.
بنابرین ارتباط بین سیستم ها در سطوح و استاندارد های مختلف به سختی صورت می گرفت.
شبکه های متنوع در بازار برای اهداف متفاوتی در بخش های صنعتی و تجاری طراحی شده بودند. هر شبکه یک سیستم بسته بود که با یکدیگر ارتباط برقرار می کردند.
1-2- هدف مدل مرجع OSI :
سازمان بین المللی استاندارد (ISO) در دهه 70 تصمیم گرفت که یک معماری استاندارد برای شبکه های کامپیوتری و تحلیل داده طراحی کند.
– ایجاد یک مدل استاندارد شده در ارتباط داده بر اساس این که کدام شبکه ها و سیستم ها با هم صحبت می کنند.
= بدست آوردن سازگاری میان شبکه ها بدون تاکید بر اعمال مدل کامل برای هر شبکه
– رسیدن به ارتباط آزاد (Open System Interconnection OSI) بین تمام کاربران از یک شبکه کامپیوتری با اجزای متفاوت
2-قوانین پایه ی مدل مرجع OSI :
در کل OSI توابع لازم برای ارتباط داده و روابط بین این توابع را مشخص می کند. مدل OSI به صورت قراردادی توابع سطح بالا که بر روی توابع سطح پایین ساخته شده اند را بر اساس قوانین درست، تعیین کرده است. نتیجه یک مفهوم سلسله مراتبی شامل لایه های متفاوت است.
در طول رمزگشایی یک تلگرام توسط یکی از دستگاه های روی خط باس، هر لایه بخشی از تلگرام را رمزگشایی می کند. در زمان رمزنگاری یک تلگرام نیز، دسته توابع لایه های مختلف OSI همگی برای تشکیل بخش های تلگرام همکاری می کنند.
این کار شبیه به پوست کردن لایه های مختلف پیاز برای رسیدن به هسته آن (اطلاعات مفید) یا اضافه کردن لایه ها به آن است.
هفت لایه ی مدل مرجع OSI :
لایه 1 : لایه فیزیکی
تولید سیگنال های الکتریکی، بسته به واسط ارتباطی استفاده شده، تعیین اتصالات پین ها، سیگنال های کنترلی، رمزنگاری بیت.
لایه 2 : لایه لینک داده
لایه ای برای ارتباط و فرآیندها، پروتکل خط، همگام سازی، امنیت داده، مدیریت خطا
لایه 3 : لایه شبکه (Packet level)
تشخیص مسیر های مناسب رای انتقال داده و سویچ بین لینک های مختلف (Routing)، کنترل بسته، پروتکل انتقال در کل شبکه
لایه 4 : لایه انتقال
کنترل end-to-end، کنترل انتقال
لایه 4 وظیفه ی انتقال تمام حجم داده را دارد؛ مدیریت بسته ها، مالتی پلکس کردن
لایه 5 : لایه جلسه (یا لایه ارتباط
کنترل اتصالات منطقی، ارتباط با پردازش نرم افزاری، مدیریت بافر (در KNX استفاده نمی شود)
لایه 6 : لایه ارائه
تبدیل فرمت های داده، کاهش حجم داده، رمزنگاری پیام ها (در KNX استفاده نمی شود)
لایه 7 : لایه برنامه (یا لایه پردازش)
توسط برنامه به صورت دلخواه تعیین می شود.
دو مدل ارتباط در لایه برنامه مقدور است .
– ارتباط اتصال گرا :
یک ارتباط ایجاد شده از یک لینک بین دو وسیله تشکیل شده است. هر دو وسیله این ارتباط را به عنوان یک لینک که فقط بین آن دو (ارتباط نقطه به نقطه(P2P)) برقرار است می شناسند.
سرور (وسیله ای که قصد ایجاد لینک ارتباطی را دارد) باید این ارتباط را بر اساس استاندارد هایی خاص (کیفیت، قیمت، تاخیر زمانی و … ) بنا کند. علاوه بر این، یک پروتکل یا پارامتر ها، مانند طول بلوک دیتا، باید تعریف شود. وقتی ارتباط برقرار شد، تبادل اطلاعات بر اساس پروتکل آغاز می شود. ارتباط ممکن است هر لحظه قطع شود. در آن صورت منابع برای ایجاد ارتباطس دیگر استفاده می شوند.
این ارتباط بسیار امن است اما بازدهی برای پهنای باند ندارد. (یعنی، ارتباطات زیادی نیاز است تا فقط به یک دستگاه ارتباطی دسترسی پیدا کرد.) وقتی مدل OSI را درنظر بگیریم، در زمان ارتباط لایه لینک هر دو، پیام های تایید دریافت را تولید می کنند.
این روش ارتباط مانند صحبت کردن با یک شخص است و بعد از آن بررسی کنیم که آیا او سوال را متوجه شده یا خیر.
استفاده در KNX :
دانلود آدرس های گروهی، پارامتر ها و برنامه ی نرم افزاری از کامپیوتر به دستگاه KNX.
ارتباط بدون اتصال:
این نوع ارتباط نیازی به اتصال ندارد. بنابرین برای دستگاه ها ممکن نیست که
- در یک پروتکل یا پارامتر ها به توافق برسند
- یک استاندارد مثل کیفیت سرویس و هزینه را مشخص کنند
چون هیچ اتصالی وجود ندارد، آدرس باید همواره با اطلاعات در هر درخواست ارسال شود. هیچگونه تایید دریافت از سمت گیرنده وجود ندارد و سرور نیز هیچ تضمینی برای صحیح بودن ترتیب ارسال اطلاعات نمی دهد.
این نوع ارتباط امن نیست، اما از نظر پهنای باند بسیار پر بازده است؛ چرا که نیازی به ایجاد یا قطع ارتباط مستقیم و خاص بین دستگاه ها نیست و با یک پیام این امکان وجود دارد که به تمام ابزار های نصب شده دسترسی پیدا کرد. هر چند فقط یک تایید دریافت عمومی فرستاده می شود. بنابرین نمیتوان مطمئن شد که تمامی دستگاه ها به درستی پیام را دریافت کرده اند. با درنظر گرفتن مدل OSI، فقط لینک تایید دریافت را تولید می کند.
این نوع ارتباط را می توان تشبیه به صحبت کردن با یک گروه از افراد و ادامه دادن اگر حداقل یک نفر پیام را فهمیده باشد.
استفاده در KNX :
– روش کار عادی KNX (تلگرام هایی با آدرس های گروهی، Multicast، ارتباط یک با چند دستگاه)
– Broadcast (ارتباط یک با همه ی دستگاه ها)
3-پروتکل واحد های داده (PDUs)
پروتکل واحد داده از لایه ی OSI شامل موارد زیر است :
- داده ای که توسط لایه استفاده می شود برای ایجاد کردن تلگرام
- داده ای که رمزگشایی می شود از تلگرام وقتی دریافت می شود
توابع اساسی لایه ها ؛ اعمال کردن در KNX
3-1- کلیت
توضیحات زیر بر اجرای KNX روی T1 تمرکز دارد.
3-2- لایه نرم افزاری (لایه 7)
لایه برنامه اساساَ توابعی را برای دو منظور محیا می کند :
- کمک به برنامه نرم افزاری برای ارسال و دریافت اطلاعات مفید
اعمال کردن در KNX :
KNX یک خط باس است که از دستگاه هایی که با هم ارتباط برقرار می کنند تشکیل شده که به آن ها اشیاء گروهی می گویند.
یک شئ گروه برای مثال می تواند وضعیت سویچ، شدت نور روز یا دمای اتاق باشد.
برنامه ی نرم افزاری یک سنسور اندازه گیری می کند یک پارامتر فیزیکی را ( مثلاَ حالت اتصال، مقدار لوکس، دما و …) و مقدار این پارامتر را در شئ گروه مناسب می نویسد. به طور همزمان، به نرم افزار سیستم درخواست می دهد که مقدار جدید شئ گروه را روی خط باس بفرستد، به منظور آگاه کردن بقیه ی دستگاه های مرتبط با سنسور از مقدار جدید این پارامتر.
لایه ی برنامه از عملگر آدرس دهی شده اطمینان حاصل می کند که مقدار جدید دریافت شده در شئ گروه نوشته شود و در ادامه برنامه ی نرم افزاری را از این بروزرسانی مطلع می سازد. نرم افزار مقدار شئ گروه عملگر را می خواند و تابع مورد نیاز را بر اساس آن اجرا می کند، که می تواند تغییر حالت یک رله، کاهش شدت نور لامپ، باز کردن شیر و . . . باشد.
برنامه های نرم افزاری در شبکه K
NX با اشیاء گروهی با یکدیگر ارتباط برقرار می کنند. بنابرین هیچ ارتباط دیتا مستقیمی بین دستگاه ها بوجود نمی آید (ارتباط بدون اتصال).
باید توجه داشت که برنامه نرم افزاری قادر به بازیابی منبع بروزرسانی اشیاء گروهی نیست.
– کمک به برنامه نرم افزاری در فهم پیام های پیکربندی که به آن”سرویس های مدیریتی”
در فاز دستور از دستگاه های باس، ارتباطات اتصال گرا بین دستگاه ها برقرار می شود تا برنامه نرم افزاری بارگذاری می شوند. این نرم افزار است که کمک می کند تا این دستورات فهمیده شود.
3-3- لایه ارائه (لایه 6) :
این لایه از مدل OSI وظیفه ی محافظت لایه 7 و برنامه نرم افزاری از رو به رو شدن با شکل های مختلف ارائه ی اطلاعات را بر عهده دارد. این لایه پیام ها را ترجمه می کند و اگر لازم باشد سینتکس آن ها را تنظیم و تبدیل می کند.
برا مثال، یک فایل شامل مشخصات افراد از یک دستگاه به دستگاه دیگر روی خط باس باید ارسال شود. دستگاه اول ذخیره سازی های اطلاعاتی با فرمت “نام، نام خانوادگی” را استفاده می کند، در حالی که دیگری ترتیب عکس این را دارد. در این مورد، این وظیفه ی لایه ی ارائه است که مطمئن شود هر دستگاه با ترتیب مناسب اطلاعات را دریافت می کند ؛ بنابرین لایه 6 به طور خودکار باید ترتیب داده های اساسی را جابجا کند.
به طور کلی در باس های بخش بندی شده، بنابرین در KNX، مشکل تبدیل شکل ارائه در دیتای منتقل شده ایجاد نمی شود. بنابرین دستگاه های KNX به لایه ی 6 OSI نیاز ندارد.
3-4- لایه جلسه (لایه 5) :
وظیفه ی اصلی لایه 5 بر اساس OSI کنترل ارتباط بین دو دستگاه است که شامل موارد زیر است :
– باز کردن یک گفتگو
– بستن یک گفتگو
– قطع یا توقف یک گفتگو
– ادامه یک گفتگو در مراحل یعد
– ادامه یک گفتگو از یک زمان قبل تعیین شده در زمان تشخیص خطا، پس یک انتقال دینای اشتباه دوباره و به صورت درست تکرار شود.
به این دلیل که پیام های ارسالی در باس های بخش بندی شده کوتاه هستند، این باس ها به کنترل ارتباطی خاص نیاز ندارند. بنابرین، دستگاه های KNX به لایه ی 5 نیاز ندارند.
3-5- لایه انتقال (لایه 4)
- عملکرد در زمان ارتباط بدون اتصال
برای ارتباط بدون اتصال، لایه ی انتقال در KNX عملکرد های زیر را دارد :
- در زمان ارسال، اطمینان حاصل می کند که مقدار شئ گروه به وسیله لایه ی لینک با آدرس گروه مرتبط و درست ارسال شود.
- در زمان دریافت، اطمینان حاصل می کند که مقادیر اشیاء گروه به آدرس گروه دریافت شده بروزرسانی شود.
در ارتباط بدون اتصال، لایه ی انتقال به عبارت دیگر مسئول بررسی جدول ارتباط که در دستگاه های باس بارگذاری شده استو این جدول از ارتباط بین اشیاء گروه پشتیبانی شده و آدرس های گروه مشخص شده تشکیل شده است.
- عملکرد در زمان ارتباط اتصال گرا :
برای برقراری یک ارتباط اتصال گرا، دستگاه شروع کننده یک پیام اتصال لایه ی انتقال می فرستد بر اساس آدرس فیزیکی گیرنده به عنوان آدرس مقصد.
در مدت برقراری یک ارتباط اتصال گرا بین دو دستگاه باس، لایه ی انتقال هر دو دستگاه از پیام های “ack” (تایید مثبت) و “nack” (تایید منفی) استفاده می کند برای قبول یا رد یک تلگرام.
در زمان دریافت یک nack از لایه ی انتقال، تلگرام های رد شده (تایید منفی) تا سه بار تکرار می شوند. پارامتر تکرار در نرم افزار سیستم ثبت شده است.
ارتباط اتصال گرا به وسیله تایمر ها نظارت می شود. اگر یک تایمر نمی تواند در مدت مشخص ارسال شود، یا این که اگر “ack” یا “nack” دریافت نشود، در این صورت ارتباط بین دو دستگاه قطع می شود.
ارتباط اتصال گرا همچنین توسط یک ترتیب از اعداد (بین 0 و 15) نیز کنترل می شود. اگر این ترتیب اعداد مقدار مورد انتظار را نداشته باشد، اتصال ایجاد شده را به طور اتوماتیک قطع می کند.
3-6- لایه شبکه (لایه 3) :
یک شبکه اغلب ترکیبی از گروه هایی است که بر اساس یک توپولوژی خاص و به وسیله ی ارتباطات جداگانه به هم متصل شده اند. وظیفه ی اصلی لایه ی 3 OSI از این نوع شبکه پیدا کردن مسیر های انتقال داده مناسب، سویچ کردن لینک ها و اطمینان از این که تلگرام ها به درستی به سمت گیرنده فرستاده می شوند، است. اغلب به این کار “مسیریابی” (Routing) می گویند.
گروه های بین عضو A و عضو B باید به وسیله یک “سرویس سویچینگ” تضمین شوند تا پیام A به B برسد. این شبیه به رله کردن تماس ها در یک شبکه ی تلفن عمومی است.
یک شبکه جفت سیم( KNX (KNX-TPساختار زیر را دارد :
در شبکه ی KNX-TP لینک ها از سگمنت های جداگانه تشکیل شده، در حالی که کوپلر های اصلی و کوپلر های خط گره های شبکه هستند.
در شبکه ی KNX-TP ایجاد حلقه بین دو خط مجاز نیست. به این دلیل که ساختار شبکه ی KNX نسبتاً ساده است، مسیریابی می تواند به سادگی انجام شود.
وقتی یک دستگاه باس یک تلگرام می فرستد، لایه ی شبکه، مقدار شمارنده مسیریاب (که معمولاً در EEPROM ذخیره شده) را به تلگرام اضافه می کند. این شمارنده مسیریاب فقط توسط لایه ی کوپلرهای اصلی و خط شناخته می شود نه توسط دستگاه های عادی درون شبکه.
- – اگر مقدار این شمارنده 0 باشد، در تمام موارد، تلگرام دریافت دریافت شده توسط کوپلر های اصلی و خط عبور داده نمی شود.
- – اگر مقدار شمارنده بین 1 و 6 باشد، تلگرام دریافتی به وسیله ی کوپلر ها عبور داده می شود بسته به اینکه :
- – در ارتباط بدون اتصال: آیا آدرس گروه استفاده شده به عنوان آدرس مقصد در تلگرام، در جدول فیلتر وجود دارد؟
- – در ارتباط اتصال گرا : آیا آدرس شخصی که استفاده شده به عنوان آدرس مقصد در تلگرام، آدرس یک دستگاه در محدوده یا خط مورد نظر که آن طرف کوپلر اصلی یا خط قرار دارد، هست. در زمان مسیریابی، کوپلر مقدار شمارنده ی مسیریابی دریافت شده را کاهش می دهد.
- -اگر مقدار شمارنده 7 باشد، در همه موارد، تلگرام دریافتی توسط کوپلر های اصلی و خط عبور داده می شود.
این پارامتر در زمان تست انطباق گواهینامه چک می شود که آیا دستگاه های KNX شمارنده های مسیریابی کوچکتر یا مساوی 6 دارند یا خیر. شمارنده مسیریابی 7 فقط مخصوص ETS است.
مسیریابی تلگرام ها به شکلی که شرح داده شد تضمین می کند که تلگرام ها فقط به محدوده ها و خط های که تلگرام در آن جا نیاز است فرستاده شود. این مساله به طور قابل توجهی بار را روی باس کاهش می دهد.
3-7- لایه ی لینک داده (لایه 2)
وظیفه ی اصلی لایه لینک:
بر اساس مدل OSI ، این لایه وظیفه ی اطمینان از انتقال بدون خطای تلگرام، بین دو گره در شبکه یا بین دستگاه و گره را بر عهده دارد. بنابریت اطلاعاتی مانند کارکتر های همگام سازی، اعداد ترتیبی، بررسی خطا و بقیه کارکتر های کنترلی، علاوه بر دیتای اصلی به تلگرام اضافه می شود.
ساختار کلی لایه ی لینک تلگرام در KNX :
شکل زیر ساختار یک تلگرام KNX که توسط لایه 2 منتقل می شود را نشان می دهد.
آدرس مبدا (Source address) آدرس شخصی یک دستگاه باس است.
آدرس گیرنده (Receiver address) می تواند یک آدرس گروه (ارتباط بدون اتصال) یا یک آدرس شخصی (ارتباط اتصال گرا) باشد که توسط اولین بیت در N_PDU تعیین می شود.
N_PDU اطلاعاتی است که توسط لایه های بالاتر از لایه لینک (در مورد KNX : لایه شبکه، انتقال و برنامه) به تلگرام اضافه می شود.
ساختار مقادیر کنترلی :
مقادیر کنترلی، متشکل از 8 بیت، ساختار زیر را دارند : توجه داشته باشید که از یک کارکتر D0 اولین بیتی است که روی باس فرستاده می شود.
مقادیر پر رنگ شده کنترلی باید همان مقادیری که مشخص شده باشند در غیر این صورت، لایه لینک تلگرام را به عنوان یک تلگرام KNX نامعتبر مرجوع می کند.
D0 و D1 بیت های شروع تلگرام هستند: بیت های شروع برای اطمینان از این مساله هستند که هر گونه نویز روی خط باس به اشتباه به عنوانbit Start شناخته نشود.
بیت هایی که با P مشخص شده اند، نمایان گر بیت های اولویت تلگرام هستند که چهار سطح دارد:
لغت اولویت به اولویتی اشاره دارد که در لایه 7 برای آدرس های گروه تعریف شده و از تمام لایه ها تا لایه 2 عبور می کند. بیت D5 (R) مشخص می کند که آیا تلگرام تکرار شده (مقدار 0) یا خیر (مقدار 1).
وقتی صفر روی یک نوشته شود، تلگرامی با اولویت بالاتر در ابتدا فرستاده می شود در زمان وقوع یک تداخل؛ مشابه همین به تلگرام های تکرار شده اعمال می شود؛ آن ها نیز با اولویت (بیشتر) فرستاده می شود.
ساختار آدرس فرستنده (مبدا) :
شکل زیر ساختار آدرس شخص فرستنده را نشان می دهد. اگر دو دستگاه متعلق به سگمنت الکتریکی مشترک به طور همزمان اطلاعات ارسال کنند، تلگرام هایشان حداقل در یک مورد با هم متفاوت خواهد بود و آن آدرس شخص فرستنده است.
در نتیجه، تداخل پیش می آید حداقل در زمان ارسال آدرس فرستنده. دستگاهی که تلگرام آن در اولین مکان تداخل صفر داشته باشد در حالی که بقیه دستگاه ها یک می فرستد، می تواند تلگرام خود را بدون هیچ وقفه ای ارسال کند. (CSMA/CA ، دوباره اشاره می شود که ترتیب ارسال بیت از بیت 0 شروع می شود، آدرس های محدوده و خط قبل از آدرس دستگاه فرستاده می شوند).
ساختار آدرس دریافت کننده (مقصد) :
آدرس دریافت کننده یک آدرس شخصی برای ارتباط نقطه به نقطه است (ارتباط اتصال گرا). برای اتصال به چندین دستگاه یا همه ی دستگاه ها (ارتباط بدون اتصال)، آدرس هایی به نام “آدرس گروه” به عنوان آدرس دریافت کننده استفاده می شوند که ساختار زیر را دارند:
آدرس گروه در 15 بیت ذخیره می شود (بیت D15 یک بیت رزرو شده است).
اولین ردیف نشان دهنده چگونگی نمایش آدرس گروه در دو سطح (main/sub) است. در حالی که مدل دوم در سه سطح (main/middle/sub) تعریف می شود. توجه داشته باشید که به صورت فیزیکی روی خط باس هیچ تفاوتی بین مدل دو و سه سطحی وجود ندارد.
بیت D7 در کارکتر بعدی (که با T نمایش داده شده) مشخص می کند که آدرس فرستاده شده از نوع آدرس گروه (مقدار 1) و یا آدرس شخص (مقدار 0) است.
ساختار فیلد بررسی خطا :
فیلد بررسی خطا بر اساس روش خطایابی دو جهته تولید می شود.
تایید تلگرام به وسیله ی لایه لینک :
برای تایید انتقال، لازم است که لایه لینک دستگاه های باس که به آدرس آن ها داده ارسال شده یا کوپلر های اصلی یا فرعی، بلافاصله یک پیام تایید در یک قالب زمانی معین (تایید بلافاصله (IACK) / تایید نکردن بلافاصله (INACK)) تایید از نوع “BUSY” جریان داده را کنترل می کند که باید همزمان با پیام های IACK و INACK دیگر دستگاه ها ارسال شود تا دستگاه اعلام کند که به طور موقتی مشغول است.
اگر لایه 2 از دستگاه فرستنده یک پیام INACK یا BUSY، یا یک تایید خراب دریافت کند یا این که هیچ پیام IACK دریافت نکند، در این صورت پیام یا تلگرام دوباره تکرار می شود.
تلگرام های تکرار شده علامت گذاری می شوند تا دستگاه های باس که پیام را دریافت کرده بودند و پیام IACK فرستاده بودند دیگر این پیام تایید را به لایه های بالاتر دوباره نفرستند.
تایید های دریافت فوری به صورت زیر تعریف می شوند :
کد تایید منفی : 0Ch (00001100b)
کد تایید اشغالی : C0h (11000000b)
کد تایید مثبت : CCh (11001100b)
تمام کد های تایید دستگاه های مرتبط به طور همزمان (تایید گروهی) انجام می شود. اگر چندین دستگاه از یک سگمنت الکتریکی به طور متفاوت پیام تایید بفرستند، به دلیل انتخاب کد های تایید خاص، پیام BUSY روی پیام IACK و INACK جایگزین می شود. INACK نیز روی IACK جایگزین می شود.
تشخیص خطا و کنترل دسترسی به باس :
در KNX ، لایه ی 2 از روش بررسی خطای دو جهته برای تشخیص خطا ها استفاده می کند. این روش یک ترکیب از چک های parity عمودی و افقی است.
CSMA/CA برای کنترل دسترسی به باس استفاده می شود. اطلاعات در مورد وضعیت باس از لایه 1 به لایه 2 منتقل می شود. (باس در دسترس است یا تداخل پیش آمده)
تلگرتم هایی با اولویت های اول و دوم و همچنین تکرار شده بلافاصله منتقل می شوند وقتی که لایه 1 مشخص می کند که خط باس در دسترس است، هر چند پیام هایی با اولویت پایین تر به مدتt_1 (= 3 بیت پالس) تاخیر دارند.
از آنجایی که کارکتر ارسال شده بیت به بیت شنیده می شود، دستگاهی زودتر از بقیه 0 می فرستد متوجه تداخل نمی شود و بنابرین به ارسال داده ادامه می دهد به طوری که هیچ تداخلی پیش نیامده.
این بدین معنی است که هیچ زمانی هدر نمی رود چون همیشه یک تلگرام برای انتقال وجود دارد.
بیت های تلگرام کارکتر به کارکتر (1 کارکتر = 8 بیت) بر اساس روش Start-Stop انتقال می یابد (Parity زوج، 1 بیت پایان).
یک تاخیر t_4 به اندازه ی 2 بیت پالس یک کارکتر را از بعدی جدا می کند. بدین معنی که برای ارسال یک کارکتر به 13 بیت پالس نیاز است.
پروتکل یک زمان قطع انتقال t_2 به اندازه ی حداقل یک کارکتر (حداقل 13 بیت پالس) را پیش بینی کرده بعد از انتقال هر تلگرام. زمان بعد از آن به اندازه یک کارکتر است برای دریافت تایید است که باید توسط دستگاه هایی که به آن ها تلگرام فرستاده شده، ارسال می شود.
یک زمان سکوت به مدت 50 بیت پالس بعد از انتقال تایید دریافت (BUSY یا INACK و IACK) مشخص شده.
مدت زمان کل t_tot مورد نیاز برای انتقال تلگرام، تایید دریافت آن و زمان سکوت خط باس به صورت زیر محاسبه می شود.
3-8- لایه فیزیکی (انتقال بیت، لایه 1) :
پایین ترین لایه در مدل مرجع OSI لایه فیزیکی نام دارد. این لایه با طبیعت سیگنال ها سروکار دارد و وظیفه ی تشخیص بیت های دریافتی از لایه 2، تبدیل آن ها به سیگنال های فیزیکی مثل ولتاژ، جریان و امواج الکترومغناطیس (رادیویی یا نوری) و نهایتاً انتقال این سیگنال ها روی خطوط باس (کابل مسی، فیبر نوری و …) را بر عهده دارد.
- سیم کشی جفت پیچ خورده (از استانداردهای BatiBUS و EIB Instabus به ارث رسیده است)
- شبکه های Powerline (به ارث برده از EIB و EHS- شبیه به چیزی که برای X10 استفاده شده است.)
- فرکانس رادیویی (KNX-RF)
- فرو سرخ
- اترنت (همچنین به عنوان EIBnet / IP یا KNXnet / IP شناخته می شود.)
هدف اصلی سرویس های لایه 1 محافظت از لایه 2 از ابزار فیزیکی استفاده شده برای انتقال بیت است. این مساله تضمین می کند که لایه های بالاتر شبکه مستقل از فیزیک انتقال بکار برده شده باقی بمانند، بنابرین اساساً سیستم انتقالی می تواند تغییر کند بدون اینکه تغییراتی در لایه های بالایی پیش بیاید یا تاثیراتی بر آن ها بگذارد.
لایه فیزیکی شامل پروتکل است، سیم کشی ها بین دستگاه ها را مشخص می کند و شامل مشخصات قطعات الکترومکانیکی مثل کانکتور ها است.
مشخصات لایه انتقال بیت از شبکه ی KNX به صورت زیر است :
KNX-TP از یک یا چند سگمنت الکتریکی تشکیل شده. هر سگمنت می تواند یک یا چند منبع تغذیه داشته باشد اما – با توجه به تعریف – کوپلر خط ندارد.
اطلاعات تکنیکی یک سگمنت الکتریکی :
پارامترهای مقادیرخازنی و مقاومتی و ولتاز کل در سگمنت با شرح ذیل است
بدون دستگاه های باس، کوپلر خط، تکرار کننده خط : 100 nF ماکزیمم
با دستگاه های باس، کوپلر خط، تکرار کننده خط : 120 nF ماکزیمم
(اندازه گیری شده در 10 kHz)
– مقاومت خط باس بین منبع تغذیه و دستگاه روی خط باس، کوپلر خط یا تکرار کننده خط : 25 Ω ماکزیمم
مقاومت خط باس بین دو دستگاه باس، کوپلر خط یا تکرار کننده خط : 50 Ω ماکزیمم
حداقل مقاومت بین دو منبع تغذیه : 15 Ω
حداقل طول خط باس بین دو منبع تغذیه : 200 m
– افت ولتاژ روی خط باس بین منبع تغذیه و دستگاه باس یا کوپلر خط : 5 V ماکزیمم
این محدوده مشخص می کند که چگونه دستگاه های باس باید بطور فیزیکی روی خط باس از سگمنت چیده شوند.
برای مثال، مجاز نیست که یک مجموعه 64 تایی از دستگاه ها روی یک سر از یک خط باس 350 متری و یک منبع تغذیه در سر دیگر آن استفاده شود.
– بیشترین طول خط باس یک سگمنت : 1000 متر
بیشترین طول خط باس بین دو دستگاه باس : 700 متر
بیشترین طول خط باس بین منبع تغذیه و دستگاه باس : 350 متر
– نیازی به مقاومت ته خط نیست
– دستگاه های باس با ولتاژ 24 V DC تغذیه می شوند.
– بیشترین تعداد دستگاه های باس در یک سگمنت : 64
اطلاعات تکنیکی یک خط باس :
روش انتقال استفاده شده :
مالتی پلکس زمانی، Baseband ، متقارن
نمایش بیت :
نبود جریان DC و self-timing
سرعت انتقال : 9,6 kb/s
تاخیر انتقال :
برای اطمینان از تشخیص تداخل و اصلاح آنف تاخیر انتقال نباید از 10 نانو ثانیه بیشتر شود. این شرط به طور اتوماتیک برقرار است اگر :
– فقط از کابل های استاندارد استفاده شود.
– بیشترین فاصله بین هر دو دستگاه باس حداکثر 700 متر باشد.
– بیشتز از 64 دستگاه روی یک سگمنت نصب نشود.
روش های کوپلینگ باس :
تکرار کننده ، متقارن
تکنیک های اتصال برای کابل ها :
ترمینال باس با چهار ترمینال برای هر خط برای اتصال به دستگاه باس.
ترمینال حفاظت ولتاژ بالا در اتصال به ترمینال باس
کانکتور برای اتصال ریل دیتا به سیم برای اتصال به خط باس
تکنیک اتصال برای ریل دیتا :
دستگاه های باس که برای ریل DIN طراحی شده اند، بلوک اتصال با یک کانکتور انگشت-فنری برای اتصال به رسانا های ریل دیتا دارند.
4- ساختار تلگرام در KNX :
همانطور که شرح داده شد، زمانی که یک دستگاه تلگرام تولید می کند یا تلگرامی را در زمان خواندن رمزگشایی می کند، هر لایه در بخشی از تلگرام همکاری می کند.
به عبارت دیگر :
– وقتی یک تلگرام دریافت می شود، هر لایه دیتای مربوط به خود را تحلیل کرده و بقیه را به لایه های بالاتر می فرستد.
– وقتی یک تلگرام تولید می شود، هر لایه دیتای مربوط به خود را قبل از اینکه دیتا را به لایه پایین تر تحویل دهد به تلگرام اضافه می کند.
همانطور که اشاره شد، ساختار تلگرام به صورت زیر است :
N_PDU، به عنوان بخشی از تلگرام به وسیله ی لایه ی شبکه تولید می شود و اطلاعات زیر را دارد:
* بیت اول مشخص کننده ی این است که آدرس گیرنده
– یک آدرس شخصی (مقدار 0) است.
– یک ادرس گروهی (مقدار 1) است.
* سه بیت بعدی مقدار شمارنده ی مسیریابی را مشخص می کنند، که نقش در مسیریابی تلگرام در کوپلر های اصلی و خط را ایفا می کند.
* چهار بیت بعدی طول اطلاعات مفید فرستاده شده با تلگرام (یا ‘payload’) را نشان می دهد.
* بقیه ی N_PDU، در واقع T_PDU است.
T_PDU به عنوان بخشی از تلگرام، توسط لایه ی انتقال تولید می شود و شامل اطلاعات زیر است :
* دو بیت اول مشخص کننده ی نوع ارتباط لایه ی انتقال است
* چهار بیت بعدی مشخص کننده ی (اما فقط در مد ارتباط عددی) عدد ترتیب است. در مورد ارتباط غیر عددی، این بیت ها معنی ندارند (یه صورت عادی به صفر مقدار دهی می شوند).
* بقیه T_PDUT، در واقع A_PDU است.
A_PDU به عنوان بخشی از تلگرام، توسط لایه ی برنامه تولید می شود و ویژگی های زیر را دارد :
* اگر دو بیت اول T_PDU از مد UCD باشد، دو بیت اول در A_PDU یکی از دو معنی زیر را می دهد :
– اگر 00 باشد : به وسیله تلگرام، یک لایه ی انتقال برای اتصال نقطه به نقطه باز می شود از فرستنده ی مشخص شده.
– اگر 01 باشد : به وسیله تلگرام، لایه ی انتقال موجود برای اتصال نقطه به نقطه از فرستنده به گیرنده قطع می شود.
* اگر دو بیت اول در T_PDU از نوع NCD باشد، دو بیت اول در A_PDU معنی زیر را می دهد :
– اگر 00 باشد : به وسیله تلگرام، لایه ی انتقال فرستنده ی مشخص شده به طور مثبت دریافت یک تلگرام از قبل دریافت شده را به گیرنده ی مشخص شده تایید می کند.
– اگر 01 باشد : به وسیله تلگرام، لایه ی انتقال فرستنده ی مشخص شده به طور منفی دریافت یک تلگرام از قبل دریافت شده را به گیرنده ی مشخص شده تایید می کند.
* اگر دو بیت اول در T_PDU از نوع UDP یا NDP باشند، بیت های A_PDU بیان کننده ی APCI هستند. PACI یک کد 4 بیتی است که سرویس های مختلف لایه برنامه را از هم جدا می کند.
بسته به چهار بیت مشخص شده، دیتایی که در ادامه می آید معانی متفاوتی دارد.
5- کد های APCI مختلف :
وظیفه ی لایه ی برنامه مدیریت مقادیر اشیاء گروه از جانب برنامه ی نرم افزاری، پردازش تلگرام های گروهی و همچنین انجام توابع مدیریتی است.
در زمان اجرا (بعد از پیکره بندی)، کد های APCI عادی به صورت زیر هستند :
کد های APCI مختلف در شبکه KNX
این کد ها APCI در ارتباط با چندین دستگاه استفاده می شوند. به عبارت دیگر، آدرس های هدف این تلگرام ها آدرس های گروهی است. پیکره بندی دستگاه های باس توسط توابع مدیریتی تضمین می شود، که معمولاً در حافظه ROM دستگاه های باس ذخیره شده است. برای اینگونه توابع مدیریتی، ارتباط اتصال گرا (نقطه به نقطه) یا ارتباط با همه (Broadcast) اتفاده می شود.
کد های APCI معمول در جدول زیر آمده است :
اشیاء در KNX در BCU2 یا BIM M 112 معرفی شدند. تا دستگاه ها را قادر سازند بدون نیاز به جزئیات در مورد یک دستگاه ( دانستن اینکه در کدام مکان حافظه چه پارامتر از چه خصوصیت قرار دارد) در مورد ویژگی های کلی دستگاه اطلاعات کسب کنند.
اشیاء رابط در KNX، مقادیر و پارامتر ها را از یک تابع یک دستگاه در یک گروه جمع می کند.
جدای از اشیاء رابط سیستمی (از جمله اشیاء با اطلاعات کلی دستگاه مثل شماره ی دستور)، هر دستگاه تعدادی اشیاء رابط برنامه دارد که توسط سازنده تعیین شده. مقدار پارامتر های این اشیاء رابط می تواند به عنوان اشیاء گروه یا آرایه ای از عناصر ارائه شود.
با استفاده از کد های APCI خاص، یک دستگاه یا ابزار می تواند در ابتدا بررسی کند. یک دستگاه خاص چه اشیاء رابط KNX را پشتیبانی می کند.
چون اشیاء رابط توسط KNX استاندارد شده اند.و هرکدام مشخصه ی مخصوص به خود را دارند، ابزار قادر به تشخیص نوع دستگاه است.
یک ابزار می تواند ویژگی های هر شئ رابط را بخواند. یا اگر نیاز باشد روی آن بنویسد .(برای مثال، اگر آن ویژگی سرعت تغییرات روشنایی است، این مقدار در صورت نیاز می تواند زیاد یا کم شود).
در مورد سرویس های “User Massage” (APCI 1011) و “Escape” (APCI 1111) ، 6 بیت بعدی، بعد از APCI به عنوان ادامه ی آن شناخته می شوند.