EDN首页   博客首页

0

关于投票
一台用LM317的稳压电源电压可调但最低电压只能调到5V左右不知什么原因

  图1 是一个比较成熟的电路图,我们照此图制作了几十个稳压电源都是成功的,证明电路图没有问题。

  图1用LM317的稳压电源电路

稳压电源电路



  问题中提出的现象,我们在实际制作中也遇到过。电压可调说明电路没有司题,这种现象主要出在LM317上,有的个别公司生产的LM317就存在这个问题,换一家公司的LM317故障就排除了。所以如果制作的稳压电源数量较多时,应先选择不同公司生产的LM317试一下,没有问题再批量购买。好的LM317最低电压可以调到1.5V以下(约1.25V)。

系统分类: 电源技术
用户分类: 无分类
标签: 无标签
来源: 无分类
发表评论 阅读全文(19) | 回复(0)

0

关于投票
AMBE-1000声码器在语音通信系统中的应用

摘要:AMBE-1000是一款语音质量较好的低比特率声码器芯片。提出了应用该芯片研制语音通信声码器的具体实现方案。给出了语音通信系统中电话用户接口回路、PCM语音数字化编码回路和AMBE-1000是支持电路。

关键词:AMBE-1000 声码器 语音通信

AMBE-1000是美国DVSI公司研制、Lucent公司生产的一款成熟的双工声码器芯片。该芯片采用AMBE语音编码算法,编码速率为2.4~9.6kb/s。AMBE(Advanced Multi-Band Excitation)算法是MBE(Multi-Band Excitation)算法的改进和扩充。MBE语音编码算法是将语音谱按基音频率分成若干个带,对各个带的信号中清音/浊音(V、UV)分别处理,最后将各个带信号叠加,形成全带合成语音。AMBE-1000声码器在低速率和较强背景噪声下具有比较好的语音质量,从而使其在车、船载移动卫星语音通信系统中得到广泛应用。Inmarat(国际海事卫星组织)已把AMBE-1000应用于其各代卫星语音通信系统中,该芯片还可应用于语音压缩与存储等系统[3]。本文把AMBE-1000应用于语音通信系统,提出了具体实现方案,给出了其电话用户接口回路、PCM语音数字化编码回路和AMBE-1000支持电路。

1 AMBE-1000简介

1.1 AMBE-1000的主要特点

(1)具有高语音质量、低速率的全双工编码器。编码速率从2.4kb/s至9.6kb/s可变,语音质量和其它声码器的比较如图1[1]所示。
点击看大图
从图1可以看出,在4.8kb/s的编码速率下,AMBE-100有很好的语音质量;在2.4kb/s的编码速率下,该芯片产生的语音比GSM语音还好。

(2)有较强的抗背景噪声能力,有FEC功能,有良好的抗信道干扰能力,具体如图2[1]所示。

从图2可以看出,AMBE-1000算法的抗背景噪声能力明显比较性预测CELP等其它算法的高。

(3)具有功耗低的优点,还具有DTMF信号的检测、识别、产生和发送以及话音激活、舒适噪音插入和回音消除等功能[2]。
点击看大图
1.2 AMBE-1000的基本工作原理

AMBE-1000的AD/DA语音接口信号可以是标准的μ律或A律压扩量化的PCM信号,也可以是14或16比特线性量化的PCM信号。压缩语音数据的传输接口能够设置为主动或被动方式,且数据可按串行或并行的方式传输。AMBE-1000提供了用来设置芯片默认工作状态的一系列引脚,芯片加电时自动进入由引脚设置的默认状态。这些设置包括AD/DA转换格式、语音编码速率、FEC速率、主动/被动方式、并/串数据方式、VAD使能、回音消除使能等。这些状态可以通过硬件设置,也可以由软件通过控制字进行更改[2]。
点击看大图
AMBE-1000的数据格式可以是帧格式也可以是非帧格式,通常使用帧格式。对于帧格式,AMBE-1000以20ms为周期全双工并行工作。在20ms之后,AMBE-1000将A/D转换器送来的数字化语音压缩,按其帧格式打包后送到编码输出缓冲器,并将解码器输入缓冲器的数据包解压还原送向D/A转换器,从而完成对数字语音的编、解码。

2 AMBE-1000在语音通信系统中的应用

基于AMBE-1000具有的优点,本文设计的系统总框图如图3所示。系统采用电话机输入语音,提供了标准的RJ11接口,接口电路用MC3419-1L实现。语音的数字化PCM编码采用MC14LC5480实现,最后采用AMBE-1000对语音实现压缩。
点击看大图
2.1 用户回路接口电路

