DSP Lab Instruction - V1
DSP Lab Instruction - V1
ﺗﻬﯿﻪ ﮐﻨﻨﺪه:
ﺷﺮﮐﺖ ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
1 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
(1ﻣﻘﺪﻣﻪ:
ﺳﯿﮕﻨﺎلﻫﺎ ﺑﻪ ﺳﻪ دﺳﺘﻪي ﺳﯿﮕﻨﺎلﻫﺎي زﻣﺎن ﭘﯿﻮﺳﺘﻪ )آﻧﺎﻟﻮگ( ،ﺳﯿﮕﻨﺎلﻫﺎي زﻣﺎن ﮔﺴﺴﺘﻪ و ﺳﯿﮕﻨﺎلﻫﺎي دﯾﺠﯿﺘﺎل ﺗﻘﺴﯿﻢ
ﻣﯽﺷﻮﻧﺪ .ﺳﯿﮕﻨﺎلﻫﺎﯾﯽ ﮐﻪ روزاﻧﻪ ﺑﺎ آن ﻫﺎ روﺑﺮو ﻣﯽﺷﻮﯾﻢ ،ﺳﯿﮕﻨﺎلﻫﺎي آﻧﺎﻟﻮگ ﻫﺴﺘﻨﺪ .ﺳﯿﮕﻨﺎلﻫﺎي آﻧﺎﻟﻮگ ﻣﺘﻐﯿﯿﺮﻫﺎي ﭘﯿﻮﺳﺘﻪ
ﻣﯽﺑﺎﺷﻨﺪ .اﯾﻦ ﺳﯿﮕﻨﺎلﻫﺎ داراي ﮔﺴﺘﺮهي ﺗﻐﯿﯿﺮات ﺑﯽ ﻧﻬﺎﯾﺖ در داﻣﻨﻪ ﻫﺴﺘﻨﺪ و ﺑﺮاي ﭘﺮدازش آن ﻫﺎ ﻣﯽ ﺗﻮان از اﻟﮑﺘﺮوﻧﯿﮏ
آﻧﺎﻟﻮگ ﮐﻪ ﺷﺎﻣﻞ ﻗﻄﻌﺎت ﻣﺪاري اﮐﺘﯿﻮ و ﭘﺴﯿﻮ ﻣﺎﻧﻨﺪ ﻣﻘﺎوﻣﺖ ،ﺧﺎزن و ﺳﻠﻒ اﺳﺖ ،اﺳﺘﻔﺎده ﻧﻤﻮد .ﻫﺮﮐﺪام از ﺣﻮاس ﭘﻨﺠﮕﺎﻧﻪ ﻣﺎ
ﺑﻪ ﺳﯿﮕﻨﺎلﻫﺎي آﻧﺎﻟﻮگ ﻣﺨﺘﻠﻔﯽ ﺣﺴﺎس اﺳﺖ .ﺑﺮاي ﻣﺜﺎل ﮔﻮشﻫﺎي ﻣﺎ ﺑﻪ ﺻﺪا ،ﭼﺸﻢﻫﺎي ﻣﺎ ﺑﻪ ﻧﻮر و ...ﺣﺴﺎس ﻫﺴﺘﻨﺪ .وﻗﺘﯽ
ﮐﻪ ﻣﺎ ﯾﮏ ﺳﯿﮕﻨﺎل درﯾﺎﻓﺖ ﻣﯽﮐﻨﯿﻢ ،اﻧﺪامﻫﺎي ﺣﺴﯽ ﻣﺎ آن را ﺑﻪ ﯾﮏ ﺳﯿﮕﻨﺎل اﻟﮑﺘﺮﯾﮑﯽ ﺗﺒﺪﯾﻞ ﮐﺮده و ﺑﻪ ﮐﺎﻣﭙﯿﻮﺗﺮ آﻧﺎﻟﻮگ ﻣﺎ،
ﯾﻌﻨﯽ ﻣﻐﺰ ﻣﯽ ﻓﺮﺳﺘﻨﺪ .ﻣﻐﺰ ﻣﺎ ﯾﮏ ﮐﺎﻣﭙﯿﻮﺗﺮ ﺑﺴﯿﺎر ﻗﺪرﺗﻤﻨﺪ اﺳﺖ ﮐﻪ ﻋﻤﻠﮑﺮد آن ﻧﺴﺒﺖ ﺑﻪ ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎي دﯾﺠﯿﺘﺎل ﺑﯽﻫﻤﺘﺎ اﺳﺖ.
ﻣﻐﺮ ﻣﺎ ﻧﻪ ﺗﻨﻬﺎ اﻃﻼﻋﺎت رﺳﯿﺪه را ﺗﺤﻠﯿﻞ ﻣﯽﮐﻨﺪ ﺑﻠﮑﻪ ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ داده ﻫﺎ ﺗﺼﻤﯿﻢﮔﯿﺮي ﻧﯿﺰ ﻣﯽﮐﻨﺪ.
ﺳﯿﮕﻨﺎلﻫﺎي زﻣﺎن ﮔﺴﺴﺘﻪ ﻓﻘﻂ در ﯾﮏ ﺳﺮي از ﻓﺎﺻﻠﻪﻫﺎي زﻣﺎﻧﯽ ﻣﺸﺨﺼﯽ ﺗﻌﺮﯾﻒ ﺷﺪه ﻫﺴﺘﻨﺪ .ﺑﻨﺎﺑﺮاﯾﻦ آنﻫﺎ ﻣﯽﺗﻮاﻧﻨﺪ
ﺗﻮﺳﻂ ﯾﮏ رﺷﺘﻪ از اﻋﺪاد ﮐﻪ داراي ﻣﻘﺪارﻫﺎي ﭘﯿﻮﺳﺘﻪ ﻫﺴﺘﻨﺪ ،ﺑﯿﺎن ﺷﻮﻧﺪ.
ﺳﯿﮕﻨﺎلﻫﺎي دﯾﺠﯿﺘﺎل داراي ﻣﻘﺪارﻫﺎي ﮔﺴﺴﺘﻪ ﻫﻢ در زﻣﺎن و ﻫﻢ در داﻣﻨﻪ ﻫﺴﺘﻨﺪ .ﺑﻨﺎﺑﺮاﯾﻦ آنﻫﺎ ﻣﯽﺗﻮاﻧﻨﺪ ﺗﻮﺳﻂ
ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎ و ﻣﯿﮑﺮوﭘﺮوﺳﺴﻮرﻫﺎ ﭘﺮدازش ﺷﻮﻧﺪ.
ﻣﺰﯾﺖ ﺳﯿﺴﺘﻢ ﻫﺎي آﻧﺎﻟﻮگ ﻋﺒﺎرﺗﻨﺪ از:
ﻗﯿﻤﺖ ارزان و ﺳﺎدﮔﯽ در ﺑﻌﻀﯽ از ﮐﺎرﺑﺮدﻫﺎ ﻣﺎﻧﻨﺪ: ·
oﺗﻀﻌﯿﻒ ﮐﻨﻨﺪهﻫﺎ و ﺗﻘﻮﯾﺖ ﮐﻨﻨﺪهﻫﺎ
oﻓﯿﻠﺘﺮﻫﺎي ﺳﺎده
ﭘﻬﻨﺎي ﺑﺎﻧﺪ وﺳﯿﻊ )(GHz ·
ﻣﯿﺰان ﺳﯿﮕﻨﺎل ﮐﻢ ·
ﻧﺮخ ﻧﻤﻮﻧﻪ ﺑﺮداري ﻣﻮﺛﺮ ﺑﯽ ﻧﻬﺎﯾﺖ ·
oدﻗﺖ ﺑﯽ ﻧﻬﺎﯾﺖ در ﻓﺮﮐﺎﻧﺲ
oﻋﺪم وﺟﻮد ﻣﺸﮑﻼت ﻣﺮﺑﻮط ﺑﻪ اﺧﺘﻼط ﻓﺮﮐﺎﻧﺴﯽ و ﺑﺎزﺳﺎزي آن
5 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
_________________________
1
application-specific integrated circuits
2
field-programmable gate arrays
3
application-specific hardware (HW) accelerators
6 ﻣﻘﺪﻣﻪ :آﺷﻨﺎﯾﯽ ﺑﺎ ﭘﺮدازﻧﺪه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
دﺳﺘﮕﺎهﻫﺎي ASICﻣﻌﻤﻮﻻً ﺑﺮاي وﻇﺎﯾﻒ ﻣﺸﺨﺼﯽ از ﻗﺒﯿﻞ ﻣﻮدم ﻫﺎي DSLو ﯾﺎ ﻣﺤﺼﻮﻻﺗﯽ ﮐﻪ از اﻟﮕﻮرﯾﺘﻢ ﻫﺎي
ﺗﻮﺳﻌﻪ ﯾﺎﻓﺘﻪاي ﻣﺎﻧﻨﺪ FFTاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﻨﺪ ،ﻃﺮاﺣﯽ ﺷﺪهاﻧﺪ .اﯾﻦ وﺳﺎﯾﻞ ﺑﺎ ﺑﻬﺮه ﮔﯿﺮي از ﻣﻌﻤﺎري اﺧﺘﺼﺎﺻﯽ ﺧﻮدﺷﺎن ﻗﺎدرﻧﺪ
ﮐﻪ وﻇﺎﯾﻒ ﻣﺤﺪودﺷﺎن را ﺧﯿﻠﯽ ﺳﺮﯾﻊﺗﺮ از ﭘﺮدازﺷﮕﺮﻫﺎي ﻫﻤﻪ ﻣﻨﻈﻮره اﻧﺠﺎم دﻫﻨﺪ.
ﻣﺰﯾﺖ ﻫﺎ: ·
oﺳﺮﻋﺖ ﻣﻨﺎﺳﺐ
oﻣﺼﺮف ﺗﻮان ﮐﻢ
oﻗﯿﻤﺖ ﻣﻨﺎﺳﺐ ﺑﻪ ازاي ﻋﻤﻠﮑﺮدي ﮐﻪ دارد
oاﻧﻌﻄﺎف ﭘﺬﯾﺮي ﻃﺮح
ﻋﯿﺐ ﻫﺎ: ·
oﻗﯿﻤﺖ زﯾﺎد ﺑﺮاي ﺗﻮﺳﻌﻪ دادن
oﻣﺪت زﻣﺎن زﯾﺎدي ﺑﺮاي ﺗﻮﺳﻌﻪ دادن آن ﻫﺎ ﻃﻮل ﻣﯽ ﮐﺸﺪ
oﻋﺪم اﻧﻌﻄﺎف ﭘﺬﯾﺮي ﺑﺮاي ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﻰ ﻣﺠﺪد
FPGA ·
FPGAﻫﺎ ﺑﺎ اﺳﺘﻔﺎده از ﻣﻌﻤﺎري ﻣﻮازي ﻋﺎﻟﯿﺸﺎن ﻗﺪرت ﻣﺤﺎﺳﺒﺎﺗﯽ ﭼﺸﻤﮕﯿﺮي را ﺑﺮاي ﮐﺎراﯾﯽ ﺧﯿﻠﯽ ﺑﺎﻻ ﻓﺮاﻫﻢ ﻣﯽﮐﻨﻨﺪ.
ﺳﺨﺖ اﻓﺰار FPGAﻗﺎﺑﻞ ﭘﯿﮑﺮﺑﻨﺪي ﻣﺠﺪد ﻣﯽﺑﺎﺷﺪ ،ﺑﻨﺎﺑﺮاﯾﻦ ﺑﻪ ﻃﺮاﺣﺎن ﺳﯿﺴﺘﻢ ،اﯾﻦ اﺟﺎزه را ﻣﯽدﻫﺪ ﮐﻪ ﺑﺮاي ﭘﯿﺎده ﺳﺎزي
اﻟﮕﻮرﯾﺘﻢﻫﺎﯾﯽ ﮐﻪ ﻧﯿﺎزﻣﻨﺪ ﻋﻤﻠﮑﺮد ﺑﺎﻻ و ﻗﯿﻤﺖ ﺗﻮﻟﯿﺪ ﮐﻢ ﻫﺴﺘﻨﺪ ،ﻣﻌﻤﺎري ﺳﺨﺖ اﻓﺰاري را ﺑﻬﯿﻨﻪ ﺳﺎزي ﮐﻨﻨﺪ.
ﻣﺰﯾﺖ ﻫﺎ: ·
oاﻧﻌﻄﺎف ﭘﺬﯾﺮي ﺑﯿﺸﺘﺮ ﻧﺴﺒﺖ ﺑﻪ ASIC
oﻋﻤﻠﮑﺮد ﺑﺎﻻ در ﺑﻌﻀﯽ از ﮐﺎرﺑﺮدﻫﺎ
oﻗﺎﺑﻠﯿﺖ اﺳﺘﻔﺎده از ﺳﺨﺖ اﻓﺰار ﯾﮑﺴﺎن ﺑﺮاي ﮐﺎرﺑﺮدﻫﺎي ﻣﺨﺘﻠﻒ
ﻋﯿﺐ ﻫﺎ: ·
oﻣﺪت زﻣﺎن زﯾﺎدي ﺑﺮاي ﺗﻮﺳﻌﻪ دادن آن ﻫﺎ ﻃﻮل ﻣﯽ ﮐﺸﺪ
oﻧﺴﺒﺖ ﺑﻪ DSPﻫﺎ ﮔﺮان ﺗﺮ ﻫﺴﺘﻨﺪ
oﻧﺴﺒﺖ ﺑﻪ DSPﻫﺎ ﺗﻮان ﺑﯿﺸﺘﺮي ﻣﺼﺮف ﻣﯽ ﮐﻨﻨﺪ
oﻧﺴﺒﺖ ﺑﻪ DSPﻫﺎ زﻣﺎن ﻋﺮﺿﻪء آن ﻫﺎ ﺑﻪ ﺑﺎزار ﮐﻨﺪﺗﺮ اﺳﺖ
ﺧﻮدرو اﺳﺘﻔﺎده ﻣﯽﮐﻨﻨﺪ .اﺑﺰارﻫﺎﯾﯽ ﮐﻪ ﺑﺮاي ﺗﻮﺳﻌﻪي ﻧﺮم اﻓﺰاري دﺳﺘﮕﺎهﻫﺎي μP/μCاﺳﺘﻔﺎده ﻣﯽﺷﻮﻧﺪ ﺑﻪ ﻃﻮر ﮐﻠﯽ از آنﻫﺎﯾﯽ
ﮐﻪ ﺑﺮاي ﺳﯿﺴﺘﻢﻫﺎي DSPدر دﺳﺘﺮس ﻫﺴﺘﻨﺪ ،ﭘﯿﺸﺮﻓﺘﻪﺗﺮ و ﻗﺪرﺗﻤﻨﺪﺗﺮ ﻫﺴﺘﻨﺪ .ﺑﻨﺎﺑﺮاﯾﻦ ﺑﺮاي ﺗﻌﺪادي از ﮐﺎرﺑﺮدﻫﺎ ﮐﻪ ﮐﻤﺘﺮ
ﻧﯿﺎزﻣﻨﺪ ﮐﺎراﯾﯽ و ﻣﺼﺮف ﺗﻮان ﭘﺮدازﻧﺪه ﻫﺴﺘﻨﺪ ،ﻣﺮاﺣﻞ ﺗﻮﺳﻌﻪ را ﺳﺎدهﺗﺮ ﻣﯽﮐﻨﻨﺪ .در ﺟﺪول 1ﺧﻼﺻﻪ ﻣﻘﺎﯾﺴﻪ ﮔﺰﯾﻨﻪﻫﺎي
ﻣﻮﺟﻮد ﺑﺮاي ﭘﺮدازش ﺳﯿﮕﻨﺎلﻫﺎي دﯾﺠﯿﺘﺎل ﺑﺎ ﻫﻢ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.
ﺟﻬﺎن ﻣﺎ آﻧﺎﻟﻮگ اﺳﺖ و ﻣﺘﺄﺳﻔﺎﻧﻪ ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎي آﻧﺎﻟﻮگ اﻟﮑﺘﺮﯾﮑﯽ ﻫﻤﭽﻮن ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎي دﯾﺠﯿﺘﺎل ﻫﻤﻪ ﮐﺎره ﻧﯿﺴﺘﻨﺪ .ﺑﻨﺎﺑﺮاﯾﻦ
ﺑﺮاي اﯾﻦ ﮐﻪ ﺑﺘﻮاﻧﯿﻢ از ﻗﺪرت زﯾﺎد ﭘﺮدازﺷﯽ ﮐﻪ ﺗﮑﻨﻮﻟﻮژي دﯾﺠﯿﺘﺎل در اﺧﺘﯿﺎر ﻣﺎ ﻣﯽﮔﺬارد ،اﺳﺘﻔﺎده ﮐﻨﯿﻢ ﺑﺎﯾﺪ:
_________________________
1
Digital signal processing
2
digital-to-analog convertor
8 ﻣﻘﺪﻣﻪ :آﺷﻨﺎﯾﯽ ﺑﺎ ﭘﺮدازﻧﺪه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
از ﯾﮏ ﻣﺒﺪل ﺟﻬﺖ ﺗﺒﺪﯾﻞ ﺳﯿﮑﻨﺎل آﻧﺎﻟﻮگ ﺑﻪ ﺳﯿﮕﻨﺎل دﯾﺠﯿﺘﺎل اﺳﺘﻔﺎده ﮐﻨﯿﻢ .ﻣﺎﻧﻨﺪ :ﻣﯿﮑﺮوﻓﻦ. ·
1
اﯾﻦ ﺳﯿﮕﻨﺎل را دﯾﺠﯿﺘﺎﻟﻰ ﮐﻨﯿﻢ .ﺑﺮاي اﯾﻦ ﮐﺎر از ﯾﮏ ﻣﺒﺪل آﻧﺎﻟﻮگ ﺑﻪ دﯾﺠﯿﺘﺎل ADCاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ. ·
ﺑﻨﺎﺑﺮاﯾﻦ ﺑﺮاي ﭘﺮدازش دﯾﺠﯿﺘﺎﻟﯽ ﺳﯿﮕﻨﺎل ،ﺑﺎﯾﺪ آن را دو ﺑﺎر ﺗﺒﺪﯾﻞ ﮐﻨﯿﻢ .ﺗﺎ زﻣﺎﻧﯽ ﮐﻪ ﻓﺮدي ﺑﺘﻮاﻧﺪ ﮐﺎﻣﭙﯿﻮﺗﺮ آﻧﺎﻟﻮﮔﯽ ،ﮐﻪ
ﻫﻤﭽﻮن ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎي دﯾﺠﯿﺘﺎل ﻫﻤﻪ ﮐﺎره ﺑﺎﺷﺪ ،ﻃﺮاﺣﯽ ﮐﻨﺪ اﯾﻦ ﮐﺎر ارزﺷﺶ را دارد.
ﻣﯿﮑﺮوﭘﺮوﺳﺴﻮرﻫﺎي ﻫﻤﻪ ﮐﺎره در اﻧﺠﺎم ﻋﻤﻠﯿﺎت ﺿﺮب و ﺗﻘﺴﯿﻢ ﺧﯿﻠﯽ ﮐﻨﺪ ﻫﺴﺘﻨﺪ .آنﻫﺎ ﺑﺮاي اﻧﺠﺎم ﯾﮏ ﻋﻤﻞ ﺿﺮب،
ﯾﮏ ﺳﺮي ﻋﻤﻠﯿﺎت ﺷﯿﻔﺖ ،ﺟﻤﻊ و ﺗﻔﺮﯾﻖ را ﺑﻪ ﻃﻮر ﻣﺘﻮاﻟﯽ اﺟﺮا ﻣﯽﮐﻨﻨﺪ .ﺑﻨﺎﺑﺮاﯾﻦ ﻋﻤﻞ ﺿﺮب ﺑﻪ ﺳﯿﮑﻞ ﻫﺎي زﯾﺎدي ﻧﯿﺎز دارد.
اﻣﺎ DSPﺑﺎ اﻧﺠﺎم ﻫﻤﻪء ﻋﻤﻠﯿﺎت ﺷﯿﻔﺖ و ﺟﻤﻊ ﺑﻪ ﻃﻮر ﻣﻮازي ،در ﯾﮏ ﺳﯿﮑﻞ ﻋﻤﻞ ﺿﺮب را اﻧﺠﺎم ﻣﯽ دﻫﺪ .ﻣﺪارﺑﻨﺪي آن
ﻧﺴﺒﺘﺎً ﭘﯿﭽﯿﺪه اﺳﺖ و ﺑﻪ ﻣﻘﺪار ﻗﺎﺑﻞ ﺗﻮﺟﻬﯽ ﺗﺮاﻧﺰﯾﺴﺘﻮر ﻧﯿﺎز دارد .اﻣﺎ ﻣﺰﯾﺖ آن ﺿﺮب ﮐﺮدن ﺧﯿﻠﯽ ﺳﺮﯾﻊ اﺳﺖ ﮐﻪ ﺑﺮاي ﭘﺮدازش
ﺳﯿﮕﻨﺎلﻫﺎي دﯾﺠﯿﺘﺎل ﺿﺮوري ﻣﯽﺑﺎﺷﺪ.
ﭘﺮدازش ﺳﯿﮕﻨﺎلﻫﺎي دﯾﺠﯿﺘﺎﻟﯽ ﺑﻪ ﻃﻮر ﻃﺒﯿﻌﯽ ﻧﯿﺎزﻣﻨﺪ ﺗﻌﺪاد زﯾﺎدي ﻣﺤﺎﺳﺒﺎت ﺑﻪ ﺻﻮرت A=B×C+Dﻣﯽ ﺑﺎﺷﺪ .ﺷﺎﯾﺪ
اﯾﻦ ﻋﻤﻞ ﺳﺎده ﺑﻪ ﻧﻈﺮ ﺑﺮﺳﺪ ،اﻣﺎ وﻗﺘﯽ ﮐﻪ ﺑﻪ ﺳﺮﻋﺖ زﯾﺎد ﻧﯿﺎزﻣﻨﺪﯾﻢ ،اﺧﺘﺼﺎص دادن ﯾﮏ ﺳﺨﺖ اﻓﺰار ﺑﺮاي اﺟﺮاي اﯾﻦ ﻋﻤﻞ
ﺧﯿﻠﯽ ﻣﻔﯿﺪ ﺧﻮاﻫﺪ ﺑﻮد.
ﺑﯿﺸﺘﺮ DSPﻫﺎ دﺳﺘﻮرﻋﻤﻞ وﯾﮋهاي دارﻧﺪ ﮐﻪ ﺑﻪ آن ﻫﺎ اﺟﺎزه ﻣﯽ دﻫﺪ ﮐﻪ ﻋﻤﻠﯿﺎت ﺿﺮب ،ﺟﻤﻊ و ذﺧﯿﺮهﮐﺮدن ﻧﺘﯿﺠﻪ را در
ﯾﮏ ﺳﯿﮑﻞ اﻧﺠﺎم دﻫﻨﺪ .اﯾﻦ دﺳﺘﻮرﻋﻤﻞ ﻣﻌﻤﻮﻻً (Multiply,Accumulate) MACﻧﺎﻣﯿﺪه ﻣﯽ ﺷﻮد.
_________________________
1
analog-to-digital covertor
9 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
در ﺳﺎل 1971آزﻣﺎﯾﺸﮕﺎﻫﺎي ﻟﯿﻨﮑﻠﻦ ﺑﺎ اﺳﺘﻔﺎده از 10000ﻣﺪار ﻣﺠﺘﻤﻊ ،ﯾﮏ ﺿﺮب ﮐﻨﻨﺪه ﻃﺮاﺣﯽ ﮐﺮدﻧﺪ ﮐﻪ ﻓﻘﻂ در 600
ﻧﺎﻧﻮ ﺛﺎﻧﯿﻪ ﻋﻤﻞ ﺿﺮب را اﻧﺠﺎم ﻣﯽ دادﻧﺪ .در اواﺳﻂ دﻫﻪء ،70ﺿﺮب ﮐﺮدن در 200ﻧﺎﻧﻮ ﺛﺎﻧﯿﻪ ﺑﻪ ﯾﮏ ﮐﺎر ﻣﻌﻤﻮﻟﯽ ﺗﺒﺪﯾﻞ ﺷﺪ .ﺑﺎ
اﯾﻦ ﮐﺎر ﻃﺮاﺣﯽ digitaln signal processorsﻗﺎﺑﻞ ﻗﺒﻮل ،اﻣﮑﺎن ﭘﺬﯾﺮ ﺷﺪ .ﻃﺮح ﻫﺎي اوﻟﯿﻪ ﺧﯿﻠﯽ ﮔﺮان و ﺣﺠﯿﻢ ﺑﻮدﻧﺪ اﻣﺎ
ﺿﺮب ﮐﺮدن ﺳﺮﯾﻊ اﻣﮑﺎن ﭘﺬﯾﺮ ﺷﺪ .در ﺷﮑﻞ 2ﻧﻤﻮدار ﮐﺎﻫﺶ ﻋﻤﻠﯿﺎت ﺿﺮب در ﻃﻮل ﺳﺎلﻫﺎي ﻣﺨﺘﻠﻒ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.
(6ﺗﺎرﯾﺨﭽﻪ DSP
در اواﯾﻞ ﺳﺎل ﻫﺎي ،1980ﺗﺮاﺷﻪ ﻫﺎي DSPﺑﺎ ﻋﻤﻠﮑﺮد ﻣﻨﺎﺳﺐ ﺑﻪ وﺟﻮد آﻣﺪﻧﺪ .از آن زﻣﺎن ﺑﻪ ﺑﻌﺪ ،زﻣﺎن ﺿﺮب ﮐﺮدن ﺑﻪ
AT&T Bell ﻃﻮر ﭘﯿﻮﺳﺘﻪ ﮐﺎﻫﺶ ﯾﺎﻓﺖ ،"DSP1" .اوﻟﯿﻦ ﺗﺮاﺷﻪ DSPﮐﻪ از ﻧﻈﺮ ﺗﺠﺎري ﻣﻮﻓﻖ ﺑﻮد ،در ﺳﺎل 1980ﺗﻮﺳﻂ
Laboratoriesرواﻧﻪء ﺑﺎزار ﺷﺪ و ﺑﯿﺸﺘﺮ در ﻃﺮاﺣﯽﻫﺎي داﺧﻠﯽ اﺳﺘﻔﺎده ﺷﺪ ،TI .اوﻟﯿﻦ DSPﻣﻮﻓﻖ ﺗﺠﺎري را در ﺳﺎل 1982
10 ﻣﻘﺪﻣﻪ :آﺷﻨﺎﯾﯽ ﺑﺎ ﭘﺮدازﻧﺪه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﯾﮏ DSP ﺗﻮﻟﯿﺪ ﮐﺮد .ﻧﺎم اﯾﻦ ﺗﺮاﺷﻪ TMS320C10ﺑﻮد و در ﻓﺮﮐﺎﻧﺲ (200ns) 5MHzﮐﺎر ﻣﯽ ﮐﺮد .در اواﺧﺮ دﻫﻪ 90ﻣﯿﻼدي،
16ﺑﯿﺘﯽ ﺑﺎ ﻣﻤﯿﺰﺛﺎﺑﺖ 1ﻣﻌﻤﻮﻟﯽ ﻣﯽﺗﻮاﻧﺴﺖ در 5ﻧﺎﻧﻮ ﺛﺎﻧﯿﻪ ﻋﻤﻞ ﺿﺮب را اﻧﺠﺎم دﻫﺪ.
اﻣﺮوزه اﻧﻮاع ﻣﺨﺘﻠﻔﯽ از ﭘﺮدازﻧﺪه ﻫﺎي DSPﺑﻪ ﺻﻮرت ﺗﺠﺎري در دﺳﺘﺮس ﻫﺴﺘﻨﺪ .در ﺟﺪول زﯾﺮ ﺗﻌﺪادي از ﭘﺮدارﻧﺪه
ﻫﺎي DSPراﯾﺞ ﺑﻪ ﻃﻮر ﺧﻼﺻﻪ ﻧﺸﺎن داده ﺷﺪهاﻧﺪ.
Analog Devices در ﮔﺮوه ﺳﺎده و ارزان ﻗﯿﻤﺖ ،از ﺷﺮﮐﺖ TIﺧﺎﻧﻮاده ) ،TMS320C2000 (C24x and C28xاز ﺷﺮﮐﺖ
ﺧﺎﻧﻮاده ADSP-218xو از ﺷﺮﮐﺖ Freescaleﺧﺎﻧﻮاده DSP568xxﻗﺮار دارﻧﺪ .اﯾﻦ ﭘﺮدازﻧﺪهﻫﺎي DSPﺷﺎﻣﻞ ﺿﺮب ﮐﻨﻨﺪهﻫﺎي
ﺳﺨﺖ اﻓﺰاري و ﺷﯿﻔﺖ دادن ﻣﯽﺑﺎﺷﻨﺪ و در ﻫﺮ ﺳﯿﮑﻞ ﯾﮏ دﺳﺘﻮرﻋﻤﻞ را اﺟﺮا ﻣﯽﮐﻨﻨﺪ .ﻫﻤﭽﻨﯿﻦ آنﻫﺎ از دﺳﺘﻮرﻋﻤﻞﻫﺎي
ﭘﯿﭽﯿﺪهاي ﮐﻪ ﭼﻨﺪﯾﻦ ﻋﻤﻠﯿﺎت را از ﻗﺒﯿﻞ ﺿﺮب ،ﺟﻤﻊ و ﺑﻪ روز رﺳﺎﻧﯽ آدرس اﺷﺎرهﮔﺮ اﺟﺮا ﻣﯽﮐﻨﻨﺪ ،ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽﮐﻨﻨﺪ .آنﻫﺎ
ﮐﺎراﯾﯽ ﺧﻮب را ﻫﻤﺮاه ﺑﺎ ﻣﺼﺮف ﺑﺮق و ﺣﺎﻓﻈﻪ ﻣﻮرد اﺳﺘﻔﺎده ﻧﺴﺒﺘﺎً ﮐﻢ ﻓﺮاﻫﻢ ﻣﯽﮐﻨﻨﺪ .ﺑﻨﺎﺑﺮاﯾﻦ ﺑﻪ ﻃﻮر ﮔﺴﺘﺮده در وﺳﺎﯾﻞ
ﻣﻮﺗﻮري ،ﻣﺼﺮف ﮐﻨﻨﺪهﻫﺎي اﻟﮑﺘﺮوﻧﯿﮑﯽ ،دراﯾﻮرﻫﺎي ﻫﺎرد دﯾﺴﮏ و ﻣﻮدم ﻫﺎ ﺑﻪ ﮐﺎر ﻣﯽ روﻧﺪ .ﺑﺮاي ﻣﺜﺎل ﺧﺎﻧﻮاده ﻫﺎي
TMS320C2000و DSP568xxﺑﺮاي ﮐﺎرﺑﺮدﻫﺎي ﻣﻮﺗﻮري از ﻗﺒﯿﻞ ﮐﻨﺘﺮل ﻣﻮﺗﻮر و ﮐﻨﺘﺮل اﺗﻮﻣﺒﯿﻞ ﺑﺎ ﺟﻤﻊ ﮐﺮدن ﺧﯿﻠﯽ از
وﯾﮋﮔﯽﻫﺎي ﻣﯿﮑﺮوﮐﻨﺘﺮﻟﺮﻫﺎ و دﺳﺘﮕﺎه ﻫﺎي ﺟﺎﻧﺒﯽ داﺧﻞ ﯾﮏ ﺗﺮاﺷﻪ ،ﺑﻬﯿﻨﻪ ﻫﺴﺘﻨﺪ.
ﮔﺮوه ﭘﺮدازﺷﮕﺮﻫﺎي ﺑﺎ ﻗﺪرت ﻣﺘﻮﺳﻂ ﺷﺎﻣﻞ ) TMS320C5000 (C54x and C55xﺳﺎﺧﺖ ﺷﺮﮐﺖ ADSP219x ،TIو
ADSP-BF5xxﺳﺎﺧﺖ ﺷﺮﮐﺖ Analog Devicesو DSP563xxﺳﺎﺧﺖ ﺷﺮﮐﺖ Freescaleﻣﯽ ﺑﺎﺷﺪ .اﯾﻦ ﭘﺮدازﻧﺪهﻫﺎي
ﭘﯿﺸﺮﻓﺘﻪ ﺑﺎ ﺑﻬﺮهﮔﯿﺮي از ﺗﺮﮐﯿﺐ اﻓﺰاﯾﺶ ﻧﺮخ ﮐﻼك و ﻣﻌﻤﺎريﻫﺎي ﺧﯿﻠﯽ ﭘﯿﺸﺮﻓﺘﻪﺗﺮ ﻗﺎدرﻧﺪ ﺑﻪ ﻋﻤﻠﮑﺮد ﺑﺎﻻﯾﯽ دﺳﺖ ﯾﺎﺑﻨﺪ .اﯾﻦ
دﺳﺘﻪ از DSPﻫﺎ ﻣﻌﻤﻮﻻً ﺷﺎﻣﻞ ﺧﻂ ﻟﻮﻟﻪ ﻋﻤﯿﻖﺗﺮ) ، ( Piplineدﺳﺘﻮرﻋﻤﻞﻫﺎي ﭘﯿﭽﯿﺪه ،ﺑﺎس داده ﭼﻨﺪﮔﺎﻧﻪ)ﺑﺮاي اﯾﻦ ﮐﻪ در ﻫﺮ
_________________________
1
16-bit fixed-point
11 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﺳﯿﮑﻞ ﺑﻪ ﭼﻨﺪﯾﻦ داده دﺳﺖ ﯾﺎﺑﻨﺪ( ،ﺷﺘﺎب دﻫﻨﺪهﻫﺎي ﺳﺨﺖ اﻓﺰاري اﺿﺎﻓﯽ و واﺣﺪﻫﺎي اﺟﺮاي ﻣﻮازي ،ﻣﯽﺑﺎﺷﻨﺪ .ﺑﺮاي ﻣﺜﺎل
TMS320C55xﺷﺎﻣﻞ دو واﺣﺪ ﺿﺮب و ﺟﻤﻊ) (MACﻣﯽﺑﺎﺷﺪ .اﯾﻦ دﺳﺘﻪ از DSPﻫﺎ ﺑﺎ ﺑﻬﺮه ﮔﯿﺮي از ﻣﺼﺮف ﺗﻮان ﮐﻤﺘﺮ،
ﻋﻤﻠﮑﺮد ﺑﻬﺘﺮي را ﻓﺮاﻫﻢ ﻣﯽﮐﻨﻨﺪ ،ﺑﻨﺎﺑﺮاﯾﻦ ﺑﯿﺸﺘﺮ در ﮐﺎرﺑﺮدﻫﺎي ﻗﺎﺑﻞ ﺣﻤﻞ از ﻗﺒﯿﻞ ﻣﻮﺑﺎﯾﻞ ،دﺳﺘﮕﺎه ﻫﺎي ﺑﯽﺳﯿﻢ ،دورﺑﯿﻦﻫﺎي
دﯾﺠﯿﺘﺎﻟﯽ ،ﭘﺨﺶ ﮐﻨﻨﺪه/ﻫﺎي ﺻﻮﺗﯽ و ﺗﺼﻮﯾﺮي و دﺳﺘﮕﺎه ﻫﺎي ﮐﻤﮏ ﺷﻨﻮاﯾﯽ دﯾﺠﯿﺘﺎﻟﯽ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽﮔﯿﺮﻧﺪ.
اﯾﻦ ﭘﺮدازﻧﺪهﻫﺎي DSPﭘﯿﺸﺮﻓﺘﻪ ﺑﺮاي اﻟﮕﻮرﯾﺘﻢﻫﺎي راﯾﺞ DSPاز ﻗﺒﯿﻞ ﻓﯿﻠﺘﺮﮐﺮدن داراي وﯾﮋﮔﯽ ﻫﺎي زﯾﺮ ﻫﺴﺘﻨﺪ:
واﺣﺪﻫﺎي ﺿﺮب و ﺟﻤﻊ ) (MACﺳﺮﯾﻊ – ﻋﻤﻠﯿﺎت ﺿﺮب و ﺟﻤﻊ در ﺑﯿﺸﺘﺮ دﺳﺘﻮرﻋﻤﻞﻫﺎي DSPاز ﻗﺒﯿﻞ ·
ﻓﯿﻠﺘﺮﯾﻨﮓ FFT ،و ﮐﺮوﻟﯿﺸﻦ ﺑﻪ ﮐﺎر ﻣﯽروﻧﺪ .ﭘﺮدازﻧﺪهﻫﺎي ،DSPﺿﺮب ﮐﻨﻨﺪه و ﺟﻤﻊ ﮐﻨﻨﺪه را در ﯾﮏ ﻣﺴﯿﺮ داده
ﺗﺮﮐﯿﺐ ﻣﯽﮐﻨﻨﺪ ﺗﺎ ﻋﻤﻠﯿﺎت MACرا در ﯾﮏ ﺳﯿﮑﻞ دﺳﺘﻮرﻋﻤﻞ ﮐﺎﻣﻞ ﮐﻨﻨﺪ.
ﺣﺎﻓﻈﻪي دﺳﺘﺮﺳﯽ ﭼﻨﺪﮔﺎﻧﻪ – ﺑﯿﺸﺘﺮ ﭘﺮدازﻧﺪهﻫﺎي DSPاز ﻣﻌﻤﺎري ﻫﺎروارد اﺻﻼح ﺷﺪه ،اﺳﺘﻔﺎده ﻣﯽﮐﻨﻨﺪ ﺗﺎ ﺑﻪ ·
دﻟﯿﻞ ﺟﺪا ﺑﻮدن ﺣﺎﻓﻈﻪي ﺑﺮﻧﺎﻣﻪ و ﺣﺎﻓﻈﻪي داده ﺑﺘﻮاﻧﻨﺪ دﺳﺘﻮرﻋﻤﻞ و داده را ﻫﻤﺰﻣﺎن ﻓﭻ ) (fetchﮐﻨﻨﺪ .ﭘﺮدازﻧﺪه
ﻫﺎي DSPﺑﺮاي ﭘﺸﺘﯿﺒﺎﻧﯽ از دﺳﺘﺮﺳﯽ ﻫﻢ زﻣﺎن ﺑﻪ ﭼﻨﺪﯾﻦ داده ،از ﺑﺎسﻫﺎي داﺧﻞ ﺗﺮاﺷﻪ ﭼﻨﺪﮔﺎﻧﻪ ،ﺑﺎﻧﮏﻫﺎي
ﺣﺎﻓﻈﻪي ﻣﺴﺘﻘﻞ و ﺣﺎﻓﻈﻪي داده ﺑﺎ ﻗﺎﺑﻠﯿﺖ دﺳﺘﺮﺳﯽ دوﮔﺎﻧﻪ اﺳﺘﻔﺎده ﻣﯽﮐﻨﻨﺪ.
ﻣﻮدﻫﺎي آدرسدﻫﯽ ﻣﺨﺼﻮص – ﭘﺮدازﻧﺪهﻫﺎي DSPاﻏﻠﺐ ﺑﺮاي اﯾﻦ ﮐﻪ آدرسﻫﺎي داده را ﺑﻪ ﻣﻮازات اﺟﺮاي ·
دﺳﺘﻮرﻋﻤﻞﻫﺎ ﺗﻮﻟﯿﺪ ﮐﻨﻨﺪ ،واﺣﺪﻫﺎي اﺧﺘﺼﺎﺻﯽ ﺗﻮﻟﯿﺪ آدرس داده را ﺑﺎ ﯾﮑﺪﯾﮕﺮ ﺗﺮﮐﯿﺐ ﻣﯽﮐﻨﻨﺪ .اﯾﻦ واﺣﺪﻫﺎ ﻣﻌﻤﻮﻻً
از آدرس دﻫﯽ داﯾﺮهاي و آدرس دﻫﯽ ﺑﯿﺖ ﻣﻌﮑﻮس ﺑﺮاي ﺑﻌﻀﯽ از اﻟﮕﻮرﯾﺘﻢﻫﺎي ﻣﺸﺨﺺ اﺳﺘﻔﺎده ﻣﯽﮐﻨﻨﺪ.
ﮐﻨﺘﺮل وﯾﮋه ﺑﺮﻧﺎﻣﻪ– ﺑﯿﺸﺘﺮ ﭘﺮدازﻧﺪهﻫﺎي DSPاز ﺣﻠﻘﻪ ﻫﺎي ﺑﺪون ﭘﺮدازش ) (zero-overhead loopingﮐﻪ ·
ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺲ اﯾﻦ اﺟﺎزه را ﻣﯽ دﻫﺪ ﺗﺎ ﯾﮏ ﺣﻠﻘﻪ را ﺑﺪون اﺳﺘﻔﺎده از ﺳﯿﮑﻞ ﺳﺎﻋﺖ اﺿﺎﻓﯽ ﺑﺮاي ﺟﺪﯾﺪ ﮐﺮدن و
ﺗﺴﺖ ﺷﻤﺎرﻧﺪهي ﺣﻠﻘﻪ ﯾﺎ ﭘﺮش ﺑﻪ اﺑﺘﺪاي ﺣﻠﻘﻪ ﭘﯿﺎده ﺳﺎزي ﮐﻨﺪ ،اﺳﺘﻔﺎده ﻣﯽﮐﻨﻨﺪ.
اﯾﻦ ﭘﺮدازﻧﺪه ﻫﺎي DSPﺑﺮاي اﯾﻦ ﮐﻪ ﺑﻪ ﻋﻤﻠﯿﺎت ﺑﯿﺸﺘﺮي اﺟﺎزه دﻫﻨﺪ ﮐﻪ در ﻫﺮ ﭼﺮﺧﻪ دﺳﺘﻮرﻋﻤﻞ اﺟﺮا ﺷﻮﻧﺪ ،از ﺳﺨﺖ
اﻓﺰار ﺑﻪ ﺧﺼﻮص و دﺳﺘﻮرﻋﻤﻞ ﻫﺎي ﭘﯿﭽﯿﺪه اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﻨﺪ.
ﺗﻌﺪادي از ﭘﺮدارﻧﺪه ﻫﺎي DSPاز ﻗﺒﯿﻞ (C62x, C64x, C67x) TMS320C6000ﺑﺎ ﻫﺪف رﺳﯿﺪن ﺑﻪ ﮐﺎراﯾﯽ ﺑﺎﻻ
و ﺳﺎﺧﺖ ﻣﻌﻤﺎرياي ﮐﻪ از ﮐﺎﻣﭙﺎﯾﻠﺮ Cﮐﺎرآﻣﺪي ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽﮐﻨﻨﺪ ،از دﺳﺘﻮرﻋﻤﻞﻫﺎي ﺧﯿﻠﯽ ﺳﺎدهاي ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﮐﻨﻨﺪ .اﯾﻦ
ﭘﺮدازﻧﺪهﻫﺎ ﺑﺎ ﺻﺪور و اﺟﺮاي ﭼﻨﺪﯾﻦ دﺳﺘﻮرﻋﻤﻞ ﺳﺎده ﺑﻪ ﻣﻮازات ﯾﮑﺪﯾﮕﺮ در ﻧﺮخ ﮐﻼك ﺑﺎﻻﺗﺮ ،ﺑﻪ ﺣﺪ ﺑﺎﻻﯾﯽ از دﺳﺘﻮرات
ﻣﻮازي دﺳﺖ ﻣﯽﯾﺎﺑﻨﺪ .ﺑﺮاي ﻣﺜﺎل TMS320C6000از ﻣﻌﻤﺎري دﺳﺘﻮرﻋﻤﻞ ﻫﺎي ﺧﯿﻠﯽ ﻃﻮﻻﻧﯽ ) (VLIWاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ
ﮐﻪ ﻫﺸﺖ واﺣﺪ اﺟﺮاي ﺑﺮﻧﺎﻣﻪ را ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ ﺗﺎ اﺟﺮاي ﭼﻬﺎر ﺗﺎ ﻫﺸﺖ دﺳﺘﻮرﻋﻤﻞ در ﻫﺮ ﺳﯿﮑﻞ ﺳﺎﻋﺖ ﻣﯿﺴﺮ ﺷﻮد .اﯾﻦ
دﺳﺘﻮرﻋﻤﻞﻫﺎ ﻣﺤﺪودﯾﺖﻫﺎي اﻧﺪﮐﯽ را روي اﺳﺘﻔﺎده از رﺟﯿﺴﺘﺮﻫﺎ و ﻣﻮدﻫﺎي آدرس دﻫﯽ ﻣﯽﮔﺬارﻧﺪ ﺑﻨﺎﺑﺮاﯾﻦ ﺑﻬﺮه وري ﮐﺎﻣﭙﺎﯾﻠﺮ
Cرا اﻓﺰاﯾﺶ ﻣﯽ دﻫﻨﺪ .اﻣﺎ اﺷﮑﺎل اﺳﺘﻔﺎده از دﺳﺘﻮرﻋﻤﻞ ﻫﺎي ﺳﺎده اﯾﻦ اﺳﺖ ﮐﻪ ﭘﺮدازﻧﺪه ﻫﺎي VLIWﺑﻪ دﺳﺘﻮرﻋﻤﻞﻫﺎي
ﺑﯿﺸﺘﺮي ﺑﺮاي اﻧﺠﺎم ﯾﮏ وﻇﯿﻔﻪ ﻧﯿﺎز دارﻧﺪ ،ﺑﻨﺎﺑﺮاﯾﻦ ﺑﻪ ﺣﺎﻓﻈﻪ ﺑﺮﻧﺎﻣﻪ و ﻣﺼﺮف ﺗﻮان ﻧﺴﺒﺘﺎً ﺑﯿﺸﺘﺮي ﻧﯿﺎز دارﻧﺪ .اﯾﻦ ﭘﺮدازﻧﺪهﻫﺎي
DSPﺑﺎ ﻋﻤﻠﮑﺮد ﺑﺎﻻﯾﯽ ﮐﻪ دارﻧﺪ ﻣﻌﻤﻮﻻً در ﺳﯿﺴﺘﻢ ﻫﺎي راداري و ﺗﺼﻮﯾﺮي ﭘﯿﺸﺮﻓﺘﻪ ،زﯾﺮﺳﺎﺧﺖ ﻫﺎي ﻣﺨﺎﺑﺮات ،اﯾﺴﺘﮕﺎه ﻫﺎي
اﺻﻠﯽ ﺑﯽ ﺳﯿﻢ و ﺳﯿﺴﺘﻢ ﻫﺎي ﮐﺪﯾﻨﮓ ﺗﺼﻮﯾﺮ ﺑﻼدرﻧﮓ ﺑﺎ ﮐﯿﻔﯿﺖ زﯾﺎد ﺑﻪ ﮐﺎر ﻣﯽ روﻧﺪ.
12 ﻣﻘﺪﻣﻪ :آﺷﻨﺎﯾﯽ ﺑﺎ ﭘﺮدازﻧﺪه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﻧﺴﺨﻪ ﺟﺪﯾﺪ ﭘﺮدازﻧﺪه DSPدر دﻫﻪ دوم ﻗﺮن ﺟﺪﯾﺪ ،ﺳﺮي ) C66ﻣﺜﻼ (TMS320C6678ﻣﯽ ﺑﺎﺷﺪ .اﯾﻦ ﭘﺮدازﻧﺪه
ﺷﺎﻣﻞ 8ﻫﺴﺘﻪ ﻣﻮازي ﻣﯽ ﺑﺎﺷﺪ ﮐﻪ ﻫﺮ ﻫﺴﺘﻪ داراي ﺳﺎﺧﺘﺎر ﻣﻮازي ﺑﺮاي اﺟﺮاي ﻫﻤﺰﻣﺎن 32دﺳﺘﻮر اﻟﻌﻤﻞ ﻣﯽ ﺑﺎﺷﺪ .ﺑﺎ ﺳﺮﻋﺖ
ﺑﯿﺸﺘﺮ از 1/2ﮔﯿﮕﺎ ﻫﺮﺗﺰ ﺑﻪ ازاي ﻫﺮ ﻫﺴﺘﻪ ،اﯾﻦ ﭘﺮدازﻧﺪه ﻗﺎﺑﻠﯿﺖ ﭘﺮدازش ﺑﯿﺸﺘﺮ از 300ﮔﯿﮕﺎ دﺳﺘﻮر اﻟﻌﻤﻞ در ﺛﺎﻧﯿﻪ را دارد.
ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎ ﺑﺮاي ﮐﺎر ﮐﺮدن ،ﺑﻪ دﺳﺘﻮر ﻋﻤﻞ ) (instructionﻧﯿﺎز دارﻧﺪ .در ﻫﺮ ﺳﯿﮑﻞ ﺳﺎﻋﺖ ﺑﺎﯾﺪ ﺑﻪ آن ﻫﺎ ﮔﻔﺘﻪ ﺷﻮد ﮐﻪ
ﭼﻪ ﮐﺎري را اﻧﺠﺎم دﻫﻨﺪ .اﮔﺮ دﺳﺘﻮرات ذﺧﯿﺮه ﺷﺪه ﺑﺎﺷﻨﺪ ،ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎ ﻓﻘﻂ ﺑﺎﯾﺪ آنﻫﺎ را واﮐﺸﯽ ) (fetchو اﺟﺮا ﮐﻨﻨﺪ.
ﭼﻨﯿﻦ ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎﯾﯽ Stored Program Machinesﻧﺎﻣﯿﺪه ﻣﯽ ﺷﻮﻧﺪ .ﺑﻪ ﻋﻨﻮان ﻧﻤﻮﻧﻪ ﮐﺎﻣﭙﯿﻮﺗﺮ ﻣﺎ اﺑﺘﺪا ﯾﮏ دﺳﺘﻮر ﻋﻤﻞ و
ﺳﭙﺲ داده را واﮐﺸﯽ ﻣﯽ ﮐﻨﺪ ،روي داده ﻋﻤﻠﯿﺎت ﻣﻮرد ﻧﻈﺮ را اﻧﺠﺎم ﻣﯽدﻫﺪ و ﻧﺘﯿﺠﻪ ﻋﻤﻠﯿﺎت را ﺑﺮاي ذﺧﯿﺮه ﺷﺪن ﺑﺮ ﻣﯽ-
von Neuman ﮔﺮداﻧﺪ Stored Program Machines .از دو ﻧﻮع ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ ﺷﻨﺎﺧﺘﻪ ﺷﺪه و ﭘﺮ ﮐﺎرﺑﺮد ﺑﻪ ﻧﺎمﻫﺎي
و Harvardاﺳﺘﻔﺎده ﻣﯽﮐﻨﻨﺪ .ﺗﺼﻮﯾﺮ زﯾﺮ ،ﺳﺎﺧﺘﺎر اﯾﻦ دو ﻣﻌﻤﺎري را ﻧﺸﺎن ﻣﯽ دﻫﺪ.
(2-8ﻣﻌﻤﺎري :Harvard
ﺗﻔﺎوت ﻋﻤﺪه ﺑﯿﻦ ﻣﻌﻤﺎري Harvardو ﻣﻌﻤﺎري von Neumanاﯾﻦ اﺳﺖ ﮐﻪ در ﻣﻌﻤﺎري ،Harvardﺣﺎﻓﻈﻪي ﺑﺮﻧﺎﻣﻪ و داده
ﻣﺴﯿﺮﻫﺎي ارﺳﺎل ﺟﺪاﮔﺎﻧﻪاي ﻫﺴﺘﻨﺪ .اﯾﻦ ﻣﺎﺷﯿﻦ را ﻗﺎدر ﻣﯽ ﺳﺎزد ﺗﺎ دﺳﺘﻮر ﻋﻤﻞ ﻫﺎ و داده را ﺑﻪ ﻃﻮر ﻫﻤﺰﻣﺎن ارﺳﺎل ﮐﻨﺪ.
ﺑﻨﺎﺑﺮاﯾﻦ اﯾﻦ ﺳﺎﺧﺘﺎر ﮐﺎراﯾﯽ ﻣﺎﺷﯿﻦ را ﺧﯿﻠﯽ زﯾﺎد ﺑﻬﺒﻮد ﻣﯽورزد.
13 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﮐﺎﻣﭙﯿﻮﺗﺮ ﻫﺎي ﺷﺨﺼﯽ راﯾﺞ ﻫﻤﻪ ﻣﻨﻈﻮره ،از ﭘﺮدازش ﮔﺮﻫﺎﯾﯽ ﺑﺎ ﻣﻌﻤﺎري von Neumanاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﻨﺪ ،در ﺣﺎﻟﯽ ﮐﻪ
ﻣﻌﻤﺎري Harvardﺑﯿﺸﺘﺮ در ﻣﯿﮑﺮوﭘﺮوﺳﺴﻮرﻫﺎ ﺑﺎ ﮐﺎرﺑﺮد ﺧﺎص ،ﺑﺮاي ﭘﺮدازش ﻫﻢ زﻣﺎن ) (real-timeو ﮐﺎرﺑﺮد ﻫﺎي
ﺟﺎﺳﺎزي ﺷﺪه ) (embedded applicationsاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.
DSPﻫﺎ ﻣﻌﻤﻮﻻً از ﻣﻌﻤﺎري Harvardاﺳﺘﻔﺎده ﻣﯽﮐﻨﻨﺪ .اﺷﮑﺎل اﺳﺘﻔﺎده ار ﻣﻌﻤﺎري Harvardاﯾﻦ اﺳﺖ ﮐﻪ ﭼﻮن اﯾﻦ
ﻣﻌﻤﺎري از ﺣﺎﻓﻈﻪ ﺑﺮﻧﺎﻣﻪ و داده ﺟﺪاﮔﺎﻧﻪ اﺳﺘﻔﺎده ﻣﯽﮐﻨﺪ ،ﺑﻪ دو ﺑﺮاﺑﺮ ﭘﯿﻦ آدرس و داده روي ﭼﯿﭗ و دو ﺑﺮاﺑﺮ ﺣﺎﻓﻈﻪ ﺧﺎرﺟﯽ
ﻧﯿﺎز دارد .ﻣﺘﺎﺳﻔﺎﻧﻪ ﺑﺎ اﻓﺰاﯾﺶ ﺗﻌﺪاد ﭘﯿﻦ ﻫﺎ ﯾﺎ ﭼﯿﭗ ﻫﺎ ،ﻗﯿﻤﺖ ﻧﯿﺰ اﻓﺰاﯾﺶ ﭘﯿﺪا ﻣﯽ ﮐﻨﺪ .ﻃﺮاﺣﺎن اﻟﮑﺘﺮوﻧﯿﮑﯽ ﮐﻪ ﺑﺎ اﯾﻦ ﻣﺸﮑﻞ
روﺑﺮو ﺑﻮدﻧﺪ ،ﯾﮏ راه ﺣﻞ ﻫﻮﺷﻤﻨﺪاﻧﻪ اﺑﺪاع ﮐﺮدﻧﺪ :از ﯾﮏ ﺑﺎس داده و آدرس ﺧﺎرﺟﯽ و از دو ﯾﺎ ﭼﻨﺪ ﺑﺎس ﺟﺪاﮔﺎﻧﻪ ﺑﺮﻧﺎﻣﻪ و
داده داﺧﻠﯽ اﺳﺘﻔﺎده ﺷﻮد .در ﯾﮏ ﺳﯿﮑﻞ ﺳﺎﻋﺖ اﻃﻼﻋﺎت ﺑﺮﻧﺎﻣﻪ روي ﭘﯿﻦ ﻫﺎ ﺟﺎري ﻣﯽﺷﻮد و در ﺳﯿﮑﻞ ﺑﻌﺪي داده روي ﻫﻤﺎن
ﭘﯿﻦ ﻫﺎ ﺟﺮﯾﺎن ﻣﯽﯾﺎﺑﺪ .ﺳﭙﺲ اﻃﻼﻋﺎت ﺑﺮﻧﺎﻣﻪ وداده ﺑﻪ ﺑﺎس داﺧﻠﯽ ﺟﺪا ﺑﺮﻧﺎﻣﻪ و داده رواﻧﻪ ﻣﯽﺷﻮﻧﺪ .ﭼﻨﯿﻦ ﻣﺎﺷﯿﻦ ﻫﺎﯾﯽ
ﻣﻌﻤﺎري ﻫﺎروارد اﺻﻼح ﺷﺪه ﻧﺎﻣﯿﺪه ﻣﯽﺷﻮﻧﺪ .ﭼﻮن ﻣﻌﻤﺎري داﺧﻠﯽ آن ﻫﺎرواد و ﻣﻌﻤﺎري ﺧﺎرﺟﯽ آن von Neumanاﺳﺖ.
ﻋﻤﻠﮑﺮد ﻣﻌﻤﺎري ﻫﺎروارد اﺻﻼح ﺷﺪه ﺑﻪ ﺧﻮﺑﯽ ﻋﻤﻠﮑﺮد ﻣﻌﻤﺎري ﻫﺎروارد ﻣﯽ ﺑﺎﺷﺪ.
ﺳﯿﺴﺘﻢ ﻫﺎي DSPراﯾﺞ ﺷﺎﻣﻞ ﺗﺮاﺷﻪ ،DSPﺣﺎﻓﻈﻪ ،اﺣﺘﻤﺎﻻً ﯾﮏ ﻣﺒﺪل آﻧﺎﻟﻮگ ﺑﻪ دﯾﺠﯿﺘﺎل ) ، (ADCﯾﮏ ﻣﺒﺪل
دﯾﺠﯿﺘﺎل ﺑﻪ آﻧﺎﻟﻮگ ) (DACو ﮐﺎﻧﺎل ﻫﺎي ارﺗﺒﺎﻃﯽ ﻣﯽ ﺑﺎﺷﺪ.
(1-11ﺗﺮاﺷﻪ :DSP
ﺗﻌﺪادي از اﺟﺰاي ﺳﺨﺖ اﻓﺰاري ﮐﻪ در ﺑﯿﺸﺘﺮ DSPﻫﺎ ﻣﺸﺘﺮك ﻫﺴﺘﻨﺪ ﻋﺒﺎرﺗﻨﺪ از :
واﺣﺪ ﻣﺤﺎﺳﺒﻪ ﻣﺮﮐﺰي ) :(Central Arithmetic Unit ·
اﯾﻦ ﻗﺴﻤﺖ از DSPوﻇﯿﻔﻪ ﻣﺤﺎﺳﺒﺎت اﺻﻠﯽ از ﻗﺒﯿﻞ ﺿﺮب و ﺟﻤﻊ را ﺑﺮ ﻋﻬﺪه دارد .اﯾﻦ ﻫﻤﺎن ﻗﺴﻤﺘﯽ اﺳﺖ ﮐﻪ DSP
را ﻧﺴﺒﺖ ﺑﻪ ﭘﺮدازﺷﮕﺮﻫﺎي ﺳﻨﺘﯽ ﺳﺮﯾﻊﺗﺮ ﻣﯽﺳﺎزد.
واﺣﺪ ﻣﺤﺎﺳﺒﺎت ﮐﻤﮑﯽ ):(Auxiliary Arithmetic Unit ·
14 ﻣﻘﺪﻣﻪ :آﺷﻨﺎﯾﯽ ﺑﺎ ﭘﺮدازﻧﺪه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
DSPﻫﺎ اﻏﻠﺐ ﯾﮏ واﺣﺪ ﻣﺤﺎﺳﺒﻪ ﮐﻤﮑﯽ دارﻧﺪ ﮐﻪ ﻣﺤﺎﺳﺒﻪ اﺷﺎرهﮔﺮ ،ﻣﺤﺎﺳﺒﺎت رﯾﺎﺿﯽ ﯾﺎ ﻋﻤﻠﯿﺎت ﻣﻨﻄﻘﯽ را ﺑﻪ
ﻣﻮازات واﺣﺪ ﻣﺤﺎﺳﺒﻪ ﻣﺮﮐﺰي اﻧﺠﺎم ﻣﯽدﻫﺪ.
درﮔﺎه ﺳﺮي):(Serial Ports ·
DSPﻫﺎ ﻣﻌﻤﻮﻻً ﺑﺮاي ارﺗﺒﺎط ﺳﺮﯾﻊ ﺑﺎ دﯾﮕﺮ DSPﻫﺎ و ﻣﺒﺪل ﻫﺎي داده داراي ﭘﻮرت ﻫﺎي ﺳﺮي داﺧﻠﯽ ﻣﯽ ﺑﺎﺷﻨﺪ .اﯾﻦ
ﭘﻮرت ﻫﺎي ﺳﺮي ﺑﺮاي اﻓﺰاﯾﺶ ﻋﻤﻠﮑﺮد ،ﮐﺎﻫﺶ ﻣﺸﮑﻼت ﻣﺮﺑﻮط ﺑﻪ دﯾﮑﺪ ﮐﺮدن آدرس ﺧﺎرﺟﯽ و ﮐﺎﻫﺶ ﻫﺰﯾﻨﻪ ﻫﺎ ،ﻣﺴﻘﯿﻤﺎً ﺑﻪ
ﺑﺎس ﻫﺎي داﺧﻠﯽ وﺻﻞ ﻣﯽ ﺷﻮﻧﺪ.
ﺣﺎﻓﻈﻪ: ·
ﺣﺎﻓﻈﻪ ،داده و دﺳﺘﻮر ﻋﻤﻞ ﻫﺎ را ﺑﺮاي DSPﻫﺎ ﻧﮕﻪ ﻣﯽدارد و ﯾﮏ ﻗﺴﻤﺖ ﺿﺮوري ﺑﺮاي ﻫﺮ ﺳﯿﺴﺘﻢ DSPﻣﯽﺑﺎﺷﺪ.
ﮔﺮ ﭼﻪ DSPﻫﺎ ﻣﺎﺷﯿﻦﻫﺎي ﻫﻮﺷﻤﻨﺪي ﻫﺴﺘﻨﺪ ،ﻫﻨﻮز ﻫﻢ ﺑﺎﯾﺪ ﺑﻪ آنﻫﺎ ﮔﻔﺘﻪ ﺷﻮد ﮐﻪ ﭼﻪ ﮐﺎري را اﻧﺠﺎم دﻫﻨﺪ .ﺣﺎﻓﻈﻪ ﻫﺎ ،ﯾﮏ
ﺳﺮي از دﺳﺘﻮر ﻋﻤﻞ ﻫﺎ را ﮐﻪ ﺑﻪ DSPﻣﯽﮔﻮﯾﻨﺪ ﭼﻪ ﻋﻤﻠﯽ را روي داده اﻧﺠﺎم دﻫﺪ ،در ﺧﻮد ﻧﮕﻪ ﻣﯽدارﻧﺪ.
ﻣﺒﺪل ﻫﺎي A/Dو : D/A ·
ﻣﺒﺪلﻫﺎ ﻋﻤﻞ ﺗﺮﺟﻤﻪ را ﺑﺮاي DSPﻫﺎ ﺑﺮ ﻋﻬﺪه دارﻧﺪ .ﭼﻮن DSPﻓﻘﻂ ﻣﯽ ﺗﻮاﻧﺪ روي داده دﯾﺠﯿﺘﺎﻟﯽ ﻋﻤﻞ ﮐﻨﺪ،
ﺳﯿﮕﻨﺎلﻫﺎي آﻧﺎ ﻟﻮگ ﺑﺎﯾﺪ ﺑﻪ ﺳﯿﮕﻨﺎل ﻫﺎي دﯾﺠﯿﺘﺎل ﺗﺒﺪﯾﻞ ﺷﻮﻧﺪ .وﻗﺘﯽ ﮐﻪ DSPﯾﮏ ﺧﺮوﺟﯽ را ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ ،ﻣﻤﮑﻦ اﺳﺖ
ﮐﻪ ﻻزم ﺷﻮد ،آن ﺧﺮوﺟﯽ ﺑﺮاي درك ﺗﻮﺳﻂ ﺟﻬﺎن ﺑﯿﺮوﻧﯽ ﺑﻪ ﺳﯿﮕﻨﺎل آﻧﺎﻟﻮگ ﺗﺒﺪﯾﻞ ﺷﻮد.
درﮔﺎه ﻫﺎ : ·
ﭘﻮرت ﻫﺎي ارﺗﺒﺎﻃﯽ ﺑﺮاي ﯾﮏ ﺳﯿﺴﺘﻢ DSPﺿﺮوري ﻫﺴﺘﻨﺪ .اﻃﻼﻋﺎت اوﻟﯿﻪ درﯾﺎﻓﺖ و ﭘﺮدازش ﻣﯽﺷﻮﻧﺪ و ﺳﭙﺲ آن
اﻃﻼﻋﺎت ﺗﻮﺳﻂ اﯾﻦ ﭘﻮرت ﻫﺎ ﺑﻪ ﺟﻬﺎن ﺑﯿﺮوﻧﯽ ﻣﻨﺘﻘﻞ ﻣﯽﺷﻮﻧﺪ .راﯾﺞﺗﺮﯾﻦ ﭘﻮرت ﻫﺎ ،ﭘﻮرت ﻫﺎي ﺳﺮﯾﺎل و ﻣﻮازي ﻫﺴﺘﻨﺪ .ﯾﮏ
ﭘﻮرت ﺳﺮﯾﺎل ﯾﮏ ﺟﺮﯾﺎن ﭘﺸﺖ ﺳﺮ ﻫﻢ از اﻃﻼﻋﺎت را درﯾﺎﻓﺖ ﻣﯽﮐﻨﺪ و آن را ﺑﻪ ﻓﺮﻣﺖ ﭘﺮوﺳﺴﻮر ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ .ﻫﻨﮕﺎﻣﯽ ﮐﻪ
ﭘﺮوﺳﺴﻮر ﻣﯽ ﺧﻮاﻫﺪ داده ﺳﺮﯾﺎل را ﺑﻪ ﺧﺮوﺟﯽ ﺑﻔﺮﺳﺘﺪ ،ﭘﻮرت ﺳﺮﯾﺎل دادهء ﭘﺮوﺳﺴﻮر را درﯾﺎﻓﺖ و ﺑﻪ ﯾﮏ ﺟﺮﯾﺎن ﺳﺮﯾﺎل
ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ)ﻣﺎﻧﻨﺪ ارﺗﺒﺎط ﻣﻮدم در ﮐﺎﻣﭙﯿﻮﺗﺮ ﻫﺎي ﺷﺨﺼﯽ( .ﯾﮏ ﭘﻮرت ﻣﻮازي ﻧﯿﺰ ﻫﻤﺎن ﮐﺎر را اﻧﺠﺎم ﻣﯽ دﻫﺪ ،ﺑﺎ اﯾﻦ ﺗﻔﺎوت
ﮐﻪ ورودي و ﺧﺮوﺟﯽ ﺑﻪ ﻓﺮﻣﺖ ﻣﻮازي )ﻫﻢ زﻣﺎن( ﻫﺴﺘﻨﺪ )ﻣﺎﻧﻨﺪ ﭘﻮرت ﭘﺮﯾﻨﺘﺮ(.
15 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
از زﻣﺎن ﻣﻌﺮﻓﯽ DSPﻫﺎ ﺑﻪ ﺑﺎزار ،اﯾﻦ ﭘﺮدازﻧﺪهﻫﺎ ﮐﺎرﺑﺮدﻫﺎي ﻣﺘﻨﻮع و ﮔﺴﺘﺮدهاي ﭘﯿﺪا ﮐﺮدهاﻧﺪ .از آن ﻫﺎ در ﺳﯿﺘﻢ ﻫﺎي
HI-FIروزﻣﺮه و ﻫﻤﭽﻨﯿﻦ ﮐﺎرﺑﺮدﻫﺎي واﻗﻌﯿﺖ ﻣﺠﺎزي ﭘﯿﺸﺮﻓﺘﻪ) (high-end virtual-realityاﺳﺘﻔﺎده ﻣﯽ ﺷﻮﻧﺪ .ﺑﻪ ﻃﻮر
ﮐﻠﯽ DSP ،ﯾﮏ ﺗﮑﻨﻮﻟﻮژي ﮔﺮان ﻧﯿﺴﺖ.
ﺗﻌﺪادي از ﺳﯿﺴﺘﻢ ﻫﺎي DSPﻋﻤﻠﯽ ﻋﺒﺎرﺗﻨﺪ از:
ﺗﺠﻬﯿﺰات Hi-Fi ·
اﺳﺒﺎب ﺑﺎزي ﻫﺎ ·
ﺗﻠﻔﻦ ﻫﺎي ﺗﺼﻮﯾﺮي ·
ﻣﻮدم ﻫﺎ ·
ﺳﯿﺴﺘﻢ ﻫﺎي ﺻﻮﺗﯽ ·
ﺳﯿﺴﺘﻢ ﻫﺎي ﮔﺮاﻓﯿﮑﯽ ﺳﻪ ﺑﻌﺪي ·
ﺳﯿﺴﺘﻢ ﻫﺎي ﭘﺮدازش ﺗﺼﻮﯾﺮ ·
· ﺗﺠﻬﯿﺰات ) Hi-Fiدﺳﺘﮕﺎه ﻫﺎي ﻣﻮﺳﯿﻘﯽ(:
DSPﻫﺎ ﻫﻢ اﮐﻨﻮن در ﭘﺮدازﺷﮕﺮﻫﺎي ﺻﺪا ،ﮐﻪ ﻣﯽﺗﻮاﻧﻨﺪ ﺻﺪاي ﺳﻪ ﺑﻌﺪي ﺗﻮﻟﯿﺪ ﮐﻨﻨﺪ ﯾﺎ ﺻﺪاي ﯾﮏ اﺗﺎق را ﻫﻤﭽﻮن ﯾﮏ
ﺗﺎﻻر ﺑﻬﺒﻮد ﺑﺨﺸﻨﺪ؛ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮﻧﺪ .در ﻧﺘﯿﺠﻪ ﮐﯿﻔﯿﺖ ﺻﺪاي ﺳﯿﻨﻤﺎ ،در ﯾﮏ ﺳﯿﺴﺘﻢ ﻣﻮﺳﯿﻘﯽ ﺧﺎﻧﮕﯽ وﺟﻮد دارد.
اﺳﺒﺎب ﺑﺎزي ﻫﺎ: ·
اﻣﺮوزه ﺗﮑﻨﻮﻟﻮژي DSPدر اﺳﺒﺎب ﺑﺎزي ﺑﭽﻪﻫﺎ ﮔﻨﺠﺎﻧﺪه ﺷﺪه اﺳﺖ .اﺳﺒﺎب ﺑﺎزيﻫﺎي ﺳﺨﻨﮕﻮ وﺳﺎﯾﻠﯽ ﻣﻌﻤﻮﻟﯽ ﻫﺴﺘﻨﺪ.
ﺑﺮاي ﻣﺜﺎل ،ﺑﺎ ﻓﺸﺮدن ﻋﮑﺲ ﯾﮏ ﺳﮓ ،ﺑﭽﻪ ﻫﺎ ﻣﯽ ﺗﻮاﻧﻨﺪ ﺻﺪاي ﭘﺎرس آن را ﺑﺸﻨﻮﻧﺪ.
16 ﻣﻘﺪﻣﻪ :آﺷﻨﺎﯾﯽ ﺑﺎ ﭘﺮدازﻧﺪه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
CCDاﺳﺖ ،ﮐﺎر ﻣﯽ ﮐﻨﺪ .اﯾﻦ ﺳﯿﺴﺘﻢ ﻫﺎ ﻫﻤﭽﻨﯿﻦ ﺑﺮاي ﻓﯿﻠﺘﺮ ﮐﺮدن دو ﺑﻌﺪي از ﺳﯿﮑﻞﻫﺎي ﺿﺮب و ﺟﻤﻊ ﮐﺎراﻣﺪ DSPﻫﺎ،
اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﻨﺪ.
دﻣﺎ ،رﻃﻮﺑﺖ و ﮔﺬﺷﺖ زﻣﺎن روي ﻋﻨﺎﺻﺮ آﻧﺎﻟﻮگ از ﻗﺒﯿﻞ ﻣﻘﺎوﻣﺖ ،ﺧﺎزن ،دﯾﻮد و آپ-اﻣﭗ ﺗﺄﺛﯿﺮ ﻣﯽ ﮔﺬارﻧﺪ .ﯾﮏ ﻣﺪار
آﻧﺎﻟﻮگ ﺣﺴﺎس ﺑﻪ دﻣﺎ ﺷﺎﯾﺪ ﻋﻤﻠﮑﺮد ﮐﺎﻣﻼً ﻣﺘﻔﺎوﺗﯽ در اﻧﮕﻠﯿﺲ ﻧﺴﺒﺖ ﺑﻪ ﻣﺼﺮ ،ﮐﻪ دﻣﺎﯾﺸﺎن ﻣﺘﻔﺎوت ﻫﺴﺘﻨﺪ ،داﺷﺘﻪ ﺑﺎﺷﺪ .اﯾﻦ
ﻣﯽ ﺗﻮاﻧﺪ ﺑﺮاي ﯾﮏ ﺷﺮﮐﺖ ﮐﻪ ﻣﺤﺼﻮﻻﺗﺶ را در ﺳﺮاﺳﺮ دﻧﯿﺎ ﺑﻪ ﻓﺮوش ﻣﯽ رﺳﺎﻧﺪ ،ﻣﺸﮑﻞ آﻓﺮﯾﻦ ﺑﺎﺷﺪ.
ﺧﺼﻮﺻﯿﺎت ﻣﺪارﻫﺎي دﯾﺠﯿﺘﺎﻟﯽ ﺑﺎ زﻣﺎن ،دﻣﺎ و رﻃﻮﺑﺖ ﺑﻪ ﺗﺪرﯾﺞ ﺗﻐﯿﯿﺮ ﻧﻤﯽ ﮐﻨﻨﺪ .آن ﻫﺎ ﯾﺎ ﮐﺎر ﻣﯽ ﮐﻨﻨﺪ و ﯾﺎ ﻧﻤﯽ ﮐﻨﻨﺪ .ﺑﻪ
ﺑﯿﺎن دﯾﮕﺮ ،ﻣﺪارﻫﺎي دﯾﺠﯿﺘﺎﻟﯽ ﺑﻪ ﺷﺮط اﯾﻦ ﮐﻪ ﺑﺎ دﻗﺖ ﮐﺎﻓﯽ ﺑﺮاي ﮐﺎر ﮐﺮدن در ﻣﺤﺪودهء ﺷﺮاﯾﻂ ﻣﻮرد اﻧﺘﻈﺎر ﻃﺮاﺣﯽ ﺷﺪه
ﺑﺎﺷﻨﺪ ،ﺗﮑﺮار ﭘﺬﯾﺮﻧﺪ.
ﺗﻠﺮاﻧﺲ: ·
ﻗﻄﻌﺎﺗﯽ از ﻗﺒﯿﻞ ﻣﻘﺎوﻣﺖ و ﺧﺎزن داراي ﺗﻠﺮاﻧﺲ ﻫﺴﺘﻨﺪ .اﮔﺮ ﺗﻠﺮاﻧﺲ ﻗﻄﻌﻪ اي ده درﺻﺪ ﺑﺎﺷﺪ ،دو ﻣﺪار آﻧﺎﻟﻮگ ﻇﺎﻫﺮاً
ﻣﺸﺎﺑﻪ ﻣﻤﮑﻦ اﺳﺖ آن ﻗﺪر ﻣﺘﻔﺎوت ﺑﺎﺷﻨﺪ ﮐﻪ ﺑﺎﻋﺚ ﻣﺸﮑﻼت ﻋﻤﻠﯽ ﺷﻮﻧﺪ .در ﻧﺘﯿﺠﻪ ﻃﺮاﺣﯽ ،ﺗﻮﻟﯿﺪ و ﭘﺸﺘﯿﺒﺎﻧﯽ از ﻣﺪارﻫﺎي
آﻧﺎﻟﻮگ ﮔﺮان ﺗﻤﺎم ﻣﯽ ﺷﻮد.
ﺗﮑﺮار ﭘﺬﯾﺮي دﯾﺠﯿﺘﺎل: ·
ء
ﯾﮏ ﻣﺪار دﯾﺠﯿﺘﺎل ﮐﻪ ﺑﻪ درﺳﺘﯽ ﻃﺮاﺣﯽ ﺷﺪه ﺑﺎﺷﺪ ،ﻫﻤﯿﺸﻪ ﻧﺘﯿﺠﻪ ﯾﮑﺴﺎﻧﯽ ﺗﻮﻟﯿﺪ ﻣﯽ ﮐﻨﺪ و در ﺗﻤﺎم ﻧﻤﻮﻧﻪ ﻫﺎ ﯾﮑﺴﺎن
اﺳﺖ .ﺑﺮاي ﻣﺜﺎل اﮔﺮ ،ﻋﻤﻞ ﺿﺮﺑﯽ روي 500ﮐﺎﻣﭙﯿﻮﺗﺮ اﺟﺮا ﺷﻮد ،ﻧﺘﯿﺠﻪ در ﻫﻤﻪ ي آن ﻫﺎ ﯾﮑﺴﺎن ﺧﻮاﻫﺪ ﺑﻮد .ﺧﻄﺎي ﻗﻄﻌﺎت،
ﮔﺬﺷﺖ زﻣﺎن و دﻣﺎ روي ﻣﺪارﻫﺎي دﯾﺠﯿﺘﺎﻟﯽ ﺗﺄﺛﯿﺮ ﭼﻨﺪاﻧﯽ ﻧﻤﯽ ﮔﺬارد.
ﯾﮏ ﻣﺪار دﯾﺠﯿﺘﺎﻟﯽ ﮐﻪ ﺑﻪ درﺳﺘﯽ ﻃﺮاﺣﯽ ﺷﺪه ﺑﺎﺷﺪ ،ﻧﺘﯿﺠﻪ ﯾﮑﺴﺎﻧﯽ را در اﻧﮕﻠﯿﺲ و ﻣﺼﺮ ،ﺣﺘﯽ زﻣﺎﻧﯽ ﮐﻪ دﻣﺎ ﻣﺘﻔﺎوت
ﺑﺎﺷﺪ ،ﺗﻮﻟﯿﺪ ﺧﻮاﻫﺪ ﮐﺮد .ﺑﻪ ﺑﯿﺎن دﯾﮕﺮ 500 ،ﻣﺪار آﻧﺎﻟﻮگ ﯾﮏ ﻣﺤﺪوده از ﻧﺘﺎﯾﺞ را ﺗﻮﻟﯿﺪ ﻣﯽ ﮐﻨﻨﺪ.
ء
ﺑﺮاي اﯾﻦ ﮐﻪ ﯾﮏ ﻣﺪار دﯾﺠﯿﺘﺎﻟﯽ ﺗﮑﺮارﭘﺬﯾﺮ ﺑﺎﺷﺪ ،وﻟﺘﺎژ آﻧﺎﻟﻮﮔﯽ ﮐﻪ ﺑﯿﺎن ﮐﻨﻨﺪهء ﺻﻔﺮ و ﯾﮏ ﻣﻨﻄﻘﯽ اﺳﺖ ﺑﺎﯾﺪ ﺑﻪ اﻧﺪازه
ﮐﺎﻓﯽ از از وﻟﺘﺎژ آﺳﺘﺎﻧﻪ ﺑﺰرگ ﺗﺮ و ﯾﺎ ﮐﻮﭼﮏ ﺗﺮ ﺑﺎﺷﺪ ﺗﺎ ﺗﻐﯿﯿﺮات ﻣﺪاري و ﻧﻮﯾﺰ روي آن ﺗﺄﺛﯿﺮ ﻧﮕﺬارد .ﺗﻨﻬﺎ ﭼﯿﺰي ﮐﻪ اﻫﻤﯿﺖ
دارد اﯾﻦ اﺳﺖ ﮐﻪ ﻣﺤﺪودﯾﺖ زﻣﺎﻧﺒﻨﺪي و ﺣﺪاﮐﺜﺮ ﻗﺪرت ﺗﻮان وﺳﯿﻠﻪ ﻧﺒﺎﯾﺪ ﻓﺮاﺗﺮ رود.
دﻗﺖ دﯾﺠﯿﺘﺎﻟﯽ ﺑﻪ وﺳﯿﻠﻪء ﺗﻌﺪاد ﺑﯿﺖ ﻫﺎﯾﯽ ﮐﻪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮﻧﺪ ،ﺗﻌﯿﯿﻦ ﻣﯽ ﮔﺮدد .در ﻣﺪارﻫﺎي آﻧﺎﻟﻮگ ﺗﻌﺪاد ﺑﯿﺖ ﻫﺎ ﺑﻪ
ﻃﻮر ﻣﻮءﺛﺮ ﺑﯿﻨﻬﺎﯾﺖ ﻣﯽ ﺑﺎﺷﻨﺪ؛ اﻣﺎ اﺛﺮ ﻧﻮﯾﺰ ،ﺧﻄﺎي ﻗﻄﻌﺎت و ﺧﻄﯽ ﺑﻮدن ﻣﯽ ﺗﻮاﻧﻨﺪ ﺑﻪ ﺳﺮﻋﺖ ﺑﺎﻋﺚ ﮐﺎﻫﺶ ﻋﻤﻠﮑﺮد ﺷﻮﻧﺪ.
ﯾﮏ دﺳﺘﮕﺎه ﭘﺨﺶ ،CDﻣﯽ ﺗﻮاﻧﺪ ﻫﻤﺎن ﻣﻮﺳﯿﻘﯽ دﯾﺠﯿﺘﺎﻟﯽ ﺑﺎ ﮐﯿﻔﯿﺖ را ﺑﻪ ﻃﻮر ﻣﺮﺗﺐ ﭘﺨﺶ ﮐﻨﺪ و اﺻﻮﻻً ﺗﻨﻬﺎ ﺗﻮﺳﻂ
ﻗﻄﻌﺎت آﻧﺎﻟﻮﮔﯽ ﮐﻪ ﻫﻨﻮز ﻧﯿﺎزﻣﻨﺪﻧﺪ ،ﻣﺤﺪود ﻣﯽ ﺷﻮد .ﻗﻄﻌﺎت آﻧﺎﻟﻮگ در ﯾﮏ دﺳﺘﮕﺎه ﭘﺨﺶ CDﺷﺎﻣﻞ ،DACﻟﯿﺰر ،ﭘﯿﮑﺎب
ﻟﯿﺰر ،ﻣﺤﺮك ﻫﺪ ﺧﻮان ،ﻣﻮﺗﻮر و ﮔﻮﺷﯽ ﻣﯽ ﺷﻮﻧﺪ.
ﮐﺎراﯾﯽ: ·
ﺑﻌﻀﯽ از وﻇﺎﯾﻒ ﺧﺎص ﺑﻪ ﻓﺮم دﯾﺠﯿﺘﺎل ﺑﻬﺘﺮ ﻗﺎﺑﻞ ﭘﯿﺎده ﺳﺎزي ﻫﺴﺘﻨﺪ .ﻣﺎﻧﻨﺪ:
ﻓﺸﺮده ﺳﺎزي ﺑﺪون اﺗﻼف ·
ﻓﯿﻠﺘﺮ ﻫﺎي ﺗﻄﺒﯿﻘﯽ ·
19 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﺑﺮاي ﺗﻄﺒﯿﻖ ﮐﺮدن ﻣﺸﺨﺼﺎت آﻧﺘﯽ ﻧﻮﯾﺰ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ﺗﺎ ﻧﻮﯾﺰ ﺑﯿﺸﺘﺮﯾﻦ ﮐﺎﻫﺶ را داﺷﺘﻪ ﺑﺎﺷﺪ .ﺳﭙﺲ ﺳﯿﺴﺘﻢ ﺑﻪ ﻃﻮر ﻣﺘﻨﺎوب
ﻋﻤﻞ ﺗﻄﺒﯿﻖ را اﻧﺠﺎم ﻣﯽ دﻫﺪ ﺗﺎ ﺗﻐﯿﯿﺮات ﻧﻮﯾﺰ داﺧﻞ ﮐﺎﺑﯿﻦ را دﻧﺒﺎل ﮐﻨﺪ.
ﯾﮏ ﺳﯿﺴﺘﻢ DSPﻣﯽ ﺗﻮاﻧﺪ ﺑﻪ آﺳﺎﻧﯽ ﺑﺎ اﻧﺪﮐﯽ ﺗﻐﯿﯿﺮات در ﻣﺘﻐﯿﯿﺮﻫﺎي ﻣﺤﯿﻄﯽ ﺗﻄﺒﯿﻖ ﺷﻮد .ﯾﮏ اﻟﮕﻮرﯾﺘﻢ ﺗﻄﺒﯿﻘﯽ ﭘﺎراﻣﺘﺮ
ﻫﺎي ﻻزم ﺟﺪﯾﺪ را ﺑﻪ آﺳﺎﻧﯽ ﻣﺤﺎﺳﺒﻪ ﻣﯽ ﮐﻨﺪ و ﺳﭙﺲ آن ﻫﺎ را در ﺣﺎﻓﻈﻪء اﺻﻠﯽ ذﺧﯿﺮه ﻣﯽ ﮐﻨﺪ و ﺟﺎي ﻣﻘﺪارﻫﺎي ﻗﺒﻠﯽ ﻗﺮار
ﻣﯽ دﻫﺪ .در ﻣﺪارﻫﺎي آﻧﺎﻟﻮگ ﯾﮏ اﻧﻄﺒﺎق ﺧﯿﻠﯽ ﺳﺎده اﻣﮑﺎن ﭘﺬﯾﺮ اﺳﺖ اﻣﺎ ﺗﻐﯿﯿﺮات ﮐﺎﻣﻞ ﯾﮏ دﺳﺘﻪء ﭘﯿﭽﯿﺪه از ﻣﺸﺨﺼﻪ ﻫﺎي
ﻓﯿﻠﺘﺮ از ﻣﺤﺪوده ﻋﻤﻠﯽ ﭘﺮدازش ﺳﯿﮕﻨﺎل ﻫﺎي آﻧﺎﻟﻮگ ﺧﺎرج اﺳﺖ.
ﯾﮏ ﻧﻤﻮﻧﻪ از ﻓﯿﻠﺘﺮﻫﺎﯾﯽ ﮐﻪ ﻣﻤﮑﻦ اﺳﺖ ﺑﺮاي ﭘﯿﺎده ﺳﺎزي ﺳﯿﺴﺘﻢ ﻫﺎي ﺣﺬف ﻧﻮﯾﺰ اﺳﺘﻔﺎده ﺷﻮﻧﺪ ،ﻓﯿﻠﺘﺮ دﻧﺪاﻧﻪ اي) notch
(filterﺑﺎ ﺷﯿﺐ ﺗﻨﺪ در ﻓﺮﮐﺎﻧﺲ ﻗﻄﻊ ﻣﯽ ﺑﺎﺷﺪ .در اﯾﻦ ﻣﻮرد DSPﻣﯽ ﺗﻮاﻧﺪ ﻓﺮﮐﺎﻧﺲ ﺷﮑﺎف را ﺑﺮاي ﺣﺬف ﻧﻮﯾﺰ ﻟﺮزﺷﯽ،
وﻗﺘﯽ ﮐﻪ ﺳﺮﻋﺖ ﭼﺮﺧﺶ ﻣﻮﺗﻮر ﺗﻐﯿﯿﺮ ﻣﯽ ﮐﻨﺪ ،دوﺑﺎره ﻣﺤﺎﺳﺒﻪ ﮐﻨﺪ .ﺗﻮﻟﯿﺪ ﺗﻌﺪاد زﯾﺎدي ﻓﯿﻠﺘﺮﻫﺎي ﻗﺎﺑﻞ ﺗﻨﻈﯿﻢ ﻓﻘﻂ ﺑﺎ اﺳﺘﻔﺎده از
ﺗﮑﻨﯿﮏ ﻫﺎي آﻧﺎﻟﻮگ ،ﻋﻤﻼً ﻏﯿﺮ ﻣﻤﮑﻦ اﺳﺖ.
ﻓﯿﻠﺘﺮ ﻫﺎي ﺑﺎ ﻓﺎز ﺧﻄﯽ: ·
ﺗﻌﺪادي روش ارزﺷﻤﻨﺪ ﺑﺮاي ﭘﺮدازش ﺳﯿﮕﻨﺎل وﺟﻮد دارد ﮐﻪ ﺑﺎ اﺳﺘﻔﺎده از ﺷﯿﻮه ﻫﺎي آﻧﺎﻟﻮگ دﺷﻮار و ﯾﺎ ﻏﯿﺮ ﻣﻤﮑﻦ ﻣﯽ
ﺑﺎﺷﺪ .ﯾﮏ ﻧﻤﻮﻧﻪء ﺑﺎرز آن ﻓﯿﻠﺘﺮﻫﺎي ﺑﺎ ﻓﺎز ﺧﻄﯽ اﺳﺖ ﻃﺮاﺣﯽ آن ﻫﺎ ﺑﻪ ﺻﻮرت آﻧﺎﻟﻮگ دﺷﻮار ﻣﯽ ﺑﺎﺷﻨﺪ .ﺑﺎ اﺳﺘﻔﺎده از ﻓﯿﻠﺘﺮﻫﺎي
دﯾﺠﯿﺘﺎﻟﯽ ﻣﯽ ﺗﻮان ﺗﻐﯿﯿﺮات ﻓﺎز ﻫﺮ ﺟﺰء ﻓﺮﮐﺎﻧﺴﯽ را ﻫﻤﺴﺎن ﺑﺎ دﯾﮕﺮ ﻓﺮﮐﺎﻧﺲ ﻫﺎ ﻧﮕﻪ داﺷﺖ .اﯾﻦ ﮐﺎر ﺑﺎ اﺳﺘﻔﺎده از ﯾﮏ ﻓﯿﻠﺘﺮ ﺑﺎ
ﭘﺎﺳﺦ ﺿﺮﺑﻪء ﮐﺮان دار) (FIRاﻣﮑﺎن ﭘﺬﯾﺮ ﻣﯽ ﺑﺎﺷﺪ.
ﯾﮏ ﺗﻔﺎوت اﺳﺎﺳﯽ ﺑﯿﻦ ﭘﺮدازﻧﺪه ﻫﺎي DSPﺳﺎﺧﺘﺎر ﻣﺤﺎﺳﺒﺎﺗﯽ آن ﻫﺎ اﺳﺖ :ﻣﻤﯿﺰ ﺛﺎﺑﺖ ﯾﺎ ﻣﻤﯿﺰ ﺷﻨﺎور .ﺑﺮاي ﻃﺮاﺣﺎن
ﺳﯿﺴﺘﻢ ،اﯾﻦ ﻣﻬﻤﺘﺮﯾﻦ ﻋﺎﻣﻠﯽ اﺳﺖ ﮐﻪ ﺑﻪ ﮐﻤﮏ آن ﺗﺸﺨﯿﺺ ﻣﯽ دﻫﻨﺪ ﮐﻪ آﯾﺎ ﯾﮏ ﭘﺮدازﻧﺪهء DSPﺑﺮاي ﯾﮏ ﮐﺎرﺑﺮد ﻣﺸﺨﺺ
ﻣﻨﺎﺳﺐ اﺳﺖ ﯾﺎ ﻧﻪ .ﭘﺮدازﻧﺪه ﻫﺎي DSPﻣﻤﯿﺰ ﺛﺎﺑﺖ ﻣﻤﮑﻦ اﺳﺖ 16ﺑﯿﺘﯽ ﯾﺎ 24ﺑﯿﺘﯽ ﺑﺎﺷﻨﺪ ،در ﺣﺎﻟﯽ ﮐﻪ ﭘﺮدازﻧﺪه ﻫﺎي ﻣﻤﯿﺰ
ﺷﻨﺎور ﻣﻌﻤﻮﻻً 32ﺑﯿﺘﯽ ﻫﺴﺘﻨﺪ .ﯾﮏ ﭘﺮدازﻧﺪهء 16ﺑﯿﺘﯽ ﻣﻤﯿﺰ ﺛﺎﺑﺖ راﯾﺞ ﻣﺎﻧﻨﺪ ،TMS320C55xاﻋﺪاد را ﺑﻪ ﻓﺮﻣﺖ ﺻﺤﯿﺢ ﯾﺎ
اﻋﺸﺎري 16ﺑﯿﺘﯽ در ﯾﮏ ﻣﺤﺪوده ء ﺛﺎﺑﺖ ذﺧﯿﺮه ﻣﯽ ﮐﻨﻨﺪ .اﮔﺮﭼﻪ ﺿﺮاﯾﺐ و ﺳﯿﮕﻨﺎل ﻫﺎ ﺑﺎ دﻗﺖ 16ﺑﯿﺘﯽ ذﺧﯿﺮه ﻣﯽ ﺷﻮﻧﺪ،
ﻣﻘﺎدﯾﺮ ﻣﯿﺎﻧﯽ ﺑﺮاي ﮐﺎﻫﺶ ﺧﻄﺎﻫﺎي رﻧﺪ ﮐﺮدن ﺗﺠﻤﻌﯽ ،ﻣﻤﮑﻦ اﺳﺖ ﺑﺎ دﻗﺖ 32ﺑﯿﺘﯽ در 40 ، accumulatorﺑﯿﺘﯽ ذﺧﯿﺮه
ﺷﻮﻧﺪDSP .ﻫﺎي ﻣﻤﯿﺰ ﺛﺎﺑﺖ ﻣﻌﻤﻮﻻً از DSPﻫﺎي ﻣﻤﯿﺰ ﺷﻨﺎور ارزان ﺗﺮ و ﺳﺮﯾﻊ ﺗﺮ ﻫﺴﺘﻨﺪ ﭼﻮن آن ﻫﺎ از ﺳﯿﻠﯿﮑﻮن ﮐﻤﺘﺮي
اﺳﺘﻔﺎده ﻣﯽﮐﻨﻨﺪ ،ﻣﺼﺮف ﺗﻮان ﮐﻤﺘﺮي دارﻧﺪ و ﺑﻪ ﭘﯿﻦ ﻫﺎي ﺧﺎرﺟﯽ ﮐﻤﺘﺮي ﻧﯿﺎز دارﻧﺪ .ﻣﻮارد اﺳﺘﻔﺎده ﭘﺮدازﻧﺪه ﻫﺎي ﻣﻤﯿﺰ ﺛﺎﺑﺖ
ﻋﺒﺎرﺗﻨﺪ از :ﮐﻨﺘﺮل دﺳﺘﮕﺎه ﻫﺎي ﺑﺮﻗﯽ ،ﻣﻮﺑﺎﯾﻞ ،دراﯾﻮ ﻫﺎرد دﯾﺴﮏ ،ﻣﻮدم ﻫﺎ ﭘﺨﺶﮐﻨﻨﺪهﻫﺎي ﺻﻮﺗﯽ و دورﺑﯿﻦ ﻫﺎي دﯾﺠﯿﺘﺎﻟﯽ.
ﺣﺴﺎب ﻣﻤﯿﺰ ﺷﻨﺎور ﻣﺤﺪوده دﯾﻨﺎﻣﯿﮑﯽ اﻋﺪاد را ﺑﻪ ﺷﺪت اﻓﺰاﯾﺶ ﻣﯽدﻫﺪ .ﯾﮏ ﭘﺮدازﻧﺪه DSPﻣﻤﯿﺰ ﺷﻨﺎور 32ﺑﯿﺘﯽ راﯾﺞ
ﻣﺎﻧﻨﺪ ،TMS320C67xاﻋﺪاد را ﺑﻪ ﺻﻮرت 24ﺑﯿﺖ ﻣﺎﻧﺘﯿﺲ و 8ﺑﯿﺖ ﻧﻤﺎ ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ .ﻣﺎﻧﺘﯿﺲ ﯾﮏ ﻋﺪد اﻋﺸﺎري را در
ﻣﺤﺪوده -1و +1ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ در ﺣﺎﻟﯽ ﮐﻪ ﻧﻤﺎ ﯾﮏ ﻋﺪد ﺻﺤﯿﺢ اﺳﺖ ﮐﻪ ﺗﻌﺪاد ﻣﮑﺎﻧﻬﺎﯾﯽ ﮐﻪ ﻣﻤﯿﺰ ﺑﺎﯾﻨﺮي ﺑﺎﯾﺪ ﺑﻪ ﭼﭗ ﯾﺎ
راﺳﺖ ﻣﻨﺘﻘﻞ ﺷﻮد ﺗﺎ ﯾﮏ ﻣﻘﺪار ﺣﻘﯿﻘﯽ ﺑﺪﺳﺖ آﯾﺪ ،را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ .ﯾﮏ ﻓﺮﻣﺖ ﻣﻤﯿﺰ ﺷﻨﺎور 32ﺑﯿﺘﯽ ،ﻣﺤﺪوده دﯾﻨﺎﻣﯿﮑﯽ
وﺳﯿﻌﯽ را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ .ﺑﻨﺎﺑﺮاﯾﻦ ﻣﺤﺪودﯾﺖﻫﺎﯾﯽ ﮐﻪ روي ﺣﺪود دﯾﻨﺎﻣﯿﮑﯽ داده وﺟﻮد دارﻧﺪ ،ﻣﻤﮑﻦ اﺳﺖ در ﯾﮏ ﻃﺮاﺣﯽ ﺑﺎ
اﺳﺘﻔﺎده از ﭘﺮدازﻧﺪهﻫﺎي DSPﻣﻤﯿﺰ ﺷﻨﺎور ﻧﺎدﯾﺪه ﮔﺮﻓﺘﻪ ﺷﻮﻧﺪ .اﯾﻦ در ﻧﻘﻄﻪ ﻣﻘﺎﺑﻞ ﻃﺮاﺣﯽ ﺑﺎ اﺳﺘﻔﺎده از ﻣﻤﯿﺰ ﺛﺎﺑﺖ ﻗﺮار دارد.
21 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
در ﻃﺮاﺣﯽ ﺑﺎ اﺳﺘﻔﺎده از ﻣﻤﯿﺰ ﺛﺎﺑﺖ ﻃﺮاح ﺑﺎﯾﺪ ﺿﺮاﯾﺐ ﻣﻘﯿﺎس ﺑﻨﺪي و ﺗﮑﻨﯿﮏ ﻫﺎي دﯾﮕﺮي را اﻋﻤﺎل ﮐﻨﺪ ﺗﺎ از ﺳﺮرﯾﺰ ﻣﺤﺎﺳﺒﺎت
ﺟﻠﻮﮔﯿﺮي ﮐﻨﺪ ،ﮐﻪ ﯾﮏ ﻓﺮاﯾﻨﺪ ﺧﯿﻠﯽ ﻣﺸﮑﻞ و وﻗﺖ ﮔﯿﺮ ﻣﯽ ﺑﺎﺷﺪ .از اﯾﻦ رو ،ﺑﻪ ﻃﻮر ﮐﻠﯽ ﭘﺮدازﻧﺪه ﻫﺎي DSPﻣﻤﯿﺰ ﺷﻨﺎور از
ﻧﻈﺮ ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ و اﺳﺘﻔﺎده آﺳﺎن ﻫﺴﺘﻨﺪ ،اﻣﺎ ﻣﻌﻤﻮﻻً ﮔﺮان ﺗﺮ ﻫﺴﺘﻨﺪ و ﺗﻮان ﺑﯿﺸﺘﺮي ﻣﺼﺮف ﻣﯽ ﮐﻨﻨﺪ.
دﻗﺖ و ﺣﺪود دﯾﻨﺎﻣﯿﮑﯽ ﭘﺮدازﻧﺪه ﻫﺎي DSPﻣﻤﯿﺰ ﺛﺎﺑﺖ 16ﺑﯿﺘﯽ راﯾﺞ در ﺷﮑﻞ زﯾﺮ ﺧﻼﺻﻪ ﺷﺪه اﺳﺖ.
اﺳﺖ .ﭼﻮن داراي 24ﺑﯿﺖ ﻣﺎﻧﺘﯿﺲ ﻣﯽ ﺑﺎﺷﻨﺪ .ﻫﻤﭽﻨﯿﻦ ﺣﺪود دﻗﺖ ﭘﺮدازﻧﺪه ﻫﺎي DSPﻣﻤﯿﺰ ﺷﻨﺎور 32ﺑﯿﺘﯽ،
1.18 ×10−38 ≤ x ≤ 3.4 × 1038ﻣﯽﺑﺎﺷﺪ. دﯾﻨﺎﻣﯿﮑﯽ آن ﻫﺎ
ﻃﺮاﺣﺎن ﺳﯿﺴﺘﻢ ﺑﺎﯾﺪ ﺣﺪود دﯾﻨﺎﻣﯿﮑﯽ و دﻗﺖ ﻣﻮرد ﻧﯿﺎز را ﺑﺮاي ﮐﺎرﺑﺮدﺷﺎن ﺗﻌﯿﯿﻦ ﮐﻨﻨﺪ .ﭘﺮدازﻧﺪهﻫﺎي ﻣﻤﯿﺰ ﺷﻨﺎور ﻣﻤﮑﻦ
اﺳﺖ در ﮐﺎرﺑﺮدﻫﺎﯾﯽ ﮐﻪ ﺿﺮاﯾﺐ ﻣﺘﻐﯿﯿﺮ ﺑﺎ زﻣﺎن ﻫﺴﺘﻨﺪ ،ﺳﯿﮕﻨﺎل ﻫﺎ و ﺿﺮاﯾﺐ ﺑﻪ ﺣﺪود دﯾﻨﺎﻣﯿﮑﯽ وﺳﯿﻊ و دﻗﺖ ﺑﺎﻻﯾﯽ ﻧﯿﺎز دارﻧﺪ
و ﯾﺎ ﺟﺎﯾﯽ ﮐﻪ ﺳﺎﺧﺘﺎر ﺣﺎﻓﻈﻪء وﺳﯿﻌﯽ ﻻزم ﺑﺎﺷﺪ ،ﻣﺎﻧﻨﺪ ﭘﺮدازش ﺗﺼﻮﯾﺮ ،ﻧﯿﺎز ﺷﻮﻧﺪ .ﻫﻤﭽﻨﯿﻦ ﭘﺮدازﻧﺪه ﻫﺎي DSPﻣﻤﯿﺰ ﺷﻨﺎور
اﺳﺘﻔﺎده ﻣﻮﺛﺮي از ﮐﺎﻣﭙﺎﯾﻠﺮﻫﺎي Cﻣﯽﮐﻨﻨﺪ ،ﺑﻨﺎﺑﺮاﯾﻦ ﻫﺰﯾﻨﻪ ﺗﻮﺳﻌﻪ و ﻧﮕﻪ داري را ﮐﺎﻫﺶ ﻣﯽدﻫﻨﺪ .زﻣﺎن ﺗﻮﺳﻌﻪ ﺳﺮﯾﻊ ﺗﺮ ﭘﺮدازﻧﺪه
ﻫﺎي ﻣﻤﯿﺰ ﺷﻨﺎور ﻣﻤﮑﻦ اﺳﺖ از ﻗﯿﻤﺖ اﺿﺎﻓﯽ آن ﻫﺎ ﻣﻬﻢ ﺗﺮ ﺑﺎﺷﺪ.
در ﻣﻘﺎﺑﻞ روﺷﻬﺎﯾﯽ وﺟﻮد دارد ﮐﻪ ﺑﺘﻮان از ﭘﺮدازﻧﺪه ﻫﺎي 16ﺑﯿﺘﯽ ﻣﻤﯿﺰ ﺛﺎﺑﺖ ،ﺑﺎ دﻓﺖ اﻧﺠﺎم ﻣﺤﺎﺳﺒﺎت 32ﺑﯿﺘﯽ اﺳﺘﻔﺎده
ﻧﻤﻮد و در ﻧﺘﯿﺠﻪ ﺑﻪ دﻗﺘﯽ در ﺣﺪود ﭘﺮدازﻧﺪه ﻫﺎي ﻣﻤﯿﺰ ﺷﻨﺎور و ﺣﺘﯽ ﺑﻬﺘﺮ دﺳﺖ ﭘﯿﺪا ﮐﺮد .در ﻣﺠﻤﻮع ﺗﻌﺪاد ﭘﺮدازﻧﺪه ﻫﺎي ﻣﻤﯿﺰ
ﺛﺎﺑﺖ ﻃﺮاﺣﯽ ﺷﺪه ﺑﺴﯿﺎر ﺑﯿﺸﺘﺮ از اﻧﻮاع ﻣﻤﯿﺰ ﺷﻨﺎور ﻣﯽﺑﺎﺷﺪ.
ﺑﺮﻧﺎﻣﻪ – ﺗﺮاﺷﻪ DSPﯾﮏ ﻗﻄﻌﻪ ﺳﺨﺖ اﻓﺰاري اﺳﺖ ﮐﻪ ﺑﺪون ﻫﻮش ﯾﮏ ﺑﺮﻧﺎﻣﻪ ﻧﻤﯽﺗﻮاﻧﻨﺪ ﮐﺎر ﮐﻨﻨﺪ .ﺑﺮﻧﺎﻣﻪ ﯾﮏ ·
ﺳﺮي دﺳﺘﻮر ﻋﻤﻞ اﺳﺖ ﮐﻪ وﻇﺎﯾﻒ ﻣﺸﺨﺼﯽ را اﻧﺠﺎم ﻣﯽدﻫﺪ.
اﺳﻤﺒﻠﺮ – اﺳﻤﺒﻠﺮ از دﺳﺘﻮرات ﻣﺘﻨﯽ ﮐﺪ ﻣﺎﺷﯿﻦ را ﺗﻮﻟﯿﺪ ﻣﯽ ﮐﻨﺪ .اﺳﻤﺒﻠﺮ ﺑﺎﻋﺚ ﻣﯽﺷﻮد ﮐﻪ دﯾﮕﺮ ﻧﯿﺎزي ﺑﻪ ﯾﺎد آوردن ·
دﺳﺘﻮرﻋﻤﻞ ﻫﺎي ﺑﺎﯾﻨﺮي ﻧﺪاﺷﺘﻪ ﺑﺎﺷﯿﻢ.
زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ ﺳﻄﺢ ﺑﺎﻻ – زﺑﺎنﻫﺎي ﺑﺮﻧﺎﻣﻪﻧﻮﯾﺴﯽ ﺳﻄﺢ ﺑﺎﻻ ﻣﺎﻧﻨﺪ زﺑﺎنﻫﺎي اﺳﻤﺒﻠﯽ ﻫﺴﺘﻨﺪ ،اﻣﺎ ﺧﯿﻠﯽ دوﺳﺘﺎﻧﻪ- ·
ﺗﺮاﻧﺪ .زﺑﺎنﻫﺎي اﺳﻤﺒﻠﯽ داراي دﺳﺘﻮرﻋﻤﻞﻫﺎي ﺧﯿﻠﯽ اﺑﺘﺪاﯾﯽ از ﻗﺒﯿﻞ ﺿﺮب ،ﺟﻤﻊ و ﻣﻘﺎﯾﺴﻪ ﻫﺴﺘﻨﺪ .زﺑﺎنﻫﺎي ﺑﺮﻧﺎﻣﻪ
ﻧﻮﯾﺴﯽ ﺳﻄﺢ ﺑﺎﻻ داراي دﺳﺘﻮرات ﺳﻄﺢ ﺑﺎﻻﺗﺮي از ﻗﺒﯿﻞ ﭼﺎپ و ﺗﮑﺮار ﺗﺎ زﻣﺎن رﺳﯿﺪن ﺑﻪ ﺻﻔﺮ ﻫﺴﺘﻨﺪ .ﺑﻨﺎﺑﺮاﯾﻦ
ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪ در زﺑﺎن ﻫﺎي ﺳﻄﺢ ﺑﺎﻻ ﺳﺎده ﺗﺮ ﻣﯽ ﺑﺎﺷﺪ .اﻣﺎ زﺑﺎن ﻫﺎي اﺳﻤﺒﻠﯽ ﻣﯽﺗﻮاﻧﻨﺪ ﺑﺮﻧﺎﻣﻪﻫﺎﯾﯽ را ﮐﻪ ﺳﺮﯾﻊ ﺗﺮ
22 ﻣﻘﺪﻣﻪ :آﺷﻨﺎﯾﯽ ﺑﺎ ﭘﺮدازﻧﺪه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
اﺟﺮا ﻣﯽﺷﻮﻧﺪ ،ﺗﻮﻟﯿﺪ ﮐﻨﻨﺪ .ﺑﻪ ﻫﻤﯿﻦ دﻟﯿﻞ از ﻫﺮ دوي آن ﻫﺎ در DSPﻫﺎ اﺳﺘﻔﺎده ﻣﯽﺷﻮﻧﺪ .ﮔﺎﻫﯽ اوﻗﺎت ﻻزم اﺳﺖ ﮐﻪ
ﻗﺴﻤﺖ ﻫﺎي زﻣﺎن ﺑﺮ ﯾﮏ ﺑﺮﻧﺎﻣﻪ ﺑﻪ اﺳﻤﺒﻠﯽ ﻧﻮﺷﺘﻪ ﺷﻮﻧﺪ.
ﺷﺒﯿﻪ ﺳﺎزﻫﺎ – ﺷﺒﯿﻪ ﺳﺎزﻫﺎي ﭘﺮواز ﺑﺎﻋﺚ ﻣﯽﺷﻮﻧﺪ ﮐﻪ ﺷﻤﺎ اﺣﺴﺎس ﮐﻨﯿﺪ ﻣﺜﻞ اﯾﻦ ﮐﻪ در ﮐﺎﺑﯿﻦ ﺧﻠﺒﺎن ﯾﮏ ﻫﻮاﭘﯿﻤﺎ ·
ﻫﺴﺘﯿﺪ ﺑﺪون اﯾﻦ ﮐﻪ ﻫﺰﯾﻨﻪ ﯾﮏ ﻫﻮاﭘﯿﻤﺎي واﻗﻌﯽ ،ﺳﻮﺧﺖ و رﯾﺴﮏ ﺗﺼﺎدف آن را ﺑﭙﺮدازﯾﺪ .ﯾﮏ ﺷﺒﯿﻪ ﺳﺎز ،DSP
ﯾﮏ ﭘﯿﺎده ﺳﺎزي ﻧﺮم اﻓﺰاري از ﯾﮏ ﺗﺮاﺷﻪ DSPﻣﯽ ﺑﺎﺷﺪ .ﯾﮏ ﺷﺒﯿﻪ ﺳﺎز روي ﯾﮏ ﮐﺎﻣﭙﯿﻮﺗﺮ راه اﻧﺪازي ﻣﯽ ﺷﻮد و
ﺗﻘﺮﯾﺒﺎً ﺗﻤﺎم وﻇﺎﯾﻒ اﺳﺎﺳﯽ ﯾﮏ DSPرا ﺷﺒﯿﻪ ﺳﺎزي ﻣﯽ ﮐﻨﺪ .آن ﻫﺎ ﺑﺮاي ﺗﺤﻠﯿﻞ اﻣﮑﺎن ﭘﺬﯾﺮ ﺑﻮدن ﻃﺮح ﻫﺎ ﻗﺒﻞ از
اﯾﻦ ﮐﻪ ﺑﻪ ﺳﺨﺖ اﻓﺰار ﺗﺒﺪﯾﻞ ﺷﻮﻧﺪ،اﺳﺘﻔﺎده ﻣﯽ ﺷﻮﻧﺪ .آن ﻫﺎ ﻫﻤﭽﻨﯿﻦ ﺑﺮاي ﺗﺸﺨﯿﺺ اﯾﻦ ﮐﻪ ﯾﮏ ﻃﺮح ﺑﻪ ﺧﺼﻮص
ﮐﺎر ﺧﻮاﻫﺪ ﮐﺮد ﯾﺎ ﻧﻪ ،ﻧﯿﺰ ﺧﯿﻠﯽ ﻣﻔﯿﺪ ﻫﺴﺘﻨﺪ.
– Emulatorsﯾﮏ emulatorﺑﻪ ﻣﺎ اﯾﻦ اﺟﺎزه را ﻣﯽ دﻫﺪ ﮐﻪ ﻣﺴﺘﻘﯿﻤﺎً ﻧﺘﯿﺠﻪ اﺟﺮاي دﺳﺘﻮرﻋﻤﻞ ﻫﺎ را روي DSPﮐﻨﺘﺮل و
اﺷﮑﺎل زداﯾﯽ ﮐﻨﯿﻢ .ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﺎ اﺳﺘﻔﺎده از emulatorﻫﺎ ﺗﻤﺎم ﺗﻐﯿﯿﺮات داﺧﻠﯽ در دﺳﺘﮕﺎه را در ﻫﺮ ﻣﺮﺣﻠﻪ ﺑﺒﯿﻨﯿﻢ .ﺗﻮﺳﻌﻪ
دﻫﻨﺪﮔﺎن ﻣﯽﺗﻮاﻧﻨﺪ در ﻫﺮ زﻣﺎن ﯾﮏ دﺳﺘﻮرﻋﻤﻞ را اﺟﺮا ﮐﻨﻨﺪ ،ﺑﺮاي اﻃﻤﯿﻨﺎن از ﻋﻤﻞ ﺻﺤﯿﺢ ﺳﻄﺢ وﻟﺘﺎژ را ﮐﻨﺘﺮل ﮐﻨﻨﺪ و ﻫﺮ
ﻧﺘﯿﺠﻪ را در زﻣﺎن ﺧﻮدش ﺑﺮرﺳﯽ ﮐﻨﻨﺪ.
ﺑﺮﻧﺎﻣﻪ اﺷﮑﺎل زدا ) –(Debuggerﯾﮏ ﺑﺮﻧﺎﻣﻪ اﺷﮑﺎل زدا ﺑﺮاي ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت اﺟﺮاي ﺑﺮﻧﺎﻣﻪ ﺑﻪ ﻓﺮﻣﺘﯽ ﻗﺎﺑﻞ اﺳﺘﻔﺎده
ﺑﺮاي ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺲ ،ﺑﻪ ﮐﺎر ﻣﯽرود .داده ﻫﺎﯾﯽ ﮐﻪ در ﺑﺮﻧﺎﻣﻪ اﺷﮑﺎل زدا ﻧﻤﺎﯾﺶ داده ﻣﯽﺷﻮﻧﺪ در واﻗﻊ ﻓﺮﻣﯽ از داده ﻫﺎي ﻣﻮﺟﻮد
در ﺣﺎﻓﻈﻪ DSPﻫﺴﺘﻨﺪ .اﯾﻦ ﺣﺎﻓﻈﻪ ﺑﻪ آﺳﺎﻧﯽ ﺑﺎ اﺳﺘﻔﺎده از ﯾﮏ emulatorو ﯾﺎ ﯾﮏ راﺑﻂ ارﺗﺒﺎﻃﯽ ﺑﻪ وﺳﯿﻠﻪ ﻧﺮماﻓﺰار ﻣﻨﺎﺳﺐ
داﺧﻞ ﯾﮏ PCﺑﺎرﮔﺬاري ﻣﯽ ﺷﻮد .ﺑﺮاي ﻣﺜﺎل ﭘﻨﺠﺮه ﺣﺎﻓﻈﻪ در debuggerﻣﯽﺗﻮاﻧﺪ داده را در ﻣﺒﻨﺎي ،16ﺑﺎ ﻓﺮﻣﺖ ﻋﺪد ﺻﺤﯿﺢ
ﯾﺎ اﻋﺸﺎري ﻧﻤﺎﯾﺶ دﻫﺪ ،ﺑﺎ اﯾﻦ ﺣﺎل داده در DSPﺑﻪ ﻓﺮم ﺑﺎﯾﻨﺮي اﺳﺖ Debugger .ﻫﺎ ﺷﺎﻣﻞ ﯾﮏ راﺑﻂ ﮐﺎرﺑﺮ در ﮐﺎﻣﭙﯿﻮﺗﺮ ﻣﯿﺰﺑﺎن
ﻫﺴﺘﻨﺪ ،ﮐﻪ ﻣﯽﺗﻮاﻧﻨﺪ ﻣﺤﺘﻮﯾﺎت و ﻣﺴﯿﺮ اﺟﺮاي ﺗﺮاﺷﻪ را ﮐﻨﺘﺮل و اﺻﻼح ﮐﻨﻨﺪ .راﺑﻂ ﮐﺎرﺑﺮ ﻣﺤﺘﻮﯾﺎت ،RAMﺛﺒﺎت ﻫﺎ و اﺳﻤﺒﻠﯽ
ﺑﺮﻧﺎﻣﻪء ﺑﺎرﮔﺬاري ﺷﺪه در داﺧﻞ DSPرا ﻧﻤﺎﯾﺶ ﻣﯽدﻫﻨﺪ .ﻣﺰﯾﺖ ﻋﻤﺪهء debuggerﻫﺎ ﻧﺴﺒﺖ ﺑﻪ ﺷﺒﯿﻪ ﺳﺎزﻫﺎ اﯾﻦ اﺳﺖ ﮐﻪ آنﻫﺎ
در زﻣﺎن واﻗﻌﯽ ﮐﺎر ﻣﯽﮐﻨﻨﺪ در ﻧﺘﯿﺠﻪ ﺑﻪ ﻃﺮاح اﺟﺎزه ﻣﯽدﻫﻨﺪ ﮐﻪ در ﻣﺤﯿﻂ واﻗﻌﯽ ﺑﻪ ﻋﻤﻠﮑﺮد ﺳﯿﺴﺘﻢ دﺳﺘﺮﺳﯽ ﭘﯿﺪا ﮐﻨﺪ.
ﺳﯿﮑﻞ ﺗﻮﺳﻌﻪ – ﺑﻌﺪ از آن ﮐﻪ اﻣﮑﺎن ﭘﺬﯾﺮي ﻃﺮح ﺑﺎ اﺳﺘﻔﺎده از ﺷﺒﯿﻪ ﺳﺎزي ﺗﺄﯾﯿﺪ ﺷﺪ ،ﻃﺮاﺣﯽ ﺑﺮﻧﺎﻣﻪ ﻣﯽﺗﻮاﻧﺪ آﻏﺎز ·
ﺷﻮد .اﺑﺘﺪا ﻧﺮم اﻓﺰار ﻃﺮاﺣﯽ ﻣﯽ ﺷﻮد .اﯾﻦ ﻣﺮﺣﻠﻪ رﯾﺰه ﮐﺎريﻫﺎ و ﺑﺨﺶﻫﺎي ﻣﺨﺘﻠﻒ ﮐﺪ را ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ .ﻫﺮ
ﺑﺨﺶ از ﺑﺮﻧﺎﻣﻪ ﺑﻪ ﺻﻮرت ﺟﺪاﮔﺎﻧﻪ ﻧﻮﺷﺘﻪ و ﺗﺴﺖ ﻣﯽ ﺷﻮد و ﺳﭙﺲ ﺗﻤﺎم ﺳﯿﺴﺘﻢ ﺑﺴﺘﻪ و آزﻣﺎﯾﺶ ﻣﯽﺷﻮد .اﮔﺮ ﻫﻤﻪ
ﭼﯿﺰ آن ﻃﻮر ﮐﻪ ﻣﻮرد اﻧﺘﻈﺎر اﺳﺖ ﮐﺎر ﮐﻨﺪ ،ورژن 1,0ﻣﺤﺼﻮل وارد ﺑﺎزار ﻣﯽ ﺷﻮد .اﮔﺮ ﺑﺮﺧﻼف اﻧﺘﻈﺎر ﻣﺎ ﺑﻮد ،اﯾﻦ
ﻓﺮاﯾﻨﺪ دوﺑﺎره ﺗﮑﺮار ﻣﯽ ﺷﻮد.
oﮐﺎرﺑﺮد
§ ﺳﯿﺴﺘﻢ ﻫﺎي ﮐﻨﺘﺮﻟﯽ از ﻗﺒﯿﻞ ﮐﻨﺘﺮل ﻣﻮﺗﻮر
§ ذﺧﯿﺮه ﺳﺎزي
§ ﮐﻨﺘﺮل دﯾﺠﯿﺘﺎﻟﯽ
C5000 ·
oﻣﺰﯾﺖ
§ ﺑﺎزدهء ﺑﺎﻻ
§ ﺑﯿﺸﺘﺮﯾﻦ (Million Instructions Per Second) MIPSدر ﻫﺮ وات/ﻫﺰﯾﻨﻪ/اﻧﺪازه
oﮐﺎرﺑﺮد
§ ﺗﻠﻔﻦ ﻫﺎي ﺑﯽ ﺳﯿﻢ
§ ﭘﺨﺶ ﮐﻨﻨﺪه ﻫﺎي ﺻﻮﺗﯽ
§ دورﺑﯿﻦ ﻫﺎي دﯾﺠﯿﺘﺎل
§ ﻣﻮدم ﻫﺎ
§ VoIP
C6000 ·
oﻣﺰﯾﺖ
§ ﻋﻤﻠﮑﺮد ﺑﺎﻻ
§ اﺳﺘﻔﺎدهء آﺳﺎن
oﮐﺎرﺑﺮد
§ زﯾﺮﺳﺎﺧﺖ ﻫﺎي ﻣﺨﺎﺑﺮاﺗﯽ
§ اﯾﺴﺘﮕﺎه ﻫﺎي ﺑﯽ ﺳﯿﻢ
§ DSL
§ ﺗﺼﻮﯾﺮ و وﯾﺪﺋﻮ
§ ﺳﺮورﻫﺎي ﭼﻨﺪ رﺳﺎﻧﻪ اي
ﭘﺮدازﻧﺪه ﺳﯿﮕﻨﺎل دﯾﺠﯿﺘﺎل ﻣﻤﯿﺰ ﺛﺎﺑﺖ TMS320VC5509Aﺑﺮ ﭘﺎﯾﻪ ﻧﺴﻞ ﭘﺮدازﻧﺪهﻫﺎي TMS320C55xﻣﯽﺑﺎﺷﺪ .ﻣﻌﻤﺎري
DSPﺳﺮي C55xﺑﺎ اﻓﺰاﯾﺶ ﻣﻮازي ﮐﺮدن و ﮐﺎﻫﺶ ﺗﻠﻔﺎت ﺗﻮان ،ﺑﻪ ﻋﻤﻠﮑﺮد ﺑﺎﻻ و ﻣﺼﺮف ﺗﻮان ﮐﻢ ،دﺳﺖ ﯾﺎﻓﺘﻪ اﺳﺖ .اﯾﻦ
CPUاز ﯾﮏ ﺳﺎﺧﺘﺎر ﺑﺎس داﺧﻠﯽ ﺗﺸﮑﯿﻞ ﺷﺪه از :ﯾﮏ ﺑﺎس ﺑﺮﻧﺎﻣﻪ ،ﺳﻪ ﺑﺎس ﺑﺮاي ﺧﻮاﻧﺪن داده ،دو ﺑﺎس ﺑﺮاي ﻧﻮﺷﺘﻦ داده و
ﺑﺎسﻫﺎي اﺿﺎﻓﯽ ﮐﻪ ﺑﻪ دﺳﺘﮕﺎه ﻫﺎي اﺿﺎﻓﯽ و ﻓﻌﺎﻟﯿﺖ DMAاﺧﺘﺼﺎص داده ﺷﺪه اﺳﺖ ،ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽﮐﻨﺪ .اﯾﻦ ﺑﺎس ﻫﺎ ﺗﻮاﻧﺎﯾﯽ
24 ﻣﻘﺪﻣﻪ :آﺷﻨﺎﯾﯽ ﺑﺎ ﭘﺮدازﻧﺪه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
اﻧﺠﺎم ﺣﺪاﮐﺜﺮ ﺧﻮاﻧﺪن ﺳﻪ داده و ﻧﻮﺷﺘﻦ دو داده در ﯾﮏ ﺳﯿﮑﻞ را ﺑﺮاي CPUﻓﺮاﻫﻢ ﻣﯽﮐﻨﻨﺪ .ﮐﻨﺘﺮل ﮐﻨﻨﺪه DMAﻣﯽﺗﻮاﻧﺪ ﺟﺪا
از ﻓﻌﺎﻟﯿﺖ CPUدر ﻫﺮ ﺳﯿﮑﻞ ،دو داده را اﻧﺘﻘﺎل دﻫﺪ.
CPUﺳﺮي C55xداراي دو واﺣﺪ ﺿﺮب و ﺟﻤﻊ) (MACاﺳﺖ ﮐﻪ ﻫﺮ ﮐﺪام ﻗﺎدرﻧﺪ در ﯾﮏ ﺳﯿﮑﻞ ﺿﺮب 17ﺑﯿﺘﯽ در 17
ﺑﯿﺘﯽ را اﻧﺠﺎم دﻫﻨﺪ .ﯾﮏ واﺣﺪ ﻣﺤﺎﺳﺒﻪ و ﻣﻨﻄﻖ ) (ALUﻣﺮﮐﺰي 40ﺑﯿﺘﯽ ﺗﻮﺳﻂ ﯾﮏ 16 ALUﺑﯿﺘﯽ اﺿﺎﻓﯽ ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽﺷﻮد.
اﺳﺘﻔﺎده از ALUﻫﺎ زﯾﺮ ﻧﻈﺮ ﮐﻨﺘﺮل ﻣﺠﻤﻮﻋﻪ دﺳﺘﻮرﻋﻤﻞﻫﺎ اﺳﺖ و ﺗﻮاﻧﺎﯾﯽ ﺑﻬﯿﻨﻪ ﺳﺎزي ﻓﻌﺎﻟﯿﺖ ﻣﻮازي و ﻣﺼﺮف ﺗﻮان را ﻓﺮاﻫﻢ
ﻣﯽآورﻧﺪ .اﯾﻦ ﺗﻮاﻧﺎﯾﯽﻫﺎ در واﺣﺪ آدرس) (AUو واﺣﺪ داده) CPU (DUﻣﺪﯾﺮﯾﺖ ﻣﯽﺷﻮﻧﺪ.
CPUﺳﺮي C55xﺑﺮاي ﺑﻬﺒﻮد ﭼﮕﺎﻟﯽ ﮐﺪ) (code densityاز ﻣﺠﻤﻮﻋﻪ دﺳﺘﻮراﻟﻌﻤﻞﻫﺎ ﺑﺎ ﻃﻮل ﺑﺎﯾﺖ ﻣﺘﻐﯿﯿﺮ ﭘﺸﺘﯿﺒﺎﻧﯽ
ﻣﯽﮐﻨﺪ .واﺣﺪ دﺳﺘﻮراﻟﻌﻤﻞ) ،(IUاز ﺣﺎﻓﻈﻪ داﺧﻠﯽ ﯾﺎ ﺧﺎرﺟﯽ FETCHﺑﺮﻧﺎﻣﻪ 32ﺑﯿﺘﯽ را اﻧﺠﺎم ﻣﯽ دﻫﺪ و دﺳﺘﻮراﻟﻌﻤﻞ ﻫﺎ را
ﺑﺮاي واﺣﺪ ﺑﺮﻧﺎﻣﻪ) (PUﺑﻪ ﺗﺮﺗﯿﺐ ﻗﺮار ﻣﯽدﻫﺪ .واﺣﺪ ﺑﺮﻧﺎﻣﻪ ،دﺳﺘﻮراﻟﻌﻤﻞ ﻫﺎ را دﯾﮑﺪ ﻣﯽ ﮐﻨﺪ و وﻇﺎﯾﻒ را ﺑﻪ ﺳﻤﺖ AUو
DUﻫﺪاﯾﺖ ﻣﯽ ﮐﻨﺪ و ﺧﻂ ﻟﻮﻟﻪ را ﻣﺪﯾﺮﯾﺖ ﻣﯽ ﮐﻨﺪ .ﺗﻮاﻧﺎﯾﯽ ﭘﯿﺶ ﺑﯿﻨﯽ دﺳﺘﻮرات ﭘﺮش ،از ﺧﺎﻟﯽ ﺷﺪن ﺧﻄﻪ ﻟﻮﻟﻪ در ﻫﻨﮕﺎم
اﺟﺮاي دﺳﺘﻮراﻟﻌﻤﻞ ﻫﺎي ﺷﺮﻃﯽ ،ﺟﻠﻮﮔﯿﺮي ﻣﯽ ﮐﻨﺪ .ﻫﻤﭽﻨﯿﻦ 5509ﺷﺎﻣﻞ ﯾﮏ ﮐﺶ دﺳﺘﻮراﻟﻌﻤﻞ اﺳﺖ ﺗﺎ دﺳﺘﺮﺳﯽ ﺑﻪ ﺣﺎﻓﻈﻪ
ﺧﺎرﺟﯽ را ﮐﺎﻫﺶ دﻫﺪ ،اﻧﺘﻘﺎل داده را ﺑﻬﺒﻮد ﺑﺨﺸﺪ و از ﺗﻮان ﺳﯿﺴﺘﻢ ﻣﺤﺎﻓﻈﺖ ﮐﻨﺪ.
ﻣﺠﻤﻮﻋﻪ دﺳﺘﮕﺎه ﻫﺎي ﺟﺎﻧﺒﯽ ﺷﺎﻣﻞ ﯾﮏ راﺑﻂ ﺣﺎﻓﻈﻪ ﺧﺎرﺟﯽ) (EMIFﮐﻪ دﺳﺘﺮﺳﯽ ﺑﻪ ﺣﺎﻓﻈﻪ اﺳﻨﮑﺮون ﻣﺎﻧﻨﺪ EPROMو
multichannel buffered SRAMﺑﻪ ﻋﻼوه ﺣﺎﻓﻈﻪ ﭘﺮﺳﺮﻋﺖ ﺳﻨﮑﺮون DRAMو SRAMرا ﻓﺮاﻫﻢ ﻣﯽ آورد .ﺳﻪ ) McBSP
(serial portارﺗﺒﺎط دوﻃﺮﻓﻪ ﺑﺎ وﺳﺎﯾﻞ ﺳﺮﯾﺎل اﺳﺘﺎﻧﺪارد ﻣﺘﻨﻮﻋﯽ و ارﺗﺒﺎط ﭼﻨﺪ ﮐﺎﻧﺎﻟﻪ)ﺗﺎ 128ﮐﺎﻧﺎل( را ﻓﺮاﻫﻢ ﻣﯽ آورد .راﺑﻂ
ﭘﻮرت ﻣﯿﺰﺑﺎن ﭘﯿﺸﺮﻓﺘﻪ ) ،(HPIﯾﮏ راﺑﻂ ﻣﻮازي 16ﺑﯿﺘﯽ اﺳﺖ ﮐﻪ ﺑﻪ ﭘﺮدازﻧﺪه ﻣﯿﺰﺑﺎن اﯾﻦ اﺟﺎزه را ﻣﯽدﻫﺪ ﮐﻪ ﺑﻪ ﺣﺎﻓﻈﻪ داﺧﻠﯽ
5509دﺳﺘﺮﺳﯽ داﺷﺘﻪ ﺑﺎﺷﺪ .ﮐﻨﺘﺮل ﮐﻨﻨﺪه ،DMAﺟﺎﺑﺠﺎﯾﯽ داده ﺑﺮاي 6ﮐﺎﻧﺎل ﻣﺴﺘﻘﻞ را ﺑﺪون دﺧﺎﻟﺖ CPUﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ.
ﻫﻤﭽﻨﯿﻦ ﺷﺎﻣﻞ ﺗﺎﯾﻤﺮ ﻫﻤﻪ ﻣﻨﻈﻮره ،ﻫﺸﺖ ﭘﯿﻦ I/Oﻫﻤﻪ ﻣﻨﻈﻮره) (GPIOو ﺗﻮﻟﯿﺪ ﮐﻼك (digital phase-locked loop ) DPLL
ﻣﯽ ﺷﻮد.
ﻣﻨﺎﺑﻊ
[1] S. M. Kuo, B. H. Lee, and W. Tian, Real-time digital signal processing: implementations
and applications: Wiley, 2006.
[2] http://students.washington.edu/hyrum/class/ect52/
25 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
26 ﻣﻘﺪﻣﻪ :آﺷﻨﺎﯾﯽ ﺑﺎ ﭘﺮدازﻧﺪه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
آزﻣﺎﯾﺶ :1
آﺷﻨﺎﯾﯽ ﺑﺎ ﻧﺮم اﻓﺰار CCS
(1ﻣﻘﺪﻣﻪ
ﻫﺪف از اﯾﻦ آزﻣﺎﯾﺶ ،آﻣﻮزش ﻧﺮماﻓﺰار Code Composer Studioو اﻣﮑﺎﻧﺎت دﯾﺒﺎگ ﻧﺮماﻓﺰار ﻣﯽﺑﺎﺷﺪ .در اﯾﻦ آزﻣﺎﯾﺶ ﺑـﺎ
اﻣﮑﺎﻧﺎت ﻣﺨﺘﻠﻒ اﯾﻦ ﻧﺮم اﻓﺰار آﺷﻨﺎ ﻣﯽﺷﻮﯾﺪ و ﻃﺮﯾﻘﻪ رﯾﺨﺘﻦ ﺑﺮﻧﺎﻣﻪ و اﺟﺮاي آن روي DSPرا ﯾﺎد ﻣﯽﮔﯿﺮﯾﺪ.
ﺑﺮاي راهاﻧﺪازي ﺑﺮد ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﮐﻨﯿﺪ:
ﺗﻐﺬﯾﻪ ﺑﺮد را وﺻﻞ ﮐﻨﯿﺪ. ·
در desktopاﺟﺮا ﮐﻨﯿﺪ. ﺑﺮﻧﺎﻣﻪ ﮐﺪ ﮐﺎﻣﭙﻮزر ﻧﺴﺨﻪ 5را ﺑﺎ دو ﺑﺎر ﮐﻠﯿﮏ روي آﯾﮑﻮن ·
اﺑﺘﺪا ﭘﻨﺠﺮهي Workspace Launcherﮐﻪ ﺑﻪ ﺻﻮرت زﯾﺮ ﻣﯽﺑﺎﺷﺪ ،ﺑﺎز ﻣﯽﺷﻮد .در ﻗﺴـﻤﺖ Workspaceآدرﺳـﯿﺮا ﮐـﻪ ·
ﻣﯽ ﺧﻮاﻫﯿﺪ در اداﻣﻪ ﭘﺮوژهﻫﺎي ﺧﻮد را در آن ﺷﺎﺧﻪ اﯾﺠﺎد ﻧﻤﺎﺋﯿﺪ را وارد ﮐﻨﯿﺪ.
در ﻧﺮم اﻓﺰار ، CCSاز ﻧﺴﺨﻪ 4ﺑﺎ ﺑﺎﻻ ﺷﮑﻞ ﮐﻠﯽ ﻧﺮم اﻓﺰار ﻋﻮض ﺷﺪه
و ﺑﻪ ﺟﺎي اﯾﻨﮑﻪ ﺑﺮاي ﻫﺮ ﭘﺮوژه ﯾﮏ ﺷﺎﺧﻪ ﺟﺪا ﺗﻌﺮﯾﻒ ﺷﻮد ،ﺑﺮاي ﮐﻠﯿﻪ ﻧﮑﺘﻪ
ﭘﺮوژهﻫﺎ ﯾﮏ ﺷﺎﺧﻪ ﺑﻪ ﻧﺎم workspaceﺗﻌﺮﯾﻒ ﻣﯽﺷﻮد.ﺗﻤﺎم ﭘﺮوژهﻫﺎي ﮐﻪ
در اﯾﻦ ﭘﻮﺷﻪ ﻗﺮار دارﻧﺪ ﺑﻪ ﺷﮑﻞ ﻫﻤﺰﻣﺎن در ﻧﺮماﻓﺰار CCSﻧﺸﺎن داده
ﻣﯽﺷﻮﻧﺪ .ﻫﻤﭽﻨﯿﻦ اﮔﺮ ﯾﮏ ﭘﺮوژه ﺟﺪﯾﺪدر ﻧﺮم اﻓﺰار اﯾﺠﺎد ﺷﻮد ،آدرس ﻣﺤﻞ
29 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﻧﺤﻮه ارﺗﺒﺎط ﮐﯿﻒ آزﻣﺎﯾﺸﮕﺎه DSPﺑﺎ :PCﮐﯿﻒ آزﻣﺎﯾﺸﮕﺎه DSPاز ﻃﺮﯾﻖ ﯾﮏ ﮐﺎﺑﻞ USBﮐﻪ در ﭘﺸﺖ ﮐﯿﻒ ﻗﺮار دارد
ﺑﻪ ﮐﺎﻣﭙﯿﻮﺗﺮ ﻣﺘﺼﻞ ﻣﯽ ﮔﺮدد .دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ در روي ﺑﺮد ﻧﯿﺰ ﻣﺤﻞ زدن ﮐﺎﺑﻞ USBوﺟﻮد دارد وﻟﯽ ﺑﺮاي اﺗﺼﺎل ﺑﻪ ﮐﺎﻣﭙﯿﻮﺗﺮ از
ﻃﺮﯾﻖ ) JTAGﮐﻪ در درون ﮐﯿﻒ ﻗﺮار دارد( ﺣﺘﻤﺎ ﺑﺎﯾﺪ ﮐﺎﺑﻞ USBرا ﺑﻪ ﭘﺸﺖ دﺳﺘﮕﺎه ﻣﺘﺼﻞ ﻧﻤﻮد.
اﮐﻨﻮن ﮐﯿﻒ آزﻣﺎﯾﺸﮕﺎه را ﺑﺎ زدن ﮐﻠﯿﺪ روﺷﻦ/ﺧﺎﻣﻮش ﮐﻪ در ﭘﺸﺖ ﺑﺮدﻗﺮار دارد روﺷﻦ ﮐﻨﯿﺪ. ·
در ﮐﯿﻒ آزﻣﺎﯾﺸﮕﺎه DSPﯾﮏ JTAGاز ﻧﻮع XDS100ver2ﻗﺮار داده ﺷﺪه اﺳﺖ ﮐﻪ ﺑﺎﯾﺪ ﻫﻨﮕﺎم ﺳـﺎﺧﺘﻦ
ﺗﻮﺟﻪ
ﻫﺮ ﭘﺮوژه ﺟﺪﯾﺪ ﻧﺎم ان رادر ﻗﺴﻤﺖ CONNECTIONدر ﭘﻨﺠﺮه NEW CCS PROJECTوارد ﮐﻨﯿﻢ.
____________________________________________________________________
- 1در ﻧﺮم اﻓﺰار CCSﺗﻌﺪادي Simulatorﻗﺮار دارد ﮐﻪ ﺑﺎ ﮐﻤﮏ آﻧﻬﺎ ﻣﯽ ﺗﻮان ﺑﻌﻀﯽ از ﻋﻤﻠﮑﺮدﻫﺎي DSPﻫﺎ را ﺑﺪون ﻧﯿﺎز ﺑﻪ ﺑﺮد واﻗﻌﯽ ﺗﺴﺖ ﻧﻤﻮد.
Simulatorﻫﺎ ﺑﺴﯿﺎر ﻗﻮي ﻃﺮاﺣﯽ ﺷﺪه اﻧﺪ ﺑﻪ ﻃﻮرﯾﮑﻪ اﮔﺮ ﯾﮏ ﺑﺮﻧﺎﻣﻪ در Simulatorﺑﻪ درﺳﺘﯽ ﮐﺎر ﻧﻤﺎﯾﺪ ﺑﻪ اﺣﺘﻤﺎل ﺑﺴﯿﺎر ﺑﺎﻻ ﺑﺮ روي ﺑﺮد واﻗﻌﯽ ﻧﯿﺰ ﺑﻪ
ﻫﻤﺎن ﺷﮑﻞ ﻋﻤﻞ ﺧﻮاﻫﺪ ﻧﻤﻮد .در ﻋﻤﻞ ﺗﻔﺎوت ﺑﯿﻦ Simulatorو ﯾﮏ ﺑﺮد واﻗﻌﯽ ) + CCS + JTAGﺑﺮد ( ،در ﺑﺨﺶ ﻣﺮﺑﻮط ﺑﻪ Peripheralﻫﺎ ﻧﻈﯿﺮ
ﭘﻮرﺗﻬﺎي ﻣﺨﺘﻠﻒ ﭘﺮدازﻧﺪه ﻧﻈﯿﺮ Serial ، USBو ...ﻣﯽ ﺑﺎﺷﺪ ﮐﻪ در اﮐﺜﺮ Simulatorﻫﺎ اﯾﻦ ﺑﺨﺸﻬﺎ ﭘﯿﺎده ﺳﺎزي ﻧﺸﺪهاﻧﺪ.
32 آزﻣﺎﯾﺶ :1آﺷﻨﺎﯾﯽ ﺑﺎ ﻧﺮم اﻓﺰار CCS ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
در اﯾﻦ ﭘﻨﺠﺮه ﺗﻨﻈﯿﻤﺎت ﻣﺮﺑﻮط ﺑﻪ ﻧﻮع ) JTAGﻣﺜﻼ ( XDS100v2و ﻧﺎم ﭘﺮدازﻧﺪه ﮐﻪ ﻗﺒﻼ در ﻫﻨﮕـﺎم اﯾﺠـﺎد ﭘـﺮوژه ﺟﺪﯾـﺪ وارد
ﻧﻤﻮده اﯾﺪ ﻗﺎﺑﻞ ﻣﺸﺎﻫﺪه و ﺗﻐﯿﯿﺮ اﺳﺖ .روي زﺑﺎﻧﻪ Advancedدر ﭘﺎﯾﯿﻦ ﭘﻨﺠﺮه ﮐﻠﯿﮏ ﮐﻨﯿﺪ .روي C55xxﮐﻠﯿﮏ ﮐﺮده و درﻧﻬﺎﯾـﺖ
…Browseرا ﺑﺰﻧﯿﺪ.
از ﭘﻮﺷﻪ c:\DSPLab\gel Filesﻓﺎﯾﻞ DSPro5509DSK.gelرا اﻧﺘﺨﺎب ﮐﻨﯿﺪ و روي openﮐﻠﯿﮏ ﮐﻨﯿﺪ .
ﺗﻮﺿﯿﺢ ﻣﺨﺘﺼﺮ در ﻣﻮرد ﻧﻘﺶ ﻓﺎﯾﻞ : .cmdﻓﺎﯾﻞ .cmdﺟﻬﺖ ﻣﺪﯾﺮﯾﺖ ﺣﺎﻓﻈﻪ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد.
ﺑﺎ ﮐﻤﮏ اﯾﻦ ﻓﺎﯾﻞ ﮐﺎرﺑﺮ ﻣﯽ ﺗﻮاﻧﺪ ﺑﺨﺸﻬﺎي ﻗﺎﺑﻞ اﺳﺘﻔﺎده ﺣﺎﻓﻈﻪ ﭘﺮدازﻧﺪه را ﺑﺮاي ﻧﺮم اﻓﺰار ccsﻣﻌﺮﻓﯽ ﮐﻨﺪ.
ﻓﺎﯾﻞ DSP_PRO_5509A.cmdرا ﮐﻪ در ﻣﺴﯿﺮ c:\DSPlab\AZ1ﻗﺮار دارد را داﺧﻞ ﭘﻮﺷﻪي ﭘﺮوژه ﮐﭙﯽ ﮐﻨﯿﺪ.
ﻣﺤﺘﻮﯾﺎت اﯾﻦ ﻓﺎﯾﻞ ﺑﻪ ﺷﮑﻞ زﯾﺮ اﺳﺖ:
MEMORY
{
PAGE 0:
____________________________________________________________________
Build - 1ﺑﻪ ﻣﻌﻨﯽ ﮐﺎﻣﭙﺎﯾﻞ و ﺳﭙﺲ ﻟﯿﻨﮏ ﺑﺮﻧﺎﻣﻪ Cﻣﯽ ﺑﺎﺷﺪ.
35 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﯾﮏ راه آﺳـﺎن ﺑـﺮاي وارد ﻣﺤﯿﻂ debugﺷﻮﯾﺪ .آﯾﮑﻮن اﮔﺮ ﺑﺮﻧﺎﻣﻪ ﺧﻄﺎﺋﯽ ﻧﺪاﺷﺖ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﺎ زدن آﯾﮑﻮن
اﻧﺠﺎم ﮐﻠﯿﻪ ﻣﺮاﺣﻞ ﮐﺎﻣﭙﺎﯾﻞ ،ﻟﯿﻨﮏ و اﺟﺮاي ﺑﺮﻧﺎﻣﻪ ﻣﯽ ﺑﺎﺷﺪ .در CCSﻧﺴﺨﻪ 5ﻓﻀﺎي ﻣﺮﺑﻮط ﺑـﻪ ﺗﺎﯾـﭗ ﺑﺮﻧﺎﻣـﻪ ) ( Editو رﻓـﻊ
اﺷﮑﺎل ﺑﺮﻧﺎﻣﻪ ) ( debugاز ﻫﻢ ﺟﺪا ﺷﺪه اﺳﺖ .در ﺑﺎﻻي ﻧﺮم اﻓﺰار ﮔﻮﺷﻪ ﺳﻤﺖ راﺳﺖ دو ﮐﻠﯿﺪ ﺑﻪ ﺷﮑﻞ زﯾﺮ وﺟﻮد دارد ﮐﻪ ﺑـﺎ
ﮐﻤﮏ اﻧﻬﺎ ﻣﯽ ﺗﻮان از ﻓﻀﺎي Editﺑﻪ ﻓﻀﺎي Debugرﻓﺖ .دﻗﺖ ﺷﻮد ﮐﻪ ﻣﻨﻮﻫﺎي ﻧﺮم اﻓﺰار در ﻫﺮ ﯾﮏ از اﯾﻦ دو ﻣﺤﯿﻂ ﺑـﺎ ﻫـﻢ
ﻣﺘﻔﺎوت ﺑﻮده و ﺣﺘﯽ ﻇﺎﻫﺮ ﻧﺮم اﻓﺰار ﻧﯿﺰ ﻋﻮض ﻣﯽ ﺷﻮد.
در ﺻﻮرﺗﯿﮑﻪ ﺑﺎ زدن آﯾﮑﻮن ﺳﻮﺳﮏ ﻫﻤﻪ ﭼﯿﺰ ﺑﺎ ﻣﻮﻓﻘﯿﺖ اﻧﺠﺎم ﭘﺬﯾﺮد ﻣﺤﯿﻂ ﻧﺮم اﻓﺰار از ﻓﻀﺎي Editﺑﻪ Debugﺗﻐﯿﯿـﺮ ﯾﺎﻓﺘـﻪ و
ﺑﺮﻧﺎﻣـﻪ اﺟـﺮا ﻣـﯽﺷـﻮد و ﻧﺘﯿﺠـﻪ در آﯾﮑﻮﻧﻬﺎي ﺷﮑﻞ ﺑﻌﺪ ﺑﻪ ﺻﻮرت ﻓﻌﺎل در ﺑﺎﻻي ﻧﺮم اﻓﺰار ﻇﺎﻫﺮ ﻣﯽ ﮔﺮدﻧﺪ .ﺑﺎ اﻧﺘﺨـﺎب
ﭘﻨﺠﺮهي Consoleﮐﻪ در ﭘﺎﯾﯿﻦ ﺻﻔﺤﻪ اﺳﺖ ،ﻧﻤﺎﯾﺶ داده ﻣﯽﺷﻮد.
{
;Array[i] = i
}
}
ﭘﺮوژه را دوﺑﺎره Buildﮐﺮده و اﮔﺮ ﺧﻄﺎﯾﯽ ﻧﺪاﺷﺖ آﻧﺮا ﺑﺮ روي ﺑﺮد Loadﮐﻨﯿﺪ.
ﺑﺮاي Buildو Loadﺑﺮﻧﺎﻣﻪ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﺮ روي آﯾﮑﻮن ﺳﻮﺳﮏ ﮐﻠﯿﮏ ﮐﻨﯿﺪ .اﯾﻦ راه ﺣﻞ ﺳﺎدهاي اﺳﺖ ﻓﻘﻂ ﮐﻤﯽ ﻃﻮﻻﻧﯽ
اﺳﺖ .ﺑﻬﺘﺮ اﺳﺖ ﺑﻪ ﺟﺎي آن ،از ﻣﻨﻮي Projectﮔﺰﯾﻨﻪ Build Allرا ﺑﺰﻧﯿﺪ) ( CTRL+Bو ﺳﭙﺲ وﻗﺘﯽ ﺑﺮﻧﺎﻣﻪ Buildﺷﺪ در
ﺟﻮاب ﺳﺌﻮال ﻧﺮم اﻓﺰار ﮐﻪ ﻣﯽﭘﺮﺳﺪ آﯾﺎ ﻣﯽﺧﻮاﻫﯿﺪ ﻓﺎﯾﻞ *.outرا ﻣﺠﺪد Loadﮐﻨﺪ ﺑﺨﻮاﻫﯿﺪ ﮐﻪ ﻫﻤﯿﺸﻪ اﯾﻦ ﮐﺎر را اﻧﺠﺎم دﻫﺪ.
ﺑﺮاي اﻧﺠﺎم ﮐﻠﯿﻪ اﯾﻦ ﮐﺎرﻫﺎ ﺑﺎﯾﺪ در ﻣﺤﯿﻂ Debugﺑﺎﺷﯿﺪ.
در درون ﻓﺎﯾﻞ main.cﺑﺮ روي ﺧﻂ ; Array[i] = iرﻓﺘﻪ و از ﻣﻨﻮي Runﮔﺰﯾﻨﻪ Toggle Break Point،را ﺑﺰﻧﯿﺪ )
.( CTRL+SHIFT+Bدر ﺻﻮرﺗﯿﮑﻪ ﻣﻨﻮي RUNدر ﻧﺮم اﻓﺰاروﺟﻮد ﻧﺪاﺷﺖ ﻣﺤﯿﻂ ﻧﺮم اﻓﺰار را از ﺣﺎﻟﺖ EDITﺑﻪ debug
ﺗﻐﯿﯿﺮ دﻫﯿﺪ .اﯾﻦ ﮐﺎر ﺑﺎﻋﺚ اﯾﺠﺎد ﯾﮏ Break Pointدر اﯾﻦ ﺧﻂ از ﺑﺮﻧﺎﻣﻪ ﻣﯽﮔﺮدد Break Point .ﯾﮑﯽ از اﻣﮑﺎﻧﺎت،
ﻧﺮماﻓﺰارﻫﺎي ﺑﺮﻧﺎﻣﻪﻧﻮﯾﺴﯽ ﺑﺮاي رﻓﻊ ﻋﯿﺐ ﺑﺮﻧﺎﻣﻪﻫﺎ ﻣﯽﺑﺎﺷﺪ Break Point .ﺑﺎﻋﺚ ﺗﻮﻗﻒ اﺟﺮا در ﺧﻂ ﻣﺮﺑﻮﻃﻪ ﻣﯽﮔﺮددBreak .
( ﮐﻪ در ﺧﻂ ﻣﺮﺑﻮﻃﻪ ﻇﺎﻫﺮ ﻣﯽﺷﻮﻧﺪ ﻣﺸﺨﺺ ﻣﯽﮔﺮدﻧﺪ. Pointﻫﺎ در ﻧﺮماﻓﺰار CCSﻧﺴﺨﻪ 5ﺑﺎ داﯾﺮه آﺑﯽ)
ﻗﺒﻞ از ﻓﺸﺮدن ﮐﻠﯿﺪ F8ﺣﺘﻤﺎ ﻧﺮم اﻓﺰار در ﻣﺤﯿﻂ دﯾﺒﺎگ ﺑﺎﺷﺪ)ﮐﻠﯿﺪ ﺳﻮﺳﮏ ﻗﺒﻞ ﻓﺸﺮده ﺷﺪه ﺑﺎﺷﺪ(.اﮐﻨﻮن ﺑﺎ زدن ﮐﻠﯿﺪ F8
ﺑﺮﻧﺎﻣﻪ را اﺟﺮا ﮐﻨﯿﺪ .ﺧﻮاﻫﯿﺪ دﯾﺪ ﮐﻪ اﺟﺮاي ﺑﺮﻧﺎﻣﻪ در ﻣﺤﻞ Break Pointﻣﺘﻮﻗﻒ ﻣﯽﮔﺮدد.
آﺧﺮﯾﻦ )( printfدر درون ﺳﺨﺖ اﻓﺰار ﯾﺎ ﺷﺒﯿﻪﺳﺎز ﻣﺎﻧﺪه و ﺑﺮاي ﻧﻤﺎﯾﺶ،
ﺑﻪ ﻧﺮماﻓﺰار CCSﻣﻨﺘﻘﻞ ﻧﻤﯽﮔﺮدد .ﺑﺮاي ﺣﻞ اﯾﻦ ﻣﺸﮑﻞ ﯾﺎ ﺑﺎﯾﺪ ﺑﺮﻧﺎﻣﻪ را
ﺗﺎ ﺑﻪ آﺧﺮ اﺟﺮا ﮐﻨﯿﺪ ﺗﺎ ﺑﺮﻧﺎﻣﻪ ﺗﻤﺎم ﺷﻮد و ﯾﺎ در ﻣﺘﻦ درون ﻫﺮ ،printfاز
\nاﺳﺘﻔﺎده ﻧﻤﻮد \n .در ﮐﺪ ﻧﻮﯾﺴﯽ اﺳﺘﺎﻧﺪارد ﺑﻪ ﻣﻌﻨﯽ ﺧﻂ ﺑﻌﺪ ﻣﯽﺑﺎﺷﺪ
و ﺑﺎﻋﺚ ﻣﯽﺷﻮد ﻣﺘﻦ ﭘﺲ از آن در ﺧﻂ ﺑﻌﺪ ﻧﻤﺎﯾﺶ داده ﺷﻮد .اﻣﺎ در
CCSﻋﻼوه ﺑﺮ ﺧﻂ ﺑﻌﺪ ،ﺑﺎﻋﺚ ﻣﯽﺷﻮد ﻣﺘﻦ ﻗﺒﻞ از ،\nﺑﻼﻓﺎﺻﻠﻪ ﺟﻬﺖ
ﻧﻤﺎﯾﺶ ﺑﻪ ﻧﺮم اﻓﺰار ﻓﺮﺳﺘﺎده ﺷﻮد.
ﺗﻤﺮﯾﻦ :1ﯾﮏ ﺗﺎﺑﻊ ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﻋﺪد ﻣﻮﺟﻮد در ﻣﺘﻐﯿﯿﺮ xرا ﺑﺎ 2ﺟﻤﻊ ﻣﯽ ﻧﻤﺎﯾﺪ و ﻧﺘﯿﺠﻪ را ﺑﺮ ﮔﺮداﻧﺪ.
ﺗﻤﺮﯾﻦ :2ﺗﺎﺛﯿﺮ \nدر ﻧﺤﻮه اﺟﺮاي دﺳﺘﻮر printfدر CCSﺑﺮرﺳﯽ ﮐﻨﯿﺪ.
ﺗﻤﺮﯾﻦ :3ﻋﻤﻠﮑﺮد ﻫﺮ ﯾﮏ از 5ﻓﻠﺸﯽ ﮐﻪ در ﺷﮑﻞ ﺑﻌﺪ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ را ﺑﺮرﺳﯽ و ﺑﯿﺎن ﻧﻤﺎﺋﯿﺪ .اﯾﻦ ﻓﻠﺸﻬﺎ ﺑﺮاي
اﺟﺮاي ﺑﺮﻧﺎﻣﻪ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮﻧﺪ.
Salam
…Inja Az DSP ast
اﯾﻦ ﺑﺮﻧﺎﻣﻪ در ﺣﺎﻟﯿﮑﻪ ﺧﻂ ﺑﻪ ﺧﻂ اﺟﺮا ﻣﯽﺷﻮد ﺑﺎﯾﺪ ﺑﺘﻮاﻧﺪ ﻣﺘﻦ را ﺑﻼﻓﺎﺻﻠﻪ در ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ دﻫﺪ.
(2-7ﭘﻨﺠﺮهي Watch
در ccsاﯾﻦ اﻣﮑﺎن وﺟﻮد دارد ﮐﻪ ﺑﺘﻮان ﻣﻘﺪار ﻣﺘﻐﯿﯿﺮﻫﺎ و ﺣﺎﻓﻈﻪ ﻫﺎي ﻣﺨﺘﻠﻒ را ﻣﺸﺎﻫﺪه ﻧﻤﻮد .ﻣﺜﻼ ﺑﺮاي ﻣﺸﺎﻫﺪه آرﯾﻪ ، Array
ﺑﻪ ﻣﻨﻮي Viewرﻓﺘﻪ و ﮔﺰﯾﻨﻪ Expressionsرا اﻧﺘﺨﺎب ﮐﻨﯿﺪ .ﺑﺎ اﯾﻨﮑﺎر ﭘﻨﺠﺮه Watchدر ﻧﺮم اﻓﺰار ﻇﺎﻫﺮ ﻣﯽ ﺷﻮد.
ﻣﻄﻤﺌﻦ ﺷﻮﯾﺪ ﮐﻪ Break Pointﻣﻄﺎﺑﻖ ﺷﮑﻞ در ﺧﻂ ; Array[i]=iﻗﺮار دارد.
38 آزﻣﺎﯾﺶ :1آﺷﻨﺎﯾﯽ ﺑﺎ ﻧﺮم اﻓﺰار CCS ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
روي Add new expressionﮐﻠﯿﮏ ﮐﻨﯿﺪ و Arrayرا وارد ﮐﻨﯿﺪ Array.اﺳﻢ ﯾﮑﯽ از ﻣﺘﻐﯿﯿﺮﻫﺎي ﺑﺮﻧﺎﻣﻪ Cﻣﯽﺑﺎﺷﺪ ﮐﻪ ﺑﺎﯾـﺪ دﻗﯿﻘـﺎ
ﻣﻌﺎدل ﻫﻤﺎن ﻣﺘﻐﯿﯿﺮي ﮐﻪ در Cﺗﻌﺮﯾﻒ ﺷﺪه اﺳﺖ ﺗﺎﯾﭗ ﮔﺮدد.
39 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﭘﻨﺠﺮهاي ﮐﻪ ﺑﺎز ﻣﯽﮔﺮدد ﺑﺮاي ﻣﺸﺎﻫﺪه ﻣﺤﺘﻮﯾﺎت ﺣﺎﻓﻈﻪ اﺳﺘﻔﺎده ﻣﯽﺷﻮد .در ﻗﺴﻤﺖ ﺑﺎﻻ در ﻣﺤﻞ آدرس ،آدرس ﻣﺘﻐﯿﯿﺮ Array
در ﺣﺎﻓﻈﻪ را ﺗﺎﯾﭗ ﮐﺮده و ﮐﻠﯿﺪ Enterرا ﺑﺰﻧﯿﺪ) ﺗﺎﯾﭗ ﮐﻨﯿﺪ .( &Arrayاﮔﺮ ﺑﻪ ﭘﻨﺠﺮه Watchﮐﻪ در ﻗﺴﻤﺖ ﻗﺒﻞ ﺑﺎز ﻧﻤﻮدﯾﺪ
ﻧﮕﺎه ﮐﻨﯿﺪ آدرس ﻣﺘﻐﯿﯿﺮ Arrayدر ﻣﻘﺎﺑﻞ آن ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ .ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻪ ﺟﺎي &Arrayآدرس آﻧﺮا ﮐﻪ 0x2714اﺳﺖ را
ﻧﯿﺰ در اﯾﻦ ﻣﺤﻞ ﺗﺎﯾﭗ ﮐﻨﯿﺪ .آﯾﺎ ﻧﺘﯿﺠﻪ ﯾﮑﺴﺎن اﺳﺖ؟
41 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﺗﻤﺮﯾﻦ :ﺑﺮﻧﺎﻣﻪاي ﺑﻪ زﺑﺎن cﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﻣﺎﺗﺮﯾﺲ Aرا در ﻣﺎﺗﺮﯾﺲ Bﺿﺮب ﮐﻨﺪ .ﺑﺎ اﺳﺘﻔﺎده از اﻣﮑﺎﻧﺎت دﯾﺒﺎگ ﮐﻪ در اﯾـﻦ ﺑﺨـﺶ
ﯾﺎد ﮔﺮﻓﺘﻪاﯾﺪ ﻣﻄﻤﺌﻦ ﺷﻮﯾﺪ ﮐﻪ ﻧﺘﯿﺠﻪ درﺳﺖ ﻣﯽﺑﺎﺷﺪ.
(1ﻣﻘﺪﻣﻪ
در اﻳﻦ آزﻣﺎﻳﺶ ﺑﺎ ﻗﺴﻤﺖﻫﺎي ﻣﺨﺘﻠﻒ ﻛﻴﻒ آزﻣﺎﻳﺸﮕﺎه آﺷﻨﺎ ﻣﻲﺷﻮﻳﻢ .ﻳﺎد ﻣﻲﮔﻴﺮﻳﻢ ﻛﻪ ﭼﮕﻮﻧﻪ ﺑﺎ ﻛﻠﻴﺪﻫﺎ و LEDﻫـﺎ ﻛـﺎر
ﻛﻨﻴﻢ .از ﻣﺒﺪل آﻧﺎﻟﻮگ ﺑﻪ دﻳﺠﻴﺘﺎل ﺑﺨﻮاﻧﻴﻢ و در ﻳﻚ ﻣﺘﻐﻴﻴﺮ ذﺧﻴـﺮه ﻛﻨـﻴﻢ و در LCDﻛـﻪ روي ﻛﻴـﻒ ﻗـﺮار دارد ﻣﺸـﺎﻫﺪه ﻛﻨـﻴﻢ.
ﻫﻤﭽﻨﻴﻦ ﻳﻚ ﺷﻜﻞ ﻣﻮج ﺗﻮﻟﻴﺪ ﻣﻲﻛﻨﻴﻢ و ﺗﻮﺳﻂ ﻣﺒﺪل دﻳﺠﻴﺘﺎل ﺑﻪ آﻧﺎﻟﻮگ آن را ﺑﻪ ﺧﺮوﺟﻲ ﺑﺮد ﻣﻲﻓﺮﺳﺘﻴﻢ ﺗﺎ روي اﺳﻴﻠﻮﺳﻜﻮپ
ﻣﺸﺎﻫﺪه ﻧﻤﺎﻳﻴﻢ.
>#include<stdio.h
;int *LED
;int *KEY
)(main
{
;LED=(int *)0x600000
;KEY= (int *)0x600800
{);;(for
;*LED= *KEY
}
}
ﺑﺮﺧﻼف ﻣﻴﻜﺮوﻛﻨﺘﺮﻟﺮﻫﺎي ﻣﻌﻤﻮﻟﻲ ﻣﺎﻧﻨﺪ AVRﻛﻪ داراي ﭘﻮرت ﻣﻲﺑﺎﺷﻨﺪ ﻛﻪ ﻣﻲﺗﻮاﻧﻨـﺪ ﺑـﻪ ﺻـﻮرت ورودي و ﺧﺮوﺟـﻲ
ﺗﻌﺮﻳﻖ ﺷﻮﻧﺪ ،در ﭘﺮدازﻧﺪهﻫﺎي DSPﺗﻌﺪادي ﺧﻄﻮط آدرس و داده وﺟﻮد دارد .ﺑﻪ ﻫﺮ ﻗﻄﻌﻪاي ﻛﻪ ﺑﻪ DSPﻣﺘﺼﻞ ﻣﻲﻛﻨﻴﻢ ﻣﺎﻧﻨﺪ،
ﻛﻠﻴﺪ ،LED ،ﻣﺒﺪل آﻧﺎﻟﻮگ ﺑﻪ دﻳﺠﻴﺘﺎل ) ،(ADCﻣﺒﺪل دﻳﺠﻴﺘﺎل ﺑﻪ آﻧﺎﻟﻮگ ) ،(DACﺣﺎﻓﻈـﻪ و ...ﻳـﻚ ﻓﻀـﺎي آدرس اﺧﺘﺼـﺎص
ﻣﻲدﻫﻴﻢ ﻛﻪ ﺑﺎ ﺧﻮاﻧﺪن ﻳﺎ ﻧﻮﺷﺘﻦ در اﻳﻦ ﻓﻀﺎي آدرس ﻗﻄﻌﻪ ﻣﻮرد ﻧﻈﺮ اﻧﺘﺨﺎب ﻣﻲﺷﻮد و ﻋﻤﻠﻴﺎت ﺧﻮاﻧـﺪن ﻳـﺎ ﻧﻮﺷـﺘﻦ روي آن
اﻋﻤﺎل ﻣﻲﺷﻮد.
LEDﻫﺎ و :ﻛﻠﻴﺪﻫﺎي روي ﺑﺮد داراي آدرس ﻣﺸﺨﺼﻲ ﻣﻲﺑﺎﺷﻨﺪ .در اﻳﻦ ﺑﺮﻧﺎﻣﻪ آدرس LEDﻫﺎ در اﺷﺎرهﮔﺮ LEDو آدرس
ﻛﻠﻴﺪﻫﺎ در اﺷﺎرهﮔﺮ KEYرﻳﺨﺘﻪ ﻣﻲﺷﻮد:
(1آدرس LEDﻫﺎ را در ﻣﺘﻐﻴﻴﺮ LEDرﻳﺨﺘﻪ ﺷﻮد
;LED=(int*)0x600000
44 آزﻣﺎﻳﺶ :2آﺷﻨﺎﻳﻲ ﻛﻴﻒ آزﻣﺎﻳﺸﮕﺎه ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮوﺧﺎورﻣﻴﺎﻧﻪ
(3راهاﻧﺪازي ADC
ﻳﻚ ﭘﺮوژهي ﺟﺪﻳﺪ اﻳﺠﺎد ﻛﻨﻴﺪ )ﺑﺮاي ﻳﺎدآوري ﺑﻪ ﺿﻤﻴﻤﻪي 1ﻣﺮاﺟﻌﻪ ﻛﻨﻴﺪ( و ﺑﺮﻧﺎﻣﻪي زﻳﺮ را در ﻓﺎﻳﻞ main.cوارد ﻛﻨﻴﺪ:
>#include<stdio.h
;int *Ad
;int *FIFO_ad
;]inti,x[256
;intfifo_status
)(main
{
;Ad= (int* )0x400001
;FIFO_ad= (int* )0x400036
{);;(for
;fifo_status=*FIFO_ad
)if((fifo_status&(0x80)) != 0
)for(i=0;i<255;i++
;x[i]= *Ad
}
}
ﭘﺮوژه را Buildو Runﻛﻨﻴﺪ ﺗﺎ وارد ﺻﻔﺤﻪ دﻳﺒﺎگ ﺷﻮﻳﺪ )روي آﻳﻜﻮن ﺳﻮﺳﻚ ﻛﻠﻴﻚ ﻛﻨﻴﺪ( .ﺳﭙﺲ ﺑﺮﻧﺎﻣﻪ را اﺟﺮا ﻛﻨﻴﺪ.
ﺑﺎ اﺳﺘﻔﺎده از ﺳﻴﮕﻨﺎل ژﻧﺮاﺗﻮر ﻳﻚ ﺳﻴﮕﻨﺎل ﺳﻴﻨﻮﺳﻲ ﺑﺎ ﻓﺮﻛﺎﻧﺲ 1 KHzﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ زﻣﻴﻦ ﺳﻴﮕﻨﺎل ژﻧﺮاﺗﻮر ﺑﻪ زﻣﻴﻦ ﻛﻴﻒ
ازﻣﺎﻳﺸﮕﺎه ﻛﻪ در ﻗﺴﻤﺖ A/Dﻗﺮار دارد ﻣﺘﺼﻞ ﻛﻨﻴﺪ ﺳﻴﻢ ﺳﻴﮕﻨﺎل ژﻧﺮاﺗﻮر را ﺑﻪ INﻛﻴﻒ آزﻣﺎﻳﺸﮕﺎه ﻛﻪ در ﻗﺴﻤﺖ A/Dﻗﺮار
دارد وﺻﻞ ﻛﻨﻴﺪ.
ﺻﻔﺤﻪي ﻧﻤﺎﻳﺶ ﺑﺮد را ﺑﻪ ﺻﻮرت زﻳﺮ ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ:
45 آزﻣﺎﻳﺶ :2دﺳﺘﻮر ﻛﺎر آزﻣﺎﻳﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮو ﺧﺎورﻣﻴﺎﻧﻪ
ﺑﺎ دﻛﻤﻪﻫﺎي 1و ،2ﺑﺮد را در ﺣﺎﻟﺖ A/Dﻗﺮار دﻫﻴﺪ .ﺑﺎ دﮔﻤﻪﻫﺎي 3و 4ﮔﺰﻳﻨﻪي ﻓﺮﻛﺎﻧﺲ را اﻧﺘﺨﺎب ﻛﻨﻴﺪ .ﺑﺎ دﮔﻤﻪﻫﺎي 5
و 6ﻓﺮﻛﺎﻧﺲ 1 KHzرا اﻧﺘﺨﺎب ﻛﻨﻴﺪ .ﺑﻪ ﻗﺴﻤﺖ ﻓﻴﻔﻮ ﺑﺮوﻳﺪ و ﻓﻴﻔﻮ 256ﺗﺎﻳﻲ را اﻧﺘﺨﺎب ﻛﻨﻴﺪ .ﺑﻪ ﻗﺴﻤﺖ ﻓﺮﻣﺖ ﺑﺮوﻳﺪ و ﻓﺮﻣﺖ
را ﻋﻼﻣﺘﺪار اﻧﺘﺨﺎب ﻛﻨﻴﺪ .دوﺑﺎره ﺑﻪ ﺣﺎﻟﺖ اﺳﻴﻠﻮﺳﻜﻮپ ﺑﺮﮔﺮدﻳﺪ .ﺳﻴﮕﻨﺎل ﺳﻴﻨﻮﺳـﻲ ورودي ﺑﺎﻳـﺪ در اﺳﻴﻠﻮﺳـﻜﻮپ ﻧﺸـﺎن داده
ﺷﻮد.
ﺑﺮاي رﺳﻢ ﻧﻤﻮدار ﻛﻨﺎر ﺧﻂ ; x[i]= *Adﻳﻚ Break Pointﻗﺮار دﻫﻴﺪ ﺑﺮﻧﺎﻣﻪ را RUNﻛﻨﻴﺪ.
ﺑﺮﻧﺎﻣﻪ ﺗﺎ ﺧﻂ x[i]=*Adاﺟﺮا ﻣﻲ ﺷﻮد و ﺳﭙﺲ ﻣﺘﻮﻗﻒ ﻣﻲ ﺷﻮد.
ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻓﻘﻂ ﻫﻨﮕﺎﻣﻲ ﻛﻪ ﺑﺮﻧﺎﻣﻪ ﺗﻮﻗﻒ ﻛﻨﺪ )ﺑﻪ Break pointﺑﺮﺳﺪ( ﻧﻤﻮدار ﺑﺮوز رﺳﺎﻧﻲ ﻣﻲ ﺷﻮد در ﺻﻮرت اﺟﺮاي
ﺑﺮﻧﺎﻣﻪ ﻧﻤﻮدار ﺑﺮوز رﺳﺎﻧﻲ ﻧﻤﻲﺷﻮد.
ﺗﻤﺮﻳﻦ :ﺑﺮﻧﺎﻣﻪ را ﻃﻮري ﺗﻐﻴﻴﺮ دﻫﻴﺪ ﺗﺎ ﺑﺎ ﻓﺸﺎر دادن ﻛﻠﻴﺪ روي ﺑﺮد داﻣﻨﻪي ﻣﻮج ﺳﻴﻨﻮﺳﻲ ورودي را در 2ﺿﺮب ﺷﻮد.
(4راهاﻧﺪازي D/A
ﺻﻔﺤﻪي ﻧﻤﺎﻳﺶ ﺑﺮد را ﺑﻪ ﺻﻮرت زﻳﺮ ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ:
ﻣﺪD/A :
ﻓﺮﻛﺎﻧﺲ 8.474:ﻛﻴﻠﻮﻫﺮﺗﺰ
ﻓﻴﻔﻮ :ﻓﻴﻔﻮ 256ﺗﺎﻳﻲ
ﻓﺮﻣﺖ :ﻋﻼﻣﺖدار
دوﺑﺎره ﺑﻪ ﺣﺎﻟﺖ اﺳﻴﻠﺴﻜﻮپ ﺑﺮﮔﺮدﻳﺪ و ورودي را در ﺣﺎﻟﺖ D/Aﻗﺮار دﻫﻴﺪ.
ﻳﻚ ﭘﺮوژه ﺟﺪﻳﺪ اﻳﺠﺎد ﻛﻨﻴﺪ و ﻓﺎﻳﻞ زﻳﺮ را در ﺑﺮﻧﺎﻣﻪ main.cوارد ﻧﻤﺎﻳﻴﺪ:
;int *D2A
;int *FIFO_d2a
;int fifo_status
;]int i, x[256
)(main
{
;D2A= (int* )0x400002
;FIFO_d2a= (int*) 0x400026
47 آزﻣﺎﻳﺶ :2دﺳﺘﻮر ﻛﺎر آزﻣﺎﻳﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮو ﺧﺎورﻣﻴﺎﻧﻪ
{);;(for
;fifo_status=*FIFO_d2a
)if((fifo_status&(0x20)) != 0
)for(i=0;i<256;i++
;*D2A=i*4
}
}
ﺗﻮﺿﻴﺢ ﺳﻪ ﺧﻂ آﺧﺮ ﺑﺮﻧﺎﻣﻪ :وﻗﺘﻲ ﺣﺎﻓﻈﻪ ي FIFOﻣﺮﺑﻮط ﺑﻪ D2Aﺧﺎﻟﻲ ﺷﺪ ،داﺧﻞ آن 256ﻣﻘﺪار ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮد.
ﭘﺮوژه را Buildو Runﻛﻨﻴﺪ ﺗﺎ وارد ﺻﻔﺤﻪ دﻳﺒﺎگ ﺷﻮﻳﺪ )روي آﻳﻜﻮن ﺳﻮﺳﻚ ﻛﻠﻴﻚ ﻛﻨﻴﺪ( .ﺑﺮﻧﺎﻣـﻪ را اﺟـﺮا ﻛﻨﻴـﺪ .ﺑﺎﻳـﺪ
ﺷﻜﻞ ﻣﻮج زﻳﺮ در ﺻﻔﺤﻪي ﻧﻤﺎﻳﺶ ﻧﺸﺎن داده ﻣﻲﺷﻮد.
ﺗﻤﺮﻳﻦ :در ﺑﺮد ﺑﺎ اﺳﺘﻔﺎده از ﻳﻚ ﺳﻴﻢ ﭘﻮرت ورودي A/Dرا ﺑﻪ ﭘـﻮرت ﺧﺮوﺟـﻲ D/Aوﺻـﻞ ﻛﻨﻴـﺪ .اﺳﻴﻠﺴـﻜﻮپ را در
ﺣﺎﻟﺖ ورودي A/Dﻗﺮار دﻫﻴﺪ .ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻳﻚ ﻣﻮج ﻣﺮﺑﻌﻲ ﺗﻮﻟﻴﺪ ﻛﻨﺪ و ﺑﻪ ﺧﺮوﺟﻲ D/Aﻓﺮﺳﺘﺎده ﺷﻮد .اﻳﻦ ﻣـﻮج را در
اﺳﻴﻠﻮﺳﻜﻮپ ﻣﺸﺎﻫﺪه ﻛﻨﻴﺪ.
ﻧﻜﺘﻪ :ﻣﺒﺪل آﻧﺎﻟﻮگ و دﻳﺠﻴﺘﺎﻟﻲ ﻛﻪ روي ﺑﺮد ﻗﺮار دارد 12ﺑﻴﺘﻲ ﻣﻲﺑﺎﺷﺪ .ﺑﺎﻳﺪ ﺗﻮﺟﻪ ﻛﺮد ﻣﻘﺎدﻳﺮي ﻛﻪ در A/Dرﻳﺨﺘﻪ ﻣـﻲ-
ﺷﻮد از ﺣﺪ ﻣﺠﺎز ﺑﻴﺶﺗﺮ ﻧﺸﻮد .در ﻏﻴﺮ اﻳﻦ ﺻﻮرت ﺷﻜﻞ ﻣﻮج ﻧﺸﺎن داده ﺷﺪه ﺑﻪ اﺷﺒﺎع ﻣﻲرود و ﺑﻪ درﺳﺘﻲ در ﺻﻔﺤﻪ ﻧﻤـﺎﻳﺶ
ﻧﺸﺎن داده ﻧﻤﻲﺷﻮد.
در اﻳﻦ روش ﻫﻤﺎن ﻃﻮر ﻛﻪ در ﺷﻜﻞ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ ،ﻳﻚ ﻓﻴﻠﺘﺮ IIRﻣﺮﺗﺒﻪي دوم ﻃﻮري ﻃﺮاﺣـﻲ ﻣـﻲﺷـﻮد ﻛـﻪ ﺑـﻪ
ﺻﻮرت ﻣﺮزي ﭘﺎﻳﺪار ﺑﺎﺷﺪ .اﻳﻦ ﻛﺎر ﺑﺮاي ﻓﻴﻠﺘﺮ ﻛﺮدن ﻳﻚ ﺳﻴﮕﻨﺎل ﻧﺎﻣﻨﺎﺳﺐ ﻣﻲﺑﺎﺷﺪ .ﺑﺮاي اﻳﻦ ﻛﻪ اﻳﻦ ﻓﻴﻠﺘﺮ ﺑـﻪ ﺻـﻮرت ﻣـﺮزي
ﭘﺎﻳﺪار ﺑﺎﺷﺪ ،ﻗﻄﺐﻫﺎي ﻓﻴﻠﺘﺮ روي داﻳﺮهي واﺣﺪ ﻗﺮار داده ﻣﻲﺷﻮﻧﺪ .ﺑﻌﺪ از اﻳﻦ ﻛﻪ ﺿﺮاﻳﺐ ﻓﻴﻠﺘﺮ ﺑﺮاي ﭘﺎﻳﺪاري ﻣـﺮزي اﻧﺘﺨـﺎب
ﺷﺪﻧﺪ ،ﻳﻚ ﺿﺮﺑﻪي واﺣﺪ ﺑﻪ ﻓﻴﻠﺘﺮ ﺑﻪ ﻋﻨﻮان ورودي در زﻣﺎن t=0اﻋﻤﺎل ﻣﻲﺷﻮد .ﺳﭙﺲ ورودي ﻗﻄﻊ ﻣﻲﺷـﻮد .ﻓﻴﻠﺘـﺮ ﺷـﺮوع ﺑـﻪ
ﻧﻮﺳﺎن ﺑﺎ ﻳﻚ ﻓﺮﻛﺎﻧﺲ ﺛﺎﺑﺖ ﻣﻲﻛﻨﺪ.
در ﻣﻌﺎدﻟﻪي ﺑﺎﻻ f s ،ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري f 0 ،ﻓﺮﻛﺎﻧﺲ ﻧﻮﺳﺎن ﻣﻄﻠﻮب و Aداﻣﻨـﻪي ﻣﻄﻠـﻮب ﻣـﻮج ﺳﻴﺴﻨﻮﺳـﻲ ﻣـﺎ
ﻣﻲﺑﺎﺷﺪ.
49 DSP دﺳﺘﻮر ﻛﺎر آزﻣﺎﻳﺸﮕﺎه:2 آزﻣﺎﻳﺶ ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮو ﺧﺎورﻣﻴﺎﻧﻪ
ﺑﺮاي اﻳﻦ ﻣﻨﻈﻮر ﺑـﺎ ﺗﻮﺟـﻪ. ﺗﻮﻟﻴﺪ ﻛﻨﻴﻢf s = 10000Hz وf 0 = 1000Hz ﻣﻲﺧﻮاﻫﻴﻢ ﻳﻚ ﻣﻮج ﺳﻴﻨﻮﺳﻲ ﺑﺎ ﻓﺮﻛﺎﻧﺲ
:ﺑﻪ ﻣﻌﺎدﻻت ﺑﺎﻻ دارﻳﻢ
2 × 180
w0 = = 36
10
a1 = −2 cos(36o ) = −1.618
A =1
b 0 = sin(36o ) = 0.588
source را اﻧﺘﺨﺎب ﻛﻨﻴﺪ در ﻗﺴﻤﺖsource file ﺑﺮوﻳﺪnew در ﻗﺴﻤﺖfile ﺑﻪ ﻣﻨﻮي.ﻳﻚ ﭘﺮوژهي ﺟﺪﻳﺪ اﻳﺠﺎد ﻛﻨﻴﺪ
.( ﺑﺮﻧﺎﻣﻪ زﻳﺮ را وارد ﻛﻨﻴﺪsinGen.c) را وارد ﻛﻨﻴﺪ ﺣﺎل در ﻓﺎﻳﻞ اﻳﺠﺎد ﺷﺪهsinGen وfile
/*********************************************
* The coefficient A and the three initial values
* generate a 1KHz tone (sine wave) when running
* at a sample rate of 10KHz.
*
* Even though the calculations are done in floating
* point, this function returns a short value since
* this is what's needed by a 12-bit codec (DAC).
***********************************************/
float y[3] = {0,0.588,0};
float A = 1.618;
shortsineGen(void) {
y[0] = y[1] * A - y[2];
y[2] = y[1];
50 آزﻣﺎﻳﺶ :2آﺷﻨﺎﻳﻲ ﻛﻴﻒ آزﻣﺎﻳﺸﮕﺎه ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮوﺧﺎورﻣﻴﺎﻧﻪ
;]y[1] = y[0
;))]return((short)(600*y[0
}
ﭘﺲ از ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪ ﺑﺮﻧﺎﻣﻪ را saveﻛﻨﻴﺪ ﺳﭙﺲ ﺑﺮﻧﺎﻣﻪ زﻳﺮ را در ﻓﺎﻳﻞ main.cوارد ﻛﻨﻴﺪ:
;int *D2A
;int *FIFO_d2a
;intfifo_status
;]int x[256
;unsignedinti
;unsignedint j=0
;)shortsineGen(void
)voidmain(void
{
;D2A= (int* )0x400002
;FIFO_d2a= (int*) 0x400026
);;(for
{
;fifo_status=*FIFO_d2a
)if((fifo_status&(0x20)) != 0
)for (i=0;i<256;i++
{
;)(x[i]=sineGen
;]*D2A=x[i
}
}
}
LCDﺑﺮد را در ﻣﺪ D/Aﻗﺮار دﻫﻴﺪ و ﺑﻪ ﺻﻮرت زﻳﺮ ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ:
ﻓﺮﻛﺎﻧﺲ 8/474 :ﻛﻴﻠﻮﻫﺮﺗﺰ
ﻓﻴﻔﻮ :ﻓﻴﻔﻮ 256ﺗﺎﻳﻲ
ﻓﺮﻣﺖ :ﻋﻼﻣﺖدار
LCDﺑﺮد را در ﻣﺪ اﺳﻴﻠﺴﻜﻮپ ﻗﺮار دﻫﻴﺪ و ﺑﻪ ﺻﻮرت زﻳﺮ ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ:
زﻣﺎن500 usec :
داﻣﻨﻪ1 v :
وروديD/A :
ﺗﺮﻳﮕﺮ0 v :
ﭘﺮوژه را Buildو Runﻛﻨﻴﺪ ﺗﺎ وارد ﺻﻔﺤﻪ دﻳﺒﺎگ ﺷﻮﻳﺪ )روي آﻳﻜﻮن ﺳﻮﺳﻚ ﻛﻠﻴﻚ ﻛﻨﻴﺪ( .ﺑﺮﻧﺎﻣـﻪ را اﺟـﺮا ﻛﻨﻴـﺪ .ﺑﺎﻳـﺪ
ﺷﻜﻞ ﻣﻮج ﺳﻴﻨﻮﺳﻲ در ﺻﻔﺤﻪي ﻧﻤﺎﻳﺶ ﻧﺸﺎن داده ﻣﻲﺷﻮد.
ﺗﻮﺟﻪ :ﺑﺮاي اﻳﻨﻜﻪ ﺷﻜﻞ ﻣﻮج در ﺻﻔﺤﻪ ﻧﻤﺎﻳﺶ ﺑﺮد آزﻣﺎﻳﺸﮕﺎه ﻧﺸﺎن داده ﺷﻮد در ﺑﺮﻧﺎﻣﻪ ﻧﺒﺎﻳﺪ break pointوﺟﻮد داﺷﺘﻪ
ﺑﺎﺷﺪ.
51 آزﻣﺎﻳﺶ :2دﺳﺘﻮر ﻛﺎر آزﻣﺎﻳﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮو ﺧﺎورﻣﻴﺎﻧﻪ
ﺗﻤﺮﻳﻦ :ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري را ﺑﻪ ﺻﻮرت زﻳﺮ ﺗﻐﻴﻴﺮ دﻫﻴﺪ و ﻫﺮ ﺑﺎر ﺿـﺮاﻳﺐ a1و b 0را ﻣﺤﺎﺳـﺒﻪ ﻛﻨﻴـﺪ و در ﺑﺮﻧﺎﻣـﻪ
sinGen.cﺑﻪ روز رﺳﺎﻧﻲ ﻛﻨﻴﺪ.
f s : 500,1000, 2000, 20000, 40000
ﺷﻜﻞ ﻣﻮج ﺳﻴﻨﻮﺳﻲ را ﻫﻢ در ﺑﺮﻧﺎﻣﻪ ﻛﺪ ﻛﺎﻣﭙﻮزر و ﻫﻢ در LCDﻣﺸﺎﻫﺪه ﻛﻨﻴﺪ .ﻛﺪام ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري ﺑﺮاي ﻣﺸﺎﻫﺪه
در ﻧﺮماﻓﺰار ﻣﻨﺎﺳﺐﺗﺮ ﻣﻲﺑﺎﺷﺪ؟ ﻛﺪام ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري ﺑﺮاي ﻣﺸﺎﻫﺪه در LCDﺑﺮد ﻣﻨﺎﺳﺐﺗﺮ ﻣﻲﺑﺎﺷﺪ؟
(6ﻣﺸﺎﻫﺪهي ﺗﺼﻮﻳﺮ
ﺑﺎ ﻛﻠﻴﺪﻫﺎي 1و 2ﺻﻔﺤﻪي ﻧﻤﺎﻳﺶ را در ﺣﺎﻟﺖ ﮔﺮاﻓﻴﻚ ﻗﺮار دﻫﻴﺪ.ﻳﻚ ﭘﺮوژهي ﺟﺪﻳﺪ اﻳﺠﺎد ﻛﻨﻴﺪ ،ﺑﺮﻧﺎﻣﻪي زﻳﺮ را
ﺑﻨﻮﻳﺴﻴﺪ Build ،و Runﻛﻨﻴﺪ:
>#include<stdio.h
;Int i=10
;int * RGB_RAM
;]int Image[96][96
{ )voidmain(void
;inti,j,k=0
;RGB_RAM = (int* )0x40D000
)for(i=0;i<96;i++
)for(j=0;j<96;j++
{
;Image[i][j]=i+j
;*(RGB_RAM+k)=i+j
;k=k+1
}
}
ﭘﺲ از اﺟﺮاي ﺑﺮﻧﺎﻣﻪ ﺗﺼﻮﻳﺮ روي ﺑﺮد ﺗﻐﻴﻴﺮ ﻣﻲﻛﻨﺪ.
در ﭘﻨﺠﺮه ﺑﺎز ﺷﺪه ﻛﻠﻴﻚ راﺳﺖ ﻛﻨﻴﺪ و Propertiesرا اﻧﺘﺨﺎب ﻛﻨﻴﺪ:
ﺷﻜﻞ :6ﺗﻨﻈﻴﻤﺎﺗﻤﺸﺎﻫﺪﻫﮕﺮﺗﺼﻮﻳﺮ
ﺗﻤﺮﻳﻦ :ﺑﺮﻧﺎﻣﻪ ﻗﺒﻞ را ﻃﻮري ﺗﻐﻴﻴﺮ دﻫﻴﺪ ﻛﻪ ﻳﻚ ﺗﺼﻮﻳﺮ ﻃﻮري ﻧﻤﺎﻳﺶ داده ﺷﻮد ﻛﻪ از ﺳﻴﺎه )ﺳﻤﺖ ﭼﭗ ﺗﺼﻮﻳﺮ( ﺑﻪ ﺳﻔﻴﺪ
)ﺳﻤﺖ راﺳﺖ ﺗﺼﻮﻳﺮ( ﺑﻪ آراﻣﻲ ﺗﻐﻴﻴﺮ ﻛﻨﺪ.
ﺗﻤﺮﻳﻦ :ﺑﺮﻧﺎﻣﻪ را ﻃﻮري ﺗﻐﻴﻴﺮ دﻫﻴﺪ ﺗﺎ ﻳﻚ داﻳﺮه ﺳﻴﺎه در ﻣﺮﻛﺰ ﺑﺮد ﺑﻪ ﺷﻌﺎع 30ﭘﻴﻜﺴﻞ ﻧﻤﺎﻳﺶ داده ﺷﻮد .ﻣﻌﺎدﻟﻪ داﻳﺮه ﺑﻪ
ﺻﻮرت زﻳﺮ ﻣﻲﺑﺎﺷﺪ:
54 آزﻣﺎﻳﺶ :2آﺷﻨﺎﻳﻲ ﻛﻴﻒ آزﻣﺎﻳﺸﮕﺎه ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮوﺧﺎورﻣﻴﺎﻧﻪ
ﯾﮑﯽ از ﮐﺎرﺑﺮدﻫﺎي ﻣﻬﻢ ﭘﺮدازﻧﺪهﻫﺎي ،DSPﭘﯿﺎده ﺳﺎزي اﻟﮕﻮرﯾﺘﻤﻬﺎي رﯾﺎﺿﯽ ﺑﺎ آﻧﻬﺎ ﻣﯽﺑﺎﺷﺪ DSP .ﻫﺎ در ﺑﺪو ورود ﺑﻪ
ﺑﺎزار ﺑﻪ دﻟﯿﻞ ﻗﺎﺑﻠﯿﺖﻫﺎي ﻣﺤﺎﺳﺒﺎﺗﯽ ﮐﻪ داﺷﺘﻨﺪ ﻣﺸﻬﻮر ﺷﺪﻧﺪ .اﻣﺮوزه ﻧﺮماﻓﺰارﻫﺎي ﻣﺤﺎﺳﺒﺎﺗﯽ زﯾﺎدي در ﺑﺎزار وﺟﻮد دارﻧﺪ ﮐﻪ
ﻣﺸﻬﻮر ﺗﺮﯾﻦ آﻧﻬﺎ MATLABﻣﯽﺑﺎﺷﺪ MATLAB .ﺑﻪ دﻟﯿﻞ ﺳﻬﻮﻟﺖ اﺳﺘﻔﺎده و ﻗﺎﺑﻠﯿﺘﻬﺎي ﺑﺎﻻي آن در داﻧﺸﮕﺎﻫﻬﺎ ﺑﻪ ﻋﻨﻮان ﯾﮏ
اﺑﺰار ﮐﻤﮑﯽ ﺑﺮاي ﭘﯿﺎده ﺳﺎزي اﻟﮕﻮرﯾﺘﻤﻬﺎي رﯾﺎﺿﯽ اﺳﺘﻔﺎده ﻣﯽﮔﺮدد .اﻣﺮوزه ﺗﻌﺪادي ﺑﺮدﻫﺎي DSPآﻣﺎده وﺟﻮد دارد ﮐﻪ
ﻣﯽﺗﻮان ﺑﺎ ﮐﻤﮏ MATLABﺑﺮاي آﻧﻬﺎ ﺑﺮﻧﺎﻣﻪﻫﺎي Cدرﺳﺖ ﮐﺮد .روش ﮐﺎر ﺑﻪ اﯾﻦ ﺻﻮرت اﺳﺖ ﮐﻪ در اﺑﺘﺪا ﺑﺎ ﮐﻤﮏ
، MATLABاﻟﮕﻮرﯾﺘﻢ رﯾﺎﺿﯽ ﻣﻮرد ﻧﻈﺮ در ﻣﺤﯿﻂ ، SIMULINKﭘﯿﺎده ﺳﺎزي ﺷﺪه و ﺳﭙﺲ ﺑﺎ ﭼﻨﺪ ﮐﻠﯿﮏ ﺳﺎده در درون ﻧﺮم
اﻓﺰار ، MATLABﺑﻪ ﺷﮑﻞ اﺗﻮﻣﺎﺗﯿﮏ ﮐﺪ Cﻣﻌﺎدل ﺑﺮاي اﻟﮕﻮرﯾﺘﻢ ﺗﻮﺳﻂ MATLABﺗﻮﻟﯿﺪﮔﺮدﯾﺪه و ﭘﺲ از آن ﺑﻪ ﺷﮑﻞ
ﺧﻮدﮐﺎر ﯾﮏ ﭘﺮوژه ﺑﺮاي CCSﺑﻪ وﺟﻮد آﻣﺪه و ﺗﻤﺎم ﻓﺎﯾﻠﻬﺎي Cﺗﻮﻟﯿﺪ ﺷﺪه ﺗﻮﺳﻂ MATLABﺑﻪ ﭘﺮوژه اﺿﺎﻓﻪ ﻣﯽﮔﺮدد .اﯾﻦ
روش اﺳﺘﻔﺎده از MATLABﻣﺤﺎﺳﻦ و ﻣﻌﺎﯾﺒﯽ دارد .ﻣﻬﻤﺘﺮﯾﻦ ﺣﺴﻦ اﯾﻦ روش ﺳﺎدﮔﯽ و زﻣﺎن ﮐﻮﺗﺎه اﻧﺘﻘﺎل اﻟﮕﻮرﯾﺘﻤﻬﺎ از
ﻣﺤﯿﻂ MATLABﺑﻪ ﻣﺤﯿﻂ CCSاﺳﺖ .اﻣﺎ اﯾﻦ روش ﺗﻨﻬﺎ در داﻧﺸﮕﺎه و ﺑﺮاي ﺷﺒﯿﻪ ﺳﺎزي ﮐﺎرﺑﺮد دارد .در ﻋﻤﻞ ﭼﻮن
MATLABﺑﺮاي ﻫﺮ ﺑﻠﻮك از ﯾﮏ ﮐﺪ Cآﻣﺎده ) ﮐﻪ ﻣﻌﻤﻮﻻ ﺑﺮاي DSPﻫﺎ ﺑﻬﯿﻨﻪ ﻧﻤﯽﺑﺎﺷﺪ( اﺳﺘﻔﺎده ﻣﯽﮐﻨﺪ ﮐﺪ ﺗﻮﻟﯿﺪ ﺷﺪه در
ﻋﻤﻞ ﮐﺎرﺑﺮدي ﻧﻤﯽﺑﺎﺷﺪ .ﻣﻌﻤﻮﻻ ﮐﺪ ﺗﻮﻟﯿﺪ ﺷﺪه ﺗﻮﺳﻂ MATLABﺑﺮاي ﯾﮏ ﭘﺮدازﻧﺪه 200ﻣﮕﺎ ﻫﺮﺗﺰي ﺑﺎ ﻗﺎﺑﻠﯿﺖ 400ﻣﯿﻠﯿﻮن
ﻣﺤﺎﺳﺒﻪ رﯾﺎﺿﯽ در ﺛﺎﻧﯿﻪ ،ﺗﻨﻬﺎ ﺑﺮاي ﮐﺎرﺑﺮدﻫﺎي ﭘﺮدازش ﺻﺤﺒﺖ ﻣﻨﺎﺳﺐ اﺳﺖ ) ﻣﺜﻼ 2ﻣﯿﻠﯿﻮن ﻣﺤﺎﺳﺒﻪ رﯾﺎﺿﯽ در ﺛﺎﻧﯿﻪ( .از
ﻃﺮﻓﯽ ﺑﻪ دﻟﯿﻞ ﭘﯿﭽﯿﺪﮔﯽﻫﺎي زﯾﺎد ﮐﺪ Cﺗﻮﻟﯿﺪ ﺷﺪه ﺗﻮﺳﻂ MATLABدﺳﺘﮑﺎري و ﺑﻬﯿﻨﻪ ﺳﺎزي اﯾﻦ ﮐﺪ ﻣﺸﮑﻞ اﺳﺖ .اﯾﻦ ﺑﺎﻋﺚ
ﺷﺪه ﮐﻪ ﻃﺮاﺣﺎن ﺣﺮﻓﻪاي از ﯾﮏ روش دﯾﮕﺮ اﺳﺘﻔﺎده ﮐﻨﻨﺪ.
ﺷﺮﮐﺖ TIﺑﺮاي ﻫﺮ ﺳﺮي از ﭘﺮدازﻧﺪهﻫﺎي ﺳﺎﺧﺖ ﺧﻮد ﺗﻌﺪادي ﺗﺎﺑﻊ اﺳﻤﺒﻠﯽ ﻧﻮﺷﺘﻪ اﺳﺖ .اﯾﻦ ﺗﻮاﺑﻊ ،ﺗﻮاﺑﻌﯽ ﺑﺴﯿﺎر ﺳﺮﯾﻊ
ﻫﺴﺘﻨﺪ ﮐﻪ از ﻗﺎﺑﻠﯿﺘﻬﺎي ﺧﺎص ﻫﺮ ﭘﺮدازﻧﺪه در ﻧﻮﺷﺘﻦ آﻧﻬﺎ اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ.ﭼﻮن اﯾﻦ ﺗﻮاﺑﻊ ﺑﺴﯿﺎر ﺳﺮﯾﻊ ﻫﺴﺘﻨﺪ در ﻋﻤﻞ ﺑﻬﺘﺮ
اﺳﺖ از آﻧﻬﺎ ﺑﻪ ﺟﺎي ﺗﻮاﺑﻊ ﻣﺸﺎﺑﻪ اﺳﺘﻔﺎده ﮐﺮد .1
ﺑﻪ ﻋﻨﻮان ﻧﻤﻮﻧﻪ ﺗﻮاﺑﻌﯽ ﮐﻪ در ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺳﯿﮕﻨﺎل وﺟﻮد دارﻧﺪ ﻋﺒﺎرﺗﻨﺪ از :ﻣﺤﺎﺳﺒﻪ ،FFTﻓﯿﻠﺘﺮﯾﻨﮓ ،ﻓﯿﻠﺘﺮﻫﺎي
ﺗﻄﺒﯿﻘﯽ ،ﻫﻤﺒﺴﺘﮕﯽ ،ﻣﺎﺗﺮﯾﺲﻫﺎ و ﺗﻮاﺑﻊ رﯾﺎﺿﯽ ﻣﺨﺘﻠﻒ ﻣﺎﻧﻨﺪ ﺿﺮب دو ﺑﺮدار،ﻣﺤﺎﺳﺒﻪ ﺗﻮان ﺳﯿﮕﻨﺎل و . ...
:ﻗﺒﻞ از اﻧﺠﺎم اﯾﻦ ازﻣﺎﯾﺶ ﺑﺎﯾﺪ ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺳﯿﮕﻨﺎل ) (dsblibرا ﻧﺼﺐ ﻧﻤﺎﯾﯿﺪ ﺑﺮاي اﯾﻦ ﻣﻨﻈﻮر ﺑﻪ ﺿﻤﯿﻤﻪ ﻧﮑﺘﻪ
اﻟﻒ ﻣﺮاﺟﻌﻪ ﮐﻨﯿﺪ .ﺑﻌﺪ از ﻧﺼﺐ ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺳﯿﮕﻨﺎل در ﻣﺴﯿﺮ زﯾﺮ ﭘﻮﺷﻪ dsplibاﯾﺠﺎد ﻣﯽﺷﻮد :
C:\ti\dsblib_2.40.00
اﮔﺮ ﻫﻨﮕﺎم ﮐﺎﻣﭙﺎﯾﻞ ﺑﺮﻧﺎﻣﻪ ﺧﻄﺎي ﭘﯿﺪا ﻧﮑﺮدن Fileرخ داد دﻟﯿﻞ آن ﻧﺼﺐ ﻧﺒﻮدن ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺳﯿﮕﻨﺎل اﺳﺖ.
____________________________________________________________________
1اﯾﻦ ﻣﻘﺪﻣﻪ از ﻓﺼﻞ 10ﮐﺘﺎب ﻣﺮﺟﻊ ﮐﺎﻣﻞ ﭘﺮدازﻧﺪهﻫﺎي DSPﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ.
57 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
در اﯾﻦ آزﻣﺎﯾﺶ ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ ﺑﻬﯿﻨﻪ ﺟﻤﻊ دو ﺑﺮدار ،ﻧﺤﻮه اﺳﺘﻔﺎده از ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺳﯿﮕﻨﺎل آﻣﻮزش داده ﻣﯽﺷﻮد.
ﺑﺮاي اﯾﻦ ﻣﻨﻈﻮر اﺑﺘﺪا ﯾﮏ ﭘﺮوژهي ﺟﺪﯾﺪ اﯾﺠﺎد ﮐﻨﯿﺪ )ﺑﺮاي ﯾﺎدآوري ﺑﻪ ﺿﻤﯿﻤﻪي 1ﻣﺮاﺟﻌﻪ ﮐﻨﯿﺪ( .ﻣﺮاﺣﻞ زﯾﺮ را دﻧﺒﺎل ﮐﻨﯿﺪ:
ﻣﺮﺣﻠﻪي اول :اﺿﺎﻓﻪ ﮐﺮدن ﻓﺎﯾﻞ ﮐﺘﺎﺑﺨﺎﻧﻪاي ) (*.libﺑﻪ ﭘﺮوژه
در ﻣﺤﻞ ﻧﺼﺐ ﻧﺮماﻓﺰار ،CCSﻓﺎﯾﻞﻫﺎي ﻣﺨﺼﻮص ﻫﺮ ﺧﺎﻧﻮاده در ﺷﺎﺧﻪﻫﺎﯾﯽ ﻫﻢ ﻧﺎم ﻫﻤﺎن ﺧﺎﻧﻮاده ﻗﺮار دارﻧﺪ .ﺑﺮاي
اﺳﺘﻔﺎده از ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺳﯿﮕﻨﺎل ﺑﺎﯾﺪ ﻓﺎﯾﻞ ﻣﺮﺑﻮﻃﻪ را ﺑﻪ ﭘﺮوژه اﺿﺎﻓﻪ ﮐﻨﯿﺪ .ﺑﺮاي اﯾﻦ ﻣﻨﻈﻮر روي ﻓﺎﯾﻞ ﭘﺮوژه ﮐﻠﯿﮏ راﺳﺖ
ﮐﺮده و propertiesرا اﻧﺘﺨﺎب ﮐﻨﯿﺪ:
در ﭘﻨﺠﺮه ﺑﺎز ﺷﺪه Buildرا اﻧﺘﺨﺎب ﮐﻨﯿﺪ ،روي C5500 Linkerﮐﻠﯿﮏ ﮐﻨﯿﺪ و File Search Pathرا اﻧﺘﺨﺎب ﮐﻨﯿﺪ.
58 آزﻣﺎﯾﺶ :3آﻣﻮزش ﻧﺤﻮه اﺳﺘﻔﺎده از ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﮐﻠﯿﮏ ﮐﻨﯿﺪ .و ﻣﻄﺎﺑﻖ ﺷﮑﻞ ﻣﺴﯿﺮ زﯾﺮ را ADD در ﻗﺴﻤﺖ ،Include library file or command file as inputروي
وارد ﮐﻨﯿﺪ:
C:\ti\dsplib_2.40.00\55xdspx.lib
روي OKﮐﻠﯿﮏ ﮐﻨﯿﺪ .ﻫﻤﺎن ﻃﻮر ﮐﻪ ﻣﺸﺎﻫﺪه ﻣﯽﺷﻮد ،ﮐﺘﺎﺑﺨﺎﻧﻪ 55xdspx.libﺑﻪ ﻣﺴﯿﺮ ﺟﺴﺖ و ﺟﻮي ﻓﺎﯾﻞ اﺿﺎﻓﻪ ﻣﯽ-
ﺷﻮد.
59 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﮐﻠﯿﮏ ﮐﻨﯿﺪ و ﻣﺴﯿﺮ زﯾﺮ را وارد ﮐﻨﯿﺪ: ADD در ﻗﺴﻤﺖ ، ،Add dir to #include search pathروي
C:\ti\dsplib_2.40.00\include
60 آﻣﻮزش ﻧﺤﻮه اﺳﺘﻔﺎده از ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش:3 آزﻣﺎﯾﺶ ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
: را ﺑﺎ ﻫﻢ ﺟﻤﻊ ﻣﯽﮐﻨﺪy وx اﯾﻦ ﺑﺮﻧﺎﻣﻪ دو ﺑﺮدار. ﺗﺎﯾﭗ ﮐﻨﯿﺪmain.c ﺑﺮﻧﺎﻣﻪ زﯾﺮ را در ﻓﺎﯾﻞ
#include <math.h>
#include <tms320.h>
#include <dsplib.h>
#define NX 16
#define ADD_SCALE 0
// generic variables
short i;
ushort scale;
void main()
{
scale = ADD_SCALE;
// clear
for (i=0;i<NX;i++) r[i] =0; // clear output buffer
(optional)
61 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
// compute
;)add(x,y,r,NX, scale
}
ﺑﺮﻧﺎﻣﻪ را Buildو Runﮐﻨﯿﺪ .ﺳﭙﺲ ﺑﺮﻧﺎﻣﻪ را اﺟﺮا ﮐﻨﯿﺪ.
r در اﯾﻦ ﺑﺮﻧﺎﻣﻪ ﺗﺎﺑﻊ addدو ﺑﺮدار را ﺑﺎ ﻫﻢ ﺟﻤﻊ ﻣﯽﮐﻨﺪ .وروديﻫﺎ در ﻣﺘﻐﯿﯿﺮﻫﺎي xو yﻗﺮار دارﻧﺪ و ﺧﺮوﺟﯽ در ﻣﺘﻐﯿﯿﺮ
رﯾﺨﺘﻪ ﻣﯽﺷﻮد .در ﭘﻨﺠﺮه Memory Browserﻣﻄﺎﺑﻖ ﺷﮑﻞ &rرا ﺗﺎﯾﭗ ﮐﻨﯿﺪ .ﺧﺮوﺟﯽ را ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ.
ﺗﻤﺮﯾﻦ :1ﺗﻌﺪاد ﮐﻼكﻫﺎﯾﯽ را ﮐﻪ ﻃﻮل ﻣﯽﮐﺸﺪ ﺗﺎ ﺗﺎﺑﻊ addاﺟﺮا ﺷﻮد را ﺣﺴﺎب ﮐﻨﯿﺪ .ﺗﺎﺑﻌﯽ ﺑﻪ زﺑﺎن Cﺑﻨﻮﯾﺴﯿﺪ ﺗﺎ ﻫﻤﯿﻦ
ﮐﺎر را اﻧﺠﺎم دﻫﺪ .ﺗﻌﺪاد ﮐﻼكﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﺷﺘﻪ ﺷﺪه را ﻣﺤﺎﺳﺒﻪ ﮐﻨﯿﺪ .ﻧﺘﯿﺠﻪ را ﺑﺎ ﻗﺴﻤﺖ ﻗﺒﻞ ﻣﻘﺎﯾﺴﻪ ﮐﻨﯿﺪ.
ﺗﻤﺮﯾﻦ :2ﭘﺎراﻣﺘﺮ ADD_SCALEرا در ﺑﺮﻧﺎﻣﻪ از 0ﺑﻪ 1ﺗﻐﯿﯿﺮ دﻫﯿﺪ .ﺧﺮوﺟﯽ را ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ .ﭼﻪ ﺗﻔﺎوﺗﯽ ﺑﺎ ﻣﺮﺣﻠﻪي
ﻗﺒﻞ دارد .دﻟﯿﻞ اﯾﻦ ﮐﺎر ﭼﯿﺴﺖ؟
ﺗﻤﺮﯾﻦ :3ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ mul32ﮐﻪ از ﺗﻮاﺑﻊ ﭘﺮدازش ﺳﯿﮕﻨﺎل ﻣﯽﺑﺎﺷﺪ دو ﺑﺮدار زﯾﺮ را در ﻫﻢ ﺿﺮب ﮐﻨﯿﺪ:
]A=[100000,-200000,300000,400000
]B=[50000,-60000,-70000,-80000
ﺑﺮاي داﻧﻠﻮد ﻓﺎﯾﻞ آﻣﻮزﺷﯽ ﻣﺮﺑﻮط ﺑﻪ ﭘﺮدازش ﺳﯿﮕﻨﺎل spru422i.pdfﺑﻪ ﭘﯿﻮﺳﺖ اﻟﻒ ﻣﺮاﺟﻌﻪ ﮐﻨﯿﺪ.
ﺑﻌﺪ از ﻓﻌﺎل ﺳﺎزي clockﺑﺮﻧﺎﻣﻪ را ﺧﻂ ﺑﻪ ﺧﻂ Runﮐﺮده ،ﺗﻌﺪاد clockﻫﺎي ﮐﻪ ﻃﻮل ﻣﯽ ﮐﺸﺪ ﺗﺎ ﺑﺮﻧﺎﻣﻪ اﺟﺮا ﺷﻮد
در ﭘﺎﯾﯿﻦ ﭘﻨﺠﺮه ﮐﻨﺎر ﺷﮑﻞ ﺳﺎﻋﺖ ﻧﻤﺎﯾﺶ داده ﻣﯽﺷﻮد.
آزﻣﺎﯾﺶ :4
آﺷﻨﺎﯾﯽ ﺑﺎ ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺗﺼﻮﯾﺮ
(1ﻣﻘﺪﻣﻪ
ﯾﮑﯽ از ﻣﻬﻤﺘﺮﯾﻦ ﮐﺎرﺑﺮدﻫﺎي ﭘﺮدازﻧﺪهﻫﺎي DSPدر ﺣﻮزه ﭘﺮدازش ﺳﯿﮕﻨﺎل و ﺗﺼﻮﯾﺮ ﻣﯽﺑﺎﺷﺪ .ﺑﺎ ﭘﯿﺸﺮﻓﺖ ﺗﮑﻨﻮﻟﻮژي
اﻟﮕﻮرﯾﺘﻤﻬﺎي ﭘﺮدازش ﺗﺼﻮﯾﺮ ﺗﻨﻮع ﺑﺴﯿﺎر زﯾﺎدي ﭘﯿﺪا ﮐﺮدهاﻧﺪ اﻣﺎ ﺗﻌﺪاد ﻣﺤﺪودي از ﺗﻮاﺑﻊ در ﺑﯿﻦ ﺑﺴﯿﺎري از آﻧﻬﺎ ﻣﺸﺘﺮك اﺳﺖ.
ﺷﺮﮐﺖ TIﺗﻌﺪادي از ﭘﺮﮐﺎرﺑﺮدﺗﺮﯾﻦ ﺗﻮاﺑﻊ را ﺗﺤﺖ ﻋﻨﻮان imagelib.hدر ﻧﺮماﻓﺰار CCSﻗﺮار داده اﺳﺖ .اﯾﻦ ﺗﻮاﺑﻊ اﮐﺜﺮا ﺑﺎ
زﺑﺎن اﺳﻤﺒﻠﯽ ﺑﺮاي ﻫﺮ ﺧﺎﻧﻮاده از ﭘﺮدازﻧﺪهﻫﺎ ﺑﻪ ﺻﻮرت ﺟﺪاﮔﺎﻧﻪ ﻧﻮﺷﺘﻪ ﺷﺪهاﻧﺪ .ﻧﻮﺷﺘﻦ اﺳﻤﺒﻠﯽ اﯾﻦ ﺗﻮاﺑﻊ ﺑﺎﻋﺚ ﺷﺪه ﮐﻪ آﻧﻬﺎ
ﮐﺎﻣﻼ ﺑﻬﯿﻨﻪ ﺑﻮده و ﺑﺎ اﺳﺘﻔﺎده از ﺣﺪاﮐﺜﺮ ﻗﺎﺑﻠﯿﺘﻬﺎي ﺳﺨﺖاﻓﺰاري ﻫﺮ ﭘﺮدازﻧﺪه DSPدر ﺣﺪاﻗﻞ زﻣﺎن ﻣﻤﮑﻦ ،ﭘﺮدازش ﻣﻮرد ﻧﻈﺮ را
ﺑﻪ اﻧﺠﺎم رﺳﺎﻧﻨﺪ .ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾﻨﮑﻪ اﯾﻦ اﻟﮕﻮرﯾﺘﻢﻫﺎ ﺗﻮﺳﻂ ﻃﺮاﺣﺎن ﺣﺮﻓﻪاي ﭘﯿﺎدهﺳﺎزي ﺷﺪهاﻧﺪ ،اﺳﺘﻔﺎده از آﻧﻬﺎ در ﮐﺎرﺑﺮدﻫﺎي
ﻣﺨﺘﻠﻒ ﺑﺴﯿﺎر ﻋﺎﻗﻼﻧﻪ اﺳﺖ .در اداﻣﻪ اﯾﻦ ﻓﺼﻞ ﺑﻪ ﻧﮑﺎﺗﯽ ﮐﻪ ﺑﺮاي ﺷﺮوع ﮐﺎر ﭘﺮدازش ﺗﺼﻮﯾﺮ ﺑﺎ CCSﻧﯿﺎز اﺳﺖ ﭘﺮداﺧﺘﻪ
ﺧﻮاﻫﺪ ﺷﺪ .1
اﺑﺘﺪا ﯾﮏ ﭘﺮوژه ﺟﺪﯾﺪ اﯾﺠﺎد ﮐﻨﯿﺪ .ﺑﺮاي اﯾﻦ ﮐﻪ ﺑﺘﻮاﻧﯿﺪ از اﯾﻦ ﮐﺘﺎﺑﺨﺎﻧﻪ اﺳﺘﻔﺎده ﮐﻨﯿﺪ ،ﺑﺎﯾﺪ ﮐﺘﺎﺑﺨﺎﻧﻪ ﻣﺮﺑﻮﻃﻪ را ﺑﻪ ﭘﺮوژه
ﺧﻮد اﺿﺎﻓﻪ ﮐﻨﯿﺪ و ﻓﺎﯾﻞﻫﺎي ﻣﻨﺎﺳﺐ را includeﮐﻨﯿﺪ .ﺑﺮاي اﯾﻦ ﻣﻨﻈﻮر ﻣﺎﻧﻨﺪ آزﻣﺎﯾﺶ ﻗﺒﻞ ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺗﺼﻮﯾﺮ را ﮐﻪ در
آدرس
C:\ti\c5500\imglib\55ximagex.lib
ﻣﻮﺟﻮد ﻣﯽﺑﺎﺷﺪ را در Propertiesﭘﺮوژه در ﻗﺴﻤﺖ
Build > C5500 Linker > File Search Path
وارد ﮐﻨﯿﺪ.
____________________________________________________________________
1اﯾﻦ ﻣﻘﺪﻣﻪ از ﻓﺼﻞ 11ﮐﺘﺎب ﻣﺮﺟﻊ ﮐﺎﻣﻞ ﭘﺮدازﻧﺪهﻫﺎي DSPﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ.
65 آزﻣﺎﯾﺸﮕﺎه DSP دﺳﺘﻮرﮐﺎر ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
#define WIDTH 96
#define HEIGHT 96
short img[96][96];
int * RGB_RAM;
void main( )
{
int i,j,k=0;
RGB_RAM = (int * ) 0x40D000;
short rows, cols;
short threshold_value;
for(i=0;i<96;i++)
for(j=0;j<96;j++)
{
img[i][j]=i*2;
}
threshold_value = 96;
cols = WIDTH;
rows = HEIGHT;
k=0;
for(i=0;i<96;i++)
for(j=0;j<96;j++)
{
RGB_RAM[k]= img[i][j]>>3;
k=k+1;
}
IMG_threshold(&img[0][0],&img[0][0],cols,rows,threshold_value
);
k=0;
for(i=0;i<96;i++)
for(j=0;j<96;j++)
{
RGB_RAM[k]= img[i][j]>>3;
k=k+1;
}
}
ﻧﺤﻮه ﮐﺎر. ﮐﻪ ﻣﺮﺑﻮط ﺑﻪ ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺗﺼﻮﯾﺮ ﻣﯽﺑﺎﺷﺪ اﺳﺘﻔﺎده ﺷﺪه اﺳﺖIMG_threshold در اﯾﻦ ﺑﺮﻧﺎﻣﻪ از ﺗﺎﺑﻊ
(threshold_value = 96) ﺗﺎﺑﻊ ﺑﻪ اﯾﻦ ﺻﻮرت ﻣﯽﺑﺎﺷﺪ ﮐﻪ اﮔﺮ ﭘﯿﮑﺴﻞﻫﺎي ﺗﺼﻮﯾﺮ ﮐﻮﭼﮏﺗﺮ از ﯾﮏ ﻣﻘﺪار از ﭘﯿﺶ ﺗﻌﯿﯿﻦ ﺷﺪه
.ﺑﺎﺷﻨﺪ را ﺻﻔﺮ ﻣﯽﮐﻨﺪ
. ﮐﻨﯿﺪRun وBuild ﺑﺮﻧﺎﻣﻪ را
67 آزﻣﺎﯾﺸﮕﺎه DSP دﺳﺘﻮرﮐﺎر ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﺑﺎ اﺳﺘﻔﺎده از ﮐﻠﯿﮏﻫﺎي 1ﯾﺎ 2ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ ﺑﺮد را در ﺣﺎﻟﺖ ﮔﺮاﻓﯿﮏ ﻗﺮار دﻫﯿﺪ .در ﺧﻂ 33ﺑﺮﻧﺎﻣﻪ ﮐﻨﺎر دﺳﺘﻮر
Break Point ،IMG_thresholdﻗﺮار دﻫﯿﺪ:
ﺑﺮﻧﺎﻣﻪ را ﺗﺎ ﺧﻂ 33اﺟﺮا ﮐﻨﯿﺪ .ﺗﺼﻮﯾﺮ را در ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ ﺑﺮد ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ .دوﺑﺎره ﺑﺮﻧﺎﻣﻪ را اﺟﺮا ﮐﻨﯿﺪ .ﺑﻪ ﺻﻔﺤﻪ ﺑﺮد
ﻧﮕﺎه ﮐﻨﯿﺪ.
ﻫﻤﺎن ﻃﻮر ﮐﻪ ﻣﺸﺎﻫﺪه ﻣﯽﮐﻨﯿﺪ ،ﺗﺎﺑﻊ ،IMG_thresholdﭘﯿﮑﺴﻞﻫﺎي ﺗﺼﻮﯾﺮ را اﮔﺮ از ﯾﮏ ﻣﻘﺪار ﻣﺸﺨﺼﯽ ﮐﻢﺗﺮ ﺑﺎﺷﻨﺪ را
ﺻﻔﺮ ﻣﯽﮐﻨﺪ.
ﺗﻤﺮﯾﻦ :ﺑﺮﻧﺎﻣﻪ ﻓﯿﻠﺘﺮ ﺗﺼﻮﯾﺮ
ﯾﮏ ﭘﺮوژه ﺟﺪﯾﺪ ﺑﻪ ﻧﺎم imgfilter.cاﯾﺠﺎد ﻧﻤﺎﯾﯿﺪ .ﻫﺪف از اﯾﻦ ﭘﺮوژه ﭘﯿﺎده ﺳﺎزي ﮐﻪ ﻓﯿﻠﺘﺮ ﻣﯿﺎﻧﮕﯿﻦﮔﯿﺮ در DSPﻣﯽﺑﺎﺷﺪ.
ﯾﮏ ﻓﺎﯾﻞ ﺟﺪﯾﺪ ﺑﻪ ﻧﺎم imfilter.cاﯾﺠﺎد ﮐﻨﯿﺪ و ﺑﺮﻧﺎﻣﻪ زﯾﺮ را در آن وارد ﻧﻤﺎﯾﯿﺪ:
void imfilter(int x[96][96],int y[96][96],int mask[3][3],int
)WIDTH,int HEIGHT
{
;int i,j,n,m
)for(i=0;i<WIDTH;i++
)for(j=0;j<HEIGHT;j++
;y[i][j]=0
)for(i=1;i<HEIGHT-1;i++
)for(j=1;j<WIDTH-1;j++
)for(m=-1;m<=+1;m++
)for(n=-1;n<=+1;n++
;]y[i-1][j-1] += x[i+m][j+n]*mask[1+m][1+n
}
اﯾﻦ ﺑﺮﻧﺎﻣﻪ ﯾﮏ ﻣﺎﺳﮏ 3×3را ﺑﻪ ﺗﺼﻮﯾﺮ اﻋﻤﺎل ﻣﯽﮐﻨﺪ .در واﻗﻊ ﺑﻪ ﺻﻮرت ﯾﮏ ﻓﯿﻠﺘﺮ ﭘﺎﯾﯿﻦ ﮔﺬر ﻋﻤﻞ ﻣﯽﮐﻨﺪ و ﺗﺼﻮﯾﺮ ﻧﻬﺎﯾﯽ را
ﻧﺴﺒﺖ ﺑﻪ ﺗﺼﻮﯾﺮ اوﻟﯿﻪ ﺗﺎر ﻣﯽﮐﻨﺪ .در ﻓﺎﯾﻞ main.cﺑﺮﻧﺎﻣﻪ زﯾﺮ را ﺗﺎﯾﭗ ﮐﻨﯿﺪ:
extern void imfilter(int [96][96],int [96][96],int
;)[3][3],int,int
68 آﺷﻨﺎﯾﯽ ﺑﺎ ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺗﺼﻮﯾﺮ:4 آزﻣﺎﯾﺶ ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
#include "imagesample.h"
int WIDTH = 96;
int HEIGHT = 96;
#pragma DATA_SECTION( x, ".imgin")
int x[96][96];
#pragma DATA_SECTION( y, ".imgout")
int y[96][96];
int * RGB_RAM;
void main(void) {
unsigned int i,j,k;
RGB_RAM = (int * ) 0x40D000;
//for(i=0;i<96;i++)
// for(j=0;j<96;j++)
// x[i][j]=10;
for(i=0;i<96;i++)
for(j=0;j<96;j++)
x[i][j]=(unsigned char)goldhill[i][j]/9;
k=0;
for(i=0;i<96;i++)
for(j=0;j<96;j++)
{
//output[i][j]=output[i][j]>>8;
RGB_RAM[k]= x[i][j];
k=k+1;
}
while(1)
{
imfilter(x,y,mask,96,96);
k=0;
for(i=0;i<96;i++)
for(j=0;j<96;j++)
{
//output[i][j]=output[i][j]>>8;
RGB_RAM[k]= y[i][j]>>3;
k=k+1;
}
for(i=0;i<96;i++)
for(j=0;j<96;j++)
{
x[i][j]=y[i][j]/9;
}
}
}
69 DSP آزﻣﺎﯾﺸﮕﺎه دﺳﺘﻮرﮐﺎر ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
: اﯾﺠﺎد ﮐﻨﯿﺪ و ﺑﺮﻧﺎﻣﻪ زﯾﺮ را در آن ﺗﺎﯾﭗ ﻧﻤﺎﯾﯿﺪDSP_PRO_5509A.cmd ﯾﮏ ﻓﺎﯾﻞ ﺟﺪﯾﺪ ﺑﻪ ﻧﺎم
MEMORY
{
PAGE 0:
SECTIONS
{
.text :{}> DRAM1 PAGE 0
.imgin :{} > SRAM2 PAGE 0
.imgout :{} > SRAM3 PAGE 0
lily : {} > SRAM1 PAGE 0
}
ﺑﺮﻧﺎﻣﻪ را.ﭘﺮوژه ﮐﭙﯽ ﮐﻨﯿﺪ ﻗﺮار دارد را در ﭘﻮﺷﻪC:\ti\c5500\imglib\include را ﮐﻪ در ﭘﻮﺷﻪimagesample.h ﻓﺎﯾﻞ
Break Point ﯾﮏimfilter ﺑﺮﻧﺎﻣﻪ ﮐﻨﺎر ﺗﺎﺑﻊ32 در ﺧﻂ. ﺑﺮد را در ﺣﺎﻟﺖ ﮔﺮاﻓﯿﮏ ﻗﺮار دﻫﯿﺪLCD . ﮐﻨﯿﺪRun وBuild
.ﻗﺮار دﻫﯿﺪ
ﺑﺮﻧﺎﻣﻪ را اﺟﺮا ﮐﻨﯿﺪ ﺗﺼﻮﯾﺮ اﺻﻠﯽ را در ﺑﺮد ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ .دوﺑﺎره ﺑﺮﻧﺎﻣﻪ را اﺟﺮا ﮐﻨﯿﺪ .ﻫﺮ ﺑﺎر ﮐﻪ ﺑﺮﻧﺎﻣﻪ را اﺟﺮا ﻣﯽﮐﻨﯿﺪ ﺗﺼﻮﯾﺮ
روي ﺑﺮد ﺗﺎرﺗﺮ ﻣﯽﺷﻮد.
ﺗﻤﺮﯾﻦ :ﻣﺎﺳﮏ را ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻐﯿﯿﺮ دﻫﯿﺪ
int mask[3][3]={1,-1,1,-1,1,-1,1,-1,1}; //3x3 mask
ﺑﺮﻧﺎﻣﻪ را Buildو Runﮐﻨﯿﺪ .ﻣﺎﻧﻨﺪ ﻗﺴﻤﺖ ﻗﺒﻞ ﻋﻤﻞ ﮐﻨﯿﺪ .ﺗﺼﻮﯾﺮ ﭼﻪ ﺗﻔﺎوﺗﯽ ﻣﯽﮐﻨﺪ.
آزﻣﺎﯾﺶ :5
ﻓﯿﻠﺘﺮ FIR
(1ﻣﻘﺪﻣﻪ
ﻫﺪف از اﻧﺠﺎم اﯾﻦ آزﻣﺎﯾﺶ آﺷﻨﺎﯾﯽ ﺑﺎ ﻧﺤﻮه ﭘﯿﺎده ﺳﺎزي ﯾﮏ ﻓﯿﻠﺘﺮ ﭘﺎﯾﯿﻦ ﮔﺬر روي ﭘﺮدازﻧﺪه DSPﻣﯽﺑﺎﺷﺪ .در اﯾﻦ
آزﻣﺎﯾﺶ ﺳﯿﮕﻨﺎل ورودي ﮐﻪ ﺷﺎﻣﻞ ﻣﺠﻤﻮع ﺳﻪ ﺷﮑﻞ ﻣﻮج ﺳﯿﻨﻮﺳﯽ ﺑﺎ ﻓﺮﮐﺎﻧﺲﻫﺎي ﻣﺨﺘﻠﻒ ﻣﯽﺑﺎﺷﺪ از ﻓﺎﯾﻞ ورودي ﺧﻮاﻧﺪه
ﻣﯽﺷﻮد و ﺳﭙﺲ ﯾﮏ ﻓﯿﻠﺘﺮ ﭘﺎﯾﯿﻦ ﮔﺬر روي آن اﻋﻤﺎل ﻣﯽﺷﻮد .و در ﻧﻬﺎﯾﺖ ﯾﮑﯽ از ﺷﮑﻞ ﻣﻮجﻫﺎي ﺳﯿﻨﻮﺳﯽ ﺑﻪ ﺧﺮوﺟﯽ
ﻓﺮﺳﺘﺎده ﻣﯽﺷﻮد.
(2اﻧﺠﺎم آزﻣﺎﯾﺶ
ﯾﮏ ﭘﺮوژهي ﺟﺪﯾﺪ اﯾﺠﺎد ﮐﻨﯿﺪ و ﮐﺘﺎﺑﺨﺎﻧﻪي ﭘﺮدازش ﺳﯿﮕﻨﺎل را ﺑﻪ ﭘﺮوژه اﺿﺎﻓﻪ ﮐﻨﯿﺪ و ﻓﺎﯾﻞﻫﺎي ﻣﻨﺎﺳﺐ را includeﮐﻨﯿﺪ
)ﺑﻪ آزﻣﺎﯾﺶ آﺷﻨﺎﯾﯽ ﺑﻪ ﮐﺘﺎﺑﺨﺎﻧﻪي ﭘﺮدازش ﺳﯿﮕﻨﺎل ﻣﺮاﺟﻌﻪ ﮐﻨﯿﺪ(.
ﺑﺮﻧﺎﻣﻪي زﯾﺮ را در main.cﺑﻨﻮﯾﺴﯿﺪ:
>#include <math.h
>#include <tms320.h
>#include <dsplib.h
-278,-497,-291,52,240,191,26,-93,-100,-35,27,46,28,-6};
DATA x[NX];
DATA r[NX];
DATA db[NH+2];
DATA *dbptr = &db[0];
int *D2A;
int *FIFO_d2a;
int fifo_status;
void main()
{
unsigned int i,j;
D2A= (int * ) 0x400002;
FIFO_d2a= (int*) 0x40000A;
// clear
for (i=0; i<NX; i++) r[i] = 0; // clear output buffer (optional)
for (i=0; i<NH+2; i++) db[i] = 0; // clear delay buffer (a must)
for (;;)
{
fifo_status=*FIFO_d2a;
if((fifo_status &(0x20)) != 0)
{
for (i=0; i<NX; i++)
{
x[i]=input[j++]; /* Get a buffer of samples */
*D2A=x[i];
if (j == 160)
j=0;
}
}
// compute
fir(x, LP_h, r, dbptr, NX, NH);
fifo_status=*FIFO_d2a;
if((fifo_status &(0x20)) != 0)
for (i=0; i<NX; i++)
*D2A=r[i];
}
}
74 FIR ﻓﯿﻠﺘﺮ:5 آزﻣﺎﯾﺶ ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﮐﻪ در اداﻣﻪ آوردهsignal.gen.c ﮔﺮﻓﺘﻪ ﻣﯿﺸﻮد اﯾﻦ ﻓﺎﯾﻞ ﺗﻮﺳﻂ ﺑﺮﻧﺎﻣﻪinput.dat ازﻓﺎﯾﻞinput در اﯾﻦ ﺑﺮﻧﺎﻣﻪ ورودي
ﺳﺎﺧﺘﻪ3300 Hz و1800 Hz ،800 Hz ﺟﻤﻊ ﺳﻪ ﻣﻮج ﺳﯿﻨﻮﺳﯽ ﺑﺎ ﻓﺮﮐﺎﻧﺲﻫﺎيinput ورودي. ﺷﺪه اﺳﺖ ﺗﻮﻟﯿﺪ ﻣﯿﺸﻮد
ﮐﻪ در ﭘﻮﺷﻪ ﻣﻮﺟﻮد ﻣﯽ ﺑﺎﺷﺪ را در ﭘﺮوژهinput ﻓﺎﯾﻞ. در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ8000 Hz ﻓﺮﮐﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري.ﺷﺪه اﺳﺖ
:ﮐﭙﯽ ﮐﻨﯿﺪ ﺗﺎ ﺑﻪ ﭘﺮوژه اﺿﺎﻓﻪ ﺷﻮد
/*
signal_gen.c - Generate sine waves as test data
ﺿﺮاﯾﺐ ﻓﯿﻠﺘﺮ ﮐﻪ در ﻣﺘﻐﯿﯿﺮ ] LP_h[NHﻗﺮار دارﻧﺪ ﻣﺮﺑﻮط ﺑﻪ ﯾﮏ ﻓﯿﻠﺘﺮ ﭘﺎﯾﯿﻦ ﮔﺬر ﻣﯽﺑﺎﺷﻨﺪ.
ﭘﺮوژه را Buildﮐﻨﯿﺪ ﺗﺎ وارد ﺻﻔﺤﻪ ccs debugﺷﻮﯾﺪ.
ﺑﺎ اﯾﻦ ﺗﻨﻈﯿﻤﺎت ﺷﮑﻞ ﻣﻮج ورودي ﻧﺸﺎن داده ﻣﯽﺷﻮد .ﺑﺮاي دﯾﺪن ﺷﮑﻞ ﻣﻮج ﺧﺮوﺟﯽ ،ﻫﻤﯿﻦ ﮐﺎر را ﯾﮏ ﺑﺎر دﯾﮕﺮ اﻧﺠﺎم
دﻫﯿﺪ .اﯾﻦ ﺑﺎر ﺑﻪ ﺟﺎي &r ،&xرا وارد ﮐﻨﯿﺪ.
اﮐﻨﻮن ﺑﺮاي اﯾﻦ ﮐﻪ ﻓﺮﮐﺎﻧﺲ ﻣﻮج ﺧﺮوﺟﯽ را ﺑﺒﯿﻨﯿﺪ اﯾﻦ ﺑﺎر ﺑﻪ ﺟﺎي &r ،&xرا وارد ﮐﻨﯿﺪ .در ﺧﻂ 51ﺑﺮﻧﺎﻣﻪ ﭘﺎﯾﯿﻦ دﺳﺘﻮر
;) fir(x, LP_h, r, dbptr, NX, NHﯾﮏ Break Pointوارد ﮐﻨﯿﺪ.
77 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه :DSPراﻫﻨﻤﺎي اﺳﺘﺎد ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﺗﻮﺿﯿﺢ :
: Xﺳﯿﮕﻨﺎل ورودي و ﺷﺎﻣﻞ 3ﻓﺮﮐﺎﻧﺲ ﻣﯽ ﺑﺎﺷﺪ.
: rﺳﯿﮕﻨﺎل ﺧﺮوﺟﯽ و ﺷﺎﻣﻞ ﯾﮏ ﻓﺮﮐﺎﻧﺲ ﻣﯽ ﺑﺎﺷﺪ.
78 آزﻣﺎﯾﺶ :5ﻓﯿﻠﺘﺮ FIR ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﺗﺎﺑﻊ ﻓﯿﻠﺘﺮ FIRﯾﮏ ﻓﯿﻠﺘﺮ ﭘﯿﯿﻦ ﮔﺬر ﻣﯽ ﺑﺎﺷﺪ و ﻓﻘﻂ ﻓﺮﮐﺎﻧﺲ 800 HZﺳﯿﮕﻨﺎل ورودي را ﻧﮕﻪ ﻣﯽ دارد و ﺑﻘﯿﻪ ﻓﺮﮐﺎﻧﺲ
ﻫﺎ را ﺣﺬف ﻣﯽ ﮐﻨﺪ ،ﺳﯿﮕﻨﺎل ﺧﺮوﺟﯽ ﻓﻘﻂ ﺷﺎﻣﻞ ﯾﮏ ﻓﺮﮐﺎﻧﺲ ﻣﯽ ﺑﺎﺷﺪ ﺑﺮاي ﻫﻤﯿﻦ ﯾﮏ ﻣﻮج ﺳﯿﻨﻮﺳﯽ در ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ داده
ﻣﯽﺷﻮد.
ﺗﻤﺮﯾﻦ :ﯾﮏ ﻣﻮج ﻣﺮﺑﻌﯽ ﺑﺎ ﻓﺮﮐﺎﻧﺲ 1 KHzﺑﻪ ورودي A/Dوﺻﻞ ﮐﻨﯿﺪ .ﯾﮏ ﻓﯿﻠﺘﺮ FIRﺑﺎ ﻣﺘﻠﺐ ﻃﻮري ﻃﺮاﺣﯽ ﮐﻨﯿﺪ ﮐﻪ
ﻓﺮﮐﺎﻧﺲﻫﺎي ﺑﯿﺶﺗﺮ از 500ﻫﺮﺗﺰ را ﺣﺬف ﮐﻨﺪ.
ﺗﻤﺮﯾﻦ :ﯾﮏ ﻣﻮج ﻣﺮﺑﻌﯽ ﺑﺎ ﻓﺮﮐﺎﻧﺲ 1 KHzﺑﻪ ورودي A/Dوﺻﻞ ﮐﻨﯿﺪ .ﯾﮏ ﻓﯿﻠﺘﺮ FIRﺑﺎ ﻣﺘﻠﺐ ﻃﻮري ﻃﺮاﺣﯽ ﮐﻨﯿﺪ ﮐﻪ
ﻓﺮﮐﺎﻧﺲﻫﺎي ﮐﻢﺗﺮ از 500ﻫﺮﺗﺰ را ﺣﺬف ﮐﻨﺪ.
آزﻣﺎﯾﺶ :6
ﺗﺒﺪﯾﻞ ﻓﻮرﯾﻪ ﺳﺮﯾﻊ FFT
(1ﻣﻘﺪﻣﻪ
1
ﻫﺪف از اﯾﻦ آزﻣﺎﯾﺶ ﭘﯿﺎده ﺳﺎزي ﺗﺒﺪﯾﻞ ﻓﻮرﯾﻪ ﺳﺮﯾﻊ FFTروي ﭘﺮدازﻧﺪه DSPﺑﺎ اﺳﺘﻔﺎده از ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺳﯿﮕﻨﺎل
ﻣﯽﺑﺎﺷﺪ.
ﺑﺮاي ﻧﺤﻮه اﺳﺘﻔﺎده از ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺳﯿﮕﻨﺎل و اﺿﺎﻓﻪ ﮐﺮدن ﻓﺎﯾﻞ ﻫﺎي ﻣﺮﺑﻮﻃﻪ ﺑﻪ آزﻣﺎﯾﺶ 3ﻣﺮاﺟﻌﻪ ﮐﻨﯿﺪ.
ﺿﺮب ﻣﺨﺘﻠﻂ ﻣﺸﮑﻞ ﻣﻮﺟﻮد در اﯾﻦ روش اﯾﻨﺴﺖ ﮐﻪ ﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﮐﺮدن nﻧﻤﻮﻧﻪ از ) x(kﮐﻪ k=0,1,…,n-1ﺗﻘﺮﯾﺒﺂ
ﺟﻤﻊ ﻣﺨﺘﻠﻂ ﻧﯿﺎز ﻫﺴﺘﻨﺪ. -n
ﻣﺤﺎﺳﺒﻪ ﯾﮏ ﺿﺮب ﻣﺨﺘﻠﻂ در ﺳﺨﺖ اﻓﺰارﻫﺎي دﯾﺠﯿﺘﺎﻟﯽ ﻣﺴﺘﻠﺰم 4ﺿﺮب ﺣﻘﯿﻘﯽ و 2ﺟﻤﻊ ﺣﻘﯿﻘﯽ اﺳﺖ ﺑﻨﺎﺑﺮاﯾﻦ ﺗﻌﺪاد
ﻋﻤﻠﯿﺎت ﻣﻮرد ﻧﯿﺎز ﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﮐﺮدن ﯾﮏ DFTﺑﺮاﺑﺮ ﺑﺎ × 4ﻣﯽ ﺑﺎﺷﺪ ﮐﻪ اﯾﻦ ﺑﺮاي ﯾﮏ Nﺧﯿﻠﯽ ﺑﺰرگ ﺧﯿﻠﯽ زﯾﺎد ﻣﯽﺷﻮد.
ﻫﺎ ﻣﺴﺘﻠﺰم ﻋﻤﻠﯿﺎت ﺳﻨﮕﯿﻨﯽ اﺳﺖ . ﺑﺮاي ﻣﻘﺎدﯾﺮ ﺑﺰرﮔﯽ از Nﻣﺤﺎﺳﺒﻪ و ذﺧﯿﺮه ﮐﺮدن
ﭼﻨﺪﯾﻦ دﻓﻌﻪ ﻣﺤﺎﺳﺒﻪ ﻣﯽ ﺷﻮﻧﺪ .ﺑﺮاي ﯾﮏ ﺗﺎﺑﻊ ﻣﺘﻨﺎوب اﺳﺖ در ﻫﻨﮕﺎم ﻣﺤﺎﺳﺒﻪ DFTﻣﻘﺎدﯾﺮ ﯾﮑﺴﺎﻧﯽ از ﭼﻮن
ﻣﻘﺎدﯾﺮ ﯾﮑﺴﺎﻧﯽ دارﻧﺪ ﻣﺜﺎل ﭼﻨﺎﻧﮑﻪ در ﺷﮑﻞ 1ﺑﺮاي N=8ﻧﺸﺎن داده ﺷﺪه اﺳﺖ ﺗﻮانﻫﺎي ﻣﺨﺘﻠﻔﯽ از
____________________________________________________________________
1
Fast Fourier Transform
81 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه :DSPراﻫﻨﻤﺎي اﺳﺘﺎد ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﻋﻼوه ﺑﺮ اﯾﻦ ﺑﻌﻀﯽ w iﻫﺎ ﺑﺨﺸﻬﺎي ﺣﻘﯿﻘﯽ و ﻣﻮﻫﻮﻣﯽ دارﻧﺪ ﮐﻪ ﻣﺴﺎوي ﺑﺎ 1ﯾﺎ 0ﻫﺴﺘﻨﺪ .ﺑﺮاي ﮐﺎﻫﺶ اﯾﻦ ﺗﮑﺮارﻫﺎي
اﺿﺎﻓﯽ ﯾﮏ اﻟﮕﻮرﯾﺘﻢ ﻣﻮﺛﺮ ﺑﻪ ﻧﺎم FFTوﺟﻮد دارد.
ﻋﻤﻠﯿﺎت ﻣﺤﺎﺳﺒﻪ ﮐﻨﺪ. nﻋﻤﻠﯿﺎت ﺑﺠﺎي اﮔﺮ Nﺗﻮاﻧﯽ از 2ﺑﺎﺷﺪ FFTﻣﯽﺗﻮاﻧﺪ ﯾﮏ DFTرا ﺑﺎ
ﻋﻤﻠﯿﺎت ﻣﯽﺑﺎﺷﺪ در ﺣﺎﻟﯽ ﮐﻪ اﮔﺮ از DFTاﺳﺘﻔﺎده ﮐﻨﯿﻢ ﺑﺮاي ﻣﺜﺎل اﮔﺮ n=1024ﺑﺎﺷﺪ FFTﻧﯿﺎزﻣﻨﺪ ﺣﺪود
ﻋﻤﻠﯿﺎت ﺑﺎﯾﺪ روي ﺳﯿﮕﻨﺎل اﻧﺠﺎم ﺷﻮد .
ﺗﻌﺪاد زﯾﺎدي اﻟﮕﻮرﯾﺘﻢ ﺑﺮاي ﻣﺤﺎﺳﺒﻪ FFTﯾﮏ ﺳﯿﮕﻨﺎل وﺟﻮد دارد ﮐﻪ ﻫﺮ ﮐﺪام ﻣﺰﯾﺖ ﻫﺎ و ﻣﻌﺎﯾﺐ ﺧﻮد را دارﻧﺪ .اﺧﺘﻼﻓﯽ
ﮐﻪ در ﺑﯿﻦ اﯾﻦ اﻟﮕﻮرﯾﺘﻢ ﻫﺎ وﺟﻮد دارد در ﭘﯿﭽﯿﺪﮔﯽ ﮐﺪﻫﺎ و اﺳﺘﻔﺎده از ﺣﺎﻓﻈﻪ و ﻣﺤﺎﺳﺒﺎت رﯾﺎﺿﯽ ﻣﯽ ﺑﺎﺷﻨﺪ .
N LOGﺿﺮب ﻧﯿﺎز دارد ﮐﻪ N اﻟﮕﻮرﯾﺘﻢﻫﺎي FFTﮐﻪ اوﻟﯿﻦ ﺑﺎر ﺗﻮﺳﻂ COOLYو TUKYﻣﻌﺮﻓﯽ ﺷﺪه ﮐﻪ ﺗﻘﺮﯾﺒﺂ ﺑﻪ
ﺗﻮاﻧﯽ از 2اﺳﺖ ﻫﻤﭽﻨﯿﻦ FFTدر ﻣﻮاردي ﮐﻪ Nﺗﻮاﻧﯽ از ﯾﮏ ﻋﺪد ﺻﺤﯿﺢ ﺑﻐﯿﺮ از 2اﺳﺖ ﻧﯿﺰ ﮐﺎر ﺑﺮد دارد .
دو ﻧﻮع ﻣﺨﺘﻠﻒ از اﻟﮕﻮرﯾﺘﻢ FFTوﺟﻮد دارد :در ﺣﻮزه زﻣﺎن و در ﺣﻮزه ﻓﺮﮐﺎﻧﺲ .در اداﻣﻪ ﺑﻪ ﺗﻮﺿﯿﺢ اﻟﮕﻮرﯾﺘﻢ FFTدر ﺣﻮزهي زﻣﺎن
ﻣﯽﭘﺮدازﯾﻢ.
در اﯾﻦ اﻟﮑﻮرﯾﺘﻢ ﺳﯿﮕﻨﺎل ورودي در ﺣﻮزه زﻣﺎن ﺑﻪ ﭼﻨﺪ ﺑﺨﺶ ﺗﻘﺴﯿﻢ ﻣﯽ ﺷﻮد .ﺳﭙﺲ DFTدر ﻫﺮ ﺑﺨﺶ ﺑﻄﻮر ﺟﺪاﮔﺎﻧﻪ ﻣﺤﺎﺳﺒﻪ
ﻣﯽ ﺷﻮد ﺑﺎ ﺗﺮﮐﯿﺐ اﯾﻦ DFTﻫﺎ DFTﺳﯿﮕﻨﺎل اﺻﻠﯽ ﺑﺎ ﻋﻤﻠﯿﺎت رﯾﺎﺿﯽ ﮐﻤﺘﺮ ﺑﺪﺳﺖ ﻣﯽ آﯾﺪ ﭼﻮن در اﯾﻦ اﻟﮕﻮرﯾﺘﻢ ﺑﺎ ﺷﮑﺴﺘﻦ ﺳﯿﮕﻨﺎل
در ﺣﻮزه زﻣﺎن ﺑﻪ ﻣﺤﺎﺳﺒﻪ DFTﻣﯽ ﭘﺮدازﯾﻢ ﺑﻪ اﯾﻦ ﺣﺎﻟﺖ DFTدر ﺣﻮزه زﻣﺎن ﮔﻔﺘﻪ ﻣﯽ ﺷﻮد .ﺑﻄﻮر ﻣﺸﺎﺑﻪ در اﻟﮕﻮرﯾﺘﻢ FFTدر ﺣﻮزه
ﻓﺮﮐﺎﻧﺲ ﻣﻘﺎدﯾﺮ ﺳﯿﮕﻨﺎل در ﺣﻮزه ي ﻓﺮﮐﺎﻧﺲ ﺑﻪ ﺑﺎزه ﻫﺎي ﮐﻮﭼﮑﺘﺮ ﺗﻘﺴﯿﻢ ﻣﯽ ﺷﻮد .
در اﻟﮕﻮرﯾﺘﻢ ﻫﺎي ﺣﻮزه زﻣﺎﻧﯽ Nﻧﻤﻮﻧﻪ از ﺳﯿﮕﻨﺎل ورودي } {X(n),n=0,1,……,N-1ﺑﻪ 2رﺷﺘﻪ ﺑﺎ ﻃﻮل N/2ﺗﻘﺴﯿﻢ ﻣﯽ
ﺷﻮﻧﺪ :
رﺷﺘﻪ اﻋﺪاد زوج :
)(2
82 آزﻣﺎﯾﺶ :6ﺗﺒﺪﯾﻞ ﻓﻮرﯾﻪ ﺳﺮﯾﻊ FFT ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
)(3
)(4
اﯾﻦ راﺑﻄﻪ را ﻣﯽ ﺗﻮان ﺑﻪ دو DFTدﯾﮕﺮ ﺑﺎ ﻃﻮل N/2ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻘﺴﯿﻢ ﮐﺮد.
)(5
ﭼﻮن دارﯾﻢ :
)(6
)(7
ﮐﻪ ﻫﺮ ﻣﺠﻤﻮﻋﻪ ﺑﻪ N/2ﻧﻘﻄﻪ اي DFTﮐﺎﻫﺶ ﭘﯿﺪا ﻣﯽﮐﻨﺪ ﻋﻼوه ﺑﺮ اﯾﻦ ﻣﻌﺎدﻟﻪ ﻣﯽ ﺗﻮاﻧﺪ ﺑﺼﻮرت زﯾﺮ ﻧﻮﺷﺘﻪ ﺷﻮد :
)(8
[ (k)=DFTﻣﯽﺑﺎﺷﻨﺪ ﮐﻪ از N/2 DFTﻧﻘﻄﻪاي اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ. [ (k)=DFTو ])(m ﮐﻪ ])(m
ﺑﺮاي N=8اﯾﻦ ﭘﺮوﺳﻪ در ﺷﮑﻞ زﯾﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ :
83 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه :DSPراﻫﻨﻤﺎي اﺳﺘﺎد ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﮐﻪ ﻫﺮ ﮐﺪام از DFTﻫﺎي N/2ﻧﻘﻄﻪاي را ﻣﯽﺗﻮاﻧﯿﻢ ﻣﺎﻧﻨﺪ ﺷﮑﻞ زﯾﺮ ﺑﻪ DFTﻫﺎي N/4ﻧﻘﻄﻪ ﺑﺸﮑﻨﯿﻢ.
ﺑﺎ ﺗﮑﺮار اﯾﻦ روﻧﺪ در ﻧﻬﺎﯾﺖ ﭼﻮن Nﺗﻮاﻧﯽ از 2اﺳﺖ ﺑﻪ 2 DFTﻧﻘﻄﻪ اي ﻣﯽ رﺳﯿﻢ .ﺑﺮاي ﻣﺜﺎل در ﺷﮑﻞ ﻗﺒﻞ N/4 ،DFTﻧﻘﻄﻪ
ﻣﯽ ﺑﺎﺷﻨﺪ DFT،دو ﻧﻘﻄﻪاي ﻓﻘﻂ ﻫﺎي ﻃﺒﻘﻪ اول =1 اي ﺑﻪ دو 2 ،DFTﻧﻘﻄﻪ اي ﺗﺒﺪﯾﻞ ﻣﯽ ﺷﻮد ﭼﻮن در DFTدر ﻧﻘﻄﻪ اي
ﺑﻪ 1ﺟﻤﻊ و 1ﺗﻘﺴﯿﻢ ﻧﯿﺎز دارد .در ﺷﮑﻞ زﯾﺮ ﯾﮏ DFTدو ﻧﻘﻄﻪاي ﻧﺸﺎن داده ﺷﺪه اﺳﺖ :
ﻫﻤﺎن ﻃﻮر ﮐﻪ ﻣﺸﺎﻫﺪه ﻣﯽﮐﻨﯿﺪ ﺑﺪون ﻧﯿﺎز ﺑﻪ ﺿﺮب و ﺟﻤﻊ ﻣﺨﺘﻠﻂ ﻣﯽﺗﻮاﻧﯿﻢ DFTﯾﮏ ﺳﯿﮕﻨﺎل را ﻣﺤﺎﺳﺒﻪ ﮐﻨﯿﻢ.
(3اﻧﺠﺎم آزﻣﺎﯾﺶ
ﯾﮏ ﭘﺮوژه ﺟﺪﯾﺪ اﯾﺠﺎد ﮐﻨﯿﺪ و ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ آزﻣﺎﯾﺶ آﺷﻨﺎﯾﯽ ﺑﺎ ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺳﯿﮕﻨﺎل ﮐﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺳﯿﮕﻨﺎل و ﻓﺎﯾﻞ
includeﻣﻨﺎﺳﺐ را ﺑﻪ ﭘﺮوژه اﺿﺎﻓﻪ ﮐﻨﯿﺪ.
ﺑﺮﻧﺎﻣﻪ زﯾﺮ را در ﻓﺎﯾﻞ main.cوارد ﻧﻤﺎﯾﯿﺪ:
>#include <math.h
>#include <tms320.h
>#include <dsplib.h
>#include <math.h
#define pi 3.1415926535897f
#define NX 256
;]DATA x[NX
;int *D2A
;int *FIFO_d2a
;int fifo_status
;]int MAGx[NX/2
)(void main
{
;int i
)for (i=0;i<NX;i++
{
;x[i]=sin(2*pi*2000.0f/8000*i)*256
)// if(j==1664
// ;j=0
}
;)rfft(x,NX,SCALE
)for (i=0;i<NX/2-1;i++
;)]MAGx[i]= sqrt(x[2*i]*x[2*i]+x[2*i+1]*x[2*i+1
)while(1
{
;fifo_status=*FIFO_d2a
)if((fifo_status &(0x20))!=0
)for(i=0;i<256;i++
;]*D2A=x[i
}
}
85 دﺳﺘﻮر ﮐﺎر آزﻣﺎﯾﺸﮕﺎه :DSPراﻫﻨﻤﺎي اﺳﺘﺎد ارﺗﺒﺎﻃﺎت ﭘﯿﺸﺮو ﺧﺎورﻣﯿﺎﻧﻪ
ﺗﻮﺟﻪ :ﺣﺮف fﮐﻪ ﺟﻠﻮي دﺳﺘﻮر #define pi 3.1415926535897fﻗﺮار داده ﺷﺪه اﺳﺖ اول ﺣﺮف floatاﺳﺖ و ﺑﻪ
ﮐﺎﻣﭙﺎﯾﻠﺮ cﻣﯽﮔﻮﯾﺪ ﮐﻪ piرا ﺑﻪ ﺻﻮرت اﻋﺸﺎري در ﻧﻈﺮ ﺑﮕﯿﺮد ﺗﺎ ﺑﻪ ﺻﻮرت اﻋﺸﺎري در اﻋﺪاد دﯾﮕﺮ ﺿﺮب ﺷﻮد ،اﮔﺮ fﮔﺬاﺷﺘﻪ
ﻧﺸﻮد ﻋﺪد int ،piﯾﻌﻨﯽ 3در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﯽﺷﻮد.
ﯾﮏ ﻓﺎﯾﻞ ﺟﺪﯾﺪ ﺑﻪ ﻧﺎم DSP_PRO_5509A.cmdاﯾﺠﺎد ﮐﻨﯿﺪ و ﺑﺮﻧﺎﻣﻪ زﯾﺮ را در آن ﺗﺎﯾﭗ ﻧﻤﺎﯾﯿﺪ:
MEMORY
{
PAGE 0:
DARAM0:origin = 0000100h,length=0003F00h
DARAM1:origin = 0004000h,length=0004000h
DARAM2:origin = 0008000h,length=0004000h
DARAM3:origin = 000c000h,length=0004000h
SARAM0 : origin=0010000h,length= 0004000h
SARAM1 : origin=0014000h,length= 0004000h
SARAM2 : origin=0018000h,length= 0004000h
SARAM3 : origin=001c000h,length= 0004000h
}
SECTIONS
{
.text : {} > SARAM1 PAGE 0
).twiddle: {} > SARAM3 PAGE 0, align(2048
).input : {} > DARAM3 PAGE 0, align(4
/* this is due to long-word data memory access */
}
ﭘﺮوژه را Buildو Runﮐﻨﯿﺪ ﺗﺎ وارد ﺻﻔﺤﻪ دﯾﺒﺎگ ﺷﻮﯾﺪ )روي آﯾﮑﻮن ﺳﻮﺳﮏ ﮐﻠﯿﮏ ﮐﻨﯿﺪ( LCD .ﺑﺮد را در ﺣﺎﻟﺖ D/A
ﺗﻤﺮﯾﻦ :ﺑﻪ ورودي A/Dﺑﺮد ﯾﮏ ﻣﻮج ﺳﯿﻨﻮﺳﯽ ﺑﺎ ﻓﺮﮐﺎﻧﺲ 1 KHzوﺻﻞ ﮐﻨﯿﺪ .ﺑﺮﻧﺎﻣﻪ ﻗﺒﻞ را ﻃﻮري ﺗﻐﯿﯿﺮ دﻫﯿﺪ ﺗﺎ ورودي
را از A/Dﺑﺮد ﺑﺨﻮاﻧﺪ و FFTآن را روي ﺑﺮد ﻧﺸﺎن دﻫﯿﺪ.
ﺿﻤﻴﻤﻪ اﻟﻒ :اﻳﺠﺎد ﭘﺮوژه
در ﻧﺮماﻓﺰار CCS
workspﻧﺮماﻓﺰا ر CCS5.3
ﺷﻜﻞpace :1
ﺑﻌﺪ از وارد ﻛﺮدن آدرس ،رروي ﮔﺰﻳﻨﻪي OKﻛﻠﻴﻚ ﻛﻨﻴﺪ .اﻛﻨﻮن ﭘﻨﺠﺮه اﺻ
ﺻﻠﻲ ﻧﺮم اﻓﺰار ﺑﺎﺎز ﻣﻲ ﺷﻮد.
ط ﺑﻪ Use
اﺳﺖ ﺗﻴﻚ ﻣﺮﺑﻮط
ﻣﻲ ﺗﻮان ﺑﻪ دﻟﺨﻮﻮاه اﻧﺘﺨﺎب ﻧﻤﻮد وﻟﻲ ﺑﻬﺘﺮ ﺖ
ﻞ ذﺧﻴﺮه ﺳﺎزي ﭘﺮوژه ،را ﻲ
ﺠﺮه آدرس ﻣﺤﻞ
در اﻳﻦ ﭘﻨﺠ
DSPاز ﻳﻚ ﭘﺮداززﻧﺪه ﺑﺎ ﻧﺎم
workاﻳﺠﺎد ﮔﺮﺮدد .در ﻛﻴﻒ آزﻣﺎﻳﺸﮕﺎه D
Defaultt Locationرا زدهه ﺗﺎ ﭘﺮوژه در ددرون kspace
ﺖ .ﻫﻤﭽﻨﻴﻦ ﺑﺮﺮاي اﺗﺼﺎل ﺷﺮﻛﺖ ﺗﮕﺰاس اﻳﻨﺴﺘﺮﺮوﻣﻨﺖ ) ( www.ti.ccomاﺳ
ﺳﺘﻔﺎده ﺷﺪه اﺳﺖ ي 55xxﺖ
TMS3220C5509Aاز ﺳﺮي
JTAﻣﺮﺑﻮط ﺑﻪ ﺳﺮي XDS1100ver2اﺳﺘﻔﺎده ﺷﺷﺪه اﺳﺖ
DSPاز ﻳﻚ AG
ﻛﻴﻒ آزﻣﺎﻳﺸﮕﺎه P
ﻛﺎﻣﭙﻴﻮﺗﺮ و ﻧﺮم اﻓﺰار CCSﺑﻪ ﺑﺮد ،در ﻒ
ﻣﻲ ﮔﺮدد.
ﻣﺮﺣﻠﻪ ﻳﻚ ﭘﺮوژهي ﺟﺪﻳﺪ اﻳﺠﺎد ﻲ
ﻪ ﻛﻪ ﺑﺎﻳﺪ در ااﻳﻦ ﺻﻔﺤﻪ ﺑﻪ ددرﺳﺘﻲ وارد ﺷﻮد .در اﻳﻦ
(3اﺿﺎﻓﻪ ﻛﺮدن ggelﻓﺎﻳﻞ ﺑﺮد:
ﺷﻮد .اﮔﺮ از ﺷﺒﻴﻪﻪ ﺳﺎز CCS1اﺳ
ﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﺪ ،ﻧﻴﺎز ﺑﻪ اﻳﻦ ﻛﺎر ﻧﻤﻲﺑﺎﺷـﺪ اﻳﻦ ﻣﺮﺣﻠﻪ ﺑﺎﻳﺪ geelﻓﺎﻳﻞ ﻣﻨﺎﺳﺐ ﺑﻪ ﺑﺮد اﺿﺎﻓﻪ ﺷ
در ﻦ
ﺳﺮﻋﺖ ﭘﺮدازﻧﺪه ﺻـﻮرت ﻣـﻲ-
ﺖ ﻓﺮض ﻧﺮماﻓﺰار ﻣﻨﺎﺳﺳﺐ اﺳﺖ .اﺿﺎﻓﻓﻪ ﻛﺮدن gelﻓﺎﻳﻳﻞ ﺑﺮاي ﺗﻨﻈﻴﻢ ﺳﺳﺮﻋﺖ ﺑﺎس و اﻓﺰاﻳﺶ
و ﭘﻴﺶ ض
ﻓﺎﻳﻞ ﻣـﻲ ﺑﺎﺷـﺪ .ددر ﻧـﺮم اﻓـﺰار ﺑﺑـﺮاي ﻫـﺮ
ﮔﻴﺮد .در ﻫﻨﻨﮕﺎم اﺳﺘﻔﺎده از ﺑﺮدﻫﺎي DSPددر اﻛﺜﺮ ﻣﻮارد ﻧﻴﻴﺎز ﺑﻪ اﺿﺎﻓﻪ ﻛﺮددن ﻳﻚ gelﻞ
ﻫﺎي آﻣﺎده ،ﺑﻌﻀﺎ ﻧﻴﺎز اﺳﺖ ﻛﻪ geelﻓﺎﻳﻞ اﺳﺘﺎﻧﺪارد ﺑﺎ gel
ﺶ ﻓﺮض وﺟﻮد دارد اﻣﺎ ﻫﻨﮕﺎم اﺳﺘﻔﺎده از ﺑﺮدﻫﺎ
ﻳﻚ gelﻓﺎﻳﻞ ﭘﻴﺶ
ﭘﺮدازﻧﺪه ﻚ
( EVﺑﺎﻳـﺪ
ﺧﺎرﺟﻲ ) ﻧﻈﻴـﺮ اﻧـﻮاع DSKﻳـﺎ VM
ﻲ ﺷﺪه ﺗﻮﺳﻂ ﺷﺮﻛﻛﺖ ﺳﺎزﻧﺪه ﺑﺮد ﺗﻌﻮﻳﺾ ﮔﺮدد .در اﻛﺜﺮ ﺑﺮدﻫﺎي
ي آﻣﺎده ﻓﺎﻳﻞ اراﺋﻪ ﺷ
اﻧﺠﺎم ﭘﺬﻳﺮد.
اﻳﻨﻜﺎر م
_______________________________
________________________
___________
________
ﻋﻤﻠﻜﺮدﻫﺎي DSPﻫﺎ را ن
ﺑﺪون ﻧﻴﺎز ﺑﻪ ﺑﺮد واﻗﻌﻲ ﺗﺴﺖ ﻧﻤﻮد. ي ﻀﻲ از
ﻛﻤﻚ آﻧﻬﺎ ﻣﻲ ﺗﻮان ﺑﻌﻀ - 1در ﻧﺮم اﻓﺰﺰار CCSﺗﻌﺪادي Simulatorر
ﻗﺮار دارد ﻛﻪ ﺑﺎ ﻚ
ﺑﺴﻴﺎر ﺑﺎﻻ ﺑﺮ روي ﺑﺮد واﻗﻌﻲ ﻧﻴﺰ ﺑﻪ Sﺑﻪ درﺳﺘﻲ ﻛﺎر ﻧﻤﺎ
ﻤﺎﻳﺪ ﺑﻪ اﺣﺘﻤﺎل ر Simulatorﻫﻫﺎ ﺑﺴﻴﺎر ﻗﻮي ﻃﺮاﺣﺣﻲ ﺷﺪه اﻧﺪ ﺑﻪ ﻃﻮررﻳﻜﻪ اﮔﺮ ﻳﻚ ﺑﺮﻧﺎﻣﻣﻪ در Simulator
+ CCS + JTAGﺑﺮد ( ،در ﺑﺨﺶ ﻣﺮﺮﺑﻮط ﺑﻪ Perripheralﻫﺎ ﻧﻈﻴﺮ
ﻳﻚ ﺑﺮد واﻗﻌﻲ ) G
ﻫﻤﺎن ﺷﻜﻞ ﻋﻤﻤﻞ ﺧﻮاﻫﺪ ﻧﻤﻮد .ددر ﻋﻤﻞ ﺗﻔﺎوت ﺑﻴﻦ Simulatorو ﻚ
Serial ، USBو ...ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ در ااﻛﺜﺮ Simulatorﻫﻫﺎ اﻳﻦ ﺑﺨﺸﻬﺎ ﭘﻴﺎده ﺳﺎزي ﻧﺸﺪهاﻧﺪ.
ﻣﺨﺘﻠﻒ ﭘﺮدازﻧﺪه ﻧﻈﻴﺮ B
ﭘﻮرﺗﻬﺎي ﻒ
90 CC
ﺿﻤﻴﻤﻪ اﻟﻒ :اﻳﺠﺎد ﭘﺮوژژه در ﻧﺮماﻓﺰار CS ﺸﺮو ﺧﺎورﻣﻴﺎﻧﻪ
ارﺗﺒﺎﻃﺎت ﭘﻴﺸ
از ﭘﻮﺷﻪ c:\DSSPLab\gel Fillesﻓﺎﻳﻞ DSPPro5509DSK.gelرا اﻧﺘﺨﺎب ﻛﻨﻴﺪ و روي opeenﻛﻠﻴﻚ ﻛﻨﻴﺪ .
:CC
ﻧﻮﺷﺘﻦ اوﻟﻴﻦ ﺑﺮﻧﺎﻣﻣﻪ Cدر CS
ﻦ (3
اﻛﻨﻮن در Prroject Exploreerروي ﻓﺎﻳﻞ main.cدو ﺑﺎر ﻛﻠﻠﻴﻚ ﻛﻨﻴﺪ ﺗﺎ ﺑﺎزز ﺷﻮد.
MEM
MORY
{
PAG
GE 0
0:
DRAM1
1 : or =00100h , length
rigin =0 =10000h
}
SEC
CTIONS
{
.text
}{ t: > DRAM1 PAG
GE 0
}
در درون CCSددر ﻳﻚ ﻓﺎﻳﻞ ﺑﺎ ﭘﭘﺴﻮﻧﺪ *.cmdﺗﺎﻳﭗ ﻛﻨﻴﺪ .ﺖ
دﻗﺖ ﺷﻮد ﻛﻪ ﺗﻤﺎم ﻓﺎﺻﻠﻪﻫﺎ و ﺟﺎي ﻛﭙﻲ ﻣﻲ ﺗﻮاﻧﻴﺪﺪ اﻳﻦ ﻓﺎﻳﻞ را ر
ﺑﻪ ي
ﺣﺮوف ﻛﻮﭼﻚ و ﺑﺰررگ رﻋﺎﻳﺖ ﺷﻮﻮﻧﺪ.
ف
Buildو :Run
B (6
ﺧﻄـﺎﻳﻲ در
را اﻧﺘﺨﺎب ﻛﻛﻨﻴﺪ .ﻣﻄﻤﺌﻦ ﺷﻮﻮﻳﺪ ﻛﻪ ﻫﻴﭻ ﺧﻄﻄﺎﻳﻲ ﺗﻮﻟﻴﺪ ﻧﺸﺪﺪه ﺑﺎﺷﺪ .اﮔـﺮ ﺧ ﺑﺮاي 1Builddﺷﺪن ﭘﺮووژه آﻳﻜﻮن
ﺳﻤﺖ راﺳﺖ ﻧﺮم اﻓﻓﺰار ﻧﺸﺎن داده ﻣﻲﺷﻮﻧﺪ.
ﻨﺠﺮه ﭘﺎﻳﻴﻦ ،ﺖ
ﺧﻄﺎﻫﺎ در ﻧﺮم اﻓﻓﺰار CCSدر ﭘﻨﺠ
وﺟﻮد داﺷﺖ آن را ﺑﺑﺮ ﻃﺮف ﻛﻨﻴﺪ .ﺧ
د ﺑﺮﻧﺎﻣﻪ
_______________________________
________________________
___________
________
Build - 1ﺑﻪ ﻣﻌﻨﻲ ﻛﺎﻣﭙﺎﻳﻞ و ﺳﭙ
ﺳﭙﺲ ﻟﻴﻨﻚ ﺑﺮﻧﺎﻣﻪ Cﻣﻲ ﺑﺎﺷﺪ.
93 DSP
دﺳﺘﻮﻮرﻛﺎر آزﻣﺎﻳﺸﮕﺎه P ﺸﺮو ﺧﺎورﻣﻴﺎﻧﻪ
ارﺗﺒﺎﻃﺎت ﭘﻴﺸ
ـﺮ ﻳﺎﻓﺘـﻪ و
از ﻓﻀﺎي Editﺑﻪ Debugﺗﻐﻴﻴـﺮ
ﺤﻴﻂ ﻧﺮم اﻓﺰار ز
ﻜﻪ ﺑﺎ زدن آﻳﻜﻮنن ﺳﻮﺳﻚ ﻫﻤﻪ ﭼﻴﺰ ﺑﺎ ﻣﻮﻓﻘﻴﺖ اﻧﺠﺎم ﭘﺬﻳﺮد ﻣﺤ
در ﺻﻮرﺗﻴﻜ
ﻣﻲﺷﻮد و ﻧﺘﻴﺠﻪ ددر ﭘﻨﺠﺮه-
ﺑﺮﻧﺎﻣﻪ اﺟﺮا ﻲ ﺷﻜﻞ ﺑﻌﺪ ﺑﻪ ﺻﻮﻮرت ﻓﻌﺎل در ﺑﺎﺎﻻي ﻧﺮم اﻓﺰار ﻇﻇﺎﻫﺮ ﻣﻲﮔﺮدﻧﺪ .ﺑﺎ اﻧﺘﺨﺎب
آﻳﻜﻮﻧﻬﺎي ﺷ
ﺻﻔﺤﻪ اﺳﺖ ،ﻧﻤﻤﺎﻳﺶ داده ﻣﻲﺷﻮﻮد.
Consoleﻛﻪ در ﭘﺎﻳﻴﻦ ﺻ
C ي
(1ﻣﻘﺪﻣﻪ
در اﻳﻦ ﻗﺴﻤﺖ ﻃﺮﻳﻘﻪ ﺑﺎر ﮔﺬاري و ﻧﺼﺐ ﻛﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺳﻴﮕﻨﺎل و ﭘـﺮدازش ﺗﺼـﻮﻳﺮ آﻣـﻮزش داده ﺷـﺪه اﺳـﺖ .اﻳـﻦ
ﻛﺘﺎﺑﺨﺎﻧﻪﻫﺎ ﻛﺎرﺑﺮدﻫﺎي زﻳﺎدي در ﻛﺎرﺑﺮدﻫﺎي ﭘﺮدازش ﺳﻴﮕﻨﺎل و ﭘﺮدازش ﺗﺼﻮﻳﺮ دارﻧﺪ.
اﺑﺘﺪا ﺑﻪ ﺳﺎﻳﺖ ti.comﺑﺮوﻳﺪ .در ﻗﺴﻤﺖ ﺟﺴﺖ و ﺟﻮ ﻋﺒﺎرت TMS320VC5509Aرا ﺗﺎﻳﭗ ﻛﻨﻴﺪ و Enterرا ﻓﺸﺎر دﻫﻴﺪ.
وارد ﺻﻔﺤﻪي ﭘﺮدازﻧﺪهي 5509Aﻣﻲﺷﻮﻳﺪ .ﺑﻪ ﭘﺎﻳﻴﻦ ﺻﻔﺤﻪ ﺑﺮوﻳﺪ و Softwareرا ﭘﻴﺪا ﻛﻨﻴﺪ:
ﺑﺮاي ﻧﺼﺐ ﻛﺘﺎﺑﺨﺎﻧﻪي ﭘﺮدازش ﺳﻴﮕﻨﺎل در ﺷﻜﻞ ﻗﺒﻞ روي TMS320C55x DSP Libraryﻛﻠﻴﻚ ﻛﻨﻴﺪ .در ﺻﻔﺤﻪي ﺑـﺎز
ﺷﺪه روي Downloadﻛﻠﻴﻚ ﻛﻨﻴﺪ .ﻓﺎﻳﻞ sprc100.zipرا در ﻣﺤﻞ ﻣﻨﺎﺳﺐ ذﺧﻴﺮه ﻛﻨﻴﺪ.
ﺑﺮاي داﻧﻠﻮد ﻓﺎﻳﻞ آﻣﻮزﺷﻲ ﻛﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺳﻴﮕﻨﺎل ﺑﻪ ﭘـﺎﻳﻴﻦ ﺻـﻔﺤﻪ ﺑﺮوﻳـﺪ و روي ﻛﻴﻨـﻚ TMS320C55x DSP
) Library Programmer's Reference (Rev. Jﻛﻠﻴﻚ ﻛﻨﻴﺪ.
ﻓﺎﻳﻞ dsplib_2.40.00را در ﻣﺤﻞ ﻧﺼﺐ ﻧﺮم اﻓﺰار CCSﻛﻪ ﺑﻪ ﻃﻮر ﭘﻴﺶﻓﺮض C:\tiﻣﻲﺑﺎﺷﺪ ،ﻛﭙﻲ ﻛﻨﻴﺪ.
ﺑﺮاي داﻧﻠﻮد ﻛﺘﺎﺑﺨﺎﻧﻪي ﭘﺮدازش ﺗﺼﻮﻳﺮ در ﺷـﻜﻞ )*( روي ﻟﻴﻨـﻚ TMS320C55x Image Libraryﻛﻠﻴـﻚ ﻛﻨﻴـﺪ.
ﺑﻘﻴﻪي ﻣﺮاﺣﻞ ﻣﺎﻧﻨﺪ ﻗﺒﻞ ﻣﻲﺑﺎﺷﺪ .ﻓﺎﻳﻞ آﻣﻮزﺷﻲ ﻣﺮﺑـﻮط ﺑـﻪ ﻛﺘﺎﺑﺨﺎﻧـﻪي ﭘـﺮدازش ﺗﺼـﻮﻳﺮ ،را در ﭘـﺎﻳﻴﻦ ﻫﻤـﻴﻦ ﺻـﻔﺤﻪ ﺑـﻪ ﻧـﺎم
spru037c.pdfداﻧﻠﻮد ﻛﻨﻴﺪ.
ﺑﺮاي ﻧﺼﺐ ﻛﺘﺎﺑﺨﺎﻧﻪ ﭘﺮدازش ﺗﺼﻮﻳﺮ ﻓﺎﻳﻞ sprc101.zipرا ﻛﻪ داﻧﻠﻮد ﻛﺮدهاﻳﺪ از ﺣﺎﻟﺖ ﻓﺸﺮده ﺧﺎرج ﻛﻨﻴـﺪ .روي آﻳﻜـﻮن
در ﺻﻔﺤﻪي Location to Save Filesو در ﻗﺴﻤﺖ Save files in folderﻣﺤﻞ ﻧﺼﺐ ﻧـﺮم اﻓـﺰار CCSرا ﻛـﻪ ﺑـﻪ ﻃـﻮر
ﭘﻴﺶﻓﺮض C:\tiاﺳﺖ را وارد ﻛﻨﻴﺪ.
99 دﺳﺘﻮر ﻛﺎر آزﻣﺎﻳﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮو ﺧﺎورﻣﻴﺎﻧﻪ
(1ﻣﻘﺪﻣﻪ
در اﻳﻦ ﻗﺴﻤﺖ ﻧﺤﻮه ﻃﺮاﺣﻲ ﻳﻚ ﻓﻴﻠﺘﺮ دﻳﺠﻴﺘﺎل ﺑﺎ اﺳﺘﻔﺎده از ﻧﺮماﻓﺰار ﻣﺘﻠﺐ و اﺳﺘﻔﺎده از آن در ﭘﺮدازﻧﺪه DSPآﻣﻮزش
داده ﺷﺪه اﺳﺖ.
ﺑﺮﻧﺎﻣﻪي ﻣﺘﻠﺐ را ﺑﺎز ﻛﻨﻴﺪ .در ﭘﻨﺠﺮهي دﺳﺘﻮرات ) fdatool ،(command windowرا ﺗﺎﻳﭗ ﻛﻨﻴﺪ و Enterرا ﻓﺸﺎر
دﻫﻴﺪ:
ﺳﭙﺲ روي Design Filterﻛﻪ در ﭘﺎﻳﻴﻦ ﺻﻔﺤﻪ ﻗﺮار دارد ﻛﻠﻴﻚ ﻛﻨﻴﺪ .ﺑﺮاي اﺳﺘﻔﺎده از ﺿـﺮاﻳﺐ ﻓﻴﻠﺘـﺮ در ﺑﺮﻧﺎﻣـﻪي Cﺑـﻪ
ﺻﻮرت زﻳﺮ ﻋﻤﻞ ﻛﻨﻴﺪ:
از ﻣﻨﻮي ،Targetﮔﺰﻳﻨﻪي … Generate C headerرا اﻧﺘﺨﺎب ﻛﻨﻴﺪ
ﭘﻨﺠﺮهي Generate C Headerﺑﺎز ﻣﻲﺷﻮد .ﭘﺎراﻣﺘﺮﻫﺎي ﭘﻨﺠﺮهي ﺑﺎز ﺷﺪه را ﺑﻪ ﺻﻮرت زﻳﺮ ﺗﻐﻴﻴﺮ دﻫﻴﺪ:
ﻧﺮماﻓﺰار ﻣﺘﻠﺐ ﺿﺮاﻳﺐ را ﺑﻪ ﻓﺮﻣﺖ ﻋﺪد ﺻﺤﻴﺢ 16ﺑﻴﺘﻲ ﻛﻪ ﺑﺮاي ﭘﻴﺎدهﺳﺎزي در ﻧﺮماﻓﺰار ﻣﺘﻠﺐ ﻣﻨﺎﺳﺐ ﻣﻲﺑﺎﺷـﺪ در ﻣـﻲ-
آورد .اﻛﻨﻮن ﺑﺮاي ﺗﻮﻟﻴﺪ و ذﺧﻴﺮه ﺳﺎزي اﻳﻦ ﺿﺮاﻳﺐ ﮔﺰﻳﻨﻪي Generateرا اﻧﺘﺨﺎب ﻛﻨﻴﺪ .ﺳﭙﺲ ﻓﺎﻳﻞ را در ﭘﻮﺷﻪي ﭘﺮوژه ذﺧﻴﺮه
ﻧﻤﺎﻳﻴﺪ:
(1ﻣﻘﺪﻣﻪ
در اﻳﻦ ﻗﺴﻤﺖ رﺟﻴﺴﺘﺮﻫﺎي ADCو DACﺗﻮﺿﻴﺢ داده ﺷﺪه اﺳﺖ .ﺑﺎ اﺳﺘﻔﺎده از اﻳﻦ رﺟﻴﺴﺘﺮﻫﺎ ﻣﻲﺗﻮاﻧﻴﻢ وﺿﻌﻴﺖ ﻣﺒﺪل-
ﻫﺎي ﺳﻴﮕﻨﺎل را ﻛﻨﺘﺮل ﻧﻤﺎﻳﻴﻢ )ﺧﺎﻟﻲ ﻳﺎ ﭘﺮ ﺑﻮدن( ،ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري را ﺗﻐﻴﻴﺮ دﻫﻴﻢ و ﺗﻐﻴﻴﺮات ﻣﺠﺎز را روي اﻳﻦ ﻣﺒﺪلﻫﺎ
اﻋﻤﺎل ﻛﻨﻴﻢ .ﺗﻌﺪادي از اﻳﻦ رﺟﻴﺴﺘﺮﻫﺎ از ﻃﺮﻳﻖ ﺻﻔﺤﻪ ﻧﻤﺎﻳﺶ ﺑﺮد ﻗﺎﺑﻞ ﺗﻨﻈﻴﻢ ﻣﻲﺑﺎﺷﻨﺪ و ﺗﻌﺪادي ﻧﻴﺰ در ﺑﺮﻧﺎﻣﻪ ﻗﺎﺑﻞ ﻛﻨﺘﺮل
ﻣﻲﺑﺎﺷﻨﺪ.
ﺑﺮاي اﻧﺘﺨﺎب ﻓﺮﻛﺎﻧﺴﻬﺎي ﻣﺨﺘﻠﻒ ﻧﻤﻮﻧﻪ ﺑﺮداري ،ﻳﻚ رﺟﻴﺴﺘﺮ ﺑﻪ ﻧﺎم ) ADC_Sampling_Frequencyرﺟﻴﺴﺘﺮ Nدر
ﺷﻜﻞ ﻗﺒﻞ( ﻃﺮاﺣﻲ ﮔﺮدﻳﺪه اﺳﺖ ﻛﻪ ﺑﺎ ﻛﻤﻚ آن ﻣﻲ ﺗﻮان ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري را ﺑﻪ دﻟﺨﻮاه ﻋﻮض ﻧﻤﻮد .ﭼﻮن ﺑﺮاي ﺗﻮﻟﻴﺪ
ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري از ﻳﻚ ﺗﻘﺴﻴﻢ ﻛﻨﻨﺪه اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ ،ﺗﻨﻬﺎ اﻋﺪاد ﻣﺸﺨﺼﻲ از ﻃﺮﻳﻖ اﻳﻦ ﺑﺮﻧﺎﻣﻪ ﻗﺎﺑﻞ اﺳﺘﻔﺎده اﺳﺖ.
در ﺟﺪول ﺑﻌﺪ ﻟﻴﺴﺖ رﺟﻴﺴﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ADCو آدرس ﻫﺮ ﻳﻚ آﻣﺪه اﺳﺖ.
109 دﺳﺘﻮر ﻛﺎر آزﻣﺎﻳﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮو ﺧﺎورﻣﻴﺎﻧﻪ
(1-2رﺟﻴﺴﺘﺮ A2D_data
ﺑﺮاي ﺧﻮاﻧﺪن از ADCﻛﺎﻓﻲ اﺳﺖ از اﻳﻦ رﺟﻴﺴﺘﺮ ﺧﻮاﻧﺪه ﺷﻮد .اﻳﻦ رﺟﻴﺴﺘﺮ ﻫﻢ ﻣﻲ ﺗﻮاﻧﺪ ﺑﻪ ﺧﺮوﺟﻲ ADCو ﻫﻢ ﺑﻪ
ﺧﺮوﺟﻲ FIFOﻣﺘﺼﻞ ﺑﺎﺷﺪ .ﺑﺮاي اﻧﺘﺨﺎب ﻫﺮ ﻳﻚ از اﻳﻦ دو ﺣﺎﻟﺖ ﺑﺎﻳﺪ از ﺑﻴﺖ SC_FIFO1_DIRECT0در رﺟﻴﺴﺘﺮ
ADC_Control_reg0اﺳﺘﻔﺎده ﮔﺮدد.
adcﻛﺎر ﻣﻲ ﻛﻨﺪ.
اﻳﻦ ﺑﻴﺖ ﻫﻴﭻ ﻋﻤﻠﻜﺮد ﻣﺸﺨﺼﻲ ﻧﺪارد. 1 Reserved
اﻳﻦ دو ﺑﻴﺖ ﻧﺤﻮه اﻳﺠﺎد اﻳﻨﺘﺮاﭘﺖ ﺑﺎ آﻣﺪن ﻧﻤﻮﻧﻪ ﻳﺎ ﻧﻤﻮﻧﻪ 8-9 selector
ﻧﻜﺘﻪ :اﻳﻦ رﺟﻴﺴﺘﺮ ﻓﻘﻂ ﺧﻮاﻧﺪﻧﻲ اﺳﺖ و ﺷﻤﺎ ﻧﻤﻲ ﺗﻮاﻧﻴﺪ ﻣﻘﺎدﻳﺮ درون اﻳﻦ رﺟﻴﺴﺘﺮ را ﺑﺎ ﺑﺮﻧﺎﻣﻪ Cﻋﻮض ﻛﻨﻴﺪ.
ADC_Sampling_Frequency (3-2رﺟﻴﺴﺘﺮ
ﻛﻼك ) ADCﻛﻼك ﻧﻤﻮﻧﻪ ﺑﺮداري ( در اﻳﻦ ﺑﺮﻧﺎﻣﻪ از روي ﻛﺮﻳﺴﺘﺎل 12ﻣﮕﺎ ﻫﺮﺗﺰ ﻣﻮﺟﻮد در ﺑﺮد ، DSProﺳﺎﺧﺘﻪ
ﻣﻲ ﺷﻮد .ﻛﻼك 12ﻣﮕﺎ ﻫﺮﺗﺰ ،ﭘﺲ از ﻋﺒﻮر از ﻳﻚ ﺗﻘﺴﻴﻢ ﻛﻨﻨﺪه ،ﺑﻪ ADCداده ﻣﻲ ﺷﻮد .ﻋﺪد ﻣﻮرد اﺳﺘﻔﺎده در ﺗﻘﺴﻴﻢ ﻛﻨﻨﺪه ،از
ﻣﻲآﻳﺪ .ﺣﺪاﻗﻞ ﻣﻘﺪار ﺑﺮاي اﻳﻦ رﺟﻴﺴﺘﺮ ﻋﺪد 2اﺳﺖ و در ﺻﻮرت اﻧﺘﺨﺎب ﻋﺪد ADC_Sampling_Frequency رﺟﻴﺴﺘﺮ
ﻛﻮﭼﻜﺘﺮ از ، 2ﻋﺪد 2در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺧﻮاﻫﺪ ﺷﺪ.
ﻧﻜﺘﻪ :اﻳﻦ رﺟﻴﺴﺘﺮ ﻓﻘﻂ ﺧﻮاﻧﺪﻧﻲ اﺳﺖ و ﺷﻤﺎ ﻧﻤﻲ ﺗﻮاﻧﻴﺪ ﻣﻘﺎدﻳﺮ درون اﻳﻦ رﺟﻴﺴﺘﺮ را ﺑﺎ ﺑﺮﻧﺎﻣﻪ Cﻋﻮض ﻛﻨﻴﺪ.
رﺟﻴﺴﺘﺮ A2D_FIFO_status (4-2
اﻳﻦ رﺟﻴﺴﺘﺮ وﺿﻌﻴﺖ ﺑﺨﺸﻬﺎي ﻣﺨﺘﻞ ﻣﺎﻧﻨﺪ FIFOرا ﻣﺸﺨﺺ ﻣﻲ ﻛﻨﺪ .در ﺷﻜﻞ ﺑﻌﺪ اﻳﻦ رﺟﻴﺴﺘﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.
اﻳﻦ رﺟﻴﺴﺘﺮ اﻃﻼﻋﺎت ﻣﻬﻤﻲ از ﻋﻤﻠﻜﺮد FIFOرا در اﺧﺘﻴﺎر ﻗﺮار ﻣﻲ دﻫﺪ .ﺗﻮﺿﻴﺢ ﻣﺮﺑﻮط ﺑﻪ ﻫﺮ ﺑﺨﺶ اﻳﻦ رﺟﻴﺴﺘﺮ در
اداﻣﻪ آﻣﺪه اﺳﺖ.
ﺑﻴﺖ ﻳﻚ ﻣﻲ ﺷﻮد.
)ﺗﻌﺪاد ﻋﻨﺎﺻﺮ ذﺧﻴﺮه ﺷﺪه در FIFO_Used_Word ﻫﺮﮔﺎه ﻣﻘﺪار 6 FIFO_Almost_Full
ﻧﻜﺘﻪ :اﻳﻦ رﺟﻴﺴﺘﺮ ﻓﻘﻂ ﺧﻮاﻧﺪﻧﻲ اﺳﺖ و ﺷﻤﺎ ﻧﻤﻲ ﺗﻮاﻧﻴﺪ ﻣﻘﺎدﻳﺮ درون اﻳﻦ رﺟﻴﺴﺘﺮ را ﺑﺎ ﺑﺮﻧﺎﻣﻪ Cﻋﻮض ﻛﻨﻴﺪ.
( 5-2رﺟﻴﺴﺘﺮ A2D_Data_Count_For_Almost_Full
ﺑﺎ ﻛﻤﻚ اﻳﻦ رﺟﻴﺴﺘﺮ ﻣﻲ ﺗﻮان وﺿﻌﻴﺖ ﻓﻠﮓ Almost Fullرا در ﺑﺮﻧﺎﻣﻪ ﻫﺎ ﺗﻨﻈﻴﻢ ﻧﻤﻮد .اﻳﻦ ﻓﻠﮓ ﻫﻢ در ﻗﺴﻤﺖ ﺗﻮﻟﻴﺪ
A2D_FIFO_statusﺗﺎﺛﻴﺮ ﮔﺬار اﺳﺖ .ﻫﺮﮔﺎه ﻣﻘﺪار FIFO_Used_Wordدر رﺟﻴﺴﺘﺮ اﻳﻨﺘﺮاﭘﺖ و ﻫﻢ در رﺟﻴﺴﺘﺮ
A2D_FIFO_statusاز ﻣﻘﺪار وارد ﺷﺪه در اﻳﻦ رﺟﻴﺴﺘﺮ ) ( A2D_Data_Count_For_Almost_Fullﺑﻴﺸﺘﺮ ﺑﺎﺷﺪ ﻓﻠﮓ
Almost Fullدر ﺑﺮﻧﺎﻣﻪ ﻫﺎ ﻳﻚ ﻣﻲ ﺷﻮد.
ﻧﻜﺘﻪ :اﻳﻦ رﺟﻴﺴﺘﺮ ﻓﻘﻂ ﺧﻮاﻧﺪﻧﻲ اﺳﺖ و ﺷﻤﺎ ﻧﻤﻲ ﺗﻮاﻧﻴﺪ ﻣﻘﺎدﻳﺮ درون اﻳﻦ رﺟﻴﺴﺘﺮ را ﺑﺎ ﺑﺮﻧﺎﻣﻪ Cﻋﻮض ﻛﻨﻴﺪ.
DACﻣﺎﻧﻨﺪ ﻳﻚ ﺑﻠﻮك داﺧﻠﻲ درون ) DSPﻣﺎﻧﻨﺪ Peripheralﻫﺎ( ﻃﺮاﺣﻲ ﮔﺮدد .ﺑﺮاي DACﭼﻨﺪ رﺟﻴﺴﺘﺮ ﻛﻤﻜﻲ
ﻗﺮار داده ﺷﺪه اﺳﺖ و ﺑﺮاي ﻫﺮ رﺟﻴﺴﺘﺮ ﻳﻚ آدرس ﻣﺠﺰا در ﻓﻀﺎي آدرس دﻫﻲ ﭘﺮدازﻧﺪه DSPدر ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ .ﻳﻌﻨﻲ
ﻣﺜﻼ ﺑﺮاي ﻧﻮﺷﺘﻦ در DACﻳﺎ ﺧﻮاﻧﺪن وﺿﻌﻴﺖ ﺑﺨﺶﻫﺎي ﻣﺨﺘﻠﻒ )رﺟﻴﺴﺘﺮ (STATUSﻛﺎﻓﻲ اﺳﺖ از ﻳﻚ ﺳﺮي آدرﺳﻬﺎي
ﻣﺸﺨﺺ در ﻓﻀﺎي آدرس ،DSPاﺳﺘﻔﺎده ﺷﻮد .ﻫﻤﭽﻨﻴﻦ ﺑﺮاي اﻋﻤﺎل ﺗﻨﻈﻴﻤﺎت ﻣﺨﺘﻠﻒ ﺑﻪ DACﺑﺎز ﻫﻢ ﺑﺎ روش آدرس دﻫﻲ،
ﺑﺎﻳﺪ ﺗﻨﻈﻴﻤﺎت ﻣﻮرد ﻧﻈﺮ را در ﺟﻴﺴﺘﺮ CONTROLﻳﺎ (ADC_Sampling_Frequency) Nﻧﻮﺷﺖ .آدرس ﻫﺮ رﺟﻴﺴﺘﺮ در
ﺷﻜﻞ ﺑﺎﻻ ﻣﺸﺨﺺ ﺷﺪه اﺳﺖ.
دﻳﺘﺎي ، DACﻫﻢ ﻣﻲ ﺗﻮاﻧﺪ از FIFOﺧﻮاﻧﺪه ﺷﻮد و ﻫﻢ ﻣﺴﺘﻘﻴﻤﺎ از DSPﻣﻨﺘﻘﻞ ﮔﺮدد)از ﻃﺮﻳﻖ رﺟﻴﺴﺘﺮ
.(D2A_dataدر ﺻﻮرت ﻋﺒﻮر از ،FIFOﻳﻚ FIFOﺑﺎ ﻗﺎﺑﻠﻴﺖ ذﺧﻴﺮه ﺳﺎزي 256ﺑﺎﻳﺖ در ﻣﺴﻴﺮ ﻗﺮار ﻣﻲ ﮔﻴﺮد .اﻳﻦ FIFO
ﻛﻤﻚ ﻣﻲ ﻛﻨﺪ ﻛﻪ DSPﻣﺠﺒﻮر ﻧﺒﺎﺷﺪ ﻛﻪ ﺑﻪ ازاي ﻫﺮ SAMPLEﻣﻮرد ﻧﻴﺎز ،DACﻳﻜﺒﺎر اﻳﻨﺘﺮاﭘﺖ ﺑﺨﻮرد.
114 ﺿﻤﻴﻤﻪ د :ﻣﻌﺮﻓﻲ رﺟﻴﺴﺘﺮﻫﺎي ﻛﻴﻒ آزﻣﺎﻳﺸﮕﺎه ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮو ﺧﺎورﻣﻴﺎﻧﻪ
ﻫﻤﭽﻨﻴﻦ ﺑﺮاي راﺣﺘﻲ ،ﺣﺎﻟﺘﻬﺎي ﻣﺨﺘﻠﻒ ﺗﻮﻟﻴﺪ اﻳﻨﺘﺮاﭘﺖ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ ﻛﻪ از ﻃﺮﻳﻖ رﺟﻴﺴﺘﺮ
DAC_Control_reg0ﻗﺎﺑﻞ ﺗﻨﻈﻴﻢ اﺳﺖ .اﻳﻦ ﺣﺎﻟﺘﻬﺎ ﻋﺒﺎرﺗﻨﺪ از ، FIFO Almost Empty ، FIFO Empty :آﻣﺪن ﻫﺮ
ﻛﻼك ،و ﻋﺪم ﺗﻮﻟﻴﺪ اﻳﻨﺘﺮاﭘﺖ .ﺑﻠﻮك DACاز اﻳﻨﺘﺮاﭘﺖ ﺷﻤﺎره INT1ﭘﺮدازﻧﺪه اﺳﺘﻔﺎده ﻛﺮده اﺳﺖ.
DAC_Sampling_Frequency ﺑﺮاي اﻧﺘﺨﺎب ﻓﺮﻛﺎﻧﺲﻫﺎي ﻣﺨﺘﻠﻒ ﻧﻤﻮﻧﻪ ﺑﺮداري ،ﻳﻚ رﺟﻴﺴﺘﺮ ﺑﻪ ﻧﺎم
)رﺟﻴﺴﺘﺮ Nدر ﺷﻜﻞ ﻗﺒﻞ( ﻃﺮاﺣﻲ ﮔﺮدﻳﺪه اﺳﺖ ﻛﻪ ﺑﺎ ﻛﻤﻚ آن ﻣﻲ ﺗﻮان ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري را ﺑﻪ
دﻟﺨﻮاه ﻋﻮض ﻧﻤﻮد .ﭼﻮن ﺑﺮاي ﺗﻮﻟﻴﺪ ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري از ﻳﻚ ﺗﻘﺴﻴﻢ ﻛﻨﻨﺪه اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ ،ﺗﻨﻬﺎ
اﻋﺪاد ﻣﺸﺨﺼﻲ از ﻃﺮﻳﻖ اﻳﻦ ﺑﺮﻧﺎﻣﻪ ﻗﺎﺑﻞ اﺳﺘﻔﺎده اﺳﺖ.
در ﺟﺪول ﺑﻌﺪ ﻟﻴﺴﺖ رﺟﻴﺴﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ DACو آدرس ﻫﺮ ﻳﻚ آﻣﺪه اﺳﺖ.
(1-3رﺟﻴﺴﺘﺮ D2A_data
ﺑﺮاي ﻧﻮﺷﺘﻦ در DACﻛﺎﻓﻲ اﺳﺖ در اﻳﻦ رﺟﻴﺴﺘﺮ ﻧﻮﺷﺘﺘﻪ ﺷﻮد .اﻳﻦ رﺟﻴﺴﺘﺮ ﻫﻢ ﻣﻲ ﺗﻮاﻧﺪ ﻣﺴﺘﻘﻴﻤﺎ ﺑﻪ DACﻣﺘﺼﻞ ﮔﺮدد
و ﻫﻢ ﺑﻪ ورودي FIFOﻣﺘﺼﻞ ﺑﺎﺷﺪ .ﺑﺮاي اﻧﺘﺨﺎب ﻫﺮ ﻳﻚ از اﻳﻦ دو ﺣﺎﻟﺖ ﺑﺎﻳﺪ از ﺑﻴﺖ SC_FIFO1_DIRECT0در
رﺟﻴﺴﺘﺮ DAC_Control_reg0اﺳﺘﻔﺎده ﮔﺮدد.
آن ﭘﺎك ﻣﻲ ﺷﻮد .ﻫﻤﻴﺸﻪ ﺑﻌﺪ از رﻳﺴﺖ ﻛﺮدن ، FIFOﺑﺎ ﺻﻔﺮ ﻛﺮدن اﻳﻦ ﺑﻴﺖ ،ﻣﺠﺪد
FIFOرا از رﻳﺴﺖ ﺧﺎرج ﻛﻨﻴﺪ ﺗﺎ ﺑﺘﻮاﻧﺪ ﻋﻤﻠﻜﺮد ﻋﺎدي ﺧﻮد را داﺷﺘﻪ ﺑﺎﺷﺪ.
115 دﺳﺘﻮر ﻛﺎر آزﻣﺎﻳﺸﮕﺎه DSP ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮو ﺧﺎورﻣﻴﺎﻧﻪ
ﺗﻮﺻﻴﻪ ﻣﻲ ﺷﻮد ﻫﻤﻴﺸﻪ در اﺑﺘﺪاي ﺷﺮوع ﺑﺮﻧﺎﻣﻪ ﻫﺎي ، Cاﻳﻦ ﺑﻴﺖ را ﻳﻜﺒﺎر ﻳﻚ و ﺻﻔﺮ
ﻛﻨﻴﺪ.
اﻳﻦ ﺑﻴﺖ در ﻛﻴﻒ ﻛﺎرﺑﺮدي ﻧﺪارد و ﻓﻘﻂ در درون ﻛﺎرت adcﻛﺎر ﻣﻲ ﻛﻨﺪ.
دﻳﺘﺎي ﺧﺮوﺟﻲ از ، DACﻫﻤﻴﺸﻪ از ﻃﺮﻳﻖ رﺟﻴﺴﺘﺮ D2A_dataﻗﺎﺑﻞ دﺳﺘﺮﺳﻲ اﺳﺖ .ﺑﺎ 2 Sng1_USng0
ﻳﻚ ﺷﺪن اﻳﻦ ﺑﻴﺖ ﻓﺮﻣﺖ دﻳﺘﺎي ﺧﺮوﺟﻲ ﺑﻪ ، DACﺑﻪ ﺻﻮرت ﺑﺎ ﻋﻼﻣﺖ ) اﻋﺪاد ﺑﻴﻦ
-2048و ( + 2048و ﺑﺎ ﺻﻔﺮ ﺷﺪن اﻳﻦ ﺑﻴﺖ دﻳﺘﺎي ﺧﺮوﺟﻲ ﺑﻪ ﺻﻮرت ﺑﺪون ﻋﻼﻣﺖ )
اﻋﺪاد ﺑﻴﻦ ﺻﻔﺮ و ( +4096ﺧﻮاﻫﺪ ﺑﻮد.
ﺑﺎ ﻫﺮ ﺑﺎر ﺧﻮاﻧﺪن از رﺟﻴﺴﺘﺮ ، D2A_dataﻳﻚ ﻋﺪد در FIFOﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮد .اﮔﺮ اﻳﻦ 3 SC_FIFO1_DIRECT0
ﺑﻴﺖ ﻳﻚ ﺷﻮد دﻳﺘﺎي ارﺳﺎل ﺷﺪه از ﺳﻤﺖ ﻛﺎﻣﭙﻴﻮﺗﺮ) ( D2A_dataدر FIFOﻧﻮﺷﺘﻪ ﻣﻲ
ﺷﻮد.
اﮔﺮ اﻳﻦ ﺑﻴﺖ ﺻﻔﺮ ﺑﺎﺷﺪ ،دﻳﺘﺎ ﺑﺎس ورودي DACﻣﺴﺘﻘﻴﻤﺎ ﺑﻪ D2A_dataﻣﺘﺼﻞ ﺷﺪه و
ﺧﺮوﺟﻲ FIFOدور رﻳﺨﺘﻪ ﻣﻲ ﺷﻮد.
ﻧﻜﺘﻪ :ﻧﻮﺷﺘﻦ در رﺟﻴﺴﺘﺮ ، D2A_dataﻫﻤﻴﺸﻪ ﻣﻨﺠﺮ ﺑﻪ ﻧﻮﺷﺘﻪ ﺷﺪن ﻳﻚ ﻋﺪد در FIFO
ﺧﻮاﻫﺪ ﺷﺪ) ﺑﺪون ﺗﻮﺟﻪ ﺑﻪ وﺿﻌﻴﺖ ﺑﻴﺖ ( SC_FIFO1_DIRECT0
اﻳﻦ ﺑﻴﺘﻬﺎ ﻫﻴﭻ ﻋﻤﻠﻜﺮد ﻣﺸﺨﺼﻲ ﻧﺪارد. 4-7 Reserved
اﻳﻦ دو ﺑﻴﺖ ﻧﺤﻮه اﻳﺠﺎد اﻳﻨﺘﺮاﭘﺖ ﺑﺎ ارﺳﺎل ﻧﻤﻮﻧﻪ ﻳﺎ ﻧﻤﻮﻧﻪ ﻫﺎي ﺟﺪﻳﺪ از DACﺑﻪ FPGA 8-9 selector
را ﺷﺨﺺ ﻣﻲ ﻛﻨﻨﺪ .در ﺻﻮرﺗﻴﻜﻪ اﻳﻦ دو ﺑﻴﺖ اﺟﺎزه ﺗﻮﻟﻴﺪ اﻳﻨﺘﺮاﭘﺖ را ﺑﺪﻫﻨﺪ ،اﻳﻨﺘﺮاﭘﺖ
ﺷﻤﺎره 1ﭘﺮدازﻧﺪه ) ( INT1ﺗﺤﺖ ﺗﺎﺛﻴﺮ ﻗﺮار ﻣﻲ ﮔﻴﺮد.
ﺗﻮﺿﻴﺤﺎت Bit Bit
9 8
ﻫﻴﭻ اﻳﻨﺘﺮاﭘﺘﻲ ﺗﻮﻟﻴﺪ ﻧﻤﻲ ﺷﻮد. 0 0
ﺑﺎ آﻣﺪن ﻫﺮ ﻧﻤﻮﻧﻪ ﺟﺪﻳﺪ ﻳﻚ اﻳﻨﺘﺮاﭘﺖ ﺑﻪ DSPزده ﻣﻲ ﺷﻮد) ﻣﻌﺎدل 0 1
ﻣﻲ ﺷﻮد.
اﻳﻦ ﺑﻴﺘﻬﺎ ﻫﻴﭻ ﻋﻤﻠﻜﺮد ﻣﺸﺨﺼﻲ ﻧﺪارد. 10-15 Reserved
116 ﺿﻤﻴﻤﻪ د :ﻣﻌﺮﻓﻲ رﺟﻴﺴﺘﺮﻫﺎي ﻛﻴﻒ آزﻣﺎﻳﺸﮕﺎه ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮو ﺧﺎورﻣﻴﺎﻧﻪ
ﻧﻜﺘﻪ ﻧﻜﺘﻪ :اﻳﻦ رﺟﻴﺴﺘﺮ ﻓﻘﻂ ﺧﻮاﻧﺪﻧﻲ اﺳﺖ و ﺷﻤﺎ ﻧﻤﻲ ﺗﻮاﻧﻴﺪ ﻣﻘﺎدﻳﺮ درون اﻳﻦ رﺟﻴﺴﺘﺮ را ﺑﺎ ﺑﺮﻧﺎﻣﻪ Cﻋﻮض ﻛﻨﻴﺪ..
(3-3رﺟﻴﺴﺘﺮ DAC_Sampling_Frequency
ﻛﻼك ) DACﻛﻼك ارﺳﺎل ﻧﻤﻮﻧﻪ ﺑﻪ ( DACدر اﻳﻦ ﺑﺮﻧﺎﻣﻪ از روي ﻛﺮﻳﺴﺘﺎل 12ﻣﮕﺎ ﻫﺮﺗﺰ ﻣﻮﺟﻮد در ﺑﺮد ، DSPro
ﺳﺎﺧﺘﻪ ﻣﻲ ﺷﻮد .ﻛﻼك 12ﻣﮕﺎ ﻫﺮﺗﺰ ،ﭘﺲ از ﻋﺒﻮر از ﻳﻚ ﺗﻘﺴﻴﻢ ﻛﻨﻨﺪه ،ﺑﻪ DACداده ﻣﻲ ﺷﻮد .ﻋﺪد ﻣﻮرد اﺳﺘﻔﺎده در ﺗﻘﺴﻴﻢ
ﻛﻨﻨﺪه ،از رﺟﻴﺴﺘﺮ DAC_Sampling_Frequencyﻣﻲ آﻳﺪ .ﺣﺪاﻗﻞ ﻣﻘﺪار ﺑﺮاي اﻳﻦ رﺟﻴﺴﺘﺮ ﻋﺪد 6اﺳﺖ و در ﺻﻮرت
اﻧﺘﺨﺎب ﻋﺪد ﻛﻮﭼﻜﺘﺮ از ، 6ﻋﺪد 6در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺧﻮاﻫﺪ ﺷﺪ.
ﻧﻜﺘﻪ :اﻳﻦ رﺟﻴﺴﺘﺮ ﻓﻘﻂ ﺧﻮاﻧﺪﻧﻲ اﺳﺖ و ﺷﻤﺎ ﻧﻤﻲ ﺗﻮاﻧﻴﺪ ﻣﻘﺎدﻳﺮ درون اﻳﻦ رﺟﻴﺴﺘﺮ را ﺑﺎ ﺑﺮﻧﺎﻣﻪ Cﻋﻮض ﻛﻨﻴﺪ.
(4-3-3رﺟﻴﺴﺘﺮ D2A_FIFO_status
اﻳﻦ رﺟﻴﺴﺘﺮ وﺿﻌﻴﺖ ﺑﺨﺸﻬﺎي ﻣﺨﺘﻠﻒ) ﻣﺎﻧﻨﺪ ( FIFOرا ﻣﺸﺨﺺ ﻣﻲ ﻛﻨﺪ .در ﺷﻜﻞ ﺑﻌﺪ اﻳﻦ رﺟﻴﺴﺘﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.
اﻳﻦ رﺟﻴﺴﺘﺮ اﻃﻼﻋﺎت ﻣﻬﻤﻲ از ﻋﻤﻠﻜﺮد FIFOرا در اﺧﺘﻴﺎر ﻗﺮار ﻣﻲ دﻫﺪ .ﺗﻮﺿﻴﺢ ﻣﺮﺑﻮط ﺑﻪ ﻫﺮ ﺑﺨﺶ اﻳﻦ رﺟﻴﺴﺘﺮ در
اداﻣﻪ آﻣﺪه اﺳﺖ.
ﻧﻜﺘﻪ :اﻳﻦ رﺟﻴﺴﺘﺮ ﻓﻘﻂ ﺧﻮاﻧﺪﻧﻲ اﺳﺖ و ﺷﻤﺎ ﻧﻤﻲ ﺗﻮاﻧﻴﺪ ﻣﻘﺎدﻳﺮ درون اﻳﻦ رﺟﻴﺴﺘﺮ را ﺑﺎ ﺑﺮﻧﺎﻣﻪ Cﻋﻮض ﻛﻨﻴﺪ.
ﺑﻴﺖ ﻳﻚ ﻣﻲ ﺷﻮد.
ﻫﺮﮔﺎه ﻣﻘﺪار ) FIFO_Used_Wordﺗﻌﺪاد ﻋﻨﺎﺻﺮ ذﺧﻴﺮه ﺷﺪه 6 FIFO_Almost_Full
ﺗﻌﺪاد ﺑﺎﻳﺘﻬﺎﻳﻲ ﻛﻪ ﺗﺎ ﻛﻨﻮن از FIFOﺧﻮاﻧﺪه ﻧﺸﺪه اﻧﺪ ﺗﻮﺳﻂ اﻳﻦ 8 7-14 FIFO_Used_Word
ﻧﺴﺨﻪ 1
ﺧﺮداد 1392
(1ﻣﻘﺪﻣﻪ
در اﻳﻦ ﻗﺴﻤﺖ رﺟﻴﺴﺘﺮﻫﺎي ﻣﺮﺗﺒﻂ ﺑﺎ ﭘﻮرت ﺳﺮﻳﺎل ﺗﻮﺿﻴﺢ داده ﺷﺪه اﺳﺖ .ﺑﺎ اﺳﺘﻔﺎده از اﻳﻦ
رﺟﻴﺴﺘﺮﻫﺎ ﻣﻲﺗﻮاﻧﻴﻢ وﺿﻌﻴﺖ ﭘﻮرت ﺳﺮﻳﺎل را ﻣﺸﺎﻫﺪه ﻧﻤﻮد و از وﺟﻮد و ﻳﺎ ﻋﺪم وﺟﻮد اﻃﻼﻋﺎت
در FIFOﻫﺎي اﺧﺘﺼﺎﺻﻲ ﻣﺠﺰا در ﻣﺴﻴﺮ ﻫﺎي ارﺳﺎل و درﻳﺎﻓﺖ اﻃﻼع ﭘﻴﺪا ﻛﺮد.
در ﻃﺮاﺣﻲ ﭘﻮرت ﺳﺮﻳﺎل 3ﻋﺪد رﺟﻴﺴﺘﺮ دﺧﻴﻞ ﻣﻲ ﺑﺎﺷﺪ .اﻳﻦ رﺟﻴﺴﺘﺮﻫﺎ ﺑﻪ ﻫﻤﺮاه آدرﺳﺸﺎن
در ﺟﺪول ﺑﻌﺪ آﻣﺪهاﻧﺪ.
121 دﺳﺘﻮر ﻛﺎر آزﻣﺎﻳﺸﮕﺎه :DSPراﻫﻨﻤﺎي اﺳﺘﺎد ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮو ﺧﺎورﻣﻴﺎﻧﻪ
در ﻛﻴﻒ آزﻣﺎﻳﺸﮕﺎه اﺑﺘﺪا ﺑﺎﻳﺪ از درون LCDﻣﺘﺼﻞ ﺑﻪ ﺑﺮد BAUD RATEارﺗﺒﺎط را ﻣﺸﺨﺺ
ﻧﻤﻮد .ﺳﭙﺲ در درون ﺑﺮﻧﺎﻣﻪ DSPﺑﺎ ﻧﻮﺷﺘﻦ در رﺟﻴﺴﺘﺮ SERIAL_TXاﻃﻼﻋﺎت را از ﻛﻴﻒ ﺑﻪ
ﺑﻴﺮون ارﺳﺎل ﻧﻤﻮد .در ﻣﺴﻴﺮ ﺑﺮﻋﻜﺲ ﺑﺎ ﺧﻮاﻧﺪن از رﺟﻴﺴﺘﺮ SERIAL_RXاﻃﻼﻋﺎت ﻗﺎﺑﻞ درﻳﺎﻓﺖ
ﺧﻮاﻫﺪ ﺑﻮد.
رﺟﻴﺴﺘﺮ SERIAL_STATUSوﺿﻌﻴﺖ FIFOو BAUD RATEرا ﻣﺸﺨﺺ ﻣﻲ ﻧﻤﺎﻳﺪ.
(1-2رﺟﻴﺴﺘﺮSERIAL_RX
اﻳﻦ رﺟﻴﺴﺘﺮ ﺑﺮاي ﺧﻮاﻧﺪن اﻃﻼﻋﺎت ارﺳﺎﻟﻲ از ﺧﺎرج ﻛﻴﻒ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲ ﮔﻴﺮد .ﻓﺮﻣﺖ
دﻳﺘﺎي ارﺳﺎﻟﻲ ﺑﺎﻳﺪ ،ﺑﺪون ﺑﻴﺖ ﭘﺮﻳﺘﻲ 8 ،ﺑﻴﺘﻲ و ﺑﺎ ﻳﻚ STOP BITﺑﺎﺷﺪ ..ﺳﺮﻋﺘﻬﺎﻳﻲ ﻛﻪ ﻛﻴﻒ
آزﻣﺎﻳﺸﮕﺎه DSPﭘﺸﺘﻴﺒﺎﻧﻲ ﻣﻲ ﻧﻤﺎﻳﺪ از 2400ﺗﺎ ) 115200ﺑﺎ ﻛﻤﻚ ( LCDﻗﺎﺑﻞ ﺗﻨﻈﻴﻢ اﺳﺖ.
(2-2رﺟﻴﺴﺘﺮSERIAL_TX
اﻳﻦ رﺟﻴﺴﺘﺮ ﺑﺮاي ارﺳﺎل اﻃﻼﻋﺎت از ﻛﻴﻒ آزﻣﺎﻳﺸﮕﺎه ﺑﻪ ﺧﺎرج ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲﮔﻴﺮد.
ﻓﺮﻣﺖ دﻳﺘﺎي ارﺳﺎﻟﻲ ﺑﻪ ﺻﻮرت ﺑﺪون ﺑﻴﺖ ﭘﺮﻳﺘﻲ 8 ،ﺑﻴﺘﻲ و ﺑﺎ ﻳﻚ STOP BITﻣﻲﺑﺎﺷﺪ..
ﺳﺮﻋﺘﻬﺎﻳﻲ ﻛﻪ ﻛﻴﻒ آزﻣﺎﻳﺸﮕﺎه DSPﭘﺸﺘﻴﺒﺎﻧﻲ ﻣﻲﻧﻤﺎﻳﺪ از 2400ﺗﺎ ) 115200ﺑﺎ ﻛﻤﻚ ( LCD
ﻗﺎﺑﻞ ﺗﻨﻈﻴﻢ اﺳﺖ.
122 ﺿﻤﻴﻤﻪ د :ﻣﻌﺮﻓﻲ رﺟﻴﺴﺘﺮﻫﺎي ﻛﻴﻒ آزﻣﺎﻳﺸﮕﺎه)ﭘﻮرت ﺳﺮﻳﺎل ( ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮو ﺧﺎورﻣﻴﺎﻧﻪ
(3-2رﺟﻴﺴﺘﺮSERIAL_STATUS
اﻳﻦ رﺟﻴﺴﺘﺮ ﻓﻘﻂ ﺧﻮاﻧﺪﻧﻲ ﺑﻮده و از ﺑﺨﺸﻬﺎي ﻣﺨﺘﻠﻔﻲ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ ﻛﻪ ﻫﺮ ﺑﺨﺶ ﻳﻚ
ﻋﻤﻠﻜﺮد ﻣﺴﺘﻘﻞ دارد.
ﺟﺪول : 2رﺟﻴﺴﺘﺮ ﻛﻨﺘﺮﻟﻲSERIAL_STATUS
Bit 15 Bit 14-7 Bit 6 Bit 5 Bit 4 Bit 0-3
Rx_fifo Rx_Fifo used Rx_fifo Tx_fifo Tx_fifo Baud
Full word Empty Full Empty Rate
57600 1
38400 2
19200 3
9600 4
4800 5
2400 6
ﻫﺮﮔﺎه fifoﻣﺴﻴﺮ ) txارﺳﺎل از ﻛﻴﻒ ﺑﻪ ﺳﻤﺖ ﻛﺎﻣﭙﻴﻮﺗﺮ( 4 Tx_Fifo
Empty
ﺧﺎﻟﻲ ﺑﺎﺷﺪ ،اﻳﻦ ﺑﻴﺖ ﻳﻚ ﻣﻲ ﺷﻮد وﮔﺮﻧﻪ ﺻﻔﺮ اﺳﺖ.
123 دﺳﺘﻮر ﻛﺎر آزﻣﺎﻳﺸﮕﺎه :DSPراﻫﻨﻤﺎي اﺳﺘﺎد ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮو ﺧﺎورﻣﻴﺎﻧﻪ
ﻗﺮاﺋﺖ ﺷﻮد.
ﻫﻨﮕﺎم Fullﺷﺪن FIFOﻣﺴﻴﺮ Rxاﻳﻦ ﺑﻴﺖ ﻳﻚ ﻣﻲ ﺷﻮد. 15 Rx_Fifo
Full
ﺑﺮاي ﺧﻮاﻧﺪن ﺗﻌﺪاد واﻗﻌﻲ Used_WORDدرون FIFOﻫﻤﻴﺸﻪ ﺑﻴﺘﻬﺎي 7ﺗﺎ ) 15و ﻧﻪ
ﺑﻴﺘﻬﺎي 7ﺗﺎ (14را در ﺑﺮﻧﺎﻣﻪ ﺑﺨﻮاﻧﻴﺪ .زﻳﺮا وﻗﺘﻲ FIFOﺑﻪ ﺷﻜﻞ ﻛﺎﻣﻞ ﭘﺮ ﻣﻲ ﺷﻮد ) 256ﻋﺪد
اﻃﻼﻋﺎت در آن ﻗﺮار ﻣﻲ ﮔﻴﺮد ( ﻣﻘﺪار ﭘﺎراﻣﺘﺮ FIFO_Used_Wordﺑﺮاﺑﺮ ﺑﺎ ﺻﻔﺮ ﺷﺪه و در
ﻋﻮض ﺑﻴﺖ FIFO_Fullﻳﻚ ﻣﻲ ﺷﻮد.