Profile - CN035


CN035

基于uclinux的移动盘播放器

福建泉州华侨大学
物理电子学




Advisor

Name: 凌朝东

Members

No. Name English Name
1 郭召波 guozhaobo
2 李永杰 liyongjie
3 林炀炀 linyangyang

 

1. 设计概述

1. 设计前景

随着电子技术的发展,播放器向大容量、高音质、小巧便携、快的方向不断发展。虽然播放器与存储器的一体化设计使播放器便于携带,但与此同时他也带来了很多新的问题,比如存储容量固定,如果想装下更多的歌曲、电影只能去购买新的产品,造成了巨大的浪费;另一方面,一体化又限制了播放器在其他领域的应用,比如车载MP3播放器等不方便移动的播放器。于是将存储器与播放器分离成为播放器的另一发展方向,同时HOST USB的开发也为实时数据采集的移动存储提供了价格低廉的解决方案。同时便携式电子产品在挑战尺寸、容量处理速度的同时,也考验着研发人员的设计能力。过去USB 接口的单向传输方式已很难适应现在便携式电子产品所需要的强大功能,市场需要的是让便携设备直接互连的双向连接方式,各种USB 外设要求不需PC 机的帮助, 彼此间可以直接通信,例如, 数码照相机可以通过USB 接口的打印机打印照片, 或通过U SB 接口的手机发送Email 传送照片。于是USB OTG 技术应运而生, 他的提出解决了USB外设间的直接通信问题。由于各种各样的基于USB 的移动设备都集成USB DEVICE功能角色,故本设计主要通过DE2板上的ISP1362来完成USB HOST技术的设计。
 
本作品的设计意图即在Nios® II处理器的平台上实现一种移动盘播放器功能。要求能够读FAT32格式的移动硬盘或优盘中的音频视频文件和图片文件,并通过相应的算法处理后把音频文件送至音频编解码芯片播放音乐把图片送至VGA显示器或在LCM动态显示。最后可以将这一功能移植到车载系统播放器、MP4播放器、KTV点歌系统等其他电子产品中。
 
2. 适用范围及针对用户群
 
本作品主要适用于各种各样的基于USB的移动设备,如带USB接口的数码相机、MP3、PDA手机、车载系统播放器、MP4播放器、KTV点歌系统等。本产品是普及型的电子产品,主要用户群是普通的电子产品消费者、汽车、娱乐设备、智能家居生产商。比如KTV的点歌系统中兼有USB HOST功能的话,我们就可提前把所要点的歌拷贝到U盘中,到时候只需要将U盘插到点歌系统上,就可以尽情的享受your musics and films了。
 
3. Nios® 软核处理器设计的优势
 
a、与传统的处理器相比,Nios II的可裁减特性极大的方便了用户的设计,我们可以根据需要定制适合自己的系统,Atera 公司为我们提供了丰富的IP 核库,只需要很短的时间就可以把我们的设想实现,缩短开发周期,而且这种可复用技术会大量的节约成本,设计更灵活。
b、Nios II的用户逻辑功能和用户指令突现NiosII 处理器的技术亮点,提供了运算优化、加速的一个有效途径,将处理速度提高到一个相当的层次,易于实现算法的商用化。
c、 Nios II处理器所特有的Avalon交换架构可用来配置系统性能,设计中可以不断调整自己的系统要求,包括多CPU、定制指令集、硬件加速器等,以满足目前和今后的设计性能要求。
d、在单个FPGA中实现处理器、外设、存储器和I/O接口,降低了系统总体成本。
(Revision: 6 / 2008-09-28 09:24:51)

2. 功能描述

    基于NIOS II的移动盘播放器采用SOPC技术,在单块FPGA集成了H.264视频编解码模块、JPEG图片压缩编码、MP3解码等模块。要求能够读FAT32格式的移动硬盘或优盘中的音频视频文件和图片文件,并通过相应的算法处理后把音频文件送至音频编解码芯片播放音乐把图片送至VGA显示器或在LCM动态显示。移动盘播放器在该设计中,要完成移动盘播放器的设计,包括硬件设计、应用软件设计。

   1、我们设计的移动盘播放器能够实现的功能有:

      1)使用DE2开发板上ISP1362的Host口实现USB数据的读取;

         2)采用了uclinux操作系统,实现了多任务操作;

    3) 图片的浏览播放功能:你只要按下多功能相册的按键就可以随时动态浏览您存入U盘  中的BMP和JPG格式图片、相片。 具有音乐特效:我们选择的音乐格式为压缩的G.729 码流,将解码算法嵌入到我们的数字相册中,让大家在浏览照片的同时倾听美妙的音乐。

    4) 影片浏览播放功能:你只要按下影片浏览播放的功能按键就可以随时享受您存入U盘 中的.264格式 的影片、MTV等,不过效果不好。

    5) 歌曲浏览播放功能:能听到歌曲,但声音的效果不够理想。

    6) 附加功能:本设计另外装载有俄罗斯方块、五子棋游戏。

   2、如何实现以上的功能:

      以上所述的功能基本对应了一个设计模块,因此该移动盘播放器的主要功能模块有:

   1)  USB设备的数据采集模块

   2) JPEG图片解码模块

   3) H.264视频解码模块

   4) MP3音频解码模块

 

