• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      CSNS/RCS高頻低電平遠(yuǎn)程控制系統(tǒng)樣機(jī)

      2012-09-23 03:39:52
      核技術(shù) 2012年11期
      關(guān)鍵詞:低電平板卡中斷

      王 林 雷 革 馬 力

      (中國(guó)科學(xué)院高能物理研究所 北京 100049)

      中國(guó)散裂中子源(CSNS)快循環(huán)同步加速器(RCS)高頻低電平系統(tǒng)的任務(wù)是保證高頻系統(tǒng)嚴(yán)格按照電壓、相位、頻率的優(yōu)化工作曲線運(yùn)行,同時(shí)還要克服束流負(fù)載效應(yīng)造成的系統(tǒng)不穩(wěn)定性問(wèn)題。它要完成腔壓幅度控制、同步相位控制和自動(dòng)調(diào)諧等功能[1]。

      高頻低電平遠(yuǎn)控系統(tǒng)負(fù)責(zé)將低電平系統(tǒng)接入到EPICS控制系統(tǒng)框架中,使其與中央控制上位機(jī)進(jìn)行實(shí)時(shí)數(shù)據(jù)通信。

      1 總體結(jié)構(gòu)

      1.1 軟硬件結(jié)構(gòu)

      EPICS(Experimental Physics and Industrial Control System)是開(kāi)源的實(shí)驗(yàn)物理和工業(yè)控制系統(tǒng)軟件包,已在世界范圍內(nèi)廣泛應(yīng)用于粒子加速器、天文望遠(yuǎn)鏡等科學(xué)裝置。它提供了豐富的控制系統(tǒng)軟件開(kāi)發(fā)工具,可以用來(lái)建立分布式的控制系統(tǒng)體系結(jié)構(gòu),進(jìn)行系統(tǒng)集成。

      EPICS 由操作員接口 OPI(Operator Interface),輸入輸出控制器IOC(Input/Output Controller)和局域網(wǎng)LAN(Local Area Network)三部分組成[2]。

      高頻低電平遠(yuǎn)控系統(tǒng)采用全數(shù)字控制模式,CPU板+cPCI總線+數(shù)字I/O板的架構(gòu)[1],CPU板和數(shù)字I/O板放在同一個(gè)cPCI機(jī)箱內(nèi),CPU板通過(guò)cPCI總線控制數(shù)字 I/O板和網(wǎng)絡(luò)與上位機(jī)進(jìn)行通信。CPU板是愛(ài)默生的 CPCI-6020,操作系統(tǒng)是vxWorks。高頻低電平遠(yuǎn)控系統(tǒng)結(jié)構(gòu)如圖1所示。

      RCS高頻系統(tǒng)有8個(gè)高頻腔,相應(yīng)有8塊數(shù)字I/O板,每塊板卡控制一個(gè)腔。因此,在一個(gè)總線機(jī)箱內(nèi),一個(gè)CPU板需要控制8塊數(shù)字I/O板。其結(jié)構(gòu)如圖2所示。

      圖1 高頻低電平遠(yuǎn)控系統(tǒng)結(jié)構(gòu)圖Fig.1 Architecture of LLRF remote control system.

      圖2 CPU板與數(shù)字I/O板的對(duì)應(yīng)關(guān)系圖Fig.2 Correspondence between CPU and digital I/O boards.

      1.2 工作過(guò)程

      RCS的重復(fù)周期是40ms,高頻系統(tǒng)在前20ms由數(shù)字I/O板采集與高頻腔相關(guān)的實(shí)時(shí)數(shù)據(jù),包括腔壓、相位、頻率等。后20ms,CPU板通過(guò)cPCI

      中國(guó)散裂中子源工程建設(shè)資金資助

      系統(tǒng)的時(shí)間分配是,留出2ms的余量,也就是用18ms的時(shí)間傳輸數(shù)據(jù)。由于有8塊數(shù)字I/O板同時(shí)工作在一個(gè)cPCI機(jī)箱內(nèi),所以平均每塊板卡需要在2.25ms內(nèi)完成數(shù)據(jù)的傳輸。

      數(shù)字I/O板中的FPGA固件程序的功能是以固定時(shí)間間隔產(chǎn)生中斷,CPU板接收到中斷后,利用DMA傳輸,讀取 16K個(gè)整型數(shù)據(jù)(即64KB)。中斷周期為 40ms產(chǎn)生 4次中斷,與下一次中斷的間隔分別為 4.5ms、 4.5ms、 4.5ms、 26.5ms。 16K個(gè)整型數(shù)據(jù)由 FPGA 內(nèi)部 FIFO 產(chǎn)生,在產(chǎn)生中斷之前準(zhǔn)備好,為了方便對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),這些數(shù)據(jù)是定值,分別是1,2,3,…,16384。

      數(shù)據(jù)的傳送過(guò)程如圖 3所示。CPU板先通過(guò)DMA把FPGA中的數(shù)據(jù)取出來(lái)放到緩沖區(qū)中,原始數(shù)據(jù)需經(jīng)過(guò)標(biāo)度變換,然后送到EPICS的ai、bi和 waveform等記錄中,再通過(guò)網(wǎng)絡(luò)把數(shù)據(jù)送到上位機(jī)顯示。

      圖3 數(shù)據(jù)傳送過(guò)程Fig.3 Data transfer process.

      2 軟件開(kāi)發(fā)

      2.1 板卡配置

      2.1.1 板卡識(shí)別

      與VME等標(biāo)準(zhǔn)總線的板卡類(lèi)似,在cPCI總線上,板卡首先要被識(shí)別。cPCI總線和PCI總線使用相同的軟件接口,因此數(shù)字I/O板的識(shí)別方法與PCI設(shè)備相同,下面很多概念也將直接以PCI總線來(lái)描述。

      PCI設(shè)備空間包括配置空間和地址空間,配置空間用于存儲(chǔ)和配置設(shè)備的基本信息,地址空間用于訪問(wèn)設(shè)備的內(nèi)部寄存器。當(dāng)vxWorks操作系統(tǒng)啟動(dòng)時(shí),逐個(gè)掃描PCI設(shè)備,并為設(shè)備分配總線號(hào)、設(shè)備號(hào)、功能號(hào),程序中通過(guò)總線號(hào)、設(shè)備號(hào)、功能號(hào)來(lái)訪問(wèn)PCI設(shè)備的配置空間。然后,vxWorks為PCI設(shè)備分配基地址,并將其寫(xiě)入到配置空間的BAR(Base Address Register),程序中通過(guò)基地址來(lái)訪問(wèn)PCI設(shè)備的內(nèi)部寄存器。

      在數(shù)字I/O板中,PCI橋芯片PLX-9656與cPCI總線接口,并通過(guò) Local Bus與 FPGA接口。PLX-9656和FPGA都需要PCI地址空間,這兩個(gè)地址由 vxWorks系統(tǒng)分配以后自動(dòng)存儲(chǔ)在PLX-9656配置空間的BAR0和BAR2中。

      2.1.2 板卡配置過(guò)程

      首先,使用vxWorks函數(shù)pciFindDevice(),以PLX-9656的vendor(供應(yīng)商)和device(設(shè)備)ID為參數(shù)[3],查找數(shù)字 I/O板,為識(shí)別出的每塊板卡分配一個(gè)結(jié)構(gòu)體,用于存儲(chǔ)板卡基本信息,并通過(guò)鏈表連接起來(lái),以便查找。然后,在PCI配置空間中讀取總線號(hào)、設(shè)備號(hào)、功能號(hào)、基地址和中斷向量等信息,開(kāi)辟數(shù)據(jù)緩沖區(qū)、vxWorks信號(hào)量,分別將它們存儲(chǔ)在板卡結(jié)構(gòu)體中。最后,連接中斷服務(wù)程序,啟動(dòng)中斷服務(wù)任務(wù)[4],初始化 PLX-9656橋芯片。板卡配置過(guò)程如圖4(a)所示。

      2.2 中斷服務(wù)程序(ISR)

      2.2.1 PCI中斷

      PCI總線采用共享的中斷方式,每個(gè)PCI設(shè)備有 4個(gè)中斷引腳 INTA、INTB、INTC、INTD(通常只用INTA)[5]。CPCI-6020的中斷控制器為PCI設(shè)備提供了4個(gè)中斷請(qǐng)求線,分別編號(hào)為28、29、30、31。PCI設(shè)備配置空間中的中斷線寄存器用于指示中斷引腳與中斷控制器的連接關(guān)系,對(duì)于CPCI-6020,即為28、29、30、31中的一個(gè)。

      在程序中,用中斷線的值作為中斷向量來(lái)關(guān)聯(lián)中斷服務(wù)程序,于是,當(dāng)中斷發(fā)生時(shí),中斷服務(wù)程序就會(huì)被vxWorks執(zhí)行。由于數(shù)字I/O板的數(shù)目多于4個(gè),一個(gè)中斷向量會(huì)對(duì)應(yīng)兩塊數(shù)字I/O板,所以當(dāng)中斷產(chǎn)生時(shí),需要查詢(xún)PCI設(shè)備的中斷標(biāo)志位來(lái)判斷到底是哪個(gè)設(shè)備產(chǎn)生的中斷,產(chǎn)生的是哪個(gè)中斷。

      2.2.2 中斷服務(wù)程序工作流程

      每個(gè)數(shù)字I/O板有三種中斷,即FPGA中斷、DMA通道0中斷和DMA通道1中斷。FPGA中斷表明數(shù)字I/O板中的數(shù)據(jù)己經(jīng)準(zhǔn)備好,DMA通道0和DMA通道1的中斷表明本次DMA傳輸完成。DMA通道0用來(lái)將數(shù)字I/O板中的64KB數(shù)據(jù)傳到CPU板,DMA通道1用來(lái)將CPU板中的波形數(shù)據(jù)傳到數(shù)字I/O板中。

      樣機(jī)的中斷服務(wù)程序查詢(xún)每塊板卡的PCI中斷標(biāo)志位,確定是哪塊板卡產(chǎn)生的哪個(gè)中斷。如果是FPGA中斷,則發(fā)起一次DMA,從數(shù)字I/O板傳輸64KB數(shù)據(jù)到CPU板。如果是DMA通道0或DMA通道1中斷,則釋放信號(hào)量,觸發(fā)中斷服務(wù)任務(wù)進(jìn)行數(shù)據(jù)讀寫(xiě)和處理。中斷服務(wù)程序流程如圖4(b)所示。

      2.3 中斷服務(wù)任務(wù)

      程序中有兩個(gè)中斷服務(wù)任務(wù),任務(wù)1等待DMA通道0釋放的信號(hào)量,然后進(jìn)行字節(jié)序轉(zhuǎn)換、數(shù)據(jù)校驗(yàn)和數(shù)據(jù)處理。數(shù)據(jù)準(zhǔn)備好后,觸發(fā)EPICS記錄來(lái)讀取數(shù)據(jù)。在這里,進(jìn)行字節(jié)序轉(zhuǎn)換是因?yàn)?PCI總線的數(shù)據(jù)使用小端模式(little-endian),而PowerPC處理器的數(shù)據(jù)使用大端模式(big-endian)。數(shù)據(jù)處理是按照高頻低電平系統(tǒng)的需求,把 64KB數(shù)據(jù)分成8組,每組8KB,并對(duì)每組數(shù)據(jù)進(jìn)行標(biāo)度變換。中斷服務(wù)任務(wù)1的流程如圖4(c)所示。

      任務(wù)2等待DMA通道1釋放的信號(hào)量,輸出運(yùn)行信息,表明波形數(shù)據(jù)已經(jīng)寫(xiě)入到數(shù)字I/O板中。

      圖4 主要函數(shù)流程圖Fig.4 Flow chart of main functions.

      2.4 DMA傳輸

      為了提高數(shù)據(jù)傳輸帶寬,使用 DMA(Direct Memory Access)方式進(jìn)行數(shù)據(jù)傳輸。DMA控制器在PLX-9656橋芯片上,橋芯片一邊連接cPCI總線,另一邊連接板卡的內(nèi)部總線(Local Bus)。發(fā)起一次DMA傳輸?shù)倪^(guò)程是:在橋芯片的DMA控制寄存器中,先設(shè)置PCI地址、內(nèi)部總線地址、傳輸?shù)臄?shù)據(jù)量、傳輸方向,然后使能DMA即可。DMA傳輸完成時(shí),橋芯片向PCI總線發(fā)出中斷,通知操作系統(tǒng)DMA傳輸完成。

      2.5 EPICS接口

      程序中,EPICS記錄使用中斷的掃描方式,當(dāng)CPU板緩沖區(qū)中的數(shù)據(jù)準(zhǔn)備好時(shí),觸發(fā)EPICS記錄進(jìn)行處理,從而EPICS記錄將數(shù)據(jù)從緩沖區(qū)中讀取到自己的value域。具體過(guò)程是,數(shù)字I/O板配置時(shí),使用 EPICS函數(shù) scanIoInit()初始化一個(gè)IOSCANPVT型的變量。然后在記錄的設(shè)備支持函數(shù)的 get_ioint_info()中,將記錄與相應(yīng)的IOSCANPVT型變量進(jìn)行捆綁。當(dāng)緩沖區(qū)中的數(shù)據(jù)準(zhǔn)備好時(shí),使用EPICS函數(shù)scanIoRequest(),以這個(gè)變量為參數(shù),即可觸發(fā)相應(yīng)的 EPICS記錄進(jìn)行處理。

      樣機(jī)的實(shí)時(shí)控制部分用到了EPICS的ai、bi、waveform等記錄類(lèi)型,使用EPICS base中自帶的記錄支持,然后單獨(dú)開(kāi)發(fā)了設(shè)備支持和設(shè)備驅(qū)動(dòng)。bi用于讀取板卡工作模式,bo用于設(shè)置板卡工作模式、發(fā)送“板卡開(kāi)始工作”等控制信息;longin和longout分別用于讀取和設(shè)置測(cè)試時(shí)FPGA的中斷次數(shù);ai和ao用于讀取和設(shè)置標(biāo)度變換的系數(shù);8個(gè)waveform分別用于讀取 8組 8KB的數(shù)據(jù);1個(gè)waveform用于向數(shù)字I/O板寫(xiě)入波形數(shù)據(jù),這個(gè)波形數(shù)據(jù)是電壓、相位或頻率的優(yōu)化工作曲線,保證高頻系統(tǒng)嚴(yán)格按照這個(gè)曲線運(yùn)行。波形數(shù)據(jù)先用EPICS工具caput寫(xiě)入到waveform記錄,再由記錄的設(shè)備支持直接發(fā)起一次 DMA,傳輸?shù)綌?shù)字 I/O板中。

      2.6 時(shí)間測(cè)試

      CPCI-6020的CPU是MPC7410,這個(gè)CPU里面自帶了時(shí)間計(jì)數(shù)器,以 25MHz的頻率遞增,時(shí)間精度是 40ns。可以使用 CPCI-6020 BSP中的sysTimeBaseLGet()函數(shù)獲取時(shí)間計(jì)數(shù)器的當(dāng)前值,將這個(gè)函數(shù)穿插在程序中,就可以計(jì)算出程序的執(zhí)行時(shí)間。

      表1列出了FPGA發(fā)出6個(gè)中斷的時(shí)間測(cè)試。在一個(gè)重復(fù)周期,每個(gè)數(shù)字I/O板消耗的時(shí)間主要是DMA傳輸、字節(jié)序轉(zhuǎn)換、數(shù)據(jù)校驗(yàn)和數(shù)據(jù)處理。在后續(xù)的應(yīng)用中,字節(jié)序轉(zhuǎn)換的時(shí)間可以通過(guò)FPGA中數(shù)據(jù)反寫(xiě)而省掉,而且也不再需要數(shù)據(jù)校驗(yàn)。DMA傳輸時(shí)間和數(shù)據(jù)處理時(shí)間的總和遠(yuǎn)遠(yuǎn)小于2.25ms,因此,數(shù)據(jù)傳輸和處理的時(shí)間滿足高頻低電平系統(tǒng)的要求。

      表1 時(shí)間測(cè)式結(jié)果 (ms)Table 1 Time measurement (ms)

      3 人機(jī)界面

      人機(jī)界面使用EDM開(kāi)發(fā)。如圖5所示,上面四個(gè)X-Y Graph控件以曲線的形式分別顯示8組數(shù)據(jù),下面的文本框分別用于讀取和設(shè)置8組數(shù)據(jù)標(biāo)度變換的系數(shù),右下角的 intNum文件框用于讀取和設(shè)置 FPGA產(chǎn)生中斷的次數(shù)。AutoStop和NeverStop顯示當(dāng)前板卡的工作模式。系統(tǒng)有兩種工作模式:N 次停止模式(AutoStop)和連續(xù)工作模式(NeverStop)。AutoStop是用 intNum文本框來(lái)設(shè)置一定的中斷次數(shù),當(dāng)FPGA已經(jīng)發(fā)出了intNum次中斷時(shí),就停止工作;NeverStop是讓系統(tǒng)持續(xù)工作下去,只有切換成AutoStop模式才能停止。系統(tǒng)處于AutoStop模式時(shí),按鈕顯示NeverStop,系統(tǒng)處于NeverStop模式時(shí),按鈕顯示AutoStop,點(diǎn)擊按鈕進(jìn)行模式切換。Reset按鈕用于重置8組數(shù)據(jù)標(biāo)度變換的系數(shù)。Start按鈕用于使能數(shù)字 I/O板的FIFO、時(shí)鐘和中斷,使數(shù)字I/O板開(kāi)始工作。

      圖5 人機(jī)界面Fig.5 Operator interface.

      4 結(jié)論

      在EPICS和cPCI的軟硬件架構(gòu)下,作者通過(guò)中斷服務(wù)和DMA傳輸,實(shí)現(xiàn)了將數(shù)字I/O板中的數(shù)據(jù)傳到上位機(jī)顯示,以及從上位機(jī)向數(shù)字I/O板發(fā)控制信息和波形數(shù)據(jù)的功能。通過(guò)傳輸固定數(shù)據(jù)的方式,對(duì)數(shù)據(jù)進(jìn)行了校驗(yàn),同時(shí)也對(duì)時(shí)間進(jìn)行了測(cè)試,測(cè)試結(jié)果表明遠(yuǎn)控系統(tǒng)樣機(jī)的功能和性能滿足高頻低電平系統(tǒng)的要求。

      樣機(jī)模擬了高頻低電平遠(yuǎn)控系統(tǒng)的實(shí)際工作方式,這樣為后面的帶腔聯(lián)調(diào)做好了鋪墊。

      1 中國(guó)散裂中子源(CSNS)初步設(shè)計(jì)[R]. 中國(guó)科學(xué)院高能物理研究所, 2011 Preliminary design of the China Spallation Neutron Source (CSNS)[R]. Institute of High Energy Physics,CAS. 2011

      2 Martin R. Kraimer, Janet Anderson, Andrew Johnson,EPICS Application Developer’s Guide, Release 3.14.10,2009, http://www.aps.anl.gov/epics/base/R3-14/10-docs/AppDevGuide.pdf [OL]

      3 季宇. VxWorks 操作系統(tǒng)下CompactPCI總線驅(qū)動(dòng)程序設(shè)計(jì)[J]. 電子設(shè)計(jì)工程, 2009, 17(6): 99–101 JI Yu. Design of the CompactPCI bus driver program under VxWorks[J]. Electronic Design Engineering, 2009,17(6): 99–101

      4 程敬原. VxWorks軟件開(kāi)發(fā)項(xiàng)目實(shí)例完全解析[M]. 北京:中國(guó)電力出版社, 2005 CHENG Jingyuan. VxWorks software development project instance fully resolved [M]. Beijing: China Electric Power Press, 2005

      5 PCISIG, PCI Local Bus Specification, Revision 2.2, 1998,http://www.ece.mtu.edu/faculty/btdavis/courses/mtu_ee31 73_f04/papers/PCI_22.pdf [OL]

      猜你喜歡
      低電平板卡中斷
      數(shù)字電路中“邏輯非”的用法辨析
      鐵道車(chē)輛高/低電平信號(hào)智能發(fā)生器設(shè)計(jì)
      2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車(chē)型低電平參考電壓總線電路圖
      基于PCI9054的多總線通信板卡的研制
      基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
      跟蹤導(dǎo)練(二)(5)
      千里移防,衛(wèi)勤保障不中斷
      解放軍健康(2017年5期)2017-08-01 06:27:44
      一種基于光纖數(shù)據(jù)傳輸?shù)亩喟蹇ㄜ浖绦驘龑?xiě)技術(shù)
      一種通用模擬量及開(kāi)關(guān)量信號(hào)采集板卡的設(shè)計(jì)
      AT89C51與中斷有關(guān)的寄存器功能表解
      峡江县| 泗阳县| 大冶市| 新闻| 区。| 剑川县| 静安区| 西峡县| 垫江县| 武川县| 辽中县| 厦门市| 渝中区| 四子王旗| 桓台县| 太康县| 韶山市| 信宜市| 宜州市| 蓬溪县| 饶阳县| 精河县| 马尔康县| 珠海市| 霍邱县| 明溪县| 临江市| 河西区| 金阳县| 喀什市| 江北区| 葵青区| 永福县| 大同县| 灵武市| 杨浦区| 建水县| 清丰县| 东乌珠穆沁旗| 盐边县| 北安市|