اطلاعیه

Collapse
No announcement yet.

اموزش DSP

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : اموزش DSP

    سلام دوستان. من یک مقداری از DATA MANUAL TMS320F2812 را ترجمه کردم اونقدری که بشه یک دید کلی از DSP بدست بیارم و بفهمیم که از چه قسمت های تشکیل شده و رو چه روالی پیش بریم .بهتره طبق روالی که تو DATA MANUAL اومده پیش بریم حافظه،مدیر رویدا(EVA/B) مبدل انالوگ به دیجیتال و.... درضمن اگه تو ترجمه مشکلی هست ببخشید اگه جاییشم درست متوجه نشدید بگید تا بیشتر توضیح بدم.


    http://www.mediafire.com/?d0licfnvteg
    http://www.eca.ir/forum2/index.php/topic,10159.0.html
    Engineering is the art of making what you want from things you can get.
    اموزش DSP ...........................
    http://www.eca.ir/forum2/index.php?topic=29824.0
    http://www.eca.ir/forum2/index.php?topic=32324.0

    دیدگاه


      #17
      پاسخ : اموزش DSP

      سلام
      منم ترجمه بخش ADC رو تموم کردم. می دونم که در ترجمه حتما ایراد هایی وجود داره که با کمک دوستان برطرف خواهم کرد. عدد داخل پرانتز تعداد ویرایش های ترجمه هست یعنی اگر تغییر کرد یعنی ویرایش جدیدشو می تونید دانلود کنید :icon_razz:

      ADC(0).pdf

      سه تا عکس مهم تو بخشی که ترجمه کردم بود. گفتم اگر خواستین اونا رو پرینت بگیرین یا احیانا نا واضح دیده می شوند می تونید از لینک زیر دانلود کنید.

      Picture.rar

      پیروز و سربلند باشید

      آدمی از عالم خاکی نمی آید بدست

      عالمی دیگر بباید ساخت و از نو آدمی
      پردازش تصویر با FPGA از صفر تا انتها
      http://www.eca.ir/forum2/index.php?topic=74299.0

      دیدگاه


        #18
        پاسخ : اموزش DSP

        اینجوری مطالب خیلی پراکنده می شه...
        اگه تاپیک های فعلی رو ادامه بدیم بهتره:
        مثلا تاپیک های زیر:
        شروع به کار عملی با DSP
        مراحل انجام یک پروژه در Code Composer Studio
        ساخت DSK برای TMS320F2812
        به علت تعدد زیاد مطالب مربوط به DSP ها مطرح کردن آنها در یک تاپیک جز سر در گمی خواننده و گمراه شدن از بحث اصلی در دراز مدت چیزی به همراه نخواهد داشت. بهتره موضوعات را به چهار یا پنج تاپیک تقسیم بشه و در هر تاپیک در مورد یک فیلد خاص بحث بشه.

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

        آدمی از عالم خاکی نمی آید بدست

        عالمی دیگر بباید ساخت و از نو آدمی
        پردازش تصویر با FPGA از صفر تا انتها
        http://www.eca.ir/forum2/index.php?topic=74299.0

        دیدگاه


          #19
          پاسخ : اموزش DSP

          سلام امیدورم ترجمه data manual مفید بوده باشه حالا می خوام یکم در باره memory map توضیح بدم چون مهمه و اینکه حافظه dsp با میکرو متفاوته مطالبو که جمع اوری کردم انشا الله شروع می کنم
          http://www.eca.ir/forum2/index.php/topic,10159.0.html
          Engineering is the art of making what you want from things you can get.
          اموزش DSP ...........................
          http://www.eca.ir/forum2/index.php?topic=29824.0
          http://www.eca.ir/forum2/index.php?topic=32324.0

          دیدگاه


            #20
            پاسخ : اموزش DSP

            سلام. می خوام مبحث حافظه رو شروع کنم.
            جهت نگه داری ،انجام عملیات و اجرای دستور العمل های برنامه نویسی نیاز به حافظه می باشد.بلوک حافظه در f2812 شامل بخشهای زیر می باشد:
            128Kx16 حافظه از نوع فلش که شامل چهار بخش8Kx16 و شش بخش16Kx16 می باشد.1Kx16 حافظهOTP(فقط یکبار قابل برنامه ریزی می باشد) .دو بلوک L1,L0 که اندازه هر یک 4Kx16 که از نوع SARAM می باشند یعنی در هر سیکل یکبار قابل دسترسی هستند.یک بلوک 8Kx16 به نام H0 از نوعSARAM.دوبلوک SARAM دیگر به ناهای M0,M1 که هرکدام دارای حجم 1Kx16 می باشند. ادرسهای دقیق این بلوکها در DATA MANUAL موجود می باشند.
            ویژگیهای حافظه فلش:
            1- چند بخشی بودن:حداقال مقدار حافظه که می تواند پاک شود یک بخش نام دارد.داشتن چند بخش این امکان را فراهم می کند که بخشهایی از حافظه را که می خواهیم پاک کنیم و باقی را دست نخورده بگذاریم.
            2-امنیت کد:حافظه فلش به وسیله واحد امنیت کد(CSM) محافظت می شود.به وسیله برنامه ریزی یک پسورد به داخل فلش شما می توانید از دسترسی به فلش توسط افراد غیر مجاز جلوگیری کنید.(توصیه میکنم با این قسمت شوخی نکنید و خیلی مواظب باشید چون اگه فلش قفلشه و شما پسوردشو ندونید میلیاردها سال طول می کشه تا بتونید قفلشو باز کنید )
            3-مدهای کم توان:برای حفظ توان موقعی که فلش در حال استفاده نمی باشد دو مرحله حالت کم توان در دستر می باشد.
            4-حالتهای انتظار قابل تنظیم:حالتهای انتظار قابل تنظیم می توانند بر اساس فرکانس CPU برای بدست اوردن بهترین عملکرد سرعت اجرایی ممکن تنظیم شوند.
            5-عملکرد بهینه شده:یک مد خط لوله ای (PIPELINE) برای بهبود عملکرد اجرای کدهای خطی در نظر گرفته شده است.
            حافظه OTP :
            حافظه OTP شامل یک بلوک 1Kx16 می باشد که می تواند برای دیتا یا کد استفاده شود.این بلوک می تواند یکبار برنامه ریزی شود و غیر قابل پاک شدن می باشد.
            مدهای توان فلش و OTP
            حالت ریست یا SLEEP:این حالتی است که بعد از ریست قطعه اتفاق می افتد.در این حالت بانک و پمپ(احتمالا منظور از پمپ مداری است که کد یا داده رو از حافظه خارج و به CPU می فرسته)در مد SLEEP هستند.(کمترین توان) یک دستور خواندن توسط CPU یا یک واکشی از حافظه فلش OTP /فلش را از این مد خارج می کند.این دسترسی به طور خودکار یک تغییر در مد توان به منظور فعال کردن یا خواند مد وارد می کند.
            حالت استندبای:در این حالت بانک و پمپ در حالت مد استندبای قرار دارند.یک دستور خواندن توسط CPU یا یک واکشی از حافظه فلش، فلش/ OTP را از این مد خارج می کند.این دسترسی به طور خودکار یک تغییر در مد توان به منظور فعال کردن یا خواند مد وارد می کند.
            حالت فعال یا خواندن:در این حالت بانک و پمپ در حالت مد توان فعال هستند(بالاتری توان).زمانهای انتظار برای خواندن CPU و واکشی دستورالعملها توسط رجیسترهایFBANKWAIT , FOTPWAIT تنظیم می شوند.
            یک مکانیسم پیش واکشی که خط لوله فلش نامیده می شود می تواند برای بهبود عملیات واکشی کدهای خطی استفاده شود.
            بانک فلش/OTP و پمپ در طی خواندن یا اجرای دستورالعمل از روی فلش/OTPدر مد توان یکسانی هستند.
            شما می توانیدحالت توان جاری را به صورت زیر عوض کنید
            برای انتقال به یک مد توان پایینتر:بیتهای مدPWR را از یک مد بالاتر به یک مد پایینتر تغییر دهید.این تغییر فورا بانک فلش/OTP را به حالت کم توان تر انتقال می دهد.این رجیستر باید به وسیله یک کد اجرایی خارج از حافظه فلش/OTP دستیابی شود.
            برای انتقال از یک حالت پایین تر به یک حالت بالاتر دوراه وجود دارد:
            تغییر رجیسترFPWR از یک حالت پایین تر به بالاتر.این دسترسی حافظه فلش/OTP را به حالت بالاتر می اورد.
            دستیاببی به حافظه فلش/OTP به وسیله خواند یا واکشی برنامه.این دسترسی به طور خودکار حافظه را به حالت فعال وارد می کند.
            هنگامیکه از یک حالت با توان پایین تر به حالت بالا تر حرکت می کنیم یک تاخیر وجود دارداین تاخیر برای اینکه به فلش اجازه دهد تا در حالت بالاتر پایدار شود لازم است. اگر در اینهین یک دسترسی به فلش/OTP اتفاق بیافتدCPU به طور خودکار از پاسخ به ان ممانعت می کند تا تاخیر کامل شود.
            http://i31.tinypic.com/15cozgp.jpg
            مدت زمان تاخیربه وسیله رجیسترهایFSTDBYWAIT و FACTIVEWAITت تعین می شود.مقدار تاخیر برای حرکت از حالت SLEEP به استندبای به وسیله رجیستر FSTDBYWAIT تعیین می شود.همچنین مقدار تاخیر برای حرکت از حالت استندبای به حالت فعال توسط رجیستر FACTIVEWAIT تعیین می شودمقدار تاخیر حرکت از حالت SLEEP به فعال برابر است با FACTIVEWAIT+FSTDBYWAIY .
            ادامه دارد.....
            http://www.eca.ir/forum2/index.php/topic,10159.0.html
            Engineering is the art of making what you want from things you can get.
            اموزش DSP ...........................
            http://www.eca.ir/forum2/index.php?topic=29824.0
            http://www.eca.ir/forum2/index.php?topic=32324.0

            دیدگاه


              #21
              پاسخ : اموزش DSP

              [/right]سلام دوستان امیدوارم مطالب مفید بوده باشه .اگه جاییش نامفهومه بگین تا بیشتر توضیح بدم.
              ادامه توضیح حافظه:
              عملکرد فلش و OTP :
              عملیات واکشی یا خواندن CPU به صورتهای زیر انجام می شود
              1-واکشی دستورات 32 بیتی
              2-خواندن فضای داده به صورت 16 یا 32 بیتی
              3-خواندن فضای برنامه به صورت 16 بیتی
              هنگامی که فلش در حالت فعال می باشد یک دسترسی خواندن یا واکشی به نقشه بانک حافظه می تواند به سه مدل زیر دسته بندی شود
              1-دستیابی اتفاقی حافظه فلش:مقدار حالت انتظار برای یک دست یابی تصادفی به وسیله بیت RANDWAIT در رجیستر FBANKWAIT تنظیم می شود.این رجیستربه صورت پیش فرض با بدترین مقدار پر شده و لازم است کاربر مقدار مناسب برای حالت انتظار رابرای بهبود عملکرد برپایه نرخ ساعت CPU و زمان دستیابی فلش تنظیم کند.
              2-دسترسی صفحه ای به حافظه فلش:ارایه فلش از یک سطر و ستون تشکیل یافته است. هر سطر شامل 2048 بیت اطلاعات می باشد.اولین دست رسی به یک سطر به صورت اتفاقی می باشد.دسترسی های بعدی به همان سطرمی تواندبا یک زمان دستیابی سریعتر انجام شود.این روش به اصطلاح دسترسی صفحه ای نامیده می شود.
              فلش می تواند از امتیازات این روش با تنظیم زمان انتظار کمتر به وسیله کاربر و با استفاده از بیت PAGEWAIT در رجیستر FBANKWAIT بهره ببرد.این مدبرای فضای داده و برنامه و همچنین واکشی دستورها قابل استفاده است.
              3-دسترسی از طریق OTP: دسترسی خواندن یا واکشی از OTP به وسیله بیت OTPWAIT در رجیستر FOTPWAIT کنترل می شود.دسترسی به OTP از دسترسی به فلش زمان بیشتری می گیرد و از مد صفحه ای نیز پشتیبانی نمی کند.

              مد خط لوله ای فلش F28x :
              حافظه فلش معمولا برای ذخیره کد کاربری استفاده می شود.در طی اجرای کد دستورها به ترتیب از ادرسهای حافظه واکشی می شوند به جز هنگامیکه یک نا پیوستگی اتفاق بیافتد.معمولا قسمتی از کد که در ادرس ترتیبی قرار دارد قسمت اصلی کد کاربری را تشکیل می دهد و به عنوان کد خطی رجوع داده می شود.برای بهبود اجرای کدهای خطی یک مد خط لوله ای فلش پیاده سازی شده است.ست کردن بیت ENPIPE در رجیستر FOTP این مد را فعال می سازد.مد خط لوله ای فلش از خط لوله CPU مستقل می باشد.
              یک واکشی دستور از OTP یا فلش 64 بیت را در هر دسترسی می خواند.ادرس شروع دسترسی به فلش به طور خودکار به صورت 64 بیتی در می ایدطوری که دستوریکه باید واکشی شود 64 بیتی شود.با فعال سازی مد خط لوله ای فلش64 بیت دستور واکشی شده در یک بافر پیش واکشی 64 بیتی دوسطحی ذخیره می شودمحتوای این بافر پیش واکشی برای پردازش به CPU فرستاده می شود.تا دو دستور 32 بیتی یا 4 دستور 16 بیتی در یک دسترسی 64 بیتی بدست می اید.دستورهای 16C28xبیتی می باشند بنابراین هر واکشی دستور 64 بیتی از بانک فلش مانند این است که چهار دستور در بافر پیش واکشی اماده برای پردازش توسط CPU هستند.در طی زمانی که این دستورها پردازش می شوندخط لوله فلش به طور خودکاربه بانک فلش برای پیش واکشی 64 بیت بعدی دسترسی پیدا می کند . با این روش مد خط لوله فلش در پس زمینه به منظور پر نگه داشتن حداکثری بافر پیش واکشی کار می کند.استفاده از این تکنیک بازده کلی واکشی ترتیبی کد رااز فلش یا OTP به طور قابل توجهی بخبود می بخشد.
              پیش واکشی خط لوله فلش فقط به وسیله گسستگی شمارنده برنامه که به سبب اجرای یک دستور مانند یک انشعاب،BANZ ،فراخوانی یا حلقه اتفاق می افتد.وقتی این حالت اتفاق می افتد پیش واکشی ناقص می ماند و محتوای بافر پیش واکشی از بین می رود. هنگامیکه این اتفاق می افتد دو سناریو پیش می اید:
              1-اگر ادرس مقصد در داخل فلش یا OTP باشدپیش واکشی ناقص می ماند و سپس از ادرس مقصد ادامه می یابد.
              2-اکر ادرس مقصد خارج از فلش یا OTP باشدپیش واکشی ناقص می ماندو هنگامیکه فقط توسط یک انشعاب به فلش یا OTP برگردد مجددا شروع می شود.مکانیسم پیش واکشی خط لوله فلش فقط برای واکشی دستور از فضای برنامه کاربرد دارد.خواندن داده از حافظه داده و حافظه برنامه قابلیت پیش واکشی را به کار نمی گیرد و بافر پیش واکشی را بای پس میکند.به عنوان مثال دستورهایی مانند MAC,DMAC و PREAD که یک مقدار یک داده را از حافظه برنامه می خوانند.هنگامیکه این مدل خواندن اتفاق می افتد بافر پیش واکشی بای پس می شود اما محتویات ان از بین نمی رود.اگریک پیش واکشی دستور در حال اجرا باشد هنگامیکه یک عملیات خواندن داده شروع می شود،خواندن داده متوقف می ماند تا هنگامیکه پیش واکشی کامل شود.
              برای اطلاع از چگونگی تنظیم رجیسترها فلش به literatur number078d مراجعه کنیید[right]
              http://i26.tinypic.com/2i1jafm.jpg
              http://www.eca.ir/forum2/index.php/topic,10159.0.html
              Engineering is the art of making what you want from things you can get.
              اموزش DSP ...........................
              http://www.eca.ir/forum2/index.php?topic=29824.0
              http://www.eca.ir/forum2/index.php?topic=32324.0

              دیدگاه


                #22
                پاسخ : اموزش DSP

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

                پیروز و سربلند باشید.
                آدمی از عالم خاکی نمی آید بدست

                عالمی دیگر بباید ساخت و از نو آدمی
                پردازش تصویر با FPGA از صفر تا انتها
                http://www.eca.ir/forum2/index.php?topic=74299.0

                دیدگاه


                  #23
                  پاسخ : اموزش DSP

                  تو بخش بعدی میخوام یه کوچولو در باره برنامه نویسی اسمبلی f2812 توضیح بدم .روشهای ادرسی دهی حافظه.
                  http://www.eca.ir/forum2/index.php/topic,10159.0.html
                  Engineering is the art of making what you want from things you can get.
                  اموزش DSP ...........................
                  http://www.eca.ir/forum2/index.php?topic=29824.0
                  http://www.eca.ir/forum2/index.php?topic=32324.0

                  دیدگاه


                    #24
                    پاسخ : اموزش DSP

                    سلام می خواستم برم سراغ اسمبلی f2812 دیدم اگه یکم راجع به ساختار cpu و رجیسترها و باس ها توضیح بدم بهتره.
                    --معماری CPU :
                    همه قطعات F28x دارای یک واحد پردازش مرکزی،منطق امولاسیون و سیگنالهایی برای ارتباط با حافظه و واحد های جانبی می باشند.این سیگنالها شامل سه باس ادرس و سه باس داده می باشند.با توجه به شکل باس های سایه زده شده باسهای ارتباطی حافظه می باشند که خارج از CPU قرار دارند.باسهای عملوند مقادیر لازم برای ضرب کننده،شیفت دهنده و عملیات ALU را فراهم می کنند، وباسهای نتیجه ،نتایج را به رجیسترها و حافظه منتقل می کنند.بلوکهای اصلی CPU به صورت زیر است:
                    -منطق کنترل داده و برنامه:این منطق یک صف از دستورات واکشی شده از حافظه برنامه را در خود ذخیره می کند.
                    -امولاسیون بلادرنگ و اشکار.
                    -واحد محاسبه ثبات ادرس(ARAU) : واحد ARUA ادرسهارا برای مقادیری که باید از حافظه داده واکشی شوند تولید میکند.برای خواندن داده، ادرس روی باس ادرس خواندن داده(DRAB) قرار می گیرد.برای نوشتن داده ،داده روی باس ادرس نوشتن داده(DWAB) قرار می گیرد.ARUA همچنین مقدار اشاره گر پشته (SP) و رجیسترهای جانبی را افزایش یا کاهش می دهد.
                    -صف بندی پیش واکشی ها و کدگشایی دستورها.
                    -تولید ادرس برای برنامه و داده.
                    -MPY/ALU نقطه ثابت:ضرب کننده می تواند ضرب 32بیتی در 32بیتی به صورت مکمل دو را انجام دهد که نتیجه ان به صورت 64بیتی خواهد بود. در ارتباط با ضرب کننده F28xx از یک رجیستر 32 بیتی مضروب(XT) ،رجیستر نتیجه 32بیتی (P) و انباشتگر 32 بیتی (ACC) استفاده می کند.رجیستر XT یکی ازمقادیری که باید ضرب شود را در خود نگه می دارد.نتیجه ضرب می تواند به رجیستر P یا ACC ارسال شود.
                    -پردازش وقفه.
                    http://i29.tinypic.com/1znoj2s.jpg
                    --رجیسترهای CPU :
                    در عکس زیر رجیسترهای CPU و مقادیر پیش فرض انها پس از ریست امده است.

                    http://i31.tinypic.com/dxiex1.jpg
                    http://i30.tinypic.com/332ul4l.jpg
                    http://i25.tinypic.com/2uos1nc.jpg
                    -انباشتگر(ACC,AH,AL): انباشتگر (ACC) رجیستر اصلی کار قطعه می باشد.این رجیستر مقصد تمام عملیاتهای ALU می باشد به جز عملیاتی که مستقیما روی حافظه یا رجیسترها عمل می کند.ACC از انتقال،جمع، و تفریق و عملیات مقایسه از حافظه 32 بیتی داده در یک چرخه پشتیبانی می کند. این رجیستر همچنین می تواند 32 بیت از نتیجه یک عملیات ضرب را در خود نگه دارد.نصف یا یک چهارم ACC می تواند دستیابی شود.ACC می تواندبه عنوان دو رجیستر مستقل عمل کندAH و AL. بیتهای داخل AH و AL می توانند به صورت مستقل دستیابی شوند.دستورهای انتقال خاص بیتهای پر ارزش و کم ارزش AH و AL را می توانند ذخیره یا بار کنند.این کار جداسازا ی و تجمیع یک بایت را ساده می سازد.عکس زیر دستورات اسمبلی برای شیفت دادن محتویات ACC را توضیح می دهد.

                    -رجیستر مضروب(XT): رجیستر مضروب برای ذخیره یک مقدار 32 بیتی صحیح علامت دار برای یک عملیات ضرب 32 بیتی استفاده می شود.16 بیت بخش پایین رجیستر XTبه عنوان رجیسترTL شناخته می شود.این رجیستر می تواند بایک مقدار 16 بیتی علامت دار پر شود که به طور خودکار گسترش بیت علامت باعث می شود که 32 بیت رجیستر XT پر شود.
                    16 بیت بخش بالای رجیستر XT به نام رجیستر T شناخته می شود. رجیستر T در اصل برای ذخیره یک مقدار 16 بیتی صحیح پیش از انجام یک عمل ضرب 16بیتی استفاده می شود.رجیستر T همچنین برای تعیین مقدار شیفت برای تعدادی از عملیات های شیفت استفاده می شود .در این مورد فقط یک بخش از رجیستر T بسته نوع دستور استفاده می شود.
                    به عنوان مثال
                    یک شیفت حسابی به سمت راست بر اساس مقدار چهار بیت کم ارزش T:T(3:0)=0...15
                    ASR AX,T
                    ASRL ACC,T
                    یک شیفت حسابی به سمت راست انجام می دهد.مقدار شیفت بر اساس پنج بیت کم ارزش تر T:T(4:0)=0...31
                    FOR MORE INFORMATION REFER TO LITERATURE NUMBER SPRU430D
                    ادامه دارد...
                    http://www.eca.ir/forum2/index.php/topic,10159.0.html
                    Engineering is the art of making what you want from things you can get.
                    اموزش DSP ...........................
                    http://www.eca.ir/forum2/index.php?topic=29824.0
                    http://www.eca.ir/forum2/index.php?topic=32324.0

                    دیدگاه


                      #25
                      پاسخ : اموزش DSP

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

                      پیروز و سربلند باشید.
                      آدمی از عالم خاکی نمی آید بدست

                      عالمی دیگر بباید ساخت و از نو آدمی
                      پردازش تصویر با FPGA از صفر تا انتها
                      http://www.eca.ir/forum2/index.php?topic=74299.0

                      دیدگاه


                        #26
                        پاسخ : اموزش DSP

                        منابع همه متعلق به TI هستند.aplication note,reference guid,data manual به جز اینها منابع دیگه ای نمی تونید پیدا کنید چون اکثرا برای استفاده از منابع دیگه باید هزینش رو بپردازین و به صورت free نمی تونید چیز خاصی پیدا کنید.
                        http://www.eca.ir/forum2/index.php/topic,10159.0.html
                        Engineering is the art of making what you want from things you can get.
                        اموزش DSP ...........................
                        http://www.eca.ir/forum2/index.php?topic=29824.0
                        http://www.eca.ir/forum2/index.php?topic=32324.0

                        دیدگاه


                          #27
                          پاسخ : اموزش DSP

                          یه پی دی اف خوب پیدا کردم که برخی مطالب فنی و کاربردی رو توش به صورت خلاصه توضیح داده.




                          اینم جالبه که به موقعش پیرامونش بحث می کنیم
                          آدمی از عالم خاکی نمی آید بدست

                          عالمی دیگر بباید ساخت و از نو آدمی
                          پردازش تصویر با FPGA از صفر تا انتها
                          http://www.eca.ir/forum2/index.php?topic=74299.0

                          دیدگاه


                            #28
                            پاسخ : اموزش DSP

                            سلام دوستان مبحث رو با ادامه معرفی رجیسترهای cpu ادامه می دم.
                            -رجیستر ضرب(P,PH,PL) :رجیستر ضرب معمولا برای نگه داری 32 بیت نتیجه عمل ضرب کردن استفاده می شود.این رجیستر همچنین می تواند مستقیما از یک مکان 16 یا 32 بیتی حافظه،با یک ثابت 16 بیتی ،32 بیت داده داخل ACC یا یک رجیستر 32 یا 16 بیتی قابل ادرس دهی CPU بار شود.رجیستر P می تواند همانند یک رجیستر 32 بیتی یا دو رجیستر 16 بیتی مستقل عمل کند.PH بیتهای بالا و PL بیتهای پایین. هنگامیکه بعضی از دستورات PH,PL,P را دستیابی می کنند همه 32 بیت به داخل شیفت دهنده ALU کپی می شوندکه شیفت دهنده BARREL ممکن است یک شیفت به چپ یا راست یا هیچ عمل شیفتی را انجام دهد.عملکرد شیفت دهنده برای این دستورها به وسیله بیتهای مد شیفت ضرب (PM) در رحیستر وضعیت ST0 تعیین می شود.هنگامیکه شیفت دهنده یک شیفت به چپ انجام می دهد بیتهای پایین رتبه با مقدار صفر پر می شوند.هنگامیکه یک شیفت به راست انجام می شود بیتهای بالا رتبه با بیت علامت پر می شوند. دستورهایی که از PH و PL ببه عنوان عملوند استفاده می کنند مد شیفت ضرب را نادیده می گیرند.
                            - اشاره گر صفحه داده:در مدهای ادرس دهی مستقیم حافظه داده به صورت بلوکهای 64 کلمه ای که صفحات داده نامیده می شوند ادرس دهی می شوند.4M کلمه پایین حافظه داده شامل 65536 صفحه داده می باشند.در مد ادرس دهی مستقیم اشاره گر 16 بیتی صفحه داده شماره صفحه جاری را در خود نگه می دارد.شما می توانید با لود کردن یک مقدار جدید به داخلDP صفحه داده جاری را تغییر دهید.
                            حافظه داده بالای 4M به وسیله DP قابل دسترسی نمی باشند.
                            -اشاره گر پشته(SP) :اشاره گر پشته استفاده از یک پشته نرم افزاری در حافظه داده را ممکن می سازد.اشاره گر پشته 16 بیتی می باشد و فقط می تواند 64K از فضای داده را ادرس دهی کند.
                            عملکرد پشته به صورت زیر می باشد:
                            *پشته از حافظا کمتر به بیشتر رشد می کند.
                            *SP همیشه به مکان خالی بعدی در پشته اشاره می کند.
                            *هنگام ریستSP ادرس دهی اولیه می شود طوریکه به ادرس 0x00000400 اشاره می کند.
                            *هنگامیکه یک مقدار 32 بیتی در پشته ذخیره می شود ابتدا 16 بیت کم ارزشتر ذخیره می شود و16 بیت پرارزشتر در مکان بالا تر ذخیره می شود.(فرمت little endian)
                            *هنگامیکه یک دستور 32 بیتی یک مقدار 32 بیتی را می خواند یا می نویسدCPU انتظار دارد که پوشش دهنده حافظه یا منطق واسط جانبی مقدار خوانده شده یا نوشته شده را با یک ادرس زوج تراز کند.به عنوان مثال اگر SP شامل ادرس فرد 0x0000083 باشد یک دستور خواند 32 بیتی از ادرس 0x00000082 و 0x00000083 خوانده می شود.
                            *SP اگر مقدارش ازFFFF بگذرد یا از 0000 بگذرد سرریز می کند.هنگامیکه SP ازFFFE بگذرد اشاره گر از 0000 شروع به شمردن می کند .به عنوان مثالاگر SP=FFFF باشد و یک دستور 3 واحد به SP اضافه کند نتیجه 0001 خواهد بود..اگر SP از 0000 کمتر شود مقدار شمارش ازFFFF به عقب بر می گردد. به عنوان مثال اگر SP=0002 باشد و یک دستور 4 واحد از SP کم کند نتیجه FFFE خواهد شد.
                            * هنگامیکه یک مقدار داخل پشته ذخیره می شود SP مجبور نیست با ادرسهای زوج یا فرد تنظیم شود.تنظیم فقط به وسیله پوشش دهنده حافظه یا منطق واسط جانبی انجام خواهد شد.
                            -رجیسترهای جانبی(XAR0-XAR7,AR0-AR7) : هشت رجیستر 32 بیتی که می توانندبه عنوان اشاره گر به حافظه و همچنین به عنوان رجیسترهای عمومی همه منظوره استفاده شوند توسط CPU فراهم شده است. تعداد زیادی از دستورها به شما قابلیت دستیابی به 16 بیت کم ارزشتر XAR0-XAR7 را می دهند.16 بیت کم ارزشتر رجیسترهای جانبی به نام AR0-AR7 شناخته می شوند.انها می توانند به عنوان رجیستر های همه منظوره بری کنترل حلقه ها و برای عملیات مقایسه 16 بیتی استفاده شوند.هنگامیکه به AR0-AR7 دستیابی می شود16 بیت بالای رجیسترکه به نام AR0H-AR7H شناخته می شوند بسته به دستور استفاده شده می توانند تنظیم شوند یا نشوند.AR0H-AR7Hفقط می توانند به عنوان قسمتی از XAR0-XAR7 دستیابی شوند و به صورت مستقل غیر قابل دسترس هستند.
                            برای عملیات ACC همه 32 بیت معتبر هستند.برای عملیات 16 بیتی،فقط 16 بیت پایین استفاده می شود و بیت های بالانادیده گرفته می شوند.
                            XAR0-XAR7 با تعدادی از دستورها می توانند برای اشاره به هر مقداری در حافظه برنامه استفاده شوند.خیلی از دستورها به شما اجازه دسترسی به 16 بیت کم ارزشتر XAR0-XAR7 را می دهند.

                            ادامه دارد...
                            موفق باشید .
                            http://www.eca.ir/forum2/index.php/topic,10159.0.html
                            Engineering is the art of making what you want from things you can get.
                            اموزش DSP ...........................
                            http://www.eca.ir/forum2/index.php?topic=29824.0
                            http://www.eca.ir/forum2/index.php?topic=32324.0

                            دیدگاه


                              #29
                              پاسخ : اموزش DSP

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

                              http://www.4shared.com/file/122454748/a5cfa385/F2810_F2811_and_F2812_ADC.html

                              پیروز و سربلند باشید.
                              آدمی از عالم خاکی نمی آید بدست

                              عالمی دیگر بباید ساخت و از نو آدمی
                              پردازش تصویر با FPGA از صفر تا انتها
                              http://www.eca.ir/forum2/index.php?topic=74299.0

                              دیدگاه


                                #30
                                پاسخ : اموزش DSP

                                سلام .ادامه مبحث رجیسترهای CPU
                                -شمارنده برنامه (PC) :هنگامیکه خط لوله پر است،شمارنده 22 بیتی برنامه همیشه به دستوری که در حال پردازش می باشد اشاره دارد-دستری که دو فاز از خط لوله را طی کرده باشد.هنگامیکه یک دستور به این فاز از خط لوله رسیده باشد نمی تواند به وسیله یک وقفه از بین برود چون قبل از رسیدگی به وقفه اجرا می شود.درباره عملکرد خط لوله بحث خواهد شد.
                                -باز گشت شمارنده برنامه(RPC) :هنگامیکه یک دستور فراخوانی با استفاده از دستور LCR انجام می شود ادرس باز گشت در رجیستر RPC ذخیره می شود و مقدار قبلی داخل RPC داخل پشته با دو عملیات 16 بیتی ذخیره می شود.هنگامیکه یک دستور برگشت با استفاده از دستور LRETR انجام می شود ادرس برگشت از رجیستر RPC خوانده می شود و مقدار موجوددر پشته در رجیستر RPC نوشته می شود.دستورات فراخوانی دیگر از رجیستر RPC استفاده نمی کنند.
                                -رجیسترهای وضعیت (ST0,ST1) : دو رجیستر ST0 و ST1 در هسته F28x وجود داردکه شامل بیتهای کنترل و بیتهای پرچم مختلف هستند.این رجیسترها می توانند از حافظه بار یا داخل حافظه ذخیره شوند که می توانند وضعیت ماشین را برای زیر برنامه ها ذخیره یا باز یابی کنند. بیتهای وضعیت با توجه به مقادیر تنظیم شده در خط لوله سازماندهی می شوند.بیتهای ST0 با توجه به فازهای اجرایی خطه لوله تنظیم می شوند. برای اطلاع از چگونگی تاثیر پذیری بیتهای رجیسترهای ST0 و ST1 به literature number SPRU430D مراجعه کنید.
                                -رجیسترهای کنترل وقفه (IFR,IER,DBGIER) : سه رجیستر به منظور کنترل وقفه ها وجود دارد.
                                * رجیستر پرچم وقفه (IFR)
                                * رجیستر فعال ساز وقفه (IER)
                                *رجیستر فعال ساز وقفه اشکال زدایی
                                این رجیستر ها وقفه ها را در سطح CPU مدیریت می کنند.قطعات با بلوک گسترش دهنده وقفه جانبی (PIE) کنترل وقفه اضافی به عنوان قسمتی از واحد PIE دارند.
                                IFR شامل بتهای پرچم برای وقفه های قابل پوشش می باشد.هنگامیکه یکی از این پرچم ها به وسیله سخت افزار یا نرم افزار ست شده باشد،وقفه متناظر با ان اگر فعال باشد سرویس دهی می شود. شما می توانید یک وقفه قابل پوشش را با استفاده از بیت متناظر با ان در رجیستر IER فعال یا غیر فعال کنید.
                                خوب بحث در رابطه با رجیسترهای CPU تقریبا تموم شده البته برای اطلا عات جزییتر به منبع مراجعه کنید.
                                حال یه مختصری در باره گردش برنامه در DSP توضیح می دم:
                                -گردش برنامه : منطق کنترل برنامه و منطق تولید ادرس برنامه به منظور بهبود گردش برنامه باهم کار می کنند. معمولا گردش یک برنامه به صورت ترتیبی می باشد یعنی دستورات پشت سر هم اجرا می شود.CPU دستورات را در ادرسهای متوالی حافظه برنامه اجرا می کند .هنگامیکه یک نا پیوستگی لازم است برنامه بایدبه یک ادرس غیر متوالی پرش کند و دستورات متوالی را در ادرس جدید ادامه دهد برای این منظور F28x از وقفه ها انشعابها، فراخوانی ها ،بازگشت ها و تکرار ها پشتیبانی می کند.
                                گردش برنامه مناسب همچنین به حرکت روان در سطح دستورات نیاز دارد.برای بدست اوردن این مشخصه F28x یک خط لوله محافظت شده و یک مکانیسم واکشی دستور که سعی کند خط لوله را همیشه پر نگه دارد در خود قرار داده است.
                                -وقفه ها:رویدادهای وقفه به صورت سخت افزاری و نرم افزاری راه اندازی می شوند که سب می شود CPU توالی برنامه جاری را معلق بگذارد و زیر برنامه ای را که روال سرویس وقفه فراخوانی کرده است را اجرا کند. چون قسمت وقفه دارای جداول زیادی می باشد دوستان برای اطلاع بیشتر به منابع موجود رجوع کنند.
                                -انشعاب،فراخوانی و بازگشت:انشعابهافراخوانی ها وبازگشت ها روال ترتیبی برنامه را با انتقال کنترل به مکان دیگری از حافظه می شکنند.یک انشعاب فقط کنترل را به مکان جدید می برد.یک دستور فراخوانی همچنین ادرس باز گشت را نیز ذخیره می کند.زیر برنامه فراخوانی شده یا سرویس های وقفه هر یک با یک دستور بازگشت پایان می یا بندکه ادرس باز گشت را از پشته یا از XAR7 یا RPC می گیرند و در PC قرار می دهند.دستواتی که در ادامه می ایند برای انشعاب به یک شرط احتیاج دارند: B,BANZ,BAR,BF,SB,SBF,XBANZ,XCALL و XRETC .این دستورات فقط هگامیکه یک شرط تعریف شده را مشاهده کنند و درستی ان تایید شود اجرا می شوند.
                                -تکرار یک دستور منفرد:دستور تکرار (RPT) اجازه می دهد که یک دستور منفرد N+1 با تکرار شود که N به عنوان عملوند دستور RPT تعریف شده است.دستور یک بار اجرا و N بار تکرار می شود .هنگامیکه RPT اجرا می شود شمارنده تکرار (RPTC) با مقدار N پر می شود.RPTC هر بار که برنامه اجرا می شود کاهش می یابد تا جایی که برابر صفر شود.این دستور تقریبا مثل حلقه FOR می باشد منتها با تعداد تکرار مشخص .
                                -عملکرد خط لوله :هر دستور از هشت مرحله برای شکل دهی عملکرد خطه لوله ای عبور می کند.در هر زمان تا هشت دستور می تواند در فازهای مختلف تکمیل فعال باشند.همه دستورات خواندن و نوشتن در یک فاز اتفاق نمی افتد و مکانیسم حفاظتی خط لوله ای دستورات را تازمانی که نیاز است نگه می دارد تا مطمئن شود خواندن ها و نوشتن ها در همان مکانی که برنامه برنامه ریزی شده است اتفاق بیافتد.
                                برای حداکثر کردن بازدهی خط لوله یک مکانیسم واکشی دستور سعی می کند که خط لوله را همیشه پر نگه دارد.نقش ان پر نگه داشتن یک صف از دستورهایی است که برای کدگشایی و اجرا اماده اند.مکانیسم واکشی دستور ،32 بیت را در یک زمان از حافظه برنامه واکشی می کند، که می تواند یک دستور 32 بیتی یا دو دستور 16 بیتی باشد.
                                مکانیسم واکشی دستور از سه شمارنده ادرس برنامه استفاده می کند:شمارنده برنامه (PC)،شمارنده دستور (IC) و شمارنده واکشی (FC).هنگامیکه خط لوله پر است PC همیشه به دستوری که در فاز 2 کدگشایی خط لوله قرار دارد اشاره می کند.IC به دستور بعدی که باید پردازش شود.هنگامیکه PC به یک دستور یک کلمه ای اشاره می کند IC=PC+1 .هگامیکه PC به یک دستور دو کلمه ای اشاره می کندIC=PC+2 .مقدار داخل FC ادرس بعدی که باید واکشی شود می باشد.برای اگاهی از جزئیات بیشتر به منابع موجود مراجعه کنید.
                                http://www.eca.ir/forum2/index.php/topic,10159.0.html
                                Engineering is the art of making what you want from things you can get.
                                اموزش DSP ...........................
                                http://www.eca.ir/forum2/index.php?topic=29824.0
                                http://www.eca.ir/forum2/index.php?topic=32324.0

                                دیدگاه

                                لطفا صبر کنید...
                                X