亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        王 林 雷 革 馬 力

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

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

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

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

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

        EPICS(Experimental Physics and Industrial Control System)是開源的實驗物理和工業(yè)控制系統(tǒng)軟件包,已在世界范圍內(nèi)廣泛應(yīng)用于粒子加速器、天文望遠(yuǎn)鏡等科學(xué)裝置。它提供了豐富的控制系統(tǒng)軟件開發(fā)工具,可以用來建立分布式的控制系統(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板放在同一個cPCI機箱內(nèi),CPU板通過cPCI總線控制數(shù)字 I/O板和網(wǎng)絡(luò)與上位機進(jìn)行通信。CPU板是愛默生的 CPCI-6020,操作系統(tǒng)是vxWorks。高頻低電平遠(yuǎn)控系統(tǒng)結(jié)構(gòu)如圖1所示。

        RCS高頻系統(tǒng)有8個高頻腔,相應(yīng)有8塊數(shù)字I/O板,每塊板卡控制一個腔。因此,在一個總線機箱內(nèi),一個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板的對應(yīng)關(guān)系圖Fig.2 Correspondence between CPU and digital I/O boards.

        1.2 工作過程

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

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

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

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

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

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

        2 軟件開發(fā)

        2.1 板卡配置

        2.1.1 板卡識別

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

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

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

        2.1.2 板卡配置過程

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

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

        2.2.1 PCI中斷

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

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

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

        每個數(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用來將數(shù)字I/O板中的64KB數(shù)據(jù)傳到CPU板,DMA通道1用來將CPU板中的波形數(shù)據(jù)傳到數(shù)字I/O板中。

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

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

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

        任務(wù)2等待DMA通道1釋放的信號量,輸出運行信息,表明波形數(shù)據(jù)已經(jīng)寫入到數(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ù)倪^程是:在橋芯片的DMA控制寄存器中,先設(shè)置PCI地址、內(nèi)部總線地址、傳輸?shù)臄?shù)據(jù)量、傳輸方向,然后使能DMA即可。DMA傳輸完成時,橋芯片向PCI總線發(fā)出中斷,通知操作系統(tǒng)DMA傳輸完成。

        2.5 EPICS接口

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

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

        2.6 時間測試

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

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

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

        3 人機界面

        人機界面使用EDM開發(fā)。如圖5所示,上面四個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文本框來設(shè)置一定的中斷次數(shù),當(dāng)FPGA已經(jīng)發(fā)出了intNum次中斷時,就停止工作;NeverStop是讓系統(tǒng)持續(xù)工作下去,只有切換成AutoStop模式才能停止。系統(tǒng)處于AutoStop模式時,按鈕顯示NeverStop,系統(tǒng)處于NeverStop模式時,按鈕顯示AutoStop,點擊按鈕進(jìn)行模式切換。Reset按鈕用于重置8組數(shù)據(jù)標(biāo)度變換的系數(shù)。Start按鈕用于使能數(shù)字 I/O板的FIFO、時鐘和中斷,使數(shù)字I/O板開始工作。

        圖5 人機界面Fig.5 Operator interface.

        4 結(jié)論

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

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

        1 中國散裂中子源(CSNS)初步設(shè)計[R]. 中國科學(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ū)動程序設(shè)計[J]. 電子設(shè)計工程, 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軟件開發(fā)項目實例完全解析[M]. 北京:中國電力出版社, 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ù)字電路中“邏輯非”的用法辨析
        鐵道車輛高/低電平信號智能發(fā)生器設(shè)計
        2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
        基于PCI9054的多總線通信板卡的研制
        基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
        跟蹤導(dǎo)練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        一種基于光纖數(shù)據(jù)傳輸?shù)亩喟蹇ㄜ浖绦驘龑懠夹g(shù)
        一種通用模擬量及開關(guān)量信號采集板卡的設(shè)計
        AT89C51與中斷有關(guān)的寄存器功能表解
        精品国产三区在线观看| 四月婷婷丁香七月色综合高清国产裸聊在线| 久久久国产精品樱花网站| 国产一区二区精品av| 一区二区三区国产内射| 少妇人妻在线无码天堂视频网 | 97超在线视频免费| 亚洲视频在线观看青青草| 偷拍色图一区二区三区| 狠狠躁夜夜躁人人爽天天古典| 亚洲另类激情综合偷自拍图| 国产精品国产三级国产av主| av在线高清观看亚洲| 亚洲国产成人av在线观看| 久久国产36精品色熟妇| 成人免费丝袜美腿视频| 日本高清视频在线观看一区二区| 三a级做爰片免费观看| 99久久精品国产一区二区蜜芽| 久久久9色精品国产一区二区三区| 亚洲中文字幕人成乱码在线| 无遮挡呻吟娇喘视频免费播放| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲欧美在线观看| 国产在线视频国产永久视频| 青青草精品在线免费观看| 日本污ww视频网站| 嗯啊哦快使劲呻吟高潮视频| 国产丝袜免费精品一区二区| 网站在线观看视频一区二区| 国产成人喷潮在线观看| 亚洲精品二区中文字幕| 亚洲一区二区三区一区| 伦伦影院午夜理论片| 亚洲av男人的天堂在线观看| 中国女人a毛片免费全部播放| 成人性生交大片免费5| 国产精品99久久久久久猫咪| 亚洲国产欧美日韩一区二区| 国产成人一区二区三区| 四虎影视久久久免费观看|