Profile - CN206


CN206

基于Nios II的多媒体自助餐饮系统

北方工业大学
通信工程系


Finals


[print]


Project

Name of Project:基于Nios II的多媒体自助餐饮系统

Contact Information

Name:张佳宁
E-Mail:423586251@qq.com
Telephone:010-88803016
Mobile Phone:15101034691
Mailing Address:北京市石景山区晋元庄路5号北方工业大学九公寓A-1020

Contest Advisor

Name:刘红
E-Mail:lh499@126.com
Telephone:13910982137

Members

No.NameE-MailEnglish Name
1张佳宁423586251@qq.comZhangJianing
2张道宁313785837@qq.comZhangDaoning
3占杨林zyl1120@126.comZhanYanglin

Project Paper - view as Preliminary(2010/06/01), Final(2010/09/18), Draft, Latest

1. 设计概述 (Preliminary Paper)

1.1系统概述

   随着嵌入式技术的飞速发展,嵌入式系统已渗透到人们生活的方方面面,在为人们带来便利的同时还逐渐满足着人们对于高品质生活的追求,本设计所提出的基于NiosII的多媒体自助餐饮系统便是具有该特色的系统。

该系统区别于面向餐厅工作人员的传统的餐饮系统,其面向的是每一个顾客。在每一个餐桌上配备该系统,顾客可以通过触摸屏进行选餐。在触摸屏上根据提示信息进行选择,如查看所选菜品的受欢迎程度的相关信息,如该菜品的历史被点次数以及掌勺厨师的情况(如:哪几个厨师擅长烹饪该菜以及其目前是否正在烹饪该菜等),以便于顾客对是否点选该菜以及由哪个厨师制作该菜做出选择。顾客选餐完成后的订单信息会同时发送至收银台和后厨。而位于收银台的PC会对每一个餐桌发送来的信息进行处理和显示,如向厨房下单和安排服务员前去结账、处理顾客的呼叫需求等。在等待就餐之时还可以充分利用该系统所具有的多媒体休闲娱乐功能进行音乐欣赏等。顾客也可以查看厨房的实时影像信息,达到放心就餐的目的。顾客还可以随时通过该系统进行催菜、缓菜、退菜、加菜、呼叫服务员等操作。另外该系统还是一个广告平台,餐厅可通过客户在该系统投放的广告获取收益。1.1为系统硬件组成图:

  1.1系统硬件组成图

1.2系统的市场需求情况分析

经市场调研,传统的餐饮系统面向的大都是餐厅服务人员,即所有的操作都需经过餐厅服务人员与顾客的详尽交流后完成,顾客的自助性没有得到充分的发挥,而且整个过程效率极低,造成对时间和劳动力的极大浪费。随着人们认识水平的提高,越来越多的人更喜欢自助服务,本系统的产生恰到好处地满足了人们这方面的需求。另外,顾客还可以通过该系统查看后厨的实时影像信息,使其能够放心地就餐。同时,该系统也为人们创造了一个安静的就餐环境,客人所有的需求只需轻点按键即可高效率地获得解决,无需接二连三的大声呼叫餐厅服务人员。

其次,传统餐饮系统面向服务人员的特点也注定其无法满足人们在等餐之余进行休闲娱乐的需求。而该系统所具有的多媒体娱乐功能不仅缓解了人们在等餐之时漫长的感觉而且还能使人们享受到即便是在就餐时也能获得一些有用的信息的星级体验。

另外,该系统特殊的应用环境还使得其完全可以作为一个广告平台,餐厅可以通过客户在其上面投放的广告获取收益。因此,对于餐厅来说,使用该系统只需前期的少量投资即可在为顾客提供星级服务的同时获得更多的收益。而这也是传统的餐饮系统所无法做到的,对于传统的餐饮系统,餐厅需要大量的资金投入却无法利用其获得实际的收益。

综上所述,该系统具有极大的实用性、诱人的商业前景以及强大的市场推广价值。

