ايران ويج

نسخه‌ی کامل: بررسی انواع پروتکلهای موجود برای AVR
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام به همه ی دوستان
------------------------------------------
توی AVR چه پروتکلهایی هست؟(مثل USART,SPI و...) / لطفا تمام پروتکلها رو ذکر کنید.
و مشخصات هر کدومو اول بصورت جداگانه بگید
و بعد مزیت ها و معایبش رو(مثل سرعت ، طول خطوط انتقال داده و...)
در ضمن اگه به جز AVR، میکروکنترلر دیگه ای میشناسید که از نظر پروتکل پروتکل جدیدی داشته باشه(مثل پروتکل CAN) اونا رو هم بگید +مزیتها و معایب
اگه منبع خارجی هم باشه خوبه

هدف: انتخاب بهترین پروتکل برای اتصال یه وسیله جانبی به میکرو
------------------------------------------
با تشکر
شما شرایط پروژه تون رو بگید و بگید چی قرارهه به میکرو وصل بشه و به چه تعداد و نرخ ارسال اطلاعاتش باید چقدر باشه و در چه فاصله ای نسبت به میکرو قرار دارهه.
در مورد همه صحبت کنیم باید یه مقاله بنویسیم Biggrin
اگر خودتون هم می خواید در موردشون بخونید ، هر پروتکل رو گوگل کنید کلی اطلاعات گیرتون می یاد.
پروتکل ها کلا : UART,SPI,I2C,1wire,Ethernet,CAN,PWM,I2s,SSP,USB,modebus و ... هستن.
من فعلا دارم ازلاعات جمع میکنم تا برای هر پروژه بدونم چه پروتکلی رو استفاده کنم.
شما خودتون از چه منبعی فهمیدید که avr این پروتکلها رو داره؟
همچنین اگه یه وسیله رو بخاهیم به میکرو وصل کنیم مثلmmc که با spi باید وصل بشه،اگه با یه پروتکل دیگه به میکرووصل بشه چی میشه؟
این pwm ، پروتکل هست؟ یا منظورتون pwm توی تایمر هست؟؟؟
من این پروتکل رو هم پیدا کردم: host-driven synchronous protocol
اینو هم توضیح بدید.
AVR همه ی این پروتکلها رو ندارهه ، بعضی نمونه هاش USB ساپورت می کنه یا بعضی یا CAN و ... هم ساپورت می کنه.
یا مثلا پروتکل 1Wire سخت افزاری نیست و نرم افزاری پیاده سازی می شه.
I2C و SPI و UART هم قابل پیاده سازی به صورت نرم افزاری هستن.
در یه سری از پروگرامرها که می بینید یه اتمگا8 دارهه به عنوان مغز USB Device استفاده می شه ، می بینید که پروتکل عظیم USB هم به صورت نرم افزاری پیاده سازی شده.
modebus و ... مربوط به PLC هست و در صنعت استفاده می شه، اما باز قابل ساخت به صورت نرم افزاری روی میکرو کنترلر هست ...
اون I2S , SSP و EMAC , USB , CAN و ... هم میکروهای ARM اکثرا ساپورت می کنن. حتی کنترلر LCD و کنترل موتور 3 فاز به سبب واحد MCPWM و اینترفیس flash , ram به صورت external و ... هم یه سری شون دارن.

برای SD/MMC ، پروتکل هم نامی باهاشون وجود دارهه ، که باز به صورت سخت افزاری برای یه سری ARMهای حرفه ای وجود دارهه. از اونجایی که سرعت توی این حافظه خیلی مهمه ، طبیعتا یا از پروتکل همنامش یا SPI که پروتکل سرعت بالایی هست باید استفاده بشه. از این جهت که فرضا در رسبری پای می بینی قراره لینوکس رو از روی همین SD بوت کنه!
برای هر انتخابی باید یه معیار و ملاکی وجود داشته باشه.

اینه که نمی یای با UART این رو راه بندازی! گرچه کارخونه ی سازنده همون 2 پروتکل سرعتی رو براش در نظر گرفته.

یا مثلا همون UART / USART ، برای اینترفیس RS232 , RS485 , ... باز دارهه استفاده می شه.

PWM ، توی رشته ی ما همون PWM هست دیگه ، متاسفانه می یان می گن PWM کارش کنترل سرعت موتور DC هست ، اما کاربردای دیگه هم دارهه!
بله همین PWM می تونه یه پروتکل خود ساخته باهاش تعریف کرد!
یا پروتکل PPM هم از همین PWM و ... مشتق شده دیگه، که در بحث telecommunications و برای درایو موتور سروو و براشلس استفاده می شه.

هنوز چیزای زیادی وجود دارهه که نمی دونم...

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

