,
(廣西壯族自治區防雷中心,南寧 530022)
相變存儲器一種新型的非易失性存儲器,在嵌入式系統中發展迅速,對于離散地址數據的寫入與讀出,使用該存儲器能夠提高讀寫速度,但存在無法控制讀寫能力問題。檢查離散地址數據是否存儲于計算機中,如果已經存儲,那么需要發送信號傳遞給控制板,由控制板對數據進行讀取,在此過程中一旦出現錯誤信息,需將所有數據信息全部返回到計算機中,重新篩選正確信息發送。對于寫入與讀出標準需遵循智能卡ISO-7816標準,滿足系統GSM11.11技術需求,操作系統可為網絡提供相應支持,方便降低系統開發難度,適合控制板系統操作標準[1]。設計控制功能可實現系統快速對數據進行寫入與讀出,不但節省了時間,又提高了工作效率,但是采用傳統系統存在控制能力差問題,無法滿足控制基本需求,為此,采用可編程邏輯陣列對功能進行設計,實現變存儲器離散地址數據寫入讀出有效控制,通過實驗驗證結果可知,該系統控制能力較強。
相變存儲器離散地址數據寫入讀出控制系統的設計需從系統硬件與軟件兩方面展開,將硬件結構劃分為芯片選擇、配置方式和電路連接方式三部分,詳細描述可編程邏輯陣列配置方式以及電路設計,確保系統供電電源穩定;將硬件中配置進行軟件功能設計,對寫入與讀出主要以時序圖展示。
系統整體硬件結構如圖1所示。

