扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
按照以上对硬件功能的要求,本设计采用了Freescale公司32位微处理器MCF5249作为主控芯片。该处理器工作主频为140MHz,实际工作频率可通过片内PLL设定,片内带有8K的指令高速缓存和96K的SRAM。该处理器还提供丰富的外设供用户使用。
无线收发模块采用Freescale公司符合IEEE802.15.4规范的射频芯片MC13192,该芯片工作在2.4GHz频段,提供16个无线通道,数据速率为250Kb/s[4],通过QSPI与主控芯片进行数据交换。语音采样模块采用Motorola公司13位线形PCM编解码芯片MC145483SD[5],该芯片对语音进行AD采样并形成线形PCM流,通过音频接口与主控芯片交换数据。时钟模块的设计充分考虑手持设备的低功耗要求,提供高低两种时钟输入。当系统处于未通话状态,可向系统提供低频率时钟。时钟输入可通过软件配置GPIO进行选择。因为要处理大量音频数据和固化代码,扩展了片外SDRAM和FLASH。其他模块还包括键盘,LCD,串口和BDM调试接口,其硬件框架如图5所示。
图5 无线手持设备端的硬件框架
无线手持设备端的软件设计
无线手持设备端的软件框架
无线手持设备在软件设计上需充分考虑系统的实时性和功耗。其一,手持设备需要处理语音,会话控制信令,键盘输入信息等多种数据,并需要进行通话过程控制,无线收发控制,单任务环境显然不能胜任。其二语音数据是实时数据,必须得到及时有效的处理,且系统不能过于复杂,以减少不必要的开销,降低功耗。综合以上两点,本设计采用了一个轻巧的多任务实时嵌入式操作系统mC/OS-II,其内核可剥夺性保证了实时任务的运行。而且其内核代码量小,能充分节省系统资源。该嵌入式操作系统提供除空闲,统计和保留任务以外的56个实时任务供用户使用,提供信号量,消息队列等机制实现任务间的同步和信息传递。其实时性强,代码量小,内核简单的特点使其非常适用于本手持设备。
使用该操作系统之前需将其移植到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通信提供了一种参考设计,且具有结构简单,功耗小,软件层次清晰等特点。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者