فهرست مطالب
عنوان صفحه چکیده ز
فصل اول : مشخصات عمومي پردازنده هاي DSP 1
1-1) تحليل سيستم هاي DSP 2
1-2) معماري پردازشگرهاي ديجيتال 7
1-3) مشخصات پردازشگرهاي DSP 11
1-4) بهبود كارايي پردازنده هاي DSP معمولي 15
1-5) ساختار SIMD 16
فصل دوم : معرفي پردازنده هاي DSP و سخت افزار لازم جهت کار با آنها 20
2-1) مقدمه 21
2-2) خانواده ي پردازنده هاي Texas Instrument 24
2-2-الف( خانواده ي TMS320C2000 29
2-2-ب ( سري C5000 31
2-2-ج( سري C6000 33
2-3) تجهیزات سخت افزاری جهت کار با پردازنده هاي ديجيتال 38
2-3- الف( نحوه ي راه اندازي و تست اوليه بورد هاي DSK 42
2-3-ب) EVM 43
2-3-ج) DVEM 44
2-3- د) بورد هاي TDK 45
2-4) خانواده ي پردازنده هاي Motorola يا به عبارتي Free scale 49
2-4- الف) سري DSP56000 49
2-4-ب) سري DSP56100 49
2-5) خانواده ي پردازنده ي Analog Devices 53
2-5- الف) پردازنده های سري BLACFIN 54
2-5- ب) پردازنده های سري SHARC 56
2-5- ج) پردازنده های سري Tiger SAHRC 58
فصل سوم : معرفي نرم افزارهاي DSP 60
3-1) مقدمه 61
3-2) تقسيم بندي انواع نرم افزارهاي DSP 62
3-3) مقدمه اي بر ابزارهاي توسعه يافته ي DSP 63
3-3- الف) کامپايلر C 64
3-3- ب) اسمبلر 65
3-3- ج) پيوند دهنده 65
3-4) بقيه ابزارهاي توسعه 67
3-5) نرم افزار Code Composer Studio 68
3-6)نرم افزار هاي با محيط گرا فيکي براي نوشتن کد 74
فصل چهارم : کاربردهاي پردازنده هاي DSP 76
4-1) کاربردهايي از رادار 78
4-2) آماده كردن سيگنال آنالوگ براي برقراري ارتباط از طريق يك كانال مخابراتي 82
4-3) تحليل سيگنال آنالوگ براي استفاده از شناسايي صدا در سيستم تلفن 83
4-4) کاربرد DSPدر پردازش سيگنال هاي زلزله ثبت شده در شبکه ملي لرزه نگاري ايران 84
4-5) لنز به عنوان يک ابزار قدرتمند براي محاسبه تبديل فوريه جهت پردازش سيگنال هاي دريافتي 85
4-6) کاربرد پردازنده هاي DSP و تبديل فوريه چند بعدي در تصوير برداري MRI 87
4-7) استفاده از پردازنده هاي DSP در تشخيص الگوي گاز 88
4-8) کاربرد پردازنده هاي DSP در پردازش تصوير 89
4-9) فيلترهاي تطبيقي و نقش آنها در پردازش سيگنال هاي ديجيتال 89
4-10) توموگرافي 90
4-11)كاربرد پردازنده هاي DSPدر سيستم هاي قدرت و رله هاي حفاظتي 91
ضمیمه ی الف: شماتیک بورد DSP STARTER KIT (DSK)TMS320C6711...93
مراجع 116
چکیده:
دراین پایان نامه مراحل طراحی یک سیستم دیجیتال و کاربردهای آن شرح داده شده است.
در فصل اول با مشخص کردن نیازهای هر سیستم پردازشگر دیجیتال و مشخصات پردازنده های DSP لزوم استفاده از این نوع پردازنده ها، بیان شده است.
در فصل دوم به معرفی پردازنده های DSP و مقایسه آنها از جهات گوناگون پرداخته شده است و اجزای جانبی آنها برای تولید سیگنال های خارجی و ارتباط با محیط خارج مورد بررسی قرار گرفته است. پس از معرفی کارت های آموزشی و صنعتی با استفاده از مهندسی معکوس امکانات مورد نیاز برای طراحی یک سامانه حداقلی بیان شده است.
در فصل سوم با معرفی انواع نرم افزارهای پردازش سیگنال ها به صورت دیجیتال چگونگی یکپارچه کردن سیستم، به کمک دستورات پیوند دهنده شرح داده شده است که پس از این مرحله سیستم
آماده ی تحویل به مشتری است.
برای بیان نقش پردازنده های DSP در زندگی روزمره ، چندین مثال از کاربردهای بیشمار پردازش دیجیتال در فصل چهارم آورده شده است. این کاربرد ها را می توان به دو دسته آنالیز/ فیلتر اطلاعات و فرآیندهای کنترلی تقسیم بندی کرد. بنابراین هر کاربرد به سخت افزار و نرم افزار خاصی نیاز دارد که در این مجموعه تا حدودی معرفی شده اند.
فصل اول :
مشخصات عمومی پردازنده هاي DSP
مقدمه:
پردازش سيگنال هاي ديجيتال با استفاده از عمليات رياضي قابل انجام است. در مقايسه، برنامه نويسي و پردازش منطقي روابط، تنها داده هاي ذخيره شده را مرتب مي كند. اين بدان معني است كه كامپيوترهاي طراحي شده براي كاربردهاي عمومي و تجارتي به منظور انجام محاسبات رياضي، مانند الگوريتم هاي انجام تحليل فوريه و فيلتر كردن مناسب و بهینه نيستند. پردازشگرهاي ديجيتال وسايل ميكروپروسسوري هستند كه به طور مشخص براي انجام پردازش سيگنال هاي ديجيتال طراحي شده اند. پردازنده هاي DSP دسته اي از پردازنده هاي خاص
مي باشند كه بيشتر براي انجام بلادرنگ پردازش سيگنال هاي ديجيتال استفاده مي شوند.
اين پردازنده ها توانايي انجام چندين عمليات همزمان در يك سيكل دستورالعمل شامل چندين دسترسي به حافظه، توليد چندين آدرس با استفاده از اشاره گرها و انجام جمع و ضرب سخت افزاري به طور همزمان را دارا مي باشند و سرعت بالاي آن ها نيز به واسطه اين ويژگي ها است. اين وسايل به ميزان بسيار زيادي در دهه اخير رشد كرده اند و كاربردهاي متنوعي از دستگاه هاي تلفن سيار تا ابزارهاي علمي پيشرفته پيدا كرده اند. همچنين بعضي قابليت اجراي منطق مميز شناور (Floating point) به صورت سخت افزاري را دارند. در صورتي كه سيگنال در بازه ديناميكي بزرگي متغير با زمان باشد، اين قابليت بسيار مفيد مي باشد. اگر نمونه ها در زمان بين نمونه برداري ها نياز به پردازش با سرعت بالا داشته باشند مي توان از پردازنده هاي عملكرد بالا استفاده نمود. در اين حالت پردازنده بايد در سريع ترين زمان ممكن پردازش را به پايان برساند كه اين نيازمند كم بودن زمان سيكل دستورالعمل در پردازنده مي باشد. از ديدگاه هزينه، ابعاد و طراحي آسان، تجهيزات جانبي پردازنده بسيار مهم
مي باشند.
نهفته در سيگنال را نيز استخراج كرد.
1-1) تحلیل سيستم هاي DSP :
سيستم نمونه DSP در شكل(1-1) نشان داده شده است. همان گونه كه ديده مي شود اين سيستم ازسه بخش اصلي تشكيل گرديده است. بخش ابتدايي براي آماده سازي سيگنال و تبديل آن به نوع ديجيتال و بخش انتهايي كه نتايج حاصل از پردازش ديجيتالي را دوباره به شكل اوليه تغيير مي دهد و قسمت مركزي كه پردازشگر ديجيتال را براي اجراي يك الگوريتم، يك برنامه و يا مجموعه اي از محاسبه هاي منطقي – رياضي تشكيل مي دهد. واحدهاي ابتدايي و انتهاي سيستم فوق مورد بحث ما نمي باشند و در اين فصل به طور عمده به بخش اصلي پردازشگر پرداخته مي شود.[1]
شكل (1-1) : دياگرام بلوكي سيستم DSP نوعي[1]
اولين نكته قابل توجه اين است كه چگونه سيستم DSP طراحي مي شود؟ چگونگي و روش طراحي سيستم را
مي توان در شكل(1-2) مشاهده كرد. اولين قدم در اين طراحي، تحليل سيگنال ورودي و تعيين مشخصات آن مانند حداقل و حداكثر دامنه، پهناي باند، محتواي طيفي سيگنال و حدود تغييرات، نسبت سيگنال به نويز (SNR) آن است.
همان طور كه سيگنال اصلي آنالوگ باشد، اولين مرحله، پيش پردازش سيگنال و تبديل آن به شكل ديجيتالي است. ميزان و نوع تقويت كننده ورودي، طراحي فيلتر ضدهمپوشاني، حداقل نرخ نمونه برداري و در نهايت طراحي مبدل آنالوگ به ديجيتال در مهمترين موارد اين مرحله از طراحي سيستم پردازشگر ديجيتالي است.
شكل( 1-2): روش طراحي سيستم [1] DSP
براي بررسي و تاييد عملكرد سيستم پيشنهادي، ابتدا سيگنال ورودي و مدل پردازش شبيه سازي نرم افزاري
تعیین مي گردد. سپس با اطلاعات اوليه و تاييد نهايي گراف جريان سيستم از شبيه ساز نرم افزاري استخراج گرديده كه مبناي پياده سازي سخت افزاري – نرم افزاري پردازشگر ديجيتالي قرار مي گيرد.
الف) معماري وان – نيومان :
ساده ترين نوع انجام اين عمل توسط وان – نيومان [1903-1957,Von Neumann] ارائه گرديد. معماري
وان – نيومان تنها داراي يك حافظه و يك گذرگاه[1] براي نقل و انتقال داده به واحد پردازش مركزي (CPU)[2] است. اين معماري در شكل (1-3) نشان داده شده است. طرح وان – نيومان براي حالتي كه همه وظايف در برنامه اي كه به صورت سريال انجام مي شوند، به طور كامل قابل قبول است.
[1] Bus
[2] Central Processing Unit
ب) معماري هاروارد :
معماري ديگر تنها وقتي مورد نياز مي شوند كه پردازش سريع مورد نياز باشد. در شكل (1-4) معماري ديگري به نام هاروارد نشان داده شده است كه در دانشگاه هاروارد با هدايت هوارد آيكن [Haward Aiken 1900-1973] در سال 1940 ارائه شده است. در اين طرح حافظه هاي جداگانه اي براي داده ها و دستورالعمل ها در نظر گرفته شده است كه داراي گذرگاه هاي جداگانه اي نيز مي باشند.
ج) معماري Super Harvard :
معماري با سطح بالاتري با نام Super Harvard در شكل(1-5) نشان داده شده است. در واقع اين معماري توسعه يافته طرح Harvard با اضافه كردن خصوصياتي براي افزايش گذردهي است. اين طرح با چندين روش بهينه سازي كه نوعي از خصوصيات آن ها با Cache دستورالعمل و كنترل كننده I/O در شكل نشان داده شده است.
سرعت هاي بالاي I/O از مشخصات كليدي پردازشگرها است. مهم ترين مسئله در مرتبه اول، انتقال داده به داخل DSP، انجام محاسبات و خروج نتيجه قبل از نمونه بعدي است.
موارد ديگر در مرتبه بعدي قرار مي گيرند. اگرچه برخي پردازشگرها داراي مبدل هاي آنالوگ به ديجيتال و ديجيتال به آنالوگ روي كارت اصلي اند ولي همه پردازشگرها مي توانند از طريق واسط گذرگاه هاي سري يا موازي با مبدل هاي خارجي مرتبط باشند.
در بلوك دياگرام شكل (1-6)در بخش CPU دو بلوك مولد آدرس داده (DAG)[1] ديده مي شود كه هر يك براي يكي از دو حافظه به كار مي رود. اين بلوك ها آدرس هاي ارسالي به حافظه هاي برنامه داده را كنترل مي كنند، يعني مشخص مي كنند چه اطلاعاتي بايد در حافظه خوانده يا نوشته شوند.
1-3) مشخصات پردازشگرهاي :DSP
پردازشگرهاي DSP زيادي وجود دارند، ولي تقريبا همه آن ها با عمليات پايه اي يكساني طراحي مي شوند و در نتيجه مشخصات پايه اي يكساني دارند. اين مشخصات به سه مورد اصلي زير دسته بندي مي شوند:
محاسبه هاي پرسرعت خاص
انتقال داده به/ از دنياي واقعي
معماري حافظه دسترسي چندگانه
انجام پردازش به چند عمل خاص نيازمند است كه عبارتند از :
جمع و ضرب ها
تاخيرها
كار و تنظيم آرايه ها[1]
در ادامه به تشريح هر يك از واحدهاي پردازنده هاي DSP مي پردازيم.
دسترسي موثر به حافظه :
در واقع انجام عمليات ضرب به بيش از يك سيكل نياز دارد چرا كه علاوه بر دستورالعمل ضرب احتياج به دسترسي به داده هاي مورد نياز وجود دارد پردازنده هاي DSP امكان دسترسي وسيع تري به حافظه نسبت به پردازنده هاي همه منظوره[2] دارند.
[1] Array Handling
[2] General Purpose
واحدهاي اجرايي مستقل از هم :
پردازنده هاي DSP اكثرا داراي واحدهاي اجراي مستقل از هم هستند كه به صورت موازي قادر هستند كار كنند. به عنوان مثال علاوه بر واحد انجام عمليات ضرب واحد ALU براي انجام محاسبات منطقي و رياضي وجود دارد.
نمايش داده و دقت نمايش :
بيشتر پردازنده هاي DSP از داده ها به صورت نقطه ثابت[1] به جاي نمايش نقطه شناور[2] كه اكثرا در كاربردهاي مهندسي به كار مي رود، استفاده مي كنند. در فرمت نقطه ثابت نقطه باينري (معادل با نقطه مميز در عمليات رياضي مبناي 10) در مكان ثابتي در طول كلمه[3] قرار گرفته است و اين بر خلاف نمايش به فرم نقطه شناور است كه در آن اعداد به كمك توان و مانتيس نمايش داده مي شوند و نقطه باينري طبق ارزش توان تغيير مي كند. نمايش نقطه ثابت نسبت به نمایش نقطه شناور ارزان تر بوده و توان كمتري نسبت به آنها (در يك سرعت يكسان) مصرف
مي كنند. پردازنده هاي نقطه شناور نياز به سخت افزار اضافه تر و پيچيده تري براي تحقق يافتن ساختار خود دارند. اغلب پردازنده هاي نقطه ثابت از داده هاي به طول 16 بيت استفاده مي كنند كه براي اكثر كاربردهاي DSP مناسب مي باشند. پردازنده هاي با طول 20، 24 يا 32 بيت دقت بيشتري را فراهم مي كنند.
[1] Fixed Point
[2] Floating Point
[3] Word
حلقه هاي بدون بالا سري[1] :
الگوريتم هاي پردازش سيگنال داراي حلقه هاي فراواني مي باشند. پردازنده هاي DSP براي تحقق حلقه داراي ساختار خاصي مي باشند. اغلب يك دستورالعمل تكرار فراهم شده است كه به برنامه نويس اين امكان را مي دهد تا بدون صرف كردن سيكل اضافي براي به روز كردن و آزمايش كردن شماره گر حلقه و يا پرش به ابتداي حلقه، يك حلقه را پياده سازي كند اين مشخصات تحت عنوان «Zero-Overhead Loop» ناميده مي شود.
[1] Overhead
فصل دوم:
معرفی پردازنده هاي DSP
و
سخت افزارهای لازم جهت کار با آنها
2-1) مقدمه:
پردازندهها بر اساس فاکتورهایی مثل سرعت، انعطاف پذیری، مصرف انرژی، طراحی سریع و آسان و قیمت پردازنده واجزای آن مورد بررسی قرار میگیرند و نقش یک طراح برای انجام پردازش اطلاعات این است که بسته به کاربرد، بهترین پردازنده را انتخاب کند.
در حالت کلی برای انجام پردازش اطلاعات از قبیل آنالیز و فیلتر کردن به صورت دیجیتال میتوان از یکی از انواع پردازنده های زیر کمک گرفت. [3]
در این فصل پردازندههای DSP موجود در بازار معرفی میشوند و سه خانواده مهم آنها از نظر معماری، کاربرد و قیمت، مورد بررسی قرار میگیرند و کارت های آموزشی جهت کار با آنها معرفی میشوند و همچنین به علت در دسترس نبودن پردازندهی مناسب، یک نمونه بورد آموزشی به عنوان یک سامانهی حداقلی (Minimum system) از نظر سخت افزار داخلی بررسی میشود و در حین معرفی پردازندهها نحوهی ارتباط و ایجاد سیگنالهای خارجی به طور مختصر توضیح داده میشود و در فصل بعدی انواع نرم افزارهای موجود برای برنامه ریزی بوردهای مختلف معرفی می شوند.
مقدمه ی کلی برمعماری پردازنده های دیجیتال شرکت TI: [7]
همان طور که در شکل (2-5) مشاهده میشود یک پردازنده DSP به طور کلی دارای چهار قسمت اصلی زیر
می باشد:
- باسهای داخلی و خارجی
- اجزای جانبی
- حافظه ی داخلی و خارجی
- قسمت هسته ی مرکزی
کلاک همزمان[1] تولید شده در هستهی مرکزی با توجه به نحوهی برنامه ریزی شدن ثباتهای مختلف موجب فعال شدن و غیر فعال شدن بخشهای مختلف داخلی و خارجی می شود.
[1] SYSCLYOUT
-3-2د) بورد های [1]TDK: [2]
برخلاف بورد های ذکر شده در بالا این بورد ها توسط شرکت روسی Micro LAB Systems Ltd ساخته
می شود و از نظر ساختار و نرم افزارها کمی متفاوت با نمونه های قبلی است. اما امولاتورهای TI آنرا پشتیبانی
می کنند. در تحقیقی که توسط مرکز مخابرات ایران انجام شده نحوه ی کار این بورد شرح داده شده است. [2]
این سری از بورد ها قیمت بین 1000 تا 10000 دلار دارند.در شکل (2-21) چند نمونه از بورد ها به همراه قیمت و کاربرد آنها مشاهده می کنید.
شکل (2-21): لیست قیمت و قابلیت های بورد های TDK [16]
در قلب بورد TP6416 پردازنده ی سری C64xx وجود دارد و دارای خصوصیات زیر می باشد:
- توانایی انجام دستورات با نرخ 800MIPS
- حجم حافظه ی بالا روی بورد و درون پردازنده برای کد برنامه و داده
- ارتباط با پردازنده ی میزبان از طریق باس [2]PCI
بلاک دیاگرام اجزای کلی بورد TP6416 در شکل (2-22) مشاهده می کنید که درآن [3]SIOX مخصوص ارتباط سریال می باشد. از ECC[4] به همراه JTAG برای اشکال زدایی سخت افزاری استفاده می شود.
[1] TORNADO KIT
[2] peripheral component interconnect
[3] Serial I/O Expansion
[4] Emulation Controller Chip