<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è) > 嵌入式系統 > 設計應用 > 用FPGA實(shí)現非標碼速向標準碼速的調整

用FPGA實(shí)現非標碼速向標準碼速的調整

作者:信息產(chǎn)業(yè)部電子第34研究所 時(shí)間:2003-03-17 來(lái)源:電子設計應用 收藏
摘要:本文主要討論了如何利用FPGA可編程芯片實(shí)現計算機輸出的異步非標碼速(如9.6k、19.2k、57.6k、115.2k、460.8k等)到其鄰近的標準碼速(如64k、128k、256k、512k)的調整,實(shí)現該數據與通用傳輸系統的適配,以便能進(jìn)行遠程監控。
關(guān)鍵詞: FPGA
一、概述
現在,利用計算機進(jìn)行異地數據采集正應用到越來(lái)越多的場(chǎng)合,如何高效而低成本地回傳數據成為一個(gè)值得討論的問(wèn)題。由于計算機輸出的數據一般都是異步數據,而且碼率與通信的標準碼率也不一致,如果要利用現有的電信網(wǎng)絡(luò )進(jìn)行傳輸,就會(huì )涉及到和異同步轉換的接口問(wèn)題,由于的內型比較多,本文將只討論如何將較低的異步非標碼速調整到比它高的標準碼速上。
二、方案設計
在傳統的數字電路中,對異步數據的變換處理一般采用通用異步收發(fā)器與單片機聯(lián)合工作的方式。這種方式的優(yōu)點(diǎn)就是電路結構成熟,軟件編程簡(jiǎn)單,只要掌握一定的單片機語(yǔ)言即可進(jìn)行開(kāi)發(fā)。但它的缺點(diǎn)也是顯而易見(jiàn)的,集成度不高,硬件電路結構復雜,當同時(shí)處理多路數據時(shí),軟件設計的難度也將加大?,F在隨著(zhù)科技的進(jìn)步,可編程器件的價(jià)格已經(jīng)可以接受,一塊一萬(wàn)邏輯門(mén)的FPGA芯片百元左右就可以買(mǎi)到,而這樣一塊芯片足可以集成3~4路獨立的碼速調整電路,所以采用FPGA芯片編程實(shí)現異步數據的處理將會(huì )使外圍電路變得非常簡(jiǎn)潔,同時(shí)由于數據絕大部分時(shí)間都是在芯片內部運行,也有利于其傳輸穩定性的提高。另外,FPGA芯片大部分都可以重復擦寫(xiě),只要改動(dòng)程序設計即可實(shí)現不同功能的轉換,從而加速同類(lèi)型產(chǎn)品的開(kāi)發(fā)速度,節約投資。用于開(kāi)發(fā)可編程器件的軟件可以到各器件廠(chǎng)家的網(wǎng)站直接下載。
碼速調整方案的具體框圖見(jiàn)圖一,在其數據接收端內置了一個(gè)類(lèi)似異步收發(fā)器的結構,采用16倍速高速采樣檢測異步信號起始電平的到來(lái)。為了便于描述,這里我們假設要處理的異步數據為7bit,加上一位起始位和一位停止位,總共為9bit。
三、工作流程描述
我們設計的思路是仿照通用異步收發(fā)器的執行過(guò)程,但在接收數據時(shí)并不去掉起始位和停止位,而是將數據按原來(lái)的碼速全部接收下來(lái)后再以標準的碼速發(fā)送出去,接收方的電路結構與發(fā)送方基本相同,只是少了一個(gè)空閑時(shí)插入“1”碼的電路。
根據異步信號的通信規則,沒(méi)有信號時(shí)數據線(xiàn)應表現為高電平,這時(shí)使用一個(gè)16倍于數據流的高速時(shí)鐘對數據線(xiàn)進(jìn)行采樣,當檢測到信號下降沿后,表示數據的起始電平有可能已經(jīng)到來(lái),這時(shí)采樣器會(huì )輸出一個(gè)reset信號使一個(gè)16分頻的計數器復位,如果在8個(gè)高速脈沖內輸入信號又恢復到高電平,則說(shuō)明剛才是干擾信號,系統又回到起始狀態(tài);反之如果信號仍維持低電平,則表示數據起始電平已經(jīng)到來(lái), 16分頻的計數器開(kāi)始工作,

經(jīng)16分頻后輸出一個(gè)與輸入數據準同步的數據寫(xiě)入時(shí)鐘Write_clk,將數據讀入并存放在一個(gè)9位寄存器中。
在異步數據的讀取過(guò)程中,使用一個(gè)10位計數器進(jìn)行計數,在一幀數據讀入結束后計數器復位并產(chǎn)生一個(gè)標志信號over=‘1’,一方面使16分頻計數器停止工作,數據暫停讀入,直到下一幀數據的起始電平到來(lái);另一方面將數據轉移到發(fā)送區,準備數據的發(fā)送。
數據發(fā)送由Ready信號控制,也是通過(guò)一個(gè)10bit的計數器進(jìn)行發(fā)送計數。發(fā)送區在上電后將一直發(fā)送“1”碼,直至檢測到第二幀數據的起始位,這時(shí)發(fā)送區將發(fā)送已經(jīng)結束完畢的第一幀數據,依次類(lèi)推。由于碼速都是由低向高調整(即慢收快發(fā)),故一幀數據發(fā)送完畢后,其下一幀數據的讀入還沒(méi)有完成,為了保證數據的連續性和完整性,這時(shí)系統將自動(dòng)插入空碼“1” ,這些插入的“1”碼在接收端接收時(shí)會(huì )因碼速的差別(即快收慢發(fā))而被自動(dòng)去掉。
當處理多路數據時(shí),如果大家都采用相同的clock2,則經(jīng)變換后輸出的多路數據將變成同步數據,可以直接進(jìn)行同步復接。
主要信號工作時(shí)序如圖二示,所有程序在A(yíng)LTERA 的MAXPLUSII 10.0BASE環(huán)境下編譯通過(guò)。



四、參考文獻

1.《VHDL簡(jiǎn)明教程》 電子科技大學(xué)出版社 潘松 王國棟 編著(zhù) 2000.2
2.《MCS-51系列單片機實(shí)用接口技術(shù)》 北京航空航天大學(xué)出版社 李華主編 1993



關(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>