当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]嵌入式网络收音机的ARM实现

收音机作为接收广播的工具,经过漫长的发展过程,由单波段发展到多波段,由电子管,晶体管发展到集成电路,由机械调谐发展到数字调谐功能等,其技术和品质都有了长足的进步。

  如今,在收音机这个家族中新的成员也在不断加入,如卫星广播接收机等。当社会进入网络时代后,更是出现了网络收音机这种跨越全球的信息接收设备。但是,目前这种网络收音机大多是通过基于PC机上的软件开发来实现的其功能的,也就是说这种网络收音机不能脱离电脑这种相对比较大的和比较昂贵的设备。为了克服PC机形式的网络收音机的缺点,本文研究了一种基于ARM的嵌入式技术的网络收音机的设计方案。

       该方案以ARM处理器及其外围模块作为硬件平台,以嵌入式Linux作为操作系统,以Mplayer作为网络播放软件,再配合设计的用户应用程序,共同实现了嵌入式网络收音机的全部功能。这种设计方法在网络收音机的设计史上是一个创新。同时,随着网络技术的高速发展,该设计将具有极好的市场应用前景。

        本文作者创新点:

  1、首次提出了用嵌入式技术设计网络收音机的系统设计方案,极具创新特点。

  2、实现了Mplayer软件在Linux系统平台下向ARM9的移置。

  1系统的结构及工作原理

  系统的层次结构如图1所示。系统以S3C2410及其外围电路为硬件平台,以嵌入式Linux和设备驱动程序作为系统的软件平台,为上层Mplayer播放器和用户应用程序提供用户接口支持[1]。在这三层结构的支持下,共同来实现嵌入式网络收音机的全部功能。

  

 

  图1 系统层次结构图

  系统的硬件结构框图如图2所示。本系统选用的ARM处理器是Sumsing(三星)公司的一款ARM9系列的芯片,型号为S3C2410。网卡芯片采用的是Cirrus Logic公司的一颗网络处理芯片CS8900。FLASH芯片采用的是 K9F5608,用来存储启动引导程序U-boot、内核及文件系统,SDRAM芯片采用的是HY57V281620,作为该系统的内存。16*4的字符型液晶显示模块用来显示网络电台、音频文件名等相关信息。音频D/A转换芯片选用的是飞利浦公司的UDA1341芯片,该芯片具有IIS接口,可以方便的与S3C2410连接。

  

 

  图2 系统硬件结构框图

  系统在Linux提供的TCP/IP协议的支持下,通过应用程序和Mplayer控制,经过网卡连接到internet上指定的网络电台服务器,下载网络电台列表。系统支持在按键的控制下的网络电台选择和LCD上显示电台信息等功能。Mplayer解析出选中的电台的IP地址后,再连接到要收听的电台的网站,系统便可以接收并解析出该网站发出的流媒体数据。系统将接收到的流媒体数据保存到SDRAM中。之后,经过Mplayer的解码,送到音频D/A转换芯片,即可收听到该网络电台播放的声音等信息。

  2 系统的硬件设计

  2.1 S3C2410

  本系统的硬件核心平台采用的是Samsung 公司的处理器S3C2410。该处理器内部集成了ARM 公司ARM920T 处理器核的32 位微控制器,资源丰富,带独立的16KB 的指令Cache 和16KB 数据Cache、MMU虚拟内存管理单、LCD 控制器、RAM控制器、NAND 闪存控制器、3 路UART、4路DMA、4 路带PWM的Timer、并行I/O 口、8 路10 位ADC、Touch Screen 接口、I2C 接口、I2S 接口、2 个USB接口控制器、2 路SPI,主频最高可达203MHz[2]。其内部结构如图3所示。

  

 

  图3 S3C2410内部结构图

 2.2 网络接口

  系统的网卡芯片采用Cirrus Logic公司的一种局域网处理芯片CS8900,该芯片内部集成了RAM、10BASE-T收发滤波器,并且提供8位和16位两种接口。其片选信号连接到S3C2410的nGCS1,因此网卡的地址空间映射到0X08000000~0X0FFFFFFF。在Linux内核中,一般都含有CS8900的驱动程序,使用时只需修改驱动与处理器的地址映射关系,并在配置内核的Device Driver选项中,选中CS8900项。

  2.3 SDRAM存储器

  本设计的SDRAM采用的是HY57V281620芯片。该芯片是一个数据宽度为16BIT,容量为16M字节的SDRAM。HY57V281620与S3C2410的连接图如图4所示。

  

 

  图4 HY57V281620电路图

  HY57V281620的ncs引脚接到处理器的nGCS6。由于在处理器的存储空间中,字节是存储容量的唯一单位。而HY57V281620的数据宽度为16位,它的每一个存储单元都包含2个字节。因此HY57V281620的A0引脚接到了S3C2410处理器的地址线ADDR01上面。 HY57V281620的容量为16MB,因此它需要ADDR00~ADDR23共24跟地址线来寻址,所以,BA0~BA1引脚应该接到ADDR22~ADDR23地址线上。

   [!--empirenews.page--]3 系统的的软件设计

 

  3.1 嵌入式Linux的移植

  嵌入式Linux内核的版本很多,一般情况下版本越高,系统越稳定,驱动更完善,本系统选择了2.6.18的Linux内核。其实对于2.6以后版本的Linux内核,对S3C2410的支持都有了很好的支持,所以移植过程都比较简单[3]。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下的一个多媒体网络播放器。它的主要功能是对接收到的各种格式的流媒体数据进行解码,同时也完成对接收的网络电台的IP地址进行解析的任务。Mplayer支持mp3、ogg 和wma等多种格式的流媒体数据进行解码,是一个功能十分强大的开源应用软件。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 --host-cc=gcc --disable-dvdread --enable-fbdev --disable-mencoder --disable-mp3lib --enable-mad --enable-libavcodec --enable-live --with-livedir=/live555的目录/ --2>&1 | tee logfile。

  其中,--host-cc=gcc是用来编译一些需要在host上执行的中间文件的,如codec-cfg。--cc=arm-linux-gcc 是用来指定交叉编译工具。关于 --target=arm-armv4l-linux这个参数要注意的是它被分为三部分,第一部分的arm是指arch,这里设定为arm;第二部分的armv4l是指具体的版本;第三部分是系统平台。--enable-static是设定静态连接。--2>&1 | tee logfile意思是将执行的情况在输出到屏幕的同时记录到logfile文件中,在控制台下编译比较有用。

  (4)输入make命令开始编译,编译完成后在顶层目录生成mplayer可执行文件。

  3.3软件主流程图

  系统主流程图如图5所示。系统上电后,bootloader(U-boot)启动,完成硬件设备的初始化, 并引导系统内核启动。系统启动执行初始化任务后,首先配置网络连接,通过运行DHCP Clieant向DHCP Server申请获取本系统IP地址。然后系统自动访问默认的电台服务器,该服务器上有最近更新的世界各地的网络电台的URL地址,系统下载该列表,并更新上次保存的列表。然后系统判断有无按键按下,若有按键按下,系统根据按键选择相应网络电台,若在一定时间段内没有按键按下,系统自动连接电台列表的第一个电台地址,并开始播放该网络电台。同时,LCD将显示电台的有关信息和系统信息。在播放过程中,同样可以根据按键来中断、选择网络电台。

  

 

  图5 系统主流程图

  4 结束语

  本设计基于ARM的嵌入式技术,通过软硬件等三层结构,实现了一个嵌入式网络收音机系统。该系统克服了PC机形式的网络收音机的诸多缺点,是一个极具创新思维的设计。随着网络技术和嵌入式技术的高速发展,该设计具有很好的市场应用前景和科研价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