寄存器中断逻辑和定时器1

上传人:新** 文档编号:588265488 上传时间:2024-09-07 格式:PPT 页数:104 大小:5.82MB
返回 下载 相关 举报
寄存器中断逻辑和定时器1_第1页
第1页 / 共104页
寄存器中断逻辑和定时器1_第2页
第2页 / 共104页
寄存器中断逻辑和定时器1_第3页
第3页 / 共104页
寄存器中断逻辑和定时器1_第4页
第4页 / 共104页
寄存器中断逻辑和定时器1_第5页
第5页 / 共104页
点击查看更多>>
资源描述

《寄存器中断逻辑和定时器1》由会员分享,可在线阅读,更多相关《寄存器中断逻辑和定时器1(104页珍藏版)》请在金锄头文库上搜索。

1、ADSP21160ADSP21160寄存器寄存器 ADSP21160ADSP21160寄存器分类:寄存器分类:1 1)运算单元寄存器)运算单元寄存器2 2)系统控制和状态寄存器)系统控制和状态寄存器 3 3)程序控制寄存器)程序控制寄存器4 4)数据地址产生寄存器()数据地址产生寄存器(DAG1DAG1,DAG2DAG2) 5 5)I/OI/O处理器寄存器处理器寄存器 运算单元寄存器运算单元寄存器运算单元寄存器主要为运算单元的ALU、乘法器、移位器保存输入、输出数据,主要包括:(1)通用数据寄存器Rx,Sx,Fx(x=015);(2)乘法结果寄存器MRFx,MRBx(x=02);其中MRFx称

2、为前台寄存器;MRBx称为后台寄存器;主要用于存放80位定点乘法结果;注:通常也把总线交换寄存器PX,算作运算单元寄存器;系统控制和状态寄存器系统控制和状态寄存器主要功能是配置处理器核的操作模式,同时标识处理器核的工作状态,作为条件程序执行的判别条件。对系统控制类寄存器的写入操作有1个周期的延迟,在写入后的第二个周期才有效。系统系统控制和状态控制和状态寄存器续寄存器续寄存器名寄存器名初始值初始值MODE1模式控制寄存器模式控制寄存器10x00000000MODE2模式控制寄存器模式控制寄存器20xnn000000MMASK模式屏蔽寄存器模式屏蔽寄存器0x00200000ASTATx,ASTAT

3、y运算状态寄存器运算状态寄存器0x00000000STKYx,STKYy附加运算状态寄存器附加运算状态寄存器0x00540000USTATx(x1-4)用户定义状态寄存器用户定义状态寄存器0x00000000MODE1寄存器的位定义表寄存器的位定义表Bit(s)NameDefinition0BR8索引寄存器索引寄存器I8位反序使能,位反序使能,1使能使能I8位反序寻址;位反序寻址;0正常寻址正常寻址1BR0索引寄存器索引寄存器I0位反序使能,位反序使能,1使能使能I0位反序寻址;位反序寻址;0正常寻址正常寻址2SRCU运算单元备用寄存器选择,运算单元备用寄存器选择,1使能使能MR备用寄存器;备

4、用寄存器;0只能用主只能用主MR寄存器寄存器3SRD1HDAG1高高4(74)寄存器备用使能,)寄存器备用使能,1使能备用寄存器,使能备用寄存器,0只使用主寄存器只使用主寄存器4SRD1LDAG1低低4(30)寄存器备用使能,)寄存器备用使能,1使能备用寄存器,使能备用寄存器,0只使用主寄存器只使用主寄存器5SRD2HDAG2高高4(74)寄存器备用使能,)寄存器备用使能,1使能备用寄存器,使能备用寄存器,0只使用主寄存器只使用主寄存器6SRD2LDAG2低低4(30)寄存器备用使能,)寄存器备用使能,1使能备用寄存器,使能备用寄存器,0只使用主寄存器只使用主寄存器7SRRFH数数据据寄寄存存

5、器器(R15R8)备备用用选选择择使使能能,1使使能能备备用用寄寄存存器器;0只只使使用用主主寄寄存器存器98保留保留10SRRFL数数据据寄寄存存器器(R7R0)备备用用选选择择使使能能,1使使能能备备用用寄寄存存器器;0只只使使用用主主寄寄存存器器11NESTM中断嵌套使能,中断嵌套使能,1允许中断嵌套;允许中断嵌套;0禁止中断嵌套禁止中断嵌套12IRPTEN全局中断使能,全局中断使能,1使能所有可屏蔽中断;使能所有可屏蔽中断;0禁止响应所有可屏蔽中断禁止响应所有可屏蔽中断MODE1寄存器的位定义表续寄存器的位定义表续Bit(s)NameDefinition13ALUSATALU饱和处理使

6、能,饱和处理使能,1ALU定点溢出进行饱和处理;定点溢出进行饱和处理;0不进行饱和处理不进行饱和处理14SSE定点短字符号扩展使能,定点短字符号扩展使能,1符号扩展到高符号扩展到高16位;位;0高高16位填位填015TRUNC截取模式选择,截取模式选择,1靠近靠近0截取;截取;0截取到最近的数截取到最近的数16RND3232位浮点数据截取方式选择,位浮点数据截取方式选择,1截取到截取到32位;位;0截取到截取到40位位1817CSELADSP总线控制状态,总线控制状态,00ADSP控制总线,控制总线,01,10,11ADSP不控制总线不控制总线2019保留保留21PEYENSIMD模式使能,模

