فهرست مطالب
بخش گرافیکی در سیستمهای Embedded از یک میکروکنترلر، بافر فریم، کنترلر نمایشگر و یک نمایشگر تشکیل شده است. در شکل 1 بخشهای مختلف سیستم نشان داده شده است.
- میکروکنترلر: میکروکنترلر با استفاده از کتابخانههای گرافیکی تصویر موردنظر را مسئول پردازش تصویر است. پردازش تصویر توسط خود CPU میکروکنترلر و یا با استفاده از واحدهایی نظیر DMA2D Chrome-Art Accelerator انجام میشود. میکروکنترلر تصویر موردنظر را در بافر فریم مینویسد. هر چقدر فرآیند نوشتن سریع تر باشد نمایش تصویرهای متوالی با کیفیت بالاتر و روانتر خواهد بود.
- فریم بافر: از Graphic RAM (GRAM) یا فریم بافر برای ذخیره پیکسلهای تصویر استفاده میشود. معمولا نوع GRAM از حافظههایی نظیر SRAM، DRAM انتخاب میشود و اندازه آن بستگی به اندازه و کیفیت تصویر موردنظر دارد. گاهی برای جلوگیری از نمایش تصویری که نوشتن آن به اتمام نرسیده است، از از تکنیک Double buffering استفاده میشود. در این حالت از GRAM برای نمایش تصویر و از یک GRAM دیگر برای نوشتن تصویر استفاده میشود. بدین صورت که تا زمانی که فرآیند نوشتن تصویر در یک GRAM به اتمام نرسیده است، GRAM دیگر نمایش داده میشود.
- کنترلر: کنترلر مسئول Refresh کردن تصویر است. کنترلر دائما داده را تصویر را از GRAM میخواند و در نمایشگر کپی میکند. کنترلر هم میتواند داخل میکروکنترلر باشد و هم داخل ماژول نمایشگر.
- نمایشگر: از نمایشگر برای نمایش تصویر استفاده میشود. مشخصههای یک نمایشگر عبارتند از:
- اندازه نمایشگر: تعداد پیکسلهای تصویر در هر سطر و ستون است که معمولا بصورت ضرب دو عدد نوشته میشود.
- عمق رنگ: تعداد رنگهایی که هر پیکسل میتواند نشان دهد. واحد عمق رنگ bit per pixel (bpp) است. برای مثال اگر نمایشگر با عمق تصویر 24 bpp باشد هر پیکسل میتواند 256*256*256 = 16777216 رنگ را نمایش دهد.
- نرخ Refresh: تعداد دفعاتی که نمایشگر میتواند تصویر را Refresh میشود. نرخ Refresh تصویر باید حداقل 60 Hz باشد.
دسته بندی ماژول های گرافیکی
ماژولهای نمایشگر با توجه به داخلی یا خارجی بودن GRAM به دستههای زیر تقسیم میشوند.
- در دسته اول GRAM و کنترلر در داخل ماژول نمایشگر قرار دارند. در شکل 2 نحوه قرار گیری GRAM نشان داده شده است.
- در دسته دوم GRAM در بیرون ماژول نمایشگر قرار دارد و نمایشگر فقط دارای یک کنترلر ساده جهت کنترل timing آن است. در این ساختار کنترلر در داخل میکروکنترلر قرار دارد و GRAM هم میتواند در داخل میکروکنترلر (شکل 3) و هم خارج آن (شکل 4) باشد.
استانداردهای گذرگاه ارتباطی با نمایشگر های گرافیکی
MIPI (Mobile Industry Processor Interface) یک موسسه بین المللی است که توسط شرکتهای ARM، Intel ، Nokia، Samsung، STMicroelectronics و Texas Instrument تاسیس شده است. MIPI مشخصههای ارتباطی ادوات موبایل و وابسته به آن را مشخص میکند. MIPI در زمینه نمایشگرهای گرافیکی استانداردهای زیر را تعیین کرده است.
MIPI display bus interface MIPI-DBI
MIPI-DBI جز اولین استانداردهایی است که موسسه MIPI برای نمایشگرهای گرافیکی ارائه کرده است. در این استاندارد سه نوع گذرگاه مشخص شده است:
- نوع A: براساس گذرگاه Motorola 6800
- نوع B: براساس گذرگاه Intel 8080
- نوع C: براساس گذرگاه SPI
MIPI-DBI در نمایشگرهایی استفاده میشود که دارای GRAM داخلی هستند. میکروکنترلر پیکسلهای تصویر را در GRAM مینویسد. در شکل 5 نوع A و B این استاندارد نشان داده شده است.
در شکل زیر نیز نوع C استاندارد DBI نشان داده شده است.
MIPI display parallel interface MIPI-DPI
استاندارد DPI مشخصههای ارتباط با کنترلر TFT (برای مثال نمایشگر گرافیکی 24 بیت RGB همراه با سیگنالهای کنترلی HSYNC، VSYNC، EN و LCD-CLK) را تعیین میکند. DPI برای ارتباط با ماژولهای نمایشگر بدون GRAM استفاده میشود که تصویر باید بصورت Real-Time نمایش داده شود. برای این منظور نرخ ارتباط گذرگاه باید بالا باشد.
MIPI display serial interface MIPI-DSI
این استاندارد به منظور کاهش تعداد سیمهای لازم برای ارتباط نمایشگر توسعه داده شد. DSI یک لینک با پهنای باند بالاست که داده را بصورت تفاضلی انتقال میدهد.
DSI داده DBI یا DPI را بصورت سریال با پروتکل PPI ارسال میکند.
گذرگاه های ارتباط با نمایشگر در میکروکنترلرهای STM32
در بخش قبلی به صورت مختصر گذرگاههای ارتباطی نمایشگرهای مختلف معرفی شدند. در این بخش به بررسی میکروکنترلرهای STM32 که از نمایشگرهای گرافیکی پشتیبانی میکنند، پرداخته شده است. بطور خلاصه میتوان گفت که از آنجایی که کلیه میکروکنترهای STM32 دارای گذرگاه SPI هستند لذا همه آنها از گذرگاه DBI نوع C پشتیبانی میکنند. برای گذرگاه DBI نوع A و B فقط از میکروکنترلرهایی که دارای گذرگاه FM(S)C هستند میتوان استفاده کرد. میکروکنترلرهایی که دارای واحد LTDC هستند از DPI و میکروکنترلرهایی که دارای DSI Host هستند از گذرگاه MIPI-DSI پشتیبانی میکنند.
در میکروکنترلرهای STM این امکان را فراهم می کند که بدون دخالت CPU پردازش گرافیکی انجام شود. بصورتی که هنگامیکه LTDC در حال خواندن تصویر را از GRAM است، Chrome-Art Accelerator فریم بعدی را آماده کند.
LTDC دارای دو لایه است. بدین صورت که که میتوان یک تصویر را با تنظیمات دلخواه بر روی LCD نمایش داد. بعنوان مثال ابعاد، نقاط ابتدا و انتهای آن و یا میزان ترکیب شدن (Blend) هر تصویر با تصویر زیرین را تنظیم نمود. بلوک دیاگرام واحد LDTC در شکل زیر نشان داده شده است.
LTDC در هر لبه PCLK یک پیکسل تصویر را از حافظه خواهنده و آن را به فرمت ARGB8888 تبدیل میکند و با تصویر پس زمینه ترکیب کرده و سپس آن را به نمایشگر ارسال میکند.
در جدول زیر نقش هر یک از پایههای LTDC نشان داده شده است.
پایههای HSYNC و VSYNC ناحیه فعال تصویر را مشخص میکنند. در شکل 11 وضعیت این پایهها در تصویر نشان داده شده است. همانطور که از این شکل مشخص است، در هر خط افقی تصویر یک بار پایه HSYNC صفر و سپس یک میشود ولی پایه VSYNC در کل تصویر یکبار یک و سپس صفر میشود.
واقعاً دست مریزاد . چقد عالی . هزاران هزار سپاس مهندس . خیلی نیاز داشتم به آموزشاتون …
عالی بود واقعاً . مرسی….
درود به شرفتون
دمتون گرم
عاااالی
بسیار عالی و کاربردی سپاسگذارم
بسیار متشکرم . اگر اطلاعاتی درمورد افزایش حافظه flash برای ذخیره کردن تصاویر با فرمت FLMو SDLTR داشتید ممنون می شوم اطلاع بدهید