Slide
Slide

پورت های ورودی و خروجی AVR
نویسنده: مسئول فنی در
۰۲ اسفند ۱۳۹۲
[ آخرین به روزرسانی در ۱۶ اسفند ۱۳۹۲ ]

در حال تکمیل شدن :
تعریف پورت : پورت را در فارسی درگاه ترجمه می کنند، به این معنی که محل ورود و خروج و ارتباط با بیرون است. معنی درستی است، چون پورت ها در سیستم های میکروپروسسوری نیز محل دادن و یا گرفتن داده از بیرون هستند.
قبل از بررسی پورت های AVR اجازه دهید مقداری درباره جایگاه و اهمیت پورت ها صحبت کنیم. متاسفانه امروزه در رشته کامپیوتر کمتر به پورت ها توجه می شود و حتی شما کتاب های زیادی در مورد معماری کامپیوتر می بینید، که حتی اسمی از دستورالعمل های ورودی و خروجی نمی برند. در حالی که غالب ارزش یک کامپیوتر به ارتباط با بیرون است. از نظر من تا زمانی که یک کامپیوتر نتواند از دنیای بیرون به صورت بلادرنگ داده را بگیرد و یا نتایج پردازش خود را به صورت بلادرنگ به بیرون اعمال کند، قادر به حل غالب مسائل فنی نیست.
برای مثال به نقش یک سیستم میکروپروسسوری در پزشکی، ترافیک، هواشناسی، صنایع نفت و پتروشیمی، ناوبری و هدایت موشک و... گرفته تا یک ساعت حضور و غیاب ( دزدگیر، کارت خوان، کنترل کولر، درب اتوماتیک و... ) همه باید به صورت بلادرنگ با بیرون ارتباط داشته باشند.
اجازه دهید روی یک مثال متمرکز شویم. دانشجوی یک دانشگاه در یک پروژه پردازش تصویر از روی یک فایل تصویر، شماره پلاک خودرو را استخراج می کند. حتی اگر قسمتی از شماره پاک شده و یا بدلیل خاک و گل مخدوش شده باشد، آنرا پیدا میکند. خوشحال از موفقیت به سراغ سازمان ترافیک شهر خود می رود، تا کاری برای کشورش کرده باشد. مسئول مربوطه پس از گوش کردن حرف های او می گوید، آفرین، اما ما پلاک ماشینی را می خواهیم که از چراغ قرمز عبور کرده و یا با سرعت بالای 120 کیلومتر در ساعت از یک نقطه گذشته است. لذا باید تصاویر به صورت بلادرنگ و در کمتر از چند میلی ثانیه پردازش شوند و...
تصویر زیر یک پورت Mega32 را نشان می دهد. این شکل ارتباط با بیرون را به خوبی نشان می دهد. پایه اول از سمت چپ به عنوان یک پایه خروجی برای سوئیچینگ ( روش و خاموش کردن ) یک ترانزیستور استفاده شده است. پایه دوم به عنوان خروجی یک LED را روشن و یا خاموش می کند. پایه چهارم به عنوان یک پایه ورودی وضعیت باز یا بسته بودن یک شاسی فشاری را به AVR میدهد. پایه ششم به عنوان یک ورودی خروجی پالس های خروجی یک سنسور را که از چرخش یک دیسک ایجاد می شود، را به AVR می دهد. البته توجه داشته باشید که در این شکل به خاطر نشان دادن تنوع ورودی/خروجی هر پایه را به کاری اختصاص داده ایم، وگرنه در خیلی از موارد یک پورت 8 بیتی به یک کار اختصاص داده می شود.
همانطور که در شکل می بینید، هر پورت شامل سه بخش است:
رجیستر تعیین جهت پایه های پورت (DDR) : از آنجا که در AVR می توان هر کدام از پایه ها را ورودی یا خروجی تعریف کرد، وظیفه این رجیستر، تعیین ورودی یا خروجی بودن پایه هاست. اگر در بیت متناظر هر پایه 1 بنویسیم آن پایه خروجی و اگر 0 بنویسیم ورودی تعریف می شود.
رجیستر نگهدارنده مقدار پورت (PORT) : وقتی ما می خواهیم مقداری را به خروجی بدهیم و یا به بیان دیگر روی پایه هایی که خروجی تعریف کرده ایم مقدار بگذاریم. باید این مقدار را در رجیستر PORT بنویسیم.
رجیستر مقدار پایه های پورت (PIN) : اگر بخواهیم آنچه روی پایه های AVR است را بخوانیم، باید رجیستر PIN را بخوانیم.
AVR Input Output Pinsحال که با پورت ها و سه رجیستر آن آشنا شدید، به بررسی دقیق تر پورت ها می پردازیم. شکل زیر مدار داخلی یک پایه از پورت های AVR را نشان می دهد. دقت داشته باشید که در Mega32 که چهار پورت C,B,A و D داریم، 32 پایه برای پورت ها و 32 مدار مانند شکل زیر در داخل IC وجود دارد.
در شکل زیر رنگ آبی مسیرهای رجیستر DDR جهت تعیین جهت پایه، رنگ سبز برای خروجی مبین مسیرهای رجیستر PORT و رنگ قرمز برای ورودی مبین مسیر رجیستر PIN است.

