基于S3C2410的IP电话设计

发布者:atech123最新更新时间:2016-11-12 来源: ofweek关键字:S3C2410  IP电话 手机看文章 扫描二维码
随时随地手机看文章
  IP电话的发展已经历了三代。第三代IP电话是Internet普及的产物,目前,以太网接口直接入户已经越来越普遍,有必要开发一种带有RJ-45以太网接口、直接连入Internet、使用更加方便的IP电话。用户在打电话时,可以直接拨叫远端的电话号码,通过网闸把所拨的电话号码转换成远端IP电话的IP地址,从而建立起通话连接。与第二代IP电话终端不同的是,第三代IP电话终端直接把输入语音信号数字化,并按照一定的语音压缩编码标准算法(如G.728,G.729等)完成对输入语音信号的实时压缩,使带宽从64kbps降低到8kbps甚至8kbps以下,大大提高了信道的利用率,IP电话终端遵循SIP(或者H.323)协议。第三代IP电话系统通过网关,可实现IP电话和普通电话的互通。

  系统介绍

  整体概述

  IP电话系统有4个基本组件:*机(IP Phone),网关(Gateway),多点控制单元MCU(Multipoint Control Unit)和网闸(Gatekeeper)。

  (1)*机:是一个IP电话客户终端,多以硬件形式出现。它可以直接连接在IP刚上,实现实时的语音或多媒体通信。

  (2)网关:是通过IP网络提供PHONE-TO-PHONE语音通信的关键设备,是IP网络和PSTN/ISDN/PBX网络接口设备。

  (3)网闸:又称网守或关守,用来提供对整个电话系统端点和呼叫的管理功能。主要功能包括地址翻译、呼叫接纳控制、呼叫管理、呼叫权限。在H.323建议中,网闸是一个可选部分,但是对于实际运行的局域网IP电话系统来说,网闸是个重要部件。在本系统中,网闸设立在IP地址的一个终端上。网闸对所有终端用户的姓名和IP地址进行统一登记和管理,并预先给每个终端用户分配一个类似电话分机的虚拟电话号码,以便其他终端用户进行呼叫。主叫用户无需知道被叫用户终端的IP地址,只需输人其对应的虚拟电话号码或真实姓名即可。

  (4)多点控制单位:它的功能在于利用IP网络实现多点通信。使得IP电话能够支持诸如网络会议这样一对多的通信应用。

  单机的软硬件设计

          

  单机框图

  本文选择了ARM9和μC/OS-II搭建的平台来制作*单机部分。其单机的基本框图如图1所示。

  单机硬件功能模块

  1.CPU内核模块:其主要功能是搭建一个带CPU及存储器的工作核心。处理器采用三星的S3C2410(ARM920T),Flash采用的是SST公司的SST39VF160,SDRAM采用Hynix公司的HY57V641620HG。

  2.以太网接口:帮助CPU完成TCP/IP数据包的接收和发送。这里采用的是RTL8019AS。RTL8019AS是一种全双工即插即用的以太网控制器,它兼容RTL8019控制软件和NE2000的8bit或16bit传输,支持UTP、AUI、BNC和PNP自动检测模式,支持外接闪存读写操作,支持I/O口地址的完全解码,具有LED指示功能。其接口符合Ethernet2和E802.3、10Base5、10Base2、10BaseT标准。

  3.显示模块:采用一块普通数显LCD,主要用来完成电话号码及一些本机工作状态的显示。

  4.键盘模块和EEPROM:主要提供*机的拨号键盘,完成拨号和电话机的功能设置。EEPROM主要完成参数的设置。

  5.语音模块:采用UDA1341TS音频编解码器。

  6.上位机接口:完成一些参数的设定和一些已经被记录的参数的读取。
 

  系统的软件设计

  软件设计是基于μC/OS-II的,软件方面的工作主要集中在驱动程序的编写、任务的划分、任务的编写等。由于μC/OS-II不提供API接口库或者需要额外购买,那么在需要设计的*机中,主要写的驱动库有:TCP/IP、液晶驱动、EEPROM驱动、键盘驱动、I/O驱动和USB驱动。这些驱动的编写有固定的模式和套路。这里不多做介绍。

  任务的划分和优先级的安排如图2所示。从图2可以看出共分8个任务、3个任务链,其中待机任务链的优先级最高。8个任务分别是:*来电、*服务器、监视本机工作状态和设置、返回握手信号、接听电话、获取对方IP、按IP与对方取得握手等。

       

  IP电话软件结构

  IP电话软件集成了完成语音通话所需的所有功能。该软件按功能可以划分为4部分。

  1、呼叫处理模块:主要完成呼叫的建立与拆除功能。呼叫控制采用SIP协议建立会话。呼叫建立过程如下:一个SIP终端首先向本地的代理服务器发出呼叫请求:本地的代理服务器通过查询本地的重定向服务器找到下一个代理服务器的地址,并向其转发呼叫请求:下一个代理服务器收到呼叫请求后,通过定向服务器找到被叫所在网络的代理服务器,然后向该代理服务器转发呼叫请求:被叫所在网络的代理服务器确定被叫终端,并向被叫终端转发呼叫请求:被叫终端应答,从而实现连接。

  2、语音编/解码模块:语音采集得到的PCM编码数据虽然能够提供相当好的长途通信语音质量,但是其速率过高,占用网络带宽资源过多。为此需要对语音数据进一步压缩,以降低语音编码的速率。相应地,在接收端也需要同样的解压算法来恢复成原始语音数据。这部分代码编制时主要采用比较成熟的语音编解码算法,并进行一定的改进,以提高语音通话质量。

  3、数据封包/拆包模块:此部分代码对压缩编码后的语音数据进行打包,添加包头、时标和其他信息后形成语音包。在接收时,要进行相应的拆包,提取语音压缩包。

  4、数据传输模块:该模块主要完成语音包的发送和接收。把音频数据实时地传输给对方是保证实时语音通信的关键。所以在考虑可靠性和实时性方面更注重速度和实时性。这里采用UDP协议。

  结语

  本文介绍的系统利用现有的计算机网络资源组成电话通信系统,无需铺设电话线路和电话通信网络设备,节省了大量建设电话网络的设备费、线路费和工程费等费用,可取得显著的经济效益。在不需要铺设电话线路的情况下,方便地实现电话通信,增加电话用户,缩短安装工程周期。

