日军舰撞我保钓船

公告 欢迎访问器件网,点此进入电子工程师论坛

本站主题: 推广非日产电子元器件及无日产器件的设计方案

液晶屏世界  器件销售 集成器件 分立器件 资讯中心 下载中心 电子工程师论坛

推广国产器件,振兴民族电子产业是我们的追求.如您需要器件选型,技术支持,采购,欢迎联系. 最新消息: 替换日产光耦TLP521,PC817的光耦K1010免费提供样品.

基于PA1688 IP电话开发指南

目录
第一章 PA1688芯片整体结构 8
1 芯片硬件结构         8
2   芯片体系结构         9
2.1  Controller                 9
2.2  DSP                11
2.3  Program Flash        13
2.4  SDRAM                15
2.5  AC97codec                18
2.6  键盘接口                19
2.7  网络接口                19
第二章 芯片数据结构        20
1 MCS8051数据结构        20
2   SDRAM DMA 缓冲区的结构     21
第三章 程序结构                24
1 程序流程        24
1.1  AM29LV004T程序运行流程    24
1.2  AM29F040程序运行流程      25
1.3  AM29LV008T程序运行流程    25
1.4  MT28F016S5程序运行流程    26
2 程序结构分析        26
2.1  Page0                26
2.2  Main                27
2.3  g723/g723misc和g729/g729misc 29
2.4  Page7                31
2.5  Settings                31
2.6  P_APPS                32
2.7  UPGRADE                33
2.8  级别保护                35
3 API库                35
3.1  API数据库                35
 palm1lib        36
 p_dsp         36
 p_tcpip                36
 p_rtp         37
 p_h323                37
 p_util         37
 p_mgcp                38
 p_n2p         38
 p_ne2000        38
 p_sip         38
3.2  创建API库                38
4 version.h        42
第四章 PA1688程序开发工具和环境 43
1  Keil7          43
1.1  编译命令                 43
1.2  编译文件的添加和删除 44
1.3  编译结果分析         45
2  程序文件生成与更新         46
2.1  AM29LV004T(以PA168F为例) 46
2.2  AM29F040(以YUXIN为例) 47
2.3  AM29LV008B                 47
 iPH_E00                 47
 PA168FB和H2001(以PA168FB为例) 48
2.4  AM29LV008T(以PA168S为例) 48
2.5  MT28F016S5(以PA168T为例) 49
3  PalmTool                 51
第五章 函数列表                 52
5.1  ARP 操作函数         52
IsArpResolved                 52
ArpSend                         52
5.2  UDP 操作函数         52
UdpOpen                         53
UdpOpenBroadcast         53
UdpSend                         53
UdpDebugUpdate                 54
UdpDebugString                 54
5.3  Proxy 操作函数         54
IsPrivateIP                 54
IsPublicIP                 55
IsValidIP                 55
5.4  Debug 操作函数         55
DebugString                 55
DebugNewLine                 56
DebugChar                 56
OutputString                 56
OutputLine                 56
OutputPXCHAR                 57
OutputVal                 57
OutputVals                 57
OutputIP                 58
OutputIPPort                 58
5.5  Memory和String操作函数 58
p_memcpy_c2x                 59
p_memcpy_c2x_0                 59
p_memcpy_x2x                 59
p_memcpy_x2x_0                 60
p_wmemcpy_x2x                 60
p_memcmp_c2x                 60
p_memcmp_x2x                 60
p_memset_x                 61
p_strcpy_c2x                 61
p_strcpy_x2x                 61
p_strlen_x                 61
p_strlen_c                 62
p_strcat_c2x                 62
p_strcat_x2x                 62
p_strchr_c                 62
p_strchr_x                 63
p_strcmp_c2x                 63
p_strcmp_x2x                 63
p_codecpy_c2x                 64
5.6  IO 端口操作函数         64
p_outp                         64
p_setp                         64
p_inp                         65
5.7  SDRAM 读写操作函数         65
SdramRead                 65
SdramWrite                 65
5.8  代码页面转换         66
SwitchPage                 66
附录一 函数和变量的命名方式 67
函数命名                 67
变量命名                 67
附录二 基于TCPIP基础上的协议开发68

