国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于SOPC的液晶屏接口組件設(shè)計

發(fā)布時間:2010-7-31 19:54    發(fā)布者:lavida
關(guān)鍵詞: SoPC , 接口組件 , 液晶屏
1 引言

傳統(tǒng)的外設(shè)操作使用I/O接口方式,在硬件工程中,需要設(shè)計與外設(shè)相連的I/O接口,在軟件工程中,需要用戶編寫I/O接口程序?qū)ν庠O(shè)進(jìn)行初始化,設(shè)置相應(yīng)的外設(shè)寄存器,這樣的工作在每次新建一個工程后,都得重復(fù)進(jìn)行,因此增加了開發(fā)的成本。  

利用Altera公司提供的Component Editor工具可以設(shè)計符合時序要求的外設(shè)接口,并且可以將用戶開發(fā)驅(qū)動程序與Nios II HAL(硬件抽象層)系統(tǒng)庫集成在一起,形成Nios II的接口組件,在系統(tǒng)生成的時候,對外設(shè)進(jìn)行初始化設(shè)置。這樣在建立新工程時,只需將接口組件添加到系統(tǒng)就可以了,對組件的訪問也變得輕松,使得代碼可重復(fù)利用。  

Nios II HAL系統(tǒng)庫是一個輕量級實時環(huán)境,提供一個組件驅(qū)動接口,使得程序與底層硬件通信。HAL API(應(yīng)用程序接口)與ANSI C標(biāo)準(zhǔn)庫集成在一起,允許用戶通過類C庫函數(shù)訪問設(shè)備和文件,例如printf()、fopen()和fwrite()等,這樣其他開發(fā)者無需知道底層硬件結(jié)構(gòu)就可以對組件進(jìn)行操作。  

2 硬件設(shè)計

在SOPC Builder中打開Component Editor,在HDL Files標(biāo)簽下添加硬件描述語言編寫的文件,將其設(shè)定為頂層模塊,該文件描述了組件與Avalon總線的接口以及組件與液晶屏的接口,系統(tǒng)自動對文件進(jìn)行分析和模擬。  

點擊Signals標(biāo)簽,系統(tǒng)自動讀取硬件描述語言文件中的信號,用戶只需設(shè)置接口信號和信號類型。接口信號包括主端信號和從端信號,主端信號與Avalon總線相連,包括iDATA、iADDRESS、iWR_N和iCS_N等,信號類型依次為writedata、address、write_n和chipselect_n等,從端信號與LCD相連,包括LCD_DATA、LCD_ADDRESS、LCD_RD_N、LCD_WR_N和LCD_CS_N等,信號類型均為export。  
從端信號與主端信號的連接用硬件描述語言描述:  

assign LCD_DATA = iDATA;  
assign LCD_ADDRESS = iADDRESS;  
assign LCD_RD_N = 1;  
assign LCD_WR_N = iWR_N;  
assign LCD_CS_N = iCS_N;  

由于始終對液晶屏進(jìn)行寫操作,不進(jìn)行讀操作,所以信號LCD_RD_N置1。  

點擊Interfaces標(biāo)簽,將接口設(shè)置為從類型,地址選擇Registers類型,Avalon Slave Timing可以設(shè)置接口的時序,如圖1所示。   

  
圖1 液晶屏寫時序  

點擊SW Files標(biāo)簽,添加系統(tǒng)所需要的文件,包括兩個頭文件,一個C文件,選擇文件類型,將它們包含在不同的文件夾下,這樣就可以通過標(biāo)準(zhǔn)的C語言函數(shù)來訪問組件了。  

最后一步點擊Component Wizard,為組件取名,點擊Finish完成設(shè)計。  

3 軟件設(shè)計

組件生成后,組件文件夾的結(jié)構(gòu)如圖2所示。   

  
圖2 液晶屏接口組件  

lcd_3224\inc文件夾下包含_regs.h文件,該文件定義硬件接口,例如:  
#define IOWR_ LCD_DATA(base, data) IOWR(base, 0, data)  
寫參數(shù)有三個,base為組件的基地址,0表示地址偏移量,data為要寫入的數(shù)據(jù),重新定義后在源代碼中可以使用自定義的名字對組件進(jìn)行操作。  

lcd_3224\hdl文件夾下包含.v文件,該文件描述組件的接口信號。  

lcd_3224\HAL\inc文件夾下包含.h文件,該文件描述組件的結(jié)構(gòu)、函數(shù)聲明和驅(qū)動程序與標(biāo)準(zhǔn)C函數(shù)的接口等,示例如下:  

