内容摘要:作为移动便携设备,其成本和功耗成为了设计瓶颈。本设计主要从性能,成本,功耗等方面出发,提出了一种利用低速低功耗的无线个域网技术IEEE802.15.4[1]来实现无线VoIP话机系统的方案,并在基于Freescale射频芯片MC13192的硬件平台上成功实现了该方案。
使用该操作系统之前需将其移植到MCF5249上,根据处理器的具体信息,编写OS_CPU.H,OS_CPU_A.ASM和 OS_CPU_C.C三个文件。
除内核外,完整的操作系统还需要编写键盘,LCD,音频驱动和射频芯片驱动。音频驱动采用Phlips I2S数据格式,设定采样率为8KHz。射频芯片驱动采用Freescale公司为MC13192提供的配套软件模块。
操作系统之上是无线MAC层,该模块针对语音无线传输的特点简化实现了IEEE 802.15.4 协议MAC层功能。第三层为语音压缩编解码g.726模块和无线网内部会话信令处理模块。会话信令处理模块负责处理来自无线语音网关的会话信令。最上层为应用层,实现用户界面和通话过程控制。无线手持设备总统框架如图6所示。

图6 无线手持设备端的软件框架
无线手持设备端的软件流程
当手持设备上电启动后,其工作流程如图7示。首先进行的是系统的初始化,包括处理器初始化,操作系统mC/OS-II 初始化,LCD,键盘,射频模块等的初始化。之后建立起始 任务并通过OSStart()函数进入多任务环境。此时起始任务占用CPU资源,在起始任务中,建立按键信息处理任务并通过信号量机制挂起。然后判断是否收到来自无线语音网关的帧,如果有,调用frame_deal()函数处理帧信息,在该函数中调用 call_command_deal()完成无线网内部会话信令的处理。接着判断通话是否建立,如果建立则创建语音任务,在语音进程中使能PCM编解码芯片,并进行g.726压缩编码。最后判断是否有帧需要发送给无线语音网关,如果有则把帧添加到发送缓存,等待发送时隙到来。这一过程完成以后重新跳到判断是否收到来自无线语音网关的帧,重复以上过程。如果有键盘中断,将会释放一个信号量,该信号量将解挂按键信息处理任务。该任务对键盘输入信息进行处理。

图7 无线手持设备的软件流程
结语
本设计已经在基于MCF5234微处理器(无线语音网关)和MCF5249微处理器(无线手持设备)的硬件平台上实现。如图8所示,左图为无线语音网关,右图为无线手持设备。

图8 系统硬件实物图
本设计实现了包括呼叫转移,三方通话等在内的7项通话功能。在40米范围内,具有良好的语音效果。该系统为家庭、办公环境实现无线VoIP通信提供了一种参考设计,且具有结构简单,功耗小,软件层次清晰等特点。
来源:电子产品世界 责编:豆豆技术应用