用户回路接口电路SCIL(Subscriber Loop Interface Circuit)主要为用户电话机回路提供“BORSHT”功能,由MC3419-1L实现。

MC3419-1L是Motrola公司生产的用户回路接口电路接口芯片,其基本性能有:向用户环路馈送直流电源;采用电流镜、运放及外接平衡网络完成2/4线转换;具有用户线状态的检测功能,并输出相应的电平信息。MC3419-1L电路内采用电流镜来实现各种主要功能。电流镜最重要的特性是它可将一路输入电流分解为若干路输出电流,输入为低阻抗,输出为高阻抗,输出输入电流有严格的比例关系。MC3419-1L使用6个电流镜中的两个组成直流馈电电路。为了提高馈电能力并降低芯片功能,需要外接TIP125/111作为输出电流的功放管;芯片的2/4线转功能也是利用运放和电流镜实现的,二线用户环路信号(平衡信号)可传送到四线发送输出端(非平衡信号),而四线接收输入端的信号除了传送到用户环路外,还通过平衡网络,抵消返回到发送运放输入端的信号,实现接收至发送之间的隔离;芯片的用户挂机、摘机检测也是通过内部电流镜比较来实现的[5]。
点击看大图
图4是MC3419-1L的一个简化应用电路。在图4中,TIP125TIP111都是电流馈电功放输出管;-48伏电源与用户线之间的二极管桥和电阻主要起过压过流保护作用,电容起防冲击作用;接入CC引脚的外接阻容元件主要用于抑制工频共模干扰;MC3419-1L与PCM的连接部分为平衡网络电路。

2.2 PCM电路

语音的PCM编码是将模拟的语音信号转变为数字的语音信号。它是语音数字化的第一步,也是语音压缩的基础。

MC14LC5480是Motorola公司生产的μ/A律PCM芯片,它有以下特点:低功耗;低噪声的全差分模拟电路设计;片内集成有发送带通滤波器和接收低通滤波器;具有RC预滤波器后滤波器;μ/A律可选择。

图5是MC14LC548的原理框图[5]。

在图5中,RO+、RO-和TI+、TI-分别是PCM模拟语音信号的差分输出和输入;PI、PO+、PO-用来放大模拟信号以驱动模拟语音设备;同步控制部分主要用于控制帧同步和比特位同步,控制引脚主要用于μ/A律的选择和低功耗模式的选择。

图6是MC14LC5480的具体应用电路图[6]。

在图6中,8kHz、2.048MHz时钟源可用Motorola的MC74HC4060来产生。具体实现如图7所示。

2.3 AMBE-1000电路

AMBE-1000的电路分三个部分:与PCM接口部分;芯片控制引脚设置部分;压缩数据输入、输出部分[1][2]。

2.3.1 AMBE-1000与PCM的接口电路

AMBE-1000要求PCM语音数据以串行的方式输入、输出。该接口电路的关键在于PCM语音数据的帧同步和比特位同步,具体实现电路如图8所示。
点击看大图
其中,输入的8kHz时钟源用于比特位同步,2.048MHz时钟源用于帧同步。D触发器和反向器用于两个时钟源的同步。

2.3.2 芯片控制引脚设置

AMBE-1000的引脚设置主要包括传输接口的设置,也就是对串行与并行、主动与被动、帧与非帧的传输接口模式设置,还包括芯片特定功能的设置。

传输接口的串、并行设置就是选择压缩语音数据是以8比特宽并行方式输入、输出,还是以串行的方式输入、输出。芯片的主动、被动模式是指压缩语音数据输入、输出的选通脉冲信号是由AMBE-1000提供还是由外部提供。帧与非帧的模式是指输入、输出数据是由外部提供。帧与非帧的模式是指输入、输出数据是否用AMBE-1000的固定数据帧格式封装。在本系统中AMBE-1000设置为主支、串行、帧格式格式下工作。

AMBE-1000特定功能的设置包括AD/DA转换格式、语音编码速率、FEC速率、VAD使能、CNI使能、回音使能、DTMF处理以及低功耗模式等。引脚设置为芯片设置了加电时自动进入的默认状态。以上部分设置还可以通过AMBE-1000的软件控制字进行更改,引脚设置的电路可以采用跳线座和跳线帽来实现,以方便硬设置的更改。

2.3.3 压缩语音数据的输入输出电路

