آشنایی با پردازنده DSP

این مورد را ارزیابی کنید
(0 رای‌ها)

 

مقدمه

سیگنال­ها به سه دسته­ ی سیگنال­های زمان پیوسته (آنالوگ)، سیگنال­های زمان گسسته و سیگنال‎های دیجیتال تقسیم می‎شوند. سیگنال­هایی که روزانه با آن ها روبرو می‎شویم، سیگنال‎های آنالوگ هستند. سيگنال­هاي آنالوگ متغييرهاي پيوسته می­باشند. این سیگنال­ها دارای گستره‎ی تغییرات بی نهایت در دامنه هستند و برای پردازش آن ها می توان از الکترونیک آنالوگ که شامل قطعات مداری اکتیو و پسیو مانند مقاومت، خازن و سلف است، استفاده نمود. هركدام از حواس پنجگانه ما به سیگنال­هاي آنالوگ مختلفي حساس است. براي مثال گوش‎هاي ما به صدا، چشم‎هاي ما به نور و ... حساس هستند. وقتي كه ما يك سيگنال دريافت مي‎كنيم، اندام‎هاي حسي ما آن را به يك سيگنال الكتريكي تبديل كرده و به كامپيوتر آنالوگ ما، يعني مغز مي فرستند. مغز ما يك كامپيوتر بسيار قدرتمند است كه عملكرد آن نسبت به كامپيوتر­هاي ديجيتال بي­همتا است. مغر ما نه تنها اطلاعات رسيده را تحليل مي‎كند بلكه با استفاده از اين داده ها تصميم‎گيري نيز مي‎كند.

سیگنال­های زمان گسسته فقط در یک سری از فاصله­ های زمانی مشخصی تعریف شده هستند. بنابراین آن­ها می­توانند توسط یک رشته از اعداد که دارای مقدارهای پیوسته هستند، بیان شوند.

سیگنال­های دیجیتال دارای مقدارهای گسسته هم در زمان و هم در دامنه هستند. بنابراین آن­ها می‎توانند توسط کامپیوترها و میکروپروسسورها پردازش شوند.

مزیت سیستم های آنالوگ عبارتند از:

    قیمت ارزان و سادگی در بعضی از کاربردها مانند:
        تضعیف کننده­ ها و تقویت کننده­ ها
        فیلترهای ساده
    میزان سیگنال کم
    پهنای باند وسیع (GHz)
    نرخ نمونه برداری موثر بی نهایت
        دقت بی نهایت در فرکانس
        عدم وجود مشکلات مربوط به اختلاط فرکانسی و بازسازی آن
    دقت بی نهایت در دامنه
        نبود نویز کوانتیزاسیون

مزیت پردازش سیگنال های دیجیتال (DSP) عبارتند از:

مصونيت از اختلال بالا

    تکرارپذیری
        حساسیت کم به خطای مولفه ­ها
        حساسیت کم به تغیرات دما
        حساسیت کم به عوامل زمانی
            عملکرد تقریباً یکسان در همه دستگاه­ها
            مدارهای تطبیق یافته با قیمت کمتر
    در بسیاری از کاربردها DSP، عملکرد بهتر و قیمت ارزان تر را فراهم می کند. برای مثال:
        پخش کننده های CD در برابر صفحه های گرامافون

الگوریتم های DSP می توانند توسط زبان های سطح بالا از قبیل C/C++ و   MATLAB به طور کامل، تحلیل و شبیه­ سازی شوند. عملکرد الگوریتم­ها می­توانند توسط یک کامپیوتر شخصی بررسی شوند. بنابراین یک سیستم DSP از نظر طراحی، تکامل، تحلیل، شبیه سازی، آزمایش و نگه داری نسبتاً آسان است.

محدودیت های DSPبه صورت خلاصه عبارتند از:

    پهنای باند یک سیستم DSPبه خاطر نرخ نمونه برداری و وسایل سخت افزاری جانبی محدود است.
    یک سیستم DSPدارای خطای کوانتازیسیون و محاسباتی است چون الگوریتم های DSP توسط تعداد ثابتی، بیت با دقت و گستره  محدود پیاده سازی می شوند.

 

DSP چیست؟

واژه DSP مخفف Digital Signal Processing یا Digital Signal Processor می­باشد.

پردازش سیگنال های دیجیتال[4] شامل نمایش دیجیتالی سیگنال­ها و استفاده از سیستم­های دیجیتالی برای تحلیل کردن، تغییر دادن، ذخیره سازی یا استخراج اطلاعات از سیگنال­های دیجیتالی می‎باشد.

DSP (digital signal processor) مدار مجتمعي است كه براي پردازش ديتا با سرعت بالا طراحي شده است و در صدا، تصوير، مخابرات و ... كاربرد دارد.

در مقایسه با ASIC و FPGA، پردازنده­های DSP دارای برتری­هایی از قبیل سادگی توسعه هستند و دارای قابلیت برنامه ریزی مجدد در مدار برای بروز رسانی و برطرف کردن عیب، می‎باشند. DSPها از نظر اقتصادی از ASIC و FPGA به خصوص در کاربردهای کم حجم با صرفه ­تر هستند. در مقایسه با μcμP/ همه منظوره، پردازنده­ های DSP سریع­تر،دارای بازده بیشتر و ارزان ­تر هستند.

كامپيوتر مي تواند اين سيگنال ديجيتالي را پردازش كند. پس از اين كه عمل پردازش اطلاعات به پايان رسيد، سيگنال خروجي بايد دوباره به آنالوگ تبديل شود تا براي ما قابل درك باشد. براي اين منظور از يك DAC[5] استفاده مي كنيم. براي مثال بلندگو مي‎تواند سيگنال آنالوگي را كه از يك DAC دريافت مي‎كند را به صدا تبديل كند. در شکل 1 نحوه پردازش سیگنال آنالوگ توسط پردازنده دیجیتال نشان داده شده است.