第一章 PA1688芯片整体结构
PA1688是为IP电话终端提供的一套完整的解决方案,其针对低成本、高性能的网络电话进行了专门的设计。为了使用户对PA1688有一个更加全

面的认识,本文会对PA1688芯片的硬件整体结构、内部和外围进行介绍,同时就程序结构进行分析,最后讲解程序开发工具和程序开发步骤。
1  芯片硬件结构
PA1688是一个双处理器集成芯片,其片内集成控制器、数字信号处理器以及其他必要的接口电路,提供单一芯片的网络电话解决方案。在设计

上不仅保证芯片本身易于开发,生产成本低廉,而且保证所有的外围接口芯片都有充分供应并且价格低廉。总而言之,就是大量使用现有PC工

业中普遍使用的技术和芯片来保证方案的可低成本实现。图1-1-1示出了PA1688芯片硬件整体结构:
 
        图1-1-1
PA1688芯片的核心主要包括两部分:
1) Controller:增强的Intel MCS8051指令集兼容控制器,进行系统控制,处理系统接口等外围工作,以及各种协议处理如TCP/IP,

H.323等。PA1688芯片一条指令的运行时钟为4-8个时钟周期(平均6个时钟周期),其最高运行速度为50MHz,相当于100MHz的标准MCS8051的

运行速度。
2) DSP:ADSP2181指令集兼容的数字信号处理器,主要包括语音、图像编解码的运算。最高运行速度相当于33MHz的标准2181。
除了上述两部分核心外,芯片还提供丰富的外围接口,主要包括RS232、USB、SDRAM、AC97codec、SRAM和KeyPad,其中具有特色的是USB、

SDRAM和AC97codec。目前IP Phone中USB和RS232没有使用。
2   芯片体系结构
2.1  Controller
图1-2-1示出控制器系统结构,其主要是由三部分组成:
 
       图1-2-1
 控制器核心(Controller Core)
目前PA1688采用8位高性能处理器,进行系统控制和处理外围工作,其完
全和Intel MCS8051兼容。
 存储器接口
 静态存储器
 我们使用的MCS8051包括8 位的数据总线、256字节的内部数据存储器(Data RAM)和64KB的存储数据空间,其中256字节Data RAM为

Controller Core使用。芯片使用的64KB的数据存储器空间分成几部分,具体的空间分配如表1-1所示:
Addr Content Description
0x0000-0x 3FFF 16KB of program upgrade memory 用于程序的升级
0x4000-0x5FFF 8KB of reserved memory 0x4000-0x4fff这段空间是给glue logic的,预留仿真程序的使用;0x5000-0x5fff这4K连接外设

使用
0x6000-0x6FFF 4KB of controller memory(used by controller only for data and program) 作为8051 MCU的xdata使用的数据空间
0x7000-0x71FF 512Byte controller exchange buffer (used by SDRAM and controller to exchange data) MCU和SDRAM数据交换的

缓冲区
0x8000-0xBFFF Register memory space 寄存器存储空间
0xC000-0xFFFF DSP Memory locations DSP的存储空间
0xC000-0xC7FF PM Internal Buffer DSP代码空间的内部存储区
0xD000-0xDFFF PM Exchange Buffer DSP代码空间的交换存储区
0xE000-0xE3FF DMX Internal Buffer DSP数据空间的内部存储区
0xE800-0xEFFF DMX Exchange Buffer DSP数据空间的交换存储区
0xF000-0xF7FF DMY 
        表1-1
2.2  DSP
 图1-2-2示出DSP 子系统结构:
 
        图1-2-2
DSP是一个ADSP2181指令集兼容的数字信号处理器,主要包括语音、图像编解码的运算。DSP的执行完全受MCS8051控制器的控制。DSP的总线结

构和MCS8051不同,它有专门的程序空间(PM)和数据空间(DMX和DMY)。
 
         图1-2-3
DSP与SDRAM之间的程序和数据的操作,需要使用PM Exchange Buffer和DMX Exchange Buffer缓冲区。当DSP与SDRAM之间进行程序或数据操作

时,DSP会将数据首先读入上面的缓冲区中,然后再从缓冲区取得。图1-2-3示出其两个存储器缓冲区的结构。
2.3  Program Flash
PA1688芯片集成了程序Flash接口,可以与数据总线宽度为8 bits的Program Flash连接,外接的Flash最大容量为16MB, 可以编程修改的为前

