專(zhuān)利名稱(chēng):通過(guò)數(shù)據(jù)總線發(fā)送及接收數(shù)據(jù)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)傳輸,尤其涉及在接收方和發(fā)送方的時(shí)鐘有頻差或相差情況下的數(shù)據(jù)傳輸。
目前異步時(shí)鐘芯片間的數(shù)據(jù)采集主要靠鎖相環(huán)技術(shù)。其主要功能是使芯片的時(shí)鐘同步起來(lái),但其結(jié)構(gòu)較復(fù)雜,不易在FPGA中實(shí)現(xiàn)。如果在片外增加鎖相環(huán),會(huì)占用PCB板的資源。如果將鎖相環(huán)集成在ASIC中要占用較大的面積,且實(shí)現(xiàn)起來(lái)較復(fù)雜。在芯片之間進(jìn)行數(shù)據(jù)通信時(shí),雖然芯片都是相同的工作頻率,但不同的芯片可能采用不同的時(shí)鐘源(如
圖1中的芯片1,2,3,4的工作方式),或即使采用同一時(shí)鐘源,芯片之間的距離較遠(yuǎn),導(dǎo)致時(shí)鐘到達(dá)各芯片的時(shí)間不一致且不定,造成較大的相位差或相位漂移(如圖1中芯片2和5的工作方式),在這種芯片之間時(shí)鐘異步或有相差的情況下,很難進(jìn)行穩(wěn)定的數(shù)據(jù)通信,必須要對(duì)總線的數(shù)據(jù)進(jìn)行同步調(diào)整。
因此本發(fā)明的目的是提供一種傳輸數(shù)據(jù)的方法和裝置,從而在時(shí)鐘相位異步或有相差的情況下,通信雙方仍能相互準(zhǔn)確、穩(wěn)定地接收對(duì)方的數(shù)據(jù)。該方案易于在FPGA、ASIC中實(shí)現(xiàn)。
為了實(shí)現(xiàn)以上目的,本發(fā)明的主要解決方案是“動(dòng)態(tài)調(diào)節(jié)采樣點(diǎn)”和“動(dòng)態(tài)調(diào)節(jié)采樣數(shù)據(jù)流的速率”的方法?!皠?dòng)態(tài)調(diào)節(jié)采樣點(diǎn)”和“動(dòng)態(tài)調(diào)節(jié)采樣數(shù)據(jù)流的速率”的方法是對(duì)于接收數(shù)據(jù)的芯片而言的,在每幀數(shù)據(jù)的幀頭處根據(jù)接收、發(fā)送芯片的時(shí)鐘相位差來(lái)調(diào)節(jié)接收數(shù)據(jù)芯片的采樣起始點(diǎn),使其不超過(guò)一個(gè)預(yù)設(shè)的“安全范圍”,在采樣起始點(diǎn)調(diào)節(jié)后,采樣數(shù)據(jù)在該點(diǎn)的速率可能發(fā)生變化,這時(shí)通過(guò)在幀與幀之間增加或減少一個(gè)無(wú)效字的方法來(lái)調(diào)節(jié)采樣數(shù)據(jù)的速率。這樣就可以在接收數(shù)據(jù)的芯片中得到穩(wěn)定、準(zhǔn)確的數(shù)據(jù)。
根據(jù)本發(fā)明的第一方面,提供了一種發(fā)送裝置在數(shù)據(jù)總線上發(fā)送數(shù)據(jù)的方法,其中發(fā)送裝置在第一時(shí)鐘的控制下工作,數(shù)據(jù)總線包括數(shù)據(jù)線和控制線,該方法的特征在于包括下列步驟讓數(shù)據(jù)總線工作在第二時(shí)鐘,第二時(shí)鐘的周期大于第一時(shí)鐘的周期;將數(shù)據(jù)以幀的形式發(fā)送,并在發(fā)送的數(shù)據(jù)幀之間插入無(wú)效數(shù)據(jù)字;用一個(gè)同步信號(hào)給出幀的起始位置;以及用一個(gè)標(biāo)志位指出無(wú)效數(shù)據(jù)字。
根據(jù)本發(fā)明的第二方面,一種通過(guò)數(shù)據(jù)總線發(fā)送數(shù)據(jù)的數(shù)據(jù)發(fā)送裝置,該發(fā)送裝置在第一時(shí)鐘的控制下工作,數(shù)據(jù)總線包括數(shù)據(jù)線和控制線,其特征在于該裝置包括第二時(shí)鐘產(chǎn)生部件,產(chǎn)生的第二時(shí)鐘的周期大于第一時(shí)鐘;發(fā)送數(shù)據(jù)格式化部件,用于在發(fā)送的數(shù)據(jù)幀之間插入無(wú)效數(shù)據(jù)字個(gè);同步信號(hào)產(chǎn)生部件,產(chǎn)生的同步信號(hào)用于給出幀的起始位置;以及標(biāo)志位產(chǎn)生部件,產(chǎn)生的標(biāo)志位用于指出無(wú)效數(shù)據(jù)字。
根據(jù)本發(fā)明的第三方面,提供了一種接收裝置在數(shù)據(jù)總線上接收數(shù)據(jù)的方法,其中接收裝置在第一時(shí)鐘的控制下工作,數(shù)據(jù)總線包括數(shù)據(jù)線和控制線,總線上的數(shù)據(jù)在第二時(shí)鐘的控制下以幀的形式發(fā)送,用一個(gè)同步信號(hào)給出幀的起始位置并且在幀之間有第一無(wú)效數(shù)據(jù),該方法的特征在于包括下列步驟判斷接收速度和總線上發(fā)送發(fā)送數(shù)據(jù)速度的差別,當(dāng)接收速度大于數(shù)據(jù)總線上的發(fā)送速度時(shí),插入第二無(wú)效數(shù)據(jù)字或空字以降低接收速度,當(dāng)接收速度小于數(shù)據(jù)總線上數(shù)據(jù)速度時(shí),丟失第一無(wú)效數(shù)據(jù)以使接收速度跟上數(shù)據(jù)總線上的發(fā)送速度。
根據(jù)本發(fā)明的第四方面,提供了一種在數(shù)據(jù)總線上接收數(shù)據(jù)的數(shù)據(jù)接收裝置,其中接收裝置在第一時(shí)鐘的控制下工作,數(shù)據(jù)總線包括數(shù)據(jù)線和控制線,總線上的數(shù)據(jù)在第二時(shí)鐘的控制下以幀的形式發(fā)送,用一個(gè)同步信號(hào)給出幀的起始位置并且在幀之間有第一無(wú)效數(shù)據(jù),該裝置的特征在于包括第二時(shí)鐘信號(hào)產(chǎn)生部件;接收速度和發(fā)送速度的速度差別判斷部件;以及響應(yīng)速度差別判斷部件,調(diào)節(jié)接收速度的部件。
本發(fā)明的技術(shù)方案能很好地解決異步時(shí)鐘或時(shí)鐘有偏差芯片之間的數(shù)據(jù)通信問(wèn)題,其具有動(dòng)態(tài)調(diào)節(jié)采樣點(diǎn),動(dòng)態(tài)調(diào)節(jié)數(shù)據(jù)流速度,支持較大幀容量(在32M工作頻率下,一幀最多可支持2K個(gè)字)等優(yōu)點(diǎn),同時(shí)該發(fā)明可用VHDL語(yǔ)言描述,很容易在FPGA中實(shí)現(xiàn),綜合出來(lái)的電路簡(jiǎn)單,也易于做在ASIC中。
下面將結(jié)合附圖對(duì)本發(fā)明進(jìn)行更加詳細(xì)的描述。
圖1是現(xiàn)有技術(shù)中芯片之間的連接關(guān)系圖;圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的接收電路的框圖;圖3是根據(jù)本發(fā)明的原理,發(fā)送方的數(shù)據(jù)發(fā)送格式;圖4示出了根據(jù)本發(fā)明的一種實(shí)施方式,接收電路的工作原理;圖5示出了根據(jù)本發(fā)明的一種實(shí)施方式,接收芯片采樣點(diǎn)的動(dòng)態(tài)調(diào)節(jié)過(guò)程;圖6示出了在接收方和發(fā)送方有相差或頻差的情況下,采樣點(diǎn)的漂移情況示意圖;圖7和8示出在接收芯片主時(shí)鐘比發(fā)送芯片高或相位超前的情況下的采樣點(diǎn)調(diào)整情況;圖9和10示出在發(fā)送芯片主時(shí)鐘比接收芯片高或相位超前的情況下的采樣點(diǎn)調(diào)整情況。
圖11是根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖2中的同步信號(hào)采樣電路具體結(jié)構(gòu);圖12是根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖2中的采樣點(diǎn)調(diào)節(jié)電路的具體結(jié)構(gòu)。
圖13是根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖2中的數(shù)據(jù)采樣電路的具體結(jié)構(gòu);圖14是根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖2中的調(diào)節(jié)采樣數(shù)據(jù)流電路的具體結(jié)構(gòu)。
下面以一個(gè)具體的實(shí)例來(lái)闡明這種設(shè)計(jì)思想。
圖3是根據(jù)本發(fā)明的原理,發(fā)送方的數(shù)據(jù)發(fā)送格式。如圖3所示,公開(kāi)了本發(fā)明的對(duì)發(fā)送數(shù)據(jù)的芯片的數(shù)據(jù)格式要求發(fā)送數(shù)據(jù)的芯片發(fā)送的數(shù)據(jù)以幀為單位,在本發(fā)明優(yōu)選實(shí)施例的發(fā)送過(guò)程中,幀的長(zhǎng)度是不固定的。但是,取決于發(fā)送方和接收方之間的相位漂移情況,或相差情況,有最大幀長(zhǎng)限制。但是在其它實(shí)施例中,幀的長(zhǎng)度可以固定,并且因此而能簡(jiǎn)化電路結(jié)構(gòu)。幀與幀之間是一個(gè)無(wú)效字(插入無(wú)效字的目的主要是為了調(diào)節(jié)采樣數(shù)據(jù)流的速率而設(shè)的)。芯片之間的數(shù)據(jù)總線(BUS_DATA)共19位,周期為其主時(shí)鐘周期的兩倍,其中BUS_DATA[15:0]傳送數(shù)據(jù)字;BUS_DATA[16]是標(biāo)志數(shù)據(jù)字狀態(tài)(有效、無(wú)效)的標(biāo)志位,'1'表示有效,'0'表示無(wú)效;BUS_DATA[17]是寫(xiě)時(shí)鐘,是工作時(shí)鐘(MCLK_SEND)的二分頻信號(hào);BUS_DATA[18]是幀起始同步信號(hào)(BUS_SYNC),低電平有效,寬度為一個(gè)字周期,落后無(wú)效字半個(gè)工作時(shí)鐘周期。
它們之間的時(shí)序關(guān)系(對(duì)發(fā)送數(shù)據(jù)的芯片要求)如圖3所示。
根據(jù)如圖3的時(shí)序關(guān)系,可以開(kāi)發(fā)出根據(jù)本發(fā)明一個(gè)實(shí)施方式的數(shù)據(jù)發(fā)送方法。首先讓數(shù)據(jù)總線工作在第二時(shí)鐘,第二時(shí)鐘可以從主時(shí)鐘分頻而得到。例如,如圖3所示,第二時(shí)鐘的周期是主時(shí)鐘周期的兩倍??梢酝ㄟ^(guò)對(duì)主時(shí)鐘分頻的方式得到第二時(shí)鐘。根據(jù)該實(shí)施方式的數(shù)據(jù)發(fā)送方法,數(shù)據(jù)以幀的形式被發(fā)送,幀的起始位置用一個(gè)同步信號(hào)來(lái)表示。顯然,根據(jù)同步信號(hào),幀的長(zhǎng)度可以是固定的,也可以是變化的。根據(jù)該實(shí)施方式的方法,還在幀之間插入無(wú)效數(shù)據(jù)字,并用一個(gè)標(biāo)志位指出無(wú)效數(shù)據(jù)字。在總線的環(huán)境(質(zhì)量)不是很好的情況下,根據(jù)該實(shí)施方式的發(fā)送方法,還發(fā)送一個(gè)寫(xiě)信號(hào)。在需要時(shí),接收方能用該寫(xiě)信號(hào)來(lái)保證穩(wěn)定地接收數(shù)據(jù)。根據(jù)本發(fā)明的另外實(shí)施方式,可以在各幀之間都插入無(wú)效數(shù)據(jù)字,在幀長(zhǎng)較短的情況下,也可以隔幾幀再插入一個(gè)無(wú)效數(shù)據(jù)字。另外,插入的無(wú)效數(shù)據(jù)字也可以為多個(gè)。
根據(jù)圖3的時(shí)序圖,根據(jù)本發(fā)明一個(gè)實(shí)施方式的發(fā)送裝置可以這樣來(lái)構(gòu)成一個(gè)第二時(shí)鐘產(chǎn)生部件,該部件可以是一個(gè)分頻器;一個(gè)發(fā)送數(shù)據(jù)格式化部件,用于在發(fā)送的數(shù)據(jù)幀之間插入無(wú)效數(shù)據(jù)字;同步信號(hào)產(chǎn)生部件,產(chǎn)生的同步信號(hào)用于給出幀的起始位置;以及標(biāo)志位產(chǎn)生部件,產(chǎn)生的標(biāo)志位用于指出無(wú)效數(shù)據(jù)字。在其它實(shí)施方式中,發(fā)送數(shù)據(jù)格式化部件、同步信號(hào)產(chǎn)生部件、標(biāo)志位產(chǎn)生部件可以用同一個(gè)控制器來(lái)實(shí)現(xiàn)?;蛘哒f(shuō),用一個(gè)時(shí)序發(fā)生電路來(lái)實(shí)現(xiàn)。在優(yōu)選實(shí)施方式中,第二時(shí)鐘信號(hào)的周期是第一時(shí)鐘信號(hào)的周期的兩倍。
另外,本領(lǐng)域的技術(shù)人員都明白,對(duì)本發(fā)明而言BUS_DATA的寬度顯然是任意的,還可以為例如8,32,64,128位等。另外,數(shù)據(jù)總線的周期也不一定是主時(shí)鐘周期的兩倍,可以為任意大于等于2的整數(shù)倍。倍數(shù)越大,允許的收發(fā)送方之間的相差越大,但顯然會(huì)降低吞吐量。
如圖2所示是接收芯片電路結(jié)構(gòu),內(nèi)部詳細(xì)電路結(jié)構(gòu)將在以后描述。
如圖所示,接收芯片內(nèi)部各信號(hào)含義如下CHK[1:0]以主時(shí)鐘頻率檢測(cè)幀起始同步信號(hào)BUS_DATA[18],當(dāng)CHK[1:0]=“01”時(shí),說(shuō)明同步信號(hào)BUS_DATA[18]已結(jié)束。
NULL_FLAG當(dāng)它為高時(shí),表示在接收數(shù)據(jù)流中要插入一個(gè)空字(即無(wú)效字),以匹配收發(fā)雙方時(shí)鐘速率。同時(shí),它也表明接收頻率要快過(guò)發(fā)送頻率。本領(lǐng)域技術(shù)人員應(yīng)該明白的是,插入一個(gè)空字也可以理解為等待一個(gè)字的周期,即并不是真的插入一個(gè)空字。
LOCK_SEL采樣點(diǎn)選擇信號(hào)。在不同的實(shí)施方式中,可以選擇在HALF_MCLK_REC為高時(shí)采樣BUS_DATA_LOCK,也可以選擇在它為低時(shí)采樣。本發(fā)明的優(yōu)選實(shí)施方式中由LOCK_SEL決定是在高采樣還是在低采樣。
HALF_MCLK_REC時(shí)鐘MCLK_REC的二分頻信號(hào)。在本電路中,其真正的意義是提供采樣選擇“點(diǎn)”('0'或'1'),由LOCK_SEL來(lái)確定在什么“點(diǎn)”采樣。
BUS_DATA_OUT本電路數(shù)據(jù)經(jīng)同步處理之后的輸出。它按照固定格式以固定的頻率將數(shù)據(jù)輸出。本實(shí)施例是固定在HALF_MCLK_REC='1'時(shí)將數(shù)據(jù)輸出??蓞⒁?jiàn)圖7。
接收芯片的工作原理接收芯片首先用發(fā)送芯片傳來(lái)的數(shù)據(jù)字寫(xiě)時(shí)鐘(BUS_DATA[17])的上升沿來(lái)鎖存總線數(shù)據(jù)的低17位得到BUS_DATA_LOCK[16:0]。因?yàn)閿?shù)據(jù)經(jīng)總線傳輸時(shí),可能受到各種干擾,導(dǎo)致數(shù)據(jù)字在前部分時(shí)段內(nèi)是不穩(wěn)定的,因此在數(shù)據(jù)字的后半部分對(duì)其進(jìn)行鎖存以在接收端得到穩(wěn)定的總線數(shù)據(jù),如圖4所示。用接收芯片的工作時(shí)鐘(MCLK_REC)檢測(cè)總線同步信號(hào)BUS_SYNC,判斷其是否發(fā)生從"0 "到"1"的變化,并把第二次檢測(cè)到"1"的時(shí)刻作為一幀的起始采樣點(diǎn)(CHK為檢測(cè)計(jì)數(shù)器,當(dāng)CHK為"01"時(shí),表示已檢測(cè)到了一個(gè)"1"),同時(shí)產(chǎn)生LOCK_SEL信號(hào)來(lái)判斷采樣點(diǎn)是否被調(diào)節(jié)及對(duì)其后的采樣點(diǎn)進(jìn)行定位,之后便每?jī)蓚€(gè)時(shí)鐘周期對(duì)鎖存后的總線數(shù)據(jù)(BUS_DATA_LOCK[16:0])進(jìn)行采樣,由于采樣起始點(diǎn)被調(diào)節(jié)后,可能引起采樣數(shù)據(jù)流的速率變化,因此產(chǎn)生NULL_FLAG來(lái)判斷是否需要調(diào)節(jié)采樣數(shù)據(jù)流的速率,調(diào)節(jié)的具體方法見(jiàn)后。
根據(jù)圖2,本發(fā)明的接收電路的原理可以更一般化為包括一個(gè)第二時(shí)鐘信號(hào)產(chǎn)生部件;一個(gè)接收速度和發(fā)送速度的速度差別判斷部件;以及響應(yīng)速度差別判斷部件,用來(lái)調(diào)節(jié)接收速度的部件。第二時(shí)鐘信號(hào)產(chǎn)生部件可以簡(jiǎn)單地是一個(gè)分頻器。速度差別判斷部件可以是如圖2所示的同步信號(hào)采樣電路。調(diào)節(jié)接收速度的部件可以如圖2所示由數(shù)據(jù)流調(diào)節(jié)信號(hào)電路、采樣點(diǎn)調(diào)節(jié)電路、調(diào)節(jié)采樣數(shù)據(jù)流電路組成。本領(lǐng)域的技術(shù)人員明白,調(diào)節(jié)接收速度的部件還可以是其它形式。
圖5示出了根據(jù)本發(fā)明的一種實(shí)施方式,接收芯片采樣點(diǎn)的動(dòng)態(tài)調(diào)節(jié)過(guò)程。接收芯片采樣點(diǎn)的動(dòng)態(tài)調(diào)節(jié)過(guò)程無(wú)論接收芯片與發(fā)送芯片是工作在異步還是同步(但時(shí)鐘存在相位差)的情況下,接收芯片在每幀起始的位置都會(huì)對(duì)采樣點(diǎn)進(jìn)行一次調(diào)整,使采樣點(diǎn)始終落在一個(gè)預(yù)置的“安全”范圍內(nèi)。當(dāng)時(shí)鐘檢測(cè)點(diǎn)在總線同步信號(hào)的上升沿附近擺動(dòng)時(shí)(C點(diǎn)位置),檢測(cè)的值可能是"1",也可能是"0",當(dāng)檢測(cè)為“1”時(shí),則下幀采樣起始點(diǎn)在A點(diǎn),當(dāng)檢測(cè)為“0”時(shí),則下幀采樣起始點(diǎn)在B點(diǎn),A、B之間就是幀采樣起始點(diǎn)的極限擺動(dòng)邊界,不管接收、發(fā)送芯片的相位差多少,都能在幀頭的位置將起始采樣點(diǎn)的位置調(diào)整在A、B之間。
對(duì)于采用同一時(shí)鐘源,但存在相位差的接收與發(fā)送芯片,無(wú)論接收芯片的時(shí)鐘相位超前或落后發(fā)送芯片,每個(gè)時(shí)鐘的相位差基本是固定的,因此,一旦幀采樣起始點(diǎn)確定之后,后面的采樣點(diǎn)相對(duì)BUS_DATA_LOCK的相位基本確定,因此每一個(gè)采樣點(diǎn)都在A、B之間的范圍。
圖6示出了在接收方和發(fā)送方有相差或頻差的情況下,采樣點(diǎn)的漂移情況示意圖。對(duì)于采用異步時(shí)鐘的接收和發(fā)送芯片,雖然都是采用同一級(jí)別的晶振,但晶振之間是有誤差的,這就會(huì)導(dǎo)致接收芯片的頻率比發(fā)送芯片的高或低一些。因此在這種情況下,采樣點(diǎn)會(huì)逐漸向前或向后偏移,經(jīng)過(guò)積累,采樣點(diǎn)就會(huì)越過(guò)A、B之間的安全擺動(dòng)范圍。當(dāng)一幀的起始采樣點(diǎn)已經(jīng)漂移到A、B附近,但還未越過(guò)A、B點(diǎn)(這時(shí)不會(huì)對(duì)該幀的起始采樣點(diǎn)做調(diào)整),這樣,后面的采樣點(diǎn)會(huì)逐漸漂到A、B之外,因此,為了采到穩(wěn)定的數(shù)據(jù),該幀的采樣點(diǎn)只有1/2T-Tsetup或1/2T-Thold的漂移時(shí)間范圍(T為主時(shí)鐘周期,Tsetup為建立時(shí)間,Thold為保持時(shí)間),如圖6所示。由于Tsetup時(shí)間一般比Thold大,漂移時(shí)間范圍取1/2T-Tsetup,如果不在這個(gè)漂移時(shí)間范圍內(nèi)結(jié)束該幀,就會(huì)導(dǎo)致采樣不穩(wěn)定的數(shù)據(jù)。因此,要限制一幀的長(zhǎng)度,即要限制一幀的字節(jié)數(shù)。以接收、發(fā)送芯片都采用32M晶振為例,晶振的誤差在10-5,每個(gè)時(shí)鐘的漂移時(shí)間約為1/32M*10-5s(3.13*10-4ns),因此,一幀可包括(15ns-Tsetup)/3.13*10-4個(gè)時(shí)鐘(假設(shè)Tsetup=3ns),約為2K個(gè)數(shù)據(jù)字,即在這種情況下,一幀最多2K個(gè)字,才會(huì)使采樣點(diǎn)在漂移出A、B邊界后采樣到錯(cuò)誤數(shù)據(jù)之前得到調(diào)整。
圖7和8示出在接收芯片主時(shí)鐘頻率比發(fā)送芯片高的情況下的采樣點(diǎn)調(diào)整情況。如圖7所示,如果接收芯片主時(shí)鐘頻率比發(fā)送芯片高,采樣點(diǎn)向A點(diǎn)漂移,當(dāng)移至A點(diǎn)時(shí),調(diào)整電路會(huì)將其拉至B點(diǎn),采樣點(diǎn)調(diào)整之后,會(huì)對(duì)下幀首字采樣兩次。導(dǎo)致采樣的首字變長(zhǎng),使數(shù)據(jù)流速率變化,因此還需對(duì)采樣的數(shù)據(jù)(BUS_DATA_REC)進(jìn)行調(diào)節(jié)。在主時(shí)鐘MCLK_REC的二分頻信號(hào)(HALF_MCLK_REC)的下降沿處將采樣數(shù)據(jù)輸出,并在輸出的同時(shí),根據(jù)不同的情況對(duì)輸出數(shù)據(jù)進(jìn)行處理,以得到穩(wěn)定、均勻的數(shù)據(jù)流(BUS_DATA_OUT[16:0])。對(duì)輸出數(shù)據(jù)進(jìn)行處理的原理圖如圖7所示。
(a)、如果幀采樣起始點(diǎn)在調(diào)節(jié)后對(duì)應(yīng)HALF_MCLK_REC=1,則會(huì)輸出兩個(gè)下幀首字,這樣會(huì)出錯(cuò)。此時(shí)將第一個(gè)首字變?yōu)榭詹僮魇箶?shù)據(jù)流速率降低,在該情況下,NULL_FLAG信號(hào)在起始采樣點(diǎn)處為"1",表明須插入一個(gè)空操作,即輸出一個(gè)無(wú)效字。如圖7所示。
b)、如果下幀采樣起始點(diǎn)在調(diào)節(jié)后對(duì)應(yīng)HALF_MCLK_REC=0,則不會(huì)輸出兩個(gè)首字,為正常輸出,而此時(shí)NULL_FLAG信號(hào)在起始采樣點(diǎn)處為"0",不起作用。如圖8所示。
圖9和10示出在發(fā)送芯片主時(shí)鐘頻率比接收芯片高(或相位超前)的情況下采樣點(diǎn)調(diào)整情況。如果發(fā)送芯片主時(shí)鐘頻率比接收芯片高,采樣點(diǎn)會(huì)逐漸向B點(diǎn)漂移,當(dāng)移至B點(diǎn)時(shí),調(diào)整電路會(huì)將其拉至A點(diǎn)。采樣的數(shù)據(jù)中無(wú)效字變短使數(shù)據(jù)流速率降低,因此還需對(duì)采樣的數(shù)據(jù)(BUS_DATA_REC)進(jìn)行調(diào)節(jié)。在主時(shí)鐘MCLK_REC的二分頻信號(hào)(HALF_MCLK_REC)的下降沿處將采樣數(shù)據(jù)輸出,并在輸出的同時(shí),根據(jù)不同的情況對(duì)輸出數(shù)據(jù)進(jìn)行處理,以得到穩(wěn)定的數(shù)據(jù)(BUS_DATA_OUT)。
(a)、如果下幀采樣起始點(diǎn)HALF_MCLK_REC=0,則數(shù)據(jù)輸出會(huì)丟失無(wú)效字,數(shù)據(jù)流速率提高,如圖9所示(b)、如果下幀采樣起始點(diǎn)對(duì)應(yīng)HALF_MCLK_REC=1,則數(shù)據(jù)流按正常輸出,如圖10所示圖11是根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖2中的同步信號(hào)采樣電路的具體結(jié)構(gòu)。
如圖11所示,同步信號(hào)采樣電路可由兩個(gè)D觸發(fā)器CHK0和CHK1串聯(lián)而成。MCLK_REC同時(shí)連到兩個(gè)D觸發(fā)器的時(shí)鐘輸入端,BUS_DATA[18]連到CHK0的D輸入端,CHK0的Q輸出端連到CHK1的D輸入端。CHK0和CHK1的Q輸出端組成了輸出CHK[1:0]。
圖12是根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖2中的采樣點(diǎn)調(diào)節(jié)電路的具體結(jié)構(gòu)。
如圖12所示,將同步信號(hào)采樣電路的輸出CHK[1:0]與“01”比較后輸出的結(jié)果送到一個(gè)D觸發(fā)器的使能端ENA,該D觸發(fā)器的D輸入端輸入HALF_MCLK_REC信號(hào);時(shí)鐘輸入端輸入MCLK_REC信號(hào)。D觸發(fā)器的輸出為L(zhǎng)OCK_SEC信號(hào)。若相等,則輸出一個(gè)高電平,否則輸出一個(gè)低電平。
圖13是根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖2中的數(shù)據(jù)采樣電路的具體結(jié)構(gòu)。
如圖13所示,數(shù)據(jù)采樣電路由兩個(gè)比較器,一個(gè)或門(mén)和17個(gè)D觸發(fā)器組成,兩個(gè)比較器的輸出分別接到或門(mén)的兩個(gè)輸入端,或門(mén)的輸出連接到D觸發(fā)器的使能端ENA。與“01”比較比較器的輸入是CHK[1:0],另一個(gè)比較器的輸出是HALF_MCLK_REC和LOCK_SEL,當(dāng)HALF_MCLK_REC和LOCK_SEL信號(hào)相等時(shí),輸出高電平,否則輸出低電平。D觸發(fā)器的D輸入端輸入BUS_DATA_LOCK[16:0],時(shí)鐘輸入端輸入MCLK_REC。
圖14是根據(jù)本發(fā)明的一個(gè)實(shí)施方式,圖12中所示的調(diào)節(jié)采樣數(shù)據(jù)流電路的具體結(jié)構(gòu)。
如圖14所示,調(diào)節(jié)采樣數(shù)據(jù)流電路由一個(gè)二選一電路和17個(gè)(隨數(shù)據(jù)的寬度而變)D觸發(fā)器。第16個(gè)觸發(fā)器的D輸入是二選一電路的輸出。觸發(fā)器0到15的D輸入分別是BUS_DATA_REC[15:0]。在所有觸發(fā)器的使能輸入端ENA輸入HALF_MCLK_REC,時(shí)鐘輸入端輸入MCLK_REC。二選一電路的輸入分別是BUS_DATA_REC[16]和0,選擇輸入端的輸入是NLL_FLAG。當(dāng)NULL_FLAG為高時(shí),二選一電路選擇'0'輸出,說(shuō)明要插入一個(gè)空操作;其它情況下,選擇BUS_DATA_REC[16]輸出。
對(duì)于圖2中的空標(biāo)志處理電路,其基本原理是在CHK='01'并且HALF_MCLK_REC='1'時(shí),判斷LOCK_SEL是否與HALF_MCLK_REC相等,若相等,則NULL_FLAG='1',電路插入一個(gè)空字(無(wú)效字),匹配數(shù)據(jù)流;否則,輸出為零??詹僮鲿r(shí)序參見(jiàn)圖7。
以上參照本發(fā)明的一個(gè)具體實(shí)施方式
介紹了本發(fā)明的原理,但顯然的是,本領(lǐng)域的技術(shù)人員可在本發(fā)明的公開(kāi)范圍內(nèi),在細(xì)節(jié)上對(duì)本發(fā)明作各種形式的修改,變化,等效替換等。例如(1)發(fā)送芯片上的數(shù)據(jù)總線的寬度、每個(gè)字占用的主時(shí)鐘周期數(shù)可以視具體情況而定。
(2)保留一個(gè)狀態(tài)標(biāo)志位,說(shuō)明當(dāng)前字是有效字還是無(wú)效字;或者,提供某種方法,能使電路知道當(dāng)前字是有效字還是無(wú)效字。如在幀上固定情況下,可以省卻狀態(tài)標(biāo)志位,而只要在接收方設(shè)一個(gè)計(jì)數(shù)器,就能判斷無(wú)效數(shù)據(jù)的出現(xiàn)。
(3)若總線質(zhì)量安全可靠,則寫(xiě)時(shí)鐘(本文中是BUS_DATA[17])不是必須的。相應(yīng)地,圖2中的觸發(fā)器電路可以去掉。原電路中的輸出信號(hào)(BUS_DATA_LOCK[16:0])可直接連到輸入信號(hào)(BUS_DATA[16:0])。
(4)在實(shí)際操作過(guò)程中,并不是每一幀之間都需要插入一個(gè)無(wú)效字。具體隔幾幀插入一個(gè)無(wú)效字,由接收芯片和發(fā)送芯片的時(shí)鐘相位差決定。但是,插入的無(wú)效字必須和同步信號(hào)一一對(duì)應(yīng)。
(5)HALF_MCLK_REC信號(hào)的真正的意義是提供采樣選擇“點(diǎn)”('0'或'1'),由LOCK_SEL來(lái)確定在什么“點(diǎn)”采樣。當(dāng)總線上每個(gè)字占用的主時(shí)鐘周期數(shù)超過(guò)3時(shí)(包括3),這兩個(gè)信號(hào)的寬度應(yīng)相應(yīng)擴(kuò)展。以占用周期數(shù)為4為例,則HALF_MCLK_REC(信號(hào)名改成LOCK_POINT比較恰當(dāng))和LOCK_SEL都應(yīng)當(dāng)變成2bits寬。這說(shuō)明電路有4個(gè)采樣點(diǎn)可供選擇“0”,“1”,“2”,“3”。這種情況下,若將電路的工作時(shí)鐘變成原電路時(shí)鐘的二分頻信號(hào),則情況與圖2完全一樣。
(6)當(dāng)總線上每個(gè)字占用的主時(shí)鐘周期數(shù)超過(guò)3時(shí)(包括3),針對(duì)LOCK_SEL信號(hào)和HALF_MCLK_REC信號(hào)的處理應(yīng)做相應(yīng)的修改。但原理是一樣的,這里不做具體介紹。
(7)當(dāng)總線上每個(gè)字占用的主時(shí)鐘周期數(shù)超過(guò)3時(shí)(包括3),若總線上的同步信號(hào)有效寬度、與下幀首字的時(shí)序關(guān)系不變,則CHK[1:0]不用修改;否則,CHK[1:0]寬度要修改,相應(yīng)處理也要修改。
本領(lǐng)域的技術(shù)人員還能在更具體的細(xì)節(jié)上對(duì)本發(fā)明進(jìn)行修改,如圖12和13所示,采樣是調(diào)節(jié)電路和數(shù)據(jù)采樣電路中都有與“01”比較的比較器。所以在具體實(shí)現(xiàn)中可以省去一個(gè)。當(dāng)然圖2的原理框圖可能也會(huì)作相應(yīng)修改。
總之,本發(fā)明的范圍應(yīng)當(dāng)由權(quán)利要求書(shū)的內(nèi)容來(lái)確定,在權(quán)利要求書(shū)所限定范圍內(nèi)的變化、修改、改進(jìn)等都屬于本發(fā)明范圍。
權(quán)利要求
1.發(fā)送裝置在數(shù)據(jù)總線上發(fā)送數(shù)據(jù)的方法,其中發(fā)送裝置在第一時(shí)鐘的控制下工作,數(shù)據(jù)總線包括數(shù)據(jù)線和控制線,該方法的特征在于包括下列步驟讓數(shù)據(jù)總線工作在第二時(shí)鐘,第二時(shí)鐘的周期大于第一時(shí)鐘的周期;將數(shù)據(jù)以幀的形式發(fā)送,并在發(fā)送的數(shù)據(jù)幀之間插入無(wú)效數(shù)據(jù)字;用一個(gè)同步信號(hào)給出幀的起始位置;以及用一個(gè)標(biāo)志位指出無(wú)效數(shù)據(jù)字。
2.如權(quán)利要求1的發(fā)送數(shù)據(jù)的方法,其特征在于第二周期的長(zhǎng)度是第一周期的n倍,n大于等于2。
3.如權(quán)利要求1的發(fā)送數(shù)據(jù)的方法,其特征在于發(fā)送裝置還發(fā)送一個(gè)寫(xiě)信號(hào)。
4.如權(quán)利要求1,2或3的發(fā)送數(shù)據(jù)的方法,其特征在于發(fā)送裝置以不同的幀長(zhǎng)發(fā)送數(shù)據(jù)。
5.如權(quán)利要求1,2或3的發(fā)送數(shù)據(jù)的方法,其特征在于發(fā)送裝置在各幀之間都插入無(wú)效數(shù)據(jù)字。
6.如權(quán)利要求1,2或3的發(fā)送數(shù)據(jù)的方法,其特征在于插入的無(wú)效數(shù)據(jù)字的長(zhǎng)度是1。
7.如權(quán)利要求1,2或3的發(fā)送數(shù)據(jù)的方法,其特征在于所述數(shù)據(jù)線的寬度是17,包括無(wú)效標(biāo)志位。
8.一種通過(guò)數(shù)據(jù)總線發(fā)送數(shù)據(jù)的數(shù)據(jù)發(fā)送裝置,該發(fā)送裝置在第一時(shí)鐘的控制下工作,數(shù)據(jù)總線包括數(shù)據(jù)線和控制線,其特征在于該裝置包括第二時(shí)鐘產(chǎn)生部件,產(chǎn)生的第二時(shí)鐘的周期大于第一時(shí)鐘;發(fā)送數(shù)據(jù)格式化部件,用于在發(fā)送的數(shù)據(jù)幀之間插入無(wú)效數(shù)據(jù)字;同步信號(hào)產(chǎn)生部件,產(chǎn)生的同步信號(hào)用于給出幀的起始位置;以及標(biāo)志位產(chǎn)生部件,產(chǎn)生的標(biāo)志位用于指出無(wú)效數(shù)據(jù)字。
9.如權(quán)利要求8的數(shù)據(jù)發(fā)送裝置,其特征在于第二時(shí)鐘周期是第一時(shí)鐘周期的n倍,n大于等于2。
10.如權(quán)利要求8的數(shù)據(jù)發(fā)送裝置,其特征在于發(fā)送裝置還包括寫(xiě)信號(hào)產(chǎn)生部件。
11.如權(quán)利要求8,9或10的數(shù)據(jù)發(fā)送裝置,其特征在于其中幀的長(zhǎng)度是不同的。
12.如權(quán)利要求8,9或10的數(shù)據(jù)發(fā)送裝置,其特征在于數(shù)據(jù)格式化部件在各幀之間都插入無(wú)效數(shù)據(jù)字。
13.如權(quán)利要求8,9或10的數(shù)據(jù)發(fā)送裝置,其特征在于插入的無(wú)效數(shù)據(jù)字的長(zhǎng)度是1。
14.如權(quán)利要求8,9或10的數(shù)據(jù)發(fā)送裝置,其特征在于所述數(shù)據(jù)線的寬度是17,包括無(wú)效標(biāo)志位。
15.接收裝置在數(shù)據(jù)總線上接收數(shù)據(jù)的方法,其中接收裝置在第一時(shí)鐘的控制下工作,數(shù)據(jù)總線包括數(shù)據(jù)線和控制線,總線上的數(shù)據(jù)在第二時(shí)鐘的控制下以幀的形式發(fā)送,用一個(gè)同步信號(hào)給出幀的起始位置并且在幀之間有第一無(wú)效數(shù)據(jù),該方法的特征在于包括下列步驟判斷接收速度和總線上發(fā)送發(fā)送數(shù)據(jù)速度的差別,當(dāng)接收速度大于數(shù)據(jù)總線上的發(fā)送速度時(shí),插入第二無(wú)效數(shù)據(jù)字或空字以降低接收速度,當(dāng)接收速度小于數(shù)據(jù)總線上數(shù)據(jù)速度時(shí),丟失第一無(wú)效數(shù)據(jù)以使接收速度跟上數(shù)據(jù)總線上的發(fā)送速度。
16.如權(quán)利要求15的接收數(shù)據(jù)的方法,其特征在于判斷接收速度和發(fā)送速度的差別的步驟包括對(duì)同步信號(hào)進(jìn)行采樣的步驟。
17.如權(quán)利要求15或16的接收數(shù)據(jù)的方法,其中在總線上發(fā)送的信號(hào)還包括一個(gè)數(shù)據(jù)字鎖存信號(hào),其特征在于該方法還包括用數(shù)據(jù)字鎖存信號(hào)來(lái)鎖存數(shù)據(jù)的步驟。
18.一種在數(shù)據(jù)總線上接收數(shù)據(jù)的數(shù)據(jù)接收裝置,其中接收裝置在第一時(shí)鐘的控制下工作,數(shù)據(jù)總線包括數(shù)據(jù)線和控制線,總線上的數(shù)據(jù)在第二時(shí)鐘的控制下以幀的形式發(fā)送,用一個(gè)同步信號(hào)給出幀的起始位置并且在幀之間有第一無(wú)效數(shù)據(jù),該裝置的特征在于包括第二時(shí)鐘信號(hào)產(chǎn)生部件;接收速度和發(fā)送速度的速度差別判斷部件;以及響應(yīng)速度差別判斷部件,調(diào)節(jié)接收速度的部件。
19.如權(quán)利要求18的數(shù)據(jù)接收裝置,其特征在于所述速度差別判斷部件由一個(gè)同步信號(hào)采樣電路組成。
20.如權(quán)利要求18或19的數(shù)據(jù)接收裝置,其特征在于所述調(diào)節(jié)接收速度的部件由一個(gè)采樣點(diǎn)調(diào)節(jié)電路,一個(gè)數(shù)據(jù)流調(diào)節(jié)信號(hào)電路和調(diào)節(jié)采樣數(shù)據(jù)流電路組成,其中調(diào)節(jié)采樣數(shù)據(jù)流電路響應(yīng)采樣點(diǎn)調(diào)節(jié)電路和數(shù)據(jù)流調(diào)節(jié)信號(hào)電路的輸出來(lái)調(diào)節(jié)接收速度。
21.如權(quán)利要求18或19的數(shù)據(jù)接收裝置,其特征在于還包括一個(gè)鎖存部件,響應(yīng)數(shù)據(jù)總線上的寫(xiě)信號(hào)而鎖存數(shù)據(jù)。
22.如權(quán)利要求18的數(shù)據(jù)接收裝置,其特征在于所述調(diào)節(jié)接收速度的部件通過(guò)保持第一無(wú)效數(shù)據(jù)不變、丟失第一無(wú)效數(shù)據(jù)或插入第二空數(shù)據(jù)來(lái)進(jìn)行速度的調(diào)節(jié)。
全文摘要
為了解決在發(fā)送方和接收方在工作時(shí)鐘不同或有相差情況下的數(shù)據(jù)同步問(wèn)題,提出了“動(dòng)態(tài)調(diào)節(jié)采樣點(diǎn)”和“動(dòng)態(tài)調(diào)節(jié)采樣數(shù)據(jù)流的速率”的方法。對(duì)于接收數(shù)據(jù)方而言,在每幀數(shù)據(jù)的幀頭處根據(jù)接收、發(fā)送方的時(shí)鐘相位差來(lái)調(diào)節(jié)接收數(shù)據(jù)芯片的采樣起始點(diǎn),使其不超過(guò)一個(gè)預(yù)設(shè)的“安全范圍”,在采樣起始點(diǎn)調(diào)節(jié)后,采樣數(shù)據(jù)在該點(diǎn)的速率可能發(fā)生變化,這時(shí)通過(guò)在幀與幀之間增加或減少一個(gè)無(wú)效字的方法來(lái)調(diào)節(jié)采樣數(shù)據(jù)的速率。這樣就可以在接收數(shù)據(jù)方得到穩(wěn)定、準(zhǔn)確的數(shù)據(jù)。
文檔編號(hào)H04L7/00GK1306358SQ00101739
公開(kāi)日2001年8月1日 申請(qǐng)日期2000年1月20日 優(yōu)先權(quán)日2000年1月20日
發(fā)明者周志堅(jiān) 申請(qǐng)人:華為技術(shù)有限公司