基于SOPC 技术的嵌入式以太网网络终端

   2024-02-18 互联网980
核心提示:  1 引言  近年来随着Internet网络的快速发展,以太网因其宽带、扩展性强、组网灵活而成为应用最广泛的数据接入网络。以太网

  1 引言

  近年来随着Internet网络的快速发展,以太网因其宽带、扩展性强、组网灵活而成为应用最广泛的数据接入网络。以太网的网络终端设备是网络的重要组成部分,是网络与网外互访信息的协议界面和工作平台。嵌入式以太网网络终端设备采用嵌入式处理器技术,使用嵌入式操作系统,内嵌网络接口和网络通信协,可直接接入以太网。由于嵌入式网络终端设备具有成本低、 体积小、高可靠、微功耗、环境适应能力强等诸多优势,在通信和工业控制等领域正得到日益广泛的应用。本文主要介绍用SOPC技术构建嵌入式以太网网络终端的设计和实践。基于SOPC技术的嵌入式以太网网络终端能够为多种联网应用提供基本的工作平台。

  与当前较为流行的嵌入式处理器如基于 ARM内核的处理器、PowerPC系列处理器等不同,SOPC技术的解决方案是把处理器作为“内核”嵌入到FPGA芯片中,在可编程芯片上实现系统功能。可嵌入的处理器内核有两种:硬核或软核。其中软核因为成本低、可重构性强、功能灵活、适用的FPGA芯片范围广等特点更适合于应用在中小批量生产的差 异化产品中。

  FPGA采用硬件技术处理信号,又可以通过软件反复编程使用,能兼顾速度和灵活性,实时性能可以精确预测和仿真。FPGA 芯片的一个显著优势是具有强大的硬件并行处理能力,这种能力不受处理器架构的限制而只取决于芯片的物理资源。随着深亚微米半导体技术的进步,目前FPGA 单片所含的逻辑门和片上存储器的容量发展很快,百万门级的可编程逻辑芯片已成为寻常产品。因此在一般算法复杂度的多路信号处理(通常语音通信和工业控制均 可归入该范围)中,FPGA比DSP更能胜任工作,而且并行处理的路数越多,这个优势越突出。NIos是Altera公司开发的一种软核处理器。应用 SOPC技术把Nios配置进FPGA芯片后,网络终端备不再需要外部处理器,用单一FPGA芯片就可以实现以前需要FPGA+CPU才能完成的功能。

  2  网络终端的总体设计

  基于SOPC技术的嵌入式以太网网络终端的硬件和固件部分由带Nios软核CPU的FPGA芯片、外部数据存储器 FlashRAM和SDRAM、带AD和DA变换电路的模拟信号处理模块、RS-232串行通信电路、以太网网络模块及RJ45接口、JTAG接口电路等 组成,见图1。此外还有电源电路及配置电路等,从略。

  图1 网络终端电路模块示意图

  在图1中,FPGA芯片选用Altera公司的Cyclone系列芯片 EP1C6Q240C8,该芯片采用0.13μm的全铜1.5V SRAM工艺制作,具有5980个逻辑单元(LE),92160个RAM比特,两个数字锁相环(PLL),240引脚PQFP封装。

  程 序存储器选用AMD公司的FlashRAM芯片AM29LV017D,存储容量2MByte,擦写次数可达100万次。数据存储器选用Micron公司的 SDRAM芯片MT48LC4M32B2,存储容量16MByte,访问速度5.5ns。使用较大容量的数据存储器主要是为今后试验运行各种不同的嵌入式 操作系统预留空间。

 

  以太网接口芯片采用CS8900A。该芯片是Cirrus Logic公司生产的一种局域网信号处理芯片,内部集成了片上RAM,其模拟前端包括了曼切斯特编解码器、时钟恢复电路、10BASE-T收发器和滤波器及一个AUI口。CS8900A的MAC(媒体访问控制)引擎负责以太网数据帧的发送和接收,检测和处理冲突,生成和检测帧引导头(Preamble), 自动生成和校验CRC(循环冗余校验)码。芯片在网络物理层符合IEEE802.3以太网标准,支持全双工操作。

  A/D和D/A变换器 采用ADI公司的AD73311L芯片。AD73311L具有一个16bit的AD转换通道和一个16bit的D/A转换通道,A/D和D/A转换通道的增益可分别在38dB和21dB范围内编程控制,每一个通道都在声音频带范围内提供70dB的信噪比。采样频率为8kHz~64kHz,可编程控制,采样字长为16位。选用AD73311L是因为该芯片不但可应用于一般模拟信号的A/D和D/A变换,而且能够满足语音信号的前端处理要求,便于今后试验 VoIP功能。

  JTAG接口用于从PC机向FPGA芯片下载配置文件以及调试系统,串口用于连接PC机进行系统的软件调试及在联网应用 中传送信息到外部设备。

  终端的软件部分主要由嵌入式操作系统μC/OSⅡ、网络协议LWIP及应用软件组成。嵌入式操作系统是一种实时的、支持嵌入式应用的操作系统,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议等。与PC操作系统相比较,嵌入式操作系统在系统的 实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。

  当前各种主要的嵌入式操作系统(如 WindowsCE、VxWorks、μC-Linux、μC/OSII等)均在不同程度上支持多种类型的外围硬件设备和多种通信协议,可以有较多的手段实现外围硬件的驱动。完备的操作系统支持很多通信协议,采用操作系统后,可直接调用这些协议实现通信,避免过多的底层编程耗费时间精力,减少出错。

  在 本网络终端中选择μC/OSⅡ作为嵌入式操作系统。μC/OSⅡ是一个相对成熟而且是免费的嵌入式操作系统,适合小型控制系统,具有执行效率高、占用空间 小、实时性能优良等特点。其缺点是对于文件系统及网络的复杂应用等方面的支持逊于商业性的嵌入式操作系统。

  在网络通信软件方面,选择了 LWIP来实现TCP/IP通信。LWIP是瑞士计算机科学院的Adam Dunkels等学者开发的源代码开放的免费TCP/IP协议栈。LWIP既可运行于操作系统上,也可以独立运行。LWIP可以提供类似于 Berkeley Socket套接字的应用程序接口,使用它编写出来的代码兼容性很好,只要稍微修改就可以移植到别的常用操作系统上。因为μC/OSⅡ操作系统没有自带的 TCP/IP协议栈,本网络终端把lwIP移植到μC/OSⅡ操作系统上,使其成为操作系统的网络模块,这样网络通信就可以置于μC/OSⅡ的控制之下。

  3 SOPC的开发流程

  使用软核处理器开发系统有其独特的开发流程。本文所述工作以采用美国Altera公司的软核 处理器Nios CPU为例来进行开发,使用的工具主要是Altera公司的设计软件。这些软件工具包括QuartusⅡ、SOPCBuilder、 GNUProToolkit等。

  QuartusⅡ是Altera公司的FPGA设计软件,具有设计输入、综合、仿真、延时分析、编译、 下载文件以及配置器件等功能。SOPC Builder用于在QuartusⅡ设计平台上进行系统模块的逻辑设计。用SOPC Builder可以进行系统模块硬件设计和底层软件生成。进行硬件模块设计时,SOPC Builder提供图形化配置界面,备有一些常用外设的IP模块,如SDRAM、FlashRAM、UART、Ethernet Interface、Intervaltimer、ParallelI/O等。这些已开发好并已经引入到SOPC Builder环境中的功能模块被称为部件,打开SOPC Builder的图形界面时可以在左边看到这些功能部件。用户还可以用“Interfaceto User Logic”加入自己的外设设计文件,或直接加外设接口。可以采用的外设设计文件是用VHDL或Verilog HDL等描述语言写的.vhd或.v文件、由MAX+plusII生成的EDIF文件、或用QuartusⅡ输入的电原理图。SOPC Builder可以进行系统配置以及生成,系统配置除了对外设设置外还包括启动程序、中断向量表、系统启动地址等的设置。应用软件的设计在Cygwin环 境中使用GNUPro工具包进行,该工具包含有编译、下载软件、以及常用文件的操作命令等,熟悉Cygwin和Linux的开发者很容易使用。SOPC开 发的整个流程如图2所示。

  图2 SOPC开发流程

  进行系统设计时,先在QuartusⅡ中新建一个工程,然后按图2流程进行设 计。图中,第一步是确定CPU,设置CPU是16位还是32位、要不要加硬件乘法指令等,这一步在“Configure Processor”中进行。第二步是选择外围设备比如UART、SDRAM、FlashRAM、Timer以及通用I/O等,加入用户电路模块到系统 中也是在这一步。

 

  第三步是生成,即生成用HDL语言描述的硬件组件以及用于软件开发的SDK。至此的三步都在SOPC Builder中进行。接下来分为硬件设计和软件设计两路。在硬件设计方面,按图2左边所示流程进行片上系统设计、添加用户电路,包括电路联线、芯片选 型、管脚设置等,通过系统综合后编译生成.sof文件,并可根据需要对系统硬件进行功能模拟和时序仿真分析。在软件设计方面,按图2右边所示流程进行软件 设计、编译、链接,这一步的工作环境主要为SOPC Builder的软件开发环境,也被称为Cygnus。编译软件代码用nios-build,简写为nb,用srec-flash来产生从 FlashRAM启动的代码,下载软件到系统中用nios-run,简写为nr。软硬件的设计流程在最后又汇总在一起,将设计好的电路配置文件.sof通 过JTAG下载到Altera FPGA中进行调试。

  4 嵌入式网络终端的设计要点

  4.1 Nios处理器的设计应用

  本网络终端使用32位处理器,通过QuartusII设计平台上的SOPC Builder软件把Nios软核处理器配置到FPGA芯片中。Nios软核能够按照需求配置成16位或者32位的处理器,指令位数是16位。一般来 说,16位处理器做成的


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