雷碧峰,王春紅,劉正同,呂慧慧
(中國科學(xué)院 高能物理研究所,北京 100049)
隨著加速器系統(tǒng)的快速發(fā)展,對控制系統(tǒng)的高數(shù)據(jù)傳輸率、低延時提出了更高的要求。同時,更加智能化和數(shù)字化的控制器在加速器中的大量采用,也要求新控制系統(tǒng)具有更好 的 智 能 化 和 靈 活 性[1]。傳 統(tǒng) 的VME 和CompactPCI系統(tǒng)在傳輸速度方面均有一定限制,新型的MicroTCA 系統(tǒng)是一種全新的基于機箱式的模塊化設(shè)計,具有高可用性、高擴展性、高數(shù)據(jù)傳輸速率、支持熱插拔等優(yōu)點[2]。
相比于傳統(tǒng)的控制技術(shù),MicroTCA 技術(shù)具有智能化高、靈活性強、性能好、性價比高等優(yōu)勢,這些優(yōu)勢使其非常適合在有高數(shù)據(jù)傳輸率、低延時要求的控制系統(tǒng)中使用。目前,在國際加速器控制領(lǐng)域研究中,MicroTCA技術(shù)正逐漸成為一熱門研究課題。EPICS 平臺是一種集成的開發(fā)環(huán)境,能有效提高系統(tǒng)的開發(fā)和運行維護效率。目前,EPICS在各種類型的加速器中得到了廣泛使用,基于EPICS平臺的控制系統(tǒng)的研究已是國內(nèi)外加速器控制技術(shù)中非常重要的一個方面。本文使用Heytec公司的硬件建立一套基于MicroTCA 總線的EPICS控制系統(tǒng),對MicroTCA 總線及硬件接入EPICS系統(tǒng)進行研究。
本工作開發(fā)了一套完整的單寬尺寸的MicroTCA系統(tǒng),外部通過信號調(diào)理端子形成理想的現(xiàn)場回路,使用基于PCI-e x16 協(xié)議的背板總線來模擬信號的控制和反饋。MicroTCA系統(tǒng)的結(jié)構(gòu)如圖1所示。該系統(tǒng)的基本組件包括:1塊CPU 模塊;1塊硬盤模塊;2塊Hytec-AMC載板卡;1塊N.A.T MCH 模塊;1塊夾層總線模數(shù)轉(zhuǎn)換板ADC-IP 卡;1 塊夾層總線數(shù)模轉(zhuǎn)換板DAC-IP卡。該系統(tǒng)的硬件實物圖如圖2所示。
圖1 MicroTCA 系統(tǒng)的結(jié)構(gòu)Fig.1 Architecture of MicroTCA system
圖2 MicroTCA 系統(tǒng)的實物圖Fig.2 Prototype of developed MicroTCA system
基于EPICS的應(yīng)用程序架構(gòu)如圖3所示。本文以該結(jié)構(gòu)為原型系統(tǒng)開發(fā)了軟件系統(tǒng),主要包括3 部分:設(shè)備驅(qū)動及其支持程序,EPICS IOC和實時監(jiān)控系統(tǒng)(OPI)。
圖3 基于EPICS的應(yīng)用程序架構(gòu)Fig.3 Architecture of software based on EPICS
1)設(shè)備驅(qū)動
設(shè)備驅(qū)動開發(fā)主要完成3 部分:PCI設(shè)備驅(qū)動開發(fā)、載板卡驅(qū)動開發(fā)和IP卡驅(qū)動開發(fā)。
PCI設(shè)備驅(qū)動將操作系統(tǒng)的BSP與EPICS中的載板卡驅(qū)動銜接起來,通過一個指向結(jié)構(gòu)體指針在初始化時調(diào)用PCI設(shè)備注冊函數(shù)以完成驅(qū)動程序的注冊,并通過PCI層來完成載板卡設(shè)備的探測和支持熱插拔操作。同時,該載板允許IP卡接入到其硬件的I/O 寄存器和內(nèi)存空間。
本文基于IPAC 程序包開發(fā)了AMC 載板卡驅(qū)動程序,其用于將ADC-IP 和DAC-IP 卡與IP卡支持程序粘合在一起,通過實現(xiàn)IPAC定義的標準接口為IP 卡的訪問提供一組標準的API。AMC載板卡驅(qū)動程序允許IP卡的驅(qū)動直接通過該API接入到底層設(shè)備中,從而屏蔽了載板卡和IP 卡的詳細信息。無論是模擬IP卡還是數(shù)字IP 卡,均可使用該API接入到底層設(shè)備中。
本文基于asynDriver程序包開發(fā)了IP 卡驅(qū)動程序,其為IP 卡接入到EPICS系統(tǒng)中提供了接口,并兼容了OSI標準模型,包括ADC和DAC 兩個IP 卡的驅(qū)動程序。IP 卡的驅(qū)動程序包括6部分:設(shè)備初始化程序、asynDriver接口函數(shù)實現(xiàn)、設(shè)備私有的操作程序塊、浮點電壓轉(zhuǎn)化程序塊、中斷程序塊和外部程序。
驅(qū)動程序的中斷機制設(shè)計是決定系統(tǒng)響應(yīng)時間的重要因素。本文利用PCI設(shè)備驅(qū)動和基于IPAC 的載板卡驅(qū)動共同構(gòu)成完整的、能向載板卡和IP 卡驅(qū)動分發(fā)快速中斷服務(wù)的中斷處理機制。該機制通過一特定的結(jié)構(gòu)體來實現(xiàn),結(jié)構(gòu)體包含設(shè)備句柄、喚醒排隊句柄、中斷向量等基本元素。圖4 為PCI驅(qū)動的中斷延遲示意圖。
圖4 PCI設(shè)備驅(qū)動的中斷延遲Fig.4 Interrupt latency in PCI device driver
2)EPICS IOC及其記錄支持開發(fā)
IOC輸入輸出控制器是EPICS 控制系統(tǒng)最重要的部分,為一常駐內(nèi)存的實時數(shù)據(jù)庫系統(tǒng),用于存放來往于設(shè)備的實時數(shù)據(jù),包括數(shù)據(jù)庫開發(fā)和記錄支持開發(fā)。
本文開發(fā)了EPICS數(shù)據(jù)庫記錄支持層,定義了兩個用于數(shù)據(jù)讀入/出的記錄類型,并為每類設(shè)備開發(fā)了14個記錄類型的通道控制操作,能滿足EPICS基本應(yīng)用要求。使用EPICS標準數(shù)據(jù)庫定義文件、asyn.dbd 和drvIpac.dbd定義文件生成IOC 應(yīng)用的數(shù)據(jù)庫定義文件utca.dbd。使用VDCT 工具對數(shù)據(jù)庫進行了開發(fā),該數(shù)據(jù)庫用于支持系統(tǒng)運行調(diào)試和性能測試。
3)實時監(jiān)控系統(tǒng)(OPI)開發(fā)
本文使用CSS 工具包開發(fā)了獨立的實時監(jiān)控系統(tǒng),如圖5所示,其主要功能包括:系統(tǒng)啟動與關(guān)閉;系統(tǒng)實時狀態(tài)監(jiān)控;系統(tǒng)運行參數(shù)設(shè)置;ADC/DAC通道操作與監(jiān)控;PV 實時與歷史數(shù)據(jù)瀏覽等。
主要測試MicroTCA 系統(tǒng)運行過程中,Linux層的PCI設(shè)備驅(qū)動對外部觸發(fā)的中斷響應(yīng)時間。該測試需在Linux 操作系統(tǒng)的PCI設(shè)備驅(qū)動層展開,分別利用Memory 和Register模式下的DAC-IP 觸發(fā)一個中斷,測試Linux 操作系統(tǒng)對處于Trigger 模式下的ADC-IP的中斷響應(yīng)時間。在PCI設(shè)備驅(qū)動的中斷進程中加入時間標記點,該標記點位于中斷觸發(fā)后和進入中斷處理前,通過計算對應(yīng)的時間差得到相應(yīng)的ADC-IP在Trigger模式下的中斷響應(yīng)延時。Linux操作系統(tǒng)中斷延時如圖4所示,測試結(jié)果列于表1。從測試結(jié)果可看出,外部信號的細節(jié)并不會影響測試結(jié)果,這說明該測試并未涉及到PCI上層的應(yīng)用系統(tǒng)。所以,該時間差能很好地反映出系統(tǒng)核級中斷響應(yīng)的實際延時。
圖5 MicroTCA 系統(tǒng)控制與運行監(jiān)測界面Fig.5 Control and monitor OPI of MicroTCA
表1 操作系統(tǒng)級的中斷響應(yīng)時間測試結(jié)果Table 1 Test result of response time in Linux kernel level
該測試主要用于測試該系統(tǒng)對外部中斷的響應(yīng)時間,需在IP 卡驅(qū)動層的中斷程序中展開。本文分別在ADC-IP和DAC-IP卡異步驅(qū)動程序的中斷進程中加入時間標記點,該標記點位于中斷響應(yīng)開始后和進入中斷處理前,通過計算對應(yīng)的時間差,可得到EPICS應(yīng)用系統(tǒng)的中斷響應(yīng)延時,測試結(jié)果列于表2。從表2可看出,本次測試得到的響應(yīng)時間遠大于操作系統(tǒng)級中斷響應(yīng)時間。
表2 系統(tǒng)EPICS應(yīng)用級的響應(yīng)時間測試結(jié)果Table 2 Test result of response time in EPICS application level
通過上述測試結(jié)果可看出,系統(tǒng)在Linux核內(nèi)的硬中斷響應(yīng)時間優(yōu)于10μs,而傳統(tǒng)的VME 系統(tǒng)在VxWorks核內(nèi)的硬中斷響應(yīng)時間約為20μs級,因此,該系統(tǒng)對10μs級高速通訊的系統(tǒng)具有非常好的應(yīng)用價值。
從測試結(jié)果可看出,本系統(tǒng)在EPICS應(yīng)用級的中斷響應(yīng)時間延遲相對較大,說明該系統(tǒng)的應(yīng)用軟件具有較大的優(yōu)化空間,可通過進一步的優(yōu)化使系統(tǒng)的性能得到提升,從而使其具有非常好的應(yīng)用價值。
本文基于MicroTCA 硬件開發(fā)了一個Linux/EPICS控制系統(tǒng)原型,完成了底層驅(qū)動開 發(fā)、EPICS 支 持 層 驅(qū) 動 開 發(fā)、EPICS IOC 和數(shù)據(jù)庫及其支持層驅(qū)動開發(fā)、基于CSS的客戶端開發(fā)。通過對Linux 操作系統(tǒng)的硬中斷和EPICS應(yīng)用級的中斷響應(yīng)時間的測試,可得出系統(tǒng)在Linux 內(nèi)核中板卡級硬中斷響應(yīng)優(yōu)于10μs,即對10μs級高速通訊的系統(tǒng)有應(yīng)用價值。另外,本工作使用的Linux為非實時操作系統(tǒng),也是影響響應(yīng)時間的一個因素。若采用RTLinux,MicroTCA 系統(tǒng)在內(nèi)核中的響應(yīng)時間將會進一步提高。所以,MicroTCA 系統(tǒng)在低延時及靈活性和智能化要求較高的系統(tǒng)中具有較好的應(yīng)用價值。
[1] LARSEN R S.Advances in developing next-generation electronics standards for physics[C]∥Real Time Conference.Beijing:IEEE,2009.
[2] VERSTOV?EK I,AMAND F,PLE?KO M,et al.THXA01:Recent trends in accelerator control systems[C]∥Proceedings of IPAC.San Sebastián,Spain:IPAC,2011.