با سلام
در این پست برای درک بهتره مطالب قصد دارم،بعضی مسائل پایه و مهم ،چون فرکانس و بیت بپردازم .
برای شروع،از چند مطلب که در چند تاپیک مختلف ارسال کردم رو در اینجا قرار میدم و انشالله در پست بعدی نکات تکمیل ترش رو بیان میکنم
ابتدا پیشنهاد می کنم این مطلب رو در رابطه با کریستال"
کریستال یا نوسان ساز" و این مطلب رو در رابطه با فرکانس "
فرکانس(frequency) یا بسامد، چیست و چطور کار می کند و چه کاربردی دارد؟"مطالعه کنید (به زبان ساده)
سپس این مطالب رو بخوانید:--
مرور کوتاه بر پردازش 8 بیتی میکروکنترولرمیکروکنترولر avr اکثرا پردازشون 8 بیتی می باشد،
این بیت ها در واقع همان داده های Digtal هستن که ما برای فهمیدن یک اطلاعات ازشون استفاده می کنیم
بصورت ساده و مشخص.ما به کامپیوتر نمی توانیم بگویم F یا G یا 1 یا 2 ! چون کامپیوتر قادر به فهمیدن این مطلب نیست! پس ما باید ان را در قالب برایش ارسال کنیم (تا بعد به کمک واحد های درونیش،ان ترجمه کند)
اما خود این کد چطور به وجود می اید؟
کد خیلی ساده به وجود می ایند،وقتی ولتاژ 0 باشد،خروجی دیجیتال 0 می باشد و وقتی که خروجی 5 (یا 3.3) ولت باشد خروجی 1 میشود ..
همه این کارها به کمک ترانزیستورهای درونی میکروکنترولر ، بر روی کلاک و با پایین و بالا کردن انها ایجاد میشود .
خوب مبحث یکمی سنگین شد،و اگر ان تاپیکی که گفتم رو خوب مطالعه کنید،بهتر متوجه میشود ...
مروری کوتاه بر تفاوت 8 بیت و 16 بیت و 32 بیت شاید برایتان سوال پی اماده که این بیت ها چه تفاوتی باهم دیگرن دارن ؟!
جوابشان خیلی ساده است،بسیار زیاد،هرچی بیت بیشتر ، بهتر!
ما در پردازش 8 بیت می توانیم ، 8 بیت اطلاعات را هم زمان برای سی پی یو ارسال کنیم، که جمعا میشود 256 نوع داده مختلف ،که این 256 هر کدام میتوند یک نوع اطلاعی از قبیل حرف F یا A یا ... باشد !
که فرمول محاسبه اش ساده هستش و بر مبنا 2 می باشد .
مبنا 2 یعنی برای اینکه بفهمیم که کد 0 و 1 رو چقدر میشه بصوت 8 کاراکتر کنار هم قرار داد و تکرار نبود، رو انجام میدم.
هشت بیت به مبنا دو اینطور محاسبه میشود 2x2x2x2x2x2x2x2=256
حال سی پی یو که پردازش 16 بیتیست ، می شود 655,336 داده .یا سی پی یو که پردازش 32 بیتست ،میشود 4,294,967,296 داده.مروری کوتاه بر فرکانس در میکروکنترولرهر چقدر فرکانس کاری،یک میکروکنترولر بالاتر باشد،سرعت محاسبه (0 و 1) در ثانیه برایش بیشتر میشود.
فرکانس را به کمک قطعه به نام نوسان ساز(کریستال) تولید می کنند..
همانطور که قبلا نیز در
اینتاپیک،توضیح داده بودیم،فرکانس در ثانیه چند میلیون بار تکرار میشود!
به عنوان مثال اگر گفته شود،فرکانس میکروکنترولر ATMEGA8 حدود 16 مگاهرتز است.یعنی این میکروکنترولر می تواند 16 میلیون نوسان را در ثانیه به کمک کریستال تولید کند.
اما برای اینکه متوجه بشیم یک میکروکنترولر چه مقدار محاسبه را در ثانیه انجام میدهد.... باید دید معماری سی پی یو و تعداد ترانزیستور ها و ... به چه شکل می باشد!
اما به طور کلی بیشتر میکروکنترولر های AVR مدل های 8 بیتی ،توانایی دارن که به 1MHz فرکانس حدود 1 میلیون محاسبه را انجام دهند،و با اضافه شدن هر 1 مگاهرتز به فرکانس سی پی یو 1 میلیون محاسبه خود را بیشتر انجام دهند.
به عنوان مثال میکروکنترولر ATMEGA328 که نسل جدیدی از میکرو های avr است. می تواند با فرکانس 20 مگاهرتز کار کند،و حدود 20 میلیون محاسبه در ثانیه انجام دهد.
شاید نزد خود فکر کنید،اگر بخواهیم فرکانس سی پی یو میکروکنترولر را بیشتر کنیم،ان وقت چه میشود؟
شما اگر فرکانس میکروکنترولر مثل atmega8 (که کارخانه تا 16 مگاهرتز را تضمین کرده) را بر روی 16 مگاهرتز تنظیم، در بعضی پروژ محاسبات را درست انجام نمی دهد!
پس همانجور که متوجه شدید،اگر فرکانس رو خیلی زیاد کنید(اورکلاک،یا بیشتر از ظرفیت تضمین شده)،محاسبات بهم میریزد و خروجی خوبی بدست نخواهید اورد.
ایا واقعا ما نیاز به 1 میلیون محاسبه در ثانیه داریم،؟!بستگی به این دارد که شما بخواهید چه کاری را انجام دهید ..
به عنوان مثال،وقتی شما می خواهید چند عدد LED را خاموش و روشن کنید ... میکرو رو در وضعیت شوخی قرار دادید!
اما وقتی شما در برنامه خود،مجموعه از هزارن LED ( بصوتر مولتی پلاکس و ماتریکسی) وصل کرده اید،و می خواهید با ان ساعت،متن،وضعیت اب هوا، و کلی برنامه نویسی و استفاده از واحد های میکرو کنید،میکروکنترولر،از همه ظرفیت های سی پی یو استفاده میکند،و شاید حتا مجبور شوید مدل های بالاتری تهیه کنید!
محاسبات در میکروکنترولر نقش بسیار تایین کننده ی،مخصوصا در پروژه های امروزی دارد و هر چقدر محاسبات بیشتر باشد و واحد های میکرو دقیق تر و بیشتر باشد،شما هم می توانید کارها پیشرفته و بهینه تری را بسازید .
اما لازمه اون کارهای پیشرفته! این است که امروز به میکروهای کم توان،ولی خوب،کار کنید،و بتوانید خوب از انها کار بکشید،سپس به سراغ مراحل بالاتر بروید.