原创 2007-5-13

2007-5-30 15:39 3290 7 5 分类: FPGA/CPLD

SPI是一个嵌入式系统常用的工业标准串行协议,用来连接为处理器与多个传感器、转换器、存储器和控制设备。SPI核实现SPI协议并提供Avalon接口。


       SPI ClocksclkRate


Sclk的实际频率不可能精确地匹配所希望的时钟频率。可获得的时钟值是:


Avalon系统时钟频率)/[2468。。。]实际获得的频率值小于指定的值。例如,如果系统时钟频率是50MHz,设定值是25MHz,则时钟除数是2,实际sclk的频率可达到精确的25MHz;但若设定值是24MHz,则时钟除数是4,实际的sclk频率变为12.5MHz


锁相环(Phase Locked LoopPLL)提供访问FPGA中片内专用PLL电路的方法。PLL核是由一个altpll Megafunction的实例和一个Avalon从接口组成的。通过该接口可访问核内的状态和控制寄存器,该核把SOPC Builder系统时钟作为其参考输入,创建一个或多个锁相的时钟输出。


多处理器环境可使用具有Avalon接口的mutex核来协调对共享资源的访问。Mutex核提供一个协议来保证对共享资源的所有权的互斥。Mutex核提供一个基于硬件的原子的测试和置为(testandset)操作,允许在多处理器环境下决定哪一个处理器拥有mutesMutex和共享存储器一起可用作附加的处理器之间的协调部件,例如消息箱和软件互斥。


SOPC设计包括以32Nios II软核处理器为核心的嵌入式系统的硬件配置、硬件设计、硬件仿真、软件设计、软件调试等。SOPC系统设计的基本工具软件是:Quartus II,用于完成Nios II系统的综合、硬件优化、适配、编程下载和硬件系统测试;SOPC Builder,是Altera Nios II嵌入式处理器开发软件包,用于实现Nios II系统的配置、生成;ModelSim,用于对SOPC生成的Nios II系统的HDL描述进行系统功能仿真;Matlab/DSP Builder,可生成Nios II系统的硬件加速器,进而为其定制新的指令;Nios II IDE,用于进行软件开发、调试及运行。


与传统的嵌入式系统设计不同,基于Nios IISOPC系统开发分为硬件开发和软件开发两个流程。硬件开发过程包括由用户定制系统硬件的构建,然后由计算机完成硬件系统的生成;软件开发则与传统方式比较接近,在构建的硬件系统之上建立软件设计。


SOPC开发流程比FPGA的开发流程增加了处理器、外设接口的定制步骤以及软件开发的步骤。然而,这些新增加的步骤在SOPC Builder(定制处理器和外设接口)、Nios II IDE(软件集成开发环境)工具的协助下显得十分容易。


设置FPGA与板级描述 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


设置目标FPGA的主要作用就是利用已做好的板级描述进行引脚映射,同时可以给Nios II闪存编程器提供板上Flash存储器的详细情况。


SOPC Builder板级描述包含了带有FPGA的印刷电路板(PCB)的细节。板级描述概述了电路板的底层信息。PCB设计者建立板级描述,其他设计者可以不是板级专家就可以为目标板建立SOPC Builder系统。板级描述允许设计者在硬件环境下创建SOPC Builder设计,即使他们不了解电路板示意图或者不了解Quartus II下任何进行引脚分配。


Altera公司为自己的开发板提供了现成的板级描述。如果用户的目标板是Altera开发板,则用户可以使用目标板所带的板级描述;如果用户使用自己定制的目标板,则需要用户使用SOPC Builder 提供的板级描述编辑器创建板级藐视。


创建板级描述的过程和创建SOPC Builder系统是相互独立的。用户可以创建一个新的SOPC Builder系统而不考虑目标板,也可以创建一个新的板级描述而不考虑目标系统。但是,如果用户想依据特定的目标板建立一个SOPC Builder系统,那么用于首先要创建板级描述。


用户可通过下面2种方式启动板级描述编辑器:


(1)             SOPC Builder窗口的File菜单中,选择New Board Description来创建一个新的板级描述。


(2)             SOPC Builder窗口的File菜单中,选择Edit Board Description来编辑一个当前选择目标板的板级描述。


HAL系统库


HAL系统库是一个简化的运行环境,为底层硬件通信程序提供简单器件驱动接口。HAL应用程序接口(API)和ANSI C标准库集成在一起。HAL API允许用户使用熟悉的C库函数,如printf()fopen()或fwrite()来访问设备和文件。


对于Nios II处理器系统来说,HAL作为一个板级支持包在嵌入式系统中提供了一致的外设接口。SOPCBuilderNios II集成开发环境(IDE)的高度集成允许HAL系统库自动生成。当使用SOPC Builder创建一个硬件系统后,Nios II IDE就可以创建一个典型的HAL系统库来匹配硬件设置。此外,在硬件配置中的改变可以自动传送到HAL设备驱动配置中。而且消除了由于底层硬件微小改变产生的无效错误。


HAL设备驱动抽象在应用程序与设备驱动软件之间提供了一个明显的界限。这个设备驱动抽象提高了不受底层硬件改变的可重用应用程序代码。而且,很容易为与现存外设驱动一致的新硬件外设编写驱动程序。


HAL系统库是一个简化的运行环境,为底层硬件通信程序提供简单器件驱动接口。HAL应用程序接口(API)和ANSI C标准库集成在一起,允许用户使用C库函数来访问设备和文件。


用户应用工程包含开发的所有代码,编译该工程可以产生可执行文件。HAL系统库工程包含涉及处理器硬件接口的所有信息。系统库工程依赖于由SOPC Builder产生的扩展名为.ptfNios II处理器系统。由于该工程的依赖结构,如果SOPCBuilder生成的系统改变(即.ptf文件已修改),则Nios II IDE管理HAL系统库并且修改驱动配置来正确地反映系统硬件。HAL系统库将用户程序与硬件变化分离,这样,用户可以不用考虑自己的程序是否与目标硬件匹配来开发和调试代码。简而言之,基于HAL系统库的程序和目标硬件是同步的。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /3 下一条