میکروپروسسورهای Intel PXA250 & PXA210

میکروپروسسورهای& PXA210 Intel PXA250
مقدمه-
در این تحقیق به میکروپروسسورهای PXA250 & PXA210 پرداخته می شود. این میکروپروسسورها میزان سرعت پردازش در برنامه های پردازشی قابل حمل، مانند pc pocket ها را افزایش می دهند. هرکدام از این پروسسورها در اصل یک سیستم مجتمع با قابلیت پردازش بالاست که روی یک تراشه قرار دارد و شامل یک Intel XScale Core می باشد که دارای توان پائین می باشد همراه با تعدادی از سیستمهای جانبی مختلف.

PXA250 یک پردازشگر ۱۷x17mm با ۲۵۶ پایه می باشد. این بسته PBGA برای سیستمهای با کارآئی بالا قابل استفاده است. این پکیج دارای گذرگاه داده ۳۲ بیتی می باشد و همچنین دارای مجموعه کاملی از سیستمهای جانبی است.

ویژگیهای Intel® XScale™ Core
ARM™ نسخه ۵TE ISA
ــ پشتیبانی دستورالعملهای ARM
ــ دستورالعملهای پیشرفته ARM DSP
توان مصرفی پائین و در عین حال کارآئی بالا
تکنولوژی پردازش محیط اینتل
ــ ضرب ۱۶ بیتی پیشرفته
ــ انباره ۴۰ بیتی
حافظه دستورالعمل ۳۲ KByte
حافظه داده ۳۲ KByte

حافظه کوچک داده ۲ KByte
حاقظه کوچک دستورالعمل ۲ KByte
واحدهای مدیریت داده و دستورالعمل
بافر انشعاب مورد نظر
گنجایش اشکال زدائی از طریق پورت JTAG
کنترل کننده حافظه
کنترل کننده های ساعت و توان
گذرگاه سرویس گیرنده سریال
کنترل کننده DMA

کنترل کننده LCD
AC97
I2C
کارت Multimedia
ارتباط FIR ( Fast Infrared Port )
پروتکل پورت سریال همزمانی
I2S
پینهای همه منظوره I/O
UARTs
ساعت واقعی
تایمرهای OS
مدولاسیون پهنای پالس
کنترل کننده وقفه

کنترل کننده حافظه
کنترل کننده حافظه، سیگنالهای کنتر

لی قابل برنامه ریزی و زمانبندی را برای مجموعه ای از انواع تراشه های حافظه و سازماندهی حافظه تامین می کند. این کنترلر تا ۴ قسمت SDRAM ، ۶ تا انتخاب تراشه استاتیک برای SRAM ، SSRAM ، Flash ، ROM ، SROM و تراشه های جانبی و همچنین ۲ تا PCMCIA یا اسلاتهای فشرده flash را پشتیبانی می کند.
پروسسورهای PXA250 ، PCMCIA ، Flash فشرده یا I/O های مختلف را پشتیبانی نمی کنند.

کنترل کننده های ساعت و توان
این پروسسورها توسط کلاک راه اندازی می شوند که این ساعتها توسط کریستالهای ۳٫۶۸۶۴ MHz و یک کریستال انتخابی ۳۲٫۷۶۸ MHz ایجاد می شوند.
کریستال ۳٫۶۸۶۴ MHz یک فاز Locked Loop (PLL) و ی

ک PLL جانبی را راه اندازی می کند. PLLs فرکانسهای ساعت مورد نیاز را برای راه اندازی بلاکهای عملگر را تولید می کند.
کریستال ۳۲٫۷۶۸ MHz یک کلاک انتخابی را ایجاد می کند که باید پس از یک reset سخت افزاری انتخاب شود. این کلاک ساعت واقعی ، کنترلر مدیریت توان و کنترلر وقفه را راه اندازی می کند. کریستال ۳۲٫۷۶۸ MHz بر روی یک ثسمت جدا برای ایجاد ساع

ت فعال قرار دارد و در این کار را هنگامیکه پروسسور در وضعیت خواب قرار دارد، انجام می دهد.
مدیریت توان تغییر حالت بین وضعیت های Turbo/Run ، Idle و Sleep را انجام می دهد.