3、操作界面导航

 

 

 

 

 

4、移动盘播放器的显示效果比较:

 

   1)  电子相册功能效果比较:

                   4.1.1为本设计的图片播放效果,4.1.2为源图片PC机上显示的效果。

 

 

4.1.1本设计的图片播放效果

 

4.1.2源图片在PC机上显示的效果

    2)     视频文件播放效果比较 :

            4.2.1为本设计的视频文件播放效果,图4.2.2为源视频文件PC机上显示的效果。

 

4.2.1本设计的视频文件播放效果

 

 4.2.2源视频文件在PC机上显示的效果

3)     游戏程序的演示 :

             4.3.1和4.3.2为本设计的游戏程序的演示效果

 4.3.1俄罗斯方块游戏的演示

 4.3.2五子棋方块游戏的演示

(Revision: 38 / 2008-10-03 10:46:49)

3. 性能参数 (Final Project Paper)

1、 DE2开发板资源使用情况
      1)   FPGA: Altera Cyclone II 2C35 FPGA;
      2)   动态存储器: 8MB SDRAM;
      3)   静态存储器: 512KB SRAM;
      4)   闪存: 4MB FLASH;
      5)   50MHz、27MHz 晶振;
      6)   开关、按键、 LED、LCD;
      7)   ISP1362的Host口和Kingston U盘2.0G;
      8)  10 位视频D/A 转换器ADV7183;
      9)  XSGA 视频端口和立体声音频CODEC;

2、FPGA资源使用情况
我们此次设计利用FPGA内部资源的情况如下图所示

3、基本的性能指标参数

        1)  LCD显示屏参数:分辨率320*240,5.7’

       2)  图片参数:320*240 JPG和BMP格式

       3)  视频参数:H.264格式,可达到25帧/秒

       4)  音频参数:MP3格式

   

(Revision: 14 / 2008-09-28 13:10:25)

4. 设计结构 (Preliminary Paper)

      系统设计中充分利用了DE2开发板硬件资源。系统主要包括LCM、DE2开发板、移动盘(优盘)、鼠标以及显示器等。其中DE2开发板中使用了FPGA、SDRAM、SRAM、Flash、ADV7181B、XSGA 10位数模转换器、LCD、LED、拨码开关等。本系统主要实现U盘的音频、视频、图形文件的读取,完成音频视频文件的播放和图形的显示功能等。主要通过一下几个部分介绍设计结构。

1.系统框图部分

图4.1设计框图

2.硬件设计部分

图4.2系统硬件结构框图

 

3.软件设计部分
     3.1 软件结构图

4.3.1软件结构图

            3.2软件流程图

图4.3 软件流程图

        其中移动盘(U盘)处理软件流程主要有以下几个部分组成U盘的枚举流程(图4.3.2.1),提取U盘参数(图4.3.2.2),提取FAT表,计算LBA地址等。在此仅列出前两者的软件流程图。

4.3.2.1 U盘的枚举流程

4.3.2.2提取U盘参数

 

 

 

 

 
(Revision: 5 / 2008-09-28 09:51:27)

5. 设计方法 (Final Project Paper)

  本系统设计包括的功能模块有:

            SD卡文件系统模块、鼠标键盘输入模块、音频DA模块、H.264解码模块、JPEG编解码模块、音频解码模块、TCB8000A LCD控制模块、图像处理模块、视频处理模块、音频处理模块。

             整个系统通过SOPC Builder将各个功能模块集成到一个系统下如下图:

 

 

 