1.3适用范围和针对用户

     本系统主要针对中高档餐饮场所,其人性化的操作使其适合于众多人群使用。如顾客、餐厅服务人员(如服务员、厨师等)、餐厅管理者、欲在该系统投放广告的商家。

1.4选用Altera器件的原因

    1)本设计具有较大的数据处理量,若使用低端嵌入式设备则无法满足对数据处理的要求,若使用微型计算机则成本过高,而使用Altera器件既能满足对数据处理的要求亦能极大程度地减少产品成本。  

   2)使用Altera器件来进行系统设计能极大地降低设计成本。其高度的灵活性使得我们能方便地把CPU、存储器、输入输出接口、网络接口等各种系统模块集成到一块FPGA上。

   3NiosII使用户可以灵活的定制用户指令和基于Avalon总线的用户外设。SOPC Builder丰富的IP核使用户可以灵活地选择各类外设。

   4NiosII处理器中已包含移植好的MicroC/os操作系统并支持LWIP协议栈,方便用户直接在RTOS上进行系统功能设计与开发以及完成和网络有关的功能设计。

 

(Revision: 4 / 2010-08-26 21:23:07)

2. 功能描述 (Final Project Paper)

 

 

2.1系统基本功能描述

      本系统包括以下五大方面的功能。经营餐厅的商家不仅是该系统的使用者,在使用该系统时还可以获得广告收入。

1) 顾客可以通过触摸屏进行选餐。在触摸屏上根据提示信息进行选择,如查看所选菜品的受欢迎程度的相关信息,如该菜品的历史被点次数以及掌勺厨师的情况(如:哪几个厨师擅长烹饪该菜以及其目前是否正在烹饪该菜等),以便于顾客对是否点选该菜以及由哪个厨师制作该菜做出选择。顾客选餐完成后的订单信息会通过局域网传输到收银台PC机与后厨配备的LCD显示器上。而位于收银台的PC会对每一个餐桌发送来的信息进行处理和显示,如向厨房下单和安排服务员前去结账、处理顾客的呼叫需求等。

2) 顾客在等待就餐之时可以充分利用该系统所具有的多媒体休闲娱乐功能进行音乐欣赏等。

3)顾客可以触摸屏查看由后厨的实时监控摄像头所采集到的菜品的实时制作情况,达到放心就餐的目的。

 4)顾客可以随时通过该系统进行催菜、缓菜、退菜、加菜、呼叫服务员等操作。

 5)餐厅可以通过该系统进行广告招商,获得收益。

2.2系统开发方法

本系统开发采用软、硬件开发方法。本系统功能的实现需要Altera强大的软硬件设计工具和丰富的IP核资源做支持。本系统采用软硬件协同设计方法,使用Quatus IISOPC Builder完成硬件功能描述和综合处理,以MicroC/os实时操作系统为基础利用Nios II IDE进行软件设计和调试,并使用Modelsim等仿真工具进行仿真和验证。

1 硬件开发方法

首先,该系统将一些需要耗费大量CPU机时的模块进行分离,设计了独立的、专门的用户数字处理电路和NIOS II处理器协同配合进行工作,如视频信号的采集、触摸屏的触摸和显示功能的实现都是采用独立的用户电路配合NIOS II处理器完成的,从而在实现功能的前提下大大减少了CPU的工作量,实现了资源的合理利用。同时该系统利用了SOPC Builder中丰富的IP核资源以及方便的定制用户IP核的特点,如Altera为用户提供了可以选择、配置的三种CPU方便了用户根据系统的需要进行选择,该系统根据实际需要选择了NIOS II/FCPU。而该系统用到的音频处理IPAudio_dac_fifo以及网络接口IPDM9000A则是根据DE 2开发板上使用的芯片的类型进行定制的。

其次,该系统需要大量的存储设备,而Altera所提供的开发板则包含SDRAMSRAMFLASHSD卡等存储器和易于存储扩展的I/O接口,这为该系统的设计提供了极大的方便。

    2)软件开发方法

