亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的系統(tǒng)及方法

文檔序號(hào):6613858閱讀:236來源:國(guó)知局
專利名稱:一種實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的系統(tǒng)及方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及一種實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的系 統(tǒng)及方法。
背景技術(shù)
數(shù)據(jù)通信中經(jīng)常要對(duì)數(shù)據(jù)進(jìn)行并串轉(zhuǎn)換及發(fā)送,如圖1所示。數(shù)據(jù)的并串 轉(zhuǎn)換實(shí)現(xiàn)起來比較容易,但實(shí)現(xiàn)數(shù)據(jù)的無縫傳送則比較困難,這是因?yàn)椴⑿袛?shù) 據(jù)輸入部分和串行數(shù)據(jù)輸出部分很可能不用一個(gè)時(shí)鐘同步,或者傳輸速率不一 樣。并行數(shù)據(jù)的寫入和并串轉(zhuǎn)換都需要一個(gè)時(shí)間,這個(gè)時(shí)間往往也會(huì)造成輸出 的數(shù)據(jù)不連續(xù)。
現(xiàn)有技術(shù)是在圖1中的串行數(shù)據(jù)輸出后面再加一級(jí)先入先出隊(duì)列FIFO, 通過FIFO和并串轉(zhuǎn)換部分的相互握手來實(shí)現(xiàn)數(shù)據(jù)的無縫輸出,如圖2所示。 使用單緩沖區(qū)的FIFO實(shí)現(xiàn)數(shù)據(jù)的串行輸出比較容易,但是實(shí)現(xiàn)無縫輸出相對(duì) 困難。因?yàn)?,在?shí)現(xiàn)中FIFO里的串行數(shù)據(jù)減少到一個(gè)門限值后,外界數(shù)據(jù)源 向FIFO加載一系列數(shù)據(jù)。在加載該數(shù)據(jù)時(shí),為了保證無縫輸出,F(xiàn)IF0同時(shí)輸 出串行數(shù)據(jù),由于外界數(shù)據(jù)源給FIFO加載數(shù)據(jù)的速度要大于FIFO串行輸出數(shù) 據(jù)的速度,因此導(dǎo)致外界數(shù)據(jù)源難以確定將數(shù)據(jù)寫到FIFO中的位置,進(jìn)而容 易造成數(shù)據(jù)覆蓋(疊加)或者產(chǎn)生空數(shù)據(jù)(產(chǎn)生傳輸縫隙)。為了解決此問題, 對(duì)FIFO和數(shù)據(jù)源(并串轉(zhuǎn)換部分)之間的握手機(jī)制要求較高,導(dǎo)致實(shí)現(xiàn)復(fù)雜。