1、设计的实现方法与设计实现的步骤:

 

 1)ISP1362的设置

    首先要对USB控制芯片ISP1362进行以下几方面的设置。数据缓冲区的划分ISP1362内部有4KB的数据缓冲区,可划分为4部分以供USB的四种传输方式使用。其中同步传输为双缓冲,占用ISTL0ISTL1,一般二者大小是一样的。中断传输占用INTL。控制传输和块传输共用ATL中断的设定这里的中断并不是指USB中的中断传输,而是传统意义上的硬件中断。

 

 2)读取U盘

    U盘在使用USB传输时使用的是块传输方式, 操作相对比较复杂。除了最基本的USB协议之外,还需要实现许多其它相关协议, 比如Mass StorageBulk-OnlySCSI-2uFI等。但对USB接口芯片ISP1362而言,需要完成的仅是按照协议规定进行数据的传送。相关描述符和设置u盘一般使用Mass Storage协议进行通信。然而在使用Mass Storage协议通信之前,应首先关注传输协议和U盘的端点描述符。Mass Storage中的传输协议常用Bulk-Only,然而在这种传输方式下又可分多种指令集,而u盘常用SCSI指令集。Bulk-Only的传输方式在通信时应首先读取端点描述符来获取Bulk-InBulk-Out这两个端点号,之后才能进行USB的正常通信。

 

  3)MP3解码器

    启动MP3解码器之前应先对提取来的MP3数据的帧头进行解析。根据解析得到的采样率设置音频输出接口的时钟。从U读取的数据也应先存在Altera Cyclone II 2C35 FPGA部开设的数据缓存中.开始播放之前需先通过MP3DATMP3解码器的数据缓存中送满1KB的数据,之后MP3解码器出现缺少数据的状态 ,再将Altera Cyclone II 2C35 FPGA内部数据缓存中的数据写入MP3解码器,当数据缓存巾的数据命部用完后,就应立刘再次读取U盘.如此往复直到整个MP3文件都播放完。

 

   4) JPEG编解码器

       该模块在系统中的作用主要在于对图片格式的转化。JPEG编码和解码的软件设计流程图如下:

        (1) 编码程序流程图5.4.1

     

5.4.1

        (2) 解码程序流程如图5.4.2

图5.4.2

 

  5)H.264视频解码器

 

    I、视频解码器是系统的核心。如图5.5.1所示,视频解码器由熵解码器、反量化、反离散余弦变换、运动补偿模块和视频帧缓存5个模块组成。

 

  

图5.5.1H.264视频解码模块的结构

 

     解码时,首先对输入码流进行熵解码,然后根据帧的头信息判断帧的类型。对于每个宏块,熵解码后首先经过IQ,再经过IDCT变换得到空间域的值。对于参考帧(R-Frame),由于不需要进行运动补偿,变换后的结果直接输出,同时还要将它存储在视频帧缓存中,留给后面的预测帧(P-Frame)做运动补偿。对于预测帧,先通过熵解码得到运动向量,根据运动向量搜索到相应的参考帧后,再将IDCT变换后的预测差值与之相加,合成最后的预测帧图像。解码后的预测帧同样是一路输出,一路存放于视频帧缓存当中。视频解码如果采用纯软件方式实现,运算量太大,难以满足实时性要求。利用NiosII的自定义指令,将IQ、IDCT和MC这3个主要的计算密集型解码单元用硬件逻辑方式实现,以硬件逻辑的复杂性换取解码的实时性。

 

   II、YUV-RGB变换器
       解码器解码得到的YUV格式图像不适合直接用于LCD显示。要在LCD上显示解码得到的图象必须将YUV格式的图像转换为RGB格式,两者的转换关系如下:
R=1.164(Y-16)+1.569(V-128)
G=1.164(Y-16)+0.813(V-128)+0.391(U-128)
B=1.164(Y-16)+2.018(U-128)
YUV到RGB格式的转换是一个很占用CPU资源的过程。本系统以查表的方式,采用硬件逻辑实现该转换。 


     
III、LCD控制模块
      标准VGA LCD显示模块(640×480,60 Hz)是一种逐行扫描设备。这种扫描是顺序的,下一个扫描点能够预知,从而可以将需要送出的像素信息排成一行,看作一个数据流(Streaming)。借助于NiosII的Avalon流模式外设的设计方法,可以实现一个Avalon流模式的LCD控制器。利用DMA控制器在流模式的LCD控制器和系统SDRAM之间建立一条DMA传送通道,由硬件完成像素信息的读取和送出。NiosII只需要操作SDRAM中的相应区域就可完成显示图像的更新。

    IV、视频解码模块的硬件结构如图5.5.2

 

 图5.5.2视频解码模块的硬件结构

               视频模块的软件流程如图5.5.3

5.5.3视频解码软件流程

 