موفق باشید.
یکم توی سایتای خارجی گشتم به چندتا مورد برخوردم:
یکی اینکه پروتکلها به دو نوع سنکرون و آسنکرون تقسیم بندی میشن
و دوم اینکه 2 اصطلاح "protocol" و "controller" رو دیدم
مثلا نوشته بود CAN controller در حالی که من فکر میکردم این CAN یه پروتکله. اینو هم یه توضیح بدید
اگه یه منبع مسشناسید که به طور کامل تمام پروتکهای avr رو توضیح داده باشه معرفی کنید.
در ضمن به نظر من پروتکلهایی که به صورت نرم افزاری هستند به درد نمیخورند چون میکرو رو درگیر خودشون میکنن و نمیشه توی اون میکرو کار دیگه ای کرد.موافقید؟
یه سوال دیگه: آیا میشه هر دستگاه جانبی رو فقط با یه پروتکل راه انداخت؟(مثل UART) آیا تنها مشکلش فقط سرعته یا نه؟
در مورد این PWM هم که به عنوان پروتکل استفاده میشه یه توضیح بدید.

بررسی دیتاشیت هم به نظر من کار عاقلانه ای نیست.چون ما تعداد زیادی میکرو داریم حالا به تعداد اون باید دیتاشیت بگیرم(؟)
احتمالا باید یه مرجعی باشه که محصولات AVR رو از نظر پروتکلهاشون تقسیم بندی کرده یاشه.اگه اطلاع دارید لطفا معرفی کنید.

با تشکر
خوب در واقع USB هم پروتکل نیست ، بلکه یه کنترلر هست که پروتکل های زیادی رو می تونه پوشش بدهه!
اما برای سادگی بهش می گم پروتکل ، مثلا کلاس های HID,CDC,AUDIO,MSC و ... یه سری از کلاس های USB هستن که هر کدومشون از زمین تا آسمون با هم تفاوت دارن، حتی کلاس ها و درایور های خود تعریف هم می شه نوشت! جدا از این یه کنترلر USB HOST هم داریم که باز بعضی از میکروها علاوه بر واحد USB Device شامل اون هم می شن.

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

نقل قول: در ضمن به نظر من پروتکلهایی که به صورت نرم افزاری هستند به درد نمیخورند چون میکرو رو درگیر خودشون میکنن و نمیشه توی اون میکرو کار دیگه ای کرد.موافقید؟
نظر بنده کمی با شما متفاوته.اگر بدرد نخور بودن کسی نمی نشست این همه کار کد نویسی پر مشقتشون رو انجام بدهه. البته بستگی به کاربرد در پروژه دارهه ، مسلما در این صورت کنترلر پروتکل خود CPU میکرو می شه و بسته به حجم پروتکل زمان از CPU اشغال می شه!
بستگی به شرایط پروژه و هزینه و ... نحوه ی استفاده مشخص می شه.
فرضا پروگرامری که می زنه ، اینترفیس USB رو روی میکروی atmega8 سه تومنی پیاده سازی کنی به صرفه ترهه تا یه AVR که دارای کنترلر USB هست و بالای 10 تومنه بگیری، و البته باز با توجه به شرایط پروژه که تنها کاری که باید انجام بده همین اینترفیس USB هست.

نقل قول: یه سوال دیگه: آیا میشه هر دستگاه جانبی رو فقط با یه پروتکل راه انداخت؟(مثل UART) آیا تنها مشکلش فقط سرعته یا نه؟
متوجه منظورتون نشدم. واضح تر بگید. UART یکی از بهترین پروتکل هاست!
از هر چیزی سر جاش باید استفاده کرد. برای همین انواع و اقسام پروتکل ها بوجود آمدن.

نقل قول: در مورد این PWM هم که به عنوان پروتکل استفاده میشه یه توضیح بدید.
این بستگی به خلاقیت طراح دارهه! هر عرض پالسی می تونه معرف یه مقدار منحصر به فرد باشه. یعنی با خوندن عرض پالس ها می شه اطلاعات رو دیکد کرد!

نقل قول: بررسی دیتاشیت هم به نظر من کار عاقلانه ای نیست.چون ما تعداد زیادی میکرو داریم حالا به تعداد اون باید دیتاشیت بگیرم(؟)
احتمالا باید یه مرجعی باشه که محصولات AVR رو از نظر پروتکلهاشون تقسیم بندی کرده یاشه.اگه اطلاع دارید لطفا معرفی کنید.
نظر شما محترمه، البته بنده گفتم دیتاشیت خانواده های میکروها .
شرکت های سازنده بلاخره ویژگی های کلی هر خانواده از محصولشون رو بیان می کنن.
در قسمت abstract و یا feature ها می شه خیلی سریع متوجه قابلیت ها شد. روش خوندن و روش جست و جو کردن خیلی مهمه، که اینا رو باید به مرور زمان به صورت تجربه کسب کنیم، چون اینکارا رو اینجا آموزش نمی دن.
البته منم یکجا اطلاعات جمع نکردم، هر چیزی رو باید قدم قدم رفت جلو...
در این مورد می تونید سرچ بزنید شاید مقاله ای باشه.
خودمم به محضی که اطلاعاتم در مورد پروتکل های رایج به حد مطلوب رسید سعی می کنم به عنوان یه آموزش در نظرش داشته باشم. مرسی.