7、式使能,1使能使能PEy计算单元,使能计算单元,使能SIMD;0禁止禁止PEy,SISD模式模式22BTCST9通通过过地地址址寄寄存存器器I9广广播播使使能能,1将将PM总总线线上上的的数数据据广广播播到到两两个个运运算算单单元元的的相相应寄存器中,应寄存器中,0禁止广播方式禁止广播方式23BTCST1通通过过地地址址寄寄存存器器I0广广播播使使能能,1将将DM总总线线上上的的数数据据广广播播到到两两个个运运算算单单元元的的相相应寄存器中,应寄存器中,0禁止广播方式禁止广播方式24CBUFEN环形缓冲寻址使能,环形缓冲寻址使能,1使能环形缓冲寻址;使能环形缓冲寻址;0线性寻址线性寻址3125

8、保留保留MODE2寄存器位定义表寄存器位定义表IRQ0触发方式选择触发方式选择,1下降沿触发;下降沿触发;0低电平触发低电平触发IRQ1触发方式选择触发方式选择,1下降沿触发;下降沿触发;0低电平触发低电平触发IRQ2触发方式选择触发方式选择,1下降沿触发;下降沿触发;0低电平触发低电平触发Bit(s)NameDefinition0IRQ0E1IRQ1E2IRQ2E3保留保留4CAIDS指令缓存禁止,指令缓存禁止,1禁止指令缓存;禁止指令缓存;0开启指令缓存开启指令缓存5TIMEN定时器使能,定时器使能,1使能定时器;使能定时器;0禁止定时器禁止定时器6BUSLK外部总线请求锁定,外部总线请求

9、锁定,1ADSP控制总线,请求锁定总线;控制总线,请求锁定总线;0不请求锁定总线不请求锁定总线147保留保留15FLAG0OFLAG0输入输出选择,输入输出选择,1作为输出;作为输出;0作为输入作为输入MODE2寄存器位定义表续寄存器位定义表续16FLAG1OFLAG1输入输出选择,输入输出选择,1作为输出;作为输出;0作为输入作为输入17FLAG2OFLAG2输入输出选择,输入输出选择,1作为输出;作为输出;0作为输入作为输入18FLAG3OFLAG3输入输出选择,输入输出选择,1作为输出;作为输出;0作为输入作为输入19CAFRZ指令缓存冻结,指令缓存冻结,1冻结指令缓存,禁止刷新,保持原

10、值;冻结指令缓存,禁止刷新,保持原值;0允许指令缓存刷新允许指令缓存刷新20IIRAE是否检测非法寄存器访问,是否检测非法寄存器访问,1允许检测;禁止检测允许检测;禁止检测21U64MAE是否检测对非连续的是否检测对非连续的64位长字存储器空间的访问,位长字存储器空间的访问,1检测;检测;0禁止检测禁止检测2422保留保留2725PID20处理器处理器ID号号2928芯片版本号芯片版本号3130PID43处理器处理器ID号。号。ASTATx运算状态运算状态寄存器表寄存器表Bit(s)NameDefinition0AZ1ALU操作结果为操作结果为0;0ALU操作结果为非操作结果为非0或者浮点下溢

11、或者浮点下溢1AV1ALU操作结果溢出;操作结果溢出;0ALU操作结果不溢出操作结果不溢出2AN1ALU最后一次操作结果为负数;最后一次操作结果为负数;0ALU最后一次操作结果为正数最后一次操作结果为正数3AC1ALU最后一次定点操作结果有进位;最后一次定点操作结果有进位;0ALU最后一次定点操作结果无进位最后一次定点操作结果无进位4AS1ALU的的ABS或者或者MANT操作操作输入数为负;操作操作输入数为负;0ALU操作输入为正数操作输入为正数5AI1ALU浮点操作无效;浮点操作无效;0ALU浮点操作有效浮点操作有效6MN1乘法器操作结果负数;乘法器操作结果负数;0乘法器操作结果为正数乘法器

12、操作结果为正数7MV1乘法器操作结果溢出;乘法器操作结果溢出;0乘法器操作结果不溢出乘法器操作结果不溢出8MU1乘法器浮点操作结果下溢出;乘法器浮点操作结果下溢出;0乘法器浮点操作结果未下溢出乘法器浮点操作结果未下溢出ASTATxASTATx运算状态寄存器表续运算状态寄存器表续 9MI1乘法器浮点操作数无效;乘法器浮点操作数无效;0乘法器浮点操作数有效乘法器浮点操作数有效10AF1ALU操作数是浮点数;操作数是浮点数;0ALU操作数是定点数操作数是定点数11SV1移位器操作结果溢出;移位器操作结果溢出;0移位器操作结果不溢出移位器操作结果不溢出12SZ1移位器操作结果为移位器操作结果为0;0移

13、位器操作结果不为移位器操作结果不为013SS1移位器操作输入数为负数;移位器操作输入数为负数;0移位器操作输入数为正数移位器操作输入数为正数17-14保留保留18BTF系统寄存器位测试标志系统寄存器位测试标志23-19保留保留3124CACC比比较较累累加加移移位位寄寄存存器器。位位31为为ALU最最后后一一次次输输入入的的两两个个操操作作数数比比较较的的结结果果。1X输输入入较较大大;0Y输输入入较较大大。其其它它7位位构构成成一一个个右右移移寄寄存存器器,每每位位存存储储一一个个前前面面比比较较的的结结果果,伴伴随随着着每每一一次次新新的的比比较较,DSP右右移移CACC中中的的值值,总总

