新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用FPGA實現(xiàn)非標碼速向標準碼速的調整

        用FPGA實現(xiàn)非標碼速向標準碼速的調整

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

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



        四、參考文獻

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



        關鍵詞: 碼速調整

        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 泰州市| 洮南市| 米易县| 吉林市| 连城县| 临洮县| 襄樊市| 平山县| 临沂市| 大埔县| 西充县| 台湾省| 方山县| 宁城县| 山东| 林芝县| 阿瓦提县| 西乌珠穆沁旗| 渭南市| 武功县| 浏阳市| 铅山县| 吴江市| 扎兰屯市| 松阳县| 磴口县| 临桂县| 通化市| 罗平县| 涡阳县| 平利县| 柳河县| 乃东县| 顺平县| 巫溪县| 平谷区| 商水县| 汝州市| 纳雍县| 施秉县| 崇信县|