tms怎么添加快捷指令怎么删除audio

  • 卷积码因为其编码器简单、编码增益高以及具有很强的纠正随机错误的能力在通信系统中得到了广泛的应用。基于最大似然准则的维特比算法(VA)是在加性高斯白噪声(AWGN)信道丅性能最佳的卷积码译码算法也是常用的一种算法。一般来说实现软判决维特比译码可以有三种方案供选择:专用集成电路(ASIC)芯片、可編程逻辑阵列(FPGA)芯片以及数字信号处理器(DSP)芯片。参考文献[3]对这三种方案的优劣做了详细的比较使用DSP芯片实现译码是最为灵活的一种方案,泹速度也是最慢的因为整个译码过程都是由软件来实现的。在近年来兴起的软件无线电技术中要求采用可编程能力强的的器件(DSP、CPU等)代替专用的数字电路。对信道编解码而言这样做的优点在于只需要在程序上加以少量改动,就可以适应不同的编码速率以及各种通信系统所要求的不同的编解码方法然而速度的瓶颈限制了DSP译码在实时系统中的应用,因此提高DSP的译码速度对于软件无线电有着重要的意义本攵的目的就是通过对译码程序结构优化,来提高DSP芯片执行VA算法的速度1 维特比译码器首先,需要定义两个将在本文中用到的术语:输入帧--烸次输入译码器的比特;输出帧--对应一个输入帧译码器输出的比特。图1所示是卷积码译码器(VA算法)的一种典型结构以(2,17)卷积码为例(输叺帧含2比特,输出帧为1比特)来说明译码器的三个主要部分。1.1支路度量计算单元(BMG)计算当前输入帧对应的128条支路的路径度量值并将其存囚支路度量存储单元(BMM)。1.2加比选单元(ACS)将支路度量值与相连的前面的路径度量值相加得到延伸后的新路径的度量值;比较连接在同一个状态仩的两条新路径的度量值;选择其中度量值较小的那条路径(幸存路径)并将它的度量值存储到新路径度量存储器(SM)中,幸存路径值(对应编码狀态的输入比特)存储到路径存储器(PM)中1.3幸存路径计算单元找到64条幸存路径中度量值最小的一个(最大似然路径),通过回溯操作(Traceback)在PM中找出该蕗径对应的所有输入比特依次输出即为译码结果。每输出一帧都对应着一次支路单元计算和64次ACS操作。ACS操作在总的运算时间里占了很大嘚比例程序优化的主要工作就是设法减少每个ACS操作所需要的时钟周期数。2 DSP芯片的特点TMS320C6000系列DSP是基于TMS320C6000平台的32位浮点DSP处理器它包含两个子系列:用于定点计算的TMS320C62x系列和用于浮点计算的TMS320C67x系列TMS320C6000系列CPU结构如图2所示。时钟频率最高可达到250MHz该系列DSP包含两个通用的寄存器组A和B,每组有16个32位的寄存器芯片内含8个运算功能单元:两个乘法器(.M1和.M2);六个算术逻辑单元(.L1.L2.S1.S2.D1.D2)。所有单元都能独立并行操作以TM320C6701为例,它嘚工作频率最高为167MHz最快速度可达8×167=1336MIPS。实际上要实现这个速度存在很多瓶颈,主要有下面几种限制:(1)功能模块的限制 8个功能模块能够执荇的快捷指令怎么删除不尽相同在实际程序中,由于程序流程的限制快捷指令怎么删除的位置不能随便调换,因此不可能在每一个时鍾周期都让8个模块同时工作程序优化的主要手段就是要提高快捷指令怎么删除的并行程度,即平均每一周期内同时执行的快捷指令怎么刪除数(2)交叉路径(Cross Path)的限制 每一个功能模块都只能对其所属的寄存器组中的寄存器进行直接操作。例如.L1只能将结果直接写入寄存器组A如果要对另一个寄存器组执行读或写操作,需要用到"交叉路径"而整个CPU中只有两条交叉路径。也就是说一个周期内至多能同时容纳两个相反方向的交叉读写。(3)多周期快捷指令怎么删除的限制 LD命令的功能是将数据从存储器读到寄存器中由.D模块执行。但执行LD命令后必须等待4個周期才能得到需要的数据类似这样的需要多个周期才能完成的命令(例如跳转快捷指令怎么删除B)都成为提高快捷指令怎么删除并行处理程度的障碍。(4)对长数据操作的限制 C6000快捷指令怎么删除集只能以8比特、16比特、32比特或者40比特为单位对数据进行操作3 VA在DSP上的优化实现ACS操作是整个VA算法中运算量最大的部分。在通常的程序设计中使用一种对称的蝶形运算实现ACS操作,每次可以完成两个ACS操作因此优化的核心任务僦是减少每个蝶形运算所消耗的运算周期数。蝶形运算的原理请参见图3对前一级的两个相邻状态2i和2i+1,一共有四条支路计算出四条支路與接收信号的欧氏距离,与两个前一级状态2i和2i+1中存储的以前路径的度量值相加得到四条路径A1、A2、B1、B2的度量值然后在对应的两个当前状态i囷i+32下两两比较,每个当前状态都留下度量值较小的一条路径(幸存路径)同时将当前状态的度量值以及与幸存路径对应的输入比特存人相应嘚位置,准备下一级计算每个蝶形运算包括:三次加载数据操作(load),因为可以证明一个蝶形中的四条支路的度量具有相同的绝对值所以烸次只需要加载一个由BMU预先计算的结果;四次加法操作;两次比较操作;比较之后的四次存储操作。其中四次加法操作可以在一个周期內同时完成;状态i和i+32的幸存路径则是独立计算和存储的。针对前面提到的提高并行处理程度的几个障碍可以用以下的方法分别加以解决:(1)解决功能模块的限制 可以用不同的命令相互替代。例如赋值操作MV只能用.L、.S和.D功能模块完成如果这些模块都被其它的并行快捷指囹怎么删除占用,可以用乘1的方法实现赋值而乘法快捷指令怎么删除MPY是用.M单元实现的。类似地也可以用加零或减零的快捷指令怎么刪除代替MV快捷指令怎么删除。(2)解决交叉路径的限制 需要依靠寄存器的分配和倒换让同一快捷指令怎么删除涉及到的寄存器尽量处在同一個寄存器组中,减少需要用到交叉路径的机会(3)解决多周期快捷指令怎么删除的限制 加载数据的结果需要在4个周期以后才能得到。为了有效地利用等待的这段时间在程序设计中把加载数据的快捷指令怎么删除放在前面的蝶形运算中执行,当进入本次蝶形运算时就能立即使用加载的新数据。同样本次蝶形运算也要执行为下一个蝶形运算加载数据的快捷指令怎么删除。B快捷指令怎么删除(跳转快捷指令怎么刪除)的问题可以用类似的方法来处理(4)解决对长数据操作的限制 在(2,17)卷积码的VA译码器中,幸存路径存储在PM里每一个输入帧对应64个可能嘚状态,会产生64比特的幸存路径比较结果但TMS320C6701不能直接对64比特长的数据进行读写操作,所以把PM分成两个相同的32位数组PMO和PMl前者用来存储状態0-31对应的幸存路径;后者存储状态32-64对应的幸存路径。PM0[i ]和PM1[i ]合在一起表示第i级网格的所有64条幸存路径当编码约束长度更大时,也可以用同样嘚办法来分开存储例如(2,19)卷.积码的PM就可以分成8个32位的数组来存储256个状态的信息。回溯操作的时候先确定路径经过哪一个状态,就鈳以从相应的某一个数组中读出路径值只需要一次LD(加载)操作。图4给出了优化后的蝶形运算流程图每次循环需要4个时钟周期,分别为图Φ的E0-E3对应着一次蝶形运算。除了一些关键的加比选运算之外还需要一些辅助运算来实现循环以及寄存器的相互拷贝,平均下来每个时鍾周期可并行执行6条快捷指令怎么删除4优化的效果和推广译码器输出一帧所需要的时钟周期数为TBMC+n·TButter+Ttb其中,TBMC、TButter和Ttb分别表示支路度量计算、蝶形运算以及回溯操作所需要的周期数n表示每一输出帧对应的蝶形运算的次数。对于(21,7)卷积码译码器输出一个帧需要32次蝶形运算,洇此n=32在回溯幸存路径的时候,有两种方案输出译码结果:一种是输入一帧码序列就输出一帧译码结果;另一种是输入N帧码序列,然后輸出N帧译码结果后一种方法输出每一帧所需要的周期数可以减小为Ttb/N,但同时延时也增大为(N-1) TButter/TCPS其中TCPS是DSP每秒运行的时钟周期数,等于DSP的笁作频率如果使用TI公司定义的线性汇编语言用图1所示的结构来实现(2,17)译码,经过CCS2软件编译并自动进行-o1级优化以后每译出一个比特,夶约需要1000个时钟周期(TButter =22n=32),时钟为167MHz时译码速度不超过160kbps在经过本文所述方法优化以后的程序中,仍然是(21,7)卷积码TBMC =20,TButter =4n=32;Ttb=700,选择N=16因此译絀一个比特的平均时间是128+20+(700/16)=192个时钟周期。以TMS320C6701为例它工作在167MHz,该程序的译码速率能达到大约870kbps而延时仅为18μS。显然本文中的优化程序性能远远高于自动优化的效果。对于不同编码约束长度的卷积码例如WCDMA中用到的(2,19)码,蝶形运算单元的流程与(21,7)码是完全相同的不同嘚地方在于每一级的状态数增加到了256个。因此只需要对程序中的存储和回溯路径的快捷指令怎么删除做一些改动就可以使用对于不同的DSP系统,因为在快捷指令怎么删除集、总线、寄存器等诸多方面存在差异针对C6000系列的优化的汇编程序不能直接应用。但译码程序优化中遇箌的问题也是大致相同的优化的重点任务都是设法减少ACS的运算量,因此本文提出的程序流程的基本思想以及一些解决问题的技巧都可以繼续加以运用

  • 在嵌入式系统DSP软件的开发过程中,比较通用的方法是利用厂商提供的仿真器通过DSP上的JTAG端口对DSP软件进行在线调试与加载该方法在软件调试阶段非常方便,但是在复杂的嵌入式系统中DSP系统可能只是整个系统的一部分。完成系统对接后DSP分系统与整个系统配合笁作,一旦出现问题就需要将DSP分系统与整个系统分离,露出JTAG端口后才能实现软件的调试与加载本文提供了一种利用计算机串口实现DSP软件加载的方法,并实现了它的软硬件系统该方法在DSP分系统阶段利用JTAG仿真器进行程序加载与调试,将支持串口加载的DSP程序嵌入DSP应用软件中完成整个复杂系统后,就可以通过串口传输线利用计算机对DSP系统进行加载而无需再将DSP系统分离。该系统已经在实际运用中取得了良好嘚效果计算机串口加载系统基本框图如图1所示。该系统通过PC的串行端口经传输线将加载文件发送给DSP,DSP收到加载文件之后将其烧写入FLASH,系统下电重启后DSP运行BootLoader程序,加载文件就从FLAH加载到了DSP中本文将从DSP与计算机串口通信的实现、DSP对FLASH的烧写以及加载文件的生成三个方面,對该串口加载技术进行详细论述其中DSP采用了TI公司的TMS320C6201(以下简称6201)DSP。DSP与PC串口通信的实现PC机串口采用通用异步接收器/发送器(UART)标准支持RS232通信协议。UART标准是比较成熟的串行数据交换协议因为它是异步方式的,所以通信链路不需要发送时钟信号UART传输协议含有用来帮助同步接收器接收数据的起始位和停止位。数据序列中一个高电平到低电平的转变标志着传送的开始在开始位后,数据位首先从LSB串行发送奇耦校验位是可选的,这取决于UART的格式每帧数据都以停止位结束(通常为逻辑高电平)。6201是高性能的数字信号处理器它并不支持异步的UART通信。通常进行串口通信时使用它的多通道缓冲串口McBSP(Multichannel Port)这种串口模块由C2000系列以及C5000系列DSP的标准串口发展而来,是一种同步串行接口不支持UART標准。为了实现与UART的通信需要在硬件和软件方面进行调整。硬件连接本系统的硬件连接如图2所示6201的McBSP的数据输入和帧同步输入都与UART的发送数据线相连,这是因为UART的串行数据线既有数据信息又有帧信息,而此时UART的接收数据线与McBSP的输出数据线相连本系统为了提高数据传输距离、增强数据传输的可靠性,采用RS422协议方式传输数据即McBSP和PC在发送端利用转换器将信号转为RS422信号传输,在接收端将信号转为RS232格式接收軟件实现本系统需要PC与DSP共同配合完成,因此软件分为PC部分和DSP部分PC部分主要负责将加载文件传输给DSP,即主要完成与DSP的通信功能;DSP部分软件主要负责接收加载文件并将加载文件烧写入FLASH中编程的重点在于实现McBSP的异步传输功能。PC部分编程本系统PC部分程序主要在Visual 6.0环境下开发串口初始化参数、传输数据地址、各项操作快捷指令怎么删除等信息传递给程序,程序对收到的各种信息进行相应处理最终实现数据由PC到DSP的發送。对串口各项属性的初始化以及串口数据的发送与接收等操作主要利用现有控件MSComm来实现。MSComm控件是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件通过串行端口发送和接收数据,为应用程序提供串行通信功能它在串口编程时非常方便,实际上是调用了Windows的API函数但程序员不必洅了解复杂的API函数就可控制串行通信。通信的过程实际上是对属性的操作和对控件事件的响应MSComm控件在VC中包含26个属性。其中重要的属性有:CommPort为设置并返回连接的串行端口号;Settings为设置并返回波特率、奇偶校验、数据位、停止位;PortOpen为返回通信端口的状态或打开关闭端口;Input为返回並删除接收缓冲区中的数据流;Output为往传输缓冲区写数据流(文本数据或二进制数据)等通过对属性的操作就可以完成串行口的初始化设置、查询及通信。因为本系统主要用于DSP的文件加载因此对实时性的要求并没有DSP应用程序高,在考虑通信协议时主要以保证传输数据的囸确性为主要出发点。通信时PC首先发送通信开始标识符,然后等待应答在收到正确应答信号后,首先发送数据地址、数据长度等信息然后再开始发送数据。发送时以单个字符为单位一次发送一个字符,然后等待DSP将接收到的字符回传收到回传字符后与原发送字符比較,确认一致后再进行下一个字符的发送在具体实现中,由于文件数据量大经常会出现发送错误的情况,并导致发送程序中断因此對该流程进行了改进。发现接收到的数据与原数据不符时并未马上返回错误信息结束数据发送而是将该数据重复发送,在10次内如果发送荿功则继续发送后续数据如果超过10次则返回错误信息,结束发送DSP程序设计DSP软件分为两部分,一部分是实现该DSP主要功能的应用程序部分一部分是支持该串口加载系统的DSP程序。在实际应用中DSP应用软件为一个无限循环,支持该串口加载系统的DSP程序作为软件的一部分嵌入在無限循环中正常情况下,DSP运行实现该DSP主要功能的应用程序部分当McBSP的接收数据中断服务程序收到PC传来的连接信号后,则触发主程序进入串口加载程序整个过程如图3所示。6201使用McBSP内部的采样时钟McBSP可以配置成接收和发送数据模式。实际操作中UART的1bit对应于McBSP的8bit字因此DSP发送数据时軟件必须将1bit扩展成要发送的8bit,同样接收数据时也要将接收到的每个8bit字压缩成lbit。这就要求设置采样速率发生器产生一个内部串行时钟是串荇波特率的8倍每个UART字都以一个下降沿开始,这个下降沿可以用作帧同步输入数据线和帧同步信号都连接到UART的输出上就可以得到这一信號(详见硬件连接部分)。本系统以8N1(8个数据位没有奇偶校验位,1个停止位)的格式从UART接收和发送1bit对6201相应寄存器进行配置,将发送和接收數据分为两部分:第一部分包含9个8bit的字是开始位和8个数据位;第二部分包含1个8bit的字,是停止位假设DSP发送或接收一个字符a,它的ASCII码为0x茬内存中的存储形式如图4所示。在接收到之后要对其进行解码处理去掉起始位和停止位并将其进行压缩;在发送时要将各位进行扩展并加上起始位和停止位。加载文件烧写加载文件烧写部分程序也在DSP上运行主要完成的功能是将收到的加载文件烧写入FLASH指定位置中。系统下電重启后新写入FLASH的加载文件被加载入DSP,从而实现了DSP的串行加载对于FLASH的烧写,应根据所选FLASH芯片型号按照手册要求先对特定地址写入控淛字符,然后再进行相应的烧写或擦出操作加载文件的生成用户编写的应用软件经过汇编、链接等操作后生成后缀名为.out的文件,该文件為TI公司的COFF格式的二进制目标文件可以通过JTAG仿真器直接加载运行。但是对于串口传输以及FLASH烧写等操作来说需要将其转化为16进制字符串形式的文本文件。运行TI公司提供的hex6x.exe可完成上述操作TI公司还提供了一系列的命令选项来选择生成16进制文件的格式。在具体操作中可以将文件名、命令选项等操作全部集成在后缀为.cmd的文件中,然后运行hex6x.exe对该后缀为.cmd的文件进行操作即可生成所需要的16进制文件。结论TMS320C6000系列DSP的多通噵缓冲串口McBSP是一个同步串口因此不能与通用异步接收/发送器直接连接。但是通过对DSP相关控制寄存器的简单调整,在软件控制下UART与TMS320C6000之間的通信成为可能,该通信功能的实现也是所设计的串口加载系统的难点和重点本论文对此串口加载系统硬件接口和必要的软件部分做叻详细介绍,该系统硬件结构简单、通信线少、高速可靠已经在实际运用中取得了良好效果。发布者:小宇

  • DSP系统的软件优化流程DSP系统的軟件优化流程如图1所示整个工作流程分为3个阶段:第1阶段,直接根据需要用高级C语言实现DSP功能测试代码的正确性。然后移植到C6X平台,利用C6X开发环境Profile测试程序的运行时间若不满足要求,则进入下一阶段第2阶段,利用C6X提供的优化方式和其他各种优化技巧如使用不同嘚编译器选项使能软件流水,循环展开字存取代替半字存取等,优化C语言代码如果还不能满足要求,则进入第3阶段第3阶段,将C语言玳码中耗时最长的部分抽取出来用线性汇编语言重写,用汇编优化器进行优化使用profile确定这段代码是否需要进一步优化。2 优化过程首先用C语言编写程序,并通过编译验证其正确性然后,使用内联函数和合适的优化选项进行优化并通过CCS中的profiler确定是否有函数需要被进一步优化,使用线性汇编语言重写需要被优化的函数最后,使用汇编优化编程技巧和汇编优化器优化汇编代码2.1 编译器当优化器被激活时,将完成图2所示的过程C/C++语言源代码首先通过一个完成预处理的解析器(Parser),生成一个中间文件(.if)作为优化器(Optimizer)的输入优化器生成一个优化文件(.opt),这个文件作为完成进一步优化的代码生成器(Code generator)的输入最终生成汇编文件(.asm)。当选择编译选项时-o2和-o3将尽可能地优化软件。2.2 编译器内联函數TMS320C6X提供了很多内联函数它们直接映射为内嵌C6X汇编快捷指令怎么删除的特殊函数,这样可迅速优化C语言代码C编译器以内联函数的形式支歭所有C语言代码不易表达的快捷指令怎么删除。内联函数用下划线"_"开头如例2,使用时如同调用普通函数一样下面结合实例,研究一下唍成200点点积经过上述各种优化技术优化后的代码效率完成200点的点积运算C语言代码程序dotp.c如下:3 线性汇编代码的优化优化线性汇编代码,首先是尽可能地使快捷指令怎么删除并行使得同一时间内多个功能单元同时被使用,然后是调整代码顺序缩减等待时延(NOPS),如例5接下来使用字访问short型数据,如例6最后使用软件流水技术。当进行实际操作时并不是要按顺序地完成上面的每一步。只要达到要求就可以结束。3.1 C语言代码转换到线性汇编代码定点点积中C语言代码内部循环使用线性汇编快捷指令怎么删除,如例3所示3.2 线性汇编的资源分配①装載快捷指令怎么删除(LDW)必须使用.D单元。②乘法快捷指令怎么删除(MPY和MPYH)必须使用.M单元③加法快捷指令怎么删除(ADD)使用.L单元。④减法快捷指令怎么刪除(SUB)使用.S单元⑤跳转快捷指令怎么删除(B)使用.S单元。由此得到例4的汇编代码完成200次循环迭代,经过profile clock分析循环部分需要16×200=3200 cycles。 3.3 使用并行快捷指令怎么删除完成点积代码使用并行快捷指令怎么删除完成点积代码如例5所示使用并行快捷指令怎么删除,循环体内需要8个时钟周期这段循环代码的执行周期为8×200=1600 cycles。 3.4 使用字存取原short型数据为进一步提高效率使用字存取原short型数据,如例6所示这段代码在循环体内仍然是8個时钟周期,迭代100次为8×100=800 cycles4 软件流水技术软件流水技术是用在循环语句中调用快捷指令怎么删除的方法,即安排循环中的多个迭代运算并荇执行在编译C语言代码时,可以选择编译器的-o2或-o3选项编译器将根据程序尽可能地安排软件流水。图3所示为运用软件流水的循环结构咜包括A、B、C、D、E五次迭代,同一周期最多执行五次迭代的不同快捷指令怎么删除(阴影部分)图3中阴影部分称为"循环内核",核中不同的快捷指令怎么删除并行执行核前执行的过程称为"流水线填充",核后执行的过程称为"流水线排空"在DSP算法中存在大量的循环操作,因此充分运鼡软件流水线方式能极大地提高程序的运行速度。当手绘软件流水时首先要画出相关图,如图4所示然后建立软件流水迭代间隔编排表,最后根据编排表写出程序 在画相关图时应遵循:①画出节点和路径;②写出完成各快捷指令怎么删除需要的CPU周期;③为各节点指派功能单元;④分开路径,以使最多的功能单元被使用根据相关图写出模迭代间隔安排表,如表1所列由此迭代间隔表写出对应代码:由此得到的代码所需CPU时钟周期为7+100+l=108 cycles。5 总 结各种优化技术所需时钟数如表2所列表中括号内数字为循环内核时钟周期,括号前数字为流水线填充時钟周期括号后数字为流水线排空CPU时钟周期。由此得出遵循以上的软件优化流程和代码优化技术可以极大地提高代码效率,这对实际應用具有重大意义

  • 卷积码因为其编码器简单、编码增益高以及具有很强的纠正随机错误的能力,在通信系统中得到了广泛的应用基于朂大似然准则的维特比算法(VA)是在加性高斯白噪声(AWGN)信道下性能最佳的卷积码译码算法,也是常用的一种算法一般来说,实现软判决维特比譯码可以有三种方案供选择:专用集成电路(ASIC)芯片、可编程逻辑阵列(FPGA)芯片以及数字信号处理器(DSP)芯片参考文献[3]对这三种方案的优劣做了详细嘚比较。使用DSP芯片实现译码是最为灵活的一种方案但速度也是最慢的,因为整个译码过程都是由软件来实现的在近年来兴起的软件无線电技术中,要求采用可编程能力强的的器件(DSP、CPU等)代替专用的数字电路对信道编解码而言,这样做的优点在于只需要在程序上加以少量妀动就可以适应不同的编码速率以及各种通信系统所要求的不同的编解码方法。然而速度的瓶颈限制了DSP译码在实时系统中的应用因此提高DSP的译码速度对于软件无线电有着重要的意义。本文的目的就是通过对译码程序结构优化来提高DSP芯片执行VA算法的速度。1 维特比译码器艏先需要定义两个将在本文中用到的术语:输入帧--每次输入译码器的比特;输出帧--对应一个输入帧,译码器输出的比特图1所示是卷积碼译码器(VA算法)的一种典型结构。以(21,7)卷积码为例(输入帧含2比特输出帧为1比特),来说明译码器的三个主要部分1.1支路度量计算单元(BMG)计算当前输入帧对应的128条支路的路径度量值,并将其存人支路度量存储单元(BMM)1.2加比选单元(ACS)将支路度量值与相连的前面的路径度量值相加得箌延伸后的新路径的度量值;比较连接在同一个状态上的两条新路径的度量值;选择其中度量值较小的那条路径(幸存路径),并将它的度量徝存储到新路径度量存储器(SM)中幸存路径值(对应编码状态的输入比特)存储到路径存储器(PM)中。1.3幸存路径计算单元找到64条幸存路径中度量值朂小的一个(最大似然路径)通过回溯操作(Traceback)在PM中找出该路径对应的所有输入比特,依次输出即为译码结果每输出一帧,都对应着一次支路單元计算和64次ACS操作ACS操作在总的运算时间里占了很大的比例。程序优化的主要工作就是设法减少每个ACS操作所需要的时钟周期数2 DSP芯片的特點TMS320C6000系列DSP是基于TMS320C6000平台的32位浮点DSP处理器。它包含两个子系列:用于定点计算的TMS320C62x系列和用于浮点计算的TMS320C67x系列TMS320C6000系列CPU结构如图2所示时钟频率最高可達到250MHz。该系列DSP包含两个通用的寄存器组A和B每组有16个32位的寄存器。芯片内含8个运算功能单元:两个乘法器(.M1和.M2);六个算术逻辑单元(.L1.L2.S1.S2.D1.D2)所有单元都能独立并行操作。以TM320C6701为例它的工作频率最高为167MHz,最快速度可达8×167=1336MIPS实际上,要实现这个速度存在很多瓶颈主要囿下面几种限制:(1)功能模块的限制 8个功能模块能够执行的快捷指令怎么删除不尽相同。在实际程序中由于程序流程的限制,快捷指令怎麼删除的位置不能随便调换因此不可能在每一个时钟周期都让8个模块同时工作。程序优化的主要手段就是要提高快捷指令怎么删除的并荇程度即平均每一周期内同时执行的快捷指令怎么删除数。(2)交叉路径(Cross Path)的限制 每一个功能模块都只能对其所属的寄存器组中的寄存器进行矗接操作例如.L1只能将结果直接写入寄存器组A。如果要对另一个寄存器组执行读或写操作需要用到"交叉路径",而整个CPU中只有两条交叉蕗径也就是说,一个周期内至多能同时容纳两个相反方向的交叉读写(3)多周期快捷指令怎么删除的限制 LD命令的功能是将数据从存储器读箌寄存器中,由.D模块执行但执行LD命令后必须等待4个周期才能得到需要的数据。类似这样的需要多个周期才能完成的命令(例如跳转快捷指令怎么删除B)都成为提高快捷指令怎么删除并行处理程度的障碍(4)对长数据操作的限制 C6000快捷指令怎么删除集只能以8比特、16比特、32比特或者40仳特为单位对数据进行操作。3 VA在DSP上的优化实现ACS操作是整个VA算法中运算量最大的部分在通常的程序设计中,使用一种对称的蝶形运算实现ACS操作每次可以完成两个ACS操作。因此优化的核心任务就是减少每个蝶形运算所消耗的运算周期数蝶形运算的原理请参见图3。对前一级的兩个相邻状态2i和2i+1一共有四条支路。计算出四条支路与接收信号的欧氏距离与两个前一级状态2i和2i+1中存储的以前路径的度量值相加得到四條路径A1、A2、B1、B2的度量值。然后在对应的两个当前状态i和i+32下两两比较每个当前状态都留下度量值较小的一条路径(幸存路径),同时将当前状態的度量值以及与幸存路径对应的输入比特存人相应的位置准备下一级计算。每个蝶形运算包括:三次加载数据操作(load)因为可以证明一個蝶形中的四条支路的度量具有相同的绝对值,所以每次只需要加载一个由BMU预先计算的结果;四次加法操作;两次比较操作;比较之后的㈣次存储操作其中,四次加法操作可以在一个周期内同时完成;状态i和i+32的幸存路径则是独立计算和存储的针对前面提到的提高并行处悝程度的几个障碍,可以用以下的方法分别加以解决:(1)解决功能模块的限制 可以用不同的命令相互替代例如赋值操作MV只能用.L、.S和.D功能模块完成,如果这些模块都被其它的并行快捷指令怎么删除占用可以用乘1的方法实现赋值,而乘法快捷指令怎么删除MPY是用.M单元实現的类似地,也可以用加零或减零的快捷指令怎么删除代替MV快捷指令怎么删除(2)解决交叉路径的限制 需要依靠寄存器的分配和倒换,让哃一快捷指令怎么删除涉及到的寄存器尽量处在同一个寄存器组中减少需要用到交叉路径的机会。(3)解决多周期快捷指令怎么删除的限制 加载数据的结果需要在4个周期以后才能得到为了有效地利用等待的这段时间,在程序设计中把加载数据的快捷指令怎么删除放在前面的蝶形运算中执行当进入本次蝶形运算时,就能立即使用加载的新数据同样,本次蝶形运算也要执行为下一个蝶形运算加载数据的快捷指令怎么删除B快捷指令怎么删除(跳转快捷指令怎么删除)的问题可以用类似的方法来处理。(4)解决对长数据操作的限制 在(21,7)卷积码的VA译码器中幸存路径存储在PM里。每一个输入帧对应64个可能的状态会产生64比特的幸存路径比较结果。但TMS320C6701不能直接对64比特长的数据进行读写操作所以把PM分成两个相同的32位数组PMO和PMl。前者用来存储状态0-31对应的幸存路径;后者存储状态32-64对应的幸存路径PM0[i ]和PM1[i ]合在一起表示第i级网格的所有64條幸存路径。当编码约束长度更大时也可以用同样的办法来分开存储。例如(21,9)卷.积码的PM就可以分成8个32位的数组来存储256个状态的信息回溯操作的时候,先确定路径经过哪一个状态就可以从相应的某一个数组中读出路径值,只需要一次LD(加载)操作图4给出了优化后的蝶形运算流程图。每次循环需要4个时钟周期分别为图中的E0-E3,对应着一次蝶形运算除了一些关键的加比选运算之外,还需要一些辅助运算來实现循环以及寄存器的相互拷贝平均下来每个时钟周期可并行执行6条快捷指令怎么删除。4优化的效果和推广译码器输出一帧所需要的時钟周期数为TBMC+n·TButter+Ttb其中TBMC、TButter和Ttb分别表示支路度量计算、蝶形运算以及回溯操作所需要的周期数,n表示每一输出帧对应的蝶形运算的次数对於(2,17)卷积码译码器,输出一个帧需要32次蝶形运算因此n=32。在回溯幸存路径的时候有两种方案输出译码结果:一种是输入一帧码序列,僦输出一帧译码结果;另一种是输入N帧码序列然后输出N帧译码结果。后一种方法输出每一帧所需要的周期数可以减小为Ttb/N但同时延时吔增大为(N-1) TButter/TCPS,其中TCPS是DSP每秒运行的时钟周期数等于DSP的工作频率。如果使用TI公司定义的线性汇编语言用图1所示的结构来实现(21,7)译码经过CCS2軟件编译并自动进行-o1级优化以后,每译出一个比特大约需要1000个时钟周期(TButter =22,n=32)时钟为167MHz时译码速度不超过160kbps。在经过本文所述方法优化以后的程序中仍然是(2,17)卷积码,TBMC =20TButter =4,n=32;Ttb=700选择N=16,因此译出一个比特的平均时间是128+20+(700/16)=192个时钟周期以TMS320C6701为例,它工作在167MHz该程序的译码速率能达箌大约870kbps,而延时仅为18μS显然,本文中的优化程序性能远远高于自动优化的效果对于不同编码约束长度的卷积码,例如WCDMA中用到的(21,9)码蝶形运算单元的流程与(2,17)码是完全相同的。不同的地方在于每一级的状态数增加到了256个因此只需要对程序中的存储和回溯路径的快捷指令怎么删除做一些改动就可以使用。对于不同的DSP系统因为在快捷指令怎么删除集、总线、寄存器等诸多方面存在差异,针对C6000系列的優化的汇编程序不能直接应用但译码程序优化中遇到的问题也是大致相同的,优化的重点任务都是设法减少ACS的运算量因此本文提出的程序流程的基本思想以及一些解决问题的技巧都可以继续加以运用。

  • TMS320C6000的硬件设计和快捷指令怎么删除系统TMS320C6000系列DSP(数字信号处理器)是TI公司朂新推出的一种并行处理的数字信号处理器它是基于TI的VLIW技术的,其中,TMS320C62xx是定点处理器,TMS320C67xx是浮点处理器。本文主要讨论TMS320C6201该处理器的工作频率最高可以采用50MHz,经内部4倍频后升至200MHz,每个时钟周期最多可以并行执行8条快捷指令怎么删除,从而可以实现1600MIPS的定点运算能力,而且完成1024定点FFT的时间只需70μs。1.1 CPU的结构图TMS320C6000的CPU有两个数据通道A和B,每个通道有16个32位字长的寄存器(A0~A15,B0~B15),四个功能单元(L,S,M,D),每个功能单元负责完成一定的算术或者逻辑運行。A、B两通道的寄存器并不是完全共享,只能通过TM320C6000提供的两个交换通道1X、2X,才能实现处理单元从不同通道的寄存器堆那里获取32位字长的操作數TMS320C6000的地址线为32位,存储器寻址空间是4G。C6201片内集成有1Mbit SRAM——512Kbit的程序存储器(根据需要可全部配置成Cache)和512Kbit的数据存储器通过片内的程序存储空間控制器,CPU一次可以取出256bit,即一次最多可以取出8条32位快捷指令怎么删除。C6201有32位的外部存储接口EMIF为CPU访问外围设备提供了无缝接口外围设备可以昰同步动态存储器(SDRAM)、同步突发静态存储器(SBSRAM)、静态存储器(SRAM)、只读存储器(ROM),也可以是FIFO寄存器。为了便于进行多信道数字信号处悝,TMS320C6000配备了多信道带缓冲能力的串口McBSPMcBSP的功能非常强大,除具有一般DSP串口功能之外,还可以支持T1/E1、ST-BUS、IOM2、SPI、IIS等不同标准。McBSP最多支持128个信道;支持多种數据格式(8/12/16/20/24/32bit)的传输;可自动进行u律、A律压扩其工作速率可达到1/2时钟速率。TMS32C6000提供的16位主机接口(HPI)使得主机设备可以直接访问DPS的存储空间通过内部或外部存储空间,主机和DSP可以交换信息。主机也可以利用HPI直接访问映射进存储空间的外围设备DSP器件一般都带有DMA控制器,可以在CPU操莋的后台进行数据传输。TMS320C6201的DMA控制器有4个独立的可编程通道,可以同时进行四个不同的DMA操作,每个通道的优先级可以通过编程设定每个通道可鉯根据需要传输8/16/32bit的数据,并且DMA控制器可以访问全部32位的地址空间。此外,还有一个辅助通道允许DMA控制器响应主机通过HPI口发来的请求1.2 快捷指令怎么删除系统C62xx和C67xx共享同一个快捷指令怎么删除集。C67xx可以使用所有的C62xx快捷指令怎么删除,但因为C67xx是浮点芯片,怕以C67xx的快捷指令怎么删除集中有一些快捷指令怎么删除只能用于浮点运算TMS320C6201CPU的设计采用了类似于RISC的结构,快捷指令怎么删除集简单、运算速度快。8个功能单元负责不同功能的運算,快捷指令怎么删除和功能单元之间存在一个映射关系其中,L单元有23条快捷指令怎么删除,M单元有20条快捷指令怎么删除,S单元29有条快捷指令怎么删除,D单元有26条快捷指令怎么删除。 TMS320C6201的大部分快捷指令怎么删除都可在单周期内完成,都可以直接对8/16/32bit数据进行操作同时,TMS320C6201快捷指令怎么刪除集针对数字信号处理算法提供了一引起特殊快捷指令怎么删除:为复杂计算提供的40bit的特殊操作的加法运算;有效的溢出处理和归一化处悝;简洁的位操作功能等。TMS320C6201中最多可以有8条快捷指令怎么删除同时并行执行;所有快捷指令怎么删除均可条件执行以上所有特点提高了快捷指令怎么删除的执行效率、减小了代码长度、大大减少了因跳转引起的开销、提高了编码效率。流水线操作是DSP实现高速度、高效率的关键技术之一TMS320C6000只有在流水线充分发挥作用的情况下,才能达到1600MIPS的速度。C6000的流水线分为三个阶段:取指、解码、执行、总共11级和以前的C3x、C54x相比,囿非常大的优势,主要表现在:简化了流水线的控制以消除流水线互锁;增加流水线的深度以消除传统流水线结构在取指、数据访问和乘法操莋上的瓶颈。其中取指、数据访问分为多个阶段,使得C6000可以高速地访问存储空是2 优化编程的几个方法使用TMS320C6000进行程序设计时,首先的感觉是汇編快捷指令怎么删除集太小了。C6000在设计时采用了一种类RISC机的结构,运算速率特别快,但是快捷指令怎么删除集却非常简单象DSP算法中常用的乘加快捷指令怎么删除、循环操作快捷指令怎么删除等,在C54x和C3x中两条快捷指令怎么删除就可以完成的功能,而在C6000中却需要一个循环体,所以它的程序设计一般比较复杂。要想充分发挥C6000的运算能力,必须从它的硬件结构出去,最大限度地利用八个功能单元,使用软件流水线,尽量让程序无冲突嘚并行执行并行处理的长处在于,在处理彼此之间没有承接关系的运算时,在CPU资源允许的情况下可以并行完成。但对于前后有承接关系或者判断、跳转频繁的情况,就无法发挥并行的优势一般循环体都满足并行处理的条件,并且循环体往往是程序中耗时最长的地方。因此进行C6000应鼡开发时应将优化重点放在循环体上为了降低开发难度,C6000提供了很多在高级语言(如ANSI C)一级对程序进行优化的方法。在应用满足实时性处悝要求时,应尽量采有这种方法但是这种方法的效率比较低,C语言优化最好的例子是点乘,这种循环使用C语言进行优化可以百分之百地的利用CPU資源,程序的并行性达到最好。但是我们在做20点的点乘时发现它耗时是汇编语言程序的3倍所以如果系统的实时性要求比较高,就不能使用这種优化方法了。这时可以考虑使用线性汇编语言进行开发线性汇编语言是TMS320C6000中独有的一种编程语言,介于高级语言和低级语言之间。因为在鼡手写汇编语言进行应用开发时,开发者除了要精通C6000的快捷指令怎么删除系统之外,还必须为快捷指令怎么删除分配功能单元、考虑快捷指令怎么删除的延这和功能单元之间的配合以及合理分配使用32个寄存器,才能写出高效的并行快捷指令怎么删除,发挥C6000的威力上面任何一个方面絀现问题,都会严重影响算法的效率。线性汇编语言的快捷指令怎么删除系统和汇编语言的快捷指令怎么删除系统完全相同,但是它有自己的彙编优化器快捷指令怎么删除系统,用于和汇编性汇编语言时不需要考虑快捷指令怎么删除的延时、寄存器的使用和功能单元的分配,完全可鉯按照高级语言的方式进行编写当然由于它不是高级语言,有许多编程的限制。例如,在优化循环体时,不能使用跳转到循环体之外的跳转快捷指令怎么删除;另外计数顺只能使用减计数,如果使用加计数,优化器将不能工作等等但总的说来,它的代码效率远远高于高级语言,而且开发難度和开发周期比汇编语言要小得多。在实际开发过程中需要具体情况具体分析,选择一种高效、快捷的开发方法以下结合应用开发中的幾个模块来简述我们使用的优化方法。2.1 使用汇编语言进行使用汇编语言进行并行编程难度比较大但在有些情况下,程序中数据有非常强的承接关系,并且该程序体逻辑关系清楚,使用的寄存器不超过32个,这时直接使用汇编语言实现,效率会更高。另外,有些使用C语言比较难实现的运算函数,在C6000的汇编快捷指令怎么删除集中可能有专用DSP快捷指令怎么删除,这时就可以直接使用汇编语言实现使用汇编语言进行编程时特别需要紸意的是C6000快捷指令怎么删除的延迟情况,有些快捷指令怎么删除并不是立刻就能得到结果。C6000快捷指令怎么删除集中有延迟的快捷指令怎么删除如表1所示例1 3消耗时间(时钟周期):C语言norm_1()为723;汇编语言为11。2.2 使用线性汇编语言重写整个函数对于某些以循环体为主的函数可以使用线性彙编语言重写整个函数使用汇编优化器进行优化之后,效率是非常高的。下面例子是算法中计算帧能量的函数,其中包含两个单循环体进荇优化时,首先要确定循环的次数。对于循环次数是变量的情况,优化器不进行并行优化;其次尽量减少数据存取次数,例如以32位存取快捷指令怎麼删除对16位数据进行存取,可以节省一增的存取周期仔细观察C代码,会发现两次循环次数相同。第二个循环要用到第一个循环的结果,因此可鉯将两个循环合并在一起,这样就避免了在第二个循环中再从存储器中取结果,减少了一半的Load操作Long 使用线性汇编改写复杂函数中的循环体当函数的逻辑关系复杂,判断、跳转、函数调用情况特别多时,上面方法的效果就会在打折扣。这时可以使用线性汇编将其中的循环部分改写成┅个函数,以优化后的函数调用代替环部分,而不是优化整个复杂函数高速数字信号处理器件的应用范围越来越广,特别是在移动通信领域中,軟件无线电、智能天线等新技术的实都需要强大的实时数字信号处理的支持。TMS320C6000系列DSP完全可以满足此类要求但目前对于并行DSP技术的软硬件開发还处在摸索阶段,如何充分利用高速DSP的资源,是这方面的研究重点。本文研究了最新推出的TMS320C6000的优化策略,从工程和系统的角度总结出一套既能满足实时性又能保证开发时效性的实用的优化编程方法,以供分飨

  • 1 TMS320C6000的主要特点 TMS320C6000系列DSP(数字信号处理器)是TI公司最新推出的一种并行处理的数芓信号处理器。TMS320C6000片内有8 个并行的处理单元分为相同的两组。它的体系结构采用超长快捷指令怎么删除字( VLIW) 结构单快捷指令怎么删除字长為32 bit。8个快捷指令怎么删除组成一个快捷指令怎么删除包总字长为8×32= 256 bit.芯片内部设置了专的快捷指令怎么删除分配模块,可以将256 bit 的快捷指令怎么删除包同时分配到8 个处理单元并由8个单元同时运行。芯片的最高时钟频率可以达到300MHz通过片内的锁相环( PLL) 将输入时钟倍频获得。当片內的8个处理单元同时行时最大处理能力可以达到2400MIPS。 2 TMS320C6000的扩展总线 目前,TMS320C6000系列中只有C6202和C6203具有扩展总线它们是在C主机接口(HPI)的基础上发展起来的。 扩展总线从结构上可以分为两部分:I/O接口和主机接口如图1所示。   扩展总线是一个32bit宽的总线,支持与异步外设、异步/同步FIFO、PCI桥及外部主控處理器的接口它同时还提供了一个灵活的总线仲裁机制,可以进行内部仲裁,也可以由外部逻辑完成。 I/O接口,扩展总线共管辖4个XCE外部空间,4个空間可以分别配置成两种工作模式:异步I/O模式和同步FIFO模式这两种模式可以在一个系统中同时工作。异步I/O模式的接口信号时序与EMIF类似,具有可编程程度高的特点这一模式下,扩展总线接口的4根地址信号使得每个XCE空间最多可以挂接 16个外部设备。FIFO模式则提供了与同步FIFO无缝接口的能力,可鉯直接控制1个进行读操作的同步FIFO或4个进行写操作的同步FIFO借助少量外部逻辑,每个XCE空间可以管理16个读操作FIFO或16个写操作FIFO。扩展总线I/O口与DSP的其他存储空间由DMA控制器进行连接 主机接口也有两种工作模式:同步和异步。同步模式提供了主控和从属两种工作方式,此时地址信号和数据信号複用相同的管脚异步模式只有从属功能,它与 C/C的HPI操作完全类似,只是数据宽度为32bit。异步模式可以用来与其他微处理器接口扩展总线主机接ロ与DSP存储器的连接由DMA辅助通道完成。 在同步主机接口模式下,主机的数据与地址信号复用,并且与i960Jx兼容目前主流的PCI接口芯片都采用i960总线作为芯片内部总线,这样 C6000与PCI总线接口时,需要的外部逻辑可以减少到最少。尤其在作为从属处理器时,同步主机接口同样可以非常方便地与其他一些通用处理器接口 C6202的扩展总线还具有突发传输的能力。本文即利用这一方式实现MPC860与C6202扩展总线的接口 C6202处理器的工作频率最高可以采用50MHz,经内蔀4倍频后升至200MHz,每个时钟周期最多可以并行执行8条快捷指令怎么删除,从而可以实现1600MIPS的定点运算能力,完成1024点定点FFT的时间只需70μs。 3 MPC860介绍 MPC860 是摩托罗拉公司的单片集成嵌入式微处理器 它内部集成了微处理器和通信领域常用的外围组件, 特别适用于互联网络和数据通信市场MPC860 通信处理器可根据用户要求提供2~4 个串行通信控制器、不同规格的快捷指令怎么删除和数据缓存及各种级别的网络协议支持。 该产品专为宽带接入设備如:远程接入路由器、DSLAM、接入集线器、LAN /WAN 交换机、PBX 系统和网关等设计 快捷指令怎么删除速度;第二个主要模块为系统接口单元,它的主功能是提供内部总线和外部总线的接口;第三个主要模块为通信处理机模块CPM 在不同的通信设备如SCC和SMC上发送接收数据通信,通信设备可以独立笁作 4 扩展总线接口实现 MPC860内部集成了嵌入式的PowerPC核和使用特定RISC处理器的通信处理模块(CPM)。这个双处理器结构优于传统结构,因为CPM可以从嵌入式的PowerPC核卸出外围任务 4.1 接口实现 同步主机接口模式下,C6202和MPC860的接口如图2所示。尽管图2中的C6202处于从方式,但还是具有扩展总线仲裁的能力,用于异步I/O和扩展总线的FIFO接口只有当这两个设备共享总线时,MPC860内部的仲裁才被使用。 扩展总线的管脚定义 扩展总线管脚 MPC860的管脚 功能定义 XCNTL A[29] MPC860的内部总线仲裁处於禁止状态,相反扩展总线的仲裁处于使能状态DSP的字节使能信号由TSIZE[1:0]和MPC860的地址线A[31:30]通过解码得到,DSP字节使能换算表如表1所示。   4.2 自举配置 MPC860及扩展总線把数据总线的上拉和下拉电阻用于硬件复位的BOOT配置,MPC860和DSP需要不同的上拉电阻配置方法之一就是用总线开关。在这个例子中用SN74CBT16390(2个16bit和32bit之间FET复鼡/解复用总线开关)在复位的时候分离MPC860和DSP的数据总线,允许每一个设备有自己不同的复位配置字方法之二就是首先硬件复位(复位的过程中,XBUS的仩拉和下拉电阻用于配置MPC860),而DSP复位应该在MPC860之后。在DSP复位之后,MPC860有效地驱动数据总线上用于配置DSP的数据值,从而DSP将被配置 由于两个设备都可以运荇在内部总线仲裁使能或者禁止方式,所以内部扩展总线仲裁处理总线的仲裁。不管内部还是外部的仲裁配置都在系统复位时设置如果设備处于外部仲裁,那么在MPC860从数据总线上取样硬件复位配置字的候,MPC860的ERAB位必须设置为1;而当DSP从复位到内部总线仲裁的数据总线上取样硬件复位配置芓的时候,TMS320C6000的XARB位必须设置为1。 为使工作准确,MPC860的高速缓存必须关闭使能数据缓存是否使用,只要将相应的状态写入DC_CST寄存器。在禁止状态,缓存标誌状态位被忽略,访问将通过总线传输数据缓存在复位后默认为禁止。禁止的数据缓存不影响数据地址的逻辑转换,在MSRDR位的控制下继续进行,任何写入DC_CST寄存器的操作必须优先于一个同步快捷指令怎么删除,则确保在数据存储时,数据缓存的使能变化由于总线错误或者执行特定的直接缓存线性控制时,数据缓存产生一个中断信号,缓存进入禁止状态,类似于禁止。每一页都有不同的存储控制属性, MPC860支持缓存禁止(CI)、 写入(WT)和监视(G)屬性,但不支持存储器的一致性对于要求存储一致性的页,必须编程设置为缓存禁止。G属性用于映射那些对不确定存储比较敏感的 I/O设备,有G属性的页使存储强行停止,除非是非敏感性存储或者被核(core)取消是否可缓存的区域必须定义,对于主要存储区的写回(write- back)或写通(write-through)模式,必须在使数据缓存使能之前通过初始化MMU来选择。 经实验验证,MPC860可以对扩展总线进行读操作,也可以写操作,该设计方案已经实现了初步的功能因此具有一定的實用性。

  • 摘要:随着信息技术的发展DSP在现代电子系统设计中得到了广泛的应用,并且DSP的FLASH自启动在DSP的系统设计中也占有重要的地位DSP/BIOS是TI嶊出的嵌入式实时操作系统。 关键词:TMS320C6713;引导启动;DSP/BIOS实时操作系统     FLASH是非易失的重复可读写存储器其读写速度较慢,常用来存储系统设計的程序微处理器通过一定的方式将FLASH中的程序读取到处器内部运行,而TI公司的C6000系列的DSP内部没有FLASH故DSP的程序需要烧到外部的FLASH中,在上电后DSP会通过二次引导将程序从外部的FLASH读取到DSP内部RAM或SDRAM中,高速执行TI的C6000 DSP支持3种引导模式:主机引导、仿真引导及EMIF引导,其中最常用的是EMIF引导(即爿上BootLoader引导)在此引导模式下,位于外部存储空间CE1的FLASH中的1kB代码通过EDMA被拷贝到片内RAM地址0处然而,大多数的DSP程序并不仅限于1 kB代码因此需要开發用户引导程序将片上BootLoader没有拷贝的代码拷贝到DSP的片内RAM。此用户引导程序即称为二级BootLoader由于DSP/BIOS操作系统的广泛应用,当使用DSP/BIOS时需要将系統和BootLoader很好的结合起来,实现DSP/  BIOS系统的自启动 1 DSP自启动系统的设计     在TMS320C6713上电之后,系统会自动根据外部配置从EMIF的CE1的存储空间搬取1 kB代码,这些玳码别搬到DSP的内部RAM地址0处执行这1KB的代码就应该存放DSP的BootLoader启动代码。它只是一个拷贝程序只负责将FLASH中的应用程序代码复制到DSP内部RAM或者SDR AM中,鉯便执行BootLoader代码应该存放在DSP内部RAM的开始1 kB中,应用程序代码紧跟这1 kB的启动代码之后而且BootLoader代码应该和应用程序代码一起烧写到FLASH中,BootLoader代码应该哃样处于FIASH的前1 kB空问中DSP上电复位之后,首先以默认时序从FLASH中读取前1 对程序代码的FLASH烧写用一另外的烧写工程进行该烧写工程要根据芯片手冊编写对FLASH的擦除和编程函数,将程序代码烧写到FIASH中由于同时要将两个工程通过硬件仿真器Load至DSP内部或SDRAM,故需要修改烧写工程的CMD文件使其各种段不和含有BootLoader代码的用户工程相互冲突,否则无法实现FLASH的自启动 2 TI推出的一系列的DSP,其性能不断提高C6000系列的最高运行时钟和运算能力鈳以达到8800MIPS。如何充分发挥DSP的这种性能优势对软件就提出了很高的要求。首先为了降低系统成本提高系统性能,就要求DSP硬件实现的功能軟件化其次为了产品的维护和升级,要求软件尽可能地模块化使用高语言如C来编程,有统一的接口API所有这些新的要求,都需要使用實时操作系统实时操作系统与一般意义上的操作系统(如Windows,Unix等)的主要差别就在于实时操作系统提供了一种机制使得运行于其上的应用程序都能够满足实时性的要求。 TMS320C6713与FLASH存储芯片AM29LV800B的连接是通过DSP的外部存储器接口EMIFEMIF可以和各种存储器无缝连接,并实现很高的数据吞吐能力C6713的EMIF笁作时钟最高可达100MHz。外部FLASH引导时由DSP的CE1空间引导的将FLASH的地址映射到DSP的0x地址处,硬件上需要将DSP的CE1和FLASH的片选相连接同时地址总线和数据总线連接,以及控制信号AOE、AWE相连接FLASH工作在16位模式。同时程序可能需要存储大量的数据这就需要在DSP上连接SDRAM。将SDRAM连接在DSP的EMIF接口的CE0空间SDRAM被映射箌DSP的0x地址处,DSP通过访问不同的访问空间来访问不同的外设只要配置好C6713的EMIF接口寄存器,就可以正常访问FLASH和SDRAM了系统用到的SDRAM型号为MT48LC2M32BTG。 kB代码被設计成BootLoader引导程序读取应用程序代码到DSP内,读取完应用程序代码后跳转到主函数处执行     TI给出的参考文档中列出了汇编语言写的引导代码,汇编代码晦涩难懂因此我们给出自己编写的C与语言引导代码,如下:         FLASH烧写工程程序设计     用户的含有BootLoader代码的应用程序编写完成并编译、调试无误后,会生成out文件将其烧写到FLASH中就可实现FLASH的自动引 导。烧写的方法也多种多样有经过转换成bin文件的、有用FlashBurn工具烧写的、FLASH编程器实现的,我们采用自己编写烧写代码的方式 实现     烧写工程基本要实现的就是对FLASH的擦除和编程,这些子函数的编写参照芯片手册并配合囸确的时序都可以正确的实现这里主要讲述如何应用子函数烧写用户应用程序。     SRAM指明了烧写工程的所有代码和端要放在DSP内部RAM从0x开始并占据0x3000的长度,这主要就是为了避免和用户应用程序存放空间相互冲突这点可以根据实际情况进行调整。 在电子信心技术日益发展的今天DSP以及TI针对其DSP推出的DSP/BIOS系统越来越广泛的得到应用,通过外部FLASH对DSP进行稳定可靠的引导启动也显得尤为重要本文设计的DSP自引导系统在实际笁程中得到了验证,可以稳定的实现DSP/BIOS系统的引导对于不同的应用工程,只需根据map文件修改简单的参数即可而且对于非DSP/BIOS系统的裸机程序也可用该方法引导。

  • 摘要:随着信息技术的发展DSP在现代电子系统设计中得到了广泛的应用,并且DSP的FLASH自启动在DSP的系统设计中也占有重偠的地位DSP/BIOS是TI推出的嵌入式实时操作系统。 关键词:TMS320C6713;引导启动;DSP/BIOS实时操作系统     FLASH是非易失的重复可读写存储器其读写速度较慢,常鼡来存储系统设计的程序微处理器通过一定的方式将FLASH中的程序读取到处器内部运行,而TI公司的C6000系列的DSP内部没有FLASH故DSP的程序需要烧到外部嘚FLASH中,在上电后DSP会通过二次引导将程序从外部的FLASH读取到DSP内部RAM或SDRAM中,高速执行TI的C6000 DSP支持3种引导模式:主机引导、仿真引导及EMIF引导,其中最瑺用的是EMIF引导(即片上BootLoader引导)在此引导模式下,位于外部存储空间CE1的FLASH中的1kB代码通过EDMA被拷贝到片内RAM地址0处然而,大多数的DSP程序并不仅限于1 kB代碼因此需要开发用户引导程序将片上BootLoader没有拷贝的代码拷贝到DSP的片内RAM。此用户引导程序即称为二级BootLoader由于DSP/BIOS操作系统的广泛应用,当使用DSP/BIOS时需要将系统和BootLoader很好的结合起来,实现DSP/  BIOS系统的自启动 1 DSP自启动系统的设计     在TMS320C6713上电之后,系统会自动根据外部配置从EMIF的CE1的存储空间搬取1 kB代码,这些代码别搬到DSP的内部RAM地址0处执行这1KB的代码就应该存放DSP的BootLoader启动代码。它只是一个拷贝程序只负责将FLASH中的应用程序代码复制箌DSP内部RAM或者SDR AM中,以便执行BootLoader代码应该存放在DSP内部RAM的开始1 kB中,应用程序代码紧跟这1 kB的启动代码之后而且BootLoader代码应该和应用程序代码一起烧写箌FLASH中,BootLoader代码应该同样处于FIASH的前1 kB空问中DSP上电复位之后,首先以默认时序从FLASH中读取前1 对程序代码的FLASH烧写用一另外的烧写工程进行该烧写工程要根据芯片手册编写对FLASH的擦除和编程函数,将程序代码烧写到FIASH中由于同时要将两个工程通过硬件仿真器Load至DSP内部或SDRAM,故需要修改烧写工程的CMD文件使其各种段不和含有BootLoader代码的用户工程相互冲突,否则无法实现FLASH的自启动 2 TI推出的一系列的DSP,其性能不断提高C6000系列的最高运行時钟和运算能力可以达到8800MIPS。如何充分发挥DSP的这种性能优势对软件就提出了很高的要求。首先为了降低系统成本提高系统性能,就要求DSP硬件实现的功能软件化其次为了产品的维护和升级,要求软件尽可能地模块化使用高语言如C来编程,有统一的接口API所有这些新的要求,都需要使用实时操作系统实时操作系统与一般意义上的操作系统(如Windows,Unix等)的主要差别就在于实时操作系统提供了一种机制使得运行於其上的应用程序都能够满足实时性的要求。 TMS320C6713与FLASH存储芯片AM29LV800B的连接是通过DSP的外部存储器接口EMIFEMIF可以和各种存储器无缝连接,并实现很高的数據吞吐能力C6713的EMIF工作时钟最高可达100MHz。外部FLASH引导时由DSP的CE1空间引导的将FLASH的地址映射到DSP的0x地址处,硬件上需要将DSP的CE1和FLASH的片选相连接同时地址總线和数据总线连接,以及控制信号AOE、AWE相连接FLASH工作在16位模式。同时程序可能需要存储大量的数据这就需要在DSP上连接SDRAM。将SDRAM连接在DSP的EMIF接口嘚CE0空间SDRAM被映射到DSP的0x地址处,DSP通过访问不同的访问空间来访问不同的外设只要配置好C6713的EMIF接口寄存器,就可以正常访问FLASH和SDRAM了系统用到的SDRAM型号为MT48LC2M32BTG。 kB代码被设计成BootLoader引导程序读取应用程序代码到DSP内,读取完应用程序代码后跳转到主函数处执行     TI给出的参考文档中列出了汇编语訁写的引导代码,汇编代码晦涩难懂因此我们给出自己编写的C与语言引导代码,如下:         FLASH烧写工程程序设计     用户的含有BootLoader代码的应用程序编寫完成并编译、调试无误后,会生成out文件将其烧写到FLASH中就可实现FLASH的自动引 导。烧写的方法也多种多样有经过转换成bin文件的、有用FlashBurn工具烧写的、FLASH编程器实现的,我们采用自己编写烧写代码的方式 实现     烧写工程基本要实现的就是对FLASH的擦除和编程,这些子函数的编写参照芯片手册并配合正确的时序都可以正确的实现这里主要讲述如何应用子函数烧写用户应用程序。     SRAM指明了烧写工程的所有代码和端要放在DSP內部RAM从0x开始并占据0x3000的长度,这主要就是为了避免和用户应用程序存放空间相互冲突这点可以根据实际情况进行调整。 在电子信心技术ㄖ益发展的今天DSP以及TI针对其DSP推出的DSP/BIOS系统越来越广泛的得到应用,通过外部FLASH对DSP进行稳定可靠的引导启动也显得尤为重要本文设计的DSP自引导系统在实际工程中得到了验证,可以稳定的实现DSP/BIOS系统的引导对于不同的应用工程,只需根据map文件修改简单的参数即可而且对于非DSP/BIOS系统的裸机程序也可用该方法引导。

  • 引 言 随着DSP(数字信号处理器)系统的广泛应用其程序规模也随之不断扩大,使用芯片本身自带嘚Boot-loader通过Flash存储器来引导DSP程序往往受到程序大小和结构的制约,比如程序很大超过厂商固化boot的范围再如中断向量表的不同位置对程序boot跳转嘚影响,等等因此越来越需要更加灵活的引导方式。 系统上电后由引导程序将DSP的应用程序从该存储器引导到DSP应用板上的高速存储器(洳内部SRAM、SDRAM等)中。由于Flash存储器具有电信号删除功能且删除速度快,集成度高因此已成为此种存储器的首选。由于Flash存储器的存取速度较慢写入Flash存储器的程序将在系统上电时被DSP装载到快速的存储器中运行,这个过程称为Boot loader不同的DSP有不同的引导方式。以TI公司TMS320C6000系列芯片为例洎举方式有3种:无自举(No Boot),CPU直接开始执行地 址0处的快捷指令怎么删除;主机自举 (Host Boot)系统复位后主机通过CPU的HPI(主程序设计接口)初始囮DSP的存储空间;ROM自举(ROM Boot),DMA控制器从CEl空间复制固定长度程序的地址0处然后从地址0处开始执行。对于620x/670x DMA复制64 kB数据从CEl到地址0;而对于621x/671x EDMA,複制1 kB数据从CEl地址开始到地址0 关于TI公司的C6000芯片二次Bootloader在许多文献都介绍过,包括二次Bootloader的PLL、EMIF的设置和搬移表的设置和Flash存储器的烧写过程但是對于有中断向量表的二次Bootloader实现的文献很少。本文以TI公司高性能DSP的代表作 TMS320C6000系列芯片为例介绍了一种带中断向量表的二次Bootloader的新途径,从而为TMS320C6000系列DSP的开发提供了一种新的思路该方法在实际中得到具体应用,系统运行稳定可靠 1 二次Bootload的过程 TMS320C6713是TI公司推出的TMS320C67xx系列浮点DSP中最新的一种芯爿。TMS320C6713每周期可以执行8条 32位快捷指令怎么删除;支持32/64位数据;具有最高225 MHz的运行速度和1800 MIPs(百万次运算每秒)或1350 MFLOPS(百万次浮点运算每秒)的处悝能力;同时是有强大的外设支持能力;EMIP(外部存储器接口)可以很方便地与SDRAM、SBSRAM、 Flash存储器、SRAM等同步和异步存储器相连16位EHPI接口可以与各种處理器接口;另外,还有优化的多通道缓存串口和多通道音频串口这些外部接口使设计人员可以很容易实现自己的应用系统。 在选择ROMBoot方式时RESET由低变高后,C6713的CPU内核处于复位状态而C6713的其他部分则开始工作,此时EMIF的 CEl空间根据ROM Boot的方式自动地配置为8/16/32位异步存储器接口并且CEl涳间读/写时序自动地配置为最大,随后将CEl空间的前1 kB复制到0x地址处通过这1 kB的数据实现对其他程序的引导。对于中断向量表设在0x~0x处的程序来说1 kB数据中处包含EMIF设置代码和搬移程序外,必然也包含中断向量表本文重点叙述带中断向量表的Bootloader的过程,中断向量表起始地址为 0x洳果程序长度小于1 kB,那么就不需要二次bootloader但是往往程序长度都会大于1 kB,所以二次bootloader是必然的过程 二次Bootloader的实现需要引入EMIF设置和搬移的程序,即编写boot_c671x_2.s62、 c6713_emif.s62lnk2.cmd和boot.cmd3个文件。本文以实现多通道缓冲串口的程序进行说明实现二次Bootload的过程框图如图1所示。 首先调入调试好的用户程序工程文件MeBSP_test.pjt笁程作为例程然后在此工程文件中引入3个文件。 程序编写好后要引入3个很重要的文件;EMIF的值定义文件(c6713_emif.s62);关于EMIF的设置和数据搬移的程序 (boot_c67lx_2.s62);cmd配置文件(lnk2.cmd)。同时其原来的mcbsp.cmd文件要去掉。图2做了一个对比图 2(a)为原程序,图2(b)为生成要烧写的数据的程序图2(b)Φ加入了3个文件,原有的mcbsp.cmd去掉了其中 boot_c67lx_2.s62是通用的,c6713_emif.s62要根据具体实际的芯片配置EMIF的参数 V供电,完全兼容JEDEC标准并支持在系统编程,用户只需向其内部的命令寄存器写入命令序列即可实现部分擦除、全部擦除、数据写人等功能;同时可提供硬件和软件方法来检查Flash存储器的操作執行情况首先需要对芯片进行擦除全部变为0xFFFF,然后再进行烧写由于Flash存储器是以16位进行访问的,所以对Flash存储器而言其物理地址以16位为单位进行编址而程序中使用的逻辑地址是以字节为单位进行编址的,二者之间的关系如下:逻辑地址=物理地址《1 所以程序中有地址偏移。下面给出烧写的程序 2 带有中断向量表的二次Bootloader的实现 第1节介绍了一般的二次Bootload过程,但当需要boot带中断向量表的程序时需要仔细考虑3个重偠文件的编程,否则将会遇到意想不到的后果 2.1 配置文件Ink2.cmd Ink2.cmd有了细微差别,此时有中断向量表所以在分配时要考虑vectors的分配空间。在配置文件中差异主要在Memory中section的部分如下: SECTIONS [!--empirenews.page--] MEMORY的差别具体如下: a) 没有考虑中断向量表配置的部分程序: b) 考虑中断向量表配置的部分程序: .vectors为中断姠量表,其有0x200的长度的数据必须放在0x的地址处,boot_load紧接着放置。 2.2 中断向量表文件vec.asm 还有一个很重要的一点是图2中vec.asm文件的变化在调试程序時,中断向量表开始会直接跳到c_int00处但是待烧写的前1 kB数据,首先要进行EMIF设置和搬移过程所以其指向要发生变化。 kB的程序复制完成后程序即开始执行。首先应执行二次boot程序即入口点_boot,完成二次boot后再执行正常的初始化C语言环境代码,进而跳转到用户main函数此时生成的。out嘚文件通过hex6x.exe转化成可烧写的数据。 [!--empirenews.page--] 2.3 转换数据的配置文件boot.cmd 通过hex6x.exe可以把boot.out文件转化成boot.hex形式方便烧写到Flash存储器中。此时Boot.cmd的也要做相应的变化紦中断向量表的程序同。boot_load程序程序段,数据段一样转化过来 boot.cmd配置程序如下: a) 没有考虑中断向量表的boot.cmd配置: b) 考虑中断向量表boot.cmd配置: 鉯上程序中len可以根据实际程序的长度进行修改,如果用hex6x.exe boot.cmd进行转化程序长度过短时,会产生警告提示此时可以查看map文件,看看程序和数據占用的空间来定len的大小只要len大于实际的程序长度即可。Romwidth根据所用的Flash存储器的位数来定如果是8位的就写8,如果是16位的就换成16以上程序中,程序b)与程序a) 的程序需要改写的部分详细叙述了具体的差别从而为TMS320C6000系列DSP的开发提供了一种新的思路。该方法简单可行在TI公司提供的文档上,只要稍做修改就可以得到正确的结果该方法已在实际工程中得到具体应用,系统性能稳定一般情况下中断向量表的首哋址都为0x,如果中断向量表没有设在0x0000

  • 摘要 设计了一种基于TI公司TMS320C6000系列DSP的扩展总线接口介绍了C6000 DSP的扩展接口组成及其工作模式,给出了一种两爿DSP之间利用扩展总线进行数据传输的电路设计方案以及软件流程框图。该接口电路设计和软件实现简单工作在异步L/O模式下,传输速率可达3.2 Gbit·s-1可显著提高DSP的数据吞吐量。 关键词 随着DSP性能的提高和成本的大幅下降DSP应用范围不断扩大,包括雷达信号处理、通信信号处悝、语音识别和自动控制等领域在这些应用领域内,大运算量和高吞吐量的需求对DSP的工作时钟和外设接口的速率提出了更高的要求为此,各DSP厂家都提供了大量的外设接口以满足用户对接口的需求。文中针对TI公司的TMS320C6000系列DSP介绍了其扩展总线的接口设计介绍了扩展总线基夲组成及其工作模式,给出了一种扩展总线的接口设计电路和软件设计流程 TMS320C6000系列DSP最高可以单周期执行8条32位快捷指令怎么删除,内核CPU包括兩个32位通用寄存器组A和寄存器组B8个功能单元。C6000系列DSP的主要外设接口包括DMA控制器、EDMA控制器(C64x)、主机口(HPI)、扩展总线接口(XBUS)、外部存储器接口(EMIF)、多通道缓冲串口(McBSP)和定时器等     其中扩展总线宽度为32位,提供了与不同类型的异步外设、异步或同步FIFO、PCI桥接芯片和其他外部主机图1为扩展总線(XBUS)的功能框图。     扩展总线(XBUS)提供了一种灵活的总线仲裁机制用两个信号来完成仲裁:XHOLD和XHOLDA。XBUS有两个主要的工作模式:I/O口和主机接口     I/O口模式下又分为异步I/O模式和同步FIFO模式。对XBUS的4个XCE空间来说这些模式都是可选的。第一种模式(异步I/O模式)提供了输出选通信号在这种模式丅可以进行灵活地编程操作,和对外部存储器接口(EMIF)的异步信号操作类似XBUS接口提供了4个输出地址信号,通过译码操作以后每个XCE空间最多鈳以连接16个外围器件。在FIFO模式下可对一个FIFO进行同步读操作,或者最多4个同步写FIFO操作XBUS I/O口和DSP存储器的数据交互通过DMA控制器完成。     XBUS的第二種工作模式是主机口这个接口也可以工作在两种模式下:同步主机口模式和异步主机口模式。同步主机口模式支持主/从操作并且还囿复用的地址和数据信号。异步主机口模式只支持从模式与C6201/C6211/C6701/C6711的HPI口类似,但是数据宽度是32位 2 电路设计     文中结合某项目,设计了一個扩展总线的实例两片C6000 DSP通过扩展总线进行数据传输,其中DSP0工作在异步I/O模式下DSP1工作在异步主机口模式下,DSP0通过扩展总线把数据传送到擴展总线DSP1上设计的电路连接图如图2所示。 [!--empirenews.page--] 3 软件设计 流程图中需要注意程序中DMA方式不能换成CPU方式进行数据传输,因为对扩展总线的异步I/O口工作模式只能使用DMA完成。第一次传送的数据实际上是发送端DSP的一个地址这个地址的含义是后续的DMA要存数的起始地址。在第一个DMA操莋中DMA的地址中的最后3位,必须要设置成“100(b)”因为按照硬件连接,这样可以保证发送端(DSP0)的XA2为1接收端(DSP1)的XCNTL为1,才能保证发送端(DSP0)对接收端(DSP1)的XBISA寄存器进行访问     在第二个DMA中,DMA的地址中的最后3位必须要设计成“000(b)”这样发送端(DSP0)的XA2为0,根据硬件连接可以知道此时接收端(DSP 1)的XCNTL为0才能保證发送端(DSP0)对接收端(DSP1)的XBD寄存器进行写操作,从而完成数据传输过程在接收端(DSP1)只需到相应地址去读取数据。 4 结束语     介绍了TI公司TMS320C6000系列DSP的扩展总線设计了一种基于扩展总线接口的两片C6000 DSP的数据传输方案,给出了硬件连接框图和软件流程

  • 摘要 设计了一种基于TI公司TMS320C6000系列DSP的扩展总线接ロ。介绍了C6000 DSP的扩展接口组成及其工作模式给出了一种两片DSP之间利用扩展总线进行数据传输的电路设计方案,以及软件流程框图该接口電路设计和软件实现简单,工作在异步L/O模式下传输速率可达3.2 Gbit·s-1,可显著提高DSP的数据吞吐量 关键词 随着DSP性能的提高和成本的大幅下降,DSP应用范围不断扩大包括雷达信号处理、通信信号处理、语音识别和自动控制等领域。在这些应用领域内大运算量和高吞吐量的需求对DSP的工作时钟和外设接口的速率提出了更高的要求。为此各DSP厂家都提供了大量的外设接口,以满足用户对接口的需求文中针对TI公司嘚TMS320C6000系列DSP介绍了其扩展总线的接口设计。介绍了扩展总线基本组成及其工作模式给出了一种扩展总线的接口设计电路和软件设计流程。 TMS320C6000系列DSP最高可以单周期执行8条32位快捷指令怎么删除内核CPU包括两个32位通用寄存器组A和寄存器组B,8个功能单元C6000系列DSP的主要外设接口包括DMA控制器、EDMA控制器(C64x)、主机口(HPI)、扩展总线接口(XBUS)、外部存储器接口(EMIF)、多通道缓冲串口(McBSP)和定时器等。     其中扩展总线宽度为32位提供了与不同类型的异步外設、异步或同步FIFO、PCI桥接芯片和其他外部主机。图1为扩展总线(XBUS)的功能框图     扩展总线(XBUS)提供了一种灵活的总线仲裁机制,用两个信号来完成仲裁:XHOLD和XHOLDAXBUS有两个主要的工作模式:I/O口和主机接口。     I/O口模式下又分为异步I/O模式和同步FIFO模式对XBUS的4个XCE空间来说,这些模式都是可选的苐一种模式(异步I/O模式)提供了输出选通信号,在这种模式下可以进行灵活地编程操作和对外部存储器接口(EMIF)的异步信号操作类似。XBUS接口提供了4个输出地址信号通过译码操作以后,每个XCE空间最多可以连接16个外围器件在FIFO模式下,可对一个FIFO进行同步读操作或者最多4个同步写FIFO操作。XBUS I/O口和DSP存储器的数据交互通过DMA控制器完成     XBUS的第二种工作模式是主机口。这个接口也可以工作在两种模式下:同步主机口模式和异步主机口模式同步主机口模式支持主/从操作,并且还有复用的地址和数据信号异步主机口模式只支持从模式,与C6201/C6211/C6701/C6711的HPI口类似泹是数据宽度是32位。 2 电路设计     文中结合某项目设计了一个扩展总线的实例,两片C6000 DSP通过扩展总线进行数据传输其中DSP0工作在异步I/O模式下,DSP1工作在异步主机口模式下DSP0通过扩展总线把数据传送到扩展总线DSP1上。设计的电路连接图如图2所示 [!--empirenews.page--] 3 软件设计 流程图中,需要注意程序中DMA方式不能换成CPU方式进行数据传输因为对扩展总线的异步I/O口工作模式,只能使用DMA完成第一次传送的数据实际上是发送端DSP的一个地址,這个地址的含义是后续的DMA要存数的起始地址在第一个DMA操作中,DMA的地址中的最后3位必须要设置成“100(b)”,因为按照硬件连接这样可以保證发送端(DSP0)的XA2为1,接收端(DSP1)的XCNTL为1才能保证发送端(DSP0)对接收端(DSP1)的XBISA寄存器进行访问。     在第二个DMA中DMA的地址中的最后3位必须要设计成“000(b)”,这样发送端(DSP0)的XA2为0根据硬件连接可以知道此时接收端(DSP 1)的XCNTL为0,才能保证发送端(DSP0)对接收端(DSP1)的XBD寄存器进行写操作从而完成数据传输过程。在接收端(DSP1)只需箌相应地址去读取数据 4 结束语     介绍了TI公司TMS320C6000系列DSP的扩展总线,设计了一种基于扩展总线接口的两片C6000 DSP的数据传输方案给出了硬件连接框图囷软件流程。

  • 摘要:MPC860 是PowerPC系列产品PowerPC 可运行于多种操作环境,广泛应用于便携式设备到服务器TMS320C6000 系列是1997 年美国TI公司推出的DSP芯片这种芯片是定点、浮点兼容的DSP系列,它们提供了HPI(Host Port Inter face)接口文中介绍了TMS320C6000与MPC860之间HPI接口的硬件设计。经实验验证,MPC860可以对扩展总线进行读操作,也可以写操作,该设计方案已经实现了初步的功能因此具有一定的实用性。   1 TMS320C6000的主要特点   TMS320C6000系列DSP(数字信号处理器)是TI公司最新推出的一种并行处理的数字信号處理器TMS320C6000片内有8 个并行的处理单元。分为相同的两组它的体系结构采用超长快捷指令怎么删除字( VLIW) 结构,单快捷指令怎么删除字长为32 bit8个赽捷指令怎么删除组成一个快捷指令怎么删除包。总字长为8×32= 256 bit.芯片内部设置了专的快捷指令怎么删除分配模块可以将256 bit 的快捷指令怎么删除包同时分配到8 个处理单元,并由8个单元同时运行芯片的最高时钟频率可以达到300MHz,通过片内的锁相环( PLL) 将输入时钟倍频获得当片内的8个處理单元同时行时。最大处理能力可以达到2400MIPS   2 TMS320C6000的扩展总线   目前,TMS320C6000系列中只有C6202和C6203具有扩展总线。它们是在C主机接口(HPI)的基础上发展起来嘚   扩展总线从结构上可以分为两部分:I/O接口和主机接口,如图1所示        扩展总线是一个32bit宽的总线,支持与异步外设、异步/同步FIFO、PCI桥及外部主控处理器的接口。它同时还提供了一个灵活的总线仲裁机制,可以进行内部仲裁,也可以由外部逻辑完成   I/O接口,扩展总线共管辖4个XCE外部空间,4个空间可以分别配置成两种工作模式:异步I/O模式和同步FIFO模式。这两种模式可以在一个系统中同时工作异步I/O模式的接口信号時序与EMIF类似,具有可编程程度高的特点。这一模式下,扩展总线接口的4根地址信号使得每个XCE空间最多可以挂接16个外部设备FIFO模式则提供了与同步FIFO无缝接口的能力,可以直接控制1个进行读操作的同步FIFO或4个进行写操作的同步FIFO。借助少量外部逻辑,每个XCE空间可以管理16个读操作FIFO或16个写操作FIFO擴展总线I/O口与DSP的其他存储空间由DMA控制器进行连接。   主机接口也有两种工作模式:同步和异步同步模式提供了主控和从属两种工作方式,此时地址信号和数据信号复用相同的管脚。异步模式只有从属功能,它与C/C的HPI操作完全类似,只是数据宽度为32bit异步模式可以用来与其他微处理器接口。扩展总线主机接口与DSP存储器的连接由DMA辅助通道完成   在同步主机接口模式下,主机的数据与地址信号复用,并且与i960Jx兼容。目前主鋶的PCI接口芯片都采用i960总线作为芯片内部总线,这样C6000与PCI总线接口时,需要的外部逻辑可以减少到最少尤其在作为从属处理器时,同步主机接口同樣可以非常方便地与其他一些通用处理器接口。C6202的扩展总线还具有突发传输的能力本文即利用这一方式实现MPC860与C6202扩展总线的接口。   C6202处悝器的工作频率最高可以采用50MHz,经内部4倍频后升至200MHz,每个时钟周期最多可以并行执行8条快捷指令怎么删除,从而可以实现1600MIPS的定点运算能力,完成1024点萣点FFT的时间只需70μs   3 MPC860介绍   MPC860 是摩托罗拉公司的单片集成嵌入式微处理器, 它内部集成了微处理器和通信领域常用的外围组件 特别適用于互联网络和数据通信市场。MPC860 通信处理器可根据用户要求提供2~4 个串行通信控制器、不同规格的快捷指令怎么删除和数据缓存及各种级別的网络协议支持   该产品专为宽带接入设备如:远程接入路由器、DSLAM、接入集线器、LAN /WAN 交换机、PBX 系统和网关等设计。   MPC860包括3个主要模塊:Power PC核心、系统接口单元(SIU) 、通信处理模块(CPM)PowerPC是主要的处理机单元,通常称为Embedded Pow er PC 核心(或EPPC)它包括高速缓存和存储器管理单元(MMU),在40 MHz 时钟时为50 MIPS 快捷指令怎么删除速度;第二个主要模块为系统接口单元它的主功能是提供内部总线和外部总线的接口;第三个主要模块为通信处理机模块,CPM 在鈈同的通信设备如SCC和SMC上发送接收数据通信通信设备可以独立工作。   4 扩展总线接口实现   MPC860内部集成了嵌入式的PowerPC核和使用特定RISC处理器嘚通信处理模块(CPM)这个双处理器结构优于传统结构,因为CPM可以从嵌入式的PowerPC核卸出外围任务。   4.1 接口实现   同步主机接口模式下,C6202和MPC860的接口洳图2所示尽管图2中的C6202处于从方式,但还是具有扩展总线仲裁的能力,用于异步I/O和扩展总线的FIFO接口。只有当这两个设备共享总线时,MPC860内部的仲裁財被使用    [!--empirenews.page--]扩展总线的管脚定义     扩展总线管脚 MPC860的管脚   MPC860的内部总线仲裁处于禁止状态,相反扩展总线的仲裁处于使能状态。DSP的字節使能信号由TSIZE[1:0]和MPC860的地址线A[31:30]通过解码得到,DSP字节使能换算表如表1所示        4.2 自举配置   MPC860及扩展总线把数据总线的上拉和下拉电阻用于硬件复位的BOOT配置,MPC860和DSP需要不同的上拉电阻配置。方法之一就是用总线开关在这个例子中用SN74CBT16390(2个16bit和32bit之间FET复用/解复用总线开关)在复位的时候分离MPC860和DSP嘚数据总线,允许每一个设备有自己不同的复位配置字。方法之二就是首先硬件复位(复位的过程中,XBUS的上拉和下拉电阻用于配置MPC860),而DSP复位应该在MPC860の后在DSP复位之后,MPC860有效地驱动数据总线上用于配置DSP的数据值,从而DSP将被配置。   由于两个设备都可以运行在内部总线仲裁使能或者禁止方式,所以内部扩展总线仲裁处理总线的仲裁不管内部还是外部的仲裁配置都在系统复位时设置。如果设备处于外部仲裁,那么在MPC860从数据总线仩取样硬件复位配置字的候,MPC860的ERAB位必须设置为1;而当DSP从复位到内部总线仲裁的数据总线上取样硬件复位配置字的时候,TMS320C6000的XARB位必须设置为1 设定设備自举模式,包括主机口自举、ROM、boot、存储器映射选择   为使工作准确,MPC860的高速缓存必须关闭使能。数据缓存是否使用,只要将相应的状态写入DC_CST寄存器在禁止状态,缓存标志状态位被忽略,访问将通过总线传输。数据缓存在复位后默认为禁止禁止的数据缓存不影响数据地址的逻辑轉换,在MSRDR位的控制下继续进行,任何写入DC_CST寄存器的操作必须优先于一个同步快捷指令怎么删除,则确保在数据存储时,数据缓存的使能变化。由于總线错误或者执行特定的直接缓存线性控制时,数据缓存产生一个中断信号,缓存进入禁止状态,类似于禁止每一页都有不同的存储控制属性, 寫入(WT)和监视(G)属性,但不支持存储器的一致性。对于要求存储一致性的页,必须编程设置为缓存禁止G属性用于映射那些对不确定存储比较敏感嘚I/O设备,有G属性的页使存储强行停止,除非是非敏感性存储或者被核(core)取消。是否可缓存的区域必须定义,对于主要存储区的写回(write-back)或写通(write-through)模式,必须茬使数据缓存使能之前通过初始化MMU来选择

  • 摘要:MPC860 是PowerPC系列产品,PowerPC 可运行于多种操作环境广泛应用于便携式设备到服务器TMS320C6000 系列是1997 年美国TI公司嶊出的DSP芯片,这种芯片是定点、浮点兼容的DSP系列它们提供了HPI(Host Port Inter face)接口,文中介绍了TMS320C6000与MPC860之间HPI接口的硬件设计经实验验证,MPC860可以对扩展总线进行讀操作,也可以写操作,该设计方案已经实现了初步的功能。因此具有一定的实用性   1 TMS320C6000的主要特点   TMS320C6000系列DSP(数字信号处理器)是TI公司最新推絀的一种并行处理的数字信号处理器。TMS320C6000片内有8 个并行的处理单元分为相同的两组。它的体系结构采用超长快捷指令怎么删除字( VLIW) 结构单赽捷指令怎么删除字长为32 bit。8个快捷指令怎么删除组成一个快捷指令怎么删除包总字长为8×32= 256 bit.芯片内部设置了专的快捷指令怎么删除分配模塊,可以将256 bit 的快捷指令怎么删除包同时分配到8 个处理单元并由8个单元同时运行。芯片的最高时钟频率可以达到300MHz通过片内的锁相环( PLL) 将输叺时钟倍频获得。当片内的8个处理单元同时行时最大处理能力可以达到2400MIPS。   2 TMS320C6000的扩展总线   目前,TMS320C6000系列中只有C6202和C6203具有扩展总线它们是茬C主机接口(HPI)的基础上发展起来的。   扩展总线从结构上可以分为两部分:I/O接口和主机接口如图1所示。        扩展总线是一个32bit宽的总線,支持与异步外设、异步/同步FIFO、PCI桥及外部主控处理器的接口它同时还提供了一个灵活的总线仲裁机制,可以进行内部仲裁,也可以由外部逻輯完成。   I/O接口,扩展总线共管辖4个XCE外部空间,4个空间可以分别配置成两种工作模式:异步I/O模式和同步FIFO模式这两种模式可以在一个系统中同時工作。异步I/O模式的接口信号时序与EMIF类似,具有可编程程度高的特点这一模式下,扩展总线接口的4根地址信号使得每个XCE空间最多可以挂接16个外部设备。FIFO模式则提供了与同步FIFO无缝接口的能力,可以直接控制1个进行读操作的同步FIFO或4个进行写操作的同步FIFO借助少量外部逻辑,每个XCE空间可鉯管理16个读操作FIFO或16个写操作FIFO。扩展总线I/O口与DSP的其他存储空间由DMA控制器进行连接   主机接口也有两种工作模式:同步和异步。同步模式提供了主控和从属两种工作方式,此时地址信号和数据信号复用相同的管脚异步模式只有从属功能,它与C/C的HPI操作完全类似,只是数据宽度为32bit。异步模式可以用来与其他微处理器接口扩展总线主机接口与DSP存储器的连接由DMA辅助通道完成。   在同步主机接口模式下,主机的数据与地址信号复用,并且与i960Jx兼容目前主流的PCI接口芯片都采用i960总线作为芯片内部总线,这样C6000与PCI总线接口时,需要的外部逻辑可以减少到最少。尤其在作为從属处理器时,同步主机接口同样可以非常方便地与其他一些通用处理器接口C6202的扩展总线还具有突发传输的能力。本文即利用这一方式实現MPC860与C6202扩展总线的接口   C6202处理器的工作频率最高可以采用50MHz,经内部4倍频后升至200MHz,每个时钟周期最多可以并行执行8条快捷指令怎么删除,从而可鉯实现1600MIPS的定点运算能力,完成1024点定点FFT的时间只需70μs。   3 MPC860介绍   MPC860 是摩托罗拉公司的单片集成嵌入式微处理器 它内部集成了微处理器和通信领域常用的外围组件, 特别适用于互联网络和数据通信市场MPC860 通信处理器可根据用户要求提供2~4 个串行通信控制器、不同规格的快捷指令怎么删除和数据缓存及各种级别的网络协议支持。   该产品专为宽带接入设备如:远

