楊 帆 李桂花 楊桂芹 張志婧
重離子治癌加速器高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計與實現(xiàn)
楊 帆1,2李桂花2楊桂芹1張志婧1,2
1(蘭州交通大學(xué) 蘭州 730070)
2(中國科學(xué)院近代物理研究所 蘭州 730000)
根據(jù)重離子治癌加速器的特點提出了新的一種數(shù)據(jù)傳輸方法,在FPGA上實現(xiàn)了DPSK (Differential Phase Shift Keying)調(diào)制解調(diào),加入了奇偶校驗、BCH編解碼、擾碼與幀同步系統(tǒng)來提高系統(tǒng)的可靠性,傳輸信道采用SFP光纖傳輸,提高了傳輸?shù)乃俾?,降低了設(shè)計成本。本文主要描述系統(tǒng)軟硬件的設(shè)計和實現(xiàn)細節(jié),重點分析了在傳輸過程中如何使用FPGA編程方法提高系統(tǒng)的可靠性和穩(wěn)定性。該系統(tǒng)經(jīng)過嚴格壓力測試,做到百萬次傳輸無誤差,已在重離子治癌加速器現(xiàn)場實際使用,在加速器控制領(lǐng)域首次實現(xiàn)了FPGA結(jié)合光纖的DPSK調(diào)制解調(diào)高速數(shù)據(jù)傳輸,對同類系統(tǒng)有較好的借鑒參考作用。
重離子治癌加速器,數(shù)據(jù)傳輸,DPSK調(diào)制解調(diào),相變點,F(xiàn)PGA
重離子治癌加速器是在蘭州重離子加速器冷卻存儲環(huán)(Heavy Ion Research Facility in Lanzhou-Cooling Storage Ring, HIRFL-CSR)的基礎(chǔ)上重建的一臺專門用于醫(yī)療的同步加速器。重離子治癌同步加速器設(shè)計運行周期3.2?13.2 s,加速時間1.6 s。一個加速器裝置的控制系統(tǒng)必須使束流加速過程完成。一般來說,它必須激發(fā)所有參與這個束流加速過程的設(shè)備,在正確的時間做正確的事情。加速器的動態(tài)參數(shù)決定了這些機器的時序要求??刂葡到y(tǒng)不但要完成非實時信息的通信,而且還要支持時間要求嚴格的實時信息的通信,在重離子治癌加速器設(shè)計中,時序系統(tǒng)的精度一般要求在微秒級,而且要求同步的設(shè)備多,輸出到設(shè)備的波形數(shù)據(jù)時間間隔也在微秒級,另外為了監(jiān)測電源波形及與同步時鐘之間的相對時間關(guān)系,還要同步采集電源的波形信號,因此高速以太網(wǎng)(千兆以太網(wǎng))是不能保證加速器控制的實時性。加速器運行數(shù)據(jù)組織軟件將所有計算好的設(shè)備波形數(shù)據(jù)裝載到執(zhí)行部件,執(zhí)行部件接收到來自加速器運行數(shù)據(jù)組織軟件發(fā)出的同步觸發(fā)事例后,經(jīng)過要求的延時,將數(shù)據(jù)輸出到設(shè)備,執(zhí)行部件通常是自主研發(fā)的集成電路板,主要器件是FPGA和DSP,執(zhí)行部件及其FPGA和DSP上的內(nèi)置程序完成了響應(yīng)同步事例后延時輸出波形數(shù)據(jù)到設(shè)備的功能,為了保證輸出數(shù)據(jù)的速度、精度和實時性,數(shù)據(jù)傳輸?shù)乃俣缺仨氃趤單⒚爰?,并且?shù)據(jù)傳輸中要嚴格保證數(shù)據(jù)的正確性。
目前,HIRFL-CSR的同步事例傳輸采用了400kHz光纖傳輸?shù)幕鶐盘?,其帶寬和可靠性都需要提升。因此,我們自主研發(fā)了基于PCI接口,以FPGA為核心器件的重離子治癌加速器高速數(shù)據(jù)傳輸控制板卡。如圖1所示,系統(tǒng)采用通用SFP接口,該接口的傳輸速率最高可到125 MHz,并且為了使傳輸協(xié)議更加有針對性,整個系統(tǒng)更具靈活性,在板載FPGA中實現(xiàn)了全部傳輸協(xié)議及信號調(diào)制解調(diào)。根據(jù)實際需求與器件性能,采用100 MHz載波,10 MHz基帶信號的DPSK (Differential Phase Shift Keying)調(diào)制解調(diào)。該系統(tǒng)已經(jīng)用于加速器系統(tǒng)調(diào)試,經(jīng)測試,百萬次數(shù)據(jù)傳輸無誤。
圖1 重離子治癌加速器高速數(shù)據(jù)傳輸控制器及測試平臺Fig.1 Controller and test platform of high-speed data transmission of the heavy ion therapy accelerator.
圖2 重離子治癌加速器高速數(shù)據(jù)傳輸系統(tǒng)硬件平臺Fig.2 Hardware platform of the system of high-speed data transmission of the heavy ion therapy accelerator.
數(shù)據(jù)傳輸系統(tǒng)的平臺為PCI+FPGA+光纖的結(jié)構(gòu),如圖2所示。PCI接口用于實現(xiàn)服務(wù)器與數(shù)據(jù)傳輸系統(tǒng)間數(shù)據(jù)的下載與上傳[1]。FPGA將收到的數(shù)據(jù)進行處理后進行DPSK調(diào)制輸出,通過光纖傳輸?shù)叫盘柦邮赵O(shè)備,信號接收設(shè)備載板的FPGA對收到的數(shù)據(jù)解調(diào),針對不同的設(shè)備,對數(shù)據(jù)進一步分析并實現(xiàn)控制邏輯。款芯片成本合理,資源適中,同時它支持多路LVDS信號,提高了信號傳輸?shù)膸捄涂煽啃訹2]。利用編程語言來實現(xiàn)數(shù)據(jù)傳輸,其收發(fā)速率和幀格式很容易改動,而不需要更換任何設(shè)備和器件,便于系統(tǒng)的改進。傳輸信道采用Firecomms(愛爾蘭)公司的EDL300T,它的傳輸帶寬最高為125 Mbps,通用SFP接口的使用使系統(tǒng)更加穩(wěn)定,并且該接口非常容易使用,光纖無需制作特別的接頭,根據(jù)所需長度隨時裁剪,即插即用,使用非常方便[3]。
數(shù)據(jù)傳輸?shù)目傮w結(jié)構(gòu)如圖3所示。從PCI系統(tǒng)獲得64位有效數(shù)據(jù),將其分為8組,分別加入奇偶檢驗位,進行非本原BCH (17,9)編碼,組織成一幀數(shù)據(jù)后加入擾碼,經(jīng)過DPSK調(diào)制后,通過光纖發(fā)送出去。在接收端將收到的信號進行解調(diào)解擾碼后,通過幀同步系統(tǒng)找到幀頭,再進行BCH譯碼與糾錯,得到了64位有效數(shù)據(jù),完成了一次數(shù)據(jù)傳輸[4]。
圖3 數(shù)據(jù)傳輸?shù)目傮w設(shè)計框圖Fig.3 Overall scheme design diagram of data transmission.
2.1 發(fā)送端數(shù)據(jù)的處理
為使此系統(tǒng)可靠性更強,對發(fā)送的數(shù)據(jù)進行了奇偶校驗和編碼,采用并行處理方式以提高編碼效率。將64 bit有效數(shù)據(jù)分為8組,對每組數(shù)據(jù)進行逐比特異或計算,將結(jié)果添加在每組數(shù)據(jù)的MSB前作為奇偶校驗位。對這8組數(shù)據(jù)同時進行非本原BCH(17,9)編碼。它是一類能糾正多個隨即錯誤的循環(huán)碼和分組碼,可以在給定糾錯能力要求的條件下尋找到碼的生成多項式,有了生成多項式,編碼的基本問題就隨之解決了。BCH(17,9)編碼能夠在每組數(shù)據(jù)中糾正任意最多兩位隨機錯誤[5],一幀數(shù)據(jù)最多能同時糾正16位隨機錯誤。生成多項式為g(x)=x8+x7+x6+x4+x3+x+1。經(jīng)過編碼后8組數(shù)據(jù)每組長度是17 bit,高9位是原碼,低8位是監(jiān)督位,監(jiān)督位將作為數(shù)據(jù)譯碼的一個參數(shù)。
為了使接收端能夠正確識別幀信息中的有效數(shù)據(jù),必須給編碼后的數(shù)據(jù)加入幀頭,選擇了7位巴克碼(1110010)作為幀頭。巴克碼是一組符合特殊規(guī)律的碼元,它出現(xiàn)在信息碼元序列中的可能性非常小。接收端一旦檢測到這個特定的碼組就立刻知道這種信息碼元的“頭”[6]。幀頭確定后,加上一定冗余位便可以和8組編碼后的數(shù)據(jù)組織成幀。
對數(shù)據(jù)進行擾碼和調(diào)制后,就可以完成發(fā)送端對數(shù)據(jù)的處理工作。采用偽隨機序列(m序列)來起到“擾碼”的作用,本設(shè)計采用的本原多項式為F(x)=x5+x3+1。在FPGA設(shè)計中,根據(jù)所選序列的本原多項式來設(shè)置m級寄存器以實現(xiàn)m序列[7]。為了避免解調(diào)時出現(xiàn)相位的倒“π”現(xiàn)象,采用DPSK調(diào)制方式。它是利用前后相鄰碼元載波相位的相對變化來傳遞數(shù)字信息的。調(diào)制時先對二進制數(shù)字基帶信號進行差分處理,即把表示數(shù)字信息序列的絕對碼變?yōu)橄鄬Υa,然后再根據(jù)相對碼進行調(diào)相,從而產(chǎn)生2DPSK信號[8]。其中,差分碼的編碼規(guī)則為b(n)=a(n)⊕b(n?1)。
2.2 接收端數(shù)據(jù)的處理
在接收端,首先要將收到的數(shù)據(jù)進行解調(diào)和解擾碼。先對信號進行解調(diào),由于該系統(tǒng)的基帶和載波信號頻率很高,利用傳統(tǒng)的解調(diào)難以實現(xiàn),因為這些方法要求本地系統(tǒng)時鐘頻率至少是載波信號頻率的幾倍甚至數(shù)十倍,頻率越高解調(diào)效果往往越好。但是工作頻率高的FPGA價格都非常昂貴,會增加成本,因此我們從信號本身的特征和PSK調(diào)制系統(tǒng)的特性出發(fā),運用采樣和VHDL語言自身的特點實現(xiàn)了對高頻DPSK信號的解調(diào)過程。在200 MHz的時鐘下尋找相變點(相變點處即基帶信號的電平變換點),找到了相變點就知道了前后相鄰碼元載波相位的相對變化,再經(jīng)過差分譯碼和解擾碼變化后,得到了10 MHz的基帶串行幀。其中,解差分公式為b(n)=a(n)⊕a(n?1),解擾電路采用與發(fā)送端同樣的寄存器組設(shè)置模式。
要得到有效數(shù)據(jù),首先要經(jīng)過幀頭識別系統(tǒng)尋找?guī)^(1110010),確定數(shù)據(jù)的起始。幀頭識別后,為了得到可靠的數(shù)據(jù),還要對數(shù)據(jù)進行譯碼和檢錯,運用錯誤圖樣查找的方法,既計算校正子S,查看校正子和錯碼位置關(guān)系的表格,找出錯碼將其糾正,并且通過報錯機制把錯誤信息輸出。這樣,就得到了服務(wù)器發(fā)出的64位有效數(shù)據(jù)。
測試機箱用NI的機箱,用Labview程序驅(qū)動兩個控制器,一個發(fā)送,一個接收,由PCI提供發(fā)送數(shù)據(jù),觀察接收到的數(shù)據(jù)與發(fā)送的是否相同。
3.1 同板收發(fā)測試
因為此設(shè)計收發(fā)是雙向的,用同板自行收發(fā)時,測試結(jié)果如圖4所示。右邊“寫”是發(fā)送端的數(shù)據(jù),左邊“讀”是接收端的數(shù)據(jù),可見傳輸過程中沒有出現(xiàn)錯誤。
3.2 異板收發(fā)測試
用兩個控制器測試時,數(shù)據(jù)有可能出錯,如圖5所示,左邊“4259”為發(fā)射端,發(fā)射的數(shù)據(jù)為“55aa55aa”,而右邊“4258”為接收端,接收到的數(shù)據(jù)卻是“2d920b95”,經(jīng)過統(tǒng)計,出錯率達到百分之十幾。
圖4 同板收發(fā)的實驗結(jié)果Fig.4 Result of transmitter and receiver on the same board.
圖5 異板收發(fā)的實驗結(jié)果Fig.5 Result of transmitter and receiver on the different board.
經(jīng)過反復(fù)的實驗與觀察,發(fā)現(xiàn)出錯的原因是相變點丟失或者是多出了相變點。在研究過程中,用200 MHz的臨界時鐘來進行研究。如圖6所示,加入200 MHz時鐘,若輸入數(shù)據(jù)為1,計數(shù)器在時鐘上升沿時計數(shù)。若不在相變點處,計數(shù)器只能計到1,若在相變點處,則計數(shù)器會計到2,這就找到了相變點。若是同板收發(fā),發(fā)送端和接收端使用同一個時鐘源,時鐘上升沿到來時,數(shù)據(jù)已經(jīng)穩(wěn)定,能夠準確地采樣,不會出現(xiàn)錯誤。
圖6 同板收發(fā)采用200 MHz采樣時鐘原理圖Fig.6 Schematic diagram of transmitter and receiver on same board with 200 MHz sampling clock.
若是異板收發(fā),發(fā)送端和接收端的時鐘不是同一個時鐘源,若時鐘上升沿正好在輸入數(shù)據(jù)的中間來臨,則數(shù)據(jù)不會出錯。若是如圖7所示情況,則會有可能出錯,錯誤有兩種可能,若認為a和b處都是1,則計數(shù)器會計到2,就會認為此處為相變點,因而多出相變點,如圖7中Change_point1所示;若認為c和e處都是0,則計數(shù)器在d處計數(shù),只會計到1,就會認為此處不是相變點,因而丟失相變點,如圖7中 Change_point2所示。
圖7 異板收發(fā)采用200 MHz采樣時鐘原理圖Fig.7 Schematic diagram of transmitter and receiver on different board with 200 MHz sampling clock.
若要得到準確無誤的數(shù)據(jù),計數(shù)時要避開數(shù)據(jù)不穩(wěn)定的情況,必須要升高時鐘頻率,又因為EP3C25F256的工作頻率不是太高,所以找出可以準確找到相變點的最低時鐘頻率成為本系統(tǒng)成功與否的關(guān)鍵。
經(jīng)過分析與研究,選定了500 MHz的時鐘頻率。加入500 MHz時鐘,若輸入數(shù)據(jù)為1,計數(shù)器在時鐘上升沿時計數(shù)。若不在相變點處,計數(shù)器只能計到2,若在相變點處,則計數(shù)器會計到3、4和5,為了避免在數(shù)據(jù)不穩(wěn)定時出現(xiàn)多出相變點或相變點的丟失情況,選定計數(shù)器計到4時為相變點。如圖8所示,若認為a、b、c處都是1,計數(shù)器只會計到3,不會計到4,因而不會多出相變點;若認為f、k處都是0,計數(shù)器會在g、h、i、j處計數(shù),完全可以計到4,相變點也不會丟失。因此在500 MHz時鐘下,可以準確找出相變點,不會出現(xiàn)任何錯誤。
圖8 異板收發(fā)采用500 MHz采樣時鐘原理圖Fig.8 Schematic diagram of transmitter and receiver on different board with 500 MHz sampling clock.
其實,若不一定非要是信號的整數(shù)倍,不一定要這么高的時鐘頻率,但是要在同一個PLL里面同時產(chǎn)生所需的時鐘,就必須為整數(shù)倍,因此,本文只討論可以在此程序中實現(xiàn)的情況。綜上所述,在解調(diào)過程中,在此系統(tǒng)可以實現(xiàn)的尋找相變點的最佳時鐘頻率為500 MHz。
測試方法與§3相同,由圖9可以看到,傳輸過程中沒有出現(xiàn)錯誤。
圖9 異板收發(fā)的最終實驗結(jié)果Fig.9 Ultimate result of transmitter and receiver on the different board.
為確保出錯率為零,需要發(fā)送多組數(shù)據(jù)來統(tǒng)計出錯率,發(fā)送端每次發(fā)一萬幀數(shù)據(jù),第一幀為55aa55aa,每發(fā)一幀就加1再發(fā)下一幀,直到發(fā)送一萬幀就停止發(fā)送,對比發(fā)送端和接收端,統(tǒng)計出出錯次數(shù),將出錯情況和錯誤率通過.txt文件輸出。統(tǒng)計結(jié)果出錯率為零。連續(xù)測試100次,即百萬幀數(shù)據(jù),出錯率為零。
經(jīng)過大量數(shù)據(jù)的反復(fù)驗證,該系統(tǒng)傳輸數(shù)據(jù)正確有效,與理論相符。
以往的加速器數(shù)據(jù)傳輸系統(tǒng)采用的是傳統(tǒng)的基帶信號直接傳輸模式,傳輸速率很低,而且?guī)^僅為簡單的“11”,可靠性也很差。重離子治癌加速器高速數(shù)據(jù)傳輸系統(tǒng)在以往加速器數(shù)據(jù)傳輸系統(tǒng)的基礎(chǔ)上進行了提升,自主研發(fā)了基于PCI+FPGA+光纖的傳輸控制器,在數(shù)據(jù)傳輸過程中采用了DPSK調(diào)制解調(diào)的方式,并且加入了奇偶校驗,BCH編解碼,擾碼與幀同步系統(tǒng)來提高系統(tǒng)的可靠性,所有傳輸協(xié)議解析與調(diào)制解調(diào)在FPGA上采用VHDL編程實現(xiàn),降低了設(shè)計成本,提高了系統(tǒng)可靠性和靈活性。對設(shè)計中出現(xiàn)的問題進行改進,保證該系統(tǒng)可以準確無誤地實現(xiàn)數(shù)據(jù)的傳輸過程,使重離子治癌加速器高速數(shù)據(jù)傳輸系統(tǒng)能夠穩(wěn)定可靠運行。該系統(tǒng)保證了輸出數(shù)據(jù)的速度、精度和實時性,以及數(shù)據(jù)傳輸中的正確性。該系統(tǒng)經(jīng)過反復(fù)測試,已經(jīng)運用于重離子治癌加速器的現(xiàn)場,工作情況良好。
1 毛文宇, 喬衛(wèi)民, 敬嵐, 等. 重離子治癌加速器高速實時數(shù)據(jù)傳輸系統(tǒng)研制[J]. 原子能科學(xué)技術(shù), 2012, 46(12): 1502?1507
MAO Wenyu, QIAO Weimin, JING Lan, et al. Design of high-speed data transmission system for Lanzhou heavy ion therapy accelerator[J]. Atomic Energy Science and Technology, 2012, 46(12): 1502?1507
2 Altera Corporation. Cyclone3 handbook[OL]. http://www. Altera.com/support/devices/cyclone3/dev-cyclone3.html, 2010
3 Firecomms. EDL300T datasheet[OL]. http://www. firecomms.com/downloads/datasheets/2012/EDL300T_D ata_Sheet.pdf, 2007
4 毛文宇. 重離子治癌加速器控制系統(tǒng)中多功能控制組件的研究[D]. 蘭州: 中國科學(xué)院近代物理研究所, 2013: 97?101
MAO Wenyu. Study on multifunction control component in the heavy ion therapy accelerator control system[D]. Lanzhou: Institute of Modern Physics, Chinese Academy of Sciences, 2013: 97?101
5 Cho J, Sung W. Efficient software base encoding and decoding of BCH codes[J]. IEEE Transactions on Computers, 2009, 58(7): 878?889
6 樊昌信, 曹麗娜. 通信原理[M]. 北京: 國防工業(yè)出版社, 2006: 188?194
FAN Changxin, CAO Lina. Principle of communication[M]. Beijing: National Defense Industry Press, 2006: 188?194
7 李歡. 偽隨機序列的FPGA設(shè)計與應(yīng)用[J]. 科技信息, 2011, (17): 508
LI Huan. FPGA design and application of a pseudo-random sequence[J]. Science & Technology Information, 2011, (17): 508
8 趙葉星, 韋志棉. 基于FPGA的DPSK調(diào)制解調(diào)器的全數(shù)字實現(xiàn)[J]. 無線電工程, 2007, 37(10): 21?22
ZHAO Yexing, WEI Zhimian. Digital realization of DPSK modem based on FPGA[J]. Radio Engineering, 2007, 37(10): 21?22
CLC TL56
Design and implementation of high-speed data transmission system for the heavy ion therapy accelerator
YANG Fan1,2LI Guihua2YANG Guiqin1ZHANG Zhijing1,2
1(Lanzhou Jiaotong University, Lanzhou 730070, China)
2(Institute of Modern Physics, Chinese Academy of Sciences, Lanzhou 730000, China)
Background: Heavy ion therapy accelerator is introduced to reconstruct a dedicated synchrotron for medical treatment based on HIRFL-CSR (Heavy Ion Research Facility in Lanzhou-Cooling Storage Ring). Synchronous transmission of HIRFL-CSR uses the 400 kHz baseband signal with optical fiber. Purpose: The bandwidth and reliability of heavy ion therapy accelerator need to be improved for practical application. Methods: Differential phase shift keying (DPSK) modulation and demodulation method has been adopted, combined with the parity check, BCH codec, scrambling and frame synchronization system, to improve the reliability of system. Further improvement on both hardware and software implementation is taken to avoid any error in transmission process. Results: Experimental results show that the error times reduced to zero by using two boards to send and receive data. It is proved that the system can transmit data correctly and effectively. Conclusion: The system can accurately finish the data transmission with high reliability for the high-speed data transmission system of the heavy ion therapy accelerator. It has been directly applied to the scene of the heavy ion therapy accelerator.
Heavy ion therapy accelerator, Data transmission, DPSK (Differential Phase Shift Keying) modulation and demodulation, Phase change point, FPGA
TL56
10.11889/j.0253-3219.2015.hjs.38.010403
重離子治癌束流的精確位置控制研究(No.Y207150GJ0)資助
楊帆,女,1990年出生,2012年畢業(yè)于蘭州交通大學(xué),現(xiàn)蘭州交通大學(xué)在讀碩士研究生,研究方向為通信與信息系統(tǒng)
2014-09-10,
2014-11-05