8MB。
Program Flash即可编程的Flash,是程序和初始设置数据的存贮区,我们的程序都放在PFLASH中。MCU在运行程序的时候,每次从FLASH中取一

条指令。其功能相当于ROM,但与其有一个不同点,PFLASH由若干的sector组成,删除和编程的操作都是针对单独一个sector进行的,而不是

对整个的Flash。具体包括如下:
 AM29LV 004T:512 KB
 AM29LV 008B:1M
 AM29F040:512 KB
 AM29LV008T:1M
 MT28F016S5:2M
表1-2示出AM29LV系列存储器结构:
Sector No. Size(KB)
 004T 008T 008B F040 MT28F016
1 64 64 16 64 64
2 64 64 8 64 64
3 64 64 8 64 64
4 64 64 32 64 64
5 64 64 64 64 64
6 64 64 64 64 64
7 64 64 64 64 64
8 32 64 64 64 64
9 8 64 64  64
10 8 64 64  64
11 16 64 64  64
12  64 64  64
13  64 64  64
14  64 64  64
15  64 64  64
16  32 64  64
17  8 64  64
18  8 64  64
19  16 64  64
20…32     64…
       表1-2
向sector中一个地址写入数据的时候,首先要将sector中数据全部擦除,然后再写入。由于小的sector擦除和写入的时间比较的短,所以我们

要尽可能将话机的设置信息放到小的sector中,以便节省更新的时间。下面具体说明根据不同型号的Flash,话机设置信息存放的位置:
AM29LV004T:设置存放在sector10
AM29LV008T:设置存放在sector18
AM29LV008B:设置存放在sector2
MT28F016S5:设置存放在sector6
 对于AM29LV004T和AM29LV008T的PFLASH,sector为16KB位置用于存放话机的铃声。
2.4  SDRAM
由于PA1688片内的存储器空间不大,大量的数据都是通过SDRAM暂时存放和交换的,即动态存贮区。PA1688集成了SDRAM控制器,可以直接连接

单片的1M*16bit,4M*16bit、 8M*16bit和16M*16bit的SDRAM。最大外接4片SDRAM,每片是16M*16bits=32MB,共计32M*4=128MB。
表1-3示出SDRAM的规格:
Type Size(Byte) Voice Msg Time
1M×16 2M 15Mins
4M×16 8M 2Hours
8M×16 16M 4 Hours
16M×16 32M 
        表1-3
在IP Phone 应用中,我们只使用一片SDRAM,因此最大可以为16MB。由于MCS8051 core是通过一段缓冲区来读写SDRAM的,因此有必要设计一

种寻址方式,使得MCS8051能够高效率而又灵活的访问整个16MB的地址空间。16M = 256*256*256,如果我们用三个参数来代表这三个256,就

可以实现对这16MB的完全寻址。这三个参数分别为iSdramIndexHigh, iSdramIndexLow和iLength。也就是说,把这16MB 的地址空间分为

256*256 个Block,每个Block 为256 字节。使用iSdramIndexHigh和iSdramIndexLow 就可以标示一个Block,而用iLength 就可以指定访问这

个Block 中的前面多少DWORD(因为访问SDRAM是采用DMA方式,每次DMA是以DWORD为单位进行的,所以这里iLength 指示的长度是DWORD)。当

SDRAM中的数据转移到SRAM中,MCS8051就可以访问单个的字节了。
现在我们所使用的是2MB的SDRAM,其分配为:程序运行需要1M(前1M)字节的SDRAM存储DSP程序和数据、声音数据、话机配置参数、TCP备份

数据、文件系统、IVR数据、铃音(目前只有一种)和语音缓冲区;其他SDRAM存储空间(后1MB)用来保存语音留言数据,目前可存储16条,

每条64KB。
表1-4示出0x000000-0x1FFFFF(2MB)的地址空间分配:
Addr Content Description
0x000000-0x0000FF Options MAC、IP、Router等TCP/IP的信息
  2个TCP端口(Q.931、H.245)
  3个UDP端口(RAS、RTP、RTCP)
  Proxy IP、Proxy Enable等
