Profile - CN043


CN043

一种基于网络的数字系统实验平台

宁波大学
电路与系统






Advisor

Name: 李洪
E-Mail: lihong2@nbu.edu.cn
Telephone: 13738873748

Members

No. Name English Name
1 文雯 wenwen
2 贾丹丹 jiadandan
3 叶兰 yelan

Project Paper

1. 设计概述 (Preliminary Paper)

1、设计意图

随着计算机技术的快速发展,internet网络在世界的迅速普及,internet网络技术已经越来越广泛的应用到科研教学中来,使得不分地域,灵活的共享优质资源的远程网络教学成为教育发展的重要形式。
数字系统设计是高校电子信息类专业实践性极强的一门必修课,主要阐述数字系统设计方法,该课程的实验,往往具有一定的综合性,着重培养学生对数字系统的设计、分析、测试及应用开发的能力,学生在计算机上借助各种EDA工具完成实验项目的方案确定,系统设计、仿真、再将设计好的程序下载至FPGA/CPLD实验系统中,调试、修改设计直至最后完成实验。如果完全在实验室内完成往往耗时太长,但实验过程中又对实验设备硬件依赖性较强,这严重制约了实验室资源的利用。
本作品设计意图即设计一种能支持网络实验的数字系统实验平台,该实验平台除具有常规实验需要的用户可编程目标板(FPGA/CPLD)、数码管、按键、ADDA等实验资源可进行传统实验外,特别的支持网络实验,学生(用户)只需一台能接入internet的计算机,并在其上用QuartusII等软件完成设计、综合、布局布线、编译,仿真,将生成的配置文件通过网络实验系统下载到至实验平台,同时可以远程控制实验设备,进行实验操作,得到实验数据,实时观察到实验结果,克服了传统实验不能远程进行和实验设备不能共享的缺陷,使用户可以进行真正的有实际验证效应的数字系统实验,而不是局限于软件仿真。
其意义在于,把学生从封闭的教学环境中解脱出来,提供一个可以充分发挥自主性、创造性的环境;学生不受时空限制,可根据实际需要,自行确定实验内容,更好的培养学生的实践能力和创新能力;又能够充分利用教学资源,而且高度灵活,不再受传统面对面教学模式显示,节约大量基础设施建设,从根本上促进信息交流、资源共享和科研合作。

2、适用范围及针对用户群

本作品主要适用于各开设电子系统设计、可编程器件及EDA技术类课程的高校。既可使用于各类常规实验课程,或学生创新性实验课程,也可用于电子设计竞赛培训、毕业设计使用等。

3、使用ALTERA NIOS II处理器的优势

1)高度的灵活性,方便的把CPU、存储器、I/O接口、ethernet接口等各种系统模块集成到一块FPGA

2)NIOS II处理器中已包含移植好的ucosii操作系统,方便我们直接在RTOS上进行系统功能设计与开发。

3)丰富的SOPC builder内核,可以灵活的选择各类的外设。NiosII可以灵活的定制基于Avalon的用户外设,也可以方便的定制用户指令。

4)具有多种的调试选择,可以选择基本的JTAG 运行控制,硬件断点,数据触发等,ATLERA还提供了DE2_control_panel等强大的调试工具。

 

 

(Revision: 2 / 2008-05-25 21:16:14)

2. 功能描述 (Final Project Paper)

   本作品是一个以Nios II 软核处理器为核心支持网络实验的数字系统实验平台,学生(用户)只需一台能接入internet的计算机,并在其上用QuartusII等软件完成设计、综合、布局布线、编译,仿真,将生成的配置文件通过远程端客户软件系统下载到至实验平台,同时可以在远程端控制实验设备,进行实验操作,得到实验数据,实时观察到实验结果,克服了传统实验不能远程进行和实验设备不能共享的缺陷,使用户可以进行真正的有实际验证效应的数字系统实验,具有较大的应用前景。系统的主要有以下几个功能:

1)实验平台多模式功能:充分利用了EP2C35丰富的逻辑资源和可编程特性,在不同模式下对各按键输入,数码管显示,与用户可编程目标板的接口的信号和连接等做不同的处理,使得系统在不同模式下对用户呈现不同的电路结构,增强了系统的扩展性适应更多的实验需求。

 

                                                                                                      图1 不同模式下不同的电路结构

 2)可编程器件的远程配置 :此功能可以实现对实验平台上用户可编程目标板的远程PS配置,用户只需要将在QuartusII中设计完成的.rbf文件通过客户端软件上传,通过DE2板上的网络接口接收下载文件并根据PS模式时序要求完成可编程器件配置,这种方式结合了网络实验的特点,降低了硬件开发成本和实现难度,提高了实验系统性能。

              

                       图2 远程客户端下载.rbf文件界面

 3)实时交互远程实验:此功能为本作品的核心,远程用户接入internet通过客户端软件建立与实验平台的TCP/IP通信通道,实验平台接受用户指令,包括模式选择、按键指令、DDS信号选择、时钟信号源选择、测频指令等;运行相应的控制程序,实时回实验数据供用户分析,将实验平台的状态直观的显示用户界面上,包括可编程目标板I/O的状态、LED灯、数码管、DDS信号源,脉冲信号源,测频结果等。

  

                          图3 远程用户端工作界面

(Revision: 4 / 2008-09-11 13:35:50)

3. 性能参数 (Final Project Paper)

 

   本作品设计实验平台充分考虑到实际的实验需要,系统资源丰富,实用性强。系统处理使用NIOSII本身灵活的外围接口,还大量的使用了用户自定义组件。

    使用具有52PIOCyclone II EP2C5用户可编程目标板;

    4种工作模式,分别适用组合电路、时序电路、模拟+数字系统等实验要求,用户远程端/本地均可控;

   8位按键输入,有电平、16进制码、单脉冲模式;用NIOS II通用IO实现,用户远程端/本地可控;

   8位数码管显示,有0~F16进制显示、7段显示模式;用自定义DISPLAY组件完成;

   0.1HZ~100KHZ0~3.3V、三角波、方波、正弦波可调频调幅DDS信号源;用NIOS IISPI接口控制DDS芯片完成,用户远程端可控;

   1HZ~999KHZ的测频模块,32处待测频率源可选;用自定义测频组件完成,用户远程端可控;

   8位串行ADC10位并行DAC;用户远程端可选输入模拟信号,且可观察DAC输出信号;

   232种频率的时钟信号源,使用自定义组件,用户远程端可控;

  可编程目标板PS模式下载:使用PS下载优势在于电路简单,实现方便,但缺点在于不支持JTAG方式,但许多功能如SignalTapIn-System memory editor等都不能用,这也是今后改进的方向之一;

  交互远程实验:使用了TCP/IP通信,在NIOS II 中使用UCOSII 操作系统和LWIP协议栈,测试结果表明,传输速率约为250Kbps,完全可以满足高速传输实验平台状态信息量要求。但上位机软件在大信息量连续长时间接收后会出现缓冲溢出,显示跟不上的情况,这也是今后需要改进的地方 。

  本作品系统使用FPGA资源情况如下:

 

                          图4     FPGA资源情况

 DE2板使用资源:

1) FPGA Altera Cyclone II EP2C35F672C6

2) 动态存储器: 8MB SDRAM

3) 静态存储器: 512KB SRAM

4) Flash: 4MB flash

5) 50MHz 27 MHz  晶振

6) LEDLCD、按键

7) 以太网控制芯片:DM9000A

8) 72个GPIO

 

 

 

 

 

 

(Revision: 2 / 2008-09-10 08:33:53)

4. 设计结构 (Preliminary Paper)

1、设计框图

本实验平台通过以太网接口与实验室服务器链接,接受远程用户(学生)指令,完成相应实验操作,返回实验数据供用户分析,同时,实验平台采用多任务重配置技术,实验主板+可编程目标板的结构,配有两路脉冲信号源、等精度频率计、DDS函数信号发生器等模块,两路32种频率的时钟源,配有ADDA等。不需其他额外的仪器即可完成全部实验,功能强大,通用性强。

该平台体系架构如下图:

 

                                                             实验平台体系架构图                

 
2、硬件设计框图
根据实验平台功能要求分析,本设计以Altera公司的DE2开发板为核心,利用其通用IO扩展外围电路,构架一个基于32位嵌入式软核处理器 NIOS II的片上系统,根据用户远程设置调整实验平台的模式,对按键,数码管,LED灯等功能进行配置,对可编程目标板进行远程配置,同时,控制频率计,函数信号发生器等模块正常工作,将实验结果通过以太网接口传输至远端。在本系统中, NIOS II处理器是整个系统的控制核心,它通过片上系统Avalon总线对各个硬件外设进行操作和交互,进行配置和控制。系统结构图如下:
 

                                                                                         图6系统硬件结构图