2、如何体现SOPC概念:

       SOPC概念就是片上可编程系统,系统的外设与CPU都是利用IP核来搭建的,这个系统是可剪裁的,同时也可以加入自主设计的模块。我们的参赛作品里面根据系统的需要,添加了ALTERA公司提供给我们的IP核,如NIOSIITimerSDRAM Controller等,同时还需要完成自定义外设与IP核的设计,如果完成自定义外设与IP核的设计后,整个系统就搭建好了,剩下的任务就是根据系统的功能要求使用NIOS IDE设计工具编写用户程序了,这样大大缩减了产品的开发周期。

 

 

(Revision: 28 / 2008-09-14 22:11:20)

6. 设计特点 (Preliminary Paper)

        1、Linux嵌入式实时操作系统成为本系统各功能模块有序运作的一个重要因素,本设计从系统的角度首次将数据采集、声音与图像处理、发送接收、显示与播放集成到一个系统下,利用NiosCPU与Avalon总线的仲裁机制对系统的实现很关键,要实现播放器各个功能模块的成与运作,引入操作系统,直接使用嵌入到Nios下的操作系统,负责各个功能模块的任务调度,以此来稳定与提高整个系统的性能,简化我们系统的设计。

 
        2、在软件部分,在Nios下成功移植了GUI图形用户界面,人性化的人机交互界面使得本设计更加贴近大众,便于对视频、音频、图形进行管理操作。
 
 
        3、此播放器的的设计实现了嵌入式USB主机系统的构建,对于开发嵌入式USB主机使USB的应用脱离PC机具有普遍意义。此设计的USB Host功能和USB设备本身的Slave功能组成了OTG双模控制功能使便携设备可以实现直接互连的双向连接方式,如数码照相机可以通过USB 接口的打印机打印照片, 或通过U SB 接口的手机发送E mail 传送照片。
 
        4、复杂算法的快速实现。Nios II系列支持使用专用指令,专用指令是用户增加的硬件模块,它增加了算术逻辑单元(ALU)。用户能为系统中使用的每个Nios II处理器创建多达256个专用指令,这使得设计者能够细致地调整系统硬件以满足性能目标。专用指令逻辑和本身Nios II指令相同,能够从多达两个源寄存器取值,可选择将结果写回目标寄存器,这个对于复杂的算法设计特别有用。同时,Nios II系列支持60多个外设选项,开发者能够选择合适的外设,获得最合适的处理器、外设和接口组合,而不必支付根本不使用的硅片功能。
 
        5、利用SOPC技术将CPU、自定义外设、存储器和其他外设与接口等集成到一块FPGA上,实现了系统芯片化设计。这个主要是随着VISI工艺的不断提高,单一芯片内部可以容纳上百万个晶体管,这使得FPGA芯片能实现功能也越来越强,同时也实现了系统集成。
(Revision: 3 / 2008-06-13 11:14:45)

7. 总结 (Final Project Paper)

         SOPC作为一种灵活可配置的SOC解决方案,为我们产品的开发提供了很多帮助,缩短的设计开发周期,编程灵活的FPGA为功能的实现提供便利,ALTERA 提供的IP核让我们不用对每个功能模块都自行设计,而只需调用IP即可实现。

        设计期间,我们对NIOS和LINUX有了个全新的认识,区别以往的CPU硬核,作为可配置的软核处理器,它很好的融合了FPGA技术、嵌入式概念和SOPC实现。不仅在单块芯片上实现一个嵌入式系统,而且还可裁减、可升级、软硬件可编程,将当前的电子产品开发主流趋势融为一体。

 在短短两个月里,我们的工作组一直都潜心研究设计我们的作品,从查找资料、阅读资料,再到对总体设计进行规划;从硬件模块的设计、自定义功能模块的设计、开发板硬件接口的研究、整个SOPC系统的搭建,都有着很好的分工合作,体现了很好的团队精神。
 
 设计作品虽然还算完美,还有很多功能模块没有得到很好的实现,但ALTERA 提出的整个设计理念已使我们的对整个系统有了把握,它使我们设计开发作品有了信心,这也是我们选择ALTERA 的原因,ALTERA 优势也就此体现。
 
比赛虽然暂时告一段落,但是我们的比赛团队并没有停止设计研究,我们还在继续着比赛作品的设计,因为我们现在的作品还没有完全达到我们的设计要求,但是我们对每个模块都做了具体的设计规划与解决方案的论证,我们有信心最终把我们的比赛作品更加完善。
  
在这里要感谢ALTERA公司为我们提供这个比赛,使我们得到了难得的锻炼机会,同时也向为这次比赛付出辛勤汗水的全体嵌入式实验室的师兄、师弟表示感谢
(Revision: 9 / 2008-09-12 08:25:12)