,
(廣西壯族自治區(qū)防雷中心,南寧 530022)
相變存儲器一種新型的非易失性存儲器,在嵌入式系統(tǒng)中發(fā)展迅速,對于離散地址數(shù)據(jù)的寫入與讀出,使用該存儲器能夠提高讀寫速度,但存在無法控制讀寫能力問題。檢查離散地址數(shù)據(jù)是否存儲于計算機中,如果已經存儲,那么需要發(fā)送信號傳遞給控制板,由控制板對數(shù)據(jù)進行讀取,在此過程中一旦出現(xiàn)錯誤信息,需將所有數(shù)據(jù)信息全部返回到計算機中,重新篩選正確信息發(fā)送。對于寫入與讀出標準需遵循智能卡ISO-7816標準,滿足系統(tǒng)GSM11.11技術需求,操作系統(tǒng)可為網絡提供相應支持,方便降低系統(tǒng)開發(fā)難度,適合控制板系統(tǒng)操作標準[1]。設計控制功能可實現(xiàn)系統(tǒng)快速對數(shù)據(jù)進行寫入與讀出,不但節(jié)省了時間,又提高了工作效率,但是采用傳統(tǒng)系統(tǒng)存在控制能力差問題,無法滿足控制基本需求,為此,采用可編程邏輯陣列對功能進行設計,實現(xiàn)變存儲器離散地址數(shù)據(jù)寫入讀出有效控制,通過實驗驗證結果可知,該系統(tǒng)控制能力較強。
相變存儲器離散地址數(shù)據(jù)寫入讀出控制系統(tǒng)的設計需從系統(tǒng)硬件與軟件兩方面展開,將硬件結構劃分為芯片選擇、配置方式和電路連接方式三部分,詳細描述可編程邏輯陣列配置方式以及電路設計,確保系統(tǒng)供電電源穩(wěn)定;將硬件中配置進行軟件功能設計,對寫入與讀出主要以時序圖展示。
系統(tǒng)整體硬件結構如圖1所示。
圖1 控制系統(tǒng)硬件結構圖
圖1中包含了系統(tǒng)異步收發(fā)傳輸器、微控制單元、可編程只讀存儲器和時鐘、電平轉換等模塊,其中可編程邏輯陣列配置的電路設計主要是為了引導編程完成復位、相應程序配置和初始化等步驟,該配置通常分為兩種,一種是主動配置,另一種為被動配置;微控制單元為電源提供按鍵功能;電平轉換為電源電路提供穩(wěn)定輸入電壓,而通信接口處電路可完成外圍設備與內在設備電路連接[2]。
根據(jù)劃分模塊將微控制單元和通信接口單元進行統(tǒng)一描述,可編程邏輯陣列配置設計包括芯片選擇、配置方式和電路連接方式,電路連接為芯片提供穩(wěn)定電壓。
1.1.1 芯片選擇
根據(jù)上述系統(tǒng)整體硬件結構,需對可編程邏輯陣列中的芯片進行選擇,完成與計算機命令交互的時序處理任務,在具體操作過程中,需要使用豐富邏輯關系保障資源利用效率,同時也保證了系統(tǒng)性能,降低了成本。選擇Xilinx公司的Spartan-6芯片具有功率高、消耗低的優(yōu)勢,其性價比和功耗也能完美搭配,促使系統(tǒng)硬件部分的設計擁有較低的成本,可適合大批量生產[3]。采用45 nm的Spartan-6芯片可編程邏輯陣列具有動靜態(tài)功率下消耗低特點,功率消耗是傳統(tǒng)芯片50%左右,具有如下屬性:
1)低消耗具有效率高優(yōu)勢,采集集成模塊,優(yōu)化I/O選擇標準,在待機條件下,可保持系統(tǒng)工作狀態(tài)與當前配置相符,采用多引腳方式支持零功耗休眠狀態(tài);
2)設計多個電壓方便存儲器接口的選擇,兼容3.0~1.5 V的標準協(xié)議,采用I/O轉換速率可完成調節(jié),進而提高信號傳送完整性;
3)設計集成存儲器控制模塊能夠支持多種接口信息存儲,電路總線帶有獨立半共享式存儲器(FIFO);
4)具有豐富資源,支持寄存器采用分布式設計原理;
5)具有不同粒度易揮發(fā)性隨機存取存儲器具有寫入與讀出速度快的特點,按照字節(jié)完成功能設計;
6)采用低噪聲、靈活性強時鐘管理方式,可提升系統(tǒng)性能;
7)采用多重配置方式,在引腳處設計自動檢測裝置,支持多重啟動方式。
1.1.2 抗干擾可編程邏輯陣列配置
以上述選擇Spartan-6芯片的屬性作為配置條件,為可編程邏輯陣列提供低成本方案。啟動電源,對可編程邏輯陣列配置內部寄存器和引腳進行初始化操作,待操作完成后,將可編程邏輯陣列工作模式切換到用戶工作模式,此時需解除I/O引腳的高阻值狀態(tài),按照硬件描述設計編程語言工作。
為了提高系統(tǒng)在信號干擾情況下仍然具有較高的控制能力,需設計兩種可編程邏輯陣列配置方式,分別是主動模式和被動模式[4]。
1.1.2.1 主動模式
針對Spartan-6芯片主動配置模式是將可編程邏輯陣列作為主要器件,外部相變存儲器為配件,在啟動電源之后,將器件中配置數(shù)據(jù)全部讀取出來,將讀取的數(shù)據(jù)存儲到靜態(tài)隨機存儲器之中,該配置方式有兩種,分別是串行配置和并行配置,方便電路設計。
1.1.2.2 被動模式
針對Spartan-6芯片被動配置模式是將可編程邏輯陣列作為配件,微控制單元作為主要器件,將這兩種器件視為控制芯片主要裝置,通過對芯片控制所提供時序圖,才能精準對編程進行配置,同樣該配置方式也具有兩種,分別是串行配置和并行配置,方便電路設計[5]。
在串行模式下,對存儲器中數(shù)據(jù)進行自動加載,選擇某公司50 MHz的M25P128型號時鐘接口為總線接口,將Spartan-6芯片可編程邏輯陣列作為主器件,PROM作為配件,將兩者連接后形成了配置主要結構。Spartan-6芯片的引腳處還需設置成01,方便后續(xù)引腳編號。將芯片底部引腳CCLK與M25P128型號時鐘引腳進行連接,為主配器件串行接口提供時鐘數(shù)據(jù)輸入通道;將芯片兩側MOSI和DIN引腳分別連接M25P128型號時鐘數(shù)據(jù)寫入和數(shù)據(jù)讀出引腳,如果向上拉伸可獲取相應數(shù)據(jù)指令,此時串行輸入狀態(tài)為封鎖狀態(tài);如果向下拉伸,需改變數(shù)據(jù)輸出狀態(tài)。將Spartan-6芯片CSO_ B作為器件引腳可直接與M25P128型號時鐘信號控制引腳連接,為芯片提供可選擇的信號。
利用Spartan-6芯片設計主—被動可編程邏輯陣列配置方案,在主動模式下,可編程邏輯陣列需從相變存儲器中讀取相關配置數(shù)據(jù),引導整個配置過程。當電源啟動后,配置數(shù)據(jù)將全部加載到陣列中,數(shù)據(jù)不會丟失,適合只對數(shù)據(jù)加載受到信號干擾情況下開發(fā),數(shù)據(jù)仍然保持完整;在被動模式下,需將外部控制芯片帶入整個電路引導配置過程當中,將可編程邏輯陣列作為存儲機制,將已經配置完成的數(shù)據(jù)全部寫入到陣列之中,從陣列中對數(shù)據(jù)進行在線燒寫,并全部存儲到靜態(tài)隨機存儲器。如果出現(xiàn)斷電,那么數(shù)據(jù)將全部消失,此時需重新燒寫,適合對系統(tǒng)正常運行受到信號干擾情況下開發(fā),數(shù)據(jù)可重新加載。該配置方案是系統(tǒng)硬件設計的創(chuàng)新之處,有效解決了信號干擾問題。
1.1.3 電路連接
根據(jù)上述選擇配置方案,將控制電路設計為5 V、3.3 V以及1.2 V三種不同電壓,而系統(tǒng)電源為9 V,將9 V電壓作為輸入電源,為其它供電電壓提供直流電源。將直流電壓通過芯片降壓的具體步驟為:首先將直流電壓轉換為交流電壓。然后將電壓進行變壓處理,最后將變壓后電壓轉化為直流電壓輸出。芯片具有三種電路形式,分別是降壓、升壓與隔離[6]。
控制系統(tǒng)電路設計結構如圖2所示。
圖2 控制系統(tǒng)電路設計結構
將電源開關啟動,為系統(tǒng)提供9 V交流電壓,通過轉換降壓,變?yōu)? V,全部輸出,此時輸出電壓可為目標提供安全電源電壓??删幊踢壿嬯嚵型ㄟ^一個金屬氧化物半導體場效應管座位控制開關,對目標進行控制,為芯片所需的三種電壓通過上述過程轉換獲取[7]。
系統(tǒng)硬件設計從整體結構方面展開分析,設計總體結構,選擇芯片種類,隨后對控制核心器件進行配置,詳細描述可編程邏輯陣列配置方式以及電路設計,確保系統(tǒng)供電電源穩(wěn)定,并提高系統(tǒng)在信號干擾條件下的硬件控制能力。
將上述硬件硬件主—被動配置進行軟件功能設計,主要以時序圖展示,其中包括時序命令解析、狀態(tài)轉換和讀寫操作等。交互軟件中設計既包括微控制單元兩部分,又包括面向對象程序的編程,在visual studio2017開發(fā)環(huán)境下,使用程序語言C++完成面向對象的程序編寫,微控制單元僅使用C語言就可完成編寫。采用中斷式的編程方式可實現(xiàn)可編程邏輯陣列的交互,其中主要涉及微控制單元的按鍵與串聯(lián)接口[8]。由于計算機與程序之間控制單元需通過獨立通道完成,互不干擾。
計算機與微控制單元涉及的流程基本一致,如圖3所示。
圖3 軟件設計流程
由圖3可知:一旦程序啟動,那么串口需及時打開,并進行初始化設置,等待按鍵接觸命令發(fā)送,可編程邏輯陣列在串口接收到數(shù)據(jù)后,需進行驗證,待完成之后,再向上位機的微控制單元傳送,將接收的數(shù)據(jù)從串口處進行信號回復,并解析處理,如果驗證結果正確,那么直接向用戶展示結果;如果驗證結果錯誤,那么說明串聯(lián)數(shù)據(jù)接口信息發(fā)送或者接收時出現(xiàn)錯誤,計算機需重新向串口處發(fā)送指令數(shù)據(jù),進行下一次的接收與校驗。倘若發(fā)送所有命令均無法得到正確回復,那么在結果顯示時會出現(xiàn)系統(tǒng)出現(xiàn)故障字樣。對于數(shù)據(jù)發(fā)送指令與接收,其長度都會小于6字節(jié)長度,數(shù)據(jù)發(fā)送指令與接收都能夠正常完成,說明完成一次交互[9]。
根據(jù)軟件設計流程對芯片配置寫入與讀出進行設計,其中寫入行為是以頁為基本單位實現(xiàn)的周期性執(zhí)行動作,寫入指令時序圖,如圖4所示。
圖4 寫入操作時序
發(fā)送操作指令時,需指定固定頁碼地址,同時寫入跳變結果,將4個字節(jié)從高到低依次寫入,組合成32位的比特數(shù)據(jù)即為1個單詞。在信號接口處,離散地址信號SOC_ADR[16:2]組合值形成一頁數(shù)據(jù)實際值,離散地址信號SOC_ADR[15:8] 組合值形成一個比特的數(shù)據(jù)值,連續(xù)時間段的周期數(shù)據(jù)組成一個32位的比特數(shù)據(jù)即為1個單詞。
讀出行為也是具有周期性執(zhí)行動作,讀出指令時序圖,如圖5所示。
圖5 讀出操作時序
指定單詞地址進行讀取,首先發(fā)送數(shù)據(jù)地址,將離散地址電平SOC_ALE拉高,并封鎖到相應存儲器中,保持高電平禁止將數(shù)據(jù)寫入其中,延時等待,讀取1個單詞數(shù)據(jù),并在連續(xù)周期內依次賦予時間值,并將數(shù)據(jù)值對應的數(shù)據(jù)全部返回到離散地址信號SOC_ ADR[15:8]信號線中。
將硬件配置進行軟件功能設計,主要以時序圖展示。寫入行為是以頁為基本單位實現(xiàn)周期性執(zhí)行動作,而讀出行為也是具有周期性的,分別設計寫入與讀出指令時序圖,可以阻止信號干擾造成的數(shù)據(jù)地址發(fā)送不明確現(xiàn)象發(fā)生,通過時序圖來展示控制結果,間接提高系統(tǒng)控制能力。時序圖是軟件部分設計的創(chuàng)新之處,可有效阻止外界干擾信號對數(shù)據(jù)傳輸造成的影響。
針對相變存儲器離散地址數(shù)據(jù)寫入讀出控制系統(tǒng)進行了實驗研究與設計,通過實驗驗證系統(tǒng)硬件與軟件設計的有效性,實現(xiàn)離散數(shù)據(jù)寫入讀出的有效控制。
在系統(tǒng)硬件設計過程中,對連接導線進行了鋪設和屏蔽,整個組件都固定在機械構架上。設置系統(tǒng)控制板操作原理,之后安裝在固定設備上,對已經指定的IP地址系統(tǒng)進行優(yōu)化處理,最后使用Linux操作系統(tǒng)對PC主機進行調試,通過主機控制終端。當所有硬件都安裝完成之后,對整個系統(tǒng)開始進行實驗驗證,檢查配置Spartan-6 FPGA在信號干擾情況下硬件控制是否受到影響,將傳統(tǒng)系統(tǒng)與采用可編程邏輯陣列方式設計的系統(tǒng)進行對比,結果如圖6所示。
圖6 不同系統(tǒng)在信號干擾情況下硬件控制效果
當系統(tǒng)沒有實行控制之前,兩個系統(tǒng)的控制效果在理論上可達到100%,但是逐漸增強信號干擾強度,傳統(tǒng)系統(tǒng)控制能力下降到了80%,采用可編程邏輯陣列方式設計的系統(tǒng)控制能力下降到了83%;當信號強度為400 Hz時,傳統(tǒng)控制能力達到了最低,為42%,而采用可編程邏輯陣列方式設計的系統(tǒng)控制能力始終在80%上下波動,無明顯變化。由此可知,配置Spartan-6 FPGA的系統(tǒng)硬件設計在信號干擾情況下仍然進行有效控制。
在實驗過程中,模擬系統(tǒng)運行狀態(tài),對軟件功能進行校驗,通過在寫入端施加激勵,在讀出端口處獲得一個響應,比較響應結果與功能需求是否一致,由于實驗過程是趨向于理想化的,為此可忽略電路中的延時性。對校驗過程中出現(xiàn)的問題需及時調整再進行實驗,保證系統(tǒng)測試時,各個軟件之間達到相互協(xié)調效果,施加的激勵通過Verilog語言進行編寫。
1)寫操作驗證。
寫入操作是以頁為單位的,信號接口與寫入行為操作信號是一一對應的,每一頁寫入離散地址數(shù)據(jù)是以寫入的三個指令發(fā)送作為啟動信號,之后才是離散地址數(shù)據(jù)的發(fā)送。針對寫入信號的發(fā)送,假設SOC_ALE為高電平,對離散地址數(shù)據(jù)進行鎖存;SOC_ADR[11:7]為離散地址信號,ADDR0至ADDR2值的依次對應時序中的0X0A、0X15和0X0A。反之,如果SOC_ALE為低電平,SOC_ADR[5:2]值表示在4段時間8/4/2/1中對應的離散地址數(shù)據(jù),這4個有效時間數(shù)據(jù)組成一個指令值,那么DATA0至DATA2值依次對應時序中的0X0000_00AA、0X0000_0055和0X0000_00A0。施加激勵后SOC_ADR[15:8]寫入數(shù)據(jù)標準值為:0X0123,0X4567,0X89ab,將傳統(tǒng)系統(tǒng)與采用可編程邏輯陣列方式設計的系統(tǒng)對寫入施加激勵后的時序圖進行驗證分析,結果如圖7所示。
圖7 不同系統(tǒng)寫入時序圖驗證對比結果
由圖7可知:采用傳統(tǒng)系統(tǒng)對施加激勵后寫入數(shù)據(jù)獲取結果為:0X0246,0X8ace,0X8973,而采用可編程邏輯陣列方式設計的系統(tǒng)對施加激勵后寫入數(shù)據(jù)獲取結果為:0X0123,0X4567,0X89ab。由此可知,在時序對比圖中,采用采用可編程邏輯陣列方式設計的系統(tǒng)與標準值相對應寫入準確。
2)讀出操作驗證。
與上述寫入操作步驟基本一致,當SOC_ALE為高電平,對離散地址數(shù)據(jù)進行鎖存,此時的讀出數(shù)據(jù)為:Block0、Block1、Block2、Block3,對應的地址數(shù)據(jù)為:0-0X1fff、0X2fff -0X3fff、0X4fff -0X5fff、0X6fff -0X7fff。將離散地址數(shù)據(jù)封鎖后,延時等待再進行數(shù)據(jù)讀出工作,施加激勵獲取的響應結果是0X0123,0X4567,0X89ab,0Xcdef,同樣將將傳統(tǒng)系統(tǒng)與采用可編程邏輯陣列方式設計的系統(tǒng)對輸出施加激勵后的時序圖進行驗證分析,結果如圖8所示。
圖8 不同系統(tǒng)輸出時序圖驗證對比結果
由圖8可知:采用傳統(tǒng)系統(tǒng)對施加激勵后輸出數(shù)據(jù)獲取結果為:0X8439,0X6438,0X7524,0Xa1fe,而采用可編程邏輯陣列方式設計的系統(tǒng)對施加激勵后寫入數(shù)據(jù)獲取結果為:0X0123,0X4567,0X89ab,0Xcdef。由此可知,在時序對比圖中,采用采用可編程邏輯陣列方式設計系統(tǒng)與標準值相對應輸出準確。
根據(jù)上述實驗驗證內容,可得出實驗結論:
兩個系統(tǒng)控制效果在理論上可達到100%,逐漸增強信號干擾,傳統(tǒng)系統(tǒng)控制能力達到了在信號強度為400 Hz時,控制能力達到了最低為42%,而采用可編程邏輯陣列方式設計的系統(tǒng)控制能力始終在80%上下波動,無明顯變化。分別對寫入和輸出端口施加激勵后,采用可編程邏輯陣列方式設計的系統(tǒng)寫入和輸出數(shù)據(jù)獲取結果與標準值相一致。由此可知,針對配置Spartan-6 FPGA硬件中的寫入與輸出功能能夠對整個系統(tǒng)進行有效控制,且控制能力較強。
采用可編程邏輯陣列對相變存儲器離散地址數(shù)據(jù)寫入讀出控制系統(tǒng)進行設計,可抵抗外界信號造成的干擾,尤其是在信號干擾強度較大的工廠或企業(yè)可使用該控制系統(tǒng)完成離散地址數(shù)據(jù)的讀寫。雖然該系統(tǒng)具有良好的控制能力,但也發(fā)現(xiàn)該系統(tǒng)存在需要改進與提升的地方。經過對系統(tǒng)進行多輪測試后,發(fā)現(xiàn)其穩(wěn)定性還有待驗證,在配置軟件中的代碼效率需進行優(yōu)化,為此,在未來研究中,還需進行深入探討。