0x000100-0x00012F Flags 型号、Version、SDRAM Size、IVR type等
0x000130-0x0001FF Options 
0x000200-0x000FFF Speed Dial 可保留112个,每条32字节
0x001000-0x001FFF  更多Options的预留空间
0x002000-0x0024FF Answered calls 
0x002500-0x0029FF Missed calls 
0x002A00-0x002EFF Dialed calls 
0x002F00-0x003FFF Reserved 
0x004000-0x00FFFF Data buffer 数据存储缓冲区
0x010000-0x01FFFF Http页面(64KB) 
0x020000-0x02FFFF AC97 input buffer Gitter buffer
0x030000-0x03FFFF AC97 output buffer Gitter buffer
0x040000-0x04FFFF Dsp encode output buffers Dsp编码输出缓冲区
0x050000-0x05FFFF Basic dsp code/data(in Page0) 
0x060000-0x06FFFF Dsp decode input buffers Dsp解码输入缓冲区
0x070000-0x07FFFF Page1 voice msg dsp data in page1
0x080000-0x08FFFF Page2 G723 data
0x090000-0x09FFFF Page3 
0x0A0000-0x0AFFFF Page4 G729 data
0x0B0000-0x0BFFFF Page5 
0x0C0000-0x0FFFFF File-in SDRAM文件载入
0x0D0000-0x0DFFFF IVR 语音提示缓冲区
0x0E0000-0x0EFFFF Welcome 欢迎信息缓冲区
0x0F0000-0x0FFFFF Reserved 
0x100000-0x1FFFFF Message 语音留言缓冲区,最多可保留16个语音留言
0x160000-0x16FFFF File-out SDRAM文件导出
         表1-4
2.5  AC97codec
AC97主要是完成听筒和免提的声音采集和播放。我们的芯片采用8KHz采样、48KHz放音。经G.723解码后的语音信号为8KHz,再通过数字滤波器

变换,生成48KHz的语音信号。
语音数据的交换是通过数据交换中枢SDRAM实现的:
发送语音(编码):语音进来在MCU的控制下,首先将采集到的数据先放到SDRAM的语音缓冲区中,DSP从SDRAM中取得语音数据进行编码,然后

将编码结果放回SDRAM中。MCU从SDRAM中将编码结果读出,加上包头,如:RTP、UDP、IP、MAC,打包发出。
接收语音(解码):从网关上接收数据包到MCU中,首先分析MAC头、IP头、UDP头、RTP头的数据,分析完RTP头后剩下就是语音数据,将语音

数据放到SDRAM的远端数据缓冲区中,然后DSP从SDRAM中取数据进行语音算法的解码,将解码结果放回SDRAM中播放语音的缓冲区。AC97在播放

的时候,直接从播放语音缓冲区中取数据进行播放。
2.6  键盘接口
我们采用的逻辑芯片有专门的keypad IO,它有7个Pin,可组成一个3×4的阵列,也就是电话的数字键,但是在话机上还有一些功能键,显然

这些Pin就不够了,所以我们通过使用接口Programmable IO进行扩展,组成4×7的阵列。
2.7  网络接口
PA1688可以直接连接NE2000兼容的10M以太网芯片RTL8019AS,提供以太网RJ45接口。NE2000兼容的网卡是PC机上使用最广泛的10M网卡,使用

5V供电。

 

 

第二章 芯片数据结构
PA1688芯片内部包括一个兼容MCS8051指令的MCU core。对于标准的MCS8051来讲,core内部有256字节的SRAM,core外部最大可以寻址65536字

节的SRAM和65536字节的Program Flash。PA1688 芯片内部有4.5KB的SRAM,就是作为MCU core 外部的sram 被寻址。这4.5KB的地址范围

0x6000—0x71ff。
1  MCS8051数据结构
由于MCS8051有以上的多种数据存储区,为了更好的利用这些存储区,提高数据读写的速度,在MCS8051 中将这些数据存储区标志为不同的字

段。合理的使用这些字段,可以极大的提高程序执行的效率。这些字段为:
data: 位于core内部的0—127 字节,用于变量的存储。由于位于core内部,数据读写速度最快,对应的汇编语言指令为MOV。
idata: 位于core的内部,用于程序的堆栈,其地址空间的起始位置是从data字段未使用的存储空间的地址开始。堆栈向低地址方向增长,每

