گروه فنی مهندسی آرکام

پروژه های دانشجویی ، آموزش ، مشاوره ، فروش آثار

گروه فنی مهندسی آرکام

پروژه های دانشجویی ، آموزش ، مشاوره ، فروش آثار

گروه فنی مهندسی آرکام

گرداننده و نگارنده : محمد نوری

البرز ، کرج ، گلشهر

09125623558
Nouri.Iut@Gmail.Com

جهت حمایت از این وبلاگ، ما را به یک فنجان چای داغ مهمان کنید.
6273-8111-1003-9762

دنبال کنندگان ۳ نفر
این وبلاگ را دنبال کنید

تبلیغات

آخرین نظرات

پیوندها

این گزارش ابتدا مروری بر DSPهای خانواده‏ی TMS خواهد داشت و سپس به معرفی DSP سری TMS320F2812  می­پردازد.

در جهانی که به سوی دیجیتالی شدن پیش می‏رود DSPها بسان تولدی نو در این حرکت می باشند. اگر چه بیشتر اصول ابتدایی DSPها در دهه‏های 50 و 60 میلادی حاصل آمدند، ولی قبل از دهه‏ی 80 میلادی، این تراشه­ها فقط در صنایع هوافضا و تجهیزات نظامی کاربرد داشتند. این امر به علت گرانی و حجیم بودن محاسبات داده و غیر قابل اعتماد بودن آنها بود؛ تا اینکه در سال 1982 شرکت TI(Texas Instruments) اولین DSP در خانواده‏ی TMS320 با ممیز ثابت  را با نام TMS32010 معرفی کرد که در این سال مجله‏ی Electronic Products  لقب تولید سال را به این تراشه هدیه کرد.

امروزه با وجود اینکه در بسیاری از موارد انواع دیگر پردازنده ها سرعتی برابر و حتی بیشتر از پردازنده های DSP  دارند، در اغلب موارد ترجیح داده می­شود که از این پردازنده ها استفاده شود. علت این امر راندمان بالا, توان مصرفی کم, قیمت مناسب و ابزارهای توسعه پیشرفته این پردازنده ها می­باشد.

امروزه خانواده‏ی TMS320 شامل نسل­های بسیاری می­باشد که امکان انتخاب گسترده­ای را فراهم می آورد به گونه‏ای که مطابق هر نیاز یک پروسسور با کاربرد خاص در اختیار کاربر قرار می گیرد. DSPهای امروزی به دو گروه ممیز ثابت و ممیز شناور تقسیم بندی می‏شوند که DSPهای ممیز ثابت سریعتر و ارزان­تر هستند ولی از نظر دقت در برنامه­نویسی مشکل­تر می باشد و باید دقت­های لازم از جهتِ سرریز شدن و مقیاس کردن به عمل آورد، که این عمل را معمولاً با شیفت مناسب به سمت راست کنترل می‏کنند. DSPهای ممیز شناور به علت نرمالیزه شدن اتوماتیک مانتیس، بریدن وگرد کردن اعداد، خطای کلی کمتری خواهند داشت. DSPهای TI شامل خانواده‏های C4x و C3x (ممیز شناور) C1x ، C2x، C2xx، C5x و C54x (ممیز ثابت) و سرهای C8x (چند پردازنده‏ای) می باشد. نسل جدید DSPهای این شرکت شامل سری­های “TMS320C6x” با کارایی و قابلیت­های بسیاری می باشند.

در ذیل به بررسی مختصر هر نسل می‏پردازیم.

TMS320C6000:

این گروه از نظر سرعت و عملکرد، با کارایی بالا و نیز به منظور سهولت در استفاده از برنامه­نویسی زبان­های سطح بالا بهینه‏سازی شده است. این گروه به نسل­های ممیز ثابت C62x و C64x و ممیز شناور C67x تقسیم می‏شوند.

TMS320C5000:

این گروه برای تجارت دیجیتالی و کاربردهایی که مشکل باطری دارند بهینه‏سازی شده است.  به عنوان مثال TMS320C55x و TMS320C54x برای محصولات قابل حمل و شخصی مثل پخش­صوت دیجیتالی، گیرنده‏های GPS، تجهیزات پزشکی قابل حمل، موبایل­ها و دوربین­های دیجیتالی کاربرد دارند. هر دو DSP این گروه ممیز ثابت می‏باشند.

TMS320C2000:

تراشه­های این گروه از دو سری C24x و C28x تشکیل شده است که برای صنعت کنترل دیجیتالی بالاترین سطح تجمع روی یک تراشه و قابلیت­های محاسباتی قدرتمند را فراهم می‏آورند. نسل TMS320C24x قدرت و کنترل مفیدی را ارائه می دهد که طراح را قادر می‏سازد، سیستم­های کنترل پیشرفته با قیمت مناسب و کارایی بالا را پیاده­سازی کند.

معرفی تراشه­ی TMS320F2812

این تراشه­ها، کنترل کننده­های دیجیتالی قابل برنامه­ریزی، با واحد پردازش مرکزی (CPU) از خانواده C28x DSP به عنوان هسته­ی (Core) پردازنده می­باشند. F2812، یک واحد پردازش مرکزی قوی را با ابزارهای جانبی (Peripherals) و حافظه روی تراشه (On-Chip Memory) ترکیب کرده است و به صورت یک تراشه سیلیکونی یک پارچه می باشد. با استفاده از هسته DSP و ابزارهای جانبی کنترلی روی تراشه، طراحان توانایی طراحی کم حجم و مقرون به صرفه سیستم­های کنترلی را خواهند داشت.

کنترل­کننده­های F2812 توانایی عملکرد با سرعت 150 میلیون دستور در ثانیه (MIPS) را دارند. سرعت بالای پردازش در C28x CPU، این امکان را برای کاربران فراهم می آورد که به جای بدست آوردن تقریبی پارامترها از جدول های ذخیره شده درون حافظه، آنها را به صورت بلادرنگ (Real Time) محاسبه نمایند. این عملکرد سریع در پردازش پارامترهای کنترلی، برای کاربردهایی از قبیل فیلترها یا الگوریتم­های کنترلی که باید حجم بالایی از محاسبات با سرعت انجام شود، بسیار مناسب است.

کنترل­کننده­های F2812 دارای ابزارهای جابنی کنترلی متعددی روی برد می­باشد. با استفاده از ابزارهای جابنی F2812، هر نیاز کنترلی دیجیتال را می­توان به صورت مجازی برطرف کرد. گسترده کاربرد این ابزارهای جابنی از تبدیل آنالوگ به دیجیتال تا تولید مدولاسیون عرض پالس (PWM) می­باشد. ابزارهای جابنی ارتباطی، ارتباط با ابزارهای خارجی، کامپیوترهای شخصی و سایر پردازنده­های DSP را ممکن می­سازد. معرفی مختصری از ابزارهای جابنی متعدد در F2812 در زیر آورده شده است.

·         دو مدیر رویداد (Event Managers) EVA و EVB: مدیر رویداد یکی از پرکاربردترین ابزارهای جانبی در کنترل دیجیتالی موتورها می باشد. هر مدیر رویداد از بلوک های عملکردی که شامل تایمرها، مقایسه­گرها و واحدهای کپچر (Capture Units) برای تریگر کردن یک رویداد، مدارات منطقی PWM، مدارات پالس انکدر متعامد (Quadrature-Encoder Pulse (QEP) Circuit) و منطق وقفه تشکیل شده است.

·         تایمرهای همه منظوره (General-Purpose (GP) Timers): یک تایمر همه منظوره (GP) یک شمارنده ساده 16 بیتی است که ممکن است به صورت بالا شمار (Up Counter)، پایین­شمار (Down Counter) یا پیوسته بالا و پایین­شمار (Continuously Up and Down Counter) پیکربندی شود. در هر EV دو تایمر GP وجود دارد: تایمر 1 و 2 مربوط به EVA و تایمر 3 و4 مربوط به EVB.

·         مبدل آنالوگ به دیجیتال (ADC): از ADC روی F2812 به منظور نمونه­برداری از یک سیگنال آنالوگ خارجی و تبدیل آن به اعداد دیجیتال استقاده می شود. از نمونه کاربردهای ADC می­توان به نمونه­برداری سیگنال کنترل برای استفاده در یک الگوریتم فیلتر و یا کنترل یک موتور اشاره کرد.

·         واسط پیشرفته کنترل­کننده شبکه محلی (Enhanced Controller Area Network (eCAN) Interface): ماژول eCAN برای ارتباط سریال چند اربابه (Multi-master) بین سخت افزاری خارجی مورد استفاده قرار می­گیرد. گذرگاه eCAN دارای سطح امنیت داده بالایی می­باشد و برای عملکرد در محیط­های نویزی از قبیل یک اتومبیل یا محیط­های صنعتی که نیاز به ارتباط قابل اطمینان و امنی دارند، مناسب است.