سرویس دهنده Universal Serial Bus ( USB )
سرویس دهنده USB بر پایه خصوصیات تجدید نظر شده USB بنا شده است که تا ۱۶ نقطه پایانی را پشتیبانی می کند و کلاک ۴۸ MHz داخلی را مهیا می کند. کنترلر USB همچنین FIFOs را با دسترسی DMA به یا از حافظه را ایجاد می کند.

کنترلر (DMAC) DMA
DMAC این قابلیت را دارد که ۱۶ تا کانال الویت بندی شده را برای سرویس دادن به انتقال درخواستها از دستگاههای جاتبی داخلی و تا سقف دو درخواست انتقال داده از تراشه های خارجی، مهیا کند. DMAC امکان تغییر command و ایجاد حلقه را نیز دارد.
DMAC هنگامیکه انتقال حافظه به حافظه، حافظه به سیستم جانبی و سیستم جانبی به حافظه صورت می گیرد، در مد flow-through اجرا می شود. DMAC با سیستمهای جانبی سازگار است که سایز داده در آنها word, half word یا byte باشد.

کنترلر LCD
کنترلر LCD هر دو حالت منفعل و فعال نمایشگر مسطح را پشتیبانی می کند و ماکزیمم رزولوشن ۸۰۰x600x16 bit/ pixel را پشتیبانی می کند. یک پالت ورودی ۲۵۶ ، پیکسلهای رمزگشوده شده ۱، ۲و ۸ بیتی را گسترش می دهد. پیکسلهای ۱۶ بیتی رمزگ

شائی نشده، پالت را پشت سر می گذارند.
دو کانال DMA این امکان را به کنترلر LCD می دهد که پنل نمایشگر single و dual را پشتیبانی کند. مد تک رنگ منفعل تا ۲۵۶ سطح سیاه و سفید را پشتیبانی می کند و مد منفعل رنگی تا ۶۴KB رنگ را پشتیبانی می کند. مد فعال رنگی تا ۶۴KB رنگ را پشتیبانی می کند.

کنترلر AC97

کنترلر AC97 تجدیدنظر شده ۲٫۰ CODECs می باشد. این CODECs در سرعت نمونه ۴۸ KHz اجرا می شوند. این کنترلر کانالهای ۱۶ بیتی مستقل را برای Stereo PCM In، Stereo PCM Out، Modem In، Modem Out و Mono microphone In مهیا می کند. هر کانال شامل یک FIFO می شود که دسترسی DMA را به حافظه پشتیبانی می کند.

کنترلر Inter-IC Sound
کنترلر I2S یک لینک سریال به I2S CODECs استاندارد برای صدای استریو دیجیتال ایجاد می کند. این کنترلر ۴ سیگنال برای اتصال به یک I2S CODEC دارد. این سیگنالها توسط پین های کنترلر AC97 مالتی پلکس مسپی شوند. این کنترلر شامل FIFOs که دسترسی DMA به حافظه را ممکن می سازد، می شود.

کنترلر کارت مالتی مدیا ( MMC )
کنترلر MMC یک واسط سریال استاندارد به کارت حافظه را ایجاد می کند. این کنترلر تا دو کارت در MMC یا مدهای SPI با انتقال دیتای سریال تا ۲۰ Mbps را پشتیبانی می کند. کنترلر MMC نیز FIFOs را که دسترسی DMA به حافظه و از حافظه را شامل می شود، پشتیبانی می کند.

پورت ارتباطی Fast Infrared (FIR)
پورت ارتباطی FIR بر پایه داده های ۴Mbps می باشد. پورت ارتباطی FIR ، پینهای STUART’s ارسال و دریافت به دستگاههای خارجی را استفاده می کند.

SSPC
پورت SSPC یک واسط همزمان ساز سریال full-duplex را مهیا می کند که در bit rate بین ۷٫۲KHz و ۱٫۸۴KHz اجرا می شود. کنترلر SSPC نیز FIFOs را که دسترسی DMA به حافظه و از حافظه را شامل می شود، پشتیبانی می کند.
I2C
بخش واسط باس I2C توسط ۲ پین، پورت سریال ارتباطی همه منظوره را ایجاد می کند. این واسط یک پین را برای داده و آدرس و پین دیگر را برای کلاک استفاده می کند.

GPIO