执行一次程序调用,就需要将环境变量压栈,因此,子程序的深度将决定了堆栈的最大长度。
xdata: 位于core外部,PA1688内部的4.5KB SRAM,地址范围0x6000-0x71ff。这部分SRAM由于位于core 的外部,因此数据读写速度要比data

和idata慢,对应的汇编语言指令为MOVX。在这4.5KB中,还分为两部分,一部分0x6000-0x6fff,共4KB,只能作为MCU的xdata字段被访问;另

一部分是0x70000-0x71ff,共512字节,不仅可以作为MCU的xdata字段被访问,还可以作为访问SDRAM 的DMA Buffer。也就是说,MCS8051 必

须通过这512 字节才能读写SDRAM,因此在使用这段SRAM时候,必须谨慎和特别处理。
code: 位于片外的Program Flash中,占用程序地址空间0x0000--0xffff。这个字段用于存储各种常量、表等。
bit:位于data字段的0x20--0x2f地址空间,共16个字节,128比特。这个字段数据的读写速度和data字段相同,但是由于每个变量只使用一个

bit,所以更加节省资源。这个字段中,主要用于存储BOOLEAN 类型的变量。
对应于这样的数据字段结构,我们规定了如下类型的数据类型:
DCHAR, DSHORT, DLONG: 定义在data字段中的char, short和long型数据。
XCHAR, XSHORT,XLONG: 定义在xdata字段中的char, short和long型数据。
CCHAR, CSHORT, CLONG: 定义在code字段中的char, short和long型数据。
PXCHAR, PXSHORT: 指向XCHAR或XSHORT的指针。
PCCHAR, PCSHORT: 指向CCHAR或CSHORT的指针。
BOOLEAN: 定义在bit 字段中的boolean 型数据。
2   SDRAM DMA 缓冲区的结构 
MCS8051数据结构中提到,在MCS8051的4.5KB 的xdata字段中,有512字节不仅能够被MCS8051所访问,而且还被用来做SDRAM的DMA Buffer。由

于这512字节的特殊性,我们对其进行了特别的处理,定义4个缓冲区:
Sdram_pDataCache   0x7000
Sdram_pDataCache1  0x7080
Sdram_pDataCache2  0x7100
Sdram_pDataCache3  0x7180
每段DataCache的长度都是128 字节,整个4段共512字节,填满了SDRAM的DMABuffer。有了缓冲区的结构,再配合上一些函数操作,就可以访

问SDRAM了。这里面有两个操作函数,分别是:
SdramRead ( iIndexHigh, iIndexLow, iLength ):将iIndexHigh、iIndexLow和iLength所指定的一段SDRAM中的数据复制到

Sdram_pDataCache 开始的缓冲区中。
SdramWrite ( iIndexHigh, iIndexLow, iLength ):将Sdram_pDataCache开始的缓冲区中的数据复制到iIndexHigh, iIndexLow 和iLength

所指定的一段SDRAM中。
在这里,最大的数据长度为512字节,也就是可以利用整个4个缓冲区进行SdramRead 和SdramWrite的操作。对应iLength 最大长度为128。下

面我们举例说明如何读写SDRAM中的数据:
1) 读SDRAM中地址为0x041125 的字节
参数计算:iIndexHigh = 0x4, iIndexLow = 0x11, 0x25 = 37, iLength =
37/4+1 = 10
操作:SdramRead(0x4, 0x11, 10);
iData = Sdram_pDataCache[37]; /* iData 就是要读的数*/
2) 写SDRAM中地址为0x083581 的字节
参数计算:iIndexHigh = 0x8, iIndexLow = 0x35, 0x81 = 129, iLength =
129/4+1 = 33
操作:SdramRead(0x8, 0x35, 33);
Sdram_pDataCache[129] = iData; /* iData 就是要写的数*/
SdramWrite(0x8, 0x35, 33);
3) 连续读取sdram 中从0x020100—0x020700 的一段数据
参数计算:iIndexHigh = 0x2, iIndexLow = 0x01--07
操作:SdramRead(0x2, 0x1, 128);
SdramRead(0x2, 0x3, 128);
SdramRead(0x2, 0x5, 128);
SdramRead(0x2, 0x7, 64);

 