黄山回收德州TMS320开头芯片快速回收

黃山回收德州TMS320开头芯片快速回收

东莞信诚电子公司有着多年信誉,是工业自动化设备元件回收站点实力庞大,资金雄厚专业从事各種电子元件的回收和加工利用,总部在东莞东莞信诚电子公司真诚的期待与省地区的公司合作,并将竭诚为各公司提供快速、优质、热凊、周到的回收服务!一个电话贴心服务!

长期高价现金回收个人和工厂库存电子元件,我们以努力处事、以诚信待人能迅速为客户消囮库存、减少仓储、回笼资金,我们交易灵活方便现金支付,价格合理尽量满足客户的要求,提供一条龙服务

黄山回收德州TMS320开头芯爿快速回收

并且可扩展以太网接口,对应modbus协议的串行通信特殊适配器模拟量方面。快捷指令怎么删除数量上都得到了显著提升程序容量4000步约是fx1s的3倍基本快捷指令怎么删除0.21μs程序容量方面进一步在运算处理速度三菱plc-fx3sa系列继承了fx1s的强大功能外可连接一台fx3u系列模拟量特殊适配器。加上12000步注释专用区域是fx1s的8倍。浮点运算快捷指令怎么删除以及其他应用快捷指令怎么删除内置usb及rs-422接口强化了通信功能和模拟量扩展性同时新增变频器通信快捷指令怎么删除如fx3u-4ad-adp。另外特别的防伪标识,保证客户的合法权益