نحوه­ ی عملکردDSP  ها

جهان ما آنالوگ است و متأسفانه كامپيوترهاي آنالوگ الكتريكي همچون كامپيوترهاي ديجيتال همه كاره نيستند. بنابراين براي اين كه بتوانيم از قدرت زياد پردازشي كه تكنولوژي ديجيتال در اختيار ما مي­گذارد، استفاده كنيم بايد:

    از يك مبدل جهت تبديل سيكنال آنالوگ به سيگنال دیجیتال استفاده كنيم. مانند: ميكروفن.
    اين سيگنال را ديجيتالى كنيم. براي اين كار از يك مبدل آنالوگ به دیجیتالADC [6] استفاده مي كنيم.

شکل 1: نحوه پردازش سیگنال آنالوگ توسط پردازنده دیجیتال

بنابراين براي پردازش ديجيتالي سيگنال، بايد آن را دو بار تبديل كنيم. تا زماني كه فردي بتواند كامپيوتر آنالوگي، كه همچون كامپيوترهای ديجيتال همه كاره باشد، طراحي كند اين كار ارزشش را دارد.

دلیل استفاده از DSP

      دليل استفاده از Digital Signal Processor

ميكروپروسسورهاي همه كاره در انجام عمليات ضرب و تقسيم خيلي كند هستند. آن­ها براي انجام يك عمل ضرب، يك سري عمليات شيفت، جمع و تفريق را به طور متوالي اجرا مي­كنند. بنابراين عمل ضرب به سيكل هاي زيادي نياز دارد. اما DSP با انجام همه عمليات شيفت و جمع به طور موازي،‌ در يك سيكل عمل ضرب را انجام مي دهد. مداربندي آن نسبتاً پيچيده است و به مقدار قابل توجهي ترانزيستور نياز دارد. اما مزيت آن ضرب كردن خيلي سريع است كه براي پردازش سيگنال­هاي ديجيتال ضروری می­باشد.

پردازش سیگنال­های دیجیتالی به طور طبيعي نيازمند تعداد زيادي محاسبات به صورت A=B×C+D مي باشد. شايد اين عمل ساده به نظر برسد، اما وقتي كه به سرعت زیاد نيازمنديم، اختصاص دادن يك سخت افزار براي اجراي اين عمل خيلي مفيد خواهد بود.


بيشتر DSP ها دستورعمل ويژه­اي دارند كه به آن ها اجازه مي دهد كه عمليات ضرب، جمع و ذخيره ­كردن نتيجه را در يك سيكل انجام دهند. اين دستورعمل معمولاً MAC (Multiply,Accumulate) ناميده مي شود.

تاريخچه ضرب كننده

در سال 1971 آزمايشگاهاي لينكلن با استفاده از 10000 مدار مجتمع، يك ضرب كننده طراحي كردند كه فقط در 600 نانو ثانيه عمل ضرب را انجام مي دادند. در اواسط دهه70، ضرب كردن در 200 نانو ثانيه به يك كار معمولي تبديل شد. با اين كار طراحي digital signal processors قابل قبول، امكان پذير شد. طرح هاي اوليه خيلي گران و حجيم بودند اما ضرب كردن سريع امكان پذير شد. در شکل 2 نمودار کاهش عملیات ضرب در طول سال­های مختلف نشان داده شده است.

شکل 2: نمودار کاهش عملیات ضرب در طول سال­های مختلف

تاریخچه DSP

در اوايل سال هاي 1980، تراشه هاي DSP با عملكرد مناسب به وجود آمدند. از آن زمان به بعد، زمان ضرب كردن به طور پيوسته كاهش يافت. "DSP1"، اولین تراشه DSP که از نظر تجاری موفق بود، در سال 1980 توسط AT&T Bell Laboratories روانه بازار شد و بیشتر در طراحی­ های داخلی استفاده شد. TI، اولین DSP موفق تجاری را در سال 1982 تولید کرد. نام این تراشه TMS320C10 بود و در فرکانس MHz5 (ns200) کار می کرد. در اواخر دهه 90 میلادی، يك DSP 16 بيتي با مميزثابت معمولی مي­توانست در 5 نانو ثانيه عمل ضرب را انجام دهد.

انواع پردازنده های DSP

امروزه انواع مختلفی از پردازنده های DSP به صورت تجاری در دسترس هستند. در جدول زیر تعدادی از پردارنده های DSP رایج به طور خلاصه نشان داده شده­ اند.

جدول 2: انواع پردازنده­ های DSP رایج

در گروه ساده و ارزان قیمت، از شرکت TI خانواده TMS320C2000 (C24x and C28x)، از شرکت Analog Devices خانواده ADSP-218x و از شرکت Freescale خانواده DSP568xx قرار دارند. این پردازنده­ های DSP شامل ضرب کننده­ های سخت افزاری و شیفت دادن می ­باشند و در هر سیکل یک دستورعمل را اجرا می­کنند. همچنین آن­ها از دستورعمل­ های پیچیده­ ای که چندین عملیات را از قبیل ضرب، جمع و به روز رسانی آدرس اشاره ­گر اجرا می­کنند، پشتیبانی می­کنند. آن­ها کارایی خوب را همراه با مصرف برق و حافظه مورد استفاده نسبتاً کم فراهم می­ کنند. بنابراین به طور گسترده در وسایل موتوری، مصرف کننده ­های الکترونیکی، درایورهای هارد دیسک و مودم ها به کار می روند. برای مثال خانواده های TMS320C2000 و DSP568xx برای کاربردهای موتوری از قبیل کنترل موتور و کنترل اتومبیل با جمع کردن خیلی از ویژگی ­های میکروکنترلرها و دستگاه های جانبی داخل یک تراشه، بهینه هستند.

