本發(fā)明涉及一種高速嵌入式實(shí)時(shí)伺服控制器及其硬件加速方法,屬于高速伺服控制器設(shè)計(jì)技術(shù)領(lǐng)域,可廣泛應(yīng)用于高速氣壓、高速液壓伺服控制器以及常規(guī)伺服控制器的設(shè)計(jì)與應(yīng)用。
背景技術(shù):
伺服控制技術(shù)在氣壓驅(qū)動(dòng)、液壓驅(qū)動(dòng)、振動(dòng)控制技術(shù)方面應(yīng)用廣泛,其關(guān)鍵技術(shù)在于伺服控制器的設(shè)計(jì),伺服控制器又以控制算法穩(wěn)定性及其執(zhí)行的實(shí)時(shí)性作為其性能優(yōu)劣的評價(jià)標(biāo)準(zhǔn)。通常伺服控制器采用集成式總線控制器,如pxi/pxi-e總線控制器,這類控制器基于儀器總線卡模式構(gòu)建,借助rt操作系統(tǒng)以及fpga模塊可實(shí)現(xiàn)實(shí)時(shí)pid伺服控制,但這類系統(tǒng)需借助于pxi機(jī)箱、a/d采集卡、d/a轉(zhuǎn)換卡、fpga高速運(yùn)算卡完成控制器設(shè)計(jì),體積龐大,功耗高,編程復(fù)雜,而且僅適合于地面控制模式,其pid控制環(huán)的運(yùn)行速度通道僅達(dá)到10khz~20khz;對于特殊場合如航空、航天器、導(dǎo)彈等系統(tǒng)的氣壓或液壓驅(qū)動(dòng)伺服控制器,采用pxi總線卡模式設(shè)計(jì)控制器并不適合,只能采用嵌入式伺服控制器。嵌入式伺服控制器集成片上a/d、d/a、cpu、ram存儲(chǔ)器等資源,集成度高,功耗低,優(yōu)越性明顯。但是,常規(guī)嵌入式伺服控制器控制算法采用軟件編程實(shí)現(xiàn),利用cpu逐條取控制指令并執(zhí)行指令、頻繁響應(yīng)a/d、d/a中斷,使得cpu執(zhí)行效率低下,pid控制環(huán)的執(zhí)行速度低下,大量研究表明,制約pid控制環(huán)的執(zhí)行速度高低的關(guān)鍵是算法中的算術(shù)運(yùn)算,采用軟件編碼執(zhí)行的pid相關(guān)算術(shù)運(yùn)算因cpu主頻不同,取指令、執(zhí)行指令的周期長,通常執(zhí)行一次運(yùn)算耗費(fèi)的時(shí)間達(dá)數(shù)百數(shù)千個(gè)時(shí)鐘周期,全系統(tǒng)控制頻率通常只能做到數(shù)百hz左右,尤其對于具有多個(gè)pid環(huán)、多路a/d、d/a的復(fù)雜高速實(shí)時(shí)伺服控制需求,實(shí)現(xiàn)難度較大。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的就在于為了解決上述問題而提供一種高速嵌入式實(shí)時(shí)伺服控制器及其硬件加速方法,采用一種內(nèi)嵌的全硬件執(zhí)行流程實(shí)現(xiàn)伺服控制算法中的所有算術(shù)運(yùn)算,相對以往基于軟件編程實(shí)現(xiàn)的伺服控制算法,可顯著提高控制環(huán)的速度。
本發(fā)明通過以下技術(shù)方案來實(shí)現(xiàn)上述目的:
一種高速嵌入式實(shí)時(shí)伺服控制器,包括niosii軟核處理器、a/d采集芯片、d/a轉(zhuǎn)換芯片、flash存儲(chǔ)器、sdram存儲(chǔ)器、上位機(jī)接口組件、具有加減乘除四種運(yùn)算功能的pid算法算術(shù)運(yùn)算硬核處理器,所述a/d采集芯片連接有a/d采集控制邏輯電路,所述d/a轉(zhuǎn)換芯片連接有d/a轉(zhuǎn)換控制邏輯電路,所述flash存儲(chǔ)器連接有flash接口控制器,所述sdram存儲(chǔ)器連接有sdram控制器,所述niosii軟核處理器、所述pid算法算術(shù)運(yùn)算硬核處理器、所述a/d采集控制邏輯電路、所述d/a轉(zhuǎn)換控制邏輯電路、所述flash接口控制器、所述sdram控制器和所述上位機(jī)接口組件均掛在avalon總線上。
作為本專利選擇的一種技術(shù)方案,所述pid算法算術(shù)運(yùn)算硬核處理器為一個(gè)或多個(gè)。
作為本專利選擇的一種技術(shù)方案,所述pid算法算術(shù)運(yùn)算硬核處理器包括整形數(shù)加法ip核、整形數(shù)減法ip核、整形數(shù)乘法ip核、整形數(shù)除法ip核、浮點(diǎn)數(shù)加法ip核、浮點(diǎn)數(shù)減法ip核、浮點(diǎn)數(shù)乘法ip核、浮點(diǎn)數(shù)除法ip核、與所述整形數(shù)加法ip核連接的整形數(shù)加法avalon總線接口單元、與所述整形數(shù)減法ip核連接的整形數(shù)減法avalon總線接口單元、與所述整形數(shù)乘法ip核連接的整形數(shù)乘法avalon總線接口單元、與所述整形數(shù)除法ip核連接的整形數(shù)除法avalon總線接口單元、與所述浮點(diǎn)數(shù)加法ip核連接的浮點(diǎn)數(shù)加法avalon總線接口單元、與所述浮點(diǎn)數(shù)減法ip核連接的浮點(diǎn)數(shù)減法avalon總線接口單元、與所述浮點(diǎn)數(shù)乘法ip核連接的浮點(diǎn)數(shù)乘法avalon總線接口單元、與所述浮點(diǎn)數(shù)除法ip核連接的浮點(diǎn)數(shù)除法avalon總線接口單元。
作為本專利選擇的一種技術(shù)方案,所述niosii軟核處理器的時(shí)鐘頻率為50mhz~150mhz。
作為本專利選擇的一種技術(shù)方案,所述a/d采集芯片為同步采集芯片或異步采集芯片,所述d/a轉(zhuǎn)換芯片為同步轉(zhuǎn)換芯片或異步轉(zhuǎn)換芯片。
作為本專利選擇的一種技術(shù)方案,所述a/d采集控制邏輯電路具備與avalon總線連接的avalon總線從屬設(shè)備接口和與a/d采集芯片連接的a/d轉(zhuǎn)換時(shí)序邏輯接口,所述d/a轉(zhuǎn)換控制邏輯電路具備與avalon總線連接的avalon總線從屬設(shè)備接口和與d/a轉(zhuǎn)換芯片連接的d/a轉(zhuǎn)換時(shí)序邏輯接口。
作為本專利選擇的一種技術(shù)方案,所述上位機(jī)接口組件為com串口通信組件、usb通信組件、lan通信組件、can總線通信組件中的一種。
作為本專利選擇的一種技術(shù)方案,所述niosii軟核處理器通過所述上位機(jī)接口組件實(shí)現(xiàn)與外部計(jì)算機(jī)的通信,實(shí)現(xiàn)pid控制參數(shù)以及控制過程數(shù)據(jù)的上下位機(jī)傳遞。
根據(jù)上述內(nèi)容得到一種高速嵌入式實(shí)時(shí)伺服控制器的硬件加速方法:
利用niosii軟核處理器對伺服控制p、i、d參數(shù)按照計(jì)算機(jī)整型數(shù)和浮點(diǎn)數(shù)組織形式,采用地址整合方法得到二進(jìn)制浮點(diǎn)數(shù)表現(xiàn)形式;
將過程返回參數(shù)和所得到二進(jìn)制浮點(diǎn)數(shù)表現(xiàn)形式的伺服控制參數(shù)傳遞到外掛在avalon總線上的pid算法算術(shù)運(yùn)算硬核處理器中,并執(zhí)行pid算法加、減、乘、除四則運(yùn)算,其結(jié)果讀入到所述niosii軟核處理器中進(jìn)行處理。
進(jìn)一步地,在數(shù)據(jù)處理過程中利用flash存儲(chǔ)器存儲(chǔ)pid伺服控制程序,利用sdram存儲(chǔ)器存儲(chǔ)pid伺服控制過程數(shù)據(jù)。
本發(fā)明的有益效果在于:
本發(fā)明采用純硬件執(zhí)行所有pid算術(shù)運(yùn)算,實(shí)現(xiàn)過程簡單,計(jì)算過程不需cpu參與,在10余個(gè)時(shí)鐘周期內(nèi)便可完成加、減、乘、除運(yùn)算,顯著提高運(yùn)算的速度。
附圖說明
圖1是本發(fā)明的硬件結(jié)構(gòu)示意框圖;
圖2是本發(fā)明所述算術(shù)運(yùn)算硬核的結(jié)構(gòu)示意框圖;
圖3是的pid算法的pid計(jì)算參數(shù)與計(jì)算結(jié)果的總線傳輸圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步說明:
如圖1所示,本發(fā)明由alterafpga采用sopc構(gòu)建片上嵌入式硬件系統(tǒng),硬件系統(tǒng)包括niosii軟核處理器、a/d采集芯片、d/a轉(zhuǎn)換芯片、flash存儲(chǔ)器、sdram存儲(chǔ)器、上位機(jī)接口組件、具有加減乘除四種運(yùn)算功能的pid算法算術(shù)運(yùn)算硬核處理器,a/d采集芯片連接有a/d采集控制邏輯電路,d/a轉(zhuǎn)換芯片連接有d/a轉(zhuǎn)換控制邏輯電路,flash存儲(chǔ)器連接有flash接口控制器,sdram存儲(chǔ)器連接有sdram控制器,niosii軟核處理器、pid算法算術(shù)運(yùn)算硬核處理器、a/d采集控制邏輯電路、d/a轉(zhuǎn)換控制邏輯電路、flash接口控制器、sdram控制器和上位機(jī)接口組件均掛在avalon總線上,以實(shí)現(xiàn)pid控制算法的全硬件實(shí)現(xiàn),該結(jié)構(gòu)適合于需要高速實(shí)時(shí)嵌入式伺服控制的場合。
如圖2所示,pid算法算術(shù)運(yùn)算硬核處理器的算數(shù)運(yùn)算滿足整型數(shù)加、減、乘、除四則運(yùn)算,單精度、雙精度加、減、乘、除法四則運(yùn)算,它包括整形數(shù)加法ip核、整形數(shù)減法ip核、整形數(shù)乘法ip核、整形數(shù)除法ip核、浮點(diǎn)數(shù)加法ip核、浮點(diǎn)數(shù)減法ip核、浮點(diǎn)數(shù)乘法ip核、浮點(diǎn)數(shù)除法ip核、與整形數(shù)加法ip核連接的整形數(shù)加法avalon總線接口單元、與整形數(shù)減法ip核連接的整形數(shù)減法avalon總線接口單元、與整形數(shù)乘法ip核連接的整形數(shù)乘法avalon總線接口單元、與整形數(shù)除法ip核連接的整形數(shù)除法avalon總線接口單元、與浮點(diǎn)數(shù)加法ip核連接的浮點(diǎn)數(shù)加法avalon總線接口單元、與浮點(diǎn)數(shù)減法ip核連接的浮點(diǎn)數(shù)減法avalon總線接口單元、與浮點(diǎn)數(shù)乘法ip核連接的浮點(diǎn)數(shù)乘法avalon總線接口單元、與浮點(diǎn)數(shù)除法ip核連接的浮點(diǎn)數(shù)除法avalon總線接口單元。
pid算法算術(shù)運(yùn)算硬核處理器包含整型、浮點(diǎn)型四則運(yùn)算功能,在功能實(shí)現(xiàn)方法上,采用了對整型、浮點(diǎn)型加、減、乘、除的ip核例化調(diào)用,并在ip核外部增加avalon總線讀寫接口信號(hào)進(jìn)行ip核的二次封裝,封裝完成后形成獨(dú)立功能組件作為一個(gè)外設(shè)掛在avalon總線上,實(shí)現(xiàn)niosii軟核處理器作為主控設(shè)備通過avalon總線向封裝后的ip算術(shù)運(yùn)算硬核傳遞伺服控制的過程運(yùn)算變量并通過avalon總線直接獲取pid閉環(huán)控制的運(yùn)算結(jié)果。
作為本專利選擇的一種技術(shù)方案,pid算法算術(shù)運(yùn)算硬核處理器為一個(gè)或多個(gè)。根據(jù)伺服控制算法的不同任務(wù)需求,可由單片fpga包含多個(gè)niosii軟核處理器、多片a/d采集芯片和d/a轉(zhuǎn)換芯片、多個(gè)pid算法算術(shù)運(yùn)算硬核處理器,組建多個(gè)pid實(shí)時(shí)控制通道。
作為本專利選擇的一種技術(shù)方案,niosii軟核處理器是通過fpgasopc工具生成的軟核,其時(shí)鐘頻率為50mhz~150mhz。
作為本專利選擇的一種技術(shù)方案,a/d采集芯片為同步采集芯片或異步采集芯片,d/a轉(zhuǎn)換芯片為同步轉(zhuǎn)換芯片或異步轉(zhuǎn)換芯片,具體采用哪種類別的芯片取決于伺服控制的具體需求。
作為本專利選擇的一種技術(shù)方案,a/d采集控制邏輯電路具備與avalon總線連接的avalon總線從屬設(shè)備接口和與a/d采集芯片連接的a/d轉(zhuǎn)換時(shí)序邏輯接口,d/a轉(zhuǎn)換控制邏輯電路具備與avalon總線連接的avalon總線從屬設(shè)備接口和與d/a轉(zhuǎn)換芯片連接的d/a轉(zhuǎn)換時(shí)序邏輯接口。a/d采集控制邏輯電路是采用verilog/vhdl硬件描述語言生成的硬核,該硬核根據(jù)伺服控制器選取的a/d采集芯片不同而進(jìn)行不同的設(shè)計(jì);d/a轉(zhuǎn)換控制邏輯電路是采用verilog/vhdl硬件描述語言生成的硬核,該硬核根據(jù)伺服控制器選取的d/a轉(zhuǎn)換芯片不同而進(jìn)行不同的設(shè)計(jì)。
作為本專利選擇的一種技術(shù)方案,上位機(jī)接口組件為com串口通信組件、usb通信組件、lan通信組件、can總線通信組件中的一種,具體選用哪種取決于伺服控制器與外部計(jì)算機(jī)的通信需求。
作為本專利選擇的一種技術(shù)方案,niosii軟核處理器通過上位機(jī)接口組件實(shí)現(xiàn)與外部計(jì)算機(jī)的通信,實(shí)現(xiàn)pid控制參數(shù)以及控制過程數(shù)據(jù)的上下位機(jī)傳遞。
根據(jù)上述內(nèi)容得到一種高速嵌入式實(shí)時(shí)伺服控制器的硬件加速方法:
1)利用niosii軟核處理器對伺服控制p、i、d參數(shù)按照計(jì)算機(jī)整型數(shù)和浮點(diǎn)數(shù)組織形式,采用地址整合方法得到二進(jìn)制浮點(diǎn)數(shù)表現(xiàn)形式,在本發(fā)明中采用變量的地址與指針相結(jié)合的方法進(jìn)行整型數(shù)、浮點(diǎn)數(shù)到二進(jìn)制數(shù)據(jù)的轉(zhuǎn)換;
2)將過程返回參數(shù)和所得到二進(jìn)制浮點(diǎn)數(shù)表現(xiàn)形式的伺服控制參數(shù)傳遞到外掛在avalon總線上的pid算法算術(shù)運(yùn)算硬核處理器中,并執(zhí)行pid算法加、減、乘、除四則運(yùn)算,其結(jié)果讀入到niosii軟核處理器中進(jìn)行處理。
在步驟2)中,niosii軟核處理器是通過avalon總線將伺服控制器pid運(yùn)算過程參數(shù)傳遞到pid算法算術(shù)運(yùn)算硬核處理器中的整形數(shù)加法ip核、整形數(shù)減法ip核、整形數(shù)乘法ip核、整形數(shù)除法ip核、浮點(diǎn)數(shù)加法ip核、浮點(diǎn)數(shù)減法ip核、浮點(diǎn)數(shù)乘法ip核、浮點(diǎn)數(shù)除法ip核,各ip核將加、減、乘、除硬件運(yùn)算的結(jié)果通過avalon總線回傳到niosii軟核cpu中。
在數(shù)據(jù)處理過程中利用flash存儲(chǔ)器存儲(chǔ)pid伺服控制程序,利用sdram存儲(chǔ)器存儲(chǔ)pid伺服控制過程數(shù)據(jù)。
整個(gè)高速嵌入式實(shí)時(shí)伺服控制器的硬件加速方法是通過nioside環(huán)境的開發(fā)平臺(tái)實(shí)現(xiàn),通過c語言表達(dá),控制算法中的所有運(yùn)算全采用純硬件ip調(diào)用實(shí)現(xiàn)。凡是pid算法所涉及的加、減、乘、除四則運(yùn)算均利用iowr、iord讀寫指令傳遞給avalon總線上的pid算法算術(shù)運(yùn)算硬核處理器執(zhí)行,pid算法程序的pid計(jì)算參數(shù)與計(jì)算結(jié)果的總線傳輸圖如圖3所示。
以上僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍內(nèi)。