3、软件设计流程图

客户端登陆网络实验系统通过互联网与实验平台链接,建立TCP/IP通信,通过标准套字向实验平台发送指令(如配置程序下载、按键、测频等),实验平台对命令解析处理,执行,采集实验平台当前状态,实时将数据传递,并显示在客户端界面上。

 

                  平台软件结构

在实验台端的软件流程图如下:

    

 

                图8  实验平台软件流程图

(Revision: 3 / 2008-09-09 18:12:33)

5. 设计方法 (Final Project Paper)

 

1、硬件设计:  
主要是用SOPC Builder选取合适的CPU、存储器、及外围器件,外围器件包含系统自带的如定时器,SPI接口核等,也包含用户自定义的外设组件,编写HDL代码实现他们的功能并留下与Avalon interface的寄存器接口。本系统中选用全功能型CPU核(NIOS II /f),包含有数码管显示、等精度测频、脉冲信号源、按键信号处理等多个自定义组件,最后生成的NIOS II系统如下图:

                                                          图9  SOPC系统硬件

   系统硬件还包括用FPGA实现的并行逻辑功能模块,如系统的多模式控制模块、数据采集FIFP模块等,与CPU配合共同实现系统功能。

                 

                                            图10 硬件结构框图

2 软件设计    

      主要是针对定制的硬件系统,在其上完成驱动程序和应用程序的开发。使用NIOS II的好处在于NIOS IDE 软件会根据SOPC Builder自动生成定制的HAL(硬件抽象层)系统库,而且还提供一些操作系统的内核,极大的方面我们开发进程。本系统的软件设计主要包括:ucosii操作系统的引入、网络协议栈的实现、网络服务程序。

1)ucosii操作系统
根据网络实验实时性和并发性的特点,为更好的支持TCP/IP运行时的多任务环境的调度,我们选用了占用内存小、实时性和可靠性较高的ucosii操作系统。在NIOS IDE环境中,ucosii的加载十分方便,只需在建立工程是把RTOS中选项选上即可,而且ucosii的内核是在NIOS II 的HAL系统库之上运行,程序对底层硬件的变换不敏感,就不需要考虑因硬件平台改变而与操作系统不匹配的问题。
 在本设计中ucosii主要完成任务的管理和调度,在网络协议栈初始化完成后,使用标准的套接字API创建新任务访问协议栈,并发送和接受数据包。在设计中,使用函数sys_thread_new()创建网络接收recvdata()和发送senddata()任务,它其实是调用ucosii的函数OSTaskCreate()函数的 ,通过创建消息邮箱、信号量、实现任务与任务之间的同步与互斥,保证系统的协调运行。
 
2) LwIP协议栈的实现及DM9000A驱动程序设计
LwIP是TCP/IP协议组的small_footprint实现,它实现了较为完备的IP、ICMP、UDP、TCP、DHCP协议,而且占用较少的系统资源,非常适用于NIOS II这种小型的处理器系统。本系统中选用移植优化的LwIP作为ucosii扩展的网络模块运行,为系统提供给基本的网络通信功能。Atera提供LwIP的NIOS II端口,并包含标准的套接字API,但其网络驱动程序只支持LAN 91C111,我们要做的就模仿此模型,移植优化LwIP协议,并编写一个支持DM9000A网络驱动。
LwIP中可以有多个网络接口,每个网络接口都对应一个netif结构,它包含了相应的网络接口的属性、收发函数等。LwIP的网络驱动有一定的模型, /src/netif/ethernetif.c就是驱动程序模板,LwIP调用netif—>input和netif—>output进行以太网packet的收、发等操作。针对DM9000A芯片,我们编写接口函数如下:
  1. 网络初始化函数:err_t alt_avalon_dm9000a_init(struct netif *netif),主要包括DM9000A芯片复位和初始化内部各寄存器。
  2. 网卡接收函数:void alt_avalon_dm9000a_rx(alt_lwip_dev*dev),由中断程序ISR调用,最终调用dm9000a_input(struct netif *netif)完成以太网数据帧接收。DM9000A接收到的数据包放在接收缓冲区RX-FIFO,该缓冲区是MAC的内部SRAM空间,利用寄存器MRCMox(REG.FOH)和MRCMD(REG.FZH)获得数据包达到的过程信息。
  3. 网卡发送函数:err_t alt_avalon_dm9000a_output(struct netif*netif,struct pbuf*p,struct ip_addr*ipaddr), 主要包括将数据报数据写入DM9000A的TX-FIFO SRAM中,将数据长度写入MDARH和MDARL,发送及发送完毕后检查标志位。
  4. 网络中断处理函数ISR:void alt_avalon_dm9000a_irs(void *context,alt_u32 interrupt),DM9000A的中断原因有6种,进入中断后首先判断是否是接收中断,接着通知数据接收任务,处理接收的数据,再清除中断标志退出中断。
