您好、欢迎来到现金彩票网!
当前位置:九乐棋牌游戏下载 > 网络外围设备 >

基于SOPC技术的嵌入式以太网网络终端设备解决方案设计详解

发布时间:2019-06-12 07:40 来源:未知 编辑:admin

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  进行系统设计时,先在QuartusⅡ中新建一个工程,然后按图2流程进行设计。图中,第一步是确定CPU,设置CPU是16位还是32位、要不要加硬件乘法指令等,这一步在“Configure Processor”中进行。第二步是选择外围设备比如、SDRAM、FlashRAM、以及通用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中进行调试。

  本网络终端使用32位处理器,通过QuartusII设计平台上的SOPC Builder软件把Nios软核处理器配置到FPGA芯片中。Nios软核能够按照需求配置成16位或者32位的处理器,指令位数是16位。一般来说,16位处理器做成的系统反应要比32位的快,但32位处理器可管理的资源要比16位多。数据总线、地址总线、寄存器以及算术逻辑单元的位数可根据需要配置成16或32位。寄存器个数也是可以配置的。

  Nios CPU的体系结构有1个通用寄存器组,10个控制寄存器,1个程序寄存器,1个K寄存器。在32位Nios CPU中每个通用寄存器的位宽为32。通用寄存器组中寄存器的数目可以根据需要设置成128、256或512个。某一时刻,Nios可以直接访问(不改变CWP)的通用寄存器共有32个,称为寄存器窗口。组中寄存器的个数被称为窗口的长度,又被称为寄存器窗口的大小,值为32。寄存器窗口有四部分,处于最底端的8个寄存器被称为全局寄存器,分别是%r0~%r7,也称为%g0~%g7;全局寄存器不随寄存器窗口位置的改变而改变,CPU对其随时可以存取。剩下的24个寄存器通过当前寄存器窗口来存取。最上端的8个被称为输入寄存器,紧接着输入寄存器之后的被称为局部寄存器,在局部寄存器和全局寄存器之间的8个寄存器为输出寄存器。

  片上系统包括CPU以及和CPU紧密相连的总线系统和外围硬件等。通过SOPC Builder可以选择和设置片上系统模块的部件,分配和修改系统对各部件的地址以及中断号。

  SOPC Builder为Nios设计了一种特别的总线———Avalon总线。Avalon是一种简单的总线结构,规定了主部件和从部件之间的接口以及部件间通信的时序。Avalon总线由有源逻辑单元构成,用于代替传统板子上的金属线。SOPC Builder根据系统配置生成Avalon总线的.vhd文件,最后由QuartusⅡ根据.vhd文件成片上总线结构。本网络终端片上系统的设置情况可以见图3,该图是SOPC Builder软件的部件设置界面。可以直接在该界面把起始地址和中断号修改成合适的值。

  除了设置具体的部件外,还需要再设置系统的启动地址、中断向量表、程序内存、数据内存、主串口以及辅助串口,见图4。这些设置和软件目标文件的链接过程紧密相关。SOPC Builder将根据这些设置来生成cpu-sdk目录中子目录lib、inc的相关文件。

  设置以太网接口芯片工作于I/O模式。通过对芯片各寄存器的操作可设置网络终端的功能和读取状态信息。CS8900A的主要寄存器有:

  LineCTL:决定CS8900A的基本配置和物理接口,设置初始值为00D3H,选择物理接口为10BASE-T。

  RxCTL:控制CS8900A接收特定数据报,设置RxTCL的初始值为0D05H,接收网络上的广播或目标地址同本地物理地址相同的正确数据报。

  RxCFG:控制CS8900A接收到特定数据报后会引发接收中断,RxCFG可设置为0103H,收到正确数据报时产生接收中断。

  BusCTL:控制芯片的I/O接口操作,设置初始值为8017H,打开CS8900A的中断总控制位。

  TxCMD:发送控制寄存器,如果写入数据00C0H,那么网卡芯片在全部数据写入后开始发送数据。

  TxLength:发送数据长度寄存器,发送数据时,首先写入发送数据长度,然后将数据通过Port0写入芯片。

  系统上电时,首先对CS8900A进行初始化,写寄存器LineCTL、RxCTL、RxCFG、BusCTL。发送数据时, 写控制寄存器TxCMD,并将发送数据长度写入TxLength,然后将数据依次写入Port0口,数据就可以发送出去了。接收到数据时CS8900A将触发中断,在其中断处理程序中可以接收数据并处理。

  网络终端能够采集数字信号和模拟信号,数字信号可直接送入FPGA处理,模拟信号则需通过AD73311L芯片转换为数字信号后送入FPGA处理。AD73311L工作时先进行初始化,设定采样率、输入输出增益等,再让其工作在数据传输模式下就可正常工作。

  AD73311L的数据采用串行方式与FPGA芯片通信,可以减少芯片间的连线。在FPGA内部,要做串行/并行和并行/串行的变换。为了使AD73311L受CPU的控制,在SOPC Builder中通过使用“to ”功能添加了专门用于AD73311L的组件ad/da,并设置相应的管脚与外电路相连。

  和Nios CPU配套的软件开发工具可在cygwin中使用。cygwin是RedHat公司开发的运行于windows平台下的仿linux环境。因此为Nios编写程序并编译链接的过程和通用linux下面的过程很类似。

  软件组成从逻辑上可以分为5部分,其中启动程序Germ Monitor自成一部分,由Altera公司提供。其余4部分由设计者组织并编写修改。基于SOPC技术的结构如图5所示。

  由源代码得到最终可运行文件的过程由一种特殊的文本文件Makefile控制。Makefile文件用于指导源程序文件到目标文件的编译过程以及目标文件链接成可执行文件的过程,因此可以看成是整个软件程序的管理文件。Makefile文件采用文本文件格式,配合Make程序创建最终的应用程序。Makefile文件定义了目标文件(target)和依靠文件之间的依赖关系,以及由依靠文件产生目标文件应该执行的命令。

  整个软件包共有4个Makefile文件。μC/OSⅡ操作系统的Makefile文件位于目录librtos32中,负责编译操作系统代码,最终产生操作系统支持库文件librtos32.a。网络通信协议lwIP部分的Makefile文件位于src目录,负责编译网络支持部分代码,最终生成库文件liblwip.a。网络终端应用软件的Makefile文件位于顶层目录UCOSII-lwip中,它将指导编译器生成库文件liblwipapp.a。主Makefile文件也位于顶层目录中,用于生成最终下载到电路板的可执行程序。

  网络终端采用的启动程序为Nios开发工具包中自带的监控程序Germ Monitor,略做修改。它的代码短小,是一个小型的shell程序,配置在FPGA的片上ROM内,可以在操作系统运行之前启动系统。在配置硬件的时候,设置Nios的启动地址为片上ROM的地址,系统上电复位时将从该地址运行。也可以采用别的启动方式,比如可以直接从Flash RAM驱动。对硬件的初始化检测、硬件外围设备工作状态的设定都可以在启动程序中进行。执行初始化之后,Germ Monitor把放置在Flash RAM中的应用程序加载到SDRAM中,然后跳转到应用程序,即可按设计要求运行以太网网络终端的各项功能。

  经过以上设计,调试除错后,嵌入式以太网终端就能够正常工作了。把两块这样的终端电路板用网线连接到局域网上,分别设定其IP地址,运行应用软件即可实现多种功能。把PC机的串口和网络终端的串口互连,能够从PC机监视终端的工作状态。

  经试验,在这两个终端间成功地实现了语音通信和Telnet数据通信。限于篇幅,这方面的将另文介绍。

  以上的研究试验表明,采用SOPC技术,能够为设计嵌入式以太网网络终端设备提供一种高效、灵活、低成本的解决方法,SOPC技术的多项特点使其成为嵌入式系统的一种富有竞争力的。

  嵌入式数据库不仅在功能概念及系统特点上与传统的数据库有着很大的差别,而且在它的应用方式上也是不同的。...

  如何将构件技术成功地应用到嵌入式操作系统开发中得到越来越多的重视。现有的工作大部分着重于从结构的角度...

  UltraSoC日前宣布其嵌入式分析架构实现了一次重大扩展,支持设计人员和创新者将强大的、由数据驱动...

  嵌入式工业控制机特指深藏于工业系统内部,完成一种或多种特定工业任务的计算机。一个成功的工控机要具有开...

  普通的单片机主要用作程序存贮器就是FLASH,也就是替代以前的ROM,最大的优点是降低了芯片的成本并...

  随着USB技术的发展,优盘在PC机系统上已得到广泛的应用,基本上取代了软盘,PC机系统可以实现从优盘...

  嵌入式系统是一个嵌入到对象体系中的专用的计算机系统,主要应用与各种类型的信号处理与控制。当前在国防。...

  TDK集团成员Micronas公司推出新的嵌入式电机控制器HVC 4420F ,产品特色是具有用于驱...

  把API分为驱动层和应用层API,而不是所有程序都调用驱动层API。(整个应用中都调用驱动层API会...

  嵌入式操作系统是ARMCPU的软件基础,从8位/16位单片机发展到以ARMCPU核为代表的32位嵌入...

  嵌入式产品,与普通电子产品一样,开发过程都需要遵循一些基本的流程,都是一个从需求分析到总体设计,详细...

  做应用门槛低,特别是现在的ANDROID,纯JAVA。做应用的发展路径个人认为就是业务纯熟。比如在通...

  TDK集团成员Micronas公司推出新的嵌入式电机控制器HVC 4420F ,产品特色是具有用于驱...

  嵌入式Internet是随着嵌入式系统的广泛应用和计算机网络技术的发展而产生的一种新概念和技术。嵌入...

  当初迁移CSDN的博客到OSCHINA的主要原因是CSDN的博客加载速度慢,而且隔三差五的不能写文章...

  根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监控或者辅助设备、机器和车间运行...

  嵌入式工程师分布在各行各业上面。这其中包括了消费电子、工业电子、汽车电子和军用电子等等。从功能上面看...

  预期原先仅配备在高级汽车中的环景影像(surround view)功能,将会在未来5~6年内被广泛采...

  作为支撑人工智能、物联网和5G 发展,作为连接芯片与应用粘结剂的嵌入式技术也将迎来新的机遇。

  除了智能数字终端领域以外,Linux在移动计算平台、智能工业控制、金融业终端系统,甚至军事领域都有着...

  “我认为中国可能是一个引发点,现在中国嵌入式市场有一个很大的发展,然后辐射到全球的地区。”英特尔首席...

  随着计算机网络技术和电子信息技术的迅猛发展,Internet的普及,接入Internet的非PC设备...

  随着世界经济和我国经济的不断发展,交通运输越来越成为国民经济生活中的一个极其重要、不可缺少的因素,现...

  随着我国城镇化建设进程的加快,城镇的火灾隐患越来越大,每年我国都因为火灾而造成巨大的经济损失。尽管目...

  后PC时代的到来完全依赖于嵌入式技术的诞生与发展,传统的IT设备逐渐转变为嵌入式设备,这是一个大趋势...

  本方法可以让C语言指令进一步接近汇编指令的执行效率,提高单片机、嵌入式系统的速度和稳定性,但编程时应...

  当一个项目做完的时候,如果客户突然又增加需求,增加功能,将导致你的项目周期严重拖延,成本剧烈上升,并...

  设计以MCU为核心的嵌入式系统硬件电路需要根据需求分析进行综合考虑,需要考虑的问题较多,这里给出几个...

  对于嵌入式软件而言,代码尺寸是越小越好。压缩代码以适应受到成本或空间限制的存储子系统已经成为嵌入式系...

  虽然FPGA的传统用户是硬件设计者,但是赛灵思的新型嵌入式设计平台,使得软件开发人员也能够在熟悉的环...

  数字图像处理技术广泛地应用在信息处理领域,如何高效、灵活地将现实世界图像数字化是信息处理的关键技术之...

  本节继续讲嵌入式硬件通信接口协议中的另外一个串行通信接口-SPI。相比于UART串口协议,SPI又有...

  近公司新招了一个做嵌入式软件开发的同事,该同事是从上海的某一个上市公司出来的,因为我们这边人手不够,...

  Linux和C语言有着很深的渊源,因为Linux本身就是用C语言编写的。同时,在Linux操作系统中...

  1、MCU的选择选择 MCU 时要考虑 MCU 所能够完成的功能、MCU 的价格、功耗、供电电压、I...

  政府性基金引路,社会资本跟进,江苏南通新一代信息技术产业链“芯片设计”的“缺环”有望加快补齐。两个月...

  以嵌入式计算机为核心的嵌入式系统(Embedded System)是继IT网络技术之后,又一个新的技...

  进一步的工作包括继续优化其通信性能,或者在其基础之上扩展相关安全应用,包括身份认证系统、入侵检测系统...

  几乎所有的新兴存储器出道时都宣称与CMOS工艺兼容,意思是可以做逻辑工艺的嵌入式存储器。

  从苹果官网和一些网络资料来看,斯鲁吉拥有以色列理工学院的计算机科学学士和硕士学位。担任过以色列IBM...

  接口板与用户模板采用串口连接,使用波特率选择开关可选择指定 的7种波特率(9600、19.2K、 3...

  莱迪思半导体公司(NASDAQ: LSCC),客制化智能互连解决方案市场的领先供应商,宣布推出全新的...

  据悉,衡宇科技于2012年2月创立,可为用户提供应用于通讯、消费电子及数据处理行业的闪存主控芯片产品...

  基于STM平台且满足实时控制要求操作系统,有以下5种可供移植选择。分别为μClinux、μC/OS-...

  ARM7比起ARM9,更适合初学者学习。和ARM7相比,应该说ARM9在性能方面有很大提高,但ARM...

  Cortex-M这类微控制器编程通常采用C代码,那么编程人员如何编写代码才能让C编译器产生高质量底层...

  即使坐在在互联网上最小的设备是黑客试图窃取信息,潜在的目标伪造数据,或者损坏或禁用该设备本身。在人们...

  我们知道要入门嵌入式,进行嵌入式的学习,尤其是未来想要从事嵌入式硬件相关的工作,但是做嵌入式并不是只...

  嵌入式设计是个庞大的工程,硬件电路设计方面这几个要点需要格外注意。嵌入式的硬件构架中CPU是系统的灵...

  在嵌入式软件开发过程中,一般来说,花在测试和花在编码的时间比为3:1(实际上可能更多)。这个比例随着...

  Linux和C语言有着很深的渊源,因为Linux本身就是用C语言编写的。同时,在Linux操作系统中...

  机器人出租车绝对将会在2019年内推出上路。有许多投资方和合资企业都致力于推出这些自动驾驶的车辆,诸...

  Jamison将机器人比作交互式语音应答(IVR)系统。我们已经使用IVR 30年或更长时间了,我...

http://pa305sprints.com/wangluowaiweishebei/135.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有