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