第三章 程序结构
话机程序的结构采用Bank Switching模式,其扩大了原有的程序空间,程序运行的地址范围由编辑的结果决定。
1 程序流程
根据不同的PFlash型号,程序中各页的运行流程是不同的。下面具体说明程序的运行流程。
1.1  AM29LV004T程序运行流程
 使用AM29LV008B型号的话机,其程序流程和AM29LV004T相同。
 
1.2  AM29F040程序运行流程
    
1.3  AM29LV008T程序运行流程
 
1.4  MT28F016S5程序运行流程
 
2  程序结构分析
2.1  Page0
Page0模块中主要完成话机安全恢复功能、出厂测试功能,以及将G711 dsp code从Program Flash读出,写入Sdram中。
Page0模块包含数个文件,具体说明如下表:
文件名称 功                能
Page0.h 函数声明
Ac97_0.c Ac97初始化、芯片设置函数,以及page0下Ac97声音采集和播放测试相关函数等
Chip.c Page0下对于芯片运行频率测试的相关函数
Dsp_0.c Dsp初始化、参数设置函数,以及page0下Dsp编解码测试相关函数等
Dtmf.c Page0下dtmf测试相关函数
G723.c Page0下g723音频编解码测试相关函数
G729.c Page0下g729音频编解码测试相关函数
Keypad.c 键盘初始化函数,以及page0下键盘操作相关函数
Main.c 话机启动初始化、芯片参数设置,以及page0下程序运行的控制和中断处理。
Readfile.c 文件操作相关函数
Sdram.c Sdram初始化、参数设置函数,以及page0下sdram测试相关函数
Udptest.c Page0下udp测试相关函数
V_task.c 上层与库函数衔接的回调函数的处理
2.2  Main
Main模块为主程序部分,其目录下包含数个文件,具体说明如下表:
文件名称 功                能
page1.h 函数声明
ac97_1.c Ac97声音采集和播放处理相关函数
callrec.c 已接来电、未接来电和已拨号码功能相关函数。PA1688芯片每种都支持保存80条记录,每条记录32个字节
chip.c 芯片初始化,如切换速度、系统休眠、中断等
dialplan.c Dialplan功能实现的相关函数
dsp_1.c Dsp处理的相关函数
dtmf.c Dtmf处理的相关函数
function.c 话机中相关功能的函数实现
keypad.c 完成键盘的处理,即根据键盘扫描码值,调用相关功能函数
Main.c 主程序
sdram.c Sdram处理的相关函数
std_func.c 对于标准的pa168x话机中相关功能的函数实现
v_task.c 实现系统顶层功能函数,处理向上层提供口子
Citron.c 专门处理citron、etalk、ringtec的相关函数
Etalk.c 
Ringtec.c 
func3130.c 专门处理不同客户话机功能的相关函数
funcmax.c 
funcpoly.c 
func2005.c 
funcvida.c 
tiger_ui.c 
tc_menu.c 
tc_test.c 
tc_key.c 
2.3  g723/g723misc和g729/g729misc
G723和G729的操作是由ADSP2181完成,其代码执行方式为:
1. 由MCS8051把代码从Program Flash中读出,写道SDRAM中;
2. 由MCS8051控制ADSP2181的执行开始,包括把ADSP2181的初始化从SDRAM中复制到ADSP2181的执行指令空间中,这个执行指令空间是片

内的SRAM;
3. ADSP2181开始执行后,会自己到SDRAM中读取下面要执行的指令,直到某一功能完成(例如完成一帧G723编码)。然后以中断的方式

通知MCS8051。
这4个模块包含的文件说明如下表:
文件名称 功能
G723 Main.c 将g723 code导入sdram,同时跳转到page3,即g723misc
G723misc Main.c 根据需要将不同的数据导入sdram,同时跳转到page6,即g729。具体导入的信息包括:首先导入其余的g723 code

数据;导入使用g723算法的dtmf铃音数据;如果define ENG,则导入使用g723算法的英文的IVR语音数据,否则导入使用g723算法的中文的IVR

语音数据;调用MiscLoad()函数,导入Dsp、Http页面和h323消息模板数据。
 Misc.c MiscLoad()函数的实现。
G729 Main.c 将g729 code导入sdram,同时跳转到page1,即g729misc
G729misc Main.c 根据需要将不同的数据导入sdram,并根据PFlash定义,完成页面跳转。具体导入的信息包括:首先导入其余的

