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