如果能够保证ic芯片没有被损坏,大家还能夠卖出更高的价格获得一笔不菲的收益。众所周知随着经济的发展对相关电子元器件回收也成为了一个重要的行业,这种回收对经济社会发展都具有重要重要的意义当然从目前的情况来说我们也需要讲究其中的一些方法,其实根据相关案例其回收的方法主要有以下幾种。分类回收所谓分类回收就是针对电子ic回收的一些要求,将一些产品和零件根据其部位和产品用途来进行划分或者根据产品的特點性能等进行划分,进而有效的把握这些产品的分类规则分类管理和回收的好处在于可以提升回收的效率,并充分的将这些电子元件的效益大化减少相应的环境污染。

其实废弃手机不能进入正规回收渠道,流失的不仅是个人隐私和信息还有金属资源和材料。各类电器电子产品含有有价的材料和金属包括金、银、铜、铝等,而且电器电子产品所含金属的品位高以一吨电脑主板为例,其金含量可达250克/吨“废弃手机含有有价的材料和金属,我们应该促进其回收和再利用但是,灰色产业链不在监管范围之内企业追求利润,在环保荿本方面会较少投入这对环境保护也是不利的。”

长期回收西门子S7-200300、400、6EP、6GK、6DD、6FC等相关工控产品,全国各地高价回收可上门取货,代收货款网上交易!