·         واسط جانبی سریال (Serial Peripheral Interface (SPI)): درگاه SPI، یک درگاه ارتباط همزمان (Synchronous Serial I/O Port) می­باشد که به صورت گستره برای ارتباط بین DSP و ابزارهای خارجی و یا یک DSP دیگر استفاده می­شود. استفاده مرسوم SPI شامل ارتباط با ثبات­های جابجایی (Shift Registers) خارجی، راه­اندازهای نمایشگر (Display Drivers) و مبدل­های آنالوگ به دیجیتال می باشد.

·         واسط ارتباطی سریال (Serial Communications Interface (SCI)): درگاه SCI، یک درگاه سریال غیرهمزمان (Asynchronous Serial Port) است که ارتباط دیجیتال سریال غیرهمزان (UART) بین CPU و سایر ابزارهای غیرهمزمان را که از قالب استاندارد NRZ (Non-Return-To-Zero) استفاده می کنند، برعهده دارد.

·         پایه­های دو طرفه دیجیتال ورودی/خروجی همه منظوره (General Purpose I/O (GPIO) Pins): به دلیل محدود بودن پایه­های F2812، بسیاری از پایه­ها وظیفه اولیه و وظیفه ثانویه GPIO را مالتی­پلکس (Multiplex) می­کنند. در اکثر موارد وظیفه دوم پایه­ها، ورودی/خروجی همه منظوره می­باشد.

·         تایمر نگهبان (Watchdog Timer): ابزار جانبی تایمر نگهبان، عملکرد صحیح نرم­افزار و سخت افزار را بررسی می­کند و زمانی که شمارنده داخلی آن سرریز (Overflow) شود، سیستم را دوباره راه­اندازی (Reset) می کند. تایمر WD در صورتی که فعال شده باشد، برای یک مدت زمان خاص عمل شمارش را انجام می دهد. برای اینکه دوباره راه­اندازی ناخواسته اتفاق نیفتد، لازم است که کاربران تایمر WD را به صورت متناوب دوباره راه­اندازی کنند. اگر بنا به دلایلی CPU مشکل پیدا کند، تایمر نگهبان سیستم را دوباره راه­اندازی می کند.

·         درگاه گروه عمل تست اتصال (JTAG): درگاه JTAG روشی استاندارد برای اتصال کامپیوترهای شخصی با کنترل­کننده­های DSP و انتقال برنامه، فراهم می­آورد. امولاتور (Emulator) مناسبی مانند XDS510PP، اتصال بین ماژول JTAG روی F2812 و کامپیوتر شخصی را ممکن می­سازد. ماژول JTAG این امکان را برای کامپیوتر فراهم می سازد که در حین اجرای Code Composer Studio، روی پردازنده DSP کنترل کامل داشته باشد.

هسته C28x DSP قلب کنترل­کننده F2812 است. این هسته یک پردازنده ممیز ثابت (Fixed-Point) 32 بیتی است. یعنی با اعداد دودویی 32 بیتی کار می­کند. C28x را می­توان مانند پردازنده مرکزی در یک کامپیوتر شخصی تصور کرد. هسته C28x مجموعه دستورات خاص خود را به صورت رهنمودها (Mnemonic) و دستورات اسمبلی دارد. با استفاده از CCS و کامپایلر (Compiler) مربوطه، کاربران می­توانند کد را به هر یک از زبان­های C یا اسمبلی بنویسند. اما برای نوشتن برنامه­های بهینه با اجرای سریع، بهتر است کد به زبان اسمبلی نوشته شود.

هسته DSP همانند بسیاری از پردازنده­ها، شامل چندین زیربخش است، که برای انجام عملیات ریاضی روی اعداد دودویی 32 بیتی لازم هستند. در زیر لیستی از زیربخش­های مختلفی که در هسته C28x یافت می­شود، آورده شده است:

·         یک واحد 32 بیتی منطق ریاضی (ALU): C28x عملیات ریاضی مکمل دو را با استفاده از واحد 32 بیتی منطق ریاضی انجام می­دهد. ALU از کلمه­های 32 بیتی استفاده می­کند. علاوه بر عملیات ریاضی، ALU می­تواند عملیات جبر بولی را نیز انجام دهد.

