




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、整理課件 整理課件DSP中數據表示方法中數據表示方法算數運算算數運算浮點數運算浮點數運算宏定義和調用宏定義和調用數據傳遞數據傳遞整理課件6.1.1數的表示方法數的表示方法整數和小數整數和小數 一個一個16位的二進制數既可以表示一個整數,也可位的二進制數既可以表示一個整數,也可以表示一個小數。以表示一個小數。當它表示一個整數時,其最低位(當它表示一個整數時,其最低位(D0)的權為)的權為20,D1的權為的權為21,次高位(,次高位(D14)的權為的權為214。整理課件 當需要表示小數時,小數點的位置始終在最高當需要表示小數時,小數點的位置始終在最高位后,最高位(位后,最高位(D15)表示符號位。
2、)表示符號位。次高位(次高位(D14)的權為的權為2-1,然后是,然后是2-2,最低位,最低位(D0)的權為的權為2-15。4000H表示小數表示小數0.5,1000H是小數是小數2-3 = 0.125,0001H則表示則表示16位定點位定點DSP能表示的最小的小數能表示的最小的小數(有符號)(有符號) 2-15 = 0.000030517578125。6.1.1數的表示方法數的表示方法整數和小數整數和小數整理課件 在在DSP中,一個中,一個16進制的數可以表示不同的十進制數,或進制的數可以表示不同的十進制數,或者是整數,或者是小數(如果表示小數,必定小于者是整數,或者是小數(如果表示小數,必
3、定小于1),但),但僅僅是在做整數乘除或小數乘除時,系統對它們的處理才是僅僅是在做整數乘除或小數乘除時,系統對它們的處理才是有所區(qū)別的,而在加減運算時,系統都當成整數來處理。有所區(qū)別的,而在加減運算時,系統都當成整數來處理。 在在C54X中,將一個小數用中,將一個小數用16位定點格式來表示的方法是位定點格式來表示的方法是用用215 (32768)乘以該小數,將結果的整數部分轉換成十六進乘以該小數,將結果的整數部分轉換成十六進制即可以。制即可以。6.1.1數的表示方法數的表示方法整數和小數整數和小數如:如:0.5: *32768=16384: 4000H -0.5: 絕對值絕對值*32768=1
4、6384: 4000H: 取反加取反加1: C000H在匯編語言中,不能直接寫入十進制小數。比如要定義一個系數在匯編語言中,不能直接寫入十進制小數。比如要定義一個系數0.707,可以寫成:可以寫成: .word 32768*707/1000整理課件 如果表示一個有符號數時,最高位(如果表示一個有符號數時,最高位(D15)為符)為符號位,號位,0表示正數,表示正數,1表示負數。表示負數。 例如,例如,7FFFH表示最大的正數表示最大的正數32767(十進制),(十進制),而而FFFFH表示最大的負數表示最大的負數-1(負數用二進制的補(負數用二進制的補碼方式顯示)。碼方式顯示)。6.1.1數的表
5、示方法數的表示方法正數和負數正數和負數整理課件ALU (Adder)Multiplier(17x17)(Rpt+Sub)整理課件6.1.2算數運算算數運算定點加法定點加法ld temp1,a add temp2,a stla,temp3v沒有特意考慮沒有特意考慮temp1和和temp2是整數還是小數是整數還是小數temp3=temp1+temp2;變量;變量temp1裝入累加器裝入累加器A;變量;變量temp2與累加器與累加器A相加,結相加,結果放入果放入A;結果(低;結果(低16位)存入變量位)存入變量temp3中。中。整理課件6.1.2算數運算算數運算定點減法定點減法 stm #temp1
6、,ar3;變量;變量temp1的地址裝入的地址裝入 ar3寄存器寄存器stm #temp2,ar2;變量;變量temp2的地址裝入的地址裝入 ar2寄存器寄存器sub *ar2, *ar3,b ;變量;變量temp2和和temp1都左移都左移 16位,然后相減,結果放入位,然后相減,結果放入 累加器累加器B中(高中(高16位)位)sth b,temp3 ;相減的結果(累加器;相減的結果(累加器B的高的高 16位)存入變量位)存入變量temp3。整理課件6.1.2算數運算算數運算定點整數乘法定點整數乘法 C54X提供了大量的乘法運算指令,提供了大量的乘法運算指令,其結果都是其結果都是32位。位。
7、MPYU是一條專用于無符號數乘法運算的是一條專用于無符號數乘法運算的指令,而其它的乘法指令都是有符號數的指令,而其它的乘法指令都是有符號數的乘法乘法整理課件6.1.2算數運算算數運算定點整數乘法定點整數乘法rsbx FRCT ;清;清FRCT標志,準備整數乘法標志,準備整數乘法Ld temp1,T ;變量;變量temp1裝入裝入T寄存器寄存器mpy temp2,a ;temp2*temp1,結,結 果放入累加器果放入累加器A(32位)位)stha,temp3 ;結果的高;結果的高16位存入位存入temp3stla,temp4 ;結果的低;結果的低16位存入位存入temp4整理課件6.1.2算數
8、運算算數運算定點小數乘法定點小數乘法v 由于兩個小數相乘,其結果的小數點的由于兩個小數相乘,其結果的小數點的位置在次高的后面,所以必須左移一位,位置在次高的后面,所以必須左移一位,才能得到正確的結果。才能得到正確的結果。 v C54X中提供了一個狀態(tài)位中提供了一個狀態(tài)位FRCT,將其,將其設置為設置為1時,系統自動將乘積結果左移一時,系統自動將乘積結果左移一位。位。整理課件6.1.2算數運算算數運算定點小數乘法定點小數乘法ssbx FRCT ;FRCT=1,準備小數乘法,準備小數乘法Ld temp1,16,a;temp1裝入裝入A的高的高16 位位mpya temp2 ;temp2乘乘A的高的
9、高16位,結位,結 果果 在累加器在累加器B中中sthb,temp3 ;將乘積的高;將乘積的高16位存位存temp3整理課件6.1.2算數運算算數運算定點小數乘法定點小數乘法例例temp1=0ccdH(十進制的(十進制的0.1)temp2=599aH(十進制的(十進制的0.7) 兩數相乘后兩數相乘后B累加器的內容為累加器的內容為08f5f0a4H(十(十進制的進制的0.07000549323857) 如果僅保存結果的高如果僅保存結果的高16位位08f5H(十進制的(十進制的0.06997680664063)整理課件6.1.2算數運算算數運算除法運算除法運算整理課件6.1.2 算數運算算數運算除
10、法運算除法運算整理課件6.1.2 算數運算算數運算除法運算除法運算整理課件與整數除法不同之處:與整數除法不同之處:分子加載在分子加載在ACC高高16位位N位小數只需位小數只需N-1次減法計算次減法計算6.1.2 算數運算算數運算除法運算除法運算整理課件6.1.2 算數運算算數運算除法運算除法運算整理課件6.1.3 浮點運算程序浮點運算程序整理課件6.1.3 浮點運算程序浮點運算程序整理課件6.1.3 浮點運算程序浮點運算程序整理課件6.1.3 浮點運算程序浮點運算程序整理課件6.1.3 浮點運算程序浮點運算程序整理課件6.1.3 浮點運算程序浮點運算程序整理課件6.1.3 浮點運算程序浮點運算
11、程序整理課件數據存儲器數據存儲器被乘數被乘數乘數乘數被乘數的指數被乘數的指數被乘數的尾數被乘數的尾數乘數的指數乘數的指數乘數的尾數乘數的尾數乘積的指數乘積的指數乘積的尾數乘積的尾數乘積乘積暫存單元暫存單元a1a2b1c1b2c2epmpprodtemp6.1.3 浮點運算程序浮點運算程序整理課件數據存儲器數據存儲器a1被乘數被乘數a2乘數乘數b1被乘數的指數被乘數的指數c1被乘數的尾數被乘數的尾數b2乘數的指數乘數的指數c2乘數的尾數乘數的尾數ep乘積的指數乘積的指數mp乘積的尾數乘積的尾數prod乘積乘積temp暫存單元暫存單元0.4-0.9; ;設堆棧指針設堆棧指針; ;將將a1a1和和a
12、2a2送入送入RAMRAM8CCD; ;將將a1a1轉換為浮點數轉換為浮點數; ;將將a1a1送入送入AHAH3333AGAGAHAHALAL003333 0000; ;求求a1a1的指數的指數T T0001; ;將將a1a1的指數送的指數送b1b10001; ;求求a1a1的尾數的尾數即即A A左移左移1 1位位006666 0000; ;將將a1a1的尾數送的尾數送c1c16666; ;將將a2a2轉換為浮點數轉換為浮點數; ;將將a2a2送入送入AHAH00 8CCD 0000; ;求求a2a2的指數的指數0000; ;將將a2a2的指數送的指數送b2b20000; ;求求a2a2的尾數
13、的尾數; ;將將a2a2的尾數送的尾數送c2c28CCD; ;調浮點乘法子程序調浮點乘法子程序數據存儲器數據存儲器a13333a28CCDb10001c16666b20000c28CCDep乘積的指數乘積的指數mp乘積的尾數乘積的尾數prod乘積乘積temp暫存單元暫存單元AGAGAHAHALAL00 8CCD 0000T T0000; ;完成指數相加完成指數相加; ;取取b1b1送入送入A A000000 0001; ;b1+b2b1+b2送入送入A A000000 0001; ;乘積指數送乘積指數送epep0001; ;完成尾數相乘完成尾數相乘; ;取取a1a1的尾數的尾數6666; ;求
14、尾數的乘積求尾數的乘積即:乘積尾數即:乘積尾數=c1=c1c2c2c1c2=-0.72; ;求尾數乘積的指數求尾數乘積的指數0000; ;指數存入指數存入temptemp0000; ;求乘積的尾數求乘積的尾數FFA3D7 xxxx; ;存乘積的尾數存乘積的尾數A3D7; ;修正乘積指數修正乘積指數; ;取尾數乘積的指數取尾數乘積的指數000000 0000;(ep)+(temp)A;(ep)+(temp)A000000 0001; ;保存乘積指數保存乘積指數0001數據存儲器數據存儲器a13333a28CCDb10001c16666b20000c28CCDep0001mpA3D7prod乘積乘
15、積temp0001AGAGAHAHALAL000000 0001T T0000; ;浮點乘積轉換為定點數浮點乘積轉換為定點數; ;乘積指數反號乘積指數反號FFFFFF FFFE; ;暫存暫存A AFFFE; ;取乘積指數取乘積指數FFFE; ;將將(mp)AH(mp)AHFF3AD7 0000; ;將將A A按按T T移位,得定點數移位,得定點數FFD1EC 0000; ;保存定點乘積保存定點乘積D1EC; ;子程序返回子程序返回整理課件6.1.4 宏定義與調用宏定義與調用ADD3 .MACRO P1,P2,P3,ADDRP;三數相加宏定義三數相加宏定義 ;ADDRP = P1 + P2 +
16、P3LD P1,AADD P2,AADD P3,ASTL A,ADDRP.ENDMADD3 DAT0,DAT1,DAT2,DAT3 ;三數相加操作三數相加操作;DAT3 = DAT0 + DAT1 + DAT2定義宏:定義宏:調用宏調用宏整理課件6.1.5 數據傳遞數據傳遞閱讀:閱讀:P343 數據存儲器和程序存儲器實驗說明數據存儲器和程序存儲器實驗說明分析:分析:P350 數據存儲器和程序存儲器實驗源程序數據存儲器和程序存儲器實驗源程序要求:要求:結合附錄指令集,掌握基本數據傳遞指令和尋址方式的結合附錄指令集,掌握基本數據傳遞指令和尋址方式的 使用。使用。整理課件6.2 DSP 在信號發(fā)生器
17、上的應用在信號發(fā)生器上的應用 信號發(fā)生器是通信、電子技術應用領域最常見的設備。目信號發(fā)生器是通信、電子技術應用領域最常見的設備。目前很多信號可由前很多信號可由DDS(Direct digital synthesis )來產生,主要采用)來產生,主要采用查表法。此種方法適用于精度要求不是很高的場合,如果精度查表法。此種方法適用于精度要求不是很高的場合,如果精度要求較高則查表量就會很大,相應的存儲容量也要求很大。另要求較高則查表量就會很大,相應的存儲容量也要求很大。另一種產生信號的方法是通過計算獲得信號的相關數據一種產生信號的方法是通過計算獲得信號的相關數據。 常見的波形信號有:方波、正弦波等。方
18、波信號容易實現,如常見的波形信號有:方波、正弦波等。方波信號容易實現,如定時中斷。定時中斷。 正弦波信號可用相應的算法實現正弦波信號可用相應的算法實現整理課件6.2 DSP 在信號發(fā)生器上的應用在信號發(fā)生器上的應用正弦波算法介紹:正弦波算法介紹:利用正弦函數的對稱性和周期性,可以不用計算利用正弦函數的對稱性和周期性,可以不用計算360度的所度的所有角度值,只要計算有角度值,只要計算045度的度的sinx和和cosx的值的值(精度為(精度為0.5度)度) ,再利用,再利用sin2x=2sinx*cosx,求出,求出090度的值度的值(精度為(精度為1度)度) ,然后,然后通過復制可獲得通過復制可
19、獲得0360度的度的sinx。可將獲得的。可將獲得的sinx值放入一個表中,重復的向值放入一個表中,重復的向DA輸出,通過輸出,通過DA即可得到相應即可得到相應的正弦波形,改變輸出的延時可得到頻率不同的正弦波,選的正弦波形,改變輸出的延時可得到頻率不同的正弦波,選取不同的系數乘以取不同的系數乘以sinx值可改變正弦波的幅值,改變值可改變正弦波的幅值,改變sinx輸輸出表的輸出順序可改變波形的相位。出表的輸出順序可改變波形的相位。整理課件6.2 DSP 在信號發(fā)生器上的應用在信號發(fā)生器上的應用正弦波算法介紹:正弦波算法介紹:sinx和和cosx的計算:的計算:泰勒級數展開法(取前五項)泰勒級數展
20、開法(取前五項))871(651(431(21!8!6!4!21cos)981(761(541(321(!9!7!5!3sin2222864222229753xxxxxxxxxxxxxxxxxx整理課件6.2 DSP 在信號發(fā)生器上的應用在信號發(fā)生器上的應用正弦函數正弦函數sinx程序實現:程序實現:開辟存儲單元:開辟存儲單元:7FFFH dsp能表示的能表示的最大的小數;最大的小數;32767/327681整理課件6.2 DSP 在信號發(fā)生器上的應用在信號發(fā)生器上的應用正弦函數正弦函數sinx程序實現:程序實現:關鍵指令:關鍵指令:(1)并行存儲和裝載指令:)并行存儲和裝載指令:ST src
21、, Ymem ;hi(src)Ymem |LD Xmem, dst ; Xmemhi(dst)(2)乘減指令:)乘減指令:MASR Xmem,Ymem,src, dst ; (src- Xmem*Ymem)dst,XmemT整理課件6.2 DSP 在信號發(fā)生器上的應用在信號發(fā)生器上的應用余弦函數余弦函數cosx程序實現:程序實現:只要改變只要改變table單元的值即可單元的值即可整理課件6.2 DSP 在信號發(fā)生器上的應用在信號發(fā)生器上的應用計算計算0359度的正弦值算法,度的正弦值算法,精度為精度為1度:度:SIN0SIN90SIN91SIN179SIN180SIN359整理課件6.2 DS
22、P 在信號發(fā)生器上的應用在信號發(fā)生器上的應用計算計算0359度的正弦值程序實現:度的正弦值程序實現:需開辟的存儲區(qū):需開辟的存儲區(qū):sin_x: .usect sin_x , 360關鍵指令:關鍵指令:(1)循環(huán)尋址:)循環(huán)尋址:STM #LK, BK 尋址地址由尋址地址由*ARx+0%提供提供 ;循環(huán)長度放入;循環(huán)長度放入BK ;ARx指向尋址單元,每尋址一次用指向尋址單元,每尋址一次用ARx+AR0的內容做下次尋址的內容做下次尋址 STM #sin_x , AR6 STM #1 , AR0STM #360 , BKPORTW * AR6+0% , PA0例如:例如:整理課件6.2 DSP
23、在信號發(fā)生器上的應用在信號發(fā)生器上的應用計算計算0359度的正弦值程序實現:度的正弦值程序實現:關鍵指令:關鍵指令:(1)循環(huán)尋址:)循環(huán)尋址:STM #LK, BK 尋址地址由尋址地址由*ARx+0%提供提供 ;循環(huán)次數放入;循環(huán)次數放入BK ;ARx指向尋址單元,每尋址一次用指向尋址單元,每尋址一次用ARx+AR0的內容做下次尋址的內容做下次尋址 STM #sin_x , AR6 STM #1 , AR0STM #360 , BKPORTW * AR6+0% , PA0例如:例如:整理課件6.3 DSP 中斷應用中斷應用一、一、DSP中斷系統:中斷系統:1、不可屏蔽硬件中斷:、不可屏蔽硬件
24、中斷:RESET、NMI2、軟件中斷(不可屏蔽):、軟件中斷(不可屏蔽):RESET, INTR, TRAP(單片支持(單片支持30條軟件中斷)條軟件中斷)3、可屏蔽硬件中斷、可屏蔽硬件中斷(1)片外中斷:)片外中斷:INT0INT3:四級片外中斷四級片外中斷(2)片內外設中斷:)片內外設中斷:RINT0、XINT0:片內串口片內串口0收、發(fā)中斷收、發(fā)中斷RINT1、XINT1:片內串口片內串口1收、發(fā)中斷收、發(fā)中斷TINT0、TINT1:片內定時器片內定時器0、1的定時中斷的定時中斷HPINT:主機接口中斷主機接口中斷BRINT0BRINT1:McBSP接收中斷接收中斷BXINT0BXINT
25、1:McBSP發(fā)送中斷發(fā)送中斷DMAC0DMAC5:6通道通道DMA中斷中斷使用中斷前要掌握中斷優(yōu)先使用中斷前要掌握中斷優(yōu)先級,并根據優(yōu)先級編寫中斷級,并根據優(yōu)先級編寫中斷向量表。向量表。中斷優(yōu)先級中斷優(yōu)先級:P109整理課件整理課件整理課件二、編寫中斷向量表程序二、編寫中斷向量表程序 從中斷優(yōu)先級表中可以從中斷優(yōu)先級表中可以看出,每級中斷在向量表看出,每級中斷在向量表中占有中占有4 4個字的空間;所以個字的空間;所以在編寫中斷向量表時要注在編寫中斷向量表時要注意意中斷級別順序中斷級別順序的同時,的同時,也要注意各級中斷在也要注意各級中斷在向量向量表中的地址表中的地址。6.3 DSP 中斷應用
26、中斷應用MEMORY PAGE 0:VEC : origin = 1000h, length = 0ffh PROG: origin = 1100h, length = 8000h PAGE 1: DATA: origin = 080h, length = 0807fhSECTIONS .text PROG PAGE 0 .int_table VEC PAGE 0 .stack DATA PAGE 1整理課件._tablevector:rs b _c_int00 nop nopnmi b _ret nop nopsint17 b _ret nop nopsint18 b _re
27、t nop nopsint19 b _ret nop nopsint20 b _ret nop nop sint21 b _ret nop nopsint22 b _ret nop nopsint23 b _ret nop nopsint24 b _ret nop nopsint25 b _ret nop nopsint26 b _ret nop nopsint27 . b _ret nop nop sint28 b _ret nop nopsint29 b _ret nop nopsint30 b _ret nop nopint0 b _ret nop nopint1 b _ret nop
28、nopint2 b _ret nop noptint0 b _tin nop nopbrint0 b _ret nop nopbxint0 b _ret nop noptrint1 b _ret nop nopdmac1 b _ret nop nopint3 b _ret nop nophpint b _ret nop nopq26 b _ret nop nopq27 b _ret nop nopdmac4 b _ret nop nopdmac5 b _ret nop nopB: 無條件轉移指令(無條件轉移指令(2W)NOP: 空指令(空指令(1W)整理課件二、編寫中斷向量表程序二、編寫中斷向
29、量表程序 對于系統中不用的中斷可用對于系統中不用的中斷可用0填充;填充; .space 偽指令:偽指令:格式:格式:.space n*m*16功能:功能:緊接著上條指令開始,填充緊接著上條指令開始,填充n*m*16位位06.3 DSP 中斷應用中斷應用例如:例如:B loop1.space 1*16; 在在B指令后保留一個字的空間,該空間用指令后保留一個字的空間,該空間用0填充填充整理課件二、編寫中斷向量表程序二、編寫中斷向量表程序 對于系統中不用的中斷可用對于系統中不用的中斷可用0填充;填充;6.3 DSP 中斷應用中斷應用 .sect “.vectors”rst: b _c_int00 n
30、op nop .space 17*4*16int2: b _onkey nop nop .space 13*4*16該中斷向量表中只有兩個中斷;該中斷向量表中只有兩個中斷;其余未使用中斷填其余未使用中斷填0處理處理整理課件三、中斷相關寄存器三、中斷相關寄存器 系統中與中斷相關的寄存器和控制位有三:系統中與中斷相關的寄存器和控制位有三:中斷標志寄存器中斷標志寄存器IFR P1076.3 DSP 中斷應用中斷應用整理課件三、中斷相關寄存器三、中斷相關寄存器 系統中與中斷相關的寄存器和控制位有三:系統中與中斷相關的寄存器和控制位有三:中斷屏蔽寄存器中斷屏蔽寄存器IMR P1076.3 DSP 中斷應
31、用中斷應用整理課件三、中斷相關寄存器三、中斷相關寄存器 系統中與中斷相關的寄存器和控制位有三:系統中與中斷相關的寄存器和控制位有三:中斷方式位中斷方式位INTM (ST1 .11)6.3 DSP 中斷應用中斷應用使能中斷步驟:使能中斷步驟:(1)INTM=1;關全局中斷,為初始化各寄存器做準備;關全局中斷,為初始化各寄存器做準備(2)IFR對應位對應位=1;清除上次未完成中斷;清除上次未完成中斷(3)IMR對應位對應位=1;打開對應中斷;打開對應中斷(4)INTM=1;開全局中斷,等待中斷到來;開全局中斷,等待中斷到來整理課件四、中斷應用舉例四、中斷應用舉例: 硬件中斷實驗(硬件中斷實驗(P3
32、46)6.3 DSP 中斷應用中斷應用 通過通過CPLD掃描的按鍵產生一個硬件中斷,掃描的按鍵產生一個硬件中斷,DSP讀取鍵盤掃讀取鍵盤掃描碼,并將該掃描碼轉換為描碼,并將該掃描碼轉換為LED的顯示碼送的顯示碼送LED顯示。顯示。 系統共有系統共有6片片LED,每片,每片LED的顯示碼有段碼和位碼組成。的顯示碼有段碼和位碼組成。 如:如:將將0顯示在各位(右顯示在各位(右1)LED上上:顯示碼為:顯示碼為:3F01H其中:其中:高高8位為段碼位為段碼,低低8位為位碼位為位碼LED顯示模塊地址:顯示模塊地址:B000H故:只要將故:只要將3F01H送送B000H,即可在各位顯示,即可在各位顯示0
33、整理課件四、中斷應用舉例四、中斷應用舉例: 硬件中斷實驗(硬件中斷實驗(P346)6.3 DSP 中斷應用中斷應用 鍵盤掃描入口地址鍵盤掃描入口地址為:為:A008H,系統使用,系統使用INT2作為鍵盤中斷;作為鍵盤中斷;故:當故:當INT2中斷到來后,系統從中斷到來后,系統從A008H處讀取鍵值,經換碼后,處讀取鍵值,經換碼后,變?yōu)轱@示碼,送變?yōu)轱@示碼,送B000H顯示即可。顯示即可。整理課件四、中斷應用舉例四、中斷應用舉例: 硬件中斷實驗(硬件中斷實驗(P346)6.3 DSP 中斷應用中斷應用整理課件五、程序設計(五、程序設計(P358)CMD文件文件6.3 DSP 中斷應用中斷應用ME
34、MORYPAGE 0:VECS:origin = 0 xff80,length = 0 x80PROG:origin = 0 x2000,length = 0 x2000PAGE 1:DATA:origin = 0 x4000,length = 0 x1000DRAM:origin = 0 x5000,length = 0 x1000STACK:origin = 0 x6000,length = 0 x1000SECTIONS.vectors:VECS PAGE 0.text:PROG PAGE 0.data:DATA PAGE 1.bss:DRAM PAGE 1.stack:STACK PA
35、GE 1整理課件五、程序設計(五、程序設計(P358)ASM文件文件6.3 DSP 中斷應用中斷應用 .title ex6.global _c_int00.mmregsKEY_ADDR.set0a008hD_LED_ADDR.set0b000hKEY_CODE1.set60hKEY_CODE2.set61h .data .word 00h,3F06h,0605h,5B04h,4f03h,6602h,6d01h,7d06h,0705h,7f04h .word 6f03h07702h,07c01h,3906h,5e05h,07904h,07103h,8002h ;BCD CODE 0 1 2 3
36、4 5 6 7 8 9 a b c d e f . 整理課件五、程序設計(五、程序設計(P358)ASM文件文件6.3 DSP 中斷應用中斷應用 .sect “.vectors”rst: b _c_int00 nop nop .space 17*4*16int2: b _onkey nop nop .space 13*4*16整理課件五、程序設計(五、程序設計(P358)ASM文件文件6.3 DSP 中斷應用中斷應用CONVERT .macrorawdataSTM #4000h, AR3 ;AR3指向指向DATA表首表首ANDM #001Fh, rawdata ; rawdata中的鍵碼高中的
37、鍵碼高10位清位清0LD rawdata, AADD AR3, A ;AR3指向具體的顯示碼指向具體的顯示碼STL A, AR3nopnopLD *AR3, A ;將該顯示碼取入將該顯示碼取入ACCSTL A, rawdata ;顯示碼送回顯示碼送回rawdatanopnopnopnop.endm整理課件五、程序設計(五、程序設計(P358)ASM文件文件6.3 DSP 中斷應用中斷應用.text_c_int00:LD #0h,DPSTM #3000h, SPSSBX INTM ;關中斷關中斷SSBX XF ;xf接一發(fā)光二極管,表示上電成功接一發(fā)光二極管,表示上電成功STM #07FFFh,
38、 SWWSR ;cpu與所有存儲區(qū)域通信插入與所有存儲區(qū)域通信插入7個等待周期個等待周期ST #0000h, KEY_CODE2 ;鍵碼初始化鍵碼初始化0STM #0ffffh, IFR ;清除所有未完中斷清除所有未完中斷ORM #0004h, IMR ;使能使能INT2中斷中斷RSBX INTM ;開中斷開中斷整理課件五、程序設計(五、程序設計(P358)ASM文件文件6.3 DSP 中斷應用中斷應用susp:PORTW KEY_CODE2, D_LED_ADDR;顯示到數碼管顯示到數碼管 RPT #0ffffh NOP NOP B susp ;等待中斷等待中斷整理課件五、程序設計(五、程序
39、設計(P358)ASM文件文件6.3 DSP 中斷應用中斷應用_onkey: noprpt #0ffffhnopnoprpt #0ffffhnopnoprpt #0ffffhnopnoprpt #0ffffhnopnopPORTR KEY_ADDR, KEY_CODE2 ;讀取按鍵讀取按鍵CONVERT KEY_CODE2 ;將按鍵碼轉換成顯示碼將按鍵碼轉換成顯示碼整理課件五、程序設計(五、程序設計(P358)ASM文件文件6.3 DSP 中斷應用中斷應用exit rpt #0ffffhnopnoprpt #0ffffhnopnoprpt #0ffffhnopnopSTM #0ffffh,IF
40、RRETE整理課件6.4 DSP 串口通信設計串口通信設計整理課件 在實際的數字信號處理器在實際的數字信號處理器(DSP)系統中,經常要求系統中,經常要求DSP芯芯片與片與PC的串口連接,實現必要的數據采集與交換。但是在的串口連接,實現必要的數據采集與交換。但是在大多數型號的大多數型號的DSP芯片中,并沒有集成通用異步接收發(fā)送設芯片中,并沒有集成通用異步接收發(fā)送設備備(UART)接口,所以涉及到接口,所以涉及到DSP與與PC機的串行通信時,總機的串行通信時,總是通過對是通過對MCBSP或通用或通用IO口進行軟件模擬,來實現收發(fā)數口進行軟件模擬,來實現收發(fā)數據。但是,這種方法需要對通信協議有深刻
41、的了解,軟件編據。但是,這種方法需要對通信協議有深刻的了解,軟件編程很麻煩。并且在實際系統中程很麻煩。并且在實際系統中DSP的的MCBSP和和IO經常要被經常要被其它工作占用,所以可考慮采用擴展其它工作占用,所以可考慮采用擴展UART( TL16C550 )的方法來實現的方法來實現DSP-PC的異步串行通信。的異步串行通信。整理課件 通過通過DSP對對TL16C550(并變串)的訪問,使(并變串)的訪問,使8位數據以串行位數據以串行方式與方式與PC機進行數據交換。該實驗所需的硬件主要是機進行數據交換。該實驗所需的硬件主要是DSP、TL16C550、MAX232接口芯片。接口芯片。實現過程:實現
42、過程:整理課件 ST16C550是是EXAR公公司推出通用異步收發(fā)器司推出通用異步收發(fā)器(UART)電路,能夠提供數電路,能夠提供數據的串據的串/并、并并、并/串轉換功串轉換功能。其中,串行數據流的能。其中,串行數據流的同步功能是通過在傳輸數同步功能是通過在傳輸數據中加入據中加入起始位起始位和和結束位結束位組成的數據字節(jié)來實現的,組成的數據字節(jié)來實現的,通過在數據字節(jié)中附加通過在數據字節(jié)中附加奇奇偶校驗位偶校驗位確保數據的完整確保數據的完整性。接收方檢驗奇偶校驗性。接收方檢驗奇偶校驗位,確定是否出現傳輸錯位,確定是否出現傳輸錯誤。誤。整理課件主要引腳:主要引腳: (1)A0A2: 片內寄存器的
43、選擇信號片內寄存器的選擇信號;(2)D0 D7: 雙向雙向8位數據線位數據線;(3)CS0 ,CS1 ,CS2: 輸入片選信號,輸入片選信號,當當CS0 ,CS1為高電平,為高電平,CS2為低電平時,為低電平時, TL16C550被選中被選中;(4)ADS: 地址選通信號,該信號有效時,可將地址選通信號,該信號有效時,可將CS0 ,CS1 ,CS2及及A0 ,A1 ,A2鎖存在鎖存在 TL16C550內部內部;(5)WR1 ,WR2 ,RD1 ,RD2: 讀寫輸入信號讀寫輸入信號;(6)XIN,XOUT: 外部時鐘端,可接晶振或外部時鐘信號外部時鐘端,可接晶振或外部時鐘信號;(7)MR: 復位
44、信號,當復位信號,當MR高電平時清零大多數寄存器高電平時清零大多數寄存器;(8)INTRPT: 中斷請求信號,為高電平時,通知中斷請求信號,為高電平時,通知CPU有中斷需要服務。有中斷需要服務。(9)SOUT,SIN: 串行串行發(fā)送、接收引腳。發(fā)送、接收引腳。(10)RTS: 請求發(fā)送信號,低電平有效,發(fā)送端請求發(fā)送數據。請求發(fā)送信號,低電平有效,發(fā)送端請求發(fā)送數據。 (11)CTS: 允許發(fā)送信號,低電平有效,接收端允許發(fā)送端的發(fā)送請求。允許發(fā)送信號,低電平有效,接收端允許發(fā)送端的發(fā)送請求。 整理課件內部寄存器:內部寄存器: 整理課件n1. MAX232芯片簡介芯片簡介 MAX232芯片是芯
45、片是MAXIM公司生產的、包含兩路接收器公司生產的、包含兩路接收器和驅動器的和驅動器的IC芯片,適用于各種芯片,適用于各種EIA-232C和和V.28V.24的的通信接口。通信接口。MAX232芯片內部有一個電源電壓變換器,可以芯片內部有一個電源電壓變換器,可以把輸入的把輸入的+5V電源電壓變換成為電源電壓變換成為RS-232C輸出電平所需的輸出電平所需的+10V電壓。所以,采用此芯片接口的串行通信系統只需單電壓。所以,采用此芯片接口的串行通信系統只需單一的一的+5V電源就可以了。對于沒有電源就可以了。對于沒有+12V電源的場合,其適電源的場合,其適應性更強。加之其價格適中,硬件接口簡單,所以
46、被廣泛應性更強。加之其價格適中,硬件接口簡單,所以被廣泛采用。采用。整理課件整理課件IOSIRB:IO訪問控制引腳,為低時表示訪問訪問控制引腳,為低時表示訪問IO設備;設備;R/W:讀寫控制引腳,為高表示讀,為低表示寫。:讀寫控制引腳,為高表示讀,為低表示寫。IOSIRB和和R/W都為低:選通都為低:選通URAT的的WR1;IOSIRB為低為低, R/W為高:選通為高:選通URAT的的RD1整理課件整理課件 利用利用DSP的多通道緩沖串口(的多通道緩沖串口(McBSP)與串行)與串行ADC/DAC連接,實現模擬量輸入輸出通道設計。連接,實現模擬量輸入輸出通道設計。 本設計僅針對本設計僅針對AD
47、/DA與與DSP的連接給予說明和介紹,對于的連接給予說明和介紹,對于通道中的傳感器、信號調理、信號保持和濾波等環(huán)節(jié)暫不考通道中的傳感器、信號調理、信號保持和濾波等環(huán)節(jié)暫不考慮。慮。整理課件 DSP利用同步串口接收利用同步串口接收AD數據(中斷方式),并將該數數據(中斷方式),并將該數據存放到指定據存放到指定RAM; DSP利用同步串口向利用同步串口向DA發(fā)送接收到的數據(中斷方式)。發(fā)送接收到的數據(中斷方式)。涉及器件:涉及器件:(1)DSP片內多通道緩沖串口(片內多通道緩沖串口(McBSP)(2)TLC320AD50(集成(集成A/D、D/A)整理課件一、一、 McBSP基礎基礎 McBS
48、P設計是基于標準串口擴展而來的。設計是基于標準串口擴展而來的。 McBSP主要特點:主要特點: 1:全速雙工通信:全速雙工通信 。 2:雙緩存發(fā)送和三緩存接收數據寄存器,以支持:雙緩存發(fā)送和三緩存接收數據寄存器,以支持連續(xù)傳送連續(xù)傳送。 3:直接與多媒體數字信號編解碼器的工業(yè)標準接口,以及有:直接與多媒體數字信號編解碼器的工業(yè)標準接口,以及有模擬接口和與串行模擬接口和與串行ADC/DAC的接口。的接口。整理課件McBSP的內部結構的內部結構來到的數據通過來到的數據通過DR進入端進入端口,到達接收移位寄存器口,到達接收移位寄存器(RSR);在這里被組合);在這里被組合成一個字,傳輸到接收緩成一個
49、字,傳輸到接收緩沖寄存器(沖寄存器(RBR)中;接)中;接著又傳輸到數據接收寄存著又傳輸到數據接收寄存器(器(DRR)中;最后觸發(fā))中;最后觸發(fā)CPU中斷信號或中斷信號或DMA控制控制信號讓信號讓DSP通過數據總線通過數據總線將數據取走。將數據取走。要發(fā)送的數據由數據總線要發(fā)送的數據由數據總線送入發(fā)送寄存器(送入發(fā)送寄存器(DXR)中;然后送入發(fā)送移位寄中;然后送入發(fā)送移位寄存器(存器(XSR)中;最后由)中;最后由DX串行輸出。串行輸出。當當DXR為空時觸發(fā)為空時觸發(fā)CPU中斷信號或中斷信號或DMA控制信控制信號,開始新一輪發(fā)送。號,開始新一輪發(fā)送。整理課件McBSP的寄存器結構的寄存器結構
50、nMcBSP強大的功能是通過對多種寄存器的設置來實現的。強大的功能是通過對多種寄存器的設置來實現的。與與McBSP相關的寄存器有:相關的寄存器有:n串口控制寄存器(串口控制寄存器(SPCR1,2)n管腳控制寄存器(管腳控制寄存器(PCR)n接收控制寄存器(接收控制寄存器(RCR1,2)n發(fā)送控制寄存器(發(fā)送控制寄存器(XCR1,2)n采樣率發(fā)生器寄存器(采樣率發(fā)生器寄存器(SRGR1,2)n多通道控制寄存器(多通道控制寄存器(MCR1,2)n接收通道使能寄存器(接收通道使能寄存器(RCERA,B)n發(fā)送通道使能寄存器(發(fā)送通道使能寄存器(XCERA,B)等等,這些都是存儲器映射寄存器。等等,這
51、些都是存儲器映射寄存器。整理課件McBSP的寄存器訪問的寄存器訪問nMcBSP的控制設置通過對寄存器讀寫來完成,這些寄存器的控制設置通過對寄存器讀寫來完成,這些寄存器控制工作模式或指示串口的狀態(tài)信息。訪問某個指定的寄存控制工作模式或指示串口的狀態(tài)信息。訪問某個指定的寄存器時,器時,首先首先要將相應的控制寄存器的子地址寫入子地址控制要將相應的控制寄存器的子地址寫入子地址控制器器SPSA,SPSA驅動復接器,使之與子數據控制寄存器驅動復接器,使之與子數據控制寄存器SPSD相連。接入相應子地址寄存器所在的實際物理存儲位相連。接入相應子地址寄存器所在的實際物理存儲位置,置,然后然后可可向向SPSD寫入
52、數據,數據送入前面子地址寄存器寫入數據,數據送入前面子地址寄存器所指定的內嵌數據存儲器所指定的內嵌數據存儲器,或者,或者從從SPSD讀取數,也接入所讀取數,也接入所制定的內嵌數據存儲器制定的內嵌數據存儲器。整理課件 STM SPCR1,SPSA ;SPCR1被收入子地址寄存器被收入子地址寄存器 STM #20h, SPSD ;加載子數據寄存器,完成對加載子數據寄存器,完成對 ; SPCR1的初始化的初始化RPT #5 ;進行下一個寄存器初始化之前等待進行下一個寄存器初始化之前等待 NOP STM SPCR2,McBSP0_SPSA ; SPCR2地址地址子地址寄存器子地址寄存器LDM SPSD
53、, A ;取子數據寄存器,讀取子數據寄存器,讀SPCR2RPT #5NOPMcBSP的寄存器訪問的寄存器訪問整理課件 54DSP內部有兩個可編程的多通道緩沖串口,分別為內部有兩個可編程的多通道緩沖串口,分別為McBSP0和和McBSP0,使用某個串口前要對該串口初始化。,使用某個串口前要對該串口初始化。(1)使串口復位:)使串口復位:SPCR1中的中的RRST(接收器復位)(接收器復位)=0 SPCR2中的中的XRST(發(fā)送器復位)(發(fā)送器復位)=FRST(幀同步復位)(幀同步復位) =GRST(采樣頻率復位采樣頻率復位)=0(2)按自己要求設置其它相關寄存器(串口仍保持復位狀態(tài))按自己要求設
54、置其它相關寄存器(串口仍保持復位狀態(tài))(3)使)使SPCR2中的中的GRST(采樣頻率復位采樣頻率復位)=1(4)等待不少于兩個周期,使能)等待不少于兩個周期,使能McBSP相關中斷相關中斷(5)取消第一步中的復位值,開始數據傳輸。)取消第一步中的復位值,開始數據傳輸。McBSP的初始化的初始化整理課件WR_SUB_REG.macro val, addr;寫寫McBsp控制寄存器控制寄存器stm addr,SPSAnopstm val,SPSDnop.endm wait .macro STM #0008h, AR0 ;AR0ALRPT *AR0NOP.endm McBSP的初始化的初始化整理課
55、件 ld #0, DP ssbx INTM ;關中斷關中斷ssbx SXM ;禁止符號位擴展禁止符號位擴展WR_SUB_REG #0000H,SPCR1 ;RRST(接收器復位)(接收器復位)=0WR_SUB_REG #0200H,SPCR2 ;XRST(發(fā)送器復位)(發(fā)送器復位)=FRST(幀同步復位)(幀同步復位) ;=GRST(采樣頻率復位采樣頻率復位)=0WR_SUB_REG #000CH,PCR ;幀同步脈沖取上升沿幀同步脈沖取上升沿WR_SUB_REG #0000H,SPCR1WR_SUB_REG #0000H,SPCR2 ;保持復位狀態(tài)保持復位狀態(tài)WR_SUB_REG #0040
56、H,RCR1 ;16 BITsWR_SUB_REG #0004H,RCR2 ;Ignore FS after the firstWR_SUB_REG #0040H,XCR1 ;16 BITsWR_SUB_REG #0004H,XCR2 ;Ignore FS after the firstld 100,AwaitMcBSP的初始化的初始化整理課件 andm #0ff3fh, 54h ;set interrupts to come from serial ports not DMA ;by clearing bits 6 and 7 in DMPRECstm #0,RDXRWR_SUB_REG #
57、0001H,SPCR1 ;啟動啟動McBsp串口串口WR_SUB_REG #0201H,SPCR2ld 100,Awaitaic_initstm #0h,IMR ;打開打開McBSP中斷中斷orm #0c00h,IMRstm #0ffffh,IFR McBSP的初始化的初始化整理課件二、二、 TLC320AD50引腳連接引腳連接整理課件二、二、 TLC320AD50通信方式通信方式有兩種通信方式:一次通行方式和二次通信方式。有兩種通信方式:一次通行方式和二次通信方式。一次通信一次通信:用于數據傳遞,:用于數據傳遞,16bit都作為數據位都作為數據位二次通信二次通信:可用于對:可用于對TLC32
58、0AD50進行寄存器設置,進行寄存器設置, 先將先將01H TLC320AD50,設置成二次通信;,設置成二次通信; 再將控制字再將控制字 TLC320AD50,設置控制寄存器,設置控制寄存器整理課件二、二、 TLC320AD50初始化初始化 TLC320AD50 正常工作前,必須對它進行正確的初正常工作前,必須對它進行正確的初始化。初始化的操作主要是配置始化。初始化的操作主要是配置TLC320AD50的的4個控制個控制寄存器寄存器CR1CR4。控制寄存器的讀寫是通過二次通信來??刂萍拇嫫鞯淖x寫是通過二次通信來實現的。實現的。 在二次通信中,在二次通信中,D0D7為寫入控制寄存器的控制字或為寫
59、入控制寄存器的控制字或是從寄存器讀出的數據,是從寄存器讀出的數據,D8D12決定選擇哪個寄存器,決定選擇哪個寄存器,D13位決定是讀還是寫。位決定是讀還是寫。整理課件二、二、 TLC320AD50初始化初始化整理課件二、二、 TLC320AD50RD_SUB_REG.macro addr,acc ;讀讀McBsp控制寄存器控制寄存器stm #:addr:,SPSA ;取控制寄存器地址取控制寄存器地址SPSAnopldm SPSD,acc ;控制寄存器內容控制寄存器內容ACCnopnopnop.endmWAITTRX .macro ;等待串口發(fā)送結束等待串口發(fā)送結束WAITR? RD_SUB_R
60、EG SPCR2,A ;SPCR2A and #11, A bc WAITR?, AEQ ;SPCR2的的D1 ?= 0,XRDY=0:發(fā)送未完成:發(fā)送未完成 .endmPROGREG .macro progword;AD50初始化初始化 stm #01h,RDXR ;第一次通信:第一次通信:01HAD50,準備二次通信,準備二次通信 WAITTRX stm #:progword:,RDXR ;二次通信:控制字二次通信:控制字AD50控制寄存器控制寄存器 WAITTRX .endm 整理課件二、二、 TLC320AD50 PROGREG 0000001100000001b ;初始化;初始化CR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 手術危急重癥個案護理
- 2025年湖南省安全員-C證復審考試題及答案
- 教育學教師的教學
- 信息技術 第二冊(五年制高職)課件 9.1.5 人工智能與傳統行業(yè)的融合
- 思維導圖集訓6小時找到適合你的高效學習法第5講 職業(yè)生涯規(guī)劃讓你看清十年后的自己
- 學校領導的思維方式與工作方法-培訓課件
- 建筑相關知識
- 2025房地產經紀人《房地產經紀職業(yè)導論》考前必練題庫500題(含真題、重點題)
- 密碼法培訓知識講座
- 教師地震安全培訓
- 輪機工程船舶柴油機主動力推進裝置培訓課件
- 森林區(qū)劃-組織森林經營類型(森林資源經營管理)
- 灰棗種植技術
- 醫(yī)院污水處理技術指南(環(huán)發(fā)2023年197號2023年20實施)
- 求職登記表(標準模版)
- 高中歷史 統編版 必修 《中外歷史綱要》(下) 多元與交融:文明網絡的初構《古代文明的產生與發(fā)展》第2課時 古代世界的帝國與文明的交流 課件
- 智慧景區(qū)建設實務 智慧景區(qū)視頻監(jiān)控系統
- 簡單實用電子簡歷表格,個人簡歷模板word格式
- 備考2023新高考英語聽力12(答案聽力原文)
- GB/T 23724.1-2016起重機檢查第1部分:總則
- GB 2707-2016食品安全國家標準鮮(凍)畜、禽產品
評論
0/150
提交評論