گروه پردازشگرهای با قدرت متوسط شامل TMS320C5000 (C54x and C55x)ساخت شرکت TI، ADSP219x و ADSP-BF5xx ساخت شرکت Analog Devices و DSP563xx ساخت شرکت Freescale می باشد. این پردازنده ­های پیشرفته با بهره­ گیری از ترکیب افزایش نرخ کلاک و معماری­ های خیلی پیشرفته ­تر قادرند به عملکرد بالایی دست یابند. این دسته از DSPها معمولاً شامل خط لوله عمیق­تر( Pipline ) ، دستورعمل­ های پیچیده، باس داده چندگانه(برای این که در هر سیکل به چندین داده دست یابند)، شتاب دهنده­ های سخت افزاری اضافی و واحدهای اجرای موازی، می­باشند. برای مثال TMS320C55x شامل دو واحد ضرب و جمع(MAC) می‎باشد. این دسته از DSPها با بهره گیری از مصرف توان کمتر، عملکرد بهتری را فراهم می­ کنند، بنابراین بیشتر در کاربردهای قابل حمل از قبیل موبایل، دستگاه های بی­سیم، دوربین­های دیجیتالی، پخش کننده/­های صوتی و تصویری و دستگاه های کمک شنوایی دیجیتالی مورد استفاده قرار می‎گیرند.

این پردازنده­های DSP پیشرفته برای الگوریتم­های رایج DSP از قبیل فیلترکردن دارای ویژگی های زیر هستند:

    واحدهای ضرب و جمع (MAC) سریع– عملیات ضرب و جمع در بیشتر دستورالعمل ­های DSP از قبیل فیلترینگ، FFT و کرولیشن به کار می‎روند. پردازنده‎های DSP، ضرب کننده و جمع کننده را در یک مسیر داده ترکیب می­ کنند تا عملیات MAC را در یک سیکل دستورعمل کامل کنند.
    حافظه­ ی دسترسی چندگانه– بیشتر پردازنده­های DSP از معماری هاروارد اصلاح شده، استفاده می­کنند تا به دلیل جدا بودن حافظه­ برنامه و حافظه­ ی داده بتوانند دستورعمل و داده را همزمان  فچ (fetch) کنند. پردازنده های DSP برای پشتیبانی از دسترسی هم زمان به چندین داده، از باس­های داخل تراشه چندگانه، بانک­های حافظه­ ی مستقل و حافظه­ ی داده با قابلیت دسترسی دوگانه استفاده می‎کنند.
    مودهای آدرس‎دهی مخصوص– پردازنده­های DSP اغلب برای این که آدرس­های داده را به موازات اجرای دستورعمل­ها تولید کنند، واحدهای اختصاصی تولید آدرس داده را با یکدیگر ترکیب می­کنند. این واحدها معمولاً از آدرس دهی دایره­ای و آدرس دهی بیت معکوس برای بعضی از الگوریتم­های مشخص استفاده می­کنند.
    کنترل ویژه برنامه­– بیشتر پردازنده­ های DSP از حلقه های بدون پردازش (zero-overhead looping) که به برنامه نویس این اجازه را می دهد تا یک حلقه را بدون استفاده از سیکل ساعت اضافی برای جدید کردن و تست شمارنده­ ی حلقه یا پرش به ابتدای حلقه پیاده سازی کند، استفاده می­ کنند.

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

تعدادی از پردارنده های DSP از قبیل TMS320C6000 (C62x, C64x, C67x) با هدف رسیدن به کارایی بالا و ساخت معماری­ که از کامپایلر C کارآمدی پشتیبانی می­کنند، از دستورعمل­های خیلی ساده­ ای پشتیبانی می کنند. این پردازنده­ ها با صدور و اجرای چندین دستورعمل ساده به موازات یکدیگر در نرخ کلاک بالاتر، به حد بالایی از دستورات موازی دست می­ یابند. برای مثال TMS320C6000 از معماری دستورعمل های خیلی طولانی (VLIW) استفاده می کند که هشت واحد اجرای برنامه را فراهم می کند تا اجرای چهار تا هشت دستورعمل در هر سیکل ساعت میسر شود. این دستورعمل­ها محدودیت­های اندکی را روی استفاده از رجیسترها و مودهای آدرس دهی می­ گذارند بنابراین بهره وری کامپایلر C را افزایش می دهند. اما اشکال استفاده از دستورعمل های ساده این است که پردازنده های VLIW به دستورعمل­های بیشتری برای انجام یک وظیفه نیاز دارند، بنابراین به حافظه برنامه و مصرف توان نسبتاً بیشتری نیاز دارند. این پردازنده­ های DSP با عملکرد بالایی که دارند معمولاً در سیستم های راداری و تصویری پیشرفته، زیرساخت های مخابرات، ایستگاه های اصلی بی سیم و سیستم های کدینگ تصویر بلادرنگ با کیفیت زیاد به کار می روند.

نسخه جدید پردازنده DSP در دهه دوم قرن جدید، سری C66 ( مثلا TMS320C6678) می باشد. این پردازنده شامل 8 هسته موازی می باشد که هر هسته دارای ساختار موازی برای اجرای همزمان 32 دستور العمل می باشد. با سرعت بیشتر از 1.2 گیگا هرتز به ازای هر هسته، این پردازنده قابلیت پردازش بیشتر از 300 گیگا دستور العمل در ثانیه را دارد.

اجزای یک سیستم DSP رایج

سيستم هايDSP  رايج شامل تراشه DSP، حافظه،‌ احتمالاً يك مبدل آنالوگ به ديجيتال (ADC) ، يك مبدل ديجيتال به آنالوگ (DAC) و كانال هاي ارتباطي مي باشد.
11-1) تراشه DSP:

تعدادي از اجزاي سخت افزاري كه در بيشتر DSP ها مشترك هستند عبارتند از :

    ·واحد محاسبه مركزي((Central Arithmetic Unit:

اين قسمت از DSP وظيفه محاسبات اصلي از قبيل ضرب و جمع را بر عهده دارد. اين همان قسمتي است كه DSP را نسبت به پردازشگرهاي سنتي سريع­تر مي‎سازد.

    واحد محاسبات كمكي (Auxiliary Arithmetic Unit):

DSPها اغلب يك واحد محاسبه كمكي دارند كه محاسبه اشاره­ گر، محاسبات رياضي يا عمليات منطقي را به موازات واحد محاسبه مركزي انجام مي­دهد.

    درگاه سري(Serial Ports):

DSP ها معمولاً براي ارتباط سريع با ديگر DSP ها و مبدل هاي داده داراي پورت هاي سري داخلي مي باشند. اين پورت هاي سري براي افزايش عملكرد، كاهش مشكلات مربوط به ديكد كردن آدرس خارجي و كاهش هزينه ها، مسقيماً به باس هاي داخلي وصل مي شوند.

    حافظه:

حافظه، داده و دستور عمل ها را براي DSP ها نگه مي‎دارد و يك قسمت ضروري براي هر سيستم DSP مي‎باشد. گر چه DSP ها ماشين­هاي هوشمندي هستند، هنوز هم بايد به آن‎ها گفته شود كه چه كاري را انجام دهند. حافظه ها، يك سري از دستور عمل ها را كه به DSP مي‎گويند چه عملي را روي داده انجام دهد، در خود نگه مي‎دارند.

    مبدل هاي A/D و D/A :

مبدل­ها عمل ترجمه را براي DSP ها بر عهده دارند. چون DSP  فقط مي تواند روي داده ديجيتالي عمل كند، سيگنال‎هاي آنالوگ بايد به سيگنال هاي ديجيتال تبديل شوند. وقتي كه DSP يك خروجي را فراهم مي كند، ممكن است كه لازم شود، آن خروجي براي درك توسط جهان بيروني به سيگنال آنالوگ تبديل شود.

    درگاه ها :

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

شکل 4 اجزای پایه یک پردازنده DSP

   

دلیل تبدیل آنالوگ به دیجیتال

    بعضی از کاربردها به طراحی دیجیتال و بعضی دیگر به طراحی آنالوگ نیاز دارند. سیگنال‎ها برای پردازش دیجیتالی باید از آنالوگ به دیجیتال تبدیل شوند. بعد از پردازش سیگنال‎ها، باید دوباره از فرم آنالوگ به دیجیتال تبدیل شوند. با در نظر گرفتن موارد بالا، پردازش دیجیتالی باید برتری های مشخصی داشته باشد شامل موارد زیر می شود:
        قابلیت برنامه پذیری
        پایداری
        تکرار پذیری
        کاربرد های خاص
        قابلیت برنامه پذیری:

    یک سخت افزار DSP دیجیتالی می‎تواند کارهای مختلفی را انجام دهد. برای مثال یک کامپیوتر شخصی، با نصب نرم افزارهای مناسب، می تواند موسیقی پخش کند و یا به عنوان یک ویرایشگر متن استفاده شود. توانایی استفاده از سخت افزار یکسان برای انجام کاربرد های مختلف، انعطاف پذيرى بسیاری را فراهم می آورد. شما می توانید هر عمل تازه ای را که به فکرتان می‎رسد، به شرط این که بتوانید برنامه ای برای آن بنویسید، پیاده سازی کنید.
        قابلیت به روز رسانی:

    زمانی که شما سیستمی را طراحی و پیاده سازی گردید ممکن است که بخواهید آن را بهبود بخشید و یا وظایف جدیدی را به آن اضافه کنید. شاید شما بخواهید سیستم خود را با محیط جدید سازگار سازید. یعنی در یک سیستم دیجیتالی، شما باید کد های خود را اصلاح کنید. اما در یک سیستم آنالوگ شما باید وسایل جدیدی خریداری و لحیم کرده و یا حتی آن را دوباره طراحی کنید.
        قابلیت انعطاف پذیری:

    به سادگی می توان با ریختن برنامه های جدید در داخل یک برد DSP، کارهای مختلفی انجام داد. برای مثال می توان از یک برد DSK (DSP Starter Kit) به عنوان مولد تون موسیقی و یا به عنوان یک فیلتر پایین گذر استفاده کرد. این انعطاف پذیری زمان طراحی و پیچیدگی را کاهش می دهد. اما در مدارهای آنالوگ، برای انجام هر عمل جدید باید یک مدار جدید طراحی شود.
        پایداری:

    پایداری مدارهای آنالوگ به عوامل مختلفی بستگی دارد. دما و گذشت زمان روی مدارهای آنالوگ تأثیر می گذارند. همچنین مدارهای آنالوگی که دارای طراحی و اجزای یکسانی هستند، ممکن است در عملکرد متفاوت باشند.
        دما:

    دما، رطوبت و گذشت زمان روی عناصر آنالوگ از قبیل مقاومت، خازن، دیود و آپ-امپ تأثیر می گذارند. یک مدار آنالوگ حساس به دما شاید عملکرد کاملاً متفاوتی در انگلیس نسبت به مصر، که دمایشان متفاوت هستند، داشته باشد. این می تواند برای یک شرکت که محصولاتش را در سراسر دنیا به فروش می رساند، مشکل آفرین باشد.

    خصوصیات مدارهای دیجیتالی با زمان، دما و رطوبت به تدریج تغییر نمی کنند. آن ها یا کار می کنند و یا نمی کنند. به بیان دیگر، مدارهای دیجیتالی به شرط این که با دقت کافی برای کار کردن در محدودهء شرایط مورد انتظار طراحی شده باشند، تکرار پذیرند.
        تلرانس:

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

    یک مدار دیجیتال که به درستی طراحی شده باشد، همیشه نتیجهء یکسانی تولید می کند و در تمام نمونه ها یکسان است. برای مثال اگر، عمل ضربی روی 500 کامپیوتر اجرا شود، نتیجه در همه ی آن ها یکسان خواهد بود. خطای قطعات، گذشت زمان و دما روی مدارهای دیجیتالی تأثیر چندانی نمی گذارد.

    یک مدار دیجیتالی که به درستی طراحی شده باشد، نتیجه یکسانی را در انگلیس و مصر، حتی زمانی که دما متفاوت باشد، تولید خواهد کرد. به بیان دیگر، 500 مدار آنالوگ یک محدوده از نتایج را تولید می کنند.

    برای این که یک مدار دیجیتالی تکرارپذیر باشد، ولتاژ آنالوگی که بیان کنندهصفر و یک منطقی است باید به اندازهکافی از از ولتاژ آستانه بزرگ تر و یا کوچک تر باشد تا تغییرات مداری و نویز روی آن تأثیر نگذارد. تنها چیزی که اهمیت دارد این است که محدودیت زمانبندی و حداکثر قدرت توان وسیله نباید فراتر رود.

    دقت دیجیتالی به وسیله تعداد بیت هایی که استفاده می شوند، تعیین می گردد. در مدارهای آنالوگ تعداد بیت ها به طور موثر بینهایت می باشند؛ اما اثر نویز، خطای قطعات و خطی بودن می توانند به سرعت باعث کاهش عملکرد شوند.

    یک دستگاه پخش CD، می تواند همان موسیقی دیجیتالی با کیفیت را به طور مرتب پخش کند و اصولاً تنها توسط قطعات آنالوگی که هنوز نیازمندند، محدود می شود. قطعات آنالوگ در یک دستگاه پخش CD شامل DAC، لیزر، پیکاب لیزر، محرک هد خوان، موتور و گوشی می شوند.
        کارایی:

    بعضی از وظایف خاص به فرم دیجیتال بهتر قابل پیاده سازی هستند. مانند:
        فشرده سازی بدون اتلاف
        فیلتر های تطبیقی

        فیلتر ها با فاز خطی
        فشرده سازی:

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

    یک DSP می تواند با استفاده از برنامه های نرم افزاری مناسب داده ها و سیگنال های باینری را فشرده سازی کند. برنامه های فشرده سازی بدون تلفات برای انتقال داده های باینری به طور صحیح مناسب هستند. به بیان دیگر، برنامه هایی که برای فشرده سازی صدا و تصویر طراحی شده اند نسبت بیشتری فشرده سازی را فراهم می کنند اما کیفیت سیگنال مقداری کاهش می باشد. همچنین مدارهای آنالوگ می توانند برای فشرده سازی بدون تلفات به شکل های خیلی ساده استفاده شوند اما انعطاف پذیری خیلی کمی دارند.
        فیلتر های تطبیقی:

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

    یک سیستم DSP می تواند به آسانی با اندکی تغییرات در متغییرهای محیطی تطبیق شود. یک الگوریتم تطبیقی پارامتر های لازم جدید را به آسانی محاسبه می کند و سپس آن ها را در حافظهء اصلی ذخیره می کند و جای مقدارهای قبلی قرار می دهد. در مدارهای آنالوگ یک انطباق خیلی ساده امکان پذیر است اما تغییرات کامل یک دستهء پیچیده از مشخصه های فیلتر از محدوده عملی پردازش سیگنال های آنالوگ خارج است.

    یک نمونه از فیلترهایی که ممکن است برای پیاده سازی سیستم های حذف نویز استفاده شوند، فیلتر دندانه ای(notch filter) با شیب تند در فرکانس قطع می باشد. در این مورد DSP می تواند فرکانس شکاف را برای حذف نویز لرزشی، وقتی که سرعت چرخش موتور تغییر می کند، دوباره محاسبه کند. تولید تعداد زیادی فیلترهای قابل تنظیم فقط با استفاده از تکنیک های آنالوگ، عملاً غیر ممکن است.
        فیلتر های با فاز خطی:

    تعدادی روش ارزشمند برای پردازش سیگنال وجود دارد که با استفاده از شیوه های آنالوگ دشوار و یا غیر ممکن می باشد. یک نمونهء بارز آن فیلترهای با فاز خطی است طراحی آن ها به صورت آنالوگ دشوار می باشند. با استفاده از فیلترهای دیجیتالی می توان تغییرات فاز هر جزء فرکانسی را همسان با دیگر فرکانس ها نگه داشت. این کار با استفاده از یک فیلتر با پاسخ ضربهء کران دار(FIR) امکان پذیر می باشد.
   

کاربردهای عملی سیستم های DSP

از زمان معرفی DSP ها به بازار، این پردازنده­ ها کاربرد­های متنوع و گسترده­ای پیدا کرده ­اند. از آن ها در سیستم های HI-FI روزمره و همچنین کاربردهای واقعیت مجازی پیشرفته(high-end virtual-reality) استفاده می شوند. به طور کلی، DSP یک تکنولوژی گران نیست.

تعدادی از سیستم های DSP  عملی عبارتند از:

    تجهیزات Hi-Fi
    اسباب بازی ها
    تلفن های تصویری
    مودم ها
    سیستم های صوتی
    سیستم های گرافیکی سه بعدی
    سیستم های پردازش تصویر

    تجهیزات Hi-Fi (دستگاه های موسیقی):

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

    اسباب بازی ها:

امروزه تکنولوژی DSP در اسباب بازی بچه­ ها گنجانده شده است. اسباب بازی­های سخنگو وسایلی معمولی هستند. برای مثال، با فشردن عکس یک سگ، بچه ها می توانند صدای پارس آن را بشنوند.

    تلفن تصویری :

تلفن تصویری روی همه جنبه ­های زندگی مردم تأثیر خواهد گذاشت. کیفیت آن­ها به سرعت بهبود می یابد. با گذشت زمان قیمت­ها کاهش می یابد و از آن ها به طور گسترده استفاده می شود. از DSP ها برای فشرده سازی و از حالت فشرده در آوردن تصویر در تلفن های تصویری استفاده می شود. چندین استاندارد بین المللی برای فشرده سازی تصویر متحرک وجود دارد. DSP های قابل برنامه نویسی، راه حل کاملی برای توسعه ی این استاندارد ها هستند چون ممکن است که فقط به، بروز رسانی نرم افزاری نیازمند باشند.

    مودم ها:

همان طور که اینترنت به رشد کردن ادامه می‎دهد، استفاده از مودم ها نیز افزایش می­یابد. برای این که مودم ها بتوانند ظرفیت رو به افزایش ارتباطات را مدیریت کنند، باید سریع‎تر و کاراتر شوند. DSPها وظایف اساسی از قبیل مودوله کردن رشته بیت دیجیتالی، به سیگنالی سازگار با خط تلفن، حذف کردن انعکاس صدای خط و فشرده کردن و از حالت فشرده در آوردن داده را در مودم ها انجام می دهند.

    سیستم های تلفنی:

امروزه، زنگ زدن به یک شرکت و صحبت کردن با یک ماشین که انتخاب هایی از قبیل "برای خرید کردن 1 بگو" ، "برای پشتیبانی فنی 2 بگو" و ... را در اختیار شما قرار می دهد کاملاً عادی است. این سیستم های تلفنی از DSP ها برای تشخیص صدا استفاده می‎کنند. همچنین DSP ها معمولاً در صنعت مخابرات برای ویژگی‎های اضافی ای که شما می‎توانید از مخابرات بگیرید، از قبیل شماره تماس گیرنده، پیغام صوتی و تماس دوباره استفاده می‎شوند.

    سیستم های گرافيکی سه بعدی:

بیشتر شبیه سازهای پرواز، برای این که به واقعیت نزدیک‎تر باشند از تصاویر متحرک بلادرنگ سه بعدی(3D real-time graphics) استفاده می‎کنند. برای محاسبهء جزئیات ضروری در سه بعد و 30 بار تکرار آن در ثانیه، به پردازشگرهای بسیار کارآمد و قدرتمند نیازمندند. هم اکنون DSPها در کاربرد های واقعیت مجازی (virtual-reality) به صورت گسترده استفاده می‎شوند.

    سیستم های پردارش تصویر:

همچنین اکنون استفاده از دوربین‎های دیجیتال کوچک افزایش یافته است. DSPها برای تبدیل ولتاژ آنالوگ تراشه CCD(charge-coupled device)(ویدئو) به داده فشرده که می‎تواند روی حافظه دائمی EEPROM ذخیره شود، استفاده می‎شوند. DSP همچنین دگمه‎ها را تشخیص می‎دهد، زمان نور دهی را کنترل می کند، زمان بندی گیت CCD را تنظیم می کند و تصویر را در کامپیوتر بارگذاری می کند.

DSP ها همچنین به طور گسترده در پردازش تصویر از قبیل بینایی روبات، بینایی ماشین، فشرده سازی تصویر و تشخیص اثر انگشت استفاده می‎شوند. یک مثال ساده از کاربرد پردازش تصویر، نظارت بر بردهای مدار چاپی(PCB) است.این سیستم با ضبط تصویر یک برد سالم و مقایسه آن با بردی که به تازگی درست شده و در حال عبور از زیر یک دوربین CCD است، کار می کند. این سیستم ها همچنین برای فیلتر کردن دو بعدی از سیکل‎های ضرب و جمع کارامد DSPها، استفاده می کنند.

پردازنده های ممیز ثابت و ممیز شناور

یک تفاوت اساسی بین پردازنده های DSP ساختار محاسباتی آن ها است: ممیز ثابت یا ممیز شناور. برای طراحان سیستم، این مهمترین عاملی است که به کمک آن تشخیص می دهند که آیا یک پردازندهء DSP برای یک کاربرد مشخص مناسب است یا نه. پردازنده های DSP ممیز ثابت ممکن است 16 بیتی یا 24 بیتی باشند، در حالی که پردازنده های ممیز شناور معمولاً 32 بیتی هستند. یک پردازندهء 16 بیتی ممیز ثابت رایج مانند TMS320C55x، اعداد را به فرمت صحیح یا اعشاری 16 بیتی در یک محدوده ثابت ذخیره می کنند. اگرچه ضرایب و سیگنال ها با دقت 16 بیتی ذخیره می شوند، مقادیر میانی برای کاهش خطاهای رند کردن تجمعی، ممکن است با دقت 32 بیتی در accumulator ، 40 بیتی ذخیره شوند. DSPهای ممیز ثابت معمولاً از DSPهای ممیز شناور ارزان تر و سریع تر هستند چون آن ها از سیلیکون کمتری استفاده می‎کنند، مصرف توان کمتری دارند و به پین های خارجی کمتری نیاز دارند. موارد استفاده پردازنده های ممیز ثابت عبارتند از: کنترل دستگاه های برقی، موبایل، درایو هارد دیسک، مودم ها پخش‎کننده‎های صوتی و دوربین های دیجیتالی.

حساب ممیز شناور محدوده دینامیکی اعداد را به شدت افزایش می‎دهد. یک پردازنده DSP ممیز شناور 32 بیتی رایج مانند TMS320C67x، اعداد را به صورت 24 بیت مانتیس و 8 بیت نما نمایش می دهد. مانتیس یک عدد اعشاری را در محدوده 1- و 1+ نمایش می دهد در حالی که نما یک عدد صحیح است که تعداد مکانهایی که ممیز باینری باید به چپ یا راست منتقل شود تا یک مقدار حقیقی بدست آید، را نمایش می دهد. یک فرمت ممیز شناور 32 بیتی، محدوده دینامیکی وسیعی را نمایش می دهد. بنابراین محدودیت­هایی که روی حدود دینامیکی داده وجود دارند، ممکن است در یک طراحی با استفاده از پردازنده­های DSP ممیز شناور نادیده گرفته شوند. این در نقطه مقابل طراحی با استفاده از ممیز ثابت قرار دارد. در طراحی با استفاده از ممیز ثابت طراح باید ضرایب مقیاس بندی و تکنیک های دیگری را اعمال کند تا از سرریز محاسبات جلوگیری کند، که یک فرایند خیلی مشکل و وقت گیر می باشد. از این رو، به طور کلی پردازنده های DSP ممیز شناور از نظر برنامه نویسی و استفاده آسان هستند، اما معمولاً گران تر هستند و توان بیشتری مصرف می کنند.

دقت و حدود دینامیکی پردازنده های DSP ممیز ثابت 16 بیتی رایج در شکل زیر خلاصه شده است.

شکل 5: دقت و حدود دینامیکی پردازنده های ‏DSP‏ ممیز ثابت 16 بیتی ‏

دقت پردازنده های DSP ممیز شناور 32 بیتی، است. چون دارای 24 بیت مانتیس می باشند. همچنین حدود دینامیکی آن ها   1.18 ×10−38 ≤ x ≤ 3.4 × 1038 می­باشد.

طراحان سیستم باید حدود دینامیکی و دقت مورد نیاز را برای کاربردشان تعیین کنند. پردازنده‎های ممیز شناور ممکن است در کاربردهایی که ضرایب متغییر با زمان هستند، سیگنال ها و ضرایب به حدود دینامیکی وسیع و دقت بالایی نیاز دارند و یا جایی که ساختار حافظه وسیعی لازم باشد، مانند پردازش تصویر، نیاز شوند. همچنین پردازنده های DSP ممیز شناور استفاده موثری از کامپایلرهای C می­کنند، بنابراین هزینه توسعه و نگه داری را کاهش می­دهند. زمان توسعه سریع تر پردازنده های ممیز شناور ممکن است از قیمت اضافی آن ها مهم تر باشد.

در مقابل روش هایی وجود دارد که بتوان از پردازنده های 16 بیتی ممیز ثابت، با دفت انجام محاسبات 32 بیتی استفاده نمود و در نتیجه به دقتی در حدود پردازنده های ممیز شناور و حتی بهتر دست پیدا کرد. در مجموع تعداد پردازنده های ممیز ثابت طراحی شده بسیار بیشتر از انواع ممیز شناور می‎باشد.

طراحی یک سیستم DSP

    برنامه– تراشه DSP یک قطعه سخت افزاری است که بدون هوش یک برنامه نمی‎توانند کار کنند. برنامه یک سری دستور عمل است که وظایف مشخصی را انجام می‎دهد.
    اسمبلر– اسمبلر از دستورات متنی کد ماشین را تولید می کند. اسمبلر باعث می‎شود که دیگر نیازی به یاد آوردن دستورعمل های باینری نداشته باشیم.
    زبان برنامه نویسی سطح بالا– زبان‎های برنامه‎نویسی سطح بالا مانند زبان­های اسمبلی هستند، اما خیلی دوستانه­ تراند. زبان­های اسمبلی دارای دستورعمل­های خیلی ابتدایی از قبیل ضرب، جمع و مقایسه هستند. زبان­های برنامه نویسی سطح بالا دارای دستورات سطح بالاتری از قبیل چاپ و تکرار تا زمان رسیدن به صفر هستند. بنابراین نوشتن برنامه در زبان های سطح بالا ساده تر می باشد. اما زبان های اسمبلی می‎توانند برنامه‎هایی را که سریع تر اجرا می‎شوند، تولید کنند. به همین دلیل از هر دوی آن ها در DSPها استفاده می‎شوند. گاهی اوقات لازم است که قسمت های زمان بر یک برنامه به اسمبلی نوشته شوند.
    شبیه سازها– شبیه سازهای پرواز باعث می‎شوند که شما احساس کنید مثل این که در کابین خلبان یک هواپیما هستید بدون این که هزینه یک هواپیمای واقعی، سوخت و ریسک تصادف آن را بپردازید. یک شبیه ساز DSP، یک پیاده سازی نرم افزاری از یک تراشه DSP می باشد. یک شبیه ساز روی یک کامپیوتر راه اندازی می شود و تقریباً تمام وظایف اساسی یک DSP را شبیه سازی می کند. آن ها برای تحلیل امکان پذیر بودن طرح ها قبل از این که به سخت افزار تبدیل شوند،استفاده می شوند. آن ها همچنین برای تشخیص این که یک طرح به خصوص کار خواهد کرد یا نه، نیز خیلی مفید هستند.

Emulators– یک emulator به ما این اجازه را می دهد که مستقیماً نتیجه اجرای دستورعمل ها را روی DSP کنترل و اشکال زدایی کنیم. ما می توانیم با استفاده از emulator ها تمام تغییرات داخلی در دستگاه را در هر مرحله ببینیم. توسعه دهندگان می­توانند در هر زمان یک دستورعمل را اجرا کنند، برای اطمینان از عمل صحیح سطح ولتاژ را کنترل کنند و هر نتیجه را در زمان خودش بررسی کنند.

برنامه اشکال زدا (Debugger)– یک برنامه اشکال زدا برای نمایش اطلاعات اجرای برنامه به فرمتی قابل استفاده برای برنامه نویس، به کار می‎رود. داده هایی که در برنامه اشکال زدا نمایش داده می‎شوند در واقع فرمی از داده های موجود در حافظه DSP هستند. این حافظه به آسانی با استفاده از یک emulator و یا یک رابط ارتباطی به وسیله نرم‎افزار مناسب داخل یک PC بارگذاری می شود. برای مثال پنجره حافظه در debugger می‎تواند داده را در مبنای 16، با فرمت عدد صحیح یا اعشاری نمایش دهد، با این حال داده در DSP به فرم باینری است. Debugger ها شامل یک رابط کاربر در کامپیوتر میزبان هستند، که می‎توانند محتویات و مسیر اجرای تراشه را کنترل و اصلاح کنند. رابط کاربر محتویات RAM، ثبات ها و اسمبلی برنامهء بارگذاری شده در داخل DSP را نمایش می‎دهند. مزیت عمده debuggerها نسبت به شبیه سازها این است که آن­ها در زمان واقعی کار می­ کنند در نتیجه به طراح اجازه می‎دهند که در محیط واقعی به عملکرد سیستم دسترسی پیدا کند.

    سیکل توسعه – بعد از آن که امکان پذیری طرح با استفاده از شبیه سازی تأیید شد، طراحی برنامه می‎تواند آغاز شود. ابتدا نرم افزار طراحی می شود. این مرحله ریزه کاری­ها و بخش­های مختلف کد را مشخص می کند. هر بخش از برنامه به صورت جداگانه نوشته و تست می شود و سپس تمام سیستم بسته و آزمایش       می‎شود. اگر همه چیز آن طور که مورد انتظار است کار کند، ورژن 1.0 محصول وارد بازار می شود. اگر برخلاف انتظار ما بود، این فرایند دوباره تکرار می شود.
   

پردازنده DSPخانواده TMS320

    DSPهای شرکت Texas Instrumentsخانواده TMS320:

DSPهای TI، شامل سه دستهء C2000، C5000 و C6000 می شوند.

    C2000
        مزیت
            ارزان قیمت هستند.
            برای فضاهای با نویز بالا طراحی شده‎اند.
        کاربرد
            سیستم های کنترلی از قبیل کنترل موتور
            ذخیره سازی
            کنترل دیجیتالی
    C5000
        مزیت
            بازده بالا
            بیشترین MIPS (Million Instructions Per Second) در هر وات/هزینه/اندازه
        کاربرد
            تلفن های بی سیم
            پخش کننده های صوتی
            دوربین های دیجیتال
            مودم ها
            VoIP
    C6000
        مزیت
            عملکرد بالا
            استفاده آسان
        کاربرد
            زیرساخت های مخابراتی
            ایستگاه های بی سیم
            DSL
            تصویر و ویدئو
            سرورهای چند رسانه ای

   

یک نمونه DSP ممیز ثابت5509A

    یک DSP نمونه ممیز ثابتTMS320VC5509A

پردازنده سیگنال دیجیتال ممیز ثابت TMS320VC5509A بر پایه نسل پردازنده‎های TMS320C55x می‎باشد. معماری DSP سری C55x با افزایش موازی کردن و کاهش تلفات توان، به عملکرد بالا و مصرف توان کم، دست یافته است. این CPU از یک ساختار باس داخلی تشکیل شده از: یک باس برنامه، سه باس برای خواندن داده، دو باس برای نوشتن داده و باس‎های اضافی که به دستگاه های اضافی و فعالیت DMA اختصاص داده شده است، پشتیبانی می‎کند. این باس ها توانایی انجام حداکثر خواندن سه داده و نوشتن دو داده در یک سیکل را برای CPU فراهم می‎کنند. کنترل کننده DMA می‎تواند جدا از فعالیت CPU در هر سیکل، دو داده را انتقال دهد.

CPU سری C55x دارای دو واحد ضرب و جمع(MAC) است که هر کدام قادرند در یک سیکل ضرب 17بیتی در 17 بیتی را انجام دهند. یک واحد محاسبه و منطق (ALU) مرکزی 40 بیتی توسط یک ALU 16 بیتی اضافی پشتیبانی می‎شود. استفاده از ALUها زیر نظر کنترل مجموعه دستورعمل‎ها است و توانایی بهینه سازی فعالیت موازی و مصرف توان را فراهم می‎آورند. این توانایی‎ها در واحد آدرس(AU) و واحد داده(DU) CPU مدیریت می‎شوند.

CPU سری C55x برای بهبود چگالی کد(code density) از مجموعه دستورالعمل‎ها با طول بایت متغییر پشتیبانی می‎کند. واحد دستورالعمل(IU)، از حافظه داخلی یا خارجی FETCH برنامه 32 بیتی را انجام می دهد و دستورالعمل ها را برای واحد برنامه(PU) به ترتیب قرار می‎دهد. واحد برنامه، دستورالعمل ها را دیکد می کند و وظایف را به سمت AU و DU هدایت می کند و خط لوله را مدیریت می کند. توانایی پیش بینی دستورات پرش، از خالی شدن خطه لوله در هنگام اجرای دستورالعمل های شرطی، جلوگیری می کند. همچنین 5509 شامل یک کش دستورالعمل است تا دسترسی به حافظه خارجی را کاهش دهد، انتقال داده را بهبود بخشد و از توان سیستم محافظت کند.

مجموعه دستگاه های جانبی شامل یک رابط حافظه خارجی(EMIF) که دسترسی به حافظه اسنکرون مانند EPROM و SRAM به علاوه حافظه پرسرعت سنکرون DRAM و SRAM را فراهم می آورد. سه McBSP (multichannel buffered serial port) ارتباط دوطرفه با وسایل سریال استاندارد متنوعی و ارتباط چند کاناله(تا 128 کانال) را فراهم می آورد. رابط پورت میزبان پیشرفته (HPI)، یک رابط موازی 16 بیتی است که به پردازنده میزبان این اجازه را می‎دهد که به حافظه داخلی 5509 دسترسی داشته باشد. کنترل کننده DMA، جابجایی داده برای 6 کانال مستقل را بدون دخالت CPU فراهم می کند. همچنین شامل تایمر همه منظوره، هشت پین I/O همه منظوره(GPIO) و تولید کلاک DPLL (digital phase-locked loop) می شود.

 

 تمامی مطالب این بخش از کتاب دستور کار آزمایشگاه DSP راهنمای استاد کپی شده است.

 

[1] application-specific integrated circuits

[2] field-programmable gate arrays

[3] application-specific hardware (HW) accelerators

[4] Digital signal processing

[5] digital-to-analog convertor

[6] analog-to-digital covertor

[7] ‎16-bit fixed-point

آخرین ویرایش در شنبه, 07 اسفند 1395 ساعت 09:25

نظر دادن

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