14、是是把把最新的值放在最新的值放在31位,最旧的值放在位,最旧的值放在24位位3)程序控制寄存器(如下页图)程序控制寄存器(如下页图)ADSP程序控制寄存器引导指令的执行,主要实现以下操作:1.指令流水指令流水2.程序和循环堆栈程序和循环堆栈3.定时器操作定时器操作4.中断锁存与屏蔽中断锁存与屏蔽程序控制寄存器表寄存器名说明初始值PC程序计数器未定义PCSTK程序计数堆栈寄存器(保存PC堆栈栈顶地址)未定义PCSTKP程序计数器堆栈指针寄存器(存放PC堆栈已用数,其值为031,PC空0,PC满31)未定义FADDR取指寄存器,存放三级流水第一步取指令地址未定义DADDR译码寄存器,存放三级流水第

15、二步译码指令地址未定义LADDR循环地址堆栈寄存器,32位宽,6级深度,每级存放24位循环终止地址,5位终止代码,2位循环类型码未定义CURLCNTR当前循环计数寄存器,存放循环已被执行的次数未定义LCNTR定时器的计数寄存器未定义TPERIOD定时器周期计数寄存器未定义TCOUNT定时器计数寄存器未定义IRPTL中断锁存寄存器0x00000000IMASK中断屏蔽寄存器0x00000003IMASKP中断屏蔽指针寄存器0x00000000LIRPTL链路口中断寄存器0x00000000FLAGSFLAG标志寄存器0x000000004)数据地址产生器(DAG1,DAG2) 数据地址产生寄存器

16、主要为访问数据和指令产生地址,并自动修改地址,实现连续的地址空间访问,同时也能实现环形缓冲寻址等操作,但它们不参与数值运算。地址产生器地址产生器DAG1寄存器寄存器(DM)地址产生器地址产生器DAG2寄存器寄存器(PM)I0I7I8I15M0M7M8M15B0B7B8B15L0L7L8L15(DAG1,DAG2)寄存器说明表寄存器说明表寄 存 器名说明初始值I0-I7DAG1索引寄存器,保存指向存储器的地址未定义M0-M7DAG1修改寄存器,为I寄存器提供地址修改量未定义B0-B7DAG1基址寄存器,为环形缓冲区操作提供起始地址未定义L0-L7DAG1长度寄存器,为环形缓冲区操作提供缓冲区长度

17、未定义I8-I15DAG2索引寄存器,保存指向存储器的地址未定义M8-M15DAG2修改寄存器,为I寄存器提供地址修改量未定义B8-B15DAG2基址寄存器,为环形缓冲区操作提供起始地址未定义L8-L15DAG2长度寄存器,为环形缓冲区操作提供缓冲区长度未定义环形缓冲区操作MODE1寄存器的位定义表续Bit(s)NameDefinition13ALUSATALU饱和处理使能,1ALU定点溢出进行饱和处理;0不进行饱和处理14SSE定点短字符号扩展使能,1符号扩展到高16位;0高16位填015TRUNC截取模式选择,1靠近0截取;0截取到最近的数16RND3232位浮点数据截取方式选择,1截取到

18、32位;0截取到40位1817CSELADSP总线控制状态,00ADSP控制总线,01,10,11ADSP不控制总线2019保留21PEYENSIMD模式使能,1使能PEy计算单元,使能SIMD;0禁止PEy,SISD模式22BTCST9通过地址寄存器I9广播使能,1将PM总线上的数据广播到两个运算单元的相应寄存器中,0禁止广播方式23BTCST1通过地址寄存器I0广播使能,1将DM总线上的数据广播到两个运算单元的相应寄存器中,0禁止广播方式24CBUFEN环形缓冲寻址使能,1使能环形缓冲寻址;0线性寻址3125保留M为正时环形缓冲区计算方法环形缓冲区操作注意事项11.1.地址修改只能采用后修

19、改方式地址修改只能采用后修改方式,即可用,即可用M M寄存器寄存器(与(与I I寄存器在相同寄存器在相同DAGDAG中,但不必同号数,如中,但不必同号数,如I0I0和和M3M3),也可采用立即数),也可采用立即数; ;2.2.但不管修改值是来自但不管修改值是来自M M寄存器还是立即数,寄存器还是立即数,其修改其修改值大小不能超出循环缓冲区的长度(值大小不能超出循环缓冲区的长度(L L寄存器值)。寄存器值)。3. 3. 循环缓冲区的长度(循环缓冲区的长度(L L寄存器值)必须是正值且寄存器值)必须是正值且不能超过不能超过2 231311 1,如循环缓冲区长度为零,则循如循环缓冲区长度为零,则循环

20、缓冲区操作被环缓冲区操作被DISABLEDISABLE。环形缓冲区操作注意事项环形缓冲区操作注意事项24.B寄存器被装入某个值时,同时I寄存器被装入相同的值。但I寄存器被装入某个值时,B寄存器的值不变。5.M寄存器既可以是正值,也可以是负值。 注:在上个例子中意味着 B00x55000, M10x4M寄存器可以是负值初始时I寄存器中的值等于B寄存器的值;在第一次环形缓冲区访问时,I寄存器的值更新为B+L;然后开始递减访问缓冲区。5.I/O处理器寄存器处理器寄存器I/O处理器寄存器组列表I/O处理器寄存器组列表续 I/O处理器寄存器分为以下几组:系统控制寄存器组;DMA缓冲寄存器组;链路和串行口

21、寄存器组; I/O处理器寄存器控制如下操作lExternal port DMA ;lLink port DMA ;lSerial port DMA ;I/O处理器寄存器访问方法处理器寄存器访问方法除DMA操作外,ADSP结构不支持在I/O寄存器与内部存储器地址单元间传递数据,要读写I/O处理器,必须要用处理器核寄存器作为中介。例如要向WAIT寄存器赋值情况如下:USTAT10x08421;DM(WAIT)USTAT1;下面我们就一些重要的IO寄存器进行详细的讲解SYSCON-系统控制寄存器位定义表系统控制寄存器位定义表续1系统控制寄存器位定义表续2系统控制寄存器位定义表续33123位保留未用S

