打印

国产开源实时线程操作系统实做:STM32网络收音机

[复制链接]
9024|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ffxz|  楼主 | 2010-1-19 11:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
这个是STM32网络收音机v2版

其中使用RT-Thread做为RTOS,WM8978做为音频输出设备(用的RT-Thread设备模型),DFSFAT文件系统做为mp3文件的存取,LwIP做为TCP的协议栈,RT-Thread/GUI做为操作的图形用户界面。基本上RT-Thread0.3.0中能用到的组件都用到了。

wm8978注册成了RT-Thread的snd设备,上层应用可通过"snd"获得相应的设备,然后写入软件解压出的PCM数据实现音频播放。从软件上来说,如果底层换一个设备(例如STM32网络收音机v1版用的是wm8753,v2版使用wm8978),只需要在底层替换相应的驱动,上层依然只认"snd"设备,从而上层软件代码不需要做任何修改。

在实现的过程中还有一个小问题,一个线程进行mp3数据解压缩,它一直解压然后往设备中写入PCM音频数据,它如何知道PCM数据已经播放完毕,需要再解压更多的mp3呢?显然,如果是串行的做这件事,等PCM数据播放完毕再解压下一mp3数据,时间上肯定来不及,听到的肯定会是咔咔的杂音。而如果是并行做(边播放边解压),两者如何同步上?(当然还有一个前提,播放的速度肯定要小于解压的速度,否则播放完了还来不及解压,芯片的处理能力就不够,就不应该选取软解压的方案)

在这个实现中,使用了RT-Thread的memorypool方案,当解压线程工作时先向mp申请内存以放置解压出的PCM音频数据,如果mp没有内存块线程将自动挂起(等待有空闲的内存块)。而向snd设备写入PCM数据时,则只是把数据块放到设备的队列中(真实的写入是通过DMA方式传输),当数据真实地写完时,将释放数据块到mp中(这个过程是在中断中完成)。所以整个过程会是,如果解压线程领先播放时,将把mp中所有的内存块使用完,而后挂起。当播放一段完成时,释放相应的内存块,并唤醒解压线程让它继续工作。

这个播放器原型也用到了RT-Thread/GUI,初始画面是播放器,还包括功能画面,选择电台及选择SD卡上的文件进行播放。后续会添加上文件系统中图片的浏览,适当的优先(先想到的是泡泡龙游戏,因为播放器是带了五向导航键的)

所有的源代码(RTOS、文件系统、协议栈、GUI、播放器代码)都可以在RT-Thread的svn服务器中获得:
http://rt-thread.googlecode.com/svn/trunk/
(下载全部代码请使用svn客户端,具体请看svn的用法)

RT-Thread上这个开源项目的网址:
http://www.rt-thread.org/phpbb/viewforum.php?f=17

mother_board.jpg (94.91 KB )

mother_board.jpg
沙发
yemingxp| | 2010-1-19 12:32 | 只看该作者
顶,终于出来了,哪买套件?视频来一个..

使用特权

评论回复
板凳
ffxz|  楼主 | 2010-1-19 13:21 | 只看该作者
我今天刚拿到板子,这批只做了5块,这周内会再打几块PCB来,不过得先满足第一批的。

使用特权

评论回复
地板
aq_fd| | 2010-1-19 16:43 | 只看该作者
连接在哪?看看详细说明?

使用特权

评论回复
5
gxgclg| | 2010-1-19 16:58 | 只看该作者
很好用吗,没看出来

使用特权

评论回复
6
ffxz|  楼主 | 2010-1-22 10:37 | 只看该作者
其实好用的应该是STM32才对,现在用STM32配合RT-Thread的radio工程,能够解320k码率的mp3。一般码率的mp3软解,GUI操作也比较流畅,操作时基本上没有杂音。记得一起Nokia的SymbianOS手机,软解mp3,只有一操作UI,很快就听到咔咔的声音。

使用特权

评论回复
7
香水城| | 2010-1-22 10:53 | 只看该作者
其实好用的应该是STM32才对,现在用STM32配合RT-Thread的radio工程,能够解320k码率的mp3。一般码率的mp3软解,GUI操作也比较流畅,操作时基本上没有杂音。记得一起Nokia的SymbianOS手机,软解mp3,只有一操作UI,很 ...
ffxz 发表于 2010-1-22 10:37


哈哈,这再次说明STM32的性能是相-当-地-不-错!  :lol

使用特权

评论回复
8
LIU_XF| | 2010-1-22 13:24 | 只看该作者
香主 不放过任何一个可以夸 STM32的机会

:lol

当自已公司的产品被别人肯定的时候,是一件很快乐的事

呵呵

使用特权

评论回复
9
sun66| | 2010-1-22 14:39 | 只看该作者
在哪买这个板子?

使用特权

评论回复
10
香水城| | 2010-1-22 15:01 | 只看该作者
香主 不放过任何一个可以夸 STM32的机会

:lol

当自已公司的产品被别人肯定的时候,是一件很快乐的事

呵呵
LIU_XF 发表于 2010-1-22 13:24


哈哈,俺对STM32的性能还是非常有信心的。

使用特权

评论回复
11
zjw5000| | 2010-1-22 15:32 | 只看该作者
套件那买?

使用特权

评论回复
12
dfsa| | 2010-1-22 20:47 | 只看该作者
呵呵,性能的确也还不错

使用特权

评论回复
13
czdo| | 2010-1-22 21:12 | 只看该作者
那个有套间啊,兄弟

使用特权

评论回复
14
平常人| | 2010-1-22 21:39 | 只看该作者
那个有套间啊,兄弟
czdo 发表于 2010-1-22 21:12


LS要开房呀,还要套间? 哈哈哈哈哈。。。。。。。。。。。。。。

使用特权

评论回复
15
ffxz|  楼主 | 2010-1-23 06:57 | 只看该作者
套件建议去RT-Thread的论坛看看,或许某个时候会有惊喜

使用特权

评论回复
16
sampson21| | 2011-3-9 14:52 | 只看该作者
:)

使用特权

评论回复
17
yybj| | 2011-3-9 17:04 | 只看该作者
不错,很好,很强大

使用特权

评论回复
18
dfsa| | 2011-3-9 21:00 | 只看该作者
:lol相当地不错

使用特权

评论回复
19
秋天落叶| | 2011-3-10 14:45 | 只看该作者
这图片看起来很炫啊,不知道功能咋样

使用特权

评论回复
20
txcy| | 2011-3-10 18:32 | 只看该作者
能收到多少台:lol

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:实时线程操作系统RT-Thread:启动下一代RTOS演化。。。 官方主页:http://www.rt-thread.org

7

主题

20

帖子

0

粉丝