3)网络服务程序:
      在本系统中使用Socket API编写网络服务程序,网络传输的是对实验平台的控制指令和实验平台的状态信息,根据数字系统实验特点可知,虽然要传输的单次状态信息量并不大,但变化快,为满足系统实时性要求,必须保证用户在远程端观看到的情景与真实情景相符。因此,一旦进入服务状态后,系统大部分时间必须运行senddata()任务,尽最大努力的更新发送数据缓存区,从而保证实时性。

 

(Revision: 8 / 2008-09-10 12:27:32)

6. 设计特点 (Preliminary Paper)

     本作品设计思想上充分利用了当前发展迅速的网络,将网络作为信息传播的媒体,针对EDA、可编程器件实验课程特点,提出了一种自身带有网络接入,“能上网”可远程控制的实验设备,专为解决数字系统设计及现代可编程技术等课程的远程实验问题。
      本系统主要有以下特点:
      1)ucosii 操作系统的引入
       Ucosii是一个嵌入式多任务实时操作系统,具有可移植、抢占式、可裁减、实时多任务等特点。NIOS II IDE下已经集成了该操作系统,免去了移植工作,使用非常方便,本系统的软件开发均在NIOS II集成的ucosii操作系统上面完成,充分利用其适合嵌入式的特点,
       2)LwIP协议栈的使用
       Light Weight(轻型)IP协议栈是在保持TCP协议主要功能的基础上减少对RAM 的占用,非常适合在我们的嵌入式系统中使用。Altera提供了LWIP的NiosII端口,包括标准套接字API等,虽然Altera提供的LWIP驱动程序是支持SMSC LAN91C111的,但只需稍加修改就可得到支持DM9000A的驱动。
        3)多种自定制的Avlaon外设的使用
       NIOS II处理器除了可以使用SOPC Builder中提供的外设了,还可以非常方便的使用用户自定义外设,在我们的设计中,多路时钟源,测频,DDS函数信号发生器等均采用这种方法。
         4)多模式功能的实现
       充分利用EP2C35丰富的逻辑资源,根据用户模式选择,在FPGA内部调整按键、指示灯、数码管与可编程目标板的连接关系,使得实验平台在不同模式下对用户呈现不同的电路结构,增加了系统扩展性。多模式能够使用户根据不同需求切换各种的实验电路结构形式,完成更多的实验和开发项目。

(Revision: 2 / 2008-05-25 21:21:22)

7. 总结 (Final Project Paper)

 

通过参加这次Altera公司举办的2008亚洲创新设计大赛,我们接触到了Altera公司针对FPGA提出的SOPC解决方案以及Nios II 软核处理器,使得我们从整体上改变了以往对FPGA的理解,几个月的经历也让我们感触良多。
首先是让我们建立了SOPC系统的概念,让我们的系统设计方案不再拘泥于以前的MCU+FPGA模式,采用了基于NIOS II软核的SOPC系统,既可发挥可编程器件高速并行处理的优势,又可根据实际需要裁减优化处理器,“硬件”的改变变得极其方便。而且NIOS II处理器在系统就像一个核心中心,控制着周围数据流的走向和节拍,虽然NIOSII的系统频率不高,但外部数据流的速度却可以很高,充分发挥了FPGA并行处理的优势。NIOS II还可以使用用户自定义组件和自定义指令,可以把我们能想到的用户逻辑全都做成自定义组件挂载到系统总线接口上,这让开发变得十分灵活。
其次就是理论与实践的结合,在实际动手时会发现理论同实践差距之大,并让我们深刻的体验“书到用时方恨少”;还有就是培养了我们发现问题,解决问题的能力,在整个比赛过程中,我们遇到了大量的问题, 一路跌跌撞撞走来,从最初的遇到问题束手无策,到学会查资料,到论坛请教,到altera寻求技术支持,也让我们结识很多朋友。
最后,感谢Altera为我们提供了宝贵的竞赛机会!
(Revision: 3 / 2008-09-11 13:37:41)