22、YSCON寄存器的位定义寄存器的位定义1.SRST(位位0):软件复位,通过软件将该位置1,DSP响应不可屏蔽中断RSTI,并将该位清0。2.BSO(位位1):引导方式选择重载,1DSP使用BMS有效,从片外存储器空间加载程序。3IIVT(位位3):):内部中断向量表,对于ADSP21160来说1不管加载任何模式配置,强制将中断向量表放到0x40000地址(基地址);0根据加载模式选择放置。4. IMDW0(4. IMDW0(位位9)9):片内存储器块0数据宽度设置,140位,032位。SYSCON寄存器的位定义续寄存器的位定义续15.IMDW1(位位10):片内存储器块1数据宽度设置,140

23、位,032位。6.MSIZE(位位1512):外部存储器块大小设置MSIZElog2(块大小)13。SYSCONSYSCON寄存器的位定义续寄存器的位定义续 ADSP21160ADSP21160中断逻辑与定时器中断逻辑与定时器 1.中断逻辑 ADSP21160ADSP21160内部提供了丰富的中断资源。内部提供了丰富的中断资源。 a.a.在外部中断方面:在外部中断方面: 复位中断; 仿真器中断; 三个外部输入中断。 b.在内部中断方面有: 非法输入中断; 运算错误中断; 链路服务请求中断; 定时器中断; 堆栈溢出中断; 多处理器中断; 环形缓冲区溢出中断; DMA控制中断; 用户自定义软件中断

24、等。ADSPSHARC系列处理器的三个外部中断系列处理器的三个外部中断输入方式有两种输入方式有两种:电平触发方式电平触发方式和沿触发方式。沿触发方式。触发方式的选择通过设置触发方式的选择通过设置MODE2寄存器来完成,寄存器来完成,其定义方式如下表:其定义方式如下表:BitNameDefine0IRQ0E1-下降沿下降沿触发;触发;0低电平触发低电平触发1IRQ1E1-下降沿下降沿触发;触发;0低电平触发低电平触发2IRQ2E1-下降沿下降沿触发;触发;0低电平触发低电平触发使用内外部中断时应注意的几点: 1.1.对上述内、外部中断,除了对上述内、外部中断,除了仿真器中断仿真器中断和和复位中断

25、复位中断不可不可以屏蔽外,其余中断都是可以屏蔽的。以屏蔽外,其余中断都是可以屏蔽的。 2.2.除了不可屏蔽中断和引导加载中断除了不可屏蔽中断和引导加载中断EP0IEP0I或者或者LP4ILP4I外,所外,所有中断在系统复位时都默认被屏蔽。有中断在系统复位时都默认被屏蔽。3.3.当我们要使用某种中断时,必须具备以下条件:当我们要使用某种中断时,必须具备以下条件:4.4.通常,当一个中断正在执行服务期间,通常,当一个中断正在执行服务期间,ADSPADSP系列处理器系列处理器在在每个周期每个周期都会对都会对该中断锁存寄存器的相应中断标志位该中断锁存寄存器的相应中断标志位进行进行清零清零,以,以禁止禁

26、止在在执行该中断服务执行该中断服务的过程中的过程中再次允许再次允许该中断锁存该中断锁存。 下面介绍下面介绍IRPTL、IMASK和和IMASKP使用某种中断时,必须具备的条件:使用某种中断时,必须具备的条件: 1)1)将系统寄存器将系统寄存器MODE1MODE1中全局中断使能位中全局中断使能位 IRPTENIRPTEN置置1 1;2)2)将将IMASKIMASK寄存器中相应的中断屏蔽位置寄存器中相应的中断屏蔽位置1 1;3)3)中中断断请请求求到到达达后后,中中断断锁锁存存寄寄存存器器IRPTLIRPTL的的相相应应位位置置1,1,并并且且中中断断所所存存寄寄存存器器中中没没有有优优先先级级更

27、更高高的的中中断断标标志位被置志位被置1 1; 满足上述三个条件的中断发生时DSP将执行以下操作(1)输出相应的中断向量地址;(2)将当前的程序计数器PC值压入PC堆栈;(3)如果中断源是外部中断、内部定时器中断或者多 处理器向量中断,程序控制器还要将ASTAT和 MODE1寄存器中的当前值压入状态堆栈中。(4)设置中断锁存寄存器IRPTL的相应标志位;(5)改变中断屏蔽指针寄存器IMASKP的相应位,反 映当前的中断嵌套状态。(6)DSP运行中断向量地址指示的中断服务程序, 完成中断处理任务,最后执行RTI指令。 Instr1;/中断程序入口JUMP(PC,3)(DB,CI);/清除中断状态

28、,/跳转到PC3地址单/元(instr5)顺序执行Instr3;/在延迟分支里执行Instr4;/在延迟分支里执行Instr5;RTS(LR);采用RTS(LR)指令返回到程序举例 RTI指令将完成的操作 (1)返回到PC堆栈顶部的地址;(2)弹出PC堆栈栈顶中的值;(3)如果ASTAT和MODE1寄存器压栈了,则弹 出ASTAT寄存器和MODE1寄存器中的值;(4)清除中断锁存寄存器中的相应位,并将中断屏蔽指针寄存器的相应位清零; 返回1IRPTL、IMASK和IMASKPIRPTLIRPTL中断锁存寄存器中断锁存寄存器指示中断锁存状态,在上电复位后,其初始值为0x0000 0000。IMA

