DSP芯片集成外设的开发_第1页
DSP芯片集成外设的开发_第2页
DSP芯片集成外设的开发_第3页
DSP芯片集成外设的开发_第4页
DSP芯片集成外设的开发_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,第9章 DSP芯片集成外设的开发,引言 中断 DMA 时序模块 接口模块 基于CSL的外设开发 小结 习题与思考题,一、引言,开发者可以利用这些片内外设接口方便与各种芯片相连,共同实现特定功能的电路系统。 片内CPU的运行结果只有通过接口和其他器件完成输入输出才有实际意义。 一个完善的系统必须要能够对DSP的集成外设进行正确合理的使用。,DSP芯片和外设以及不同的存储空间进行信息传送时,有几种不同的传送方式 (1)查询(polling)传送方式 (2)中断(interrupt)传送方式 (3)DMA传送方式,一、引言,二、中断,利用中断可以实现CPU和外设的同步操作、信号的实时响应和运行故障

2、的快速处理等功能。 中断源 : 引起中断的原因,以及发出中断申请的来源. 根据中断源的性质不同,DSP芯片的中断可以分为硬中断和软中断两类.,中断分为三种类型 复位(RESET)中断 不可屏蔽中断 可屏蔽中断 C54x根据芯片型号不同,有2427个软件和硬件中断,共分为14个中断优先级,可以实现多任务嵌套。,二、中断,检测到有效的中断源信号后,CPU会自动停止当前指令的执行,转而去处理中断服务程序(ISR),这个过程称为中断响应。 CPU根据控制寄存器判断是否执行中断服务程序,二、中断,中断控制寄存器 : 中断标志寄存器(IFR,Interrupt Flag Register) 中断屏蔽寄存器

3、(IMR,Interrupt Mask Register),二、中断,中断矢量: 采用中断矢量来确定CPU响应每个中断时程序指针(PC)的跳转地址。 C5000,C6000等系列DSPs芯片都采用了软件可重定位中断矢量形式。 C54x系列的DSP为每个中断提供了一个中断矢量号,并在中断矢量表中提供了4个字的空间用于服务程序的存放。,二、中断,二、中断,编写中断服务程序时应该注意如下几点 : 1)必须把在中断服务程序中使用到的寄存器值保存到堆栈中(保护现场),返回时以相反的次序恢复这些值(恢复现场)。 2)先保护BRC寄存器,后保护ST1;恢复时相反。 3)与C语言混合编程,保存AR1、AR6和

4、AR7。 4)利用C语言实现中断服务程序,在函数名前使用关键字interrupt。此时中断服务程序将自动保护状态寄存器和辅助寄存器。,二、中断,三、,为降低CPU的负荷,通常都在DSP片内设计多通道的直接存储器访问(DMA)控制器。 DMA控制器是独立于CPU的设备,一旦正确初始化后,就能独立于CPU工作,在CPU操作的同时实现片内存储器、片内外设以及外围器件间的数据传输。,DMA控制器提供了三种传输方式: 1)元素传输只对一个数据进行读/写操作; 2)帧传输将搬移一帧内的所有数据; 3)块传输搬移块内所有帧的数据。,三、,控制寄存器 : DMSA:DMA子地址寻址寄存器(Subbank Ad

5、dress Register) DMSDI:子地址自增1的DMA子地址数据访问寄存器(Subbank Access Register with Autoincrement) DMSDN:不自增1的DMA子地址数据访问寄存器(Subbank Access Register without Autoincrement),三、,三、,为了访问一个特定的子地址寄存器,首先要向DMSA写入子地址,然后,才可以在物理空间中真正选定所要访问的寄存器DMSDI和DMSDN。此时,对子地址数据寄存器的操作就是对选定的寄存器内容的操作。 由于DMA传输不需要CPU处理,因此在传输前需要提前确定好源地址、目的地址以

6、及各自的修改方式、数据传输的宽度、数量以及传输时机等很多因素,这些因素都有对应的寄存器和控制比特。,三、,DMA需占用数据总线。 DSP提供了两个引脚HOLD和HOLDA实现对DMA控制器、CPU的总线仲裁: 外界将DSP芯片的HOLD引脚置为低,DSP芯片响应外部DMA请求,当HOLDA变低时,DSP芯片将外部总线置为高阻状态,将总线控制权交出。 外界将HOLD线变高,总线控制权重新交给DSP芯片。,三、,四、时序模块,、PLL模块 C5000系列的DSP芯片还采用了更加灵活的可编程PLL方式。 时钟输入:,PLL配置 :,四、时序模块,2、定时模块 定时寄存器(TIM):位于数据空间的00

7、24h单元。其中数据进行自减操作。 定时周期寄存器(PRD):位于数据空间的0025h单元。每次复位或TINT中断时将内容装入TIM寄存器。 定时控制寄存器(TCR):位于数据空间的0026h单元,包含了定时器的控制位和状态位。,四、时序模块,四、时序模块,四、时序模块,TIMER_ini: STM #10h,TCR; 停止定时器 NOP STM #2499,PRD;对PRD赋值 ORM #23h,TCR;对TDDR赋值,重置定时器 NOP NOP ANDM#0ffefh,TCR;启动定时器,3、等待状态发生器 DSP的指令周期较快,在访问慢速存储器或外设时,为了保证芯片之间时序配合,通常需要