软件设计MicroC/os实时操作系统为基础利用Nios II IDE进行模块化设计和调试。按软件实现的功能分为多个模块进行设计,以加快开发的速度,提高设计的效率。

首先,该系统需要NiosII提供的实时操作系统MicroC/os和丰富的软件接口程序的支持,该系统所涉及到的资源较为庞大,具体表现在硬件设备较为繁杂且需要通信协议的支持。因此,该系统设计使用嵌入式实时操作系统(RTOSMicroC/os,其包含有与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形用户界面、标准化浏览器Browser等多方面的资源,这将为该系统的设计带来极大的方便。另外,其有效的管理复杂的资源的特点以及把硬件虚拟化将硬件开发人员从繁忙的驱动程序移植和维护中解脱出来的优势也为该系统的设计提供极大的方便。

其次,该系统需要网络协议的支持,Altera为开发人员提供的LWIPNiosII端口在保持TCP协议主要功能的基础上减少了对RAM 的占用,非常适合在该系统中使用。

另外,该系统在软件部分主要包括基于LWIPDM9000A网络接口驱动程序和服务程序的设计、SD卡读写程序的设计、音频处理程序的设计等。按模块进行分别设计并使用MicroC/os操作系统适时进行综合,提高了系统工作效率。

 

(Revision: 10 / 2010-08-29 10:57:50)

3. 性能参数 (Final Project Paper)

3.1 总体资源利用情况

  

3.1总体资源利用情况

3.2 LTM显示和触碰模块

        显示和控制模块在本系统中起着至关重要的作用,本系统采用友晶科技的4.3英寸TRDB_LTM便携式触摸屏作为显示和控制装置。其主要参数如下:

工作频率:33.3Mhz

像素:800*480

3.3 D5M视频采集模块

    本系统采用友晶科技的500万像素TRDB_D5M摄像头作为视频采集装置。其主要参数如下:

工作频率:25Mhz

3.4 音频CODEC模块

采样频率:48Khz

3.5 DM9000A模块

   工作频率:25Mhz

   工作模式:16bits模式

3.6 图片参数

    256BMP格式

    位深度:8

  像素:800*480

(Revision: 3 / 2010-08-29 10:59:48)

4. 设计结构 (Preliminary Paper)

4.1系统硬件结构

该系统的硬件结构如下图所示:

       

                                        4.1系统的硬件模块化结构图

 

 

4.2系统工作流程

通过触摸屏实现对系统的控制和图形用户界面的显示,根据界面提示信息对需要的服务进行选择,如音乐欣赏、健康知识等。而用户的点餐情况发送到接入局域网的收银台PC和厨房LCD位于厨房的实时监控摄像头则用于对后厨情况的实时查看。

                     

4.2系统工作流程

 

(Revision: 8 / 2010-08-27 20:12:15)

5. 设计方法 (Final Project Paper)

 5.1概述

     本系统始终贯彻软硬结合的Altera片上系统设计理念,以最小的功耗、最少的逻辑单元的占用、最合理的实现方式为设计目标,使用Quartus II将一些需要耗费大量CPU机时的模块进行分离,设计了独立的、专门的用户数字处理电路和NIOS II处理器协同配合进行工作。同时该系统利用了SOPC Builder中丰富的IP核资源以及方便的定制用户IP核的特点,对SOPC Builder自带IP核进行了合理使用,并根据DE 2开发板上使用的芯片的类型定制了音频处理控制器和DM9000A网络接口控制器。而在软件设计部分,则以Nios II处理器中已移植好的MicroC/os实时操作系统为基础进行设计。完成了基于LWIPDM9000A网络接口驱动程序和服务程序的设计、SD卡读写程序的设计、音频处理程序的设计以及各部分之间在MicroC/os的协同工作的设计等。

5.2系统的硬件设计

5.2.1硬件的总体设计方法

    使用FPGA构建系统,以Nios II 处理器为核心并将一些需要耗费大量CPU机时的模块进行分离,设计独立的、专门的用户数字处理电路和NIOS II处理器协同配合进行工作。

另外该系统还根据实际需要对一些IP核进行了添加和定制,从而大大加快了开发流程。

    本部分将着重对用户自定义逻辑和如何在该系统中使用相关IP核进行介绍。

5.1SOPC Builder 中生成的Nios II系统,其中CPUNIOS II/F型,并添加了AUDIO_DAC_FIFODM9000A 16*2字符型液晶屏等外设。而SD_DATSD_CLKSD_CMD三个1bitPIO用于模拟SD卡的SPI模式以完成SD卡的读操作。

                    5.1使用SOPC Builder 生成的Nios II系统

5.2.2音乐播放模块的设计方法

在该模块中,音乐保存在SD卡中,Nios II处理器从SD卡中读取音乐数据并通过CD音质的音频编解码器WM8731播放音乐。音频编解码器被配置为从模式,需要外部电路为其提供AD转换器串行时钟(BCK)及左右通道时钟(LRCK,如图5.2所示,使用一个音频DAC控制器产生时钟及数据控制信号,然后将这个DAC控制器集成在Avalon总线上,Nios II处理器通过Avalon总线来控制音频DAC控制器。

                   5.2 音频处理模块

     在正常工作时,Nios II处理器不断地检查音频DAC控制器的FIFO存储器是否已满,如果DAC控制器的FIFO存储器未满,则处理器从SD卡中读取512字节的音乐数据然后通过Avalon总线将数据送给FIFO存储器。音频DAC控制器使用48Khz的采样速率向音频编解码器发送数据及时钟控制信号,音频编解码器经处理后输出。

     5.3WM8731I2C总线的时序:

                       5.3  WM8731I2C总线的时序

    而在该模块中,涉及到从SD卡读取数据,由于SD卡既可以工作在高速的四线模式下,也可以用简单的SPI模式代替,经过分析发现该系统中SD卡仅用于存储一些音乐范例,涉及的数据量不大,所以直接利用DE2开发板的插槽,即可以充分利用开发板上的资源,又可以实现系统的功能,故采用SPI模式。

     5.1中显示了SD卡在SPI模式下的引脚定义,只要CSDICLKDO四根就可以操作SD卡。而在该系统中,仅需从SD卡读取数据,故采用31位的PIO模拟SPI模式下的SD卡接口,通过对SD_CLKSD_CMDSD_DAT的控制即可完成对SD卡的读数据操作。而图5.4SD卡读数据时序图。

                     5.1 SD卡信号说明

    

                      5.4 SD卡读数据时序图

 

5.2.3 DM9000A通信模块

DM9000A芯片与IEEE802.3u标准完全兼容,同时也支持全双工传输模式,其共有8位和16位两种接口模式和引脚定义。DE 2 开发板使用的是DM9000A16位模式以及48管脚QFP封装。其控制时钟为25Mhz

                   5.5 DM9000A通信模块

5.2.4  LTM显示和触碰模块

    在该系统中显示和触碰模块起着重要的作用,图形用户界面以及用户对系统的控制都将通过触摸屏实现。TRDB_LTM具有和DE2开发板的硬件接口,很适合在该系统使用。其硬件构成如图5.6所示,主要有三部分构成:LTM触碰面板、AD转换器、40pins的拓展头。可通过3线串行接口与LTM内部的寄存器交换数据来实现显示控制和功能选择,3线串行接口时序如图5.7所示。LTM触碰面板在FPGA提供的控制信号的作用下将图像显示在面板上。AD转换器将触摸点的位置信息转化为数字信息输出到FPGA,FPGA将根据接收到的数据信息控制触碰面板产生相应的动作。

5.6 LTM硬件构成

                       

                                  图5.7 LTM 3线串行接口时序

5.8和图5.9分别为LCD水平信号和垂直信号时序图:

    图5.8 LCD水平信号时序图

                        5.9 LCD垂直信号时序图

5.10AD转换器串行接口时序:

5.10 AD转换器串行接口时序

5.2.5 视频采集与解码模块

    在视频信息采集模块,该系统采用TRDB_D5M摄像头通过I2C模块对其传感器进行配置,为配合采集到的视频信息在LTM上的显示,故使其采集的每一帧视频图像的分辨率为800*480。并经RAWtoRGB转换器将采集到的信号转换为RGB格式,从而在触摸屏上显示。

5.11 视频采集与解码模块

5.2.6 256BMP格式图片解码模块

     本系统采用BMP格式图片作为系统界面使用图片,为节省存储空间、减少系统数据处理量并达到不对界面的美观度造成大的损伤的目的,经分析采用256色位图。下面为对同一张图片保存为16色位图、256色位图和24位真彩色位图三种情况下的对比:

                        5.12 16色位图

                                   图5.13 256色位图

                          图5.14 24位真彩色位图

                               5.2 不同类型位图对比表

图片名称

图片类型

位深

大小

5.12

16色位图

4

562KB

5.13

256色位图

8

1.09MB

5.14

24位真彩色位图

24

3.29MB

由上述对比可知:16色位图占用存储空间虽小但图像色彩失真严重,24位真彩色位图色彩逼真但占用空间确实256色位图的2.992倍,而256色位图色彩于24位相比相差甚微但存储大小仅为其1/3,故本系统采用256色位图,既节省了存储空间又不会对界面的美观度产生大的印象而且还便于系统处理。

    256BMP图片文件的构成为:54bytes文件头 + 256*4bytes 调色板信息 + RGB信息索引号(每一像素点占1byte)。

    调色板(color table)是单色、16色和256色图像文件所特有的,相对应的调色板大小是216256,调色板以4字节为单位,每4个字节存放一个颜色值,图像的数据是指向调色板的索引。每个调色板的大小为4字节,按蓝、绿、红存储一个颜色值。 这样每读出1个像素点的索引数据后只需到调色板查询即可获得其RGB信息,传送至LTM显示模块即可实现对图片的显示。具体关键代码如下,其中FL_DQ为从Flash中读取的某个像素点的颜色索引数据,array[]中存储的是调色板数据,oREDoGREENoBLUE为经查询获得的该像素点颜色的RGB分量值。

oRED   <= array[FL_DQ*4+2];

oGREEN <= array[FL_DQ*4+1];

oBLUE <= array[FL_DQ*4];  

 

5.2.7 四端口SDRAM控制器模块

 

    该系统中图片和视频的显示均需要进行数据缓存,为了充分利用DE 2 开发板上的存储资源,结合本系统的实际特点认为图片和视频的缓存无需同时进行,故仅使用SDRAM作为缓存器既能达到设计目的又可实现对存储资源的充分利用。故在本系统的设计中根据实际需要对友晶科技提供的四端口SDRAM控制器进行了修改,具体方法为引入控制信号video_en实现数据源和时钟源的切换,达到SDRAM既可作为图片缓存又可作为视频缓存的目的。具体代码如下:

assign oWR1_DATA =video_en?{sCCD_R[11:7], sCCD_G[11:6],  sCCD_B[11:7]}:{sRED,sGREEN};

assign oWR2_DATA =video_en?0:{8'h0,sBLUE};

assign oCLK1=video_en?(~CCD_PIXCLK):F_CLK;

assign oCLK2=video_en?(~CCD_PIXCLK):F_CLK;

assign osdram_write=video_en?sCCD_DVAL:sdram_write;

5.3软件系统的设计

5.3.1 MicroC/os

    Nios II IDE中,具有已经移植好的基于Nios II 处理的MicroC/os实时操作系统。本设计的软件设计部分以MicroC/os为基础完成。MicroC/os主要完成socket_taskmusic_task等任务之间的调度。

5.3.2 基于LWIPDM9000A通信模块

  LWIP全称为Lightweight IP TCP/IP stack,是一个轻量级的TCP/IP协议栈,其主要特性是以最小的资源占用实现完整的TCP/IP协议,因此特别适用于嵌入式系统。所以在本系统的软件设计中,我们很方便地将MicroC/Os-IILWIP结合到该系统中,大大减少了系统开发的时间。

网络通信采用DE2板载DM9000A以太网控制器芯片。它集成了介质访问控制子层(MAC)和物理层的功能,它为嵌入式系统实现的以太网连接提供了良好、便捷的解决方案。

5.15  基于LWIPDM9000A通信模块软件结构

完成对LWIP的移植后利用socket API 完成应用程序的设计。在DE 2开发板上实现socket 客户端程序。当需要向服务器发送数据时,建立客户端socket、与服务器连接、传输网络数据、关闭socket,如图5.16所示。而位于收银台PC的服务器socket则在完成初始化后,与固定端口绑定(bind),对端口进行侦听(listen),调用accept等待客户端连接。当客户端发起连接请求时,接受连接,并在完成网络的数据传输后打印结果并返回侦听状态,等待新的连接,如图5.17所示。

   图5.16 客户端socket

   图5.17 服务器端socket

5.3.3音乐播放模块的软件实现

     打开系统后,Nios II处理器从music_cnt口获得曲目编号,不断地检查音频DAC控制器的FIFO存储器是否已满,如果DAC控制器的FIFO存储器未满,则处理器从SD卡中相应位置读取音乐数据然后通过Avalon总线将数据送给音频编解码器经处理后输出,如图5.18所示。

5.18  音乐播放模块流程图

 

(Revision: 9 / 2010-08-29 11:04:35)

6. 设计特点 (Preliminary Paper)

 

该系统作为嵌入式系统具有与单片机、通用计算机相似的结构,但却具有其与众不同的特点。如具有比单片机系统强大的数据处理能力、比通用计算机低的多的成本等。而这些特点的实现都需要Altera器件的支持。

该系统在开发过程中,将一些需要耗费大量CPU机时的模块进行分离,设计了独立的、专门的用户数字处理电路和NIOS II处理器协同配合进行工作。提高了系统的处理速度,具有纯软件系统所无法比拟的优势。Altera人性化的开发工具和合理的开发理念使得这一特点的实现成为可能。

该系统在功能上具有人性化的特点,具有类似系统所不具有的强大的功能,经营餐厅的商家不仅是该系统的使用者,在使用该系统时还可以获得广告收入,其顺应市场需求,具有诱人的商业前景和强大的市场推广价值。

同时Altera器件的使用使得该系统具有低成本、高效率的特点,符合现代化的设计理念,也为其市场推广提供了极大的可能。

 

 

(Revision: 5 / 2010-08-29 11:12:03)

7. 总结 (Final Project Paper)

     首先,感谢Altera公司为我们提供的这次比赛机会。经过一个月的不断努力,我们收获的是使用Altera器件进行电子设计的快感以及很多的开发经验。从一无所知到做出一个具有一定功能的系统,这和Altera为开发人员提供的人性化开发方式无疑有着密不可分的关系。使用FPGA能够使得开发人员的想法很快地获得验证,缩短了开发流程,而SOPC Builder提供了丰富的IP核资源,Nios II IDE则包含着移植好的MicroC/OS实时操作系统和对LWIP的支持,而这一切都为开发者提供了极大的方便,大大缩短了开发周期。

     通过本次设计我们对片上系统的认识大大提高,形成了很多以前根本不具有的概念,而这些概念的形成将会对我们以后的开发产生深远的影响。我们体验到了软硬结合的设计方法的美妙,我们围绕着如何提高CPU的利用率和对CPU机时的合理分配做了很多的尝试,而这些尝试对系统的成型起着重要的作用。

     另外,通过本次竞赛,我们认识到了团队协作的重要性,合理地分配每一个团队成员的任务往往能达到事半功倍的效果。通过无数次的讨论和与老师的交流,系统的轮廓也越来越清晰,而这一次又一次的清晰也促成了系统功能实现上的快速飞跃。诚然,该系统仍存在很多不完善的地方,这与我们目前的认识能力和时间的紧迫性有着一定的关系。还需进一步的领会Altera的开发理念,以做出进一步的完善。

 

(Revision: 6 / 2010-08-29 11:19:22)