29、SKIMASK中断屏蔽寄存器中断屏蔽寄存器除仿真器中断和复位中断不可以屏蔽外,其余中断都是可以屏蔽的,在上电复位后,其初始值为0x0000 0003,相应位定义同IRPTL。IMASKPIMASKP中断屏蔽指针寄存器中断屏蔽指针寄存器反映当前中断嵌套情况,在上电复位后,其初始值为0x0000 0000,相应位定义同IRPTL。IRPTL、IMASK和IMASKP寄存器的未位义如下图:IRPTL、IMASK和IMASKPIRPTL位定义表续IRPTL位定义表续IRPTL位定义表续IRPTL位定义表续2.中断嵌套 ADSP处理器支持多级中断嵌套;中断嵌套由MODE1,IRPTL,IMASKP寄存器

30、的相关位控制;设置MODE1寄存器的NESTM嵌套模式位为1,就可以使能中断嵌套;反之NESTM位清零,禁止中断嵌套。2. 2. 中断嵌套中断嵌套( (续续) )注意注意NESTMNESTM1 1时,允许在中断服务过程时,允许在中断服务过程中处理高优先级的中断,但对同级或者中处理高优先级的中断,但对同级或者低优先级的中断请求不予处理。低优先级的中断请求不予处理。3. 多处理器向量中断在多处理器系统中,ADSPSHARC系列处理器支持多处理器向量中断,通过向量中断寄存器(VIRPT)的设置,允许外部主机或者其它主机向VIRPT寄存器中写入一个新的向量地址。注:多处理器向量中断不作为本课程讲解的重

31、点,大家了解就可以了。4. 4. 定时器定时器 在ADSP21160内部只有一个可编程定时器,用来实现以下功能:1. 产生定时事件2. 实现计数事件3. 产生标准脉冲4. 中断处理器5. 测量输入脉冲 定时器的使用和设置方法ADSP21160通过对内部寄存器: TCOUNT(计数寄存器) TPERIOD(周期寄存器) 两个寄存器进行编程,从而在TIMEXP引脚 产生定时脉冲输出;同时产生两个定时中断: TMZHI(高优)和TMZLI(低优)。定时器的使用和设置方法(续)定时器的启动和禁止:定时器的启动和禁止: 是通过设置是通过设置MODE2MODE2的的TIMENTIMEN位来完成;位来完成;

32、 如果该位被如果该位被置置1 1, 启动启动定时器;定时器; 如果该位被如果该位被清零清零,禁止禁止定时器。定时器。注意:在启动定时器之前,应该先将注意:在启动定时器之前,应该先将TCOUNTTCOUNT和和TPERIODTPERIOD寄存器设置好。例如:寄存器设置好。例如: TPERIODN1;/间隔周期数TCOUNTPERIOD;/初始化TCOUNTBITSETIMASK0x10;/允许定时中断BITSETMODE10x1000;/全局中断使能BITSETMODE20x20;/定时器使能INTW:IDEL;/程序在本条语句和下条语句JUMPINTW;/之间循环等待中断产生ADSP21160

33、中断向量表ADSP21160中断向量表续ADSP21160中断向量表续中断向量表续中断向量编程示例中断向量编程示例.section/pmseg_rth;_lib_EMUI:NOP;NOP;NOP;NOP;/对于ADSP2106该位保留_lib_RSTI:NOP;jumpstart_ID2;NOP;NOP;_lib_IICD:NOP;NOP;NOP;NOP;/对于ADSP2106该位保留_lib_SOVFI: RTI;RTI;RTI;RTI;_lib_TMZHI:NOP;JUMPtimer_int;NOP;NOP;_lib_VIRPTI:RTI;RTI;RTI;RTI;_lib_IRQ2I:RT

34、I;RTI;RTI;RTI;_lib_IRQ1I:RTI;RTI;RTI;RTI;_lib_IRQ0I:RTI;RTI;RTI;RTI;NOP;NOP;NOP;NOP;/该位保留_lib_SPR0I:RTI;RTI;RTI;RTI;_lib_SPR1I:RTI;RTI;RTI;RTI;中断向量编程示例续中断向量编程示例续_lib_SPT0I:NOP;JUMPSTx0_int;NOP;NOP;_lib_SPT1I:NOP;JUMPSTx1_int;NOP;NOP;_lib_LP2I:RTI;RTI;RTI;RTI;_lib_LP3I:RTI;RTI;RTI;RTI;_lib_EP0I:RTI;R

35、TI;RTI;RTI;_lib_EP1I:RTI;RTI;RTI;RTI;_lib_EP2I:RTI;RTI;RTI;RTI;_lib_EP3I:RTI;RTI;RTI;RTI;_lib_LSRQ:RTI;RTI;RTI;RTI;_lib_CB7I:RTI;RTI;RTI;RTI;_lib_CB15I:RTI;RTI;RTI;RTI;_lib_TMZLI: RTI;RTI;RTI;RTI;.ENDSEG;中断向量表在存储区中的存放位置中断向量表可以放在DSP内部存储区,也可以放在DSP外部存储区,随DSP芯片型号的不同而不同;ADSP21160M内部存储区中断向量表的基地址为0x0004000

