新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 无线IPPBX系统的设计与实现

无线IPPBX系统的设计与实现

作者:黄宁成 石江宏 时间:2008-06-11 来源:电子技术应用 收藏

  1.5 总线端口适配单元设计

本文引用地址:https://www.eepw.com.cn/article/84015.htm

  总线端口适配单元的功能是从硬件上屏蔽I/O总线操作的复杂性,使主控CPU以一种简单的I/O读写方式即可实现系统两大总线的操控(I2C总线和HPI总线)。该单元的设计采用一片CPLD和一块带I2C接口的MCU来实现总线适配功能。CPLD的功能是实现不同I/O口间逻辑关系的转换,具体来说就是将主控CPU的I/O读写逻辑转换为AC48304C_C的HPI口的读写逻辑或MCU I/O口的读写逻辑。MCU的作用是进一步将CPLD的接口逻辑转化为I2C总线上的通信协议。CPLD的I/O逻辑功能的设计通过为其编写VHDL语言来实现,它的等效内部逻辑和外围接口如图4所示。

  2 系统软件设计

  2.1 分层架构

  软件系统以嵌入式 Linux为操作系统平台,采用软件分层的设计思想。整个系统的软件架构分为三层:设备驱动层、通信协议层和通信事件处理层,如图5所示。每一层都为上层提供API,图中虚线表示分层,箭头表示层与层之间API的调用关系。

  2.2 设备驱动层设计

  设备驱动层属于系统软件的最底层,它根据所处理的硬件对象的不同又可分为网络设备驱动和通信设备驱动。网络设备驱动负责处理以太网控制器的操控,它控制以太网芯片从以太网发送和接收数据包。通信设备驱动负责控制系统各工作单元信息处理的物理实现,包括AC48304C_C初始化、各语音处理通道的配置、语音压缩包的存取和DTMF信号处理,以及各控制单元(AM79Q02,模块)信令发送、状态读取。通信设备驱动通过Linux虚拟文件系统接口向上层提供标准的API,上层可以不管设备的复杂性,只要调用这些API就可以。

  在上述设备驱动功能的设计中与工作单元信息交互的实现方法需要特别注意,这也是实现设备通信功能的核心所在。与工作单元的信息交互是通过向控制GSM模块的MCU发送控制指令实现的。这些控制指令通过I2C总线传送。本系统I2C总线是一个多主机通信系统,当主控CPU(MPC860T)在该总线传送信息时,先要侦听信道是否空闲(该功能由总线适配单元实现),如果空闲则将待发送的指令序列分解成一定长度的数据包,然后一个包一个包地发送出去(与以太网相似)。

  鉴于I2C总线的这个特性,在驱动层要制定一个简单的协议才可实现主控CPU与GSM控制单元(MCU)间信令的传递。系统采用HDLC帧的方式,即在传递信令前先将要发往GSM控制单元的控制信令打成 HDLC帧的格式,然后再将此帧分解成固定长度的数据包发往I2C总线,控制GSM模块的MCU接收这些数据包并将其还原成HDLC帧,再根据帧中各字节的定义将该帧解析成具体的AT指令发送给GSM模块。系统HDLC帧结构如表1所示。

  控制GSM模块的MCU接收到HDLC帧后先读取类型字段,根据该字段判断载荷内容,然后再执行相应的操作。例如收到HDLC帧的类型为0x01时表示拨号操作,后面的载荷就是电话号码,此时就执行拨号的AT指令。又如收到HDLC帧的类型为0x04则表示发送短信操作,载荷则为电话号码和短信内容的PDU码,那么就执行发送短信AT指令。

  2.3  通信协议层设计

  通信协议层主要为上层应用程序提供各通信协议栈。本系统通信协议层实际还可细分为两层:TCP/IP协议层和应用层协议(SIP协议和RTP协议)。设计通信协议时,TCP/IP协议是Linux操作系统自带的运行在内核当中,SIP协议和RTP协议需要从外部移植,运行时以函数库的形式存在于用户空间。不论TCP/IP协议层还是应用层协议都为其上层提供了标准的API,对于上层程序来说只要调用这些API就可实现协议功能。

  2.4 通信事件处理层设计

  通信事件处理层是运行在应用层为一些具体的通信事件(如用户的摘挂机、电话的呼入呼出、呼叫转移等)服务的程序。具体的设计方法是在系统的应用层开启一个守护进程,并在该进程下开辟多个监控线程。每个监控线程负责监控一类通信事件,如果有通信事件发生,则监控它的线程就调用相应的状态机服务程序,而状态机服务程序会调用具体的协议栈并驱动实现具体的通信过程。



评论


相关推荐

技术专区

关闭