压缩语音数据的输入输出电路主要是指传输接口的设置电路以及与标准串口DB-9的连接电路。本系统传输接口的设置为主动、串行、帧格式模式,也就是CH_SEL2、CH_SEL1、CH_SEL0(98、99、2引脚)设置为0、1、0。图9为芯片与DB-9的简化连接电路图。

其中,AMBE-1000中的CHS_I_CLK(串行输入时钟)CHS_O_CLK(串行输出时钟)、CHS_I_STRB(输入数据选通)、CHS_)_STRB(输出数据选通)、CHS_SYNC(串行同步)用于输入输出的时钟同步。

系统分类: 自由话题
用户分类: 无分类
标签: 无标签
来源: 无分类
发表评论 阅读全文(17) | 回复(0)

0

关于投票
基于VC6.0的多台MSP430单片机和PC机串口通讯实现方案

引言

在计算机控制系统中,不可避免的要采用多机系统进行通信。在由一台PC 机(上位机) 和多台单片机(下位机) 构成的分布式控制系统中,通过PC 机的串口与多台单片机的通信是最方便的。在这样的分布式控制系统中,单片机与微机之间的多路通信是整个系统的关键。


系统组成及通讯原理

系统构成

系统构成如图1所示,由上位机(即计算机)、通讯接口和下位机3部分组成。上位机选用的是工控机 ,智能终端由单片MSP430F169和外围传感器放大电路等构成。要想与PC 串口连接或者其它带有串口的终端连接,必须要进行EIA-RS-232C 与MSP430 电平和逻辑关系的转换。本设计采用MAX3232芯片, 可完成3V~5V 电平与串口电平的双向转换。


MSP430F169单片机属于德州仪器公司MSP430F14X/16X FLASH 系列。该系列是一组超低功耗的微控制器,工作电压范围1.8~3.6V。由于具有16位RISC结构,16 位寄存器和常 数寄存器,MSP430 达到了最大的代 码效率。数字控制的振荡器提供快速从所有低功耗模式苏醒到活动模式的能 力时间少于6ms。 MSP430F169 带有两个16 位定 时器(带看门狗功能)、速度极快的8 通道12 位A/D 转换器(ADC)(带内部参考电压、采样保持和自动扫描功能)、一个内部比较器和两个通用同步/异步发射接收器、48个I/O口(均可独立控制)的微处理器结构。硬件乘法器提高了单片机的性能并使单片机在编码和硬件上可兼容。

通讯原理

MSP430F169单片机支持两种不同的串行协议,通用同步协议(USART协议)和同步协议(SPI协议),用控制寄存器UCTL(表1)中的控制位SYNC来选择所需的模式。SYNC=0:选择异步模式UART;SYNC=1:选择同步模式SPI,在此选择异步模式。

控制寄存器内的信息决定了USART的基本操作,如选择通信协议、通信模式、字符长度和校验位等。在此设定字符长度为8位:CHAR=1,停止位1位:SP=0,奇校验:PEV=0。 MSP430的波特率发生器有一预分频/分频器和一个调整器的组合,即使晶振频率不是波特率的整数倍,这一组合也能使MSP430 正常工作而且还可以使其通讯协议工作在最大的波特率。采用这一技术, 即使用手表晶振(32768Hz),波特率也可以达到4800 和9600,选择波特率为9600,外部时钟为ACLK。

系统通讯协议

在PC机和多台单片机的通讯中,确定一个明确而合理的通讯协议是关键,包括对数据格式、通讯方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定。为了区别不同的分机,必须为每个分机分配一个唯一的地址,此地址唯一区别各单片机。数据格式采用数据包的形式,一次传输一组数据。数据包格式如表2所示:

起始标志位:1 个字节
分机地址: 1 个字节

命令/ 数据: 1 个字节

数据长度: 1 个字节

数据内容: n 个字节

和检验: 2 个字节

结束标志位: 1 个字节

数据格式中的地址位表示与PC 机通讯的单片机地址。操作命令则表示此次通讯要完成的操作。在单片机发送上位机接收的时候,协议规定命令FFH 为上报数据, 此时数据包中的数据长度、数据内容、和检验三个域便填充实际发送数据的个数、数据及和校验;命令F0H - F3H 则表示单片机给PC机的反馈信息,此时数据包中的数据长度、数据内容和检验三个域为空,其中当命令为F0H 表示接收成功,F1H 表示接收失败并要求重发,F2H 表示单片机有数据上报要求,F3H 表示单片机无数据上报要求。操作命令域在PC 机发送单片机接收的时候也相似的协议规定。


