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