欢迎来到天天文库
浏览记录
ID:28183024
大小:133.60 KB
页数:6页
时间:2018-12-07
《基于sopc的接口组件设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于SOPC的液晶屏接口组件设计来源:微计算机信总作者:郭书军侯文杰张延华摘要:本文介绍基于SOPC的液晶屏接口组件的设计方法。利用SOPCBuilder中的组件编辑器(ComponentEditor)实现液晶屏接II设计。文屮系统介绍组件的硬件和软件的设计A法,该方法可将硬件抽象为软件,让开发者不必了解硬件结构就可以使用硬件,以标准C语言函数來操作组件,使用方便,具有灵活性、高效性和低成本的特点。关键字:SOPC:组件编辑器;液晶屏1引言传统的外设操作使用I/O接口方式,在硬件工程中,需要设计与外设相连的I/O接口,在软件工程中,耑要川户编写I/O接L!程序对外设进行初始化,设
2、置相应的外设寄存器,这样的工作在每次新建一个工程后,都得重复进行,因此增加了开发的成本。利用Altera公司提供的ComponentEditor工具可以设计符合时序要求的外设接口,并且可以将川户开发驱动程序与NiosIIHAL(硬件抽象层)系统库集成在•-•起,形成NiosII的接口组件,在系统生成的时候,对外设进行初始化设置。这样在建立新工程时,只需将接口组件添加到系统就可以了,对组件的访问也变得轻松,使得代码可重复利用。NiosIIHAL系统库是一个轻量级实时环境,提供一个组件驱动接U,使得程序与底层硬件通信。HALAPI(应用程序接口)与ANSIC标准库集成在一起,允许用户
3、通过类C库函数访问设备和文件,例如printf()、fopenG和fwriteG等,这样其他开发者无需知道底层硬件结构就可以对组件进行操作。2硬件设计在SOPCBuilder屮打幵ComponentEditor,在HDLFiles标签下添加硬件描述语言编写的文件,将其设定为顶层模块,该文件描述了组件与Avalon总线的接口以及组件与液晶屏的接口,系统自动对文件进行分析和模拟。点击Signals标签,系统自动读取硬件描述语言文件屮的信号,用户只需设置接口信号和信号类型。接口信号包拈主端信号和从端信号,主端信号与Avalon总线相连,包桮旧ATA、iADDRESS、iWR_N和iCS
4、_N等,信号类型依次为writedata、address、write_n和chipselect」!等,从端信号与LCD相连,包括LCD_DATA、LCD_ADDRESS、LCD_RD_N、LCD_WR_N和LCD_CS_N等,信号类型均为export。从端信号与主端信号的连接用硬件描述语言描述.•assignLCD__DATA=:iDATA;assignLCD_.ADDRESS=iADDRESS;assignLCD__RD_N==1;assignLCD__WR_N=:iWR_N;assignLCD__CS_N=:iCS_N;巾于始终对液晶屏进行写操作,不进行读操作,所以信号LCD
5、_RD_N置1。点出Interfaces标签,将接口设置力从戈型,地址选择Registers类型,AvalonSlaveTiming可以设置接口的吋序,如图1所示。elkaddresswritedatawrite_nchipselectJALTXDOX‘•长坊厂LTTTTT^www.5pcai£a.com图1液晶屏写时序点击SWFiles标签,添加系统所需要的文件,包括两个头文件,一个C文件,选择文件类型,将它们包含在不同的文件夹下,这样就可以通过标准的C语言函数来访问组件了。最后一步点击ComponentWizard,为组件取名,点击Finish完成设计。3软件设计组件生成后,
6、组件文件夹的结构如图2所示。
7、&1lcd_3224T-CjHAL包含将器件集成到HAL系统库的软件文件inc包含定义器件驱动的头文件I_jnsrc包含源代码和mk文件—Chdl包含硬件描述i晋言文件—Cjme包含定义器件硬件接口的头文件图2液晶屏接口组件lcd_3224inc文件夹下包含_regs.h文件,该文件定义硬件接U,例如:#defineIOWR_LCD_DATA(base,data)IOWR(base,0,data)写参数有三个,base为组件的基地址,0表示地址偏移量,data为要写入的数据,重新定义后在源代码中可以使川自定义的名字对组件进行操作。lcd_3224
8、hdl文件夹下包含.v文件,该文件描述组件的接口信号。lcd_3224HALinc文件夹下包含.h文件,该文件描述组件的结构、函数声明和驱动程序与标准C函数的接L1等,示例如下:#include*'sys/alt_dev.h"//包含定义组件结构的头文件typedefstructalt_LCD_devalt_LCD_dev;//定义组件结构structalt_LCD_devalt_devdev;intbase;};voidalt_lcd」nit(alt_LCD_dev*dev
此文档下载收益归作者所有