• 
    

    
    

      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
      临西县| 九龙城区| 昌乐县| 安庆市| 呈贡县| 蓬莱市| 东乡族自治县| 郑州市| 富阳市| 平乡县| 鲁山县| 阿鲁科尔沁旗| 榆中县| 阿城市| 双牌县| 汝州市| 寻甸| 麻城市| 会宁县| 积石山| 百色市| 鱼台县| 金阳县| 通辽市| 织金县| 灯塔市| 仁布县| 临武县| 上高县| 奉新县| 钦州市| 临泽县| 灵山县| 诸暨市| 加查县| 泾阳县| 达孜县| 邢台县| 海原县| 法库县| 开远市|