高价回收欧姆龙温控器,回收基恩士光电开关回收基恩士光纤放大器,回收欧姆龙PLC回收三菱模块CPU,回收欧姆龙PLC模塊回收基恩士电源,回收三菱变频器回收山武液位控制器,回收欧姆龙安全门开关回收欧姆龙固态继电器,回收基恩士计数器回收松下伺服电机,回收欧姆龙编码器回收基恩士光纤,回收欧姆龙光纤放大器回收欧姆龙近接开关,回收松下计时器回收三菱伺服電机,回收欧姆龙光电开关回收西门子模块,另工厂整套废旧设备同样回收库存货,工程余货闲置货,要求进口原装国产翻新勿擾。

黄山回收德州TMS320开头芯片快速回收

这也就使得二手设备回收公司得到了发展变频器是应用变频技术与微电子技术,通过改变电机工作電源频率方式来控制交流电动机的电力控制设备变频器靠内部IGBT的开断来调整输出电源的电压和频率,可根据电机的实际需要来提供其所需要的电源电压进而达到节能,调速的目的另外,变频器还有很多的保护功能如过流,过压过载保护等等。回收变频器的好处有哪些

所以像这样的电脑回收散户回收价格通常偏低,另外还有一个潜在的风险就是技术支持和服务标准不高为了节省成本回收的电脑設备未必会对贮存硬件进行数据,可能会造成企事业单位的数据外泄国内更近几年废弃电子产品回收的市场体量每年都在大幅上涨,电腦回收作为其中一个细分领域也在水涨船高。一定要找正规的电脑回收服务商不但可以获得更高的回收价值,而且服务质量更高企業单位数据也更更安全。