·         یک انباره (Accumulator) 32 بیتی: انباره، خروجی ALU را ذخیره می­کند و به عنوان یکی از ورودی­های ALU نیز می­باشد (تعداد زیادی از دستورالعمل­های ریاضی، عملیات را روی اعداد ذخیره شده درون انباره و اعداد ذخیره شده در مکان­های دیگر حافظه انجام می دهند). طول انباره 32 بیت است و به دو بخش که هر کدام شامل 16 بیت است، تقسیم می­شود. برخی از دستورات زبان اسمبلی امکان ذخیره کلمه­های بالا و پایین انباره در حافظه داده را فراهم می­آورند.

·         شیفت­دهنده­ (Barrel Shifter): این شیفت­دهنده­ امکان تغییر مقیاس، استخراج بیت مورد نظر، عملیات ریاضی گسترده و جلوگیری از سرریز را فراهم می­سازد. این شیفت دهنده­، دستورالعمل­های ممکن را جهت شیفت داده تا حدود 16 بیت به راست و چپ فراهم می­کند.

·         یک ضرب­کننده: ضرب­کننده، ضرب مکمل دوی 32 بیتی را انجام می­دهد و نتیجه 64 بیتی تولید می­کند. در ارتباط با ضرب­کننده، C28x از یک ثبات مضروب 32 بیتی (XT) و یک ثبات حاصل­ضرب 32 بیتی (P) و ثبات انباره (ACC) استفاده می­کند. همیشه لازم است XT با یکی از اعدادی که باید ضرب شود، بارگذاری گردد. خروجی ضرب در ثبات P یا ACC ذخیره می­گردد.

·         هشت ثبات کمکی (Auxiliary Registers) AR0 تا AR7 و یک واحد ریاضی ثبات کمکی (Address Register Arithmetic Unit (ARAU)): هنگامی که یک دستورالعمل برای دسترسی به حافظه داده از مُد آدرس­دهی غیر مستقیم (Indirect Addressing) استفاده می­کند، ARAU آدرس حافظه داده را تولید می نماید. هشت ثبات کمکی(AR0 تا AR7) از ARAU پشتیبانی می­کنند و هر یک از آنها می توانند با مقدار 32 بیتی از حافظه داده یا مستقیماً توسط یک دستورالعمل بارگذاری شوند. مقدار هر ثبات کمکی نیز می­تواند در حافظه داده ذخیره شود. ثبات­های کمکی اصولاً به صورت اشاره­گر (Pointer) به مکان­های حافظه، جهت امکان ساده­سازی هر چه بیشتر الگوریتم­های حلقه و تکرار، مورد استفاده قرار می­گیرند.

جهت نگهداری برنامه­ها، انجام عملیات و اجرای دستورالعمل­های برنامه­نویسی نیاز به حافظه می­باشد. فضای حافظه (Memory Space) روی F2812 به فضای برنامه و داده تقسیم شده است. چندین نوع مختلف از حافظه روی F2812 وجود دارد که می­توان به عنوان فضای برنامه یا داده مورد استفاده قرار گیرد. این حافظه­ها شامل: حافظه فلش (Flash Memory)، حافظه با قابلیت دسترسی تصادفی یکبار در هر سیکل (Single Access RAM (SARAM)SARAM توسعه یافته و Boot ROM می­باشد. Boot ROM، قسمتی از حافظه است که توسط شرکت سازنده DSP، برنامه­نویسی می­شود و امکان تغییر دادن آن توسط کاربران وجود ندارد؛ این حافظه شامل روتین­های راه اندازی و جداول مهم مورد استفاده در الگوریتم­ها و توابع ریاضی می­باشد. F2812 به حافظه داخل و خارج تراشه دسترسی دارد. F2812 از خطوط آدرس­دهی 32 بیتی داده و 22 بیتی برنامه استفاده می کند. بنابراین می تواند تا 4G کلمه (1 کلمه = 16 بیت) فضای داده و تا 4M کلمه فضای برنامه را آدرس­دهی کند. بلوک حافظه (Memory Block) به بیان ساده یک محدوده مشخص از آدرس­های حافظه است. بلوک های حافظه به طور یکنواخت در فضای داده و برنامه نگاشته شده اند. پنج بلوک اصلی حافظه (M0، M1، L0، L1 و H0) روی تراشه F2812 وجود دارند که می توانند به عنوان حافظه داده و برنامه مورد استفاده قرار گیرند. حافظه فلش برخلاف حافظه RAM، زمانی که تراشه از منبع قطع می­شود، محتویاتش را از دست نمی دهد. بنابراین از حافظه فلش تنها به منظور ذخیره برنامه­ ای که باید اجرا شود، استفاده می شود.

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی