摘要:數據采集系統是CT系統的重要組成部分,由于CT掃描時間短,且掃描信息量大,因此CT數據采集系統工作在較高的頻率,且需要短時間傳輸較大的數據量。本文介紹的醫療CT數據采集系統解決方案采用單片XILINX SPARTAN6完成CT數據采集的主要功能,利用基于IEEE802.3Z的光纖以太網傳輸協議進行數據的傳輸,經實測本采集系統數據可靠性高,誤碼率低,達到了CT數據采集的要求。本文將重點介紹CT數據采集系統的具體實現方式及編碼技巧。本文網絡版地址:http://www.eepw.com.cn/ article/256099.htm
關鍵字:醫療CT;光纖通信;SPARTAN6
DOI: 10.3969/j.issn.1005-5517.2014.7.015
引言
伴隨著科技的飛速發展,人類對醫療衛生的重視程度也越來越高,對醫療器械的現代化程度要求也越來越高,然而作為全球高新技術產業競爭的焦點領域,我國的醫療器械產業發展相對落后,從整個產業鏈來看,我國醫療器械基礎薄弱,缺乏核心競爭力,與歐美等國家差距較大;從整個市場來看,國內醫院的大型醫療器械設備基本被西門子,GE,東芝等大型跨國公司壟斷。
CT:電子計算機X射線斷層掃描技術,由于其較好的成像能力和診斷能力是每個醫院不可缺少的醫療診斷設備。然而長期以來我國的CT系統都主要依靠進口,無自主研發能力。本文提出的一種醫療CT數據采集系統解決方案是目前國內僅有的幾家能夠自主研發CT系統的某公司的核心部分。
1 系統方案
在臨床診斷過程中要求診斷設備對病人的傷害越小越好,CT(計算機X射線斷層掃描技術)采用X線成像原理,要求對病人的輻射劑量越小越好。因此,CT掃描時間極短,單位時間內采集到的數據量大。CT數據采集系統就需要在短時間內將大量數據傳送到數據重建柜進行數據的重建。由于短時間內要進行大量的數據傳輸,因此數據率就大,整個系統的頻率就高。本系統采用XILINX SPRTAN6 LXT系列FPGA進行整體的方案實現,采用源同步LVDS差分信號進行近端數據傳輸,采用自定制光纖協議進行版級之間的數據傳輸,采用基于IEEE802.3Z的標準UDP以太網進行數據的遠距離傳輸。整個系統的主要部分在單塊FPGA內純邏輯實現,不調用軟核,不外掛芯片,功耗較低,頻率高,速度快。本系統的核心模塊包括:源同步模塊,標準以太網模塊和自定義光纖通信模塊(如圖1)。本文重點介紹整個數據采集系統的實現原理及具體方式。
2 源同步模塊
2.1 同步方式的選擇
在數字信號傳輸的過程中,根據數據和時鐘的關系通常可以將系統的同步方式分為三種:系統同步方式,自同步方式和源同步方式。系統同步方式指傳輸數據的雙方工作在同一系統時鐘下,不需要進行復雜的時鐘恢復過程,因此采用系統同步的方式進行數據傳輸實現簡單,但是系統同步不適用于較高數據率的傳輸。自同步方式指在數據發送端經過數據的編碼調制將時鐘嵌入到數據中,在接收端通過CDR電路對時鐘和數據進行再恢復,自同步方式適用于高數據率的遠距離傳輸,但其實現過程較復雜,成本較高。CT數據系統近端的數據傳輸采用源同步方式,源同步指發送端將數據和時鐘對應于某一特定關系進行傳送,在接收端通過接收相應的時鐘對數據進行再恢復。源同步的方式通常采用LVDS低壓差分信號進行數據的傳輸,抗干擾能力較好,數據率最高能夠達到1Gbit/s,滿足近端數據的傳輸要求。
2.2 編碼方式的選擇
在高速數據傳輸的過程中由于數據率較高,為了保證較低的誤碼率,通常需要對數據進行編碼和差錯控制。本系統采用基于IEEE802.3標準的CRC-32編碼及8B10B編碼。在FPGA中,采用并行CRC算法能夠充分提高數據的編碼效率,本系統在采用主頻時鐘125M的情況下,能在僅有32ns的延遲下將一組任意長度的數據進行編碼并傳送。采用串行源同步方式進行數據的傳輸,經過8B10B編碼以后保證了數據的直流平衡,并且能夠利用編碼以后的K碼進行數據幀的識別,有效保證了數據幀的完整性。
2.3 源同步模塊的具體實現
本C T數據采集系統采用SPARTAN6 FPGA進行數據源同步的發送和接收。本小節具體介紹源同步數據的接收部分,數據的發送部分的實現方式基本相同。在源同步的接收端,將IOB配置成雙端模式,通過IOB接收來自發送端的時鐘和數據,將接收到的LVDS雙端信號經過IBUFGDS模塊變為單端信號。由于SPARTAN6的IOB中自帶IDELAY數據延遲模塊和ISERDES數據串并轉換模塊,因此將單端的時鐘信號輸入到IDELAY模塊進行時鐘的延遲控制和 ISERDES串并轉換,然后再將該時鐘通過BUFIO2輸入到BUFPLL進行倍頻得到接收端的快時鐘和供內部使用的慢時鐘。數據的對齊則是通過狀態機控制其IOB中的SERDES模塊和IDELAY模塊,數據的接收是通過BUFPLL得到的快速時鐘,數據的處理是通過BUFPLL得到的慢時鐘。
3 標準以太網幀的實現
3.1 方案論證
傳統的以太網通信通常會有10M,100M,1000M,甚至更高的速率,在CT數據采集卡中,傳統的100M以太網無法滿足要求,必需采用1000M甚至更高的以太網進行數據的傳輸。用FPGA實現以太網最簡單的方法是使用FPGA的軟核或者自帶的硬核,比如通常我們所說的NOISII,EDK,嵌入在FPGA里面的ARM等,甚至我們可以采用傳統的FPGA + ARM的方式來達到我們所要求的設計目標。為了最大限度的降低成本,本設計采用SPARTAN6 LX45T進行數據的采集,在FPGA中實現以太網,最先考慮的是用軟核去實現,軟核實現不需要深入了解底層原理及具體的通信協議,相對簡單。但軟核有個不足,軟核的速率達不到我們的要求,據有關資料顯示,基于spartan6系列的軟核實現以太網,主頻不到100M,通信速率遠遠達不到1000M,因此要在spartan6中實現標準1000M以太網只能采用純邏輯的方式進行數據楨格式的轉換。
3.2 以太網標準及實現手段
傳統的OSI七層體系(如圖2)[4]:應用層,表示層,會話層,運輸層,網絡層,數據鏈路層,物理層;TCP/IP的結構體系分為:應用層,運輸層,網絡層,數據鏈路層和物理層,實現完整的以太網通信必須具備完整的4層結構體系。完整的以太網協議簇龐大,用純邏輯實現整個協議簇將消耗大量的FPGA資源,且工作量大,仿真工作復雜。考慮到CT數據采集的特點,采用點對點的以太網通信并不需要絕對完整TCP/IP協議簇,采用自定制的方式將達到我們的設計要求且實現方便。因此,采用MAC地址固定,IP地址自獲取的方式(接收arp廣播并提取對方IP,將對方IP最后一位加1,設定為FPGA端的IP地址),不另外編寫ICMP等協議,將大大減少項目開發的時間。
對于FPGA底層,采用運輸層接入用戶數據,按照標準以太網形式將數據封裝成完整的UDP數據格式,向下再封裝成IP數據報形式:增加IP數據報的版本號,生存時間,原地址及目的地址等信息,向下再封裝成MAC數據幀,增加數據的MAC地址及CRC校驗等信息。在實現完整的四層以太網的過程中均采用HDL語言進行描述,不調用IPCORE。
為了充分利用FPGA并行處理的優勢,增加數據處理的速率,數據通常采用并行的方式進行打包和編碼。但是光纖通信傳輸的是串行數據,一對,兩條,一收一發的方式。因此,借助于FPGA的ROCKET IO模塊,將并行的數據輸入到FPGA的GTP IP CORE將數據串行化及8B10B編碼等,GTP就相當于傳統意義的PHY,在內部完成了PCS(物理編碼子層)和PMA(物理媒介適配層),從PHY出來的信號直連MDI接入現成的光模塊,光模塊經過光電轉換將電信號轉換成光信號在鏈路中進行傳輸。
4 IEEE802.3z光纖協議的實現
自協商協議:
由于在以太網通信過程中,有10M的、100M、1000M甚至10G的,為了支持多種不同標準的混合通信,IEEE802.3Z提出了一套自協商協議(Auto-nego),通信的雙方通過互發各自的通信能力信息,進行協商,從而達到最佳的通信模式,且只有當自動協商完成以后雙方才能進行通信。自協商通常用于通信速率、流量控制,狀態等信息的交互,其基本單元為一個16bit的寄存器,通過配置這個寄存器達到協商的目的。如下圖所示:rsvd為保留位,默認為0,D5為全雙工標志位,D6為半雙工標志位,為1時有效D7和D8和流量控制相關,RF1、RF2表明通信雙方自協商的結果。D14為應答標志位,NP為下一頁標志位,通常用于協商更為具體的內容,在本數據采集系統中將其置為0(圖3)。
在本系統的設計過程中,由于數據量大,且連續,因此采用傳統的Annex31B標準進行流量控制及重傳基本不可能,數據的可靠性只能靠系統的設計及鏈路的鏈接進行加固,且用FPGA實現流量控制較復雜且需消耗大量的邏輯資源,因此我們不進行流量的控制,數據直接編碼進行實時傳送。又由于上行數據量大,下行數據量較少,因此,上行鏈路采用UDP協議進行以太網格式的傳送,下行鏈路直接用串口替代。這樣做還有一個好處就是將數據和指令進行了完全的分離。具體實現過程如下:
5 實測數據分析
5.1 CT數據采集系統要求
在醫療診斷過程中,尤其是醫療影像成像系統中對診斷設備的成像精度有著較為嚴格的要求,對設備的故障率有著嚴格的控制,在醫療CT中,數據采集系統作為紐帶連接著前端探測器和數據重建柜,其傳輸誤碼率將對整個系統的性能起著關鍵性作用,在實際應用中,探測器離數據重建柜大概有4米左右的距離,單次曝光平均數據率最高達800Mbit/s,每次成像曝光達1000多次,CT數據采集系統要求從探測器接收數據,實時無誤差的傳送到數據重建柜。
5.2 測試手段及可行性分析
以太網傳輸性能測試的最實用簡單的方法是采用網絡測試儀等相應的測試儀器,但應用于測試網絡丟包的儀器往往價格昂貴,且產品性能不一。在本CT數據采集系統中,不采用相關的儀器進行數據的完整性測試。本測試采用在FPGA底層自動發送固定數量的含有特征值的大數據包,通過wireshark接收并計數觀察發送的數據包與收到的數據包個數是否相等,如果相等則無丟包現象;觀察wireshark接收到的數據包是否有CRC錯誤判斷是否出現了誤碼(出現誤碼則wireshark接收到的相應數據幀將變紅)。在經過大量測試可知:CT數據采集系統不停轉發探測器數據包,并經過8米光纖傳輸到數據重建柜,在發送百萬組數據包的情況下數據無丟包現象,且只有1~2組數據出現誤碼,滿足設計的要求。wireshark抓包結果如圖5(此測試源IP固定,數據量為100萬組)。
6 結語
采用純邏輯以太網UDP協議,根據CT數據傳輸的特點采用自定制的方式進行CT數據采集系統的開發在保證數據可靠性的前提下降低了整個系統的成本,且消耗的邏輯資源較少。具有開發周期短,上層軟件開發簡單等優勢。
參考文獻:
[1]湯琦,蔣軍敏.Xilinx FPGA高級設計及應用[M].北京:電子工業出版社
[2]謝希仁.計算機網絡(第五版)[M].北京:電子工業出版社
[3]Gary R.Wright,W.Richard Stevens等著.TCP/IP詳解(卷1)[M].陸雪瑩,蔣慧,等譯.謝希仁,校.北京:機械工業出版社
[4]www.xilinx.com;Xapp1064
[5]http://www.ieee.org/index.html.Part3: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) access method and Physical Layer specifications.