基于Nios II步進(jìn)電機(jī)控制器IP核的設(shè)計(jì)與實(shí)現(xiàn)
2.1.3 接口模塊
接口模塊作為頂層模塊,為寄存器文件模塊提供了一個(gè)標(biāo)準(zhǔn)的Avalon前端,它使用Avalon必需的信號(hào)來(lái)訪問(wèn)寄存器文件,并且支持任務(wù)邏輯的傳輸類型,負(fù)責(zé)復(fù)位、片選、尋址及對(duì)內(nèi)部寄存器進(jìn)行讀寫等,主要完成從。Nios II處理器接收指令和數(shù)據(jù)。對(duì)于步進(jìn)電機(jī)控制器IP核,用到接口模塊信號(hào)有:clk,reset,chipselect,address,write,writedata信號(hào)。
2.2 軟件設(shè)計(jì)
軟件設(shè)計(jì)包括寄存器頭文件、驅(qū)動(dòng)軟件的設(shè)計(jì)。
2.2.1 寄存器頭文件
寄存器頭文件定義了外設(shè)的底層硬件訪問(wèn)接口信息,程序員只需使用定義與該頭文件的宏來(lái)操作外設(shè),其好處在于使應(yīng)用程序獨(dú)立于底層硬件。設(shè)計(jì)首先創(chuàng)建一個(gè)寄存器頭文件ahera_avalon_stepping_regs.h,它的功能用于描述步進(jìn)電機(jī)控制IP核設(shè)備的3個(gè)寄存器。
2.2.2 驅(qū)動(dòng)軟件
驅(qū)動(dòng)軟件包括ahera_avalon_stepping_routines.h和altera_avalon_stepping_routines.c文件。altera_avalon_stepping_routin es.h定義了驅(qū)動(dòng)函數(shù)的原型及常量。其函數(shù)定義語(yǔ)句為:
int altera_avalon_stepping_init(unsigned int address,unsigned int data1,unsigned int data2,unsigned int data3,int error);
int ltera_avalon_stepping_enable(unsigned int address);
int tera_avalon_stepping_disable(unsigned int address);
3 生成IP核
將軟硬件文件編譯完畢后,就需要在SOPC Builder軟件中利用Component Editor生成工具封裝成自定義組件。設(shè)置好HDL files、Signa ls、Interface以及SW files選項(xiàng)后,生成的IP核便成功設(shè)置在組件框內(nèi)。利用此IP核即可與其他IP核聯(lián)合搭建構(gòu)成一個(gè)步進(jìn)電機(jī)嵌入式控制系統(tǒng)。整個(gè)系統(tǒng)結(jié)構(gòu)圖如圖5所示。
4 結(jié)束語(yǔ)
提出的基于Nios II的步進(jìn)電機(jī)控制器IP核設(shè)計(jì)采用的軟件平臺(tái)是Quartus II6.0和Nios II IDE6.0,硬件平臺(tái)采用康芯公司的SOPC實(shí)驗(yàn)系統(tǒng),步進(jìn)電機(jī)控制IP核的占用資源為20%,它可以移值到所有AItera公司支持SOPC技術(shù)的芯片上。采用SOPC技術(shù)設(shè)計(jì)的自定義步進(jìn)電機(jī)控制IP核,在提高效率、縮短開發(fā)周期的前提下,可以滿足工業(yè)控制場(chǎng)合的需要及開源升級(jí)。
評(píng)論