#include "sys/alt_dev.h" //包含定義組件結(jié)構(gòu)的頭文件  
typedef struct alt_LCD_dev alt_LCD_dev; //定義組件結(jié)構(gòu)  
struct alt_LCD_dev  
{  
alt_dev dev;  
int base;  
};  
……  
void alt_lcd_init(alt_LCD_dev * dev); //聲明初始化函數(shù)  
int? alt_lcd_write(alt_fd * fd, const char* ptr, int len); //聲明寫函數(shù)  
……  
#define ALTERA_AVALON_LCD_INSTANCE(name, device)  
static alt_LCD_dev device =  
{  
{  
ALT_LLIST_ENTRY,  
NAME##_NAME,  
NULL, /* open */ //fopen可以訪問lcd  
NULL, /* close */

NULL, /* read */  
alt_lcd_write, //fprintf將調(diào)用寫函數(shù)訪問液晶屏  
NULL, /* lseek */  
NULL, /* fstat */  
NULL, /* ioctl */  
},  
name##_BASE  
}  

lcd_3224\HAL\src文件夾下包含源代碼,mk文件是自動生成的,源代碼主要包括初始化程序、.h文件所聲明的alt_lcd_write和一些子程序,例如:  

static void lcd_write_data(alt_LCD_dev * dev, unsigned char data) //子程序  
{  
unsigned int base = dev->base; //基地址由SOPC Builder自動生成  
IOWR_ LCD_DATA(base, data); //訪問底層硬件  
}  

初始化程序和寫函數(shù)調(diào)用這些子程序完成對組件的初始化和各種操作。  

4 應(yīng)用

根據(jù)液晶屏的功能及所使用的開發(fā)板,應(yīng)用系統(tǒng)的硬件結(jié)構(gòu)框圖如圖3所示。  
  
  
圖3 硬件結(jié)構(gòu)框圖  

在SOPC Builder中添加組件生成硬件系統(tǒng),將結(jié)果下載到開發(fā)板。打開Nios II IDE創(chuàng)建軟件工程,進(jìn)行軟件的編寫,其中部分程序如下:  

#include   
int main(void)  
{  
FILE * fd;  
fd = fopen(/dev/lcd”, “w”); //lcd為SOPC Builder中的名字  
if(fd)  
{  
fprintf(fd, “parameter”); //調(diào)用alt_lcd_write  
fclose(fd);  
}  
……  
return 0;  
}  

通過標(biāo)準(zhǔn)C函數(shù)訪問液晶屏,程序編寫簡單,可以顯示各種圖像及字符。如果還有特殊要求,用戶可以繼續(xù)在驅(qū)動程序中添加需要的功能。

5 總結(jié)

本文詳細(xì)介紹了液晶屏接口組件的設(shè)計方法,核心部分是硬件描述語言文件的編寫、時序的設(shè)計以及驅(qū)動程序的編寫。調(diào)試成功后,可以把組件文件夾放到系統(tǒng)組件文件夾下,這樣就可以重復(fù)使用。對于應(yīng)用程序開發(fā)者,不用了解硬件結(jié)構(gòu)就可以使用標(biāo)準(zhǔn)C函數(shù)操作組件,使得開發(fā)簡便快捷,節(jié)省了時間和成本,是一種高效、靈活和低成本的開發(fā)方法。  

本文作者創(chuàng)新點:和傳統(tǒng)的外設(shè)接口方式相比,接口組件的使用極大地方便了接口的硬件和軟件設(shè)計,是高效靈活的接口方式。
本文地址:http://m.qingdxww.cn/thread-18146-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 你仿真過嗎?使用免費的MPLAB Mindi模擬仿真器降低設(shè)計風(fēng)險
  • Cortex-M4外設(shè) —— TC&TCC結(jié)合事件系統(tǒng)&DMA優(yōu)化任務(wù)培訓(xùn)教程
  • 利用模擬開發(fā)工具生態(tài)系統(tǒng)進(jìn)行安全電路設(shè)計
  • 我們是Microchip
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美国产偷亚洲清高 | 亚洲韩国日本欧美一区二区三区 | 国产视频综合 | 黄页视频大全 | 欧美黑人激情性久久 | 最新理论手机免费看片 | 久草一区 | 精品免费久久久久国产一区 | 欧美成人免费午夜影视 | 九九热精品视频在线观看 | 在线免费观看欧美大片 | 天天色踪合 | 国产成人免费在线 | 亚洲男人的天堂在线 | 视频久久久 | 四虎成人免费视频 | 欧美在线观看视频网站 | 黄色在线视频播放 | 99色视频| 天堂男人www| 女奥特曼苍月战士未删减在线 | 欧美日本一道道一区二区三 | 亚洲一区欧美一区 | 免费精品国偷自产在线读大二 | 青青青久热国产精品视频 | a一级日本特黄aaa大片 | 欧美成人午夜做受视频 | 男人香蕉好大好爽视频 | 特级做a爰片毛片免费看 | 国产在线91精品入口 | 岛国在线免费 | 欧美激情hd| 久久精品国产清高在天天线 | 美日韩毛片 | 亚洲手机在线观看 | 亚洲国产成人精品青青草原100 | 国产欧美亚洲精品第一页青草 | 欧美一区二区三区在线视频 | 欧美色婷婷 | 日本高清中文字幕一区二区三区a | 免费视频国产 |