恩智浦LPC双核设计大赛已经完美收官,可是小伙伴们还是有点意犹未尽,想更多地了解利用LPC双核MCU的新特性,在开发中究竟有哪些新玩法?
本期开始,NXP客栈将邀请本次大赛的获奖选手现身说法,分享他们的设计思路和开发经验。今天我们在这里向大家隆重介绍的,就是本次大赛的一等奖获奖作品——双核无线数字对讲机,Ta的开发者是王志超。
本项目是基于
LPC54114
为主控,采用射频SI4463的无线数字对讲机。主要实现了数字对讲、波道切换、功能设置三大功能。该项目充分利用片载的外设资源(DMIC+DMA+双核等),M4内核负责语音数据编解码,M0+内核负责实时控制,双核协作,稳定高效。
通过语音数据压缩,不仅减少了数据量,减轻了射频传输的负担,保证了话音的实时性,而且实现了较好的语音效果,通讯距离比较远。
该项目采用数字传输方案,具有很强的扩展性,未来可以广泛应用到餐饮点菜机、工业应用、人员搜救等方面,具有很好的市场前景 。
图1,双核无线对讲机实物图
方案的主控芯片采用恩智浦的双核MCU——
LPC54114
,射频芯片采用SI4463,音频芯片是WM8904,数字MIC采用SPH0641LM4H,其他硬件资源还包括OLED显示模块、3.5mm接口耳机和音箱等音频输出设备,
图2,双核无线对讲机硬件资源
图3,双核无线对讲机硬件框图
软件设计中,发送端M0+内核做实时控制,检测到按键之后通过邮箱发送给M4内核,对语音进行采集、压缩和发送。在接收端,M0+内核同样做实时控制,M4内核做语音的解压缩,通过扬声器播放出来。
图4,双核无线对讲机软件框图
本方案采用ADPCM语音编解码,ADPCM是自适应差分脉冲编码调制的简称,最早使用于数字通信系统中。它是一种针对16 bit声音波形数据的有损压缩算法,压缩比为1:4,能够将声音流中每次采样的16 bit数据以4 bit存储, 压缩/解压缩速度快,算法相对简单, 是一种低空间消耗、高质量声音获得的好途径。
本项目采用8K音频采样率,16 bit数据深度,结合ADPCM编码算法具有复杂度低,压缩比大,延时短的特点,且SI4463满足空中速率100kbps、> 32kbps@8khz传输速率的条件,故选用此编解码。
为进一步增强无线传输稳定性,提高对讲机通讯距离,通过多次实验,进行了三个方面的优化:
-
方法1:射频SI4463单独供电,匹配10UF以上的电容;
-
方法2:降低SI4463空中速率从300Kbps至100Kbps;
-
方法3:将原先64Byte的音频长帧数据变为32Byte短帧数据,实时性更好,用户体验更佳。
图5,LPC双核设计大赛决赛中,双核无线数字对讲机项目进行展示
在此项目开发过程中,使用恩智浦LPC双核MCU有两点突出的体会:
LPC54114
中的M4内核主要负责音频数据的编解码,完成一些复杂的工作,M0+内核负责实时控制,例如按键检测、交互显示等一些费时操作,双核之间通过邮箱、MailBox交互数据,简洁高效。
LPC54114
自带的DMIC和
I
2
S
接口,结合多路DMA,解决了语音录入和播放的大问题,可以很轻松的获取到PCM格式的音频数据,完成音频数据编解码,然后通过无线发送出去;接收端通过PIT中断,实时接收无线数据,最后推送给WM8904播放语音。