圖1 控制系統硬件結構圖
圖1中包含了系統異步收發傳輸器、微控制單元、可編程只讀存儲器和時鐘、電平轉換等模塊,其中可編程邏輯陣列配置的電路設計主要是為了引導編程完成復位、相應程序配置和初始化等步驟,該配置通常分為兩種,一種是主動配置,另一種為被動配置;微控制單元為電源提供按鍵功能;電平轉換為電源電路提供穩定輸入電壓,而通信接口處電路可完成外圍設備與內在設備電路連接[2]。
根據劃分模塊將微控制單元和通信接口單元進行統一描述,可編程邏輯陣列配置設計包括芯片選擇、配置方式和電路連接方式,電路連接為芯片提供穩定電壓。
1.1.1 芯片選擇
根據上述系統整體硬件結構,需對可編程邏輯陣列中的芯片進行選擇,完成與計算機命令交互的時序處理任務,在具體操作過程中,需要使用豐富邏輯關系保障資源利用效率,同時也保證了系統性能,降低了成本。選擇Xilinx公司的Spartan-6芯片具有功率高、消耗低的優勢,其性價比和功耗也能完美搭配,促使系統硬件部分的設計擁有較低的成本,可適合大批量生產[3]。采用45 nm的Spartan-6芯片可編程邏輯陣列具有動靜態功率下消耗低特點,功率消耗是傳統芯片50%左右,具有如下屬性:
1)低消耗具有效率高優勢,采集集成模塊,優化I/O選擇標準,在待機條件下,可保持系統工作狀態與當前配置相符,采用多引腳方式支持零功耗休眠狀態;
2)設計多個電壓方便存儲器接口的選擇,兼容3.0~1.5 V的標準協議,采用I/O轉換速率可完成調節,進而提高信號傳送完整性;
3)設計集成存儲器控制模塊能夠支持多種接口信息存儲,電路總線帶有獨立半共享式存儲器(FIFO);
4)具有豐富資源,支持寄存器采用分布式設計原理;
5)具有不同粒度易揮發性隨機存取存儲器具有寫入與讀出速度快的特點,按照字節完成功能設計;
6)采用低噪聲、靈活性強時鐘管理方式,可提升系統性能;
7)采用多重配置方式,在引腳處設計自動檢測裝置,支持多重啟動方式。
1.1.2 抗干擾可編程邏輯陣列配置
以上述選擇Spartan-6芯片的屬性作為配置條件,為可編程邏輯陣列提供低成本方案。啟動電源,對可編程邏輯陣列配置內部寄存器和引腳進行初始化操作,待操作完成后,將可編程邏輯陣列工作模式切換到用戶工作模式,此時需解除I/O引腳的高阻值狀態,按照硬件描述設計編程語言工作。
為了提高系統在信號干擾情況下仍然具有較高的控制能力,需設計兩種可編程邏輯陣列配置方式,分別是主動模式和被動模式[4]。
1.1.2.1 主動模式
針對Spartan-6芯片主動配置模式是將可編程邏輯陣列作為主要器件,外部相變存儲器為配件,在啟動電源之后,將器件中配置數據全部讀取出來,將讀取的數據存儲到靜態隨機存儲器之中,該配置方式有兩種,分別是串行配置和并行配置,方便電路設計。
1.1.2.2 被動模式
針對Spartan-6芯片被動配置模式是將可編程邏輯陣列作為配件,微控制單元作為主要器件,將這兩種器件視為控制芯片主要裝置,通過對芯片控制所提供時序圖,才能精準對編程進行配置,同樣該配置方式也具有兩種,分別是串行配置和并行配置,方便電路設計[5]。
在串行模式下,對存儲器中數據進行自動加載,選擇某公司50 MHz的M25P128型號時鐘接口為總線接口,將Spartan-6芯片可編程邏輯陣列作為主器件,PROM作為配件,將兩者連接后形成了配置主要結構。Spartan-6芯片的引腳處還需設置成01,方便后續引腳編號。將芯片底部引腳CCLK與M25P128型號時鐘引腳進行連接,為主配器件串行接口提供時鐘數據輸入通道;將芯片兩側MOSI和DIN引腳分別連接M25P128型號時鐘數據寫入和數據讀出引腳,如果向上拉伸可獲取相應數據指令,此時串行輸入狀態為封鎖狀態;如果向下拉伸,需改變數據輸出狀態。將Spartan-6芯片CSO_ B作為器件引腳可直接與M25P128型號時鐘信號控制引腳連接,為芯片提供可選擇的信號。
利用Spartan-6芯片設計主—被動可編程邏輯陣列配置方案,在主動模式下,可編程邏輯陣列需從相變存儲器中讀取相關配置數據,引導整個配置過程。當電源啟動后,配置數據將全部加載到陣列中,數據不會丟失,適合只對數據加載受到信號干擾情況下開發,數據仍然保持完整;在被動模式下,需將外部控制芯片帶入整個電路引導配置過程當中,將可編程邏輯陣列作為存儲機制,將已經配置完成的數據全部寫入到陣列之中,從陣列中對數據進行在線燒寫,并全部存儲到靜態隨機存儲器。如果出現斷電,那么數據將全部消失,此時需重新燒寫,適合對系統正常運行受到信號干擾情況下開發,數據可重新加載。該配置方案是系統硬件設計的創新之處,有效解決了信號干擾問題。
1.1.3 電路連接
根據上述選擇配置方案,將控制電路設計為5 V、3.3 V以及1.2 V三種不同電壓,而系統電源為9 V,將9 V電壓作為輸入電源,為其它供電電壓提供直流電源。將直流電壓通過芯片降壓的具體步驟為:首先將直流電壓轉換為交流電壓。然后將電壓進行變壓處理,最后將變壓后電壓轉化為直流電壓輸出。芯片具有三種電路形式,分別是降壓、升壓與隔離[6]。
控制系統電路設計結構如圖2所示。

圖2 控制系統電路設計結構
將電源開關啟動,為系統提供9 V交流電壓,通過轉換降壓,變為5 V,全部輸出,此時輸出電壓可為目標提供安全電源電壓。可編程邏輯陣列通過一個金屬氧化物半導體場效應管座位控制開關,對目標進行控制,為芯片所需的三種電壓通過上述過程轉換獲取[7]。
系統硬件設計從整體結構方面展開分析,設計總體結構,選擇芯片種類,隨后對控制核心器件進行配置,詳細描述可編程邏輯陣列配置方式以及電路設計,確保系統供電電源穩定,并提高系統在信號干擾條件下的硬件控制能力。
將上述硬件硬件主—被動配置進行軟件功能設計,主要以時序圖展示,其中包括時序命令解析、狀態轉換和讀寫操作等。交互軟件中設計既包括微控制單元兩部分,又包括面向對象程序的編程,在visual studio2017開發環境下,使用程序語言C++完成面向對象的程序編寫,微控制單元僅使用C語言就可完成編寫。采用中斷式的編程方式可實現可編程邏輯陣列的交互,其中主要涉及微控制單元的按鍵與串聯接口[8]。由于計算機與程序之間控制單元需通過獨立通道完成,互不干擾。
計算機與微控制單元涉及的流程基本一致,如圖3所示。

圖3 軟件設計流程
由圖3可知:一旦程序啟動,那么串口需及時打開,并進行初始化設置,等待按鍵接觸命令發送,可編程邏輯陣列在串口接收到數據后,需進行驗證,待完成之后,再向上位機的微控制單元傳送,將接收的數據從串口處進行信號回復,并解析處理,如果驗證結果正確,那么直接向用戶展示結果;如果驗證結果錯誤,那么說明串聯數據接口信息發送或者接收時出現錯誤,計算機需重新向串口處發送指令數據,進行下一次的接收與校驗。倘若發送所有命令均無法得到正確回復,那么在結果顯示時會出現系統出現故障字樣。對于數據發送指令與接收,其長度都會小于6字節長度,數據發送指令與接收都能夠正常完成,說明完成一次交互[9]。
根據軟件設計流程對芯片配置寫入與讀出進行設計,其中寫入行為是以頁為基本單位實現的周期性執行動作,寫入指令時序圖,如圖4所示。

圖4 寫入操作時序
發送操作指令時,需指定固定頁碼地址,同時寫入跳變結果,將4個字節從高到低依次寫入,組合成32位的比特數據即為1個單詞。在信號接口處,離散地址信號SOC_ADR[16:2]組合值形成一頁數據實際值,離散地址信號SOC_ADR[15:8] 組合值形成一個比特的數據值,連續時間段的周期數據組成一個32位的比特數據即為1個單詞。
讀出行為也是具有周期性執行動作,讀出指令時序圖,如圖5所示。

圖5 讀出操作時序
指定單詞地址進行讀取,首先發送數據地址,將離散地址電平SOC_ALE拉高,并封鎖到相應存儲器中,保持高電平禁止將數據寫入其中,延時等待,讀取1個單詞數據,并在連續周期內依次賦予時間值,并將數據值對應的數據全部返回到離散地址信號SOC_ ADR[15:8]信號線中。
將硬件配置進行軟件功能設計,主要以時序圖展示。寫入行為是以頁為基本單位實現周期性執行動作,而讀出行為也是具有周期性的,分別設計寫入與讀出指令時序圖,可以阻止信號干擾造成的數據地址發送不明確現象發生,通過時序圖來展示控制結果,間接提高系統控制能力。時序圖是軟件部分設計的創新之處,可有效阻止外界干擾信號對數據傳輸造成的影響。
針對相變存儲器離散地址數據寫入讀出控制系統進行了實驗研究與設計,通過實驗驗證系統硬件與軟件設計的有效性,實現離散數據寫入讀出的有效控制。
在系統硬件設計過程中,對連接導線進行了鋪設和屏蔽,整個組件都固定在機械構架上。設置系統控制板操作原理,之后安裝在固定設備上,對已經指定的IP地址系統進行優化處理,最后使用Linux操作系統對PC主機進行調試,通過主機控制終端。當所有硬件都安裝完成之后,對整個系統開始進行實驗驗證,檢查配置Spartan-6 FPGA在信號干擾情況下硬件控制是否受到影響,將傳統系統與采用可編程邏輯陣列方式設計的系統進行對比,結果如圖6所示。

圖6 不同系統在信號干擾情況下硬件控制效果
當系統沒有實行控制之前,兩個系統的控制效果在理論上可達到100%,但是逐漸增強信號干擾強度,傳統系統控制能力下降到了80%,采用可編程邏輯陣列方式設計的系統控制能力下降到了83%;當信號強度為400 Hz時,傳統控制能力達到了最低,為42%,而采用可編程邏輯陣列方式設計的系統控制能力始終在80%上下波動,無明顯變化。由此可知,配置Spartan-6 FPGA的系統硬件設計在信號干擾情況下仍然進行有效控制。
在實驗過程中,模擬系統運行狀態,對軟件功能進行校驗,通過在寫入端施加激勵,在讀出端口處獲得一個響應,比較響應結果與功能需求是否一致,由于實驗過程是趨向于理想化的,為此可忽略電路中的延時性。對校驗過程中出現的問題需及時調整再進行實驗,保證系統測試時,各個軟件之間達到相互協調效果,施加的激勵通過Verilog語言進行編寫。
1)寫操作驗證。
寫入操作是以頁為單位的,信號接口與寫入行為操作信號是一一對應的,每一頁寫入離散地址數據是以寫入的三個指令發送作為啟動信號,之后才是離散地址數據的發送。針對寫入信號的發送,假設SOC_ALE為高電平,對離散地址數據進行鎖存;SOC_ADR[11:7]為離散地址信號,ADDR0至ADDR2值的依次對應時序中的0X0A、0X15和0X0A。反之,如果SOC_ALE為低電平,SOC_ADR[5:2]值表示在4段時間8/4/2/1中對應的離散地址數據,這4個有效時間數據組成一個指令值,那么DATA0至DATA2值依次對應時序中的0X0000_00AA、0X0000_0055和0X0000_00A0。施加激勵后SOC_ADR[15:8]寫入數據標準值為:0X0123,0X4567,0X89ab,將傳統系統與采用可編程邏輯陣列方式設計的系統對寫入施加激勵后的時序圖進行驗證分析,結果如圖7所示。

圖7 不同系統寫入時序圖驗證對比結果
由圖7可知:采用傳統系統對施加激勵后寫入數據獲取結果為:0X0246,0X8ace,0X8973,而采用可編程邏輯陣列方式設計的系統對施加激勵后寫入數據獲取結果為:0X0123,0X4567,0X89ab。由此可知,在時序對比圖中,采用采用可編程邏輯陣列方式設計的系統與標準值相對應寫入準確。
2)讀出操作驗證。
與上述寫入操作步驟基本一致,當SOC_ALE為高電平,對離散地址數據進行鎖存,此時的讀出數據為:Block0、Block1、Block2、Block3,對應的地址數據為:0-0X1fff、0X2fff -0X3fff、0X4fff -0X5fff、0X6fff -0X7fff。將離散地址數據封鎖后,延時等待再進行數據讀出工作,施加激勵獲取的響應結果是0X0123,0X4567,0X89ab,0Xcdef,同樣將將傳統系統與采用可編程邏輯陣列方式設計的系統對輸出施加激勵后的時序圖進行驗證分析,結果如圖8所示。

圖8 不同系統輸出時序圖驗證對比結果
由圖8可知:采用傳統系統對施加激勵后輸出數據獲取結果為:0X8439,0X6438,0X7524,0Xa1fe,而采用可編程邏輯陣列方式設計的系統對施加激勵后寫入數據獲取結果為:0X0123,0X4567,0X89ab,0Xcdef。由此可知,在時序對比圖中,采用采用可編程邏輯陣列方式設計系統與標準值相對應輸出準確。
根據上述實驗驗證內容,可得出實驗結論:
兩個系統控制效果在理論上可達到100%,逐漸增強信號干擾,傳統系統控制能力達到了在信號強度為400 Hz時,控制能力達到了最低為42%,而采用可編程邏輯陣列方式設計的系統控制能力始終在80%上下波動,無明顯變化。分別對寫入和輸出端口施加激勵后,采用可編程邏輯陣列方式設計的系統寫入和輸出數據獲取結果與標準值相一致。由此可知,針對配置Spartan-6 FPGA硬件中的寫入與輸出功能能夠對整個系統進行有效控制,且控制能力較強。
采用可編程邏輯陣列對相變存儲器離散地址數據寫入讀出控制系統進行設計,可抵抗外界信號造成的干擾,尤其是在信號干擾強度較大的工廠或企業可使用該控制系統完成離散地址數據的讀寫。雖然該系統具有良好的控制能力,但也發現該系統存在需要改進與提升的地方。經過對系統進行多輪測試后,發現其穩定性還有待驗證,在配置軟件中的代碼效率需進行優化,為此,在未來研究中,還需進行深入探討。