• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種并行異步FIFO控制算法設(shè)計(jì)

    2012-07-25 03:18:50劉鳳偉
    微處理機(jī) 2012年5期
    關(guān)鍵詞:控制參數(shù)存儲(chǔ)器控制算法

    劉鳳偉

    (昆明船舶設(shè)備試驗(yàn)研究中心,昆明650051)

    1 引言

    在電子設(shè)計(jì)系統(tǒng)中,常常需要對(duì)各種數(shù)據(jù)進(jìn)行接收、存儲(chǔ)和發(fā)送。例如在數(shù)據(jù)采集系統(tǒng)中,需要通過(guò)高速AD、微處理器和一些接口電路實(shí)現(xiàn)數(shù)據(jù)的采集[1]。但是由于不同電路/系統(tǒng)之間的工作時(shí)鐘速度不同,通常會(huì)給數(shù)據(jù)的傳輸帶來(lái)困難,而利用FIFO電路實(shí)現(xiàn)不同時(shí)鐘域數(shù)據(jù)的接收、存儲(chǔ)和發(fā)送具有接口簡(jiǎn)單、讀寫方便的優(yōu)點(diǎn),使用異步FIFO是有效解決在兩個(gè)不同時(shí)鐘系統(tǒng)之間快速而方便地傳輸實(shí)時(shí)數(shù)據(jù)的方法[2]。在此提出了一種FIFO控制算法,具有工作速度高、可靠性好、設(shè)計(jì)簡(jiǎn)單靈活的優(yōu)點(diǎn),具有廣泛的應(yīng)用前景。

    2 FIFO控制算法

    FIFO控制算法,即是一種先入先出的存儲(chǔ)器控制算法,其使用一個(gè)雙端口存儲(chǔ)器存放數(shù)據(jù),數(shù)據(jù)發(fā)送方在一端寫入數(shù)據(jù),接收方在另一端讀出數(shù)據(jù),良好的FIFO控制算法能夠非常好的協(xié)調(diào)兩個(gè)時(shí)鐘域的讀/寫工作,滿足高時(shí)鐘頻率的要求。在FIFO設(shè)計(jì)中,有軟件FIFO和硬件FIFO,常用的硬件FIFO由專用的ASIC芯片組成,提供外部接口,可以很方便的實(shí)現(xiàn)數(shù)據(jù)控制,例如IDT公司的7200系列異步雙口FIFO存儲(chǔ)器[3]。根據(jù)FIFO的工作時(shí)鐘,可將FIFO分為同步FIFO和異步FIFO,同步FIFO是指讀/寫時(shí)鐘是同一個(gè)時(shí)鐘,在時(shí)鐘沿來(lái)臨時(shí)同時(shí)對(duì)存儲(chǔ)器進(jìn)行讀/寫操作,異步FIFO是指讀/寫時(shí)鐘不是同一個(gè)時(shí)鐘,而是相互獨(dú)立的,在時(shí)鐘沿來(lái)臨時(shí)分別對(duì)存儲(chǔ)器進(jìn)行讀/寫操作[4]。

    FIFO控制算法包括兩部分:寫FIFO算法和讀FIFO算法。以下將詳細(xì)分別介紹這兩種算法。為了更好地理解這兩種算法,首先定義與這兩種算法相關(guān)的控制參數(shù),其中包括:Flag:標(biāo)志位;CW Enable:寫使能;CREnable:讀使能;CWNum:當(dāng)前能夠讀取數(shù)據(jù)的個(gè)數(shù);CRNum:當(dāng)前能夠?qū)懭霐?shù)據(jù)的個(gè)數(shù);CurWNum:當(dāng)前寫指針相對(duì)于首地址的位置;CurRNum:當(dāng)前讀指針相對(duì)于首地址的位置;WFull:寫存儲(chǔ)器滿標(biāo)志;REmpty:讀存儲(chǔ)器空標(biāo)志;Len:存儲(chǔ)器深度;DAT[Len]:定義的存儲(chǔ)器空間。

    在對(duì)FIFO操作前,需要首先初始化系統(tǒng)。包括初始化FIFO的控制參數(shù)和存儲(chǔ)器。初始化FIFO的控制參數(shù):Flag=0;CWEnable=1;CREnable=1;CWNum=0;CRNum=0;CurWNum=0;CurRNum=0;WFull=0;REmpty=0;初始化存儲(chǔ)器:存儲(chǔ)器深度:Len;存儲(chǔ)器的存儲(chǔ)空間:DAT[Len]。

    2.1 寫FIFO控制算法

    寫FIFO的控制算法:如圖1所示,首先,判斷寫使能CWEnable是否等于1,等于1說(shuō)明此時(shí)可以進(jìn)行寫操作,不等于1,則說(shuō)明此時(shí)不能進(jìn)行寫操作,則退出。然后根據(jù)標(biāo)志位Flag的狀態(tài),計(jì)算出此時(shí)可以寫入數(shù)據(jù)的總個(gè)數(shù)CWNum;然后判斷CWNum是否大于0。如果不大于0,則說(shuō)明此時(shí)存儲(chǔ)器不能寫入數(shù)據(jù),此時(shí)置WFull為1,表示存儲(chǔ)器已經(jīng)寫滿,然后結(jié)束寫FIFO操作,如果大于0,則說(shuō)明此時(shí)存儲(chǔ)器可以寫入數(shù)據(jù);緊接著把數(shù)據(jù)寫入地址為CurWNum的存儲(chǔ)器中;其次判斷CurWNum是否等于Len,如果不等于Len則說(shuō)明還沒(méi)有寫到存儲(chǔ)器的頂端,然后結(jié)束寫FIFO操作,如果等于Len則說(shuō)明此時(shí)已經(jīng)寫到了存儲(chǔ)器的頂端,此時(shí)需要禁止標(biāo)志位CREnable使其等于0(禁止讀FIFO操作),然后改寫標(biāo)志位Flag為1和CurWNum為0,緊接著釋放讀標(biāo)志位CREnable等于1;最后結(jié)束寫FIFO操作。

    圖1 寫FIFO的流程圖

    2.2 讀FIFO控制算法

    讀FIFO的控制算法流程:如圖2所示,首先判斷讀使能CREnable是否等于1,等于1說(shuō)明此時(shí)可以進(jìn)行讀操作,不等于1則說(shuō)明此時(shí)不能進(jìn)行讀操作,則退出。然后根據(jù)標(biāo)志位Flag的狀態(tài),計(jì)算出此時(shí)可以讀出數(shù)據(jù)的總個(gè)數(shù)CRNum;然后判斷CRNum是否大于0,如果不大于0,則說(shuō)明此時(shí)不能從存儲(chǔ)器讀取數(shù)據(jù),此時(shí)置REmpty為1,表示存儲(chǔ)器已經(jīng)讀空,然后結(jié)束讀FIFO操作。如果大于0,則說(shuō)明此時(shí)可以從存儲(chǔ)器讀取數(shù)據(jù);緊接著從地址為CurRNum的存儲(chǔ)器中讀取數(shù)據(jù);其次判斷CurRNum是否等于Len,如果不等于Len,則說(shuō)明還沒(méi)有讀到存儲(chǔ)器的頂端,然后結(jié)束讀FIFO操作,如果等于Len,則說(shuō)明此時(shí)已經(jīng)讀取到了存儲(chǔ)器的頂端,此時(shí)需要禁止寫標(biāo)志位CWEnable使其等于0(禁止寫FIFO操作),然后改寫標(biāo)志位Flag為0和CurRNum為0,緊接著釋放寫標(biāo)志位CWEnable等于1,最后結(jié)束讀FIFO操作。

    3 測(cè)試系統(tǒng)設(shè)計(jì)與結(jié)果分析

    在第二節(jié)中,分別詳細(xì)介紹了寫FIFO的控制算法和讀FIFO的控制算法。為了驗(yàn)證該控制算法的系統(tǒng)性能和指標(biāo),根據(jù)系統(tǒng)需求,搭建了硬件測(cè)試平臺(tái),硬件包括:多通道數(shù)據(jù)采集板、PC機(jī)、USBRS232轉(zhuǎn)接器、示波器和萬(wàn)用表;系統(tǒng)軟件:Microsoft Visual C++6.0開(kāi)發(fā)的專用上位機(jī)軟件,測(cè)試系統(tǒng)框圖如圖3所示。

    圖2 讀FIFO的流程圖

    圖3 測(cè)試系統(tǒng)原理框圖

    測(cè)試結(jié)果表明,運(yùn)用該FIFO控制算法的多通道數(shù)據(jù)采集板性能穩(wěn)定可靠。該FIFO控制算法設(shè)計(jì)結(jié)構(gòu)簡(jiǎn)單、性能穩(wěn)定可靠,適用于多種FIFO運(yùn)用場(chǎng)合,對(duì)更高性能的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)具有非常重要的意義。

    [1] 高禮忠.FIFO在高速數(shù)據(jù)采集系統(tǒng)中應(yīng)用[J].電子測(cè)量技術(shù),2005(1):51.

    [2] 魏欣,王勇.一種高效的異步FIFO設(shè)計(jì)方法[J].儀器儀表用戶,2009,16(1):102.

    [3] 戴志濤.PCI總線雙向FIFO緩沖并行通信的實(shí)現(xiàn)[J].微處理機(jī),2002,(3):53-55,64..

    [4] 李輝,王暉.基于VHDL的異步FIFO設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(14):154.

    猜你喜歡
    控制參數(shù)存儲(chǔ)器控制算法
    高超聲速飛行器滑??刂茀?shù)整定方法設(shè)計(jì)*
    靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
    Birkhoff系統(tǒng)穩(wěn)定性的動(dòng)力學(xué)控制1)
    基于ARM+FPGA的模塊化同步控制算法研究
    基于PI與準(zhǔn)PR調(diào)節(jié)的并網(wǎng)逆變器控制參數(shù)設(shè)計(jì)
    黑龍江電力(2017年1期)2017-05-17 04:25:08
    一種優(yōu)化的基于ARM Cortex-M3電池組均衡控制算法應(yīng)用
    存儲(chǔ)器——安格爾(墨西哥)▲
    一種非圓旋轉(zhuǎn)工件支撐裝置控制算法
    基于Nand Flash的高速存儲(chǔ)器結(jié)構(gòu)設(shè)計(jì)
    DI材橫向厚差自動(dòng)控制算法及其應(yīng)用
    上海金屬(2013年4期)2013-12-20 07:57:17
    福鼎市| 阜南县| 大足县| 连平县| 兴山县| 墨江| 临潭县| 卢氏县| 荔波县| 长丰县| 买车| 华池县| 霍林郭勒市| 白水县| 图们市| 从化市| 定日县| 巨鹿县| 信丰县| 巴东县| 金沙县| 留坝县| 乳源| 沧州市| 汾西县| 锡林郭勒盟| 台州市| 安庆市| 宜丰县| 德安县| 新昌县| 新化县| 湛江市| 临沂市| 杭锦旗| 肃北| 淳化县| 姚安县| 邵东县| 建湖县| 武清区|