AVR Input Output Pins Configuration

نظرات کاربران
unknown :    
۱۸ اسفند ۱۳۹۲
۱۸ اسفند ۱۳۹۲
salam siteton kheili khobe va mataleb hame kamel , makhsosan vase shabe emtehan ke jozve nadashte bashi :D kheili mamnon.
۱۸ اسفند ۱۳۹۲
مسئول فنی :

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



masammohammadi :    
۱۸ ارديبهشت ۱۳۹۳
۱۸ ارديبهشت ۱۳۹۳
با سلام و خسته نباشید مفهوم memory mapped i/o یعنی چه؟با تشکر
۱۹ ارديبهشت ۱۳۹۳
مسئول فنی :

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



یه دانشجو :    
۲۲ آبان ۱۳۹۴
۲۲ آبان ۱۳۹۴
استاد با سلام فرق بین pin و port چیست؟ هم با رجیستر port و هم با رجیستر pin میشه اطلاعات رو خوند پس فرق این دو در چیست؟
۳۰ دي ۱۳۹۴
مسئول فنی :

pin و Port در AVR با هم تفاوت می کنند. در اینجا منظور از پین، آنچه روی پایه های AVR است می باشد و وقتی شما از Pin می خوانید، اطلاعات روی پین های AVR را دریافت می کنید. اما Port یک رجیستر است که برای قراردادن داده روی پایه ها استفاده می شود و وقتی شما یک Port از AVR را خروجی تعریف می کنید، با نوشتن در پورت، داده شما روی پایه ها قرار می گیرند. شما وقتی از پورت می خوانید، در واقع همان رجیستری را که مقداردهی کرده اید می خوانید، نه مقدار روی پایه های آی سی را.

توجه داشته باشید رجیستری به عنوان Pin در AVR وجود ندارد و وقتی شما از رجیستر Pin می خوانید، در واقع مستقیماً مقادیر روی پایه های آی سی را می خوانید. توجه داشته باشید رجیستر pin فقط خواندنی است و در آن نمی توان نوشت و مقدار اولیه نیز ندارد و همه این ها دال بر اینست که رجیستری به عنوان Pin وجود ندارد. 



danial :    
۰۵ دي ۱۳۹۴
۰۵ دي ۱۳۹۴
سلام . فرق pullup و tri_state چیه ؟
۳۰ دي ۱۳۹۴
مسئول فنی :

pull up همانطور که از نامش پیدا است، یعنی بالا بردن. pull up برای پایه های ورودی استفاده می شود. وقتی شما یک دستگاه ورودی مانند کیبورد را به پورت میکروپروسسور وصل می کنید، باید ورودی 0 یا 1 باشد، اما اگر ورودی یک المان پسیو مانند کیبورد باشد و در یک حالت 0 یا 1 مقدار مشخصی نداشته باشد، شما ناچار هستید ورودی را Pull up یا Pull Down کنید، تا ورودی میکروپروسسور مقدار مشخصی داشته باشد.

TriState یعنی وضعیت Float یا شناور و در مورد پایه های خروجی قطعات دیجیتال بکار می رود. هرگاه یک پایه خروجی وضعیت 0 یا 1 نداشته و خروجی در حالت امپدانس بالا ( Float یا شناور ) باشد، می گویند در حالت سوم یا Tri state است. خروجی های سه حالته عموما در مواردی بکار می رود، که شما چند قطعه را به یک باس مشترک می خواهید متصل کنید.

Pull up و Pull Down در مورد ورودی و Tri State در مورد خروجی است. 



نظر بدهید

ایمیل شما پنهان می ماند.