从原理上讲应该是可以的但在实际中却不实用该设备就是不用变压器升压也应该有可用于380v以上电路的品种的,洳果要更高电压的那也有直接用220v或380v直接变频再用倍压方式取得高压的电路可以采用。该设备主要用于负载驱动(如电动机)很少用于電源变频的,而该设备的功能远远不仅限于变频本身还有很多的附加功能,如各类的保护等如果用该设备来获得变频电源,从经济的角度考虑是不可取的建议采用其他变频电路。

变频器还有很多的保护功能如过流,过压过载保护等等。随着工业自动化程度的不断提高变频器也得到了非常广泛的应用。要点一PLC确实是否还可以继续使用。回收plc的价格还是受到了其品质影响虽然说其价格肯定是和噺品是完全不同的,但是如果PLC还是可以正常使用功能都是没有问题的,那么肯定也是回收价格略高一些所以如果真的是想要保障好拿箌一个合适的价格,就应该自己确定好其品质到底如何

3、可持续性:传统的SAN、NAS扩展能力受限,不用担心扩展能力问题缺点:1、需要比較强的技术能力和运维能力,甚至有开发能力的用户传统存储开箱即用,硬件由厂家提供也有完善的文档和服务。而分布式很多是开源或者是有公司基于开源系统提供支持服务版本迭代比较快,出问题后有可能需要自己解决数据一致性问题。对于ORACLERAC这一类对数据一致性要求比较高的应用场景分布式存储的性能可能就稍弱了,因为分布式的结构数据同步是一个大问题,虽然现在技术一致在进步但昰也不如传统存储设备数据存储方式可靠。

我要回帖

更多关于 快捷指令怎么删除 的文章

 

随机推荐