伍巧鳳 李昱 孫詩炎 王明星 賀理
【摘 要】數字化儀控平臺由控制器和多個智能IO功能單元組成,控制器與智能IO功能單元通過背板AT96總線進行數據交互,以滿足不同的功能需求。系統提出一種基于AT96總線的沖突仲裁機制,以防止控制器與多個功能單元數據交互時發生沖突,以及發生沖突后應采取的對策。
【關鍵詞】數字化儀控平臺;AT96總線;數據交互;沖突仲裁
中圖分類號: TP 文獻標識碼: A 文章編號: 2095-2457(2019)16-0035-002
DOI:10.19694/j.cnki.issn2095-2457.2019.16.015
Conflict Arbitration Mechanism in Date Interaction Design Based on AT96 Bus
WU Qiao-feng LI Yu SUN Shi-yan WANG Ming-xing HE Li
(Science and Technology on Reactor System Design Technology Laboratory, Chengdu Sichuan 610213, China)
【Abstract】Digital instrumentation and control platform is including controller and intelligent IO functional unit. The data are exchanged through AT96 bus to meet different functional requirements. A conflict arbitration mechanism based on AT96 bus is proposed to prevent conflicts between controller and multiple functional units in data interaction, as well as measures to be taken after conflicts occur.
【Key words】Digital instrumentation and control platform; AT96 bus; Data interaction; Conflict Arbitration
0 引言
數字化儀控平臺中控制器單元通過背板AT96總線與多個智能IO功能單元進行數據交互[1-2]。AT96總線是工控機總線標準,采用ISA總線的兼容協議及PC的Wintel架構,具有抗沖擊力強、機械結構合理、易于維護等特點。因控制器需與多個功能單元進行數據交互,可能發生沖突,由此根據數字化儀控平臺的特點,在其控制器與多功能單元數據交互設計的基礎上,提出了一種防沖突的仲裁機制,用以防止沖突,以及沖突后應采取的對策。
1 基于AT96總線的數據交互構架
由圖1可知,數字化儀控平臺由主控制器、AT96總線、多個智能IO功能單元組成,智能IO單元包括模擬量輸入單元、模擬量輸出單元、開關量輸入單元、開關量輸出單元、以太網通信單元、CAN通信單元等。
智能IO功能單元為智能化設計,各功能單元自帶微處理器,獨立進行數據采集和處理,通過AT96總線與主控制器進行數據交換。數字化儀控平臺中的控制器基本上只能提供一個64KB的頁面給智能IO功能單元交互數據使用,但平臺中板卡數量眾多,因此采用頁面擴展技術,將64KB的頁面擴充成64個頁面,用以實現控制器與多個智能IO功能單元的數據交互。頁面擴展技術由一個CPLD、編碼來實現,CPLD負責根據智能IO功能單元上的編碼進行地址譯碼和命令解析,同時輸出控制信號,使得不同的智能IO功能單元能正確分配控制器對應內存頁面,實現數據交互[3]??刂破髋c多個職能IO功能單元數據交互的沖突仲裁設計,在原有AT96總線基礎上,新增了一根沖突仲裁信號線,該沖突仲裁線路能夠分別指示三種狀態:空閑、正常占用、沖突,以實現沖突仲裁處理。
2 沖突仲裁機制
2.1 沖突仲裁
圖2為沖突仲裁電路,如圖可知,與原來的AT96總線相比,新增了一根沖突仲裁信號線,以實現沖突仲裁處理。沖突仲裁信號線是一根物理線路,所有板卡共享該線路,該線路能夠分別指示三種狀態:空閑、正常占用、沖突。為考慮到沖突仲裁的可靠性和速度要求,以及對內存訪問速度的影響,采用了硬件仲裁線的實現方式。在電路中,一根所有插槽共享的硬件仲裁線,連接一個5KΩ的下拉電阻,構成了硬件仲裁的基礎通訊線。對每個擴展板卡來說,通過一個I/O管腳串聯電阻驅動,構成了內存占用通告發布功能,為了實現所有功能單元共享一根線的設計,每個板卡的I/O驅動串聯了一個肖特基二極管,以防止電流反向放電影響。該硬件線的電壓將反映出硬件內存頁面的占用、沖突情況,還單獨設計了一個占用/沖突檢測電路負責檢測內存頁面切換情況,如圖4所示。該檢測電路由兩個比較器組成,輸出2bit信號:
當系統開機后,內存頁面處于空閑狀態,所有功能單元均不占用該內存頁面,驅動管腳輸出低電平,由于二極管的反向截止功能,該沖突仲裁信號線實際電壓為0V(5K電阻下拉),此時,占用/沖突檢測電路由于輸入電壓為0V,因此輸出數據為01,表示空閑。
當控制器通過共享命令區間發送內存頁面切換地址后,功能單元CPLD檢測命令合法性和地址匹配一致后,執行內存頁面切換,同時驅動管腳輸出高電平,電平為3.3V,由于二極管的正向壓降,實際驅動電壓為3V,通過串聯電阻和沖突仲裁線的5K下拉電阻匹配后,該沖突仲裁信號線實際電壓為1.0V,此時,占用/沖突檢測電路由于輸入電壓為1.0V,因此輸出數據為00,表示正常占用。
當由于硬件故障、錯誤配置或其他問題導致2個或2個以上的功能單元啟動內存頁面切換,輸出了2個和2個以上的高電平,由于驅動電流的匯合作用,沖突仲裁信號線電壓將上升,兩個驅動時電壓為1.5V,超過2個則電壓更高。此時,占用/沖突檢測電路由于輸入電壓為1.5V以上,因此輸出數據為10,表示沖突。
每個功能單元在內存切換執行后,如果檢測到仲裁信號錯誤,則依然不會響應切換后的內存讀命令,以防止AT96總線訪問沖突。
3 沖突情況及對策
3.1 功能單元錯誤編碼
由于人為錯誤或功能單元的編碼開關故障,可能導致2個或2個以上的擴展板卡,其內存地址編寫一樣,此時,當控制器發送內存頁面切換命令時,多個功能單元同時占用總線。
此時,對于控制器來說,可以通過沖突仲裁信號線的狀態,判讀出內存頁面已經沖突,控制器將不會發送內存讀命令,可以防止后面的內存讀沖突操作。
即使控制器沒有處理這個沖突信號,發送了內存讀操作,實際上也不會導致硬件沖突,因為每個功能單元自己也會檢查沖突仲裁信號線,當沖突發生時,其數據端口的驅動IC(SN74HCT245)的DIR和OE管腳均受到仲裁結果信號控制,當總線已經產生沖突的情況下,讀操作將實際上無效,控制器讀到的是0xFF數據。
3.2 內存頁面切換時發生錯誤
當一個功能單元已經占用內存空間時,再切換到另外一張卡時,發生錯誤,導致原來的功能單元沒有釋放內存區間,從而導致內存沖突。這種情況多是由于AT96總線受到干擾發生的,或者功能單元出現了故障,接收到了內存切換命令,但沒有執行。
此時的情況處理跟上面的情況很類似,功能單元會自動進入保護狀態,防止沖突發生,控制器也能通過沖突仲裁信號線判斷出沖突的發生。
控制器可以通過兩步切換操作來防止此種情況出現,即控制器首先發送內存釋放命令,并檢測沖突仲裁信號線,讓所有功能單元均釋放內存空間后,再發送第二個切換命令到實際的頁面上。
3.3 硬件IO故障導致沖突
如果IO功能單元管腳本身發生故障,外部二極管、電阻故障,以及占用/沖突檢測電路的故障,均可能導致硬件沖突的發生,并且由于此故障發生,干擾了沖突仲裁線的工作狀態,會導致實際的硬件沖突發生。
針對此種問題的解決辦法是進行電路自檢,在系統上電或系統指定自檢的時候,由控制器發送命令,對各個功能單元進行檢測,檢測的內容包括:
(1)依次指定每個功能單元的地址,檢測其是否能夠可靠實現內存切換,并且輸出正確的占用信號,檢測由控制器和功能單元微處理器配合共同完成。
(2)輸出特殊的地址,強制2個功能單元執行內存切換,并實現內存沖突現象的模擬,檢測各個板卡的占用/沖突檢測電路工作是否正常。
4 結論
系統根據數字化儀控平臺的特點,在基于AT96總線的數據交互設計基礎上提出了一種用于控制器與多個智能IO功能單元數據交互的沖突仲裁機制。在AT96總線的基礎上增加一根沖突仲裁信號線的方法可實現控制器與多個智能IO功能單元沖突仲裁,并針對功能單元錯誤編碼、內存頁面切除錯誤、硬件IO故障設置相應的應對措施實現故障處理。
【參考文獻】
[1]反應堆數字化儀控系統安全級硬件平臺設計及應用[J].核動力工程,2013,3(1).
[2]反應堆數字化儀控系統安全級硬件平臺(MICON系統)設計及應用[C].中國核科學技術進展報告(第二卷),2011.
[3]數字化儀控平臺中基于AT96總線的數據交互設計[J].儀器儀表用戶,2019,26(04).