Nios軟核在CT機掃描系統控制器設計中的應用
1 引言
本文引用地址:http://dyxdggzs.com/article/199820.htm近年來(lái),可編程邏輯器件的發(fā)展,使得SOPC (System On A Programmable Chip,可編程片上系統)成為可能, 即在一塊可編程芯片上實(shí)現整個(gè)系統。Nios是Altera公司研發(fā)的可用于SOPC設計的處理器軟核?;?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/Nios">Nios軟核的SOPC系統,其最大特點(diǎn)就是靈活,能根據自己的需要靈活改動(dòng)Nios的外圍設備,使得硬件利用效率達到最高,同時(shí)他具有ISP(In System Programmable,在系統編程)的功能,可裁減,可擴充,可升級。本文充分利用了Nios系統靈活制定的好處,設計實(shí)現了一套CT機掃描系統控制器。
2 CT掃描系統控制器
CT機是根據不同密度和厚度的物體對X射線(xiàn)的吸收程度不同的原理,通過(guò)計算機成像技術(shù),對病人身體成像的一種醫學(xué)設備。CT機掃描系統由X射線(xiàn)發(fā)生系統,數據采集系統,對準柵三個(gè)子系統組成,如圖1所示。掃描系統由掃描架承載,掃描架是個(gè)旋轉體,掃描系統隨著(zhù)掃描架旋轉,以獲得不同角度下的人體信息,掃描架旋轉一周所得數據可產(chǎn)生圖像。
掃描系統的三部分中,X射線(xiàn)發(fā)生系統產(chǎn)生射線(xiàn),掃描系統控制器通過(guò)CAN總 線(xiàn)和他通信,發(fā)送X射線(xiàn)參數和動(dòng)作指令,同時(shí)接收X射線(xiàn)發(fā)生器的狀態(tài)信息。數據采集系統負責對X射線(xiàn)采樣和傳輸數據,他掃描系統控制器采用RS422總線(xiàn)和其通信,發(fā)送控制指令,并接收指令執行狀態(tài)。同時(shí)有IO接口用作采樣觸發(fā)脈沖和采樣使能。對準柵通過(guò)擋板來(lái)調節X射線(xiàn)的開(kāi)口寬度,擋板由一個(gè)步進(jìn)電機驅動(dòng)。掃描系統控制器接收來(lái)自上級的開(kāi)口寬度指令,然后發(fā)出控制脈沖,控制步進(jìn)電機到達指定位置,通過(guò)編碼器接收步進(jìn)電機轉子位置信號,形成閉環(huán)。
CT掃描系統控制器負責三個(gè)子系統的協(xié)調控制,為掃描系統中設備的通信中心和控制中心。首先他和上級控制單元通信,接收指令和匯報各子系統狀態(tài),其次和各子系統通信,發(fā)送控制指令,并接收子系統的狀態(tài)信息。他根據接收到的控制指令和掃描架的位置信息,控制對準柵到達指定寬度,產(chǎn)生控制X射線(xiàn)發(fā)生和采樣的時(shí)序??梢?jiàn),CT掃描系統控制器包括了實(shí)時(shí)通信、電機控制,時(shí)序控制,是個(gè)多任務(wù)的系統。并且對實(shí)時(shí)性需求也非常高,所有一點(diǎn)時(shí)序發(fā)生偏差,都會(huì )對病人造成不必要的傷害。
本文使用SOPC的方式,設計了以一片FPGA為核心的CT機掃描系統控制器硬件,制定了基于Nios軟核的FPGA系統,然后設計了基于實(shí)時(shí)操作系統Nucleus的應用軟件,實(shí)現了CT機掃描系統控制器的上述功能。
3 基于Nios的硬件設計
本文使用了Altera 公司的FPGA Cyclone EP1C20,他擁有充足的可編程資源來(lái)實(shí)現SOPC。因為系統所有功能均由FPGA實(shí)現,硬件電路除FPGA外只需加上存儲器件和一些物理層接口芯片即可。本文使用了一片8M Byte FLASH、一片16M Byte SDRAM,CAN總線(xiàn)收發(fā)器和RS422總線(xiàn)收發(fā)器等作為FPGA的外圍設備,硬件電路的結構簡(jiǎn)單明了,提高了系統的可靠性。FPGA系統運行時(shí)鐘50MHz,確保了系統的運算速度。
通過(guò)Altera的SOPC Builder軟件包能制定基于Nios軟核的FPGA系統,他提供了一些基本的Nios外設模塊,如UART控制器、定時(shí)器、FLASH控制器、SDRAM控制器等。本文設計的CT掃描系統控制器FPGA內部結構如圖2所示。
Nios是流水線(xiàn)結構的RISC 軟核處理器,他能選擇32位架構或16位架構。本文使用32位架構,并在SOPC Builder中設置了4K Byte數據緩存和指令緩存,以節省CPU讀取數據和指令的時(shí)間,提高系統性能。
由圖2可見(jiàn),Nios軟核通過(guò)AVALON總線(xiàn)和各擴展模塊相連接。AVALON總線(xiàn)是專(zhuān)門(mén)用于Nios連接外設的一種總線(xiàn)結構,他具有分離的地址,數據和控制線(xiàn),并提供動(dòng)態(tài)動(dòng)態(tài)總線(xiàn)寬度調整等功能。Nios軟核為其主設備。
AVALON總線(xiàn)上的從設備有SDRAM控制器,Flash控制器、定時(shí)器、通信接口UART控制器和CAN 控制器。在設計Nios軟核的外設時(shí),采用已有的IP核能有效縮短設計周期,同時(shí)經(jīng)過(guò)充分驗證的IP核也確保了設計的可靠性。本文根據需要采用了三個(gè)UART控制器作為Nios軟核的外設,分別用于和上級單元通信、和數據采集系統通信和調試信息輸出;還使用了CAST公司的IP 核作CAN 控制器,他支持CAN 2.0協(xié)議。
在FPGA片內,使用了4 Kbyte的ROM,此ROM中包含了Altera提供的GERMS Monitor啟動(dòng)引導程式,他能實(shí)現啟動(dòng)引導、程式下載和基本調試功能。在調試中,通過(guò)調試串口和GERMS Monitor通信,將可執行的映象文件下載到SDRAM或FLASH中。
另外,本文根據應用的特別需求設計了自定義模塊??掃描時(shí)序控制模塊和步進(jìn)電機控制模塊。在SOPC系統中,更容易選擇系統功能是由運行于Nios中的軟件實(shí)現,還是使用FPGA硬件實(shí)現,由此能均衡系統軟硬件的功能,使效率達到最高。系統功能用FPGA硬件實(shí)現的優(yōu)勢在于數據的并行處理,實(shí)時(shí)響應非???;而用處理器軟件實(shí)現的優(yōu)勢在于通訊和復雜情況的判斷等。本文中為了提高系統的實(shí)時(shí)性,將步進(jìn)電機控制在FPGA中實(shí)現。步進(jìn)電機控制FPGA模塊如圖3所示。
圖3右邊為AVALON總線(xiàn)接口,由片選,地址線(xiàn)、數據線(xiàn)、讀寫(xiě)使能和中斷信號組成。左邊為FPGA的輸出,即和步進(jìn)電機驅動(dòng)器接口:DIR為步進(jìn)電機運行方向控制,Pulse為步進(jìn)電機的控制脈沖,HOFF為保持信號。下方三個(gè)信號為編碼器的反饋信號,分別是A相脈沖、B相脈沖和初始位置信號。步進(jìn)電機控制模塊接收Nios通過(guò)AVALON總線(xiàn)發(fā)送來(lái)的目標位置信息,然后根據當前位置及目標位置,得到到達目標所需的步進(jìn)電機的脈沖數,發(fā)出相應的脈沖。同時(shí),根據反饋的編碼器信號,解碼得到電機當前位置信息,并判斷步進(jìn)電機運動(dòng)是否達到目標位置,控制任務(wù)是否完成。然后產(chǎn)生中斷,通知 Nios軟核任務(wù)完成情況??梢?jiàn)運行于Nios中的軟件只需將目標位置通知電機控制模塊即可,大大減輕了CPU的負擔。
評論