8、插入等待状态。 等待分硬件等待和软件等待两种方式 硬件等待方式较麻烦。现在的DSP芯片一般在内部设有软件设置等待机制。,四、时序模块,四、时序模块,软件等待状态控制寄存器(SWCR) 软件等待状态寄存器(SWWSR),外设接口主要实现如下功能: 数据缓冲 接收和执行CPU命令 中断管理 接口的设计是硬件和软件相结合的实现过程。,五、接口模块,1、多通道缓冲串行口 可以完成标准串口的全双工串行通信,同时还能够支持多种协议下的直接接口。 具有双缓冲数据寄存器,允许连续的数据流,可以实现全双工通信; 支持多种方式的传输接口(包括T1/E1帧协议、AC97兼容设备、SPI设备等),可与工业标准的编/解

9、码器、AICs(模拟接口芯片)以及其他串行A/D、D/A接口;,五、接口模块,数据传输时钟可是外部时钟或片内可编程时钟; 帧同步信号和时钟信号收发独立、极性可设,可编程程度高; 帧长度可以在1128个字间选择,支持传输的数据字长可以是8 bit 、12 bit、16 bit、20 bit、24 bit或32 bit; 支持多通道传输,可与多达128个通道进行收发; 内置律和A律硬件压扩; 当利用DMA为McBSP服务时,串行口数据读写具有自动缓冲能力。,五、接口模块,五、接口模块,五、接口模块,为访问某个指定的子地址寄存器,要将相应的子地址写入SPSAx。,五、接口模块,McBSP时钟产生器示

10、意图,a、简单串行接口(SPI): 是一种主从配置的、支持一个主方、一个或多个从方的串行通信协议 一般使用4条信号线:串行移位时钟线(SCK)、主机输入/从机输出线(MISO)、主机输出/从机输入线(MOSI)、低电平有效的使能信号线(SS)。 由主设备时钟信号的出现与否来确定主/从设备间的通信。 McBSP具有时钟停止工作模式(由CLKSTP比特域控制),可以与SPI协议兼容。,五、接口模块,b、通用口 在两种情况下,串口的引脚(CLKX、FSX、DX、CLKR、FSR、DR以及CLKS)可以作为通用I/O口使用: McBSP的某部分处于复位状态:此时SPCR寄存器中的(R/X)RST=0;

11、 串口设置为通用I/O口:此时PCR中的(R/X)IOEN=1。,五、接口模块,2、主机接口(HPI) 主机(也称为上位机)控制着该接口的主控权,通过它直接访问DSP的存储空间和外围设备。DSP作为从机(也称为下位机),向主机开放总线的控制权。,五、接口模块,(1)HPI存储器(DARAM):用于TMS320C54x与主机间传送数据; (2)HPI地址寄存器(HPIA):由主机对其直接访问,存放当前寻址HPI存储单元的地址; (3)HPI数据锁存器(HPID):由主机对其直接访问,存放当前进行读/写的数据; (4)HPI控制寄存器(HPIC):TMS320C54x和主机都能对其直接访问,用于主

12、处理器与DSP相互握手,实现相互中断请求; (5)HPI控制逻辑:用于处理HPI与主机之间的接口信号。,五、接口模块,五、接口模块,HPI-8方框图,五、接口模块,HPI-8连线关系示意图,复用模式下HPI-16的接口示意图,五、接口模块,非复用模式下HPI-16的接口示意图,五、接口模块,3、外部存储器接口(EMIF) 是外部存储器和DSP芯片内部其他单元间的接口。,五、接口模块,4、通用I/O口 除了XF和BIO两个通用I/O引脚外,一些C54x DSP芯片的多通道缓冲串口(McBSP)和主机接口(HPI)的一些引脚也可以作为通用I/O引脚。,五、接口模块,为免除用户编写配置和控制片上外设

13、所必需的定义和代码,DSP芯片开发商通常会为用户提供一组标准的方法用于访问和控制片上外设。 TI公司在CCS中嵌入了芯片支持库(Chip Support Library,CSL)。 主要用于配置、控制和管理DSP片上外设。 分别为C6000和C5000系列DSP设计。,六、基于CSL的外设开发,已实现的模块: CSL:顶层模块; DAT:和器件无关的数据拷贝/填充模块; CHIP:和器件相关的定义模块; DMA:直接存储器访问模块; EBUS:外部存储器总线接口模块; GPIO:通用I/O模块; HPI:主机接口模块; IRQ:中断控制模块; MCBSP:多通道缓冲串口模块; PWR:功耗控制模块; STDINC:标准包含模块; TIMER:定时器模块。,六、基于CSL的外设开发,(1)CSL库是可裁剪的:即只有被使用的CSL模块才会包含进应用程序中; (2)CSL库是可扩展的:每个片上外设的API相互独立,增加新的API,对其他片上外设没有影响; (3)CSL库对硬件进行抽象,提取符号化的片上外设描述:大多数常用的寄存器及其域值都已经通过宏进行了定义,因此可以直接利用宏进行访问和建立。,六、基于CSL的外设开发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论