هر پین GPIO می تواند هم به عنوان ورودی و هم به عنوان خروجی برنامه ریزی شود. ورودیها می توانند بر روی لبه های بالا رونده یا پائین رونده، تولید وقفه کنند. پینهای اولیه GPIO تا زمانیکه پینهای ثانوی GPIO توابع را جانشین کنند تا در حافظه نگاشت شوند، بصورت اشتراکی استفاده نمی شوند.

UARTs

هر UART می توانند به عنوان یک فرستنده/گیرنده SIR بر مبنای SIR بکار رود.

FFUART
Baud rate در FFUART تا ۳۲۰ Kbps برنامه ریزی شده است. FFUART مجموعه کاملی از پینهای کنترلی مودم را مهیا می کند: nCTS,nRTS,nDSR,nDTR,nRI و nDCD . FIFOs را که دسترسی DMA به حافظه و از حافظه را شامل می شود، را نیز پشتیبانی می کند.

Bluetooth UART(BTUART)
Baud rate تا ۹۲۱ Kbps قابل برنامه ریزی است. BTUART یکسری از پینهای کنترلی را مهیا می کند: nCTS و nRTS . FIFOs را که دسترسی DMA به حافظه و از حافظه را شامل می شود، را نیز پشتیبانی می کند.

Standard UART (STUART)
Baud rate تا ۲۳۰ Kbps قابل برنامه ریزی است. STUART هیچ پین کنترلی را تولید نمی کند. FIFOs را که دسترسی DMA به حافظه و از حافظه را شامل می شود، را نیز پشتیبانی می کند.
پینهای ارسال و دریافت در STUART با پورت ارتباطی Fast Infrared ، مالتی پلکس شده اند.

OS timer
OS timer برای تولید یک کانتر ۳٫۶۸ MHz با ۴ رجیستر بکار می رود.

Interrupt Control
کنترلر Interrupt وقفه های ارسالی از پروسسور به IRQ و FIQ را کنترل می کند. رجیستر پنهانی سورس وقفه را فعال یا غیر فعال می کند.

Block Diagram

نوع بسته
PXA250 یک پروسسور در سایز ۱۷×۱۷ mm PBGAاست وPXA210 پروسسوری

در سایز ۱۳×۱۳ mm T-PBGA است که فقط دیتا باس ۱۶ بیتی را پشتیبانی می کند.
Coprocessor 7 Register 4- PSFS Bit
بیت پنجم از این رجیستر به عنوان بیت وضعیت منبع توان یا بیت PSFS شناخته شده است. این بیت هنگامی ست می شود که پینهای nVDD_FAULT یا nBATT_FAULT اعلان شوند و بیت Data Abort Enable (IDAE) در کنترل رجیستر مدیریت توان ست شود.

 

Coprocessor 14 Registers 0-3 performance Monitoring
این پروسسور ویژگی مانیتورینگ را پوشش می دهد.
Coprocessor 14 Registers 6-7 clock and power
این رجیسترها اجازه استفاده نرم افزار از مد های مدیریت توان و کلاک را می دهد.

Coprocessor 15 Registers 0-ID Register Definition
این رجیستر توسط نرم افزار برای نوع و یا تجدید نظر در سیستم بکار می رود. محتویات این رجیستر برای پروسسورهای PXA250 & PXA210 در جدول زیر نمایش داده شده است.

Coprocessor 15 Register 1-P-Bit
بیت ۱ از این رجیستر به عنوان بیت خصوصیات Page Table Memory یا P-Bit شناخته شده است. در حالت پیش فرض با صفر مقداردهی شده است. همچنین P-Bit در MMU نیز با صفر مقداردهی شده است.
I/O Ordering
پروسسور کاربردی، صفی را استفاده می کند که درخواستهای حافظه که از سه قسمت داخلی: هسته، DMA Controller و LCD Controller ارسال می شوند را می پذیرد.
امکان دارد که عملگرهای ارسال شده از یک قسمت توسط عملگرهای فرستاده شده از قسمت دیگر، دچار وقفه شود. این پروسسور یک روتین تعریف شده برای منظم سازی

ترتیب دستورات ارسال شده از قسمتهای مختلف ندارد.
Load و Store هائی که به آدرسهای داخلی مربوط می شوند، سریعتر از دستوراتی که به آدرسهای خارجی مربوط می شوند، تکمیل می شوند.
در ترتیب دستورات store زیر دقت کنید. Store در آدرس r4 قبل از اینکه دستور Store در آدرس r2 کامل شود، تکمیل می شود زیرا دستور Store در آدرس r2 منتظر حافظه است درصورتیکه دستور Store دیگر نیازی به تاخیر ندارد.
str r1, [r2] ; store to external memory address [r2].