36、0,而外部存储区基地址为0x00800000;DMA(DirectMemoryAccessing)利用DMA控制器,可以实现以下几种类型的数据传输以下几种类型的数据传输ADSP21160内部结构图ADSP21160的的I/OI/O处理器结构图处理器结构图IOP内部结构框图ADSP21160的DMA通道与数据缓冲区DMADMA传输的优先级传输的优先级由由于于ADSPSHARC系系列列处处理理器器提提供供了了多多个个DMA通通道道,在在某某一一个个时时钟钟周周期期可可能能会会出出现现多多个个DMA通通道道的的请请求求,处处理器则采用了优先级机制控制为理器则采用了优先级机制控制为DMA通道服务。通道

37、服务。上上表表中中从从上上到到下下优优先先级级逐逐渐渐降降低低,DMA通通道道0优优先先级级最最高高,其其中中除除了了串串行行口口对对应应的的DMA通通道道采采用用固固定定优优先先级级外外,链链路路口口和和外外部部口口既既可可以以设设置置为为固固定定优优先先级级,也也可可以以设设置为循环优先级。置为循环优先级。如如果果设设置置为为固固定定优优先先级级,仍仍遵遵循循表表中中通通道道号号顺顺序序,从从上到下优先级逐渐降低。上到下优先级逐渐降低。当当然然,此此时时也也可可以以通通过过指指定定另另一一个个通通道道为为最最高高优优先先级级,重新定义外部口的重新定义外部口的固定优先级次序。固定优先级次序。

38、 链链路路口口和和外外部部口口的的循循环环优优先先级级可可以以通通过过对对SYSCONSYSCON寄寄存存器的器的LDCPRLDCPR位位或或DCPRDCPR位位进行设置。进行设置。DMA参数寄存器IIx,IMx,Cx,CPx,GPx,EIx,EMx,ECx,DAx,DBx1.内部参数寄存器:IIx,IMx,Cx,CPx,GPxIIx内部索引寄存器:存放相对于内部存储器基地址的偏移地址IMx内部修改寄存器Cx计数寄存器:16位,对传输次数减计数,初始为数据块长度,每传输一个数据,自动减1,减到零时,产生该DMA中断CPx链式指针寄存器,用于链式DMA操作GPx通用寄存器,通常也用于链式DMA操

39、作DMA参数寄存器续2.外部参数寄存器:1) EIx,EMx,ECx 用于外部口DMA通道的32位参数寄存器,它们的功能和内部参数寄存器类似。EIx 外部索引寄存器;EMx 外部修改寄存器;ECx 外部计数寄存器; 2) DAx,DBx是两个16位的维数寄存器,用于串行口和链路口DMA通道,存放二维DMA传输的阵列地址,当然也可以用于一维DMA操作。 DMA控制寄存器1.外部口DMA控制寄存器DMACx控制外部口各个DMA通道的操作模式,可配置成5种模式。具体位定义略。1)主机模式2)同步主机模式3)从机模式4)握手模式5)外部握手模式DMA控制寄存器2.串行口DMA控制寄存器串行口发送和接收

40、控制寄存器:串行口发送和接收控制寄存器:STCTLxSRCTLx(x=01)上述两个寄存器中与DMA控制相关的位如下表DMA控制寄存器3.链路口链路口DMA控制寄存器控制寄存器LCTLx:与与DMA控制相关的位列表控制相关的位列表DMA通道的建立1.1.外部口外部口DMADMA传输通道的建立传输通道的建立2.(1) 首先设置DMA参数寄存器:3. IIx,IMx,Cx,CPx,EIx,EMx,Ecx;4.(2) 定义内部存储器缓冲区:5. 缓冲区大小、起始地址、地址增量、外部口寻址区间、地址增量等;6.(3) 然后设定DMA通道控制寄存器:7. 定义数据传输方向、数据打包模式、握手模式、并使能

41、DMA传输;8. 上述设定结束后,DMA数据就自动开始从后台传输,直到数据传输完毕,产生DMA中断。DMA通道的建立续2.I/O口DMA传输通道的建立(1)首先要配置I/O口;(2)然后设定内部存储区DMA参数寄存器;(3)最后设置I/O口控制寄存器,定义数据传输方向,数据格式,并使能DMA传输。I/O数据传输过程: 接收数据当数据到达I/O口缓冲区时,I/O口自动将数据送到内部存储区; 发送数据自动从内部存储区将数据取出送到I/O口缓冲区,进行发送。链式DMA传输简介链式DMA传输:就是允许ADSPSHARC系列处理器在一次DMA传输完成后自动将DMA参数寄存器载入新值,开始一次新的DMA传

42、输。上述特性使得处理器在无须处理器核干预的情况下进行无限制的多重DMA传输,但每个DMA操作有不同的属性。二维DMA传输简介二维DMA模式可以将存储区中的传输数据块当作一个数据阵列,因而对那些执行矩阵操作的DSP算法非常有用,可以大大简化程序设计,提高算法执行效率。二维DMA模式只适用于链路口和串行口所对应的DMA通道。二维DMA模式设置方法将链路口或串行口的控制寄存器中L2DMA位或D2DMA位置1,并使能DMA传输。串行口 在我们讲解DSP串口之前,还是让我们回顾一下RS232C串行口。1.为什么RS232C串行口被如此广泛的应用?2.RS232C所采用的核心芯片是什么?3.RS232C扩

43、展 (1)RS485 (2)RS442ADSP处理器串行口ADSP SHARC系列处理器有两个独立的同步串行口SPORT0和SPORT1,为与外部数字或模拟器件连接提供了一种灵活、简捷的I/O接口;每个串行口都有自己的一套控制寄存器和数据缓冲区,而且支持可编程的串行时钟和帧同步选择。ADSPSHARC串行口的功能 (1)每个串行口都有独立的发送与接收通道,能够同时进行全双工收/发数据; (2)为与外设接口双向通信提供了6条或者8条简捷的硬件连接线; (3)具有双数据缓冲结构; (4)发送或者接收数据时,有集成的可选硬件压扩(A律或u律)功能;ADSP SHARC串行口的功能续(5)能实现与内部

