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 وجود ندارد. 



نظر بدهید

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