设计内容概述
本设计的主要设计内容是要设计一个电话终端,最基本的设计目标就是要在局域网内能够实现两部相同的本设计所做的网络电话机之间的通话,由参考文献[6,110-180]可知。
本终端类似于传统的普通电话机,它拥有用于拨号的键盘;拥有用于显示己方拨号或者他方来电显示功能的液晶显示器LCD,它还可以显示来电方的IP地址;它还有用于接收声音的麦克风和播放声音的喇叭,等等。它与传统的普通电话机的最大的不同点就在于它是通过局域网或者是互联网来传输语音信息的,它通过RJ45口接入局域网即可实现拨打与通话功能,语音数据通过IP数据包发送,而传统的普通电话机是通过传统的PSTN网络传输语音信息的。本终端总共包括四个部分,即单片机控制模块(MCU),语音转换部分模块,以太网控制模块,用户线路模块。
2.2 组网方案
由于本设计是设计一个于传统的普通电话机不同的网络电话终端,在前面已提到本设计与传统电话机的最大区别在于其是通过局域网或者是互联网来传输信号的,所以在此就涉及到本设计终端身份识别以及怎样能够寻找到对方的问题,而为了解决这个问题可以选择两种方案:
(1) 方案一
直接对网络芯片编程,在MCU的控制下寻找对方。每个终端连上网络的时候就开始向网络上广播自己的地址,当要寻找对方的时候主叫终端就开始把对方的地址及所需要的命令封装成帧以广播的形式发送到网络,而被叫终端通过CSMA/CD监听网络,当有属于自己的消息时就通过网络芯片接收消息[7]
(2) 方案二
本方案是在方案一的基础上,在整个网络上加上一个服务器,此服务器就像是通信双方的中间人一样,在它里面拥有整个网络上所有本设计终端的地址信息,它能使号码-IP地址映射功能在独立服务器上实现。当一个终端作为主叫要寻找另一终端时,就可以通过这个服务器来寻找。本方案的原理图如下:
图2-2 方案二原理框图
以上分别介绍了两种方案,从中可以看出各种方案都有其独特的特点,方案一的特点是设计简单,易于实现,所需成本较低;而方案二的特点有因为有服务器的加入使得各个终端系统不必再自己去寻找对方和辨别所接收到的消息是否为自己的,这样就加快了各终端系统的反应速度。
但是考虑到本设计的具体情况,方案二相对于方案一而言,其有设计较为复杂(因为加入服务器就要队服务器编写程序等),不易于实现,成本较高等缺点。所以笔者经过对比决定所选择的方案是方案一,即不需要加入服务器。
2.3 系统组成
上面已提到本设计的系统主要由四个部分模块组成,即单片机控制模块(MCU),语音转换部分模块(PCM),以太网控制模块,用户线路模块。系统组成图如下:
图2-3 系统结构图
本设计由于是做电话终端,所以就需要两个相同的本设计终端,图2-3所示的是1个终端的系统模块图。
2.4 关键技术
本设计做的是电话终端,而其关键技术包括主控芯片对其他各功能模块的控制作用,语音的转换及打包与拆包处理,以太网芯片怎样发送和接收数据,等等。
1.主控芯片的控制作用
主控芯片的控制包括对网卡芯片,PCM语音转换芯片,用户线路即检测摘机与挂机等模块的控制。怎样在硬件上实现对这些模块的控制,就体现在主控芯片与其他芯片的引脚连接上。在软件上,其他芯片通过发送中断请求来通知主控芯片它将要作什么工作,而主控芯片就要做出相应的中断回应来控制其是否该做和怎样做。
2.语音的转换及打拆包处理
此技术的重点在于,怎样进行语音的编码与解码,怎样将模拟语音转换成数字信号或者是怎样将数字语音信号转换为模拟信号。网络电话机进行语音传输,要完成以下几个过程:模拟语音首先经CODEC编码为64K的PCM码,经压缩形成语音数据;语音数据再由RTP封装后再交由UDP进行封装;携带语音数据的UDP数据报在IP层被封装为IP包;最后IP包通过以太网接口程序形成以太帧发送至以太网上传送;携带语音数据的以太网帧在目的话机被以太网卡接收并拆包恢复为语音数据,其处理是语音发送的逆过程,语音数据解码为模拟语音送至话筒。
3.以太网芯片怎样发送和接收数据
由于本设计终端只做到局域网内,所以此技术的关键就在于怎样将要发送的数据进行封装与将接收到的数据进行拆封。系统使用网卡芯片来实现以太网媒介访问层(MAC)和物理层(PHY)的功能,包括MAC数据帧的收发,地址识别,CRC编码校验,超时重传,链路完整性测试,信号极性检测纠正等。主处理器在网卡芯片的外部总线上读写MAC帧。其中,接收控制器用于将接收的串行数据拼成字节送到CRC校验单元,发送控制器则是将送来的字节送到CRC编码单元并逐个按位移出;CRC逻辑在接收时对输人的数据进行CRC校验,发送时对帧数据产生CRC校验序列,并附加在数据尾传递;地址识别逻辑对接收帧的目的地址与预先设置的本地物理地址进行比较,如不符合要求则拒收。网卡芯片还使用内部存储缓冲器对与核心控制单元数据交换进行缓冲,以优化系统的数据传输速度。
2.5 网络电话控制功能分析
(1) 对键盘的控制
键盘在本设计终端中起的作用是拨号作用,主控芯片通过扫描键盘,识别到键盘的拨号信息,再将此信息转换成数据传输给网卡,让网卡作为目的地址封装在MAC帧里。所以对键盘的控制是有必要的。
(2) 对液晶显示器的控制
液晶显示器(LCD)在本设计里所起的作用是显示来电信息与去电信息。如果有来电情况发生时,网卡芯片就要通知主控芯片,而这时主控芯片就要控制LCD来显示来点方的信息;而当有去电发生时,键盘的拨号信息就要通过主控芯片显示在LCD上。
(3) 对语音接口进行控制
语音芯片在本系统中所起的作用是进行语音的PCM编码与解码,并且要将数字语音信息转换成模拟语音或者将模拟语音信息转换成数字语音信息。主控芯片主要控制其将语音信息按什么需求来转换。
(4) 对网络接口的控制
网络芯片在本设计中所起的作用是一方面它要将本系统即本机的语音转换芯片所转换好的语音信号在单片机的控制下封装成帧,当收到发送命令的时候就要向以太网发送;另一方面,它还要监听在局域网内的消息,如果监听到是有其他有发送消息来的,它就要通过MAC比较、CRC校验后,如果是属于自己的,它便接收数据,然后,由FIFO存到接收缓冲区,收满一帧后,以中断或寄存器标志的方式通知主处理器(MCU)。
综上所述,可见控制部分在本设计中是极为重要的。