سلام به تموم دوستای عزیز ....
می خواستم بدونم از دوستان چه کسی در مورد پروتکل dmx512 اطلاعات داره ؟
اگه می خواین من توضیحات و نحوه برنامه نویسی این پروتکل رو توضیح بدم ....
سلام به تموم دوستای عزیز ....
می خواستم بدونم از دوستان چه کسی در مورد پروتکل dmx512 اطلاعات داره ؟
اگه می خواین من توضیحات و نحوه برنامه نویسی این پروتکل رو توضیح بدم ....
اصلا چی هست یه توضیح بدید
حتما ....
Dmx 512 یک پروتکل جهانی برای ارتباط منابع نوری تک رنگ یا rgb یا تعداد رنگ بیشتر از 3تاست ... البته تا حدود 510 تا وسیلهء نوری رو میشه باهاش کنترل کرد . در واقع همون دیمر الکترونیکی خودمونه ... ولی بصورت یک پروتکل جهانی ......
اگه میتونی بیشتر توضیح بده خیلی جالب بود.اگه مقاله یا نوشته ای هم داری بزار.باتشکر
یه فایلword میزارم اینجا تموم توضیحاتشو تو این فایل می تونید ببینید.
یه کم سرم خلوت شد یه پروژه درست و حسابی می زارم اینجا چون یه نکته کوچولو داره که باید تو مداراتش رعایت بشه....
پروتکل DMX512 اولين بار در سال 1986م توسط [1]USITT توسعه يافت و هدف از آن کنترل کردن ديمرها با استفاده از يک واسط ديجيتالي استاندارد بود. پروتکل DMX512 يک راه حل کامل براي کنترل سيستمها نيست و روش بهتري در حال توسعه است که مبتني بر پروتکل شبکههاي کامپيوتري (TCP/IP) ميباشد.
اما اين پروتکل ساده و قابل اطمينان است، براي اينکه بطور گسترده پياده سازي شده و در حال حاضر استفاده ميشود. و در عمل نشان داده که بسيار انعطاف پذير ميباشد و وسايل کنترلي مختلفي علاوه بر ديمر نيز از اين پروتکل استفاده ميکنند.
پروتکل DMX512 بر اساس استاندارد صنعتي واسط EIA485 طراحي شده است. اين استاندارد تنها مشخصات الکتريکي مانند ولتاژها، جريانها و ... را تعريف ميکند.
اين سيستم از سيمهاي زوج تابيده شيلد دار استفاده ميکند. کابل مورد استفاده حتما بايد يک زوج به هم تابيده و يک محافظ ورقهاي و يک محافظ توريمانند داشته باشد. لازم به ذکر است کابلهاي صوتي (مثلا کابل ميکروفن) براي اين کار اصلاً مناسب نميباشد.
مانند تمام شبکهها اين کابل بايد در دو انتهاي خود بسته شود. براي اين کار از يک مقاومت 120 اهم استفاده ميشود که دو سيم ديتا را به هم متصل ميکند. استاندارد IEA485 تنها شبکههاي زنجيرهاي را پشتيباني ميکند که حداکثر 32 وسيله را ميتوان در يک بخشقرار داد. هر بخش ميتواند تا 1000 متر طول داشته باشد. اما در عمل بهتر است قبل از رسيدن به اين طول از تکرارکننده استفاده کرد.
کانکتورهاي مورد استفاده بايد XLR 5 Pin باشد. (بعضي اوقات از 3 پينهم استفاده ميشود) کانکتور نري در فرستنده و کانکتور مادگي در گيرنده استفاده ميشود. استاندارد، پيشنهاد کرده است که از کابل شيلدداري که دو زوج تابيده دارد استفاده شود در صورتي که يک زوج تابيده کافي است. سيم زوج تابيده دوم براي کاربردهاي آينده رزرو شده است البته بايد توجه داشت که بعضي از ديمرها از اين سيم براي کنترل خطا و يا اطلاعات ديگر استفاده ميکنند.
نکته: بايد توجه داشت که ديمرهايي که از سيم زوج تابيده دوم استفاده ميکنند حتما بايد از تقسيم کنندهها و تکرار کنندههاي خصوص استفاده کنند.
مطمئنترين راه براي اتصال خط به سيستمهاي ديجيتالي استفاده از تراشههاي استاندارد مانند SN75176B از شرکت Texas Instruments ميباشد. براي ايزوله کردن هم ميتوان از تراشه ISO485P از شرکت Burr-Brown[3] استفاده کرد.
حال نگاه مختصري به واسط الکتريکي مياندازيم. انتقال دادهها بر اساس پروتکل سريال غيرهمزمانبا 8 بيت داده و 1 بيت آغاز و 2 بيت پايانو بدون بيت توازنميباشد. اين دادهها يک فريم که 11 بيت است را ميسازد. طول هر بيت 4 ميکروثانيه است. در نتيجه طول هر فريم 44 ميکروثانيه ميشود و در هر ثانيه ميتوان 250000 بيت را فرستاد. دادههاي 8 بيتي به ديمر اجازه ميدهند که رنج 0 (لامپ خاموش) تا 255 (حداکثر روشنايي) را بدست آورد. ترتيت ارسال بيتها از کم ارزش به پر ارزش ميباشد.بيتها و بايتها
بيت آغاز و پايان براي سنکرون کردن فرستنده و گيرنده استفاده ميشود. خط انتقال داده عموما بالا (يک) ميباشد. با رسيدن بيت آغاز، دستگاه گيرنده 8 بيت بعدي را خوانده و آنها را ديکدميکند. سپس دستگاه گيرنده منتظر دريافت 2 بيت پايان ميشود. و پس از آن اين سيکل تکرار ميشود. بيت پايان به 2 دليل لازم ميباشد:
1. خط در وضعيت بالا (يک) قرار گيرد تا بيت شروع بعدي قابل تشخيص باشد.
2. فرصت کافي به دستگاه گيرنده داده شود تا دادههاي دريافت شده را پردازش کند.
دو دياگرام زير فريمهاي با مقدار0 و 255 را نشان ميدهند.
از روي 2 دياگرام فوق به خوبي معلوم ميشود که تغييرات سطح که توسط بيت آغاز و بيت پايان داده ميشود اين امکان را به دريافت کننده ميدهد که فريم را سنکرون کند.
تا اينجا خوب بود اما اين پايان قصه نيست! پروتکل DMX512 تا 512 ديمر را پشتيباني ميکند. اما تا حالا تنها يک ديمر را بررسي کرديم. چگونه ساير ديمرها را پشتيباني کنيم؟
جواب ساده است. کافي است اين پروسه را بطور پشت سر هم تکرار کنيم!
اما نه به همين سادگي! چگونه تشخيص دهيم کدام فريم متعلق به کدام ديمر است؟ جواب اين سوال در DMX Packet ميباشد.
DMX512 Packet
اين مطلب قلب استاندارد DMX512 است. يک Packet مجموعهاي از فريمهاي پشت سر هم به همراه يک سيگنال سنکرون اضافي به نام Break و Mark-after-break است. به کمک اين سيگنال ميتوان فريم اول را تشخيص داد و پشت سر آن ساير فريمها را تشخيص داد.
با بررسي زمانبندي فريمها ميتوان به اين نتيجه رسيد که حداکثر زمان پايين (صفر) بودن خط ديتا برابر با 36 ميکروثانيه (4 ميکروثانيه براي بيت آغاز و 8*4=32 ميکروثانيه براي ديتا) است. سيگنال Break به مدت 88 ميکروثانيه خط ديتا را پايين (صفر) نگه ميدارد. اين اختلاف به راحتي قابل تشخيص است و ميتوان سيگنال Break را تشخيص و عمل سنکرون Packet را انجام داد. بعد از Break بلافاصله Mark-after-break را داريم که به مدت 8 ميکروثانيه خط را بالا (يک) نگه ميدارد. اين سيگنال براي اين است که بيت آغاز فريم اول قابل تشخيص باشد. دياگرام زير به خوبي اين مطلب را نشان ميدهد.
دو مطلب هنوز باقي مانده است. يکي «کد آغاز و ديگر «زمان بين فريماست.
کد آغاز، يک فريم همانند ساير فريمها است با اين تفاوت که بلافاصله بعد از سيگنال Break ميآيد و نوع دادههاي Packet را تعيين ميکند. اگر مقدار اين کد صفر باشد بدين معني است که فريمهاي بعدي مقادير ديمرها را مشخص ميکند. ساير مقادير براي اين کد در پروتکل DMX512 تعريف نشده است ولي بعضي از سازندگان کدهاي ديگر را براي ارسال اطلاعات ديگر استفاده ميکنند.
نکتهاي که بايد توجه داشت اين است که با دريافت سيگنال Break، بايد از فريمهاي بعدي Packet صرف نظر کرد و نبايد منتظر آنها باشيم هر چند که به 512 فريم نرسيده باشم. اما بايد دقت کرد که بعضي از دستگاهها براي سادگي به اين نکته توجه نميکنند!
زمان بين فريم براي کاهش سرعت ارسال دادهها استفاده ميشود، چون بعضي از ديمرها با سرعت بالا نميتوانند دادهها را دريافت کنند. اين زمان ميتواند بين 0 تا يک ثانيه طول بکشد.
پروتکل DMX512 چند محدوديت بر روي زمانبندي سيگنالها قرار داده است.
سیگنال Break: بین ۸۸ میکرو ثانیه تا ۱ ثانیه
سیگنال Mark after Break: بین ۸ میکروثانیه تا ۱ ثانیه
سیگنال Inter Frame Time: بین صفر تا ۱ ثانیه
نکتهاي که با توجه به زمانبندي فوق مشخص ميشود اين است که هيچگاه بيش از يک ثانيه خط ديتا به طور پيوسته صفر يا يک باقي نخواهد ماند. که در اين صورت خطا رخ داده است.
براي تقسيم کردن شبکه به دو يا چند قسمت حتماً بايد از تقسيم کننده استفاده کرد. در غير اينصورت عدم تطبيق در امپدانس خط بوجود خواهد آمد که باعث بروز خطا در حين انتقال اطلاعات ميشود. براي مسافتهاي طولاني نيز بايد از تکرار کننده استفاده کرد. اين دستگاهها از يک طرف دادهها را بطور صحيح دريافت کرده و در طرف ديگر آن را تکرار يا پخش ميکنند.
نمونه ای از شبکه dmx512
سلام
خیلی اطلاعات خوبی بود
دمت گرم
چنتا سوال
dmx با dmx512 فرقی داره؟
برنامه نویسیش پجوریه؟
با avr هم میشه برنامش رو نوشت و استفاده کرد؟
منتظر پرژه درست و حسابیت هستم
سلام دوست عزیز ... والا قبلا dmx کمتر از 512 بود ... این عدد 512 به خاطر این هستش که میتونیم 512 تا وسیله نوری رو ، نورش رو تغییر بدیم .... یعنی 512 بایت رو می فرستیم که هر بایت مقدار نور همون وسیله رو کم و زیاد می کنه
برنامه نویسیش چه جوریه؟
میشه منابعی در این مورد معرفی کنی
پروژهی درست و حسابیت رو بزار جماعتی رو خوشحال کن
چشم داداش... حتما .... چند روز دیگه حتما ... الان یکم سرم شلوغه ....
اگه سریع جواب بدی ممنون میشم
دمت گرم از توجهت
آقا امید
رفتی ، نیومدی
من همچنان منتظرم