- 浏览: 236141 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
wahahachuang8:
GoEasy 实时推送支持IE6-IE11及大多数主流浏览器的 ...
服务器推送技术 java -
mahuanjian:
[flash=200,200][/flash]
服务器推送技术 java -
wenjundiandian:
下面有网页编辑器的话还是会被隐藏.
ext中消息框、提示框、确认框显示在最前面的解决方法 -
天塔上的猫:
/**
* JAVA常见的权限控制算法的实现
*
* ...
JAVA常见的权限控制算法的实现
基于ARM的嵌入式网络收音机的设计
摘要:研究了一种基于ARM处理器的嵌入式网络收音机的设计方案。该系统以ARM处理器及其外围设备为硬件平台,以嵌入式Linux为操作系统,实现了网络收音、局域网共享音频文件和本地SD/MMC卡内音频文件的播放功能,该系统还使用了无线网卡模块,通过USB接口与系统连接。由于该系统运用嵌入式Linux提供的TCP/IP协议直接与网络电台的地址连接,所以省去PC机,就可以轻松的收听全世界的网络电台,而且体积较小,移动方便。
关键字:嵌入式系统;Linux;ARM;网络收音
收音机作为接收广播的工具,经过漫长的发展过程,由单波段发展到多波段,由电子管,晶体管发展到集成电路,由机械调谐发展到数字调谐功能和质量有了长足的进步,在收音机这个家族中新的成员也在不断加入,如卫星广播接收机等,当社会进入网络时代后,便出现了网络收音机。但是这种收音机都是基于PC机到应用软件,也就是说这种网络收音机不能脱离电脑,而本系统通过网络接口与英特网相连,在嵌入式Linux提供的TCP/IP协议的基础上直接访问网络电台的地址,实现收音的功能,因而使该嵌入式网络收音机无需PC机,就可以方便的收听来自全世界的声音。
1系统的结构及工作原理
系统的硬件结构框图如图1所示。本系统选用的ARM处理器是Sumsing(三星)公司的一款ARM9系列的芯片,型号为S3C2410。有线网卡芯片采用CS8900,该芯片是Cirrus Logic公司生产的一种局域网处理芯片,它的封装是100-pin TQFP,内部集成了RAM、10BASE-T收发滤波器,并且提供8位和16位两种接口。无线网络接口采用无线网卡模块,该模块为USB接口,通过USB接口与S3C2410相连。FLASH芯片采用 K9F5608,用来存储启动引导程序U-boot、内核及文件系统,SDRAM芯片采用HY57V281620,作为该系统的内存。LCD选用16*4的字符型液晶显示模块,用来显示网络电台、音频文件名等相关信息。音频D/A转换芯片选用具有IIS接口的UDA1341。
该系统的软件模型如图2所示。系统以S3C2410及其外围电路为硬件平台,嵌入式uclinux和设备驱动程序为上层mplayer播放器和用户应用程序提供软件平台。
图 1 硬件结构框图
图2 软件模型
2 系统的硬件设计
2.1 S3C2410
S3C2410 芯片基于 ARM920T 内核,采用五级流水线和哈佛结构,提供1.1MIPS/MHz 的性能,是高性能和低功耗的硬宏单元。ARM920T 具有全性能的MMU、指令和数据Cache以及高速AMBA总线接口。
作为 S3C2410 芯片的 CPU 芯核,16/32 位ARM920T RISC微处理器采用0.18ìm CMOS标准单元结构,具有独立的16kB指令缓存和16kB数据缓存。S3C2410 内部结构较复杂,提供可扩展的功能模块较多,主要有 ARM920T 内核(16-/32-bit RISC CPU),独立的 16kB 指令和 16kB 数据缓存,MMU虚拟内存管理单元,LCD控制器(支持STN和TFT),NAND flash boot loader,系统管理单元(SDRAM控制器等),3通道 UART,4通道 DMA,4通道具备PWM 功能的定时器,I/O 口,RTC(实时时钟),8通道10bit精度ADC和触摸屏控制器,IIC总线接口,IIS数字音频总线接口,USB主机,USB设备,SD/MMC
卡控制器,2通道 SPI 和 PLL数字锁相环组成。其内部结构如图3所示。
图3 S3C2410内部结构图
S3C2410提供了多种存储设备的接口,其中包括接ROM、SRAM、SDRAM、NOR Flash、NAND Flash等,同时S3C2410的外接存储空间被分为8个bank,每个容量为128M。本系统中Flash存储器(Boot SRAM)、网络接口(NET)、LCD Frame Buffer和SDRAM存储器分别映射到存储空间的bank0、bank1、bank2和bank6。如图4所示。
图4 存储空间映射
2.2 网络接口
本系统分为有线网络接口和无线网络接口,有线网络接口选用CS8900芯片局域网处理芯片,其片选信号连接到S3C2410的nGCS1,因此网卡的地址空间映射到0X08000000~0X0FFFFFFF。无线网络采用带有USB接口的WLAN(Wireless Local Area Nerwork)卡,插入系统的USB接口即可。
2.3 SDRAM存储器
HY57V28160是一个数据宽度为16BIT,容量为16M字节的SDRAM芯片。HY57V28160与S3C2410的连接图如图5所示。
图5 HY57V28160电路图
SDRAM的地址空间映射到存储空间的bank6,如图5所示 ,HY57V28160的ncs引脚接到处理器的nGCS6。由于在处理器的存储空间中,字节是存储容量的唯一单位。而SDRAM(HY57V28160)的数据宽度为16,它的每一个存储单元都包含2个字节。因此SDRAM(HY57V28160)的A0引脚接到了S3C2410处理器的地址线ADDR01上面。 HY57V28160的容量为16M(2^24)字节,因此它需要ADDR00~ADDR23共24跟地址线来寻址,所以,BA0~BA1引脚应该接到ADDR22~ADDR23地址线上。
2.4 Flash存储器
本系统中,Flahs存储器主要用于存储U-boot、Linux内核及文件系统。常见的Flash存储器有NOR Flash和NAND Flash,两种Flash各有优缺点。本系统综合考虑了各项因素,选用了16M*16BIT的NAND Flash,型号为K9F5608。系统启动时,CPU从0x00000000地址开始运行,所以要将Flash的首地址映射到0x00000000,因此该Flash芯片的片选引脚要接到nGCS0,其电路图设计如图6所示。
图6 nand flash电路图
3 系统的的软件设计
3.1 嵌入式Linux的移植
嵌入式Linux内核的版本很多,一般情况下版本越高,系统越稳定,驱动更完善,本系统选择了2.6.18的Linux内核。其实对于2.6以后版本的Linux内核,对S3C2410的支持都有了很好的支持,所以移植过程都比较简单。Linux2.6.18移植到S3C2410的基本过程如下:
(1)、下载Linux2.6.18内核,并解压到相应目录。
(2)、修改内核顶层目录下的Makefile文件,指明交叉编译器。进入Linux-2.6.18内核目录,输入命令vi Makefile,找到ARCH和CROSS_COMPILE两项,将其修改为ARCH = arm,CROSS_COMPILE = arm-linux-。
(3)、设置PATH环境变量,使其可以找到交叉编译工具。输入su root,进入root,在输入vi /etc/bashrc,在结尾处加入以下行:export PATH=/usr/local/arm/3.4.4/bin:$PATH,然后重启终端或重新登陆即可。
(4)、设置Flash分区。首先要在arch/arm/mach-s3c2410/devs.c文件中添加分区信息,其次在arch/arm/mach-s3c2410/mach-smdk2410.c文件的smdk2410_devices[]的成员中添加&s3c_device_nand。这样Linux内核启动时,就会对Flash分区的设置初始化。
(5)、禁止Flash ECC校验。修改drivers/mtd/nand/s3c2410.c 文件,找到s3c2410_nand_init_chip()函数,在该函数体最后加上一条语句:chip->eccmode = NAND_ECC_NONE。
(6)、配置内核。通过make menuconfig命令配置内核。
(7)、编译内核,make zImage命令,得到Linux内核的映像文件zImage。
(8)、制作根文件系统。
3.2 Mplayer移植
Mplayer是Linux下的一个媒体播放器,它对媒体格式的支持非常广泛,而且支持实时在线播放音视频流。Mplayer的移植过程如下:
(1)、下载源代码MPlayer-current.tar.bz2,并解压。
(2)、为了让mplayer支持在线播放,从而能够播放网络电台,还必须下载安装网络协议包(主要指RTSP、MMS等协议)。可从www.live555.com上下载live555协议包,解压后配置并编译。
(3)、配置mplayer。在命令行输入:
./configure --cc=arm-linux-gcc --target=arm-armv4-linux --enable-static --disable-win32 --disable-dvdread --enable-fbdev --disable-mencoder --disable-mp3lib --enable-mad --enable-libavcodec --enable-live --with-livedir=/live555的目录/,其中,--host-cc=gcc是用来编译一些需要在host上执行的中间文件的,如codec-cfg。--cc=arm-linux-gcc如果没有将arm-linux-gcc的位置加入到$PATH中的话,在这个指定绝对路径好了。--target=arm-armv4l-linux这个参数要注意的是一个分三部分,第一部分的arm是指arch,这里设定为arm;第二部分的armv4l是指具体的版本;第三部分是系统平台。--enable-static是设定静态连接。最后的一个2>&1 | tee logfile意思是将执行的情况在输出到屏幕的同时记录到logfile文件中,在控制台下编译比较有用。
(4)、输入make命令开始编译,编译完成后在顶层目录生成mplayer可执行文件。
3.3系统软件主流程图
系统上电后,bootloader(U-boot)启动,完成硬件设备的初始化, 并引导系统内核启动。系统启动执行初始化任务后,首先配置网络连接,通过DHCP Clieant向DHCP Server申请获取IP地址。然后系统自动访问电台服务器,该服务器上有最近更新的世界各地的网络电台的URL地址,系统下载到该列表并更新原有列表后,自动连接列表的第一个网络电台。若在该过程中有按键产生,系统根据按键类型及当前状态调用相应的功能。系统主流程图如图7所示。
(a)
(b)
图7 系统主流程图
4 结束语
来源:http://hi.baidu.com/freedom_asic/blog/item/738b46d3abfbe531960a16e4.html
发表评论
-
Linux下获取IP、MAC、网关、掩码的shell脚本
2012-07-05 13:45 1924Mask:ifconfig |grep inet| sed - ... -
输入法
2012-01-04 18:00 0http://civilnet.cn/syszux/syszu ... -
tar压缩解压
2012-01-01 11:04 1048tar -c: 建立压缩档案-x ... -
Linux GUI 技术网
2012-01-01 10:32 729http://www.linuxgraphics.cn/hom ... -
Linux常用命令大全
2012-01-01 10:27 647http://www.emlinix.com/linux-zh ... -
嵌入式Linux应用程序自动载入驱动模块方法
2012-01-01 10:22 1292英利公司推出的嵌入式L ... -
MP4音频解码信息
2011-12-31 11:48 0http://blog.chinaunix.net/space ... -
ffmpeg库音频解码示例
2011-12-31 11:45 0一个英文版的例子(有讲解)ffmpeg的一些使用例子mpeg ... -
基于Bootloader的可靠嵌入式软件远程更新机制
2011-12-31 11:42 0嵌入式软件的远程自动 ... -
Double转STRING
2011-12-31 11:40 0double x=1.23456789; ch ... -
linux下检测网卡与网线连通状态
2011-12-31 11:32 0Linux下检测网卡与网线连接状态,使用ioctl向socke ... -
去除10分钟左右自动关闭LCD显示
2012-01-04 09:50 552注释掉drivers\char\vt.c的blank_scre ... -
linux logo 左上角有黑块解决办法
2012-01-04 09:50 942http://www.unixresources.net/li ... -
linux下gprs ppp 拨号的注意事项
2011-12-31 11:21 0折腾了几天,终于在linux下拨号成功了! 注意事项: 1 ... -
GPRS模块在Linux平台上ppp拨号上网总结与心得
2011-12-31 11:09 0由于一个嵌入式平台 ... -
Linux下检测U盘是否插入
2011-12-31 11:07 0Linux下检测U盘是否插入Linux的文件系统是异步的,也就 ... -
Linux下应用程序如何取得U盘插拔消息
2011-12-31 11:06 0Linux 2.6内核版本以后,对于/dev目录的管理采用了新 ... -
在嵌入式Linux下GPRS上网方案
2011-12-31 11:02 0在嵌入式Linux下GPRS上网方案 硬/软件环境 ... -
FFMpeg框架代码阅读
2011-12-31 10:50 01. 简介FFmpeg是一个集录制、转换、音/视频编码解码 ... -
关于ffmpeg的安装及其编译
2011-12-31 10:48 0所需软件包:nasm-0.98.39-1.i386.r ...
相关推荐
收音机作为接收广播的工具,经过漫长的发展过程,由单波段... 为了克服PC机形式的网络收音机的缺点,本文研究了一种基于ARM的嵌入式技术的网络收音机的设计方案。该方案以ARM处理器及其外围模块作为硬件平台,以嵌入式
【基于ARM嵌入式系统的Socket通信设计】 在嵌入式系统中,Socket通信是一种常见的网络通信方式,尤其在基于ARM架构的嵌入式设备中,它扮演着连接设备与外部网络的重要角色。ARM处理器因其高效能、低功耗的特性,在...
标题“设计基于STM32网络收音...总结来说,基于STM32的网络收音机设计是一个综合性的嵌入式系统项目,涵盖了网络通信、音频处理、人机交互、存储管理和电源管理等多个技术领域,是学习和实践嵌入式系统开发的优秀案例。
嵌入式网络收音机是一种基于ARM架构的嵌入式技术实现的新型广播接收设备,它克服了传统PC机形式网络收音机的局限性,如体积大、成本高等问题。这种创新设计利用高效的硬件平台和软件系统,使得网络收音机能够独立于...
在电子工程领域,基于STM32微控制器的项目设计广泛应用于各种嵌入式系统,其中FM收音机设计系统是一个常见的实例。STM32是由意法半导体(STMicroelectronics)推出的基于ARM Cortex-M内核的微控制器系列,以其高性能...
《基于Windows CE的嵌入式网络收音机》 该设计是将嵌入式技术巧妙应用...总体来说,这个基于Windows CE的嵌入式网络收音机设计充分展示了现代科技在消费电子产品中的应用潜力,为数字化家庭信息系统带来了新的可能性。
标题中的“ARM网络收音机”指的是一个基于ARM架构处理器的网络收音机项目,它可能结合了硬件设计和软件编程技术。ARM处理器是嵌入式系统中广泛应用的一种微处理器,以其高效能和低功耗著称。在这个项目中,STM32(意...
标题中的“基于armfly开发板的网络收音机程序”是指使用armfly开发板作为硬件平台,设计并实现了一个能够接收网络广播的软件系统。armfly开发板通常是一款基于ARM架构的微处理器开发板,它提供了丰富的接口和资源,...
ARM WebRadio 是基于 ARM Cortex-M3 微控制器和 VS1053 音频编解码器的嵌入式互联网收音机。VS1053 可以解码各种音频格式,包括 Ogg Vorbis、MP3、AAC、WMA、FLAC、WAV、MIDI。 特征 开源硬件 微控制器:来自 ...
数字式调频收音机设计是一项复杂而精细的工程,涉及到多个领域的专业知识,包括电子电路设计、信号处理、微控制器编程以及嵌入式系统开发等。这篇论文资料将深入探讨这些关键领域,帮助读者理解数字式调频收音机的...
本项目“电子-百为STM32RTthread网络收音机”正是基于STM32微处理器,结合了实时操作系统RTthread,实现了一款具有网络收音机功能的设备。下面将从项目背景、技术选型、硬件设计、软件架构以及RTthread操作系统应用...
综上所述,"基于STM32的网络收音机"项目涵盖了嵌入式系统设计的多个方面,从硬件接口到软件开发,再到网络通信和音频处理,都需要深入理解和熟练应用。通过这样的项目,开发者可以提升综合能力,更好地理解物联网...