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