关键字:S3C2410  IP电话 引用地址:基于S3C2410的IP电话设计

上一篇:嵌入式系统的掉电保护方案设计
下一篇:解读GP21+EFM32低功耗热量表电路

推荐阅读最新更新时间:2024-03-16 15:20

基于嵌入式触摸屏驱动程序的研究与开
0 引言 Windows CE.NET是一个抢先式多任务并具有强大通信能力的Windows 32位嵌入式操作系统,是微软专门为信息设备、移动应用、消费类电子产品、嵌入式应用等非PC领域而从头设计的战略性操作系统产品。可以看出 Windows CE并不是Windows桌面操作系统的一部分或缩减版本。CE系统与其它操作系统一样,也提供了设备驱动程序,以驱动内部或者外围硬件设备。驱动程序将操作系统和设备链接起来,使得操作系统能够识别设备,并为应用程序提供相应的服务 。要想真正了解驱动程序必须结合一些驱动程序的实际开发,本文以基于ARM9核心硬件平台的触摸屏驱动程序为例,讲解如何在不同的硬件设备上实现Windows CE的驱动开发。
[单片机]
基于嵌入式触摸屏驱动程序的研究与开
PLL,FCLK、HCLK、PCLK,AHB/APB (S3C2410
1、PLL(锁相环) 为了降低电磁干扰和降低板间布线要求,芯片外接的晶振频率通常很低(这块板子用的12MHz),通过时钟控制逻辑的PLL提高系统使时钟。锁相环起到的是倍频的作用,锁相环的使用有锁定和连接的过程。(有的芯片锁定连接过程是自动完成的比如S3C2440,有的则需要手动编程实现锁定和连接,总之PLL属于一种片上外设,不同厂家的产品使用上略有不同) 以S3C2410为例,其内部有两个锁相环: MPLL、UPLL,分别为MCU和USB控制器产生时钟信号,其中MPLL未连接之前MCU直接使用震荡源作时钟信号,连接后则改用MPLL倍频后的震荡源作时钟信号;而UPLL因为是为USB设备提供时钟信号,所以规定必须是48MHz或96MH
[单片机]
UART-中断模式
init.c /* * init.c: 进行一些初始化 */ #include s3c24xx.h void disable_watch_dog(void); void clock_init(void); void memsetup(void); void copy_steppingstone_to_sdram(void); /* * 关闭WATCHDOG,否则CPU会不断重启 */ void disable_watch_dog(void) { WTCON = 0; // 关闭WATCHDOG很简单,往这个寄存器写0即可 } #define S3C2410_MPLL_200MHZ ((0x5c
[单片机]
s3c2410_gpio_setpin()与s3c2410_gpio_cfgpin()函数定义
snailszzy 的 s3c2410_gpio_setpin()与s3c2410_gpio_cfgpin()函数定义 s3c2410_gpio_setpin()在gpio.c中 作用:设置相应GPIO口的值, 如pin=S3C2410_GPB5 to=0 则:设置S3C2410_GPB5的输出值为0 如pin=S3C2410_GPB5 to=1 则:设置S3C2410_GPB5的输出值为1 void s3c2410_gpio_setpin(unsigned int pin, unsigned int to) { void __iomem *base = S3C2410_GPIO_BASE(pin); unsign
[单片机]
基于S3C2410嵌入式处理器实现CAN/Ethernet网关的设计
CAN(Controller Area Network)为控制器局域网络,CAN总线规范已经被国际标准化组织制订为国际标准ISO11898,并得到众多半导体器件厂商的支持,推出各种集成有CAN协议的产品。CAN属于总线式串行通信网络,由于其采用了许多新技术和独特的设计,低成本、高可靠性、实时性、灵活性、抗干扰能力强等特点,已被广泛应用于各个自动化控制系统中。在汽车电子、自动控制、电力系统等领域,CAN总线具有无可比拟的优越性。 以太网以其通信数据量大、传输速度快、开放性好、成本低等优点,弥补了现场总线通信速率低的缺陷,成为现阶段信息网络应用最广的局域网技术。用以太网直接进入工业控制领域,目前还存在一些问题,以太网的媒体访问方式
[单片机]
基于<font color='red'>S3C2410</font>嵌入式处理器实现CAN/Ethernet网关的设计
触摸屏在S3C2410上的应用实例
摘要:给出S3C2410上触摸屏的实现原理、硬件结构和软件程序;对软件进行优化,改进软件滤波的实现方法。其算法使用C语言实现,可移植到任何操作系统的触摸屏驱动程序中。 关键词:触摸屏 S3C2410 滤波 引言 随着个人数字助理(PDA)、瘦容户机等的普及,触摸屏作为终端与用户交互的媒介,在我们的生活中使用得越来普遍。触摸屏分为电阻式、电容式、声表面波式和红外线扫描式等类型,使用得最多的是4线电阻式触摸屏。 本文以三星公司ARM9内核芯片S3C2410触摸屏接口为基础,通过外接4线电阻式触摸屏构成硬件基础。在此基础上,开发了触摸屏面图板程序。 1 触摸屏原理 S3C2410接4线电阻式触摸屏的电路原理如图1所示。整个触
[应用]
s3c2410/s3c2440 nand flash工作原理
NAND Flash的寻址方式和NAND Flash的memory组织方式紧密相关。NAND Flash的数据是以bit的方式保存在memory cell,一般来说,一个cell中只能存储一个bit。这些cell以8个或者16个为单位,连成bit line,形成所谓的byte(x8)/word(x16),这就是NAND Device的位宽。这些Line会再组成Page,通常是528Byte/page或者264Word/page。然后,每32个page形成一个Block,Sizeof(block)=16kByte Block是NAND Flash中最大的操作单元,擦除就是按照block为单位完成的,而编程/读取是按照page
[单片机]
基于斯道S3C2410的Linux内核编译
1。编译缘由 使用斯道的zImage文件,我自己编译的Mplayer不能使用,必须加--nosound选项才能播放视频。后来见一篇文章说是Linux内核音频驱动的问题,所以决定重新编译内核。 2。编译工具及资料 2。1内核版本:斯道S3C2410普及版2光盘自带的 2。1交叉编译器:cross-2.95.3.tar.bz2,可能是在ARM官方的ftp服务器上下的,我忘了。 3。编译过程 3。1拷贝cross-2.95.3.tar.bz2到/usr/local/arm/目录,并转到/usr/local/arm目录 sudo cp cross-2.95.3.tar.bz2 /usr/local/arm sudo cd /usr/
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved