前言:想要寫出一篇引人入勝的文章?我們特意為您整理了安全計算機雙口RAM數據通信論文范文,希望能給你帶來靈感和參考,敬請閱讀。
1安全數據交互方式
為避免MPU和HCU同時對雙口RAM的同一個內存單元進行訪問,本設計沒有采用雙口RAM的中斷或者信號量等機制,而是采用一種基于角色的環形緩沖收發機制,將雙口RAM劃分為兩個獨立環形緩沖區:發送環形緩沖區和接收環形緩沖區。發送環形緩沖區負責將MPU數據傳遞給HCU,最終發送給外部設備;HCU從外部設備接收到數據,放到接收環形緩沖區,并傳遞給MPU。
1.1數據處理
三取二安全計算機邏輯運算模塊的運行周期為600ms,該模塊按照周期進行數據接收、數據處理、數據輸出。在第n個周期,MPU上的控制邏輯運算模塊從雙口ram接收到數據后,放到邏輯接收緩沖區;從邏輯接收緩沖區取出n-1個周期的數據并進行邏輯處理;將n-2個周期的邏輯處理結果,從邏輯發送緩沖區中取出,放到雙口RAM中。MPU上的控制邏輯運算模塊對安全數據進行邏輯處理的時間不超過300ms,如果超過,就會影響MPU接收或者發送數據。同樣,MPU上的控制邏輯運算模塊接收、發送數據超過300ms,也會影響邏輯處理功能。在接收發送處理階段,300ms中的280ms被分為20個發送接收子周期,每一個子周期的時間為14ms。在HCU中,也是按照同樣的運行節拍從雙口RAM中寫入或讀出數據。MPU與HCU之間交互的數據,按照預先定義的雙口RAM交換數據幀進行。數據幀定義略———編者注。
1.2數據接收
HCU通過網絡接口接收到數據后,對數據進行預處理,按照交換數據幀進行數據組包。根據當前周期號設置“cycle”,同時確定該數據包需要被放到D、E、F三個區塊中寫入區塊角色標志“role”,將“flag”設置為1(即為輸入),并交換數據幀的其他字段,按照源網絡數據包中的信息進行設置。HCU根據當前周期號確定在接收環形緩沖區中的寫入區塊后,將組包之后的交換數據幀放到寫入區塊中。MPU根據當前周期號確定在接收環形緩沖區中的讀出區塊后,從讀出區塊中獲取交換數據幀,然后對數據幀進行解包,并通過“cycle”、“role”、“flag”、“safety”、“crc”等信息來驗證數據幀的唯一性和正確性,正常的數據幀被放到邏輯接收緩沖區,異常的數據幀被丟棄。同時MPU根據當前周期號,確定在接收環形緩沖區中的測試區塊,利用內存檢測算法對測試區塊進行雙口RAM內存區塊檢測。
1.3數據發送
在當前周期的600ms內,MPU進行邏輯運算處理在300ms內完成后,MPU從邏輯發送緩沖區中讀取上個周期的邏輯處理結果數據,并對結果數據進行預處理,按照交換數據幀進行數據組包。根據當前周期號設置“cycle”,同時確定該數據包需要被放到A、B、C三個區塊中寫入區塊角色標志“role”,將“flag”設置為1(即為輸入),并交換數據幀的其他字段,按照源網絡數據包中的信息進行設置。MPU根據當前周期號,確定在發送環形緩沖區中的寫入區塊后,將組包之后的交換數據幀放到寫入區塊中。HCU根據當前周期號,確定在接收環形緩沖區中的讀出區塊后,從讀出區塊中獲取交換數據幀,然后對數據幀進行解包,并通過“cycle”、“role”、“flag”、“safety”、“crc”等信息來驗證數據幀的唯一性和正確性,驗證數據幀的正確性。異常的數據幀被丟棄,正常的數據幀按照網絡數據幀進行組包,并通過網絡發送給軌旁設備或者車載控制器。同時HCU根據當前周期號,確定在發送環形緩沖區中的測試區塊,利用內存檢測算法對測試區塊進行雙口RAM內存區塊檢測。
1.4區塊角色輪換
雙口RAM的發送與接收環形緩沖區的3個區塊,在任意一個周期都只能處于讀出、寫入、測試3種中的某一種角色,而且這3個角色進行周期輪換,區塊角色輪換表略———編者注。MPU與HCU通過雙口RAM區塊角色進行數據交互的步驟略———編者注。MPU與HCU通過相同的外部時鐘中斷來驅動數據處理軟件模塊的運行,MPU與HCU在對雙口RAM進行訪問時可以做到同步、流水線作業。在同一個處理周期內,發送環形緩沖區或者接收環形緩沖區中任何一個區塊都有明確固定的角色,MPU板和HCU板不會同時訪問操作相同區塊,只有一個板卡對特定區塊進行訪問,從而解決了雙口RAM的訪問沖突問題,不需要另外采取硬件仲裁、軟件仲裁或者信號量交互等手段。
1.5雙口RAM檢測
應用在三取二安全計算機中雙口RAM可能存在一些功能性缺陷。無論門級電子元件的制造缺陷,還是板卡電路級的設計錯誤,都可能導致雙口RAM的存儲功能性故障,從而降低其功能完整性和可靠性。雙口RAM存儲單元具有多種類型的故障略———編者注。實際項目應用中,開發人員需要關注雙口RAM存儲功能的完整性和可靠性,可以通過存儲器檢測算法來對其進行檢測和診斷,能夠及時地發現和定位雙口RAM的存儲功能故障,并及時采取相應的措施,避免因雙口RAM存儲單元的數據錯誤導致的嚴重后果。本文采用硬件BIST架構(HBIST),在硬件電路中設計專門的硬件邏輯部件來對內存進行測試,其圖形測試向量有專門的硬件電路模塊生成,自動對內存的各種功能故障進行測試,硬件架構內建測試的內存故障測試覆蓋率高,而且測試速度快,設計選取的圖形測試向量主要用于覆蓋高層次的內存故障,如NPSF、CF、DRF。HBIST利用March-TB內存測試算法對系統的內存進行測試,使用硬件HBIST電路來生成圖形測試向量,并由硬件HBIST電路來進行測試,HBIST測試電路模型略———編者注。在硬件BIST處于非工作狀態時,會拉低BIST的時鐘信號,BIST電路進入休眠狀態。當系統在夜間進入非繁忙狀態,會產生BIST_MODE信號,來激活BIST電路的BIST模式控制器,并拉高時鐘信號,BIST模式控制器發出控制信號,會接管對整個RAM的訪問控制,并對RAM開始進行測試。BIST模式控制器控制測試向量產生器、地址與數據生成邏輯工作,產生相應的測試向量對RAM進行測試。同時,并將測試結果在BIST結果比較器中進行比較,如果發現異常,退出BIST_MODE模式,通知MPU測試異常,MPU產生相應的告警和錯誤處理。HBIST在進行內存檢測時一共具有4種狀態:idle、test、error、wait。idle表示處于等待測試數據進行測試的空閑狀態;test表示獲得測試向量對相應內存單元進行測試;error表示檢測到內存單元出錯;wait表示處于休眠狀態,等待CPU模塊激活HBIST。HBIST狀態機的狀態轉移圖略———編者注。HBIST狀態機的VHDL程序略———編者注。在測試的過程中,通過植入內存故障,并用邏輯分析儀獲取出錯信號,硬件BIST模塊檢測內存出錯圖如圖3所示。圓圈里面的測試結果與期望結果不一致,內存檢測出錯。
1.6數據交互軟硬件設計
雙口RAM是雙端口SRAM芯片,本設計采用CY7C028V-15AXI,讀寫速度最高為15ns,數據容量為64K×16位。雙口RAM連接HCU板的一端為MPC8247的LO-CALBUS總線,連接MPU板的一端為CPCI總線橋接芯片的LOCALBUS總線,HCU可以直接通過LOCALBUS總線訪問雙口RAM,而MPU板通過PCI總線訪問,其中還有控制信號,如片選、讀寫、中斷、BUSY信號等。雙口RAM交互電路圖略———編者注。在MPU和HCU中,通過設計的軟件模塊,來完成雙口RAM的訪問操作。雙口RAM的MPU上軟件交互關鍵代碼略———編者注。
2結語
分析了應用在軌道交通行業中的三取二安全計算機的雙口RAM數據通信要求,并在實際的項目設備開發中,設計了基于角色輪換和自檢技術的數據通信方案,可以滿足三取二安全計算機數據通信的安全性、可靠性和實時性要求。
作者:徐軍 張磊 孫軍峰 單位:卡斯柯信號有限公司