软件设计

下位机程序设计

主要由数据发送和数据接收子程序组成。设计单片机通信程序时,必须充分发挥单片机的效率。由于单片机多应用于实时性较强的控制场合,因此, 应将及时响应和控制对象的动作放在优先考虑的位置,以尽量减少通信等辅助性操作所占用的CPU时间。基于上述考虑,在设计单片机通信程序时,将通信程序分为接收中断处理程序和发送中断处理程序2部分。

主程序首先完成串行口的初始化、设置串口的工作方式、串口波特率,数据位、校验位等。

(1) 接收子程序

在接收到上位机发送的地址后, 下位机响应中断信号进入接收子程序。首先读取上位机发送的地址数据, 检查地址是否匹配,如果匹配, 准备接收其余的数据帧。在接收完上位机发送的数据后,判断下位机是否发出中断申请,如果有,则清除中断申请信号。
(2) 发送子程序只有当发送缓冲区内有数据要发送并且置位发送中断允许位时才调用。发送的数据遵守通讯协议的数据帧格式:首先发送起始标志, 然后发送需要传输的数据,最后发送校验和以及结束标志位。

上位机通讯

上位机程序设计采用VC ++ 6.0开发平台来实现。应用MSComm控件,可以非常方便地创建串行通信应用程序,但其程序执行效率不够高,并且无法应用串行通信的一些底层功能。CSerialPort类支持线连接的串口编程操作,编写的程序在Windows98/2000/XP下可以很好的运行CSerialPort类是基于多线程的,它的工作过程及在本系统的应用如下

1)设置通信对象、通信端口号以及配置通信格式(如起始位个数、数据位长度、校验方式、停止位个数等) 和其他相关属性;

2)设定通信协议;

3)打开通信端口,进行数据的传输;

m_Port.StartMonitoring();//开启监视线程;

m_Port.WriteToPort((LPCTSTR)temp);//发送数据;

4)关闭通信端口,释放系统资源。在完成串行通信操作后,应该将串行通信端口的资源归还给操作系统;

m_Port.ClosePort();//关闭串口
上位机程序工作流程如下:首先设置好串口参数,再开启串口监测工作线程,串口监测工作线程监测到串口接收到的数据、流控制事件或其他串口事件后,就以消息方式通知主程序,激发消息处理函数来进行数据处理,这是对接收数据而言;发送数据可以直接发送。


结束语

串 口通讯方式在计算机控制系统中有着广泛的应用,本文设计的通讯协议经实践证明稳定可靠,保证了单片机与PC之间数据传输的准确率,CSerialPort类简化封装了大部分通讯用API函数,同时简化了编程操作在实际中有着广泛的应用 。


系统分类: 自由话题
用户分类: 无分类
标签: 无标签
来源: 无分类
发表评论 阅读全文(20) | 回复(0)

0

关于投票
基于TMS320C6000系列DSP的维特比译码程序优化设计

卷积码因为其编码器简单、编码增益高以及具有很强的纠正随机错误的能力,在通信系统中得到了广泛的应用。基于最大似然准则的维特比算法(VA)是在加性高斯白噪声(AWGN)信道下性能最佳的卷积码译码算法,也是常用的一种算法。

一般来说,实现软判决维特比译码可以有三种方案供选择:专用集成电路(ASIC)芯片、可编程逻辑阵列(FPGA)芯片以及数字信号处理器(DSP)芯片。参考文献[3]对这三种方案的优劣做了详细的比较。使用DSP芯片实现译码是最为灵活的一种方案,但速度也是最慢的,因为整个译码过程都是由软件来实现的。

在近年来兴起的软件无线电技术中,要求采用可编程能力强的的器件(DSP、CPU等)代替专用的数字电路。对信道编解码而言,这样做的优点在于只需要在程序上加以少量改动,就可以适应不同的编码速率以及各种通信系统所要求的不同的编解码方法。然而速度的瓶颈限制了DSP译码在实时系统中的应用,因此提高DSP的译码速度对于软件无线电有着重要的意义。本文的目的就是通过对译码程序结构优化,来提高DSP芯片执行VA算法的速度。

1 维特比译码器

首先,需要定义两个将在本文中用到的术语:

输入帧--每次输入译码器的比特;

输出帧--对应一个输入帧,译码器输出的比特。

图1所示是卷积码译码器(VA算法)的一种典型结构。

