<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 數字示波器中的波形存儲、錄制與回放

數字示波器中的波形存儲、錄制與回放

作者: 時(shí)間:2011-12-19 來(lái)源:網(wǎng)絡(luò ) 收藏

對FLASH的操作主要有復位、寫(xiě)、讀和擦除操作。其中寫(xiě)操作只能將FLASH的數據由1寫(xiě)為0,如果試圖將0寫(xiě)為1就會(huì )出錯。如果該區域已經(jīng)寫(xiě)過(guò)就只能先擦除,而FLASH的擦除只能以塊為單位,如果對FLASH頻繁擦除會(huì )減少壽命,因此給A1,A2;2個(gè)區各分2個(gè)塊。假設每1塊可以10幅。當第1塊存滿(mǎn)10幅數據后,下一幅在第2塊中,同時(shí)擦除第1塊,注意必須是在開(kāi)始寫(xiě)第2塊之后才能擦除第1塊,這樣可以避免有效數據被擦除。當第2塊數據寫(xiě)滿(mǎn)之后重新寫(xiě)第1塊,并擦除第2塊,這樣整體看來(lái),20幅波形才會(huì )對一個(gè)塊進(jìn)行擦除,避免了頻繁擦除FLASH的某些位置。波形存儲流程示意圖如圖1所示。

本文引用地址:http://dyxdggzs.com/article/194611.htm

b.jpg


存儲1幅波形(例如通道1的正常觸發(fā)時(shí)候的波形)的具體過(guò)程如下:
(1)A1區中包含2個(gè)塊(a、b)可以存儲該波形。確定每一個(gè)塊最多可以存儲波形數量(count),a塊的起始地址ADDR_START;b塊起始地址就是ADDR_START+0x08000,定義一個(gè)實(shí)際的存儲地址FLASH_addr。
(2)從FM24LC02中讀取該區中已存波形的邏輯位置N1,N1+1就是現在要存波形的邏輯位置。
如果N1≤count,數據存儲在a中,地址是FLASH_addr=ADDR_START+(N1-1)K1。
如果N1=count+1,數據存儲在b中,地址是FLASH_addr=ADDR_START+0x08000+(N1-count-1)K1,數據存儲之后擦除a中的數據。
如果count+1N12count,數據存儲在b中,地址是FLASH_addr=ADDR_START+0x08000+(N1-count-1)K1。
如果N1=2count,數據存儲在b中,地址是FLASH_addr=ADDR_START+0x08000+(N1-count-1)K1,存儲之后,N1=0。下一幅波形存儲在a中,然后擦除b中的數據。
(3)將邏輯位置N1存儲在FM24CL04的X1的位置。
注意,DSP接收到采樣數據后,需要根據時(shí)基通過(guò)軟件再次抽點(diǎn)后的數據才是需要顯示的波形數據。FLASH中存儲的波形數據是軟件抽點(diǎn)以前的數據,這樣在調出波形數據以后可以根據用戶(hù)的要求做相應處理。
調出FLASH中的波形只需要計算出該波形在FLASH中的位置就可以。根據觸發(fā)模式從鐵電存儲器中的對應位置讀出對應波形的邏輯位置N,根據N來(lái)計算數據的起始地址。如果N≤count,FLASH_addr=ADDR_START+(N-1)K,如果N>count,FLASH_addr=ADDR_START+(N-count-1)K,根據計算出的地址按照對應波形數據的大小讀取數據。
存儲與過(guò)程的重點(diǎn)在于對FLASH進(jìn)行操作的程序,主要是對FLASH內部的命令寄存器按照一定的時(shí)序寫(xiě)入命令。
2.2 波形錄制與
用戶(hù)在使用示波器時(shí),常常遇到一些瞬態(tài)信號,在還沒(méi)有來(lái)得及捕捉之前信號已經(jīng)消失,這樣就需要波形錄制與功能,將波形錄制下來(lái),事后再慢慢尋找并觀(guān)察。波形錄制是將波形數據存儲在SDRAM中。本設計中最多可以錄制100幅波形,并且是最近的100幅,如果已經(jīng)錄制滿(mǎn)之后就會(huì )替換最先錄制的波形數據,而每副波形數據大小為400個(gè)點(diǎn),這樣就需要分配出400×100大小的空間。本設計中使用ADSP BF531
的DMA方式,把顯示緩存中的波形數據直接傳送給波形錄制的緩存,這樣可以不經(jīng)過(guò)CPU就實(shí)現了數據的高速存儲,本設計中采用的是Memory到Memory之間的DMA方式。BF531中的具體配置如下:
c.jpg
d.jpg
以上是目的地址的DMA設置。注意數據源的DMA必須在目的地址的DMA使能之前使能。
每次波形顯示之后啟動(dòng)DMA方式把波形數據存儲到錄制緩存中。錄制滿(mǎn)100幅波形之后就必須剔除最先錄制的波形,定義一個(gè)波形數目wave_data,一個(gè)波形覆蓋數目cover_data,cover_data在0~99之間循環(huán)變化。錄制緩存的首地址為L(cháng)uzhi_addr,每存儲一幅波形wave_data加1。
如果wave_data100,波形錄制的地址為L(cháng)uzhi_addr+400*wave_data。
如果wave_data=100,wave_data保持100不變,cover_data加1,波形錄制的地址為L(cháng)uzhi_addr+400*(cover_data-1)。cover_data在0~100之間循環(huán)。



關(guān)鍵詞: 數字示波器 波形 存儲 回放

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>