str r3, [r4] ; store to internal (on-chip) memory address [r4].
اگر هردو Store عملگرهای کنترلی بودند که باید به ترتیب اجرا می شدند، ترتیب پیشنهادی این است که یک دستور Load را در یک صفحه حافظه که بافر و کش نشده، قرار داده:
str r1, [r2] ; first store issued
ldr r5, [r6] ; load from external unbuffered, uncached address ([r2] if possible)
mov r5, r5 ; nop stalls until r5 is loaded

str r3, [r4] ; second store completes in program order

Semaphores
دستورات Swap (SWP) و Swap Byte (SWPB) برای دستکاری سمافور بکار می روند. نمی توانیم توسط یک پروسه به مکانی از حافظه بین Load و Store از یک دستور SWP یا SWPB در یک مکان مشترک دست یابیم.
امکان دارد یک سمافور به علت یک دستور خارجی که از MBREQ/MBGNT استفاده کرده است، دچار وقفه شود.
Interrupts
تمام وقفه های on-chip فعال، mask و وابسته به FIQ یا IRQ هستند.
هر وقفه توسط یک بیت وقفه فعال یا غیر فعال می شود. تمام بیتهای وقفه در در قسمت Interrupt Controller ، با هم و بصورت واحد به یک مقدار واحد ست می شوند.
هر وقفه، به رجیستر Interrupt Controller Mask رفته و سپس به سمت IRQ یا FIQ بسته به سطح وقفه راهنمائی می شود. وقتی یک وقفه رخ می دهد، ابتدا نرم افزار باید منبع ایجاد وقفه را تائید کند و پس از شناسائی منبع وقفه باید به وقفه سرویس دهد و وقفه را از منبع وقفه حذف کند تا دوباره همان وقفه تکرار نشود.
پاک کردن وقفه ممکن است که ایجاد وقفه کند. برای اینکه بیت وضعیت قبل از برگشت از یک سرویس روتین وقفه، بتواند پاک شود، باید وقفه را زودتر در روتین پاک کرد.

 

RESET
این پروسسور می تواند با سه روش reset شود: Hardware, Watchdog, GPIO .
در روش Hardware Reset ، پین nRESET مقدلردهی می شود و تمام بخشها را وادار به reset می کند.
در روش Watchdog Reset ، reset نتیجه رخداد یک time out در OS timer است. این نوع reset ، بصورت پیش فرض غیرفعال است و باید توسط برنامه نویسی و نرم افزار فعال شود.
GPIO Reset یک reset نرم افزاری است. این روش کمتر از دو روش دیگر که ذکر شد به سیستم آسیب می رساند.
هر نوعی از reset ها روی وضعیت پین ها تاثیر می گذارد. وقتی در وضعیت S

leep Mode هستیم، موجب Sleep Mode Reset می شود و این تنها نوع reset است که روی وضعیت پین ها تاثیر نمی گذارد.
RCSR ( Reset Controller Status Register ) ، اطلاعات مربوط به نوع reset را شامل می شود که Sleep Mode Reset را نیز شامل می شود.

در جدول صفحه بعد، تاثیر انواع مختلف از reset را بر روی وضعیت رجیسترهای داخلی می توانیم ببینیم.

Internal Registers
تمام رجیسترهای داخلی در فضای فیزیکی حافظه در یک محدوده آدرس ۳۲ بیتی نگاشت می شود. برای دسترسی به رجیسترهای داخلی باید از load و store بصورت word استفاده کرد. فضای رجیستر داخلی باید بصورت non-cacheable نگاشت شود.
دسترسی بصورت Byte و halfword به رجیستر داخلی امکانپذیر نیست و در صورت استفاده منجر به نتایج غیر قابل پیش بینی می شود.
فضای رجیستری، در صورتیکه رجیستر نگاشت نشده است، بصورت یک فضای رزرو شده در نظر گرفته می شود. خواندن یا نوشتن در فضای رزرو شده، منجر به نتایج غیر قابل پیش بینی می شود.