以(2,1,7)卷积码为例(输入帧含2比特,输出帧为1比特),来说明译码器的三个主要部分。

1.1支路度量计算单元(BMG)

计算当前输入帧对应的128条支路的路径度量值,并将其存人支路度量存储单元(BMM)。

1.2加比选单元(ACS)

将支路度量值与相连的前面的路径度量值相加得到延伸后的新路径的度量值;比较连接在同一个状态上的两条新路径的度量值;选择其中度量值较小的那条路径(幸存路径),并将它的度量值存储到新路径度量存储器(SM)中,幸存路径值(对应编码状态的输入比特)存储到路径存储器(PM)中。

1.3幸存路径计算单元

找到64条幸存路径中度量值最小的一个(最大似然路径),通过回溯操作(Traceback)在PM中找出该路径对应的所有输入比特,依次输出即为译码结果。

   
每输出一帧,都对应着一次支路单元计算和64次ACS操作。ACS操作在总的运算时间里占了很大的比例。程序优化的主要工作就是设法减少每个ACS操作所需要的时钟周期数。

2 TMS320C6000 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,1,7)卷积码的VA译码器中,幸存路径存储在PM里。每一个输入帧对应64个可能的状态,会产生64比特的幸存路径比较结果。但TMS320C6701不能直接对64比特长的数据进行读写操作,所以把PM分成两个相同的32位数组PMO和PMl。前者用来存储状态0-31对应的幸存路径;后者存储状态32-64对应的幸存路径。PM0[i]和PM1[i]合在一起表示第i级网格的所有64条幸存路径。当编码约束长度更大时,也可以用同样的办法来分开存储。例如(2,1,9)卷.积码的PM就可以分成8个32位的数组来存储256个状态的信息。回溯操作的时候,先确定路径经过哪一个状态,就可以从相应的某一个数组中读出路径值,只需要一次LD(加载)操作。

图4给出了优化后的蝶形运算流程图。每次循环需要4个时钟周期,分别为图中的E0-E3,对应着一次蝶形运算。除了一些关键的加比选运算之外,还需要一些辅助运算来实现循环以及寄存器的相互拷贝,平均下来每个时钟周期可并行执行6条指令。

4 优化的效果和推广

译码器输出一帧所需要的时钟周期数为

TBMC+n·TButter+Ttb

其中,TBMC、TButter和Ttb分别表示支路度量计算、蝶形运算以及回溯操作所需要的周期数,n表示每一输出帧对应的蝶形运算的次数。

对于(2,1,7)卷积码译码器,输出一个帧需要32次蝶形运算,因此n=32。在回溯幸存路径的时候,有两种方案输出译码结果:一种是输入一帧码序列,就输出一帧译码结果;另一种是输入N帧码序列,然后输出N帧译码结果。后一种方法输出每一帧所需要的周期数可以减小为Ttb/N,但同时延时也增大为(N-1) TButter/TCPS,其中TCPS是DSP每秒运行的时钟周期数,等于DSP的工作频率。

如果使用TI公司定义的线性汇编语言用图1所示的结构来实现(2,1,7)译码,经过CCS2软件编译并自动进行-o1级优化以后,每译出一个比特,大约需要1000个时钟周期(TButter =22,n=32),时钟为167MHz时译码速度不超过160kbps。


    在经过本文所述方法优化以后的程序中,仍然是(2,1,7)卷积码,TBMC =20,TButter =4,n=32;Ttb=700,选择N=16,因此译出一个比特的平均时间是128+20+(700/16)=192个时钟周期。以TMS320C6701为例,它工作在167MHz,该程序的译码速率能达到大约870kbps,而延时仅为18μS。显然,本文中的优化程序性能远远高于自动优化的效果。

对于不同编码约束长度的卷积码,例如WCDMA中用到的(2,1,9)码,蝶形运算单元的流程与(2,1,7)码是完全相同的。不同的地方在于每一级的状态数增加到了256个。因此只需要对程序中的存储和回溯路径的指令做一些改动就可以使用。

对于不同的DSP系统,因为在指令集、总线、寄存器等诸多方面存在差异,针对C6000系列的优化的汇编程序不能直接应用。但译码程序优化中遇到的问题也是大致相同的,优化的重点任务都是设法减少ACS的运算量,因此本文提出的程序流程的基本思想以及一些解决问题的技巧都可以继续加以运用。

系统分类: 自由话题
用户分类: 无分类
标签: 无标签
来源: 无分类
发表评论 阅读全文(18) | 回复(0)
总共 , 当前 /