g729 code数据;导入使用g729算法的dtmf铃音数据;如果define ENG,则导入使用g729算法的英文的IVR语音数据,否则导入使用g729算法的

中文的IVR语音数据;然后导入dsp code;如果define AM29F040,则导入pcmring铃音数据,否则如果话机的振铃音类型为pcmring时,则导入

pcmring铃音数据;
 std_ring.c 导入pcmring铃音数据
2.4  Page7
 对于AM29F040和MF28F016型号的Flash,在此页导入话机的设置信息,同时跳转到page2。
2.5  Settings
话机的设置可以通过很多的方式,如:PalmTool、Telnet和Http,但这些都需要通过PC机进行操作。我们在Settings功能模块实现了菜单设置

功能,使得带有LCD的话机可以直接通过话机进行各种选项的设置。
 Settings模块目录下包含数个文件,具体说明如下表:
文件名称 功能
settings.h 函数声明
Keypad.c 菜单下键盘操作的相关函数
Setting.c 话机菜单功能实现的相关函数
Main.c 根据需要向sdram导入数据,同时完成相应的页面跳转。根据Flash型号的定义,导入话机设置(options)信息和快速拨号数据;导

入话机铃音数据。
2.6  P_APPS
 p_apps应用程序目录下包含话机应用的相关文件。具体说明如下表:
文件名称 功                    能
Boot.c 话机启动时,LCD上显示的处理
Checkip.c 配合proxy选择enable选项时,获取ip功能的实现
Default.c 恢复出厂默认设置
DualLed.c 话机上各灯处理的相关函数
ftp.c ftp连接相关函数
Ftpapps.c ftp应用实现相关函数
http.c http连接处理相关函数
http_ld.c 导入http页面处理相关函数
Key.c 扫描键盘以及键盘操作处理的相关函数
Lcd.c LCD显示处理的相关函数
StringInfo.c 话机参数中包含的字符串
Loadstring.c 导入话机参数中包含的字符串说明信息
Pcmring.c 导入音乐铃音数据的函数实现
MapMsg.c 处理digtmap信息、操作相关函数
Options.c 导入和保存options信息处理相关函数
Readfile.c 文件处理函数
Rtcp.c 实现rtcp的相关函数
Rtp.c 实现rtp的相关函数
Sntp.c 实现sntp的相关函数
Std_chip.c 芯片相关处理
Tftp.c 实现tftp的相关函数
Upgrade.c 实现upgrade功能的相关函数
Telnet.c 实现telnet功能的相关函数
Tc_http.c 专门为客户话机功能实现的函数
Tc_time.c 
Watchdog.c 专门为客户话机功能实现的函数
2.7  UPGRADE
 upgrade功能模块主要实现话机升级时,将数据写入PFlash的操作功能。具体文件说明如下表:
文件名称 功能
Upgrade.h 函数声明
Main.c 升级模块主程序
PFlash.c 话机Flash更新过程的相关函数,完成向Flash写数据的过程。其中包括话机程序更新、分页更新、铃音更新等
Tc_flash.c 专门为客户话机Flash更新的相关函数
upgrade功能模块中程序修改后,编译过程与其他模块有所不同,我们假设增加一个新版本话机DEMO,使用Flash型号为AM29LV008T,其中部分

功能实现和Flash升级,与AM29LV008T标准过程有所不同。
首先version.h中版本定义部分增加#define VER_DEMO,根据此类型需要,修改其他的定义,然后根据功能需要,修改相应的程序。由于修改

了upgrade\PFlash.c,所以需要对应生成此新版本.h文件。具体步骤如下:
1. 编译程序,生成update.hex

9 7 3 1 2 4 8 :
南京高略科技有限公司致力于国产器件和非日产器件推广
您如果需要相关器件或技术支持,请联系:
电话(TEL): 025-6885 3239 传真(FAX): 025-6885 3238

友情提醒: 下载链接在http://pdf.18ic.com电子工程师论坛的,都需要注册并发表精华文章:)

正确认识和理解抵制日货,欢迎点这里阅读器件网站长的大作,纪念抗战胜利60周年宣传资料

相关新闻:
无相关新闻

06-04-11 13:53:42


中国器件网 苏ICP备05063888号