بخشی از مقاله
میکروپروسسورهای Intel PXA250 & PXA210
میکروپروسسورهای& PXA210 Intel PXA250
مقدمه-
در این تحقیق به میکروپروسسورهای PXA250 & PXA210 پرداخته می شود. این میکروپروسسورها میزان سرعت پردازش در برنامه های پردازشی قابل حمل، مانند pc pocket ها را افزایش می دهند. هرکدام از این پروسسورها در اصل یک سیستم مجتمع با قابلیت پردازش بالاست که روی یک تراشه قرار دارد و شامل یک Intel XScale Core می باشد که دارای توان پائین می باشد همراه با تعدادی از سیستمهای جانبی مختلف.
PXA250 یک پردازشگر 17x17mm با 256 پایه می باشد. این بسته PBGA برای سیستمهای با کارآئی بالا قابل استفاده است. این پکیج دارای گذرگاه داده 32 بیتی می باشد و همچنین دارای مجموعه کاملی از سیستمهای جانبی است.
ویژگیهای Intel® XScale™ Core
ARM™ نسخه 5TE ISA
ــ پشتیبانی دستورالعملهای ARM
ــ دستورالعملهای پیشرفته ARM DSP
توان مصرفی پائین و در عین حال کارآئی بالا
تکنولوژی پردازش محیط اینتل
ــ ضرب 16 بیتی پیشرفته
ــ انباره 40 بیتی
حافظه دستورالعمل 32 KByte
حافظه داده 32 KByte
حافظه کوچک داده 2 KByte
حاقظه کوچک دستورالعمل 2 KByte
واحدهای مدیریت داده و دستورالعمل
بافر انشعاب مورد نظر
گنجایش اشکال زدائی از طریق پورت JTAG
کنترل کننده حافظه
کنترل کننده های ساعت و توان
گذرگاه سرویس گیرنده سریال
کنترل کننده DMA
کنترل کننده LCD
AC97
I2C
کارت Multimedia
ارتباط FIR ( Fast Infrared Port )
پروتکل پورت سریال همزمانی
I2S
پینهای همه منظوره I/O
UARTs
ساعت واقعی
تایمرهای OS
مدولاسیون پهنای پالس
کنترل کننده وقفه
کنترل کننده حافظه
کنترل کننده حافظه، سیگنالهای کنتر
لی قابل برنامه ریزی و زمانبندی را برای مجموعه ای از انواع تراشه های حافظه و سازماندهی حافظه تامین می کند. این کنترلر تا 4 قسمت SDRAM ، 6 تا انتخاب تراشه استاتیک برای SRAM ، SSRAM ، Flash ، ROM ، SROM و تراشه های جانبی و همچنین 2 تا PCMCIA یا اسلاتهای فشرده flash را پشتیبانی می کند.
پروسسورهای PXA250 ، PCMCIA ، Flash فشرده یا I/O های مختلف را پشتیبانی نمی کنند.
کنترل کننده های ساعت و توان
این پروسسورها توسط کلاک راه اندازی می شوند که این ساعتها توسط کریستالهای 3.6864 MHz و یک کریستال انتخابی 32.768 MHz ایجاد می شوند.
کریستال 3.6864 MHz یک فاز Locked Loop (PLL) و ی
ک PLL جانبی را راه اندازی می کند. PLLs فرکانسهای ساعت مورد نیاز را برای راه اندازی بلاکهای عملگر را تولید می کند.
کریستال 32.768 MHz یک کلاک انتخابی را ایجاد می کند که باید پس از یک reset سخت افزاری انتخاب شود. این کلاک ساعت واقعی ، کنترلر مدیریت توان و کنترلر وقفه را راه اندازی می کند. کریستال 32.768 MHz بر روی یک ثسمت جدا برای ایجاد ساع
ت فعال قرار دارد و در این کار را هنگامیکه پروسسور در وضعیت خواب قرار دارد، انجام می دهد.
مدیریت توان تغییر حالت بین وضعیت های Turbo/Run ، Idle و Sleep را انجام می دهد.
سرویس دهنده Universal Serial Bus ( USB )
سرویس دهنده USB بر پایه خصوصیات تجدید نظر شده USB بنا شده است که تا 16 نقطه پایانی را پشتیبانی می کند و کلاک 48 MHz داخلی را مهیا می کند. کنترلر USB همچنین FIFOs را با دسترسی DMA به یا از حافظه را ایجاد می کند.
کنترلر (DMAC) DMA
DMAC این قابلیت را دارد که 16 تا کانال الویت بندی شده را برای سرویس دادن به انتقال درخواستها از دستگاههای جاتبی داخلی و تا سقف دو درخواست انتقال داده از تراشه های خارجی، مهیا کند. DMAC امکان تغییر command و ایجاد حلقه را نیز دارد.
DMAC هنگامیکه انتقال حافظه به حافظه، حافظه به سیستم جانبی و سیستم جانبی به حافظه صورت می گیرد، در مد flow-through اجرا می شود. DMAC با سیستمهای جانبی سازگار است که سایز داده در آنها word, half word یا byte باشد.
کنترلر LCD
کنترلر LCD هر دو حالت منفعل و فعال نمایشگر مسطح را پشتیبانی می کند و ماکزیمم رزولوشن 800x600x16 bit/ pixel را پشتیبانی می کند. یک پالت ورودی 256 ، پیکسلهای رمزگشوده شده 1، 2و 8 بیتی را گسترش می دهد. پیکسلهای 16 بیتی رمزگ
شائی نشده، پالت را پشت سر می گذارند.
دو کانال DMA این امکان را به کنترلر LCD می دهد که پنل نمایشگر single و dual را پشتیبانی کند. مد تک رنگ منفعل تا 256 سطح سیاه و سفید را پشتیبانی می کند و مد منفعل رنگی تا 64KB رنگ را پشتیبانی می کند. مد فعال رنگی تا 64KB رنگ را پشتیبانی می کند.
کنترلر AC97
کنترلر AC97 تجدیدنظر شده 2.0 CODECs می باشد. این CODECs در سرعت نمونه 48 KHz اجرا می شوند. این کنترلر کانالهای 16 بیتی مستقل را برای Stereo PCM In، Stereo PCM Out، Modem In، Modem Out و Mono microphone In مهیا می کند. هر کانال شامل یک FIFO می شود که دسترسی DMA را به حافظه پشتیبانی می کند.
کنترلر Inter-IC Sound
کنترلر I2S یک لینک سریال به I2S CODECs استاندارد برای صدای استریو دیجیتال ایجاد می کند. این کنترلر 4 سیگنال برای اتصال به یک I2S CODEC دارد. این سیگنالها توسط پین های کنترلر AC97 مالتی پلکس مسپی شوند. این کنترلر شامل FIFOs که دسترسی DMA به حافظه را ممکن می سازد، می شود.
کنترلر کارت مالتی مدیا ( MMC )
کنترلر MMC یک واسط سریال استاندارد به کارت حافظه را ایجاد می کند. این کنترلر تا دو کارت در MMC یا مدهای SPI با انتقال دیتای سریال تا 20 Mbps را پشتیبانی می کند. کنترلر MMC نیز FIFOs را که دسترسی DMA به حافظه و از حافظه را شامل می شود، پشتیبانی می کند.
پورت ارتباطی Fast Infrared (FIR)
پورت ارتباطی FIR بر پایه داده های 4Mbps می باشد. پورت ارتباطی FIR ، پینهای STUART’s ارسال و دریافت به دستگاههای خارجی را استفاده می کند.
SSPC
پورت SSPC یک واسط همزمان ساز سریال full-duplex را مهیا می کند که در bit rate بین 7.2KHz و 1.84KHz اجرا می شود. کنترلر SSPC نیز FIFOs را که دسترسی DMA به حافظه و از حافظه را شامل می شود، پشتیبانی می کند.
I2C
بخش واسط باس I2C توسط 2 پین، پورت سریال ارتباطی همه منظوره را ایجاد می کند. این واسط یک پین را برای داده و آدرس و پین دیگر را برای کلاک استفاده می کند.
GPIO
هر پین GPIO می تواند هم به عنوان ورودی و هم به عنوان خروجی برنامه ریزی شود. ورودیها می توانند بر روی لبه های بالا رونده یا پائین رونده، تولید وقفه کنند. پینهای اولیه GPIO تا زمانیکه پینهای ثانوی GPIO توابع را جانشین کنند تا در حافظه نگاشت شوند، بصورت اشتراکی استفاده نمی شوند.
UARTs
هر UART می توانند به عنوان یک فرستنده/گیرنده SIR بر مبنای SIR بکار رود.
FFUART
Baud rate در FFUART تا 320 Kbps برنامه ریزی شده است. FFUART مجموعه کاملی از پینهای کنترلی مودم را مهیا می کند: nCTS,nRTS,nDSR,nDTR,nRI و nDCD . FIFOs را که دسترسی DMA به حافظه و از حافظه را شامل می شود، را نیز پشتیبانی می کند.
Bluetooth UART(BTUART)
Baud rate تا 921 Kbps قابل برنامه ریزی است. BTUART یکسری از پینهای کنترلی را مهیا می کند: nCTS و nRTS . FIFOs را که دسترسی DMA به حافظه و از حافظه را شامل می شود، را نیز پشتیبانی می کند.
Standard UART (STUART)
Baud rate تا 230 Kbps قابل برنامه ریزی است. STUART هیچ پین کنترلی را تولید نمی کند. FIFOs را که دسترسی DMA به حافظه و از حافظه را شامل می شود، را نیز پشتیبانی می کند.
پینهای ارسال و دریافت در STUART با پورت ارتباطی Fast Infrared ، مالتی پلکس شده اند.
OS timer
OS timer برای تولید یک کانتر 3.68 MHz با 4 رجیستر بکار می رود.
Interrupt Control
کنترلر Interrupt وقفه های ارسالی از پروسسور به IRQ و FIQ را کنترل می کند. رجیستر پنهانی سورس وقفه را فعال یا غیر فعال می کند.
Block Diagram
نوع بسته
PXA250 یک پروسسور در سایز 17x17 mm PBGAاست وPXA210 پروسسوری
در سایز 13x13 mm T-PBGA است که فقط دیتا باس 16 بیتی را پشتیبانی می کند.
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
بیت 1 از این رجیستر به عنوان بیت خصوصیات 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
تمام رجیسترهای داخلی در فضای فیزیکی حافظه در یک محدوده آدرس 32 بیتی نگاشت می شود. برای دسترسی به رجیسترهای داخلی باید از load و store بصورت word استفاده کرد. فضای رجیستر داخلی باید بصورت non-cacheable نگاشت شود.
دسترسی بصورت Byte و halfword به رجیستر داخلی امکانپذیر نیست و در صورت استفاده منجر به نتایج غیر قابل پیش بینی می شود.
فضای رجیستری، در صورتیکه رجیستر نگاشت نشده است، بصورت یک فضای رزرو شده در نظر گرفته می شود. خواندن یا نوشتن در فضای رزرو شده، منجر به نتایج غیر قابل پیش بینی می شود.