三、最新的NIOSII硬件控制系統(tǒng)
DC2000系統(tǒng)采用并行硬件系統(tǒng),這樣很大程度提高了系統(tǒng)數(shù)據(jù)處理速度,但并行處理,就意味著很多器件同時工作,增加了系統(tǒng)元件個數(shù),這樣,所有器件的同時統(tǒng)一控制,就成為重要問題。對于工控機而言,只有一個CPU進行核心運算,數(shù)據(jù)是串行處理的,因此配置一套接口,就可以控制所有的設(shè)備,而DC2000需要用一個高速控制器同時控制多于32個其他部件,同時又要能靈活的協(xié)調(diào)各部分順序運行。為解決此問題,我們選用了基于FPGA的高速軟內(nèi)核NiosII。
NiosII處理器是Altera公司為其FPGA產(chǎn)品配套開發(fā)的軟核CPU。在邏輯功能上,它們是32位的精簡指令集CPU;在實現(xiàn)方式上,它們是在FPGA上通過編程的方式實現(xiàn)的,這也是與傳統(tǒng)的CPU的一個根本的差別。NiosII的總線采用了哈佛結(jié)構(gòu),在很大程度上提高了系統(tǒng)的處理速度。由于系統(tǒng)的總線控制器是在FPGA中實現(xiàn)的,可以進行靈活的配置,在某些外設(shè)需要具有馮諾依曼特性時又可以把兩套總線合二為一,從而在局部實現(xiàn)馮諾依曼結(jié)構(gòu),這樣就使得系統(tǒng)總線兼有哈佛結(jié)的高效率與馮諾依曼結(jié)構(gòu)的靈活性。NiosII系統(tǒng)總線自動對不同時鐘域進行協(xié)調(diào),可以使掛在總線上的組件工作在不同的主頻下,使系統(tǒng)更為靈活。
DC2000使用一片F(xiàn)PGA,內(nèi)嵌NiosII軟內(nèi)核,成為系統(tǒng)核心控制器。在這片F(xiàn)PGA上,還編程實現(xiàn)了64個外圍通信控制模塊,為系統(tǒng)提供64個可同時工作的基于LVDS的高速接口,與全部系統(tǒng)其他器件進行高速通信。系統(tǒng)工作時,數(shù)據(jù)計算FPGA陣列、輸入輸出端口、系統(tǒng)面板、紅外接收器、網(wǎng)絡(luò)端口、RS232控制口等元件向主控FPGA發(fā)送狀態(tài)信息和請求指令。軟核的外圍通信控制模塊先預(yù)處理這些信息,將其最主要的內(nèi)容交給內(nèi)核,其他附屬信息不需要經(jīng)過主控制程序,由外圍器件自行應(yīng)答。主控程序是在內(nèi)核上運行的并行流水線流程控制程序,它負責(zé)整臺機器的正常順序工作和非常狀態(tài)處理。程序根據(jù)用戶指令和系統(tǒng)當前狀態(tài),向外圍模塊批量發(fā)送簡單控制指令。由外圍模塊編譯指令,通過LVDS高速串行口發(fā)送給系統(tǒng)其他設(shè)備。
DC2000使用基于FPGA的NiosII軟核和并行外圍通信控制模塊,提高了整臺機器的信息處理性能,將復(fù)雜的并行控制簡單化;用一個芯片實現(xiàn)全部控制,編程調(diào)試簡單方便,易于升級。