發(fā)明內(nèi)容
為了解決上述技術(shù)問題,本發(fā)明提出一種實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的系 統(tǒng)及方法,目的在于有效避免可能發(fā)生的數(shù)據(jù)疊加和傳輸縫隙,并使實(shí)現(xiàn)數(shù)據(jù) 并串轉(zhuǎn)換的無縫輸出的方法和系統(tǒng)簡(jiǎn)單。
本發(fā)明公開了一種實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的系統(tǒng),包括用于提供并行
數(shù)據(jù)的并行數(shù)據(jù)源模塊,還包括并行數(shù)據(jù)接收模塊,包括有左右緩沖區(qū),用于接收緩存所述并行數(shù)據(jù),而 且當(dāng)右緩沖區(qū)中數(shù)據(jù)讀取時(shí),向左緩沖區(qū)中寫入數(shù)據(jù),并在右緩沖區(qū)中數(shù)據(jù)讀 取完成前寫滿左緩沖區(qū),以用于右緩沖區(qū)中數(shù)據(jù)讀取完成后,開始從左緩沖區(qū) 中讀取數(shù)據(jù);
并行數(shù)據(jù)輸入切換控制模塊,用于控制選擇左右緩沖區(qū)之一寫入并行數(shù)
據(jù);
串行數(shù)據(jù)輸出模塊,包含有輸出切換,用于從所述緩沖區(qū)中讀取數(shù)據(jù)并無 縫輸出數(shù)據(jù),其中輸出切換控制從左右緩沖區(qū)之一讀取數(shù)據(jù)。 所述系統(tǒng)還包括
第一標(biāo)志位控制模塊,用于標(biāo)志所述左右緩沖區(qū)數(shù)據(jù)是否處于寫滿狀態(tài), 左右緩沖區(qū)都寫滿時(shí),將第一標(biāo)志位置為左緩沖區(qū)寫滿,在左緩沖區(qū)寫滿時(shí), 將第一標(biāo)志位置為左緩沖區(qū)寫滿,在右緩沖區(qū)寫滿時(shí),將第一標(biāo)志位置為右緩
沖區(qū)寫滿;
第二標(biāo)志位控制模塊,用于標(biāo)志緩沖區(qū)數(shù)據(jù)是否寫入,在緩沖區(qū)數(shù)據(jù)寫滿 時(shí),第二標(biāo)志位控制模塊將第二標(biāo)志位置為等待狀態(tài),在左右緩沖區(qū)之一的數(shù) 據(jù)被讀完時(shí),第二標(biāo)志位控制模塊將第二標(biāo)志位從所述等待狀態(tài)置為數(shù)據(jù)寫入 狀態(tài)。
所述系統(tǒng)還包括計(jì)數(shù)模塊,用于控制串行數(shù)據(jù)輸出模塊根據(jù)其當(dāng)前數(shù)值將 所述左右緩沖區(qū)之一的對(duì)應(yīng)比特?cái)?shù)據(jù)輸出,所述計(jì)數(shù)模塊計(jì)數(shù)達(dá)到循環(huán)計(jì)數(shù)最 大值時(shí),所述緩沖區(qū)之一的數(shù)據(jù)串行輸出完成。
所述計(jì)數(shù)模塊還包括第三標(biāo)志位,其在初始態(tài)和所述緩沖區(qū)之一的數(shù)據(jù)串 行輸出完成后跟隨第一標(biāo)志位,用于選擇所述緩沖區(qū)之一讀取數(shù)據(jù)。
所述系統(tǒng),還包括串行輸出時(shí)鐘生成模塊,用于同步計(jì)數(shù)模塊、串行數(shù)據(jù) 輸出模塊和第二標(biāo)志位控制模塊,所述串行輸出時(shí)鐘是一個(gè)周期固定的持續(xù)時(shí) 鐘。
本發(fā)明還公開了一種實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的方法,包括如下步驟
(1) 并行數(shù)據(jù)源向并行數(shù)據(jù)接收模塊中的左右緩沖區(qū)依次寫入數(shù)據(jù);
(2) 所述左右緩沖區(qū)都寫滿數(shù)據(jù)后,串行數(shù)據(jù)輸出模塊先從左緩沖區(qū)中 讀取數(shù)據(jù),在左緩沖區(qū)數(shù)據(jù)讀取完后,再從右緩沖區(qū)中讀取數(shù)據(jù);
(3) 當(dāng)右緩沖區(qū)中數(shù)據(jù)讀取時(shí),向左緩沖區(qū)中寫入數(shù)據(jù),并在右緩沖區(qū)中數(shù)據(jù)讀取完成前寫滿左緩沖區(qū),以用于右緩沖區(qū)中數(shù)據(jù)讀取完成后,開始從左 緩沖區(qū)中讀取數(shù)據(jù);
(4)依此交替讀取數(shù)據(jù)和寫入數(shù)據(jù),以實(shí)現(xiàn)數(shù)據(jù)的無縫輸出。 所述實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的方法,還包括步驟
(81) 所述左、右緩沖區(qū)都寫滿數(shù)據(jù)時(shí),將第一標(biāo)志位置為左緩沖區(qū)寫滿 狀態(tài),所述左緩沖區(qū)寫滿后,將第一標(biāo)志位置為左緩沖區(qū)寫滿狀態(tài),所述右緩 沖區(qū)寫滿后,將第一標(biāo)志位置為右緩沖區(qū)寫滿狀態(tài),此時(shí),將第二標(biāo)志位置為 等待狀態(tài);
(82) 在所述緩沖區(qū)的數(shù)據(jù)被讀完后,將所述第二標(biāo)志位從所述等待狀態(tài)
置為數(shù)據(jù)寫入狀態(tài),根據(jù)第一標(biāo)志位,控制選擇緩沖區(qū)進(jìn)行數(shù)據(jù)寫入,根據(jù)第 一標(biāo)志位,控制選擇緩沖區(qū)進(jìn)行數(shù)據(jù)讀取。
所述的實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的方法,寫入數(shù)據(jù)的速度大于緩沖區(qū)串 行數(shù)據(jù)的輸出速度。
所述的實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的方法,步驟82還包括在串行數(shù)據(jù)
輸出模塊按計(jì)數(shù)模塊當(dāng)前值從左右緩沖區(qū)之一發(fā)送對(duì)應(yīng)比特,計(jì)數(shù)模塊達(dá)到循 環(huán)計(jì)數(shù)最大值時(shí),所述緩沖區(qū)的數(shù)據(jù)被讀取完成。
本發(fā)明的有益效果在于能將并串轉(zhuǎn)換后的數(shù)據(jù)無縫輸出,并且相對(duì)于現(xiàn)有 技術(shù),實(shí)現(xiàn)更為簡(jiǎn)單。