44、处理器间在ADSP核控制下的中断触发的单字传输;(6)每个串行口都支持两种传输模式:DMA块传输和单字传输,实现串行口与内部存储器间的数据发送或接收;(7)支持多种操作模式:标准模式、IZS模式和TDM接口的多通道模式;(8)可编程实现332位数据传输,可以先传高位或者先传低位ADSP21160的串行口内部结构图串行口的引脚描述ADSP21160每个串行口共有6个引脚如下:串行口控制寄存器和数据缓冲表串行口控制寄存器和数据缓冲表续串行口发送和接收控制寄存器串口模式的设置:从上面的表格可以了解到(1)串口控制寄存器是IOP寄存器;(2)对于每一个串行口都有自己一套独立的控制寄存器,可以利用处理器

45、核寄存器对这些寄存器进行读写;注: (1)对串口寄存器写入新的值存在一个周期的延迟, (2)对于串行口的使能,要经过两个输入时钟周期,串行口才能开始发送或接收数据。串行口发送控制寄存器STCTLx位定义表在标准模式下数据格式:在标准模式下数据格式:在多通道模式下数据格式:在多通道模式下数据格式:串行口发送控制寄存器STCTLx位定义表续ADSP串行口设计和编程注意事项注意1,我们在编程时,首先是设置控制寄存器,使能同步串行口传输,然后如果是发送数据,只需把数据送入TX缓冲区;如果是接收数据是从RX缓冲区取数。注意2,DSP的SPORT不是我们学习IBMPC硬件接口电路时所讲的UART,所以不能

46、直接和一个RS232设备通讯。注意,有两种方法可以复位SPORT串行口。一种是利用RESET引脚硬件复位法,另一种是通过对STCTLx和SRCTLx寄存器中串行口使能位SPEN位的清零,进行软件复位SPORT串行口。串口模式的设置串口模式的设置 首先串口控制寄存器是首先串口控制寄存器是IOPIOP寄存器寄存器( (存储器映射存储器映射寄存器,所以不能直接和存储器交换数据,须寄存器,所以不能直接和存储器交换数据,须处理器核寄存器作为中介处理器核寄存器作为中介) ),对于每一个串行,对于每一个串行口都有自己一套独立的控制寄存器,可以利用口都有自己一套独立的控制寄存器,可以利用处理器核寄存器对这些寄

47、存器进行读写,但应处理器核寄存器对这些寄存器进行读写,但应注意的是,对这些寄存器写入新的值存在一个注意的是,对这些寄存器写入新的值存在一个周期的延迟,对于串行口的使能,要经过两个周期的延迟,对于串行口的使能,要经过两个输入时钟周期,串行口才能开始发送或接收数输入时钟周期,串行口才能开始发送或接收数据。据。 串行口的应用编程串行口的应用编程串行口的应用编程,关键就是对发送控串行口的应用编程,关键就是对发送控制寄存器(制寄存器(STCTLxSTCTLx)和接收控制寄存器)和接收控制寄存器(SRCTLxSRCTLx)的设置,上述两个寄存器的)的设置,上述两个寄存器的位除位除21212828有所不同外

48、,基本上相对应。有所不同外,基本上相对应。当需要重新设定串行口的操作模式时,当需要重新设定串行口的操作模式时,应首先将串行口控制寄存器清零,然后应首先将串行口控制寄存器清零,然后再写入新的控制数据。再写入新的控制数据。串行口发送、接收时钟频率计算公式fRCLK串行口接收时钟频率;fTCLK串行口接收时钟频率TCLKDIV发送分频系数;RCLKDIV接收分频系数fCCLK处理器核时钟频率;串口帧同步频率 (1)每来一个时钟脉冲,就会传输1位数据。 (2)在每个字或者数据块发送或者接收的开始,串口要产生帧发送同步信号TFSx或者RFSx。 (3)内部产生帧同步信号可以通过配置TDIVx和RDIVx

49、寄存器的TFSDIV,RFSDlV位来设定帧同步信号的频率。 (4)帧同步分频系数表示有多个接收发送时钟就产生一个帧同步脉冲TFS或RFS。帧同步频率计算公式fTFS 发送帧同步频率; fRFS 接收帧同步频率fTCLK 串行口发送时钟频率; fRCLK 串行口接收时钟频率TFSDIV发帧同步分频系数; TFSDIV收送帧同步分频系数 1.串口发送控制寄存器配置举例SPEN=1串口使能DTYPE00(b)标准模式,数据采用右对齐,未用的高位填0SENDN=0先传高位数据SLEN01111串行数据长度选择,字宽15116位字长PACK0不使能16位到32位数据字打包ICLK1内部产生传输时钟CK

