特点
专用于语音处理软件模块
优化的AT75系列智能互联网设备的处理器( SIAP
)
包括一些运行时配置的独立算法
- G.729A声码器( 8 Kbps的)
- VAD / CNG静音压缩( G.729附件B )
- G.711μ律和A律压缩( 64 Kbps的)
- 任意音源
ITU-T G.729和G.711标准兼容的
可用一个uClinux的
设备驱动程序
概观
该AT75C1220是一个软件模块设计上的的DSP子系统运行
AT75系列智能互联网设备的处理器。它实现了常用的声音
处理算法:
低比特率G.729声码器进行多媒体通信。
一个沉默的压缩算法中有效地处理了沉默期
通信。
高品质的语音压缩算法。
可用于产生任意频率在一个任意的乐音发生器
可编程的持续时间。
智能互联网
器具
处理器
( SIAP
)
AT75C1220 -
G.729A和
G.711语音
处理
软件
模块
所有这些算法有许多参数可以在运行被编程
时间。这些参数修改以这样的方式的DSP算法的行为
他们符合在多数情况下适用的标准。它们还允许
在AT75C应付私人经常遇到很多不规范的情况下,
电话网络。
该AT75C1220利用了AT75邮箱来交换数据的导通
ARM7TDMI芯片
核心内容。的数据通信信道的组织使得它
易于集成的AT75C1220的接口为大多数操作系统。
对于使用uClinux的开发商,特定的设备驱动程序提供。它允许
uClinux的能力扩展到AT75C1220的完整功能
以无缝方式模块。
本文件由三个部分组成:
支持的算法的功能描述。
低级别的软件接口的描述。
uClinux的设备驱动程序的说明。
混合低电平并且驱动电平编程,应该避免。
修订版1793A - 01/02
1
实用
描述
该AT75C1220模块的功能框图,给出在图1中。
不同的算法是独立的。它们可以启用,禁用或编程
个别。
图1 。
AT75C1220框图
G.729编码器+
VAD / CNG
微
A
F
E
音箱
G.711
μ律/ A律
减压
G.711
μ律/ A律
压缩
G.729解码器+ CNG
音产生
G.729声码器
该算法可用于压缩语音或一个其它的音频信号分量
多媒体服务以较低的比特率。此编码器具有8 Kbps的比特率。它是基于一个CON-
jugate结构代数码激励线性预测( ACELP)技术。
此编码器操作上的16位线性PCM取样10毫秒的语音帧(采样频
昆西是8kHz ) 。 5 ms的先行和7.5毫秒的算法延迟是必须考虑到
账户获得的编码语音数据帧之前。这导致了15毫秒的总延迟。
得到的编码的帧是10字节长。
VAD / CNG
语音活动检测( VAD)和舒适噪声生成( CNG )算法的设计
工作手牵手与G.729声码器。静音压缩技术被用来
减少在讲话停顿间隔时间内传送的比特率。该VAD方的检测
沉默的时间间隔。天然气被用于产生一个相匹配的实际背景噪声的噪声。
CNG采用VAD所提供的信息,以无声的间隔编码成静音插入
描述符( SID)帧的2个字节长。它还重新合成的16位线性PCM采样
具有一个SID帧输入的背景噪音。该VAD / CNG功能可启用或不通过
一个配置命令的装置发送到DSP (见“请求通知邮件”上
第7页) 。
μ律和律应用到语音信号对数压缩技术。他们是
由提供任何延迟和语音质量过硬简单的操作完成。然而,位
率是高的(每个16比特线性PCM语音样本给出一个8位的压缩样本的领先
为64Kbps )使此功能仅适用于宽带数据网络很有用。该compres-
长度/解压缩算法可以通过配置命令的装置发送到被选择
在DSP (请参阅第7页上的“请求通知消息” ) 。
音调生成任务生成一个纯正弦波可编程频率,扩增
突地和持续时间。
G.711μ律和A-
法语音
压缩
音频发生器
2
AT75C1220
1793A–01/02
AT75C1220
低电平
接口
本节介绍如何AT75C1220软件上传到DSP子系统亲
程序存储器。它还描述了如何在ARM上运行的应用软件
和
运行通过邮箱的DSP子系统交换信息AT75C1220 。
本节假定了一个深入了解的ARM / DSP子系统接口信箱
系统。
语音模块
上传
而DSP子系统处于复位状态,其程序存储器可见在ARM
存储器空间。这允许ARM的应用程序写入DSP软件的二进制图象
非常容易。
当DSP子系统脱离复位,其程序存储器从ARM切换
只是第一个指令前的内存空间返回到DSP的程序空间被取出。
这个过程示于图2 。
图2中。
语音模块上传
ARM
CORE
SIAP_MDRB
ASB
OakB计划
内存
P-巴士
RESET
橡树DSP
子系统
X -RAM
Y型RAM
上传过程
一个典型的DSP程序使用了一些初始化的变量。通常,所述初始值是
存储在程序空间中,并且复制到由DSP启动例行程序的RAM地址。
这导致了以下语句:
刚过引导例行程序已初始化的变量时,DSP子系统具有高
冗余,因为存在程序和数据存储器的值相同。
存储在程序存储器浪费空间的初始值,并在不使用
操作。
改进程序存储器的使用情况,该软件被装入两个连续的步骤。
一个小的数据初始化程序先加载并执行。这个程序只是初始化
X轴和Y - RAM来预期由音频解码器软件中的值。当
初始化完成后,程序发送一个DATA_INIT_DONE状态消息给ARM
应用程序通过身份邮箱。
然后, DSP子系统被置于复位,该程序本身被加载。这段代码
没有数据初始化启动程序。它假定的RAM已经初始化,从而节省
程序空间。当软件准备工作,它发送一个SW_INIT_DONE状态
通过状态邮箱邮件。
3
1793A–01/02
邮箱操作和状态消息中的一节“邮箱使用情况”的说明
第5页。
二值图像格式
当系统处于空闲状态时, AT75C1220模块被存储在ARM的存储器空间, possi-
布莱在非易失性存储器中。该模块包含数据的初始化代码,应用程序
代码和其他格式的数据。该AT75C1220二进制图象的各字段是
在表1中说明。
表1中。
二值图像领域
字段名称
INIT_OFFSET
| INIT_LENGTH
SW_OFFSET
SW_LENGHTH
INIT_CODE
SW_CODE
从开始场(字节)偏移
0
4
8
12
16
16 + 2 * INIT_LENGTH
长度(字节)
4
4
4
4
2*INIT_LENGTH
2*SW_LENGTH
描述
定义的数据初始化代码的位置
模块图像的开头。
定义的数据初始化代码的长度( 16位
字) 。有效介于0和24576 。
定义了音频解码器的程序的从位置
模块图像的开头。
定义的音频解码器的代码的长度( 16位
字) 。有效介于0和24576 。
数据初始化程序的二进制代码。
所述应用程序的二进制代码。
DPMB
CON组fi guration
该DPMB被编程在结构2 (如在AT75系列数据表中定义),该
导致2.所有的邮箱允许读表中所示的配置/写访问从
两侧。仲裁是通过使用信号量。
表2中。
DPMB配置
邮箱号
0
1
2
3
4
5
6
7
注意:
从基准偏移
(1)
0x000
0x080
0x100
0x140
0x180
0x1A0
0x1C0
0x1E0
长
0x80
0x80
0x40
0x40
0x20
0x20
0x20
0x20
方向
ARM ->橡树
ARM <-橡树
ARM ->橡树
ARM ->橡树
ARM ->橡树
ARM <-橡树
ARM ->橡树
ARM <-橡树
信号灯地址
(1)
0x200
0x204
0x208
0x20C
0x210
0x214
0x218
0x21C
用法
TX编码语音数据
接收编码语音数据
DSP的存储器访问
未使用
未使用
未使用
请求通知
状态通知
1.基址0xfa000000的OAKA , 0xfb000000的OakB 。
4
AT75C1220
1793A–01/02
AT75C1220
邮箱访问
ARM橡树邮箱
在访问ARM的>Oak邮箱时, ARM必须检查相应的
信号量被清除为0。然后,它可以读取或写入邮箱数据。当数据访问是
完成的,它必须设置信号为1,以通知该新数据已经到达橡树
手臂被通知新的数据是可用的邮箱中时,相应的sema-
phore升高到1 ,可能触发一个中断。然后在ARM可以访问邮箱。
当存取完成后,在ARM必须清除旗语释放的邮箱。
本节描述了每个邮箱的特定目的。所交换的信息是
格式化的结构化信息。消息格式和语义节中描述
第7页范“要求通知邮件”和页上的“状态通知邮件”
10.
用于由ARM提供给橡树编码的语音帧(或者G.711数据或G.729
数据)。
所使用的ARM从OAK编码语音帧(或G.711数据或G.729得到
数据)。
在ARM具有发送请求读或写的DSP的存储器的任何位置的能力,
无论是在程序或数据空间。这是为两个目的有用的:
邮箱6 :请求
NOTI科幻阳离子
DSP软件调试
该DSP外设的ARM应用程序的控制下编程
橡树ARM的邮箱
邮箱使用情况
邮箱0 : TX
编码后的语音数据
邮箱1 : RX
编码后的语音数据
邮箱2 :橡木
内存访问
这个邮箱用于由ARM到请求传递给DSP。这些请求触发特定
在DSP的软件任务。例如,请求通知消息用于启动或
停止电话算法
这个邮箱用于由DSP软件来发送状态信息。例如,状态
通知消息是由DSP软件在数据初始化结束发送到通知
该数据已经被初始化ARM的应用。
前两个邮箱处理语音压缩帧。通过发送的每个字节
邮箱被放入一个16位字,其中的低字节是原始字节值,并在高字节
有标志。
假设要传送的数据是在“字符的buf [ 0..N -1 ]” ,它被格式化在邮箱中作为
在表3中(否则该帧被忽略)所示:
表3中。
语音帧格式
WORD 0
FRAME_START|buf[0]
...
...
字I(I = 1 ,...,N - 2 )
0x0000|buf[i]
...
...
字N - 1
FRAME_END | BUF [N - 1 ]
邮箱7 :状态
NOTI科幻阳离子
TX / RX编码
语音数据
与FRAME_START = 0x8000,且FRAME_END = 0x4000的
已传送的帧的长度是可变的:
长度为10个字节为激活语音帧
长度= 2字节为SID帧
长度= 1字节:帧跟随的2字节的帧,而沉默方案是不变
如果系统是在G.711的模式,帧是64个字长。
5
1793A–01/02