案例基于SOPC的家庭网关平台

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1基于SOPC的家庭网关平台的构建1随着芯片技术、计算机技术、网络技术的发展,数字家庭网络已经成了一个热门话题,要实现数字家庭网络,主要牵涉到两个关键技术:一是家庭组网,二是家庭网关。家庭网关,一方面接收外部的消息,经过过滤和处理,安全有效地送入家庭网络内部,另一方面,它与家庭内部设备打交道,控制家电设备。可以说,它既是家庭网络的中央枢纽,又是沟通家庭内外的桥梁。从技术角度讲,它既要实现与网络内部设备通信的接口,又要实现接入外网的接口。如何选择成本低、兼容性强、效率高的技术是实现家庭网关的一个课题。2设计方案家庭网关最重要的功能就是沟通内外网。一方面要实现与外部网络主要是因特网的通信,要求可以接收外部网络的命令以及将内部设备状态或请求发送到外部网络,另一方面要与家庭内部设备通信,要求可以查询家电状态,控制家电设备和回应家电设备请求。这样,家庭网关的设计主要有三个关键点:(1)选择什么技术实现家庭组网。(2)选择什么技术实现家庭宽带接入。(3)采用什么软硬件开发平台。对于家庭网关软硬件平台,目前家庭网关的设计主要采用三种方2式:(1)利用数字机顶盒;(2)利用嵌入式系统开发,如ARM、MIPS、PowerPC等微处理器;(3)利用SOC设计的电子系统。数字机顶盒功能比较单一,外围接口只支持有限的几个协议,并且其中的微处理器和外围接口都已经固定,很难进行接口扩展或者更改底层协议;嵌入式系统虽然可以定制,但是一旦设计开发完成就难以更改,并且由于其逐条取指顺序执行,网关的速度就比较慢,并且嵌入式系统的开发周期也比较长;SOC虽然靠全硬件并行执行,但也是一旦设计完成就无法更改硬件电路,使得扩展性很差。目前新兴的SOPC技术就可以很好地弥补上述三者的缺点。SOPC技术是一种特殊的嵌入式系统:首先它是SOC,即由单个芯片完成整个系统的主要功能;其次,它是可编程系统,具有可编程系统的可裁减、可扩充、可升级的灵活性,具备软硬件在系统可编程功能。利用SOPC技术实现家庭网关软硬件平台,就既可以实现嵌入式软件的强大功能,也可像SOC那样依靠硬件提高处理速度,并且由于FPGA的可编程特性,要更改协议或者扩展外围接口都很容易实现。33网关模型采用蓝牙技术和SOPC技术构建的家庭网关平台,其框图:图1数字家庭网关框图各模块功能说明如下:嵌入式微处理器模块:该模块包含NIOSII微处理器内核和各种外设接口,由FPGA来实现,可以运行家庭网关的底层操作系统、驱动及上层应用软件,实现网关要求的功能。主内存模块:提供嵌入式微处理器运行时的数据及程序存储,由于FPGA内部存储器容量比较小,要保证网关应用程序的运行必须外接存储器。海量存储器模块:保存网关的一些硬件配置文件,启动文件,以便网关重启时可以回到重启前的设置,另外存储一些维护、管理方面的信息,也可作硬盘用。以太网通信模块:提供接入到Internet外部网的接口,使得网嵌入式微处理器模块(FPGA)调试下载模块蓝牙通信模块以太网通信模块主内存模块海量存储器模块微处理器外设模块4关可以远程通信。蓝牙通信模块:连接内网中的蓝牙设备,使得可以与家庭内部设备通信、查看设备状态、控制设备运行。微处理器外设模块:包括常用微处理器外设,LED、数码管、键盘、LCD、串口、USB口、PS/2口、扬声器、VGA接口等,用来本地控制网关设备,以及以后系统扩展。配置下载模块:用来在产品开发阶段调试系统设计,开发完成后下载FPGA配置文件及程序代码。4硬件平台的构建网关硬件平台的构建主要包括芯片选型、NIOSII微处理器系统的SOPC设计,以及FPGA硬件电路图的QuartusII设计。1)处理器芯片选型(1)FPGA:CycloneII系列的EP2C5;(2)配置芯片:EPCS1(1Mbits);(3)8MbyteSDRAM:SAMSUNGKS641632H-UC75;(4)2MbytesFLASH:AM29LV160DB-90EC;(5)I2CEEPROM:AT24xx;(6)50MHz晶振;(7)2个LED指示灯;(8)两个电源稳压芯片AMS1117-3.3V和AMS1117-ADJ分别产生1.2V和3.3V电源。5实验板包含了常用外设,有按键、数码管、串口、USB口、LCD接口、VGA接口、PS/2接口和蜂鸣器,这样只要将核心板和实验板相连接,锁定好相应管脚,就可以满足NIOSII微处理器系统的基本运行需要了。另外,出于网关本地显示的需要,本文选用了金鹏电子有限公司的OCM128x64系列图形点阵液晶显示模块。2)蓝牙通信模块,采用爱立信的ROK101007蓝牙模块,蓝牙模块提供了USB、RS232和PCM语音三个接口供主机与其连接,可采用RS232接口与主机相连。这样,NIOSII微处理器就可以通过HCI层控制蓝牙模块,从而实现与其他蓝牙家电的通信。3)以太网通信模块,采用的是与FPGA/SOPC接口兼容的10M以太网扩展模块,如RELTEK公司的RTL8019AS网卡芯片,以及连接网线的RJ45接口,这样NIOSII微处理器就可以控制网卡与外部网通信了。4NIOSII微处理器系统的SOPC设计家庭网关的NIOSII微处理器系统的设计采用QuartusII软件中的SOPC设计工具来实现,其设计框图如图2所示,虚线框中的为用FPGA实现的NIOSII微处理器系统。它包括NIOSII核以及各个外设接口,NIOSII核与外设接口通过AVALON总线相连接,其中NIOSII核和FLASH以及以太网芯片连接时还需要加入AVALON三态总线桥。在对各个模块进行参数设置后,SOPC设计工具就可以自动为这些外设接口分配地址和中断号,如果该外设有需要。最后在SOPC工具中生成系统即可,这样就生成了NIOSII微处理器系统。6SOPC设计框图图2NIOSII微处理器系统NIOS2核蓝牙电平转换接口SDRAMFlash系统ID液晶显示接口FPGA液晶显示屏以太网模块定时器串口UARTAVALON总线AVALON三态总线桥SDRAM接口FLASH接口以太网芯片接口按键接口按键LED接口LED蜂鸣器接口蜂鸣器EPCS配置芯片接口EPCS配置芯片蓝牙模块75FPGA硬件电路图的QuartusII设计完成NIOSII微处理器系统的SOPC设计后,SOPC工具生成的文件包括:(1)SOPCBuilder系统文件.ptf;(2)硬件描述语言文件.v;(3)QuartusII符号模块文件.bsf。如果我们在QuartusII中的顶层实体文件是硬件描述语言格式,就可以使用在硬件描述语言文件中定义的NIOSII实体,若是电路图文件,可以用QuartusII符号模块文件中的符号。如采用第二种方式,在QuartusII顶层电路图中可将NIOSII系统模块添加进去,并加入锁相环模块,该模块主要功能是为NIOSII系统和SDRAM提供稳定的时钟,再加入NIOSII系统外围电路,然后连线和加入引脚,最后编译下载,这样硬件平台的开发完成了。6软件平台的构建网关软件平台的构建可利用ALTERA公司的NIOSIIIDE开发工具来开发。一般的嵌入式系统软件开发针对每一个特定的微处理器都需要从头做起,包括启动代码的编写、底层硬件驱动的实现、如果需要多任务环境的话还要提供操作系统的移植、若要提供网络支持的话需要TCP/IP协议栈的移植,然后才可以进行上层应用程序的开发。ALTERA公司为了方便用户编程和加快应用产品开发速度,在推出其NIOSII微处理核的同时提供了硬件抽象层(HAL)系统库,集成到了NIOSIIIDE中,所以可以利用该系统库快速地构建起网关的8软件平台。1)启动代码的实现启动是指系统上电复位后到运行main()函数前,初始化硬件,构建应用程序运行时环境的过程。NIOSII的HAL系统库提供了crt0.s和alt_main.c两个文件来分别实现CPU的初始化和系统的初始化。应用HAL提供的启动文件,需要在NIOSIIIDE系统库设置中采用默认的链接器设置,那么链接器就会自动链入HAL提供的初始化函数,完成系统的初始化,并最终进入main()程序入口。2)驱动的实现设备的硬件描述文件——system.h每个设备的硬件描述放在名为system.h的系统描述文件中,包括设备名、设备基址、设备中断号和其他设备特有参数。以后要用到该设备,或是编写该设备的驱动程序可以引用该文件中定义的参数。该文件由NIOSIIIDE自动根据硬件信息产生,无须开发人员修改,只要引用其中参数即可。设备的寄存器描述文件——设备名_regs.h当拿到一个具体设备时,设备制造商已经把设备运行的诸多细节封装到设备寄存器中,所以无法直接操作硬件,而是通过读写设备寄存器来间接控制设备,因此,设备的寄存器描述对于驱动程序的开发相当重要。9在HAL系统库中,每个设备的寄存器描述都放在名为设备名_regs.h的文件中,包括设备每个寄存器的地址和读写以及寄存器中的位掩码,开发人员可以根据该寄存器编写设备的驱动程序。设备操作函数文件——设备名.c和设备名.h设备驱动程序的主体部分放在设备名.c文件和设备名.h,其中设备名.h是其头文件定义。基于system.h和设备名_regs.h的基础上,该文件就可以开发某个特定设备的操作函数,如对设备初始化、设备的读写等等。基于HAL的开发中,ALTERA公司约定,设备驱动程序中必须包含设备名_INSTANCE和设备名_INIT两个宏定义,这两个宏定义用来在系统启动时初始化设备,HAL在启动时会自动调用该设备的这两个宏。设备中断处理在嵌入式系统中,与设备驱动程序的交互通常有轮询和中断两种方法,对于像网关之类的要求比较高的嵌入式系统,可采用中断的方法。HAL系统库提供了一些API函数来处理中断,包括中断服务程序注册、开关中断、中断嵌套等,它的中断优先级依次为外部硬件中断、软件陷阱异常、未实现指令异常、其他情况,外部硬件中断又以0号中断的优先级最高。在应用HAL提供的中断API时,只要编写相应中断服务程序ISR并且利用中断注册程序将该ISR注册到HAL中就可以了。通用设备模型10在基于操作系统的设备驱动程序开发中,通常采用设备模型和文件描述符的方法来对设备操作,这样C语言库函数和操作系统就可以像读写文件一样来读写设备了。HAL中,提供了7种通用设备模型:字符型设备、文件子系统、DMA设备、定时器设备、FLASH设备以太网设备。HAL提供了这些模型的设备驱动程序,并且集成到HALAPI、C标准库和操作系统中。对于符合这7种设备模型的设备,开发人员可以直接利用这些驱动程序,对于不符合通用设备模型的设备,需要开发人员另行开发设备驱动程序。设备访问方法在HAL系统库的支持下,访问硬件设备有以下几种方法:(1)调用C标准库函数(2)调用HALAPI函数(3)调用设备驱动程序(4)直接访问设备寄存器。对于符合通用设备模型的设备,一般采用前两种方法,对于不符合的,一般采用后两种方法。113)操作系统的实现NIOSII系统支持μC/OS-II,μcLinux、eCOS等嵌入式操作系统,而ALTERA提供了对μC/OS-II的完整支持。考虑μC/OS-II是一个完整的、可移植、固化和裁剪的强占式内核,至今已经有了上百个成功的商业应用案例,在40多种处理器上成功移植,因此本网关采用μC/OS-II作为操作系统。考虑到系统开销问题,系统的时钟节拍不能太快,需要在SOPC设计阶段把系统的时钟中断频率设为10-20ms左右。启用操作系统方法比较简单,只需要在NIOSIIIDE中的系统库设置中的systemlibrarycontents选项中选择加入μC/OS-II的选项,并且根据应用需要设置RTOSoptions选项中的操作系统配置即可。完成这些配置后,即可开发基于操作系统的应用程序。开发基于μC/OS-II的应用程序步骤如下:(1)包含μC/OS-II的总头文件includes.h;(2)定义各任务栈大小;(3)分配各任务优先级;

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功