50、RE1采样数据/帧同步信号的时钟边沿选择,1上升沿有效TFSR1每个发送字都有帧同步信号ITFS1内部产生帧同步1.串口发送控制寄存器配置举例续根据上述要求编写如下语句:根据上述要求编写如下语句:r00x000274f1;dm(STCTL0)=r0;2.计算串行口发送时钟频率(计算串行口发送时钟频率(fTCLK)和发送帧同步频率(和发送帧同步频率(fTFS)串口发送分频寄存器(串口发送分频寄存器(TDIV0)设置设置r0=0x00110003;dm(TDIV0)=r0;计算串行口发送时钟频率(计算串行口发送时钟频率(fTCLK)和发送帧同步频率(和发送帧同步频率(fTFS):):由于寄存器TD

51、IV0被设置为0x00110003,可以查知发送时钟分频系数TCLKDIV3,发送帧同步信号分频系数TFSDIV17则根据串行口的时钟频率计算公式求得如下:串行口发送时钟频率fTCLK=其中fcclk表示系统核时钟同时由公式:TFSDIV得:帧同步频率fTFS MHz串行口操作模式串行口自环操作模式:当我们将串行口的接收控制寄存器SRCTL的位SPL置1,就将该串行口配置为内部自环连接模式。标准模式:当我们将SRCTLx串口接收控制寄存器的MCE位置0,则串口就工作在标准模式下。标准模式主要用于DSP与其它外设或ADSP芯片间通讯。I2S模式:是飞利浦公司提出的一种标准3线串行总线接口协议,用

52、于传输两通道的脉冲编码调制数字信号。多通道模式:主要是允许串行口在时分复用的串行系统中进行多通道通讯。ADSP SHARCADSP SHARC系列处理器链路口系列处理器链路口ADSPADSP的链路口主要是用来实现的链路口主要是用来实现DSPDSP和和DSPDSP,DSPDSP和外设进行无缝连接用的,也可以用在和外设进行无缝连接用的,也可以用在DSPDSP复复位时进行引导系统,用来引导位时进行引导系统,用来引导DSPDSP时通常使用时通常使用的是链路口的是链路口4 4(共有(共有6 6个链路口)。所有链路口个链路口)。所有链路口可以同时工作,在可以同时工作,在DSPDSP与与DSPDSP之间进行

53、点对点的之间进行点对点的双向数据并行传输。双向数据并行传输。由于链路口通讯协议比较简单,并且具有较高由于链路口通讯协议比较简单,并且具有较高的数据传输率,因此是多处理器间一种有效的的数据传输率,因此是多处理器间一种有效的通讯方式。通讯方式。 ADSPSHARC系列处理器链路口系列处理器链路口链路口具有以下特性:链路口具有以下特性:(1)所有链路口可以同时或者独立地进行操作;(2)链路口问传递的数据可以打包成32位或48位,处理器核可以访问链路口,链路口也可以与片内存储器间进行DMA传输;(3)外部主机也可以直接读或者写链路口;(4)每个链路口有双缓冲的发送或接收寄存器;(5)链路传输有可编程的

54、时钟和确认信号,而且每个链路口都有专门的DMA通道支持;(6)为DSP问提供高速、点对点的数据传输,用链路口传输,多处理器间连接可以组成13维处理器网路。主机接口主机接口 ADSP SHARCADSP SHARC系列处理器提供了丰富的控制信系列处理器提供了丰富的控制信号,只需很少的硬件和软件开销,就可以实现号,只需很少的硬件和软件开销,就可以实现处理器与标准的处理器与标准的8 8位位(ADSP(ADSP21065L21065L支持支持) )、1616位或位或3232位处理器的总线相连,并以同步或异步位处理器的总线相连,并以同步或异步方式传输数据方式传输数据(ADSP210651L(ADSP21

55、0651L只支持异步传输只支持异步传输) )。而且主机可以使用不同的时钟频率。异步传输而且主机可以使用不同的时钟频率。异步传输的最高传输速率可达处理器输入时钟频率。的最高传输速率可达处理器输入时钟频率。 主机接口主机接口利用主机接口,可以实现以下功能:1.可以控制处理器和处理器的外部总线,访问任何处理器资源;2.可以读写处理器的IOP寄存器,以及EPBxFIFO缓冲区,完成对处理器操作模式的配置,以及建立DMA传输等;3.利用外部口DMA通道,可以实现主机与处理器之间的程序与数据传输;4.可以将主机的8位、16位或32位主机数据打包成32位或48位内部数据;5.使用处理器内部消息和向量中断能确

56、保主机命令的有效执行;6.能控制与监控处理器的操作;7.在多处理器系统中,主机对主从处理器都可以访问。同步串行通讯同步串行通讯所谓同步串行通讯,指的就是每一个数据位的所谓同步串行通讯,指的就是每一个数据位的发送是严格和一个时钟脉冲同步,每个时钟脉发送是严格和一个时钟脉冲同步,每个时钟脉冲冲( (TCLKxTCLKx) )发一位数据这就要求每一个串行发一位数据这就要求每一个串行口都有自己的发送和接收时钟引脚(口都有自己的发送和接收时钟引脚(TCLKxTCLKx和和RCLKxRCLKx),我们通过对),我们通过对TDIVxTDIVx,RDIVxRDIVx两个寄存两个寄存器的设置来配置内部串行时钟频

57、率。器的设置来配置内部串行时钟频率。此外我们也可以用一个帧同步信号来标识一个此外我们也可以用一个帧同步信号来标识一个字或一个字块的开始,发送和接收帧同步信号字或一个字块的开始,发送和接收帧同步信号用用TFSTFS和和RFSRFS表示,同样内部帧同步频率也是通表示,同样内部帧同步频率也是通过对过对TDIVxTDIVx和和RDIVxRDIVx两个寄存器的设置来配置的。两个寄存器的设置来配置的。 返回1串行口串行口A A律、律、u u律压扩律压扩所谓数据压扩就是利用对数编码、解码所谓数据压扩就是利用对数编码、解码算法对数据位进行最小化处理。算法对数据位进行最小化处理。A A律压扩:是将律压扩:是将1313位线性码压缩成位线性码压缩成8 8位。位。u u律压扩:是将律压扩:是将1414位线性码压缩成位线性码压缩成8 8位。位。返回1在标准模式下数据格式:在标准模式下数据格式:返回1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号