圖l是現(xiàn)有技術(shù)的并串轉(zhuǎn)換示意圖2是現(xiàn)有技術(shù)的實(shí)現(xiàn)并串轉(zhuǎn)換無縫輸出的示意圖3是本發(fā)明實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出方法的原理圖4是本發(fā)明實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的內(nèi)部機(jī)理示意圖5是第一標(biāo)志位控制模塊5的一個(gè)實(shí)施例流程圖6是計(jì)數(shù)模塊7的一個(gè)實(shí)施例流程圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明公開的一種實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的系統(tǒng)及方法。其中實(shí)現(xiàn)數(shù) 據(jù)并串轉(zhuǎn)換無縫輸出的系統(tǒng),包括
并行數(shù)據(jù)源模塊l,用于提供并行數(shù)據(jù);
并行數(shù)據(jù)接收模塊3,包括有兩個(gè)緩沖區(qū),用于接收緩存所述并行數(shù)據(jù), 且當(dāng)右緩沖區(qū)中數(shù)據(jù)讀取時(shí),向左緩沖區(qū)中寫入數(shù)據(jù),并在右緩沖區(qū)中數(shù)據(jù)讀 取完成前寫滿左緩沖區(qū),以用于右緩沖區(qū)中數(shù)據(jù)讀取完成后,開始從左緩沖區(qū) 中讀取數(shù)據(jù);
并行數(shù)據(jù)輸入切換控制模塊2,用于控制選擇左右緩沖區(qū)之一寫入并行數(shù)
據(jù);
串行數(shù)據(jù)輸出模塊4,包含有輸出切換,用于從所述緩沖區(qū)中讀取數(shù)據(jù)并 輸出數(shù)據(jù),其中輸出切換控制從左右緩沖區(qū)之一讀取數(shù)據(jù);
標(biāo)志位FLAG1控制模塊5,用于標(biāo)志所述左右緩沖區(qū)數(shù)據(jù)是否處于寫滿狀 態(tài),左右緩沖區(qū)都寫滿時(shí),將標(biāo)志位FLAG1置為左緩沖區(qū)寫滿,在左緩沖區(qū)寫 滿時(shí),將FLAG1置為左緩沖區(qū)寫滿,在右緩沖區(qū)寫滿時(shí),將FLAG1置為右緩沖 區(qū)寫滿;
標(biāo)志位FLAG2控制模塊6,用于標(biāo)志緩沖區(qū)數(shù)據(jù)是否寫入,在緩沖區(qū)數(shù)據(jù) 寫滿時(shí),將標(biāo)志位FLAG2置為等待狀態(tài),在左右緩沖區(qū)之一的數(shù)據(jù)被讀完時(shí), 將FLAG2從所述等待狀態(tài)置為數(shù)據(jù)寫入狀態(tài);
計(jì)數(shù)模塊7,用于控制串行數(shù)據(jù)輸出模塊4根據(jù)其當(dāng)前數(shù)值將所述左右緩 沖區(qū)之一的對(duì)應(yīng)比特?cái)?shù)據(jù)輸出,計(jì)數(shù)模塊7計(jì)數(shù)達(dá)到循環(huán)計(jì)數(shù)最大值時(shí),所述 緩沖區(qū)之一的數(shù)據(jù)串行輸出完成,然后,計(jì)數(shù)模塊7重新從最小值開始計(jì)數(shù), 指示串行數(shù)據(jù)輸出模塊4輸出另一緩沖區(qū)對(duì)應(yīng)比特?cái)?shù)據(jù);
串行輸出時(shí)鐘生成模塊8,用于同步計(jì)數(shù)模塊7、串行數(shù)據(jù)輸出模塊2和 FLAG2控制模塊6。
計(jì)數(shù)模塊7還包括標(biāo)志位FLAG3,其在初始態(tài)和發(fā)送完一個(gè)緩沖區(qū)數(shù)據(jù)后 跟隨FLAG1的數(shù)值,指示串行數(shù)據(jù)輸出模塊4選擇左右緩沖區(qū)之一讀取數(shù)據(jù)。 本說明書中,將一個(gè)緩沖區(qū)大小的數(shù)據(jù)稱為一幀。 如圖3所示,數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的方法包括如下歩驟 第一步,在初始狀態(tài)時(shí),并行數(shù)據(jù)源l寫滿左右兩個(gè)緩沖區(qū)之后,F(xiàn)LAG1控制模塊5將FLAGl置為左緩沖區(qū)寫滿狀態(tài);
第二步,串行數(shù)據(jù)輸出模塊4掃描FLAG1,發(fā)現(xiàn)其狀態(tài)指示可以輸出數(shù)據(jù), 從左緩沖區(qū)31開始讀取數(shù)據(jù)串行輸出,數(shù)據(jù)輸出完成后,F(xiàn)LAG2控制模塊6 將FLAG2置為數(shù)據(jù)寫入狀態(tài),F(xiàn)LAG1控制模塊5將FLAG1置為右緩沖區(qū)寫滿狀 態(tài);
第三步,串行數(shù)據(jù)輸出模塊4根據(jù)FLAG1狀態(tài)從右緩沖區(qū)32中讀取數(shù)據(jù), 同時(shí)并行數(shù)據(jù)源1根據(jù)FLAG2狀態(tài)寫入并行數(shù)據(jù),并行數(shù)據(jù)輸入切換控制模塊 2根據(jù)FLAG1狀態(tài)控制并行數(shù)據(jù)寫入左緩沖區(qū)31,左緩沖區(qū)31寫滿數(shù)據(jù)時(shí), FLAG1控制模塊5將FLAG1置為左緩沖區(qū)寫滿狀態(tài),同時(shí),F(xiàn)LAG2控制模塊6 將FLAG2置為等待狀態(tài),之后,當(dāng)串行數(shù)據(jù)輸出模塊4從右緩沖區(qū)32中讀取 數(shù)據(jù)完成時(shí),F(xiàn)LAG2控制模塊6將FLAG2置為數(shù)據(jù)寫入狀態(tài);
第四步,串行數(shù)據(jù)輸出模塊4根據(jù)FLAG1狀態(tài)從左緩沖區(qū)31中讀取數(shù)據(jù), 同時(shí)并行數(shù)據(jù)源1根據(jù)FLAG2狀態(tài)寫入并行數(shù)據(jù),并行數(shù)據(jù)輸入切換控制模塊 2根據(jù)FLAG1狀態(tài)控制并行數(shù)據(jù)寫入右緩沖區(qū)32,右緩沖區(qū)32寫滿數(shù)據(jù)時(shí), FLAG1控制模塊5將FLAG1置為右緩沖區(qū)寫滿狀態(tài),同時(shí),F(xiàn)LAG2控制模塊6 將FLAG2置為等待狀態(tài),之后,當(dāng)串行數(shù)據(jù)輸出模塊4從左緩沖區(qū)31中讀取 數(shù)據(jù)完成時(shí),F(xiàn)LAG2控制模塊6將FLAG2置為數(shù)據(jù)寫入狀態(tài);
第五步,依此重復(fù)第三、四步,完成無縫數(shù)據(jù)發(fā)送。
在上述方法中,并行數(shù)據(jù)源模塊l不選擇數(shù)據(jù)寫入的緩沖區(qū),它僅通過判 斷FLAG2的狀態(tài),決定是否發(fā)送一幀數(shù)據(jù)給緩沖區(qū),并行數(shù)據(jù)輸入切換控制模 塊2根據(jù)FLAG1的狀態(tài),控制選擇左右緩沖區(qū)之一寫入并行數(shù)據(jù)。
在上述方法中,并行數(shù)據(jù)的寫入速度大于串行數(shù)據(jù)的輸出速度。這樣,并 行數(shù)據(jù)源1總是先寫滿一個(gè)緩沖區(qū),然后輪詢FLAG2,等待寫入下一幀數(shù)據(jù)的 指示,滿足串行數(shù)據(jù)輸出模塊4總可以有數(shù)據(jù)發(fā)送,實(shí)現(xiàn)串行數(shù)據(jù)無縫輸出。 需要注意的是,在輸出切換時(shí), 一定要保證數(shù)據(jù)切換干凈,沒有丟失數(shù)據(jù)或者 重復(fù)數(shù)據(jù)。
在上述方法中,串行數(shù)據(jù)輸出模塊4按計(jì)數(shù)模塊7當(dāng)前值從左右緩沖區(qū)之 一發(fā)送對(duì)應(yīng)比特,計(jì)數(shù)模塊7達(dá)到循環(huán)計(jì)數(shù)最大值時(shí),此緩沖區(qū)的數(shù)據(jù)被讀取 完成。
在上述方法中,使用串行輸出時(shí)鐘生成模塊8同步計(jì)數(shù)模塊7、串行數(shù)據(jù)輸出模塊4和FLAG2控制模塊6,該串行輸出時(shí)鐘生成模塊為一個(gè)周期固定, 持續(xù)時(shí)鐘。
本發(fā)明所述方法的內(nèi)部機(jī)理如圖4所示。
本發(fā)明所述方法的內(nèi)部機(jī)理是由系統(tǒng)各個(gè)模塊和各模塊之間的相互作用 形成的。圖中箭頭連線表示控制方向。
并行數(shù)據(jù)源模塊1寫入數(shù)據(jù)到并行數(shù)據(jù)接收模塊3,并行數(shù)據(jù)輸入切換控 制模塊2通過控制線CL3控制選擇左右緩沖區(qū)之一寫入數(shù)據(jù)。每次寫滿一個(gè)緩 沖區(qū),并行數(shù)據(jù)源1通過控制線CL2控制FLAG1控制模塊5根據(jù)FLAG1上一次 的狀態(tài)來確定其下一個(gè)狀態(tài),因此,F(xiàn)LAG1用來表示左右緩沖區(qū)數(shù)據(jù)寫滿狀態(tài)。 在初始狀態(tài)時(shí),在左右緩沖區(qū)都寫滿時(shí),控制FLAG1為左緩沖區(qū)寫滿狀態(tài),在 左緩沖區(qū)第一次被讀取完時(shí),控制將FLAG1置為右緩沖區(qū)寫滿狀態(tài)。
FLAG1控制模塊5通過控制線CL4通知并行數(shù)據(jù)輸入切換控制模塊2緩沖 區(qū)寫滿狀態(tài),并行數(shù)據(jù)輸入切換控制模塊2根據(jù)此控制選擇左右緩沖區(qū)之一寫 入數(shù)據(jù)。
串行輸出時(shí)鐘生成模塊生成時(shí)鐘,通過控制線CL1同步計(jì)數(shù)模塊7、串行 數(shù)據(jù)輸出模塊4和FLAG2控制模塊6。
計(jì)數(shù)模塊7在左、右兩個(gè)緩沖區(qū)中都沒有數(shù)據(jù)時(shí),不計(jì)數(shù),保持初始狀態(tài)。 FLAG1控制模塊5通過控制線CL9用FLAG1的狀態(tài)通知計(jì)數(shù)模塊左右緩沖區(qū)的 數(shù)據(jù)寫滿狀態(tài)。初始狀態(tài)時(shí),F(xiàn)LAG1為00時(shí)表示左、右兩個(gè)緩沖區(qū)均為空, 當(dāng)左右兩個(gè)緩沖區(qū)都寫滿時(shí),F(xiàn)LAG1為左緩沖區(qū)寫滿狀態(tài),從而觸發(fā)計(jì)數(shù)模塊 7開始計(jì)數(shù)。
計(jì)數(shù)模塊7和FLAG1控制模塊5分別通過控制線CL6和CL5控制串行數(shù)據(jù) 輸出模塊4。串行數(shù)據(jù)輸出模塊4根據(jù)計(jì)數(shù)模塊7的當(dāng)前數(shù)值來將左右緩沖區(qū) 之一中的對(duì)應(yīng)比特輸出。FLAG1控制模塊5通過FLAG1通知串行數(shù)據(jù)輸出模塊 4左右緩沖區(qū)的寫滿狀態(tài),串行數(shù)據(jù)輸出模塊4輸出寫滿的緩沖區(qū)中的數(shù)據(jù)。 計(jì)數(shù)模塊7中設(shè)置FLAG3來保存FLAG1的狀態(tài),直到計(jì)數(shù)模塊7計(jì)數(shù)到循環(huán)計(jì) 數(shù)最大值時(shí)才容許FLAG3改變。串行數(shù)據(jù)輸出模塊4中的切換功能依據(jù)FLAG3 表示的緩沖區(qū)寫滿狀態(tài)選擇數(shù)據(jù)讀取緩沖區(qū)。
當(dāng)計(jì)數(shù)模塊7中的計(jì)數(shù)到達(dá)循環(huán)計(jì)數(shù)最大值時(shí),代表一幀的數(shù)據(jù)將要輸出 完成,通過控制線CL7通知FLAG2控制模塊6。 FLAG2控制模塊6將FLAG2置為數(shù)據(jù)寫入狀態(tài),通過控制線CL8通知并行數(shù)據(jù)源模塊1開始寫入下一幀數(shù)據(jù)。 通過系統(tǒng)內(nèi)各個(gè)模塊的并行執(zhí)行和互相傳遞標(biāo)志位,完成了數(shù)據(jù)的并串轉(zhuǎn) 換的無縫輸出。
圖5為FLAG1控制模塊5的一個(gè)具體實(shí)施例。FLAG1為00表示兩個(gè)緩沖 區(qū)為空,F(xiàn)LAG1為01表示左邊緩沖區(qū)寫滿,為10表示右邊緩沖區(qū)寫滿。 步驟S51,復(fù)位后FLAG1值為00;
步驟S52,判斷是否發(fā)生下面三種情況之一,如果發(fā)生,則執(zhí)行步驟S53, 否則,F(xiàn)LAG1值不變,
情況l,在非初始狀態(tài)時(shí),并行數(shù)據(jù)源寫滿一緩沖區(qū),
情況2,在初試狀態(tài)時(shí),并行數(shù)據(jù)源寫滿兩個(gè)緩沖區(qū),
情況3,在初始狀態(tài)時(shí),左緩沖區(qū)數(shù)據(jù)被讀取完成;
步驟S53,判斷FLAG1的值,
如果FLAG1值為10,則執(zhí)行步驟S54,
如果FLAG1值為00,則執(zhí)行步驟S55,
如果FLAGl值為Ol,則執(zhí)行歩驟S56;
步驟S54,將FLAG1值反轉(zhuǎn)為01;
步驟S55,將FLAG1值置為01;
步驟S56,將FLAG1值反轉(zhuǎn)為10。
圖6所示為計(jì)數(shù)模塊7的一個(gè)具體實(shí)施例。
實(shí)施例中增加了一個(gè)FLAG3,其在初始態(tài)和發(fā)送完一幀數(shù)據(jù)后跟隨FLAG1 的數(shù)值,指示串行數(shù)據(jù)輸出模塊4選擇左右緩沖區(qū)之一讀取數(shù)據(jù)。不使用FLAG1 指示串行數(shù)據(jù)輸出模塊4,是因?yàn)镕LAG1在計(jì)數(shù)模塊7的中間值也即一個(gè)緩沖 區(qū)沒有讀完的情況下,發(fā)生狀態(tài)變化。
步驟S61,初始狀態(tài)時(shí),C0N為0, FLAG3為00,等待FLAG1從00翻轉(zhuǎn)到 其他狀態(tài),F(xiàn)LAG3跟隨FLAG1變化,如果FLAG1不變,CON—直保持不變;
步驟S62,查詢C0N的數(shù)值,C0N為0時(shí),執(zhí)行步驟S63, CON為最大值時(shí), 執(zhí)行步驟S64, C0N為0和最大值之間數(shù)值時(shí),執(zhí)行步驟S67;
步驟S63,判斷FLAG1是否從00翻轉(zhuǎn)到其他狀態(tài),如果FLAG1已經(jīng)翻轉(zhuǎn) 到其他狀態(tài),表示左右緩沖區(qū)之一寫滿數(shù)據(jù),則執(zhí)行步驟S65,否則,跳轉(zhuǎn)回 步驟S62;步驟S64,判斷另一個(gè)緩沖區(qū)是否寫滿,如果寫滿,則執(zhí)行步驟S66,否則 跳轉(zhuǎn)回步驟S62;
步驟S65, C0N值由0變?yōu)?, FLAG3記錄FLAG1的狀態(tài),啟動(dòng)一幀數(shù)據(jù)的 發(fā)送,發(fā)送時(shí)根據(jù)FLAG3來選擇左右緩沖區(qū)之一的數(shù)據(jù);
步驟S66, C0N值由最大值變?yōu)?, FLAG3記錄FLAG1的狀態(tài),啟動(dòng)下一幀 數(shù)據(jù)的發(fā)送,發(fā)送時(shí)根據(jù)FLAG3來選擇左右緩沖區(qū)之一的數(shù)據(jù);
步驟S67, C0N數(shù)值加1。
計(jì)數(shù)模塊7計(jì)數(shù)到循環(huán)計(jì)數(shù)最大值時(shí),如果并行數(shù)據(jù)源1還沒有寫滿另一 個(gè)緩沖區(qū),只有等待,這樣串行輸出數(shù)據(jù)將不再連續(xù)。 FLAG2控制模塊6的一個(gè)具體實(shí)施例如下所述
這里規(guī)定FLAG2為高時(shí),為數(shù)據(jù)寫入狀態(tài)表示并行數(shù)據(jù)源1可以寫下一幀 數(shù)據(jù),為低時(shí),為等待狀態(tài)表示并行數(shù)據(jù)源l需要繼續(xù)等待。
在初始狀態(tài)時(shí),左右兩個(gè)緩沖區(qū)都為空時(shí),F(xiàn)LAG2為高,且保持。
在初始狀態(tài)時(shí),寫滿第二個(gè)緩沖區(qū)時(shí),F(xiàn)LAG2置為低。
當(dāng)計(jì)數(shù)模塊7計(jì)數(shù)到循環(huán)計(jì)數(shù)最大值時(shí),如果另一個(gè)緩沖區(qū)已經(jīng)寫滿, FLAG2變?yōu)楦摺?br> 當(dāng)計(jì)數(shù)模塊7計(jì)數(shù)在中間值時(shí),如果另一個(gè)緩沖區(qū)已經(jīng)寫滿,F(xiàn)LAG2置低, 如果另一個(gè)緩沖區(qū)沒有寫滿,F(xiàn)LAG2置高。
權(quán)利要求
1. 一種實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的系統(tǒng),包括用于提供并行數(shù)據(jù)的并行數(shù)據(jù)源模塊,其特征在于,還包括并行數(shù)據(jù)接收模塊,包括有左右緩沖區(qū),用于接收緩存所述并行數(shù)據(jù),而且當(dāng)右緩沖區(qū)中數(shù)據(jù)讀取時(shí),向左緩沖區(qū)中寫入數(shù)據(jù),并在右緩沖區(qū)中數(shù)據(jù)讀取完成前寫滿左緩沖區(qū),以用于右緩沖區(qū)中數(shù)據(jù)讀取完成后,開始從左緩沖區(qū)中讀取數(shù)據(jù);并行數(shù)據(jù)輸入切換控制模塊,用于控制選擇左右緩沖區(qū)之一寫入并行數(shù)據(jù);串行數(shù)據(jù)輸出模塊,包含有輸出切換,用于從所述緩沖區(qū)中讀取數(shù)據(jù)并輸出,其中輸出切換控制從左右緩沖區(qū)之一讀取數(shù)據(jù)。
2. 根據(jù)權(quán)利要求l所述的數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的系統(tǒng),其特征在于, 所述系統(tǒng)還包括第一標(biāo)志位控制模塊,用于標(biāo)志所述左右緩沖區(qū)數(shù)據(jù)是否處于寫滿狀態(tài), 左右緩沖區(qū)都寫滿時(shí),將第一標(biāo)志位置為左緩沖區(qū)寫滿,在左緩沖區(qū)寫滿時(shí), 將第一標(biāo)志位置為左緩沖區(qū)寫滿,在右緩沖區(qū)寫滿時(shí),將第一標(biāo)志位置為右緩沖區(qū)寫滿;第二標(biāo)志位控制模塊,用于標(biāo)志緩沖區(qū)數(shù)據(jù)是否寫入,在緩沖區(qū)數(shù)據(jù)寫滿 時(shí),第二標(biāo)志位控制模塊將第二標(biāo)志位置為等待狀態(tài),在左右緩沖區(qū)之一的數(shù) 據(jù)被讀完時(shí),第二標(biāo)志位控制模塊將第二標(biāo)志位從所述等待狀態(tài)置為數(shù)據(jù)寫入 狀態(tài)。
3. 根據(jù)權(quán)利要求l所述的數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的系統(tǒng),其特征在于, 所述系統(tǒng)還包括計(jì)數(shù)模塊,用于控制串行數(shù)據(jù)輸出模塊根據(jù)其當(dāng)前數(shù)值將所述 左右緩沖區(qū)之一的對(duì)應(yīng)比特?cái)?shù)據(jù)輸出,所述計(jì)數(shù)模塊計(jì)數(shù)達(dá)到循環(huán)計(jì)數(shù)最大值 時(shí),所述緩沖區(qū)之一的數(shù)據(jù)串行輸出完成。
4. 根據(jù)權(quán)利要求2所述的數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的系統(tǒng),其特征在于, 所述系統(tǒng)還包括計(jì)數(shù)模塊,用于控制串行數(shù)據(jù)輸出模塊根據(jù)其當(dāng)前數(shù)值將所述 左右緩沖區(qū)之一的對(duì)應(yīng)比特?cái)?shù)據(jù)輸出,所述計(jì)數(shù)模塊計(jì)數(shù)達(dá)到循環(huán)計(jì)數(shù)最大值 時(shí),所述緩沖區(qū)之一的數(shù)據(jù)串行輸出完成。
5. 根據(jù)權(quán)利要求4所述的數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的系統(tǒng),其特征在于, 所述計(jì)數(shù)模塊還包括第三標(biāo)志位,其在初始態(tài)和所述緩沖區(qū)之一的數(shù)據(jù)串行輸 出完成后跟隨第一標(biāo)志位,用于選擇所述緩沖區(qū)之一讀取數(shù)據(jù)。
6. 根據(jù)權(quán)利要求5所述的數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的系統(tǒng),其特征在于, 還包括串行輸出時(shí)鐘生成模塊,用于同歩計(jì)數(shù)模塊、串行數(shù)據(jù)輸出模塊和第二 標(biāo)志位控制模塊,所述串行輸出時(shí)鐘是一個(gè)周期固定的持續(xù)時(shí)鐘。
7. —種實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的方法,其特征在于,包括如下歩驟(1) 并行數(shù)據(jù)源向并行數(shù)據(jù)接收模塊中的左右緩沖區(qū)依次寫入數(shù)據(jù);(2) 所述左右緩沖區(qū)都寫滿數(shù)據(jù)后,串行數(shù)據(jù)輸出模塊先從左緩沖區(qū)中 讀取數(shù)據(jù),在左緩沖區(qū)數(shù)據(jù)讀取完后,再從右緩沖區(qū)中讀取數(shù)據(jù);(3) 當(dāng)右緩沖區(qū)中數(shù)據(jù)讀取時(shí),向左緩沖區(qū)中寫入數(shù)據(jù),并在右緩沖區(qū)中 數(shù)據(jù)讀取完成前寫滿左緩沖區(qū),以用于右緩沖區(qū)中數(shù)據(jù)讀取完成后,開始從左 緩沖區(qū)中讀取數(shù)據(jù);(4) 依此交替讀取數(shù)據(jù)和寫入數(shù)據(jù),以實(shí)現(xiàn)數(shù)據(jù)的無縫輸出。
8. 根據(jù)權(quán)利要求7所述的實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的方法,其特征在 于,還包括步驟(81) 所述左、右緩沖區(qū)都寫滿數(shù)據(jù)時(shí),將第一標(biāo)志位置為左緩沖區(qū)寫滿 狀態(tài),所述左緩沖區(qū)寫滿后,將第一標(biāo)志位置為左緩沖區(qū)寫滿狀態(tài),所述右緩 沖區(qū)寫滿后,將第一標(biāo)志位置為右緩沖區(qū)寫滿狀態(tài),此時(shí),將第二標(biāo)志位置為 等待狀態(tài);(82) 在所述緩沖區(qū)的數(shù)據(jù)被讀完后,將所述第二標(biāo)志位從所述等待狀態(tài) 置為數(shù)據(jù)寫入狀態(tài),根據(jù)第一標(biāo)志位,控制選擇緩沖區(qū)進(jìn)行數(shù)據(jù)寫入,根據(jù)第 一標(biāo)志位,控制選擇緩沖區(qū)進(jìn)行數(shù)據(jù)讀取。
9. 根據(jù)權(quán)利要求7所述的實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的方法,其特征在于,寫入數(shù)據(jù)的速度大于緩沖區(qū)串行數(shù)據(jù)的輸出速度。
10. 根據(jù)權(quán)利要求8所述的實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的方法,其特征在 于,步驟82還包括在串行數(shù)據(jù)輸出模塊按計(jì)數(shù)模塊當(dāng)前值從左右緩沖區(qū)之 一發(fā)送對(duì)應(yīng)比特,計(jì)數(shù)模塊達(dá)到循環(huán)計(jì)數(shù)最大值時(shí),所述緩沖區(qū)的數(shù)據(jù)被讀取 完成。
全文摘要
本發(fā)明公開了一種實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出的系統(tǒng),包括用于提供并行數(shù)據(jù)的并行數(shù)據(jù)源模塊,還包括并行數(shù)據(jù)接收模塊,包括有左右緩沖區(qū),用于接收緩存所述并行數(shù)據(jù),而且當(dāng)右緩沖區(qū)中數(shù)據(jù)讀取時(shí),向左緩沖區(qū)中寫入數(shù)據(jù),并在右緩沖區(qū)中數(shù)據(jù)讀取完成前寫滿左緩沖區(qū),以用于右緩沖區(qū)中數(shù)據(jù)讀取完成后,開始從左緩沖區(qū)中讀取數(shù)據(jù);并行數(shù)據(jù)輸入切換控制模塊,用于控制并行數(shù)據(jù)源模塊選擇左右緩沖區(qū)之一進(jìn)行并行數(shù)據(jù)寫入;串行數(shù)據(jù)輸出模塊,包含有輸出切換,用于從所述緩沖區(qū)中讀取數(shù)據(jù)并無縫輸出串行數(shù)據(jù),其中輸出切換控制從左右緩沖區(qū)之一讀取數(shù)據(jù),從而實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無縫輸出。
文檔編號(hào)G06F13/38GK101441610SQ20071017786
公開日2009年5月27日 申請(qǐng)日期2007年11月21日 優(yōu)先權(quán)日2007年11月21日
發(fā)明者郭正鈞 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1