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

使用三步通信緩存的通信設(shè)備的制作方法

文檔序號(hào):7767401閱讀:151來(lái)源:國(guó)知局
專利名稱:使用三步通信緩存的通信設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及使用三步通信緩存和數(shù)據(jù)發(fā)送/接收設(shè)備的通信設(shè)備,或者更具體地說(shuō),涉及一種通信設(shè)備,它使用了三步通信緩存,其中串行通信設(shè)備和中央處理單元(CPU)可以一直訪問該三步通信緩存。
發(fā)送/接收設(shè)備和CPU異步地使用通信緩存,因此可以同時(shí)訪問通信緩存。不過,這樣做不利之處是,當(dāng)訪問數(shù)據(jù)不完整時(shí)會(huì)導(dǎo)致讀寫數(shù)據(jù)的錯(cuò)誤。
下面將詳細(xì)解釋這種錯(cuò)誤。


圖1A和圖1B圖示了根據(jù)現(xiàn)有技術(shù),只使用一個(gè)通信緩存的通信設(shè)備的問題。其中圖1A圖示了數(shù)據(jù)同步失敗的例子,圖1B圖示了發(fā)生不完整數(shù)據(jù)讀取的例子。
圖1A圖示了串行通信設(shè)備100和CPU 200在一個(gè)通信緩存300中寫數(shù)據(jù)的例子。此時(shí),寫和讀都有特定的方向,也就是說(shuō),CPU 200將來(lái)自通信緩存300的上層數(shù)據(jù)存儲(chǔ)到通信緩存300的下層,并且串行通信設(shè)備100從通信緩存300上層到它的下層順序地讀取數(shù)據(jù),然后將數(shù)據(jù)發(fā)送到外部設(shè)備(圖中未畫出)。
然而在上述過程中,一旦在串行通信設(shè)備100在CPU 200沒有完成數(shù)據(jù)的寫操作的情況下讀取待發(fā)送的數(shù)據(jù),或者是在串行通信設(shè)備100將新收到的數(shù)據(jù)存儲(chǔ)到通信緩存300之前,由于CPU 200和串行通信設(shè)備100的異步而導(dǎo)致處理速度差異CPU 200,對(duì)事先存儲(chǔ)在通信緩存300中的數(shù)據(jù)進(jìn)行了讀取的情況下,則數(shù)據(jù)沒有及時(shí)更新。也就是說(shuō),數(shù)據(jù)沒有進(jìn)行同步。
圖1B圖示的例子中,串行通信設(shè)備100和CPU 200同步訪問通信緩存300中的相同存儲(chǔ)區(qū)。其中,當(dāng)串行通信設(shè)備100和CPU 200同時(shí)訪問通信緩存300中的相同存儲(chǔ)區(qū)時(shí),數(shù)據(jù)可能被不完全讀取。
據(jù)此,為了解決在使用一個(gè)通信緩存時(shí)所產(chǎn)生的問題,就使用了三步通信緩存。
下面將參考附圖,詳細(xì)地解釋根據(jù)現(xiàn)有技術(shù)的使用了三步通信緩存的通信設(shè)備和數(shù)據(jù)的發(fā)送/接收方法。
圖2是一個(gè)結(jié)構(gòu)圖,它圖示了根據(jù)現(xiàn)有技術(shù)的三步通信緩存。
如圖2所示,該通信設(shè)備包括串行通信設(shè)備100,用于以串行方式與外部設(shè)備(圖中未示出)進(jìn)行數(shù)據(jù)的發(fā)送/接收;CPU 200,用于訪問和處理外部設(shè)備的數(shù)據(jù),以及處理內(nèi)部設(shè)備的數(shù)據(jù);由DOUT1 BUF PTR、DOUT2 BUF PTR和DOUT3 BUF PTR分別指定的、用于臨時(shí)存儲(chǔ)數(shù)據(jù)的三步通信緩存BUF1、BUF2和BUF3;中斷發(fā)生器500,用于對(duì)CPU200產(chǎn)生中斷;以及狀態(tài)緩存400,用于向CPU 200發(fā)送三步通信緩存BUF1、BUF2和BUF3的各自狀態(tài)。
下面將詳細(xì)地解釋根據(jù)現(xiàn)有技術(shù)的使用了三步通信緩存的通信設(shè)備和數(shù)據(jù)的發(fā)送/接收方法。
每個(gè)通信緩存BUF1、BUF2和BUF3都被設(shè)置為具有“讀”、“寫”、“等待”和“未使用”幾種狀態(tài)之一。設(shè)置信息存儲(chǔ)在狀態(tài)緩存400中。接著,通信設(shè)備利用存儲(chǔ)在狀態(tài)緩存400中的狀態(tài)信息,為各個(gè)通信緩存BUF1、BUF2和BUF3分配指針DOUT1 BUF PTR、DOUT2 BUF PTR和DOUT3 BUF PTR,從而啟動(dòng)了讀、寫操作。
這樣,串行通信設(shè)備100與CPU 200之間的處理速度差異以及處理位置的重疊等情況就不會(huì)發(fā)生,使得它們可以在任何時(shí)候訪問各自的通信緩存。
下面將詳細(xì)地解釋根據(jù)現(xiàn)有技術(shù)的使用了三步通信緩存的通信設(shè)備和數(shù)據(jù)的發(fā)送/接收方法。
1)接收數(shù)據(jù)的方法串行通信設(shè)備100選擇一個(gè)通信緩存BUF1并使之處于數(shù)據(jù)的“寫”狀態(tài)。選擇通信緩存BUF1只是作為例子,也可以選擇其他通信緩存如BUF2和BUF3。通信緩存BUF1指定,然后接收的數(shù)據(jù)被寫到通信緩存BUF1。
接著,當(dāng)數(shù)據(jù)的接收完成以后,串行通信設(shè)備100將通信緩存BUF1的狀態(tài)改為存儲(chǔ)有最近數(shù)據(jù)的通信緩存所具有的狀態(tài)。狀態(tài)信息存儲(chǔ)在狀態(tài)緩存400。
然后,當(dāng)數(shù)據(jù)的接收完成后,串行通信設(shè)備100將產(chǎn)生一個(gè)中斷,以通知中斷發(fā)生器500。中斷發(fā)生器500將中斷信號(hào)應(yīng)用到CPU 200。接著,CPU 200檢查狀態(tài)緩存400,以檢查最近的數(shù)據(jù)存儲(chǔ)在哪一個(gè)通信緩存中。
如果CPU 200檢查狀態(tài)緩存400,則存有最近數(shù)據(jù)的通信緩存BUF1的狀態(tài)轉(zhuǎn)為“讀”狀態(tài)。然后,CPU 200訪問轉(zhuǎn)為“讀”狀態(tài)的通信緩存BUF1,讀取其中存儲(chǔ)的數(shù)據(jù)。
像這樣,在接收和存儲(chǔ)最近數(shù)據(jù)的過程中,由于三個(gè)通信緩存BUF1、BUF2和BUF3中至少有一個(gè)通信緩存不被使用,因此CPU 200能夠在任何時(shí)候訪問數(shù)據(jù)而不會(huì)在CPU 200與串行通信設(shè)備100之間產(chǎn)生干涉。
2)發(fā)送數(shù)據(jù)的方法與所述接收方法相對(duì)照,CPU 200通過狀態(tài)緩存400檢查可讀通信緩存,在可讀通信緩存BUF3中存儲(chǔ)發(fā)送數(shù)據(jù),并將通信緩存BUF3的狀態(tài)信息轉(zhuǎn)為待發(fā)送數(shù)據(jù)被存儲(chǔ)的狀態(tài)。然后,串行通信設(shè)備100從外部設(shè)備收到發(fā)送數(shù)據(jù)的請(qǐng)求,為其中存有數(shù)據(jù)的通信緩存BUF3分配“可讀”狀態(tài),并從緩存BUF3讀取數(shù)據(jù),從而發(fā)送到外部設(shè)備。
像這樣,由于在CPU 200與串行通信設(shè)備100之間的操作不會(huì)重疊或相互干涉,因此根據(jù)現(xiàn)有技術(shù)使用了三個(gè)通信緩存的通信設(shè)備就能夠執(zhí)行可靠的數(shù)據(jù)處理。
然而,實(shí)際上CPU 200總是在當(dāng)干涉發(fā)生或?qū)懭氚l(fā)送數(shù)據(jù)時(shí)讀取狀態(tài)緩存400,來(lái)檢查每個(gè)通信緩存的狀態(tài)信息以發(fā)現(xiàn)一個(gè)具有相應(yīng)狀態(tài)的通信緩存,以及執(zhí)行數(shù)據(jù)的讀或?qū)?,因而有著?fù)雜的操作和延遲的時(shí)間。
本發(fā)明的另一個(gè)目的是提供一種使用三步通信緩存的通信設(shè)備,其中CPU與串行通信設(shè)備能夠互訪而不會(huì)產(chǎn)生干涉,并且通過省略檢查每個(gè)緩存狀態(tài)的步驟而消除時(shí)間延遲。
為了取得以上優(yōu)點(diǎn)并且符合本文中所體現(xiàn)的并被廣泛闡述的本發(fā)明的目的,本發(fā)明提出了通信設(shè)備,它使用三步通信緩存組成串行通信設(shè)備,用于從另一個(gè)通信設(shè)備接收數(shù)據(jù)或發(fā)送數(shù)據(jù)到所述的另一個(gè)通信設(shè)備;CPU,用于讀取和處理從串行通信設(shè)備接收的數(shù)據(jù),或?yàn)榇型ㄐ旁O(shè)備提供要發(fā)送到另一個(gè)通信設(shè)備的數(shù)據(jù);中斷發(fā)生器,用于產(chǎn)生中斷信號(hào),該信號(hào)在串行通信設(shè)備完成數(shù)據(jù)接收時(shí)輸出到CPU;系統(tǒng)時(shí)鐘發(fā)生器,用于產(chǎn)生時(shí)鐘信號(hào),以同步通信設(shè)備;第一通信緩存,它連接到串行通信設(shè)備,用于臨時(shí)存儲(chǔ)從串行通信設(shè)備接收到的數(shù)據(jù),或者臨時(shí)存儲(chǔ)來(lái)自CPU的、將要發(fā)送到所述的另一個(gè)通信設(shè)備的數(shù)據(jù),并且用于為串行通信設(shè)備提供數(shù)據(jù);第三通信緩存,它在時(shí)鐘信號(hào)發(fā)生器的時(shí)鐘信號(hào)處于上升或下降的沿時(shí)啟動(dòng),用于接收并臨時(shí)存儲(chǔ)數(shù)據(jù),或者輸出存儲(chǔ)的數(shù)據(jù);第二通信緩存,它連接第一通信緩存和第三通信緩存,在時(shí)鐘信號(hào)發(fā)生器的時(shí)鐘信號(hào)處于不同于啟動(dòng)第三通信緩存所需的信號(hào)沿的一個(gè)沿時(shí)啟動(dòng),用于接收和臨時(shí)存儲(chǔ)來(lái)自第一通信緩存的數(shù)據(jù),或者將存儲(chǔ)的數(shù)據(jù)輸出到第一通信緩存。
在下面參考附圖對(duì)本發(fā)明的詳細(xì)描述中,前述的和其他的有關(guān)本發(fā)明的目的、特征、方面和優(yōu)勢(shì)將會(huì)愈加明顯。
在附圖中圖1A和圖1B圖示了根據(jù)現(xiàn)有技術(shù)只使用一個(gè)通信緩存的通信設(shè)備的問題;圖2是一個(gè)方框圖,它圖示了根據(jù)現(xiàn)有技術(shù)使用三步通信緩存的通信設(shè)備;圖3是一個(gè)方框圖,它圖示了根據(jù)本發(fā)明的一個(gè)實(shí)施例使用三步通信緩存的通信設(shè)備;并且圖4是一個(gè)方框圖,它圖示了根據(jù)本發(fā)明的另一個(gè)實(shí)施例使用三步通信緩存的通信設(shè)備。
圖3是一個(gè)方框圖,它圖示了根據(jù)本發(fā)明使用三步通信緩存的通信設(shè)備。
如圖3所示,根據(jù)本發(fā)明的第一實(shí)施例,通信設(shè)備包括串行通信設(shè)備(例如,通用異步收發(fā)器,簡(jiǎn)稱UART)600,用于接收來(lái)自另一個(gè)通信設(shè)備的數(shù)據(jù),或者將來(lái)自CPU的數(shù)據(jù)發(fā)送到所述的另一個(gè)通信設(shè)備;CPU 700,用于讀取和處理從串行通信設(shè)備接收的數(shù)據(jù),或者為串行通信設(shè)備600提供向另一個(gè)通信設(shè)備發(fā)送的數(shù)據(jù);中斷發(fā)生器900,用于產(chǎn)生中斷信號(hào)并且在串行通信設(shè)備完成數(shù)據(jù)接收時(shí),將信號(hào)輸出到CPU 700 系統(tǒng)時(shí)鐘發(fā)生器1000,用于產(chǎn)生時(shí)鐘信號(hào),以同步通信設(shè)備;第一通信緩存BUF1,它連接到串行通信設(shè)備600,用于臨時(shí)存儲(chǔ)從串行通信設(shè)備600接收到的數(shù)據(jù),或者臨時(shí)存儲(chǔ)來(lái)自CPU700的、將要發(fā)送到所述的另一個(gè)通信設(shè)備的數(shù)據(jù),并且用于為串行通信設(shè)備600提供數(shù)據(jù);第三通信緩存BUF3,它在來(lái)自時(shí)鐘信號(hào)發(fā)生器1000的時(shí)鐘信號(hào)處于上升沿或下降沿時(shí)啟動(dòng),用于接收并臨時(shí)存儲(chǔ)數(shù)據(jù),或者輸出存儲(chǔ)的數(shù)據(jù);第二通信緩存BUF2,它連接在第一通信緩存BUF1和第三通信緩存BUF3之間,在時(shí)鐘信號(hào)發(fā)生器的時(shí)鐘信號(hào)處于不同于啟動(dòng)第三通信緩存BUF3所需的信號(hào)沿的一個(gè)時(shí)鐘沿時(shí)啟動(dòng),用于接收和臨時(shí)存儲(chǔ)來(lái)自第一通信緩存BUF1的數(shù)據(jù),或者將存儲(chǔ)的數(shù)據(jù)輸出到第一通信緩存BUF1。
作為例子,所述數(shù)據(jù)為5個(gè)字節(jié)的二進(jìn)制數(shù)據(jù),可逐字節(jié)地存儲(chǔ)在第一到第三通信緩存BUF1~3所指定地址的存儲(chǔ)區(qū)中。第一到第三通信緩存BUF1~3的存儲(chǔ)區(qū)可具有觸發(fā)器。一旦第一到第三通信緩存BUF1~3的存儲(chǔ)區(qū)具有觸發(fā)器,則第一通信緩存BUF1的觸發(fā)器由通信時(shí)鐘發(fā)生器(圖中未示出)啟動(dòng)。當(dāng)從串行通信設(shè)備600或CPU700接收到的數(shù)據(jù)中檢測(cè)出通知數(shù)據(jù)發(fā)送開始的數(shù)據(jù)時(shí),通信時(shí)鐘發(fā)生器產(chǎn)生通信時(shí)鐘信號(hào)。而且,第二通信緩存BUF2的每個(gè)觸發(fā)器在系統(tǒng)時(shí)鐘發(fā)生器1000的時(shí)鐘信號(hào)的上升沿同時(shí)啟動(dòng),從而同時(shí)地接收來(lái)自第一通信緩存BUF1的數(shù)據(jù),或者將存儲(chǔ)的數(shù)據(jù)同時(shí)地輸出到第一通信緩存BUF1。另外,第三通信緩存BUF3的觸發(fā)器在系統(tǒng)時(shí)鐘發(fā)生器的時(shí)鐘信號(hào)的下降沿同時(shí)啟動(dòng),并同時(shí)地接收來(lái)自第二通信緩存BUF2的數(shù)據(jù),或者將存儲(chǔ)的數(shù)據(jù)同時(shí)地輸出到第二通信緩存BUF2。一旦第二通信緩存BUF2的每個(gè)觸發(fā)器同時(shí)由時(shí)鐘信號(hào)的下降沿所啟動(dòng),則第三通信緩存BUF3的觸發(fā)器在時(shí)鐘信號(hào)的上升沿同時(shí)啟動(dòng)。
下面將解釋根據(jù)本發(fā)明的第一實(shí)施例使用了三步通信緩存的通信設(shè)備的操作。
首先要解釋在從另一個(gè)通信設(shè)備接收數(shù)據(jù)的情況下,根據(jù)本發(fā)明的第一實(shí)施例使用了三步通信緩存的通信設(shè)備的操作。這里所述的另一個(gè)通信設(shè)備可以是與本發(fā)明的第一實(shí)施例的通信設(shè)備同等創(chuàng)建的通信設(shè)備進(jìn)行通信的通信設(shè)備,或者是另一個(gè)與本發(fā)明的通信設(shè)備進(jìn)行數(shù)據(jù)通信的通信設(shè)備。
當(dāng)串行數(shù)據(jù)設(shè)備600開始接收來(lái)自另一個(gè)通信設(shè)備的數(shù)據(jù)時(shí),從串行數(shù)據(jù)設(shè)備600接收的數(shù)據(jù)接著將逐字節(jié)地存儲(chǔ)于第一通信緩存BUF1。更確切地說(shuō),例如,收到了5字節(jié)的數(shù)據(jù),并分別逐字節(jié)地存儲(chǔ)在第一通信緩存BUF1的00、01、02、03、04和05地址觸發(fā)器。然后當(dāng)來(lái)自系統(tǒng)時(shí)鐘發(fā)生器1000的、輸入給第二通信緩存BUF2的時(shí)鐘信號(hào)處于下降沿,就啟動(dòng)第二通信緩存BUF2以同步地同時(shí)接收存儲(chǔ)在第一通信緩存BUF1中的數(shù)據(jù)。也就是說(shuō),接收到的、逐字節(jié)地存儲(chǔ)于第一通信緩存BUF1的00、01、02、03、04和05地址觸發(fā)器的數(shù)據(jù)被同步地同時(shí)輸出到第二通信緩存BUF2的00、01、02、03、04和05地址觸發(fā)器并臨時(shí)存儲(chǔ)下來(lái)。
接下來(lái),當(dāng)來(lái)自通信時(shí)鐘發(fā)生器1000的、輸入到第三通信緩存BUF3的時(shí)鐘信號(hào)處于上升沿時(shí),就啟動(dòng)了第三通信緩存BUF3以從第二通信緩存BUF2同步地接收5字節(jié)的數(shù)據(jù)。也就是說(shuō),逐字節(jié)地分別存儲(chǔ)于第二通信緩存BUF2的00、01、02、03、04和05地址觸發(fā)器的數(shù)據(jù)同步地輸出到第三通信緩存BUF3的00、01、02、03、04和05地址觸發(fā)器。
同時(shí),連接到串行數(shù)據(jù)設(shè)備600的中斷發(fā)生器900將來(lái)自串行數(shù)據(jù)設(shè)備600的接收數(shù)據(jù)與根據(jù)通信協(xié)議預(yù)先設(shè)定和存儲(chǔ)、用于指示發(fā)送完成的數(shù)據(jù)相比較,從而檢查數(shù)據(jù)接收是否完成。此時(shí),一旦有與預(yù)先設(shè)置的、用于指示發(fā)送完成的數(shù)據(jù)相同的數(shù)據(jù)存在于從串行通信設(shè)備600接收的數(shù)據(jù)中,“接收完成”狀態(tài)就被識(shí)別,并且一個(gè)通知“接收完成”狀態(tài)的中斷信號(hào)被輸出到CPU 700。
CPU 700通過接收中斷信號(hào)識(shí)別新數(shù)據(jù)的接收,并且根據(jù)預(yù)先設(shè)定的、存儲(chǔ)的優(yōu)先級(jí)中止或完成執(zhí)行進(jìn)程。然后,CPU 700讀取和處理從第三通信緩存BUF3接收的數(shù)據(jù),從而完成接收操作。
同時(shí),下面將要解釋根據(jù)本發(fā)明的第一實(shí)施例使用了三步通信緩存向另一個(gè)通信設(shè)備發(fā)送數(shù)據(jù)的通信設(shè)備的操作。
首先,如果CPU 700將要發(fā)送到另一個(gè)通信設(shè)備的5字節(jié)的輸出數(shù)據(jù)寫入(即,輸出)到第三通信緩存BUF3,則第三通信緩存BUF3分別將要發(fā)送的5字節(jié)的數(shù)據(jù)逐字節(jié)地存儲(chǔ)到第三通信緩存BUF3的00、01、02、03、04和05地址觸發(fā)器。然后,當(dāng)來(lái)自系統(tǒng)時(shí)鐘發(fā)生器1000的、輸入到第三通信緩存BUF3的時(shí)鐘信號(hào)處于上升沿時(shí),就啟動(dòng)了第三通信緩存BUF3,使它同步地發(fā)送5字節(jié)的數(shù)據(jù)到第二通信緩存BUF2。也就是說(shuō),逐字節(jié)地分別存儲(chǔ)于第三通信緩存BUF3的00、01、02、03、04和05地址觸發(fā)器的數(shù)據(jù)被同步地輸出并存儲(chǔ)到第二通信緩存BUF2的00、01、02、03、04和05地址觸發(fā)器。
接下來(lái),當(dāng)來(lái)自系統(tǒng)時(shí)鐘發(fā)生器1000的、輸入到第二通信緩存BUF2的時(shí)鐘信號(hào)處于下降沿時(shí),將啟動(dòng)第二通信緩存BUF2,使它同步地發(fā)送5字節(jié)的數(shù)據(jù)到第一通信緩存BUF1。也就是說(shuō),逐字節(jié)地分別存儲(chǔ)于第二通信緩存BUF2的00、01、02、03、04和05地址觸發(fā)器的數(shù)據(jù)被同步地輸出并臨時(shí)存儲(chǔ)到第一通信緩存BUF1的00、01、02、03、04和05地址觸發(fā)器。最后,串行通信設(shè)備600逐字節(jié)地讀取第一通信緩存BUF1中存儲(chǔ)的待發(fā)送數(shù)據(jù),并且接著發(fā)送到另一個(gè)目標(biāo)通信設(shè)備,從而完成了發(fā)送操作。
如前所述,在根據(jù)本發(fā)明的第一實(shí)施例使用了三步通信緩存的通信設(shè)備中,對(duì)通用緩存的訪問是在時(shí)鐘信號(hào)的互不相同的沿進(jìn)行的,也就是說(shuō),在其它時(shí)間點(diǎn),這樣將防止因干涉造成的不完整數(shù)據(jù)的讀和寫。而且,由于不必一直更新顯示通信緩存狀態(tài)的指針,并且不需要管理選擇被訪問緩存的指針,因此可以在所有時(shí)間的任何時(shí)間點(diǎn)通過相應(yīng)的緩存接收或發(fā)送數(shù)據(jù)。
圖4是一個(gè)方框圖,它圖示了根據(jù)本發(fā)明的第一實(shí)施例使用了三步通信緩存的通信設(shè)備。
如圖4所示的依照本發(fā)明的另一個(gè)實(shí)施例的通信設(shè)備的組成包括串行通信設(shè)備(通用異步收發(fā)器,簡(jiǎn)稱UART)600,用于接收來(lái)自另一個(gè)通信設(shè)備的數(shù)據(jù),或者將來(lái)自CPU的數(shù)據(jù)發(fā)送到所述的另一個(gè)通信設(shè)備;CPU 700,用于讀取和處理從串行通信設(shè)備接收的數(shù)據(jù),或者為串行通信設(shè)備600提供向另一個(gè)通信設(shè)備發(fā)送的數(shù)據(jù);中斷發(fā)生器900,用于產(chǎn)生中斷信號(hào)并且在串行通信設(shè)備完成數(shù)據(jù)接收時(shí),將信號(hào)輸出到CPU 700;系統(tǒng)時(shí)鐘發(fā)生器1000,用于產(chǎn)生時(shí)鐘信號(hào),以同步通信設(shè)備;第一通信緩存BUF1,它連接到串行通信設(shè)備600,用于臨時(shí)存儲(chǔ)從串行通信設(shè)備600接收到的數(shù)據(jù),或者臨時(shí)存儲(chǔ)來(lái)自CPU 700的、將要發(fā)送到所述的另一個(gè)通信設(shè)備的數(shù)據(jù),并且用于為串行通信設(shè)備600提供數(shù)據(jù);第三通信緩存BUF3,它在來(lái)自時(shí)鐘信號(hào)發(fā)生器1000的時(shí)鐘信號(hào)處于上升沿或下降沿時(shí)啟動(dòng),用于接收臨時(shí)存儲(chǔ)的數(shù)據(jù),或者輸出存儲(chǔ)的數(shù)據(jù);第二通信緩存BUF2,它連接在第一通信緩存BUF1和第三通信緩存BUF3之間,在時(shí)鐘信號(hào)發(fā)生器的時(shí)鐘信號(hào)處于不同于啟動(dòng)第三通信緩存BUF3所需的信號(hào)沿的一個(gè)沿時(shí)啟動(dòng),用于接收和臨時(shí)存儲(chǔ)來(lái)自第一通信緩存BUF1的數(shù)據(jù),或者將存儲(chǔ)的數(shù)據(jù)輸出到第一通信緩存BUF1 第一門電路G1,它連接在第一通信緩存BUF1和第二通信緩存BUF2之間,允許或阻斷第一通信緩存BUF1向第二通信緩存BUF2、或者第二通信緩存BUF2向第一通信緩存BUF1進(jìn)行的數(shù)據(jù)發(fā)送;第二門電路G2,它連接在第二通信緩存BUF2和第三通信緩存BUF3之間,允許或阻斷第二通信緩存BUF2向第三通信緩存BUF3、或者第三通信緩存BUF3向第二通信緩存BUF2進(jìn)行的數(shù)據(jù)發(fā)送;門電路控制器800,用于輸出第一指令信號(hào),該信號(hào)通過響應(yīng)來(lái)自CPU 700的指令信號(hào)來(lái)指示要發(fā)送到第二門電路G2的數(shù)據(jù),或用于輸出第二指令信號(hào),當(dāng)從串行通信設(shè)備600或CPU 700收到指示發(fā)送完成的數(shù)據(jù)時(shí),該信號(hào)指示要發(fā)送到第一門電路G1的數(shù)據(jù)。這里,當(dāng)從門電路控制器800收到第二指令信號(hào)時(shí),第一門電路G1允許數(shù)據(jù)的發(fā)送;當(dāng)從門電路控制器800收到第一指令信號(hào)時(shí),第二門電路G2允許數(shù)據(jù)的發(fā)送。
作為例子,所述數(shù)據(jù)為5個(gè)字節(jié)的二進(jìn)制數(shù)據(jù),逐字節(jié)地存儲(chǔ)在第一到第三通信緩存BUF1~3所指定地址的存儲(chǔ)區(qū)中。第一到第三通信緩存BUF1~3的存儲(chǔ)區(qū)可具有觸發(fā)器,可以由一通信時(shí)鐘信號(hào)或通信時(shí)鐘發(fā)生器1000產(chǎn)生的時(shí)鐘信號(hào)所啟動(dòng)。
第一門電路G1有一對(duì)收/發(fā)“與”門并聯(lián)地連接到一起并且輸入和輸出具有不同的方向。此時(shí),接收“與”門的一個(gè)輸入端連接到門電路控制器800的第二指令信號(hào)的輸出端口,另一個(gè)輸入端連接到第一通信緩存BUF1,輸出端連接到第二通信緩存BUF2。發(fā)送“與”門的一個(gè)輸入端連接到門電路控制器800的第二指令信號(hào)的輸出端口,另一個(gè)輸入端連接到第二通信緩存BUF2,輸出端連接到第一通信緩存BUF1。
第二門電路G2像第一門電路G1一樣,可以具有一對(duì)收/發(fā)“與”門并聯(lián)地連接到一起并且輸入和輸出具有不同的方向。此時(shí),接收“與”門的一個(gè)輸入端連接到門電路控制器800的第一指令信號(hào)的輸出端口,另一個(gè)輸入端連接到第二通信緩存BUF2,輸出端連接到第三通信緩存BUF3。發(fā)送“與”門的一個(gè)輸入端連接到門電路控制器800的第一指令信號(hào)的輸出端口,另一個(gè)輸入端連接到第三通信緩存BUF3,輸出端連接到第二通信緩存BUF2。
門電路控制器800具有簡(jiǎn)單指令緩存,它在接收到二進(jìn)制“1”時(shí),輸出二進(jìn)制信號(hào)到第一門電路G1和第二門電路G2。其中,該二進(jìn)制“1”與來(lái)自CPU700的指示第一門電路G1和第二門電路G2的數(shù)據(jù)發(fā)送的信號(hào)對(duì)應(yīng)。
下面將解釋一下根據(jù)本發(fā)明的另一個(gè)實(shí)施例使用了三步通信緩存的通信設(shè)備的操作。
首先要解釋在從另一個(gè)通信設(shè)備接收數(shù)據(jù)的情況下,根據(jù)本發(fā)明的另一個(gè)實(shí)施例使用了三步通信緩存的通信設(shè)備的操作。
當(dāng)串行數(shù)據(jù)設(shè)備600開始接收來(lái)自另一個(gè)通信設(shè)備的數(shù)據(jù)時(shí),從串行數(shù)據(jù)設(shè)備600接收的數(shù)據(jù)接著將逐字節(jié)地存儲(chǔ)于第一通信緩存BUF1。更確切地說(shuō),例如,收到了5字節(jié)的數(shù)據(jù),分別逐字節(jié)地存儲(chǔ)在第一通信緩存BUF1的00、01、02、03、04和05地址觸發(fā)器。此時(shí),門電路控制器800連接到串行通信設(shè)備600,將從串行通信設(shè)備600收到的、指示發(fā)送完成的數(shù)據(jù)與根據(jù)預(yù)先設(shè)置的通信協(xié)議指示發(fā)送完成的參考數(shù)據(jù)相比較。這里,如果數(shù)據(jù)與參考數(shù)據(jù)一致,則門電路控制器800識(shí)別到數(shù)據(jù)接收完成,從而輸出第二指令信號(hào)到第一門電路G1,例如,一個(gè)二進(jìn)制的“1”信號(hào)指示待發(fā)送的數(shù)據(jù)。然后,當(dāng)系統(tǒng)時(shí)鐘發(fā)生器1000產(chǎn)生的、輸入到第二通信緩存BUF2的時(shí)鐘信號(hào)處于下降沿時(shí),就啟動(dòng)了第二通信緩存BUF2,使它同步地接收來(lái)自第一通信緩存BUF1的數(shù)據(jù)。也就是說(shuō),逐字節(jié)地存儲(chǔ)在第一通信緩存BUF1的00、01、02、03、04和05地址觸發(fā)器的數(shù)據(jù)被同步地輸出和臨時(shí)存儲(chǔ)到第二通信緩存BUF2的00、01、02、03、04和05地址觸發(fā)器。
然后,當(dāng)CPU 700輸出指令信號(hào)到門電路控制器800,以便于讀取接收的數(shù)據(jù)時(shí),門電路控制器800響應(yīng)指令信號(hào),輸出第一指令信號(hào)(例如,二進(jìn)制信號(hào)“1”)到第二門電路G2。并且第二門電路G2(也就是接收“與”門)變成允許數(shù)據(jù)發(fā)送的狀態(tài)。
接下來(lái),當(dāng)來(lái)自系統(tǒng)時(shí)鐘發(fā)生器1000的、輸入到第三通信緩存BUF3的時(shí)鐘信號(hào)處于上升沿時(shí),就啟動(dòng)第三通信緩存BUF3,使它可以通過第二門電路G2的接收“與”門,同步地接收來(lái)自第二通信緩存BUF2的5字節(jié)數(shù)據(jù)。也就是說(shuō),逐字節(jié)地存儲(chǔ)于第二通信緩存BUF2的00、01、02、03、04和05地址觸發(fā)器的數(shù)據(jù)被同步地輸出和存儲(chǔ)到第三通信緩存BUF3的00、01、02、03、04和05地址觸發(fā)器。
同時(shí),連接到串行數(shù)據(jù)設(shè)備600的中斷發(fā)生器900將來(lái)自串行數(shù)據(jù)設(shè)備600的接收數(shù)據(jù)與根據(jù)通信協(xié)議預(yù)先設(shè)定和存儲(chǔ)用于指示發(fā)送完成的數(shù)據(jù)相比較,從而檢查數(shù)據(jù)接收是否完成。此時(shí),一旦有與預(yù)先設(shè)置的、用于指示發(fā)送完成的數(shù)據(jù)相同的數(shù)據(jù)存在于從串行通信設(shè)備600接收的數(shù)據(jù)中,“接收完成”狀態(tài)就被識(shí)別,并且通知“接收完成”狀態(tài)的中斷信號(hào)被輸出到CPU 700。
CPU 700通過接收中斷信號(hào)識(shí)別新數(shù)據(jù)的接收,并且根據(jù)預(yù)先設(shè)定的優(yōu)先級(jí)中止或完成執(zhí)行進(jìn)程。然后,CPU 700輸出指令信號(hào)到門電路控制器800,并且讀取和處理從第三通信緩存BUF3接收的數(shù)據(jù),從而完成接收操作。
同時(shí),下面將要解釋一下根據(jù)本發(fā)明的第一個(gè)實(shí)施例使用了三步通信緩存的通信設(shè)備發(fā)送數(shù)據(jù)到另一個(gè)通信設(shè)備的操作。
首先,如果CPU 700將要發(fā)送到另一個(gè)通信設(shè)備的5字節(jié)的輸出數(shù)據(jù)寫入到(或者說(shuō)輸出到)第三通信緩存BUF3,則第三通信緩存BUF3分別將要發(fā)送的5字節(jié)的數(shù)據(jù)逐字節(jié)地存儲(chǔ)到第三通信緩存BUF3的00、01、02、03、04和05地址觸發(fā)器。
然后,當(dāng)5字節(jié)待發(fā)送的數(shù)據(jù)完成向第三通信緩存BUF3的發(fā)送時(shí),CPU 700輸出一指令信號(hào)到門電路控制器800。門電路控制器800響應(yīng)指令信號(hào),分別輸出第一和第二指令信號(hào)到第二門電路G2和第一門電路G1,以使得第二門電路G2和第一門電路G1被控制為允許數(shù)據(jù)發(fā)送的狀態(tài)。
然后,當(dāng)來(lái)自系統(tǒng)時(shí)鐘發(fā)生器1000的、輸入到第三通信緩存BUF3的時(shí)鐘信號(hào)處于上升沿時(shí),就啟動(dòng)第三通信緩存BUF3,使它可以通過第二門電路G2同步地發(fā)送5字節(jié)的數(shù)據(jù)到第二通信緩存BUF2。也就是說(shuō),逐字節(jié)地存儲(chǔ)于第三通信緩存BUF3的00、01、02、03、04和05地址觸發(fā)器的數(shù)據(jù)被同步地輸出和存儲(chǔ)到第二通信緩存BUF2的00、01、02、03、04和05地址觸發(fā)器。
接下來(lái),當(dāng)來(lái)自系統(tǒng)時(shí)鐘發(fā)生器1000的、輸入到第二通信緩存BUF2的時(shí)鐘信號(hào)處于下降沿時(shí),就啟動(dòng)第二通信緩存BUF2,使它同步地發(fā)送5字節(jié)的數(shù)據(jù)到第一通信緩存BUF1。也就是說(shuō),逐字節(jié)地存儲(chǔ)于第二通信緩存BUF2的00、01、02、03、04和05地址觸發(fā)器的數(shù)據(jù)被同步地輸出和臨時(shí)存儲(chǔ)到第一通信緩存BUF1的00、01、02、03、04和05地址觸發(fā)器。
最后,串行通信設(shè)備600逐字節(jié)地讀取第一通信緩存BUF1中存儲(chǔ)的待發(fā)送數(shù)據(jù),并且接著發(fā)送到另一個(gè)目標(biāo)通信設(shè)備,從而完成發(fā)送操作。
如前所述,在根據(jù)本發(fā)明的另一個(gè)實(shí)施例使用了三步通信緩存的通信設(shè)備中,在發(fā)送和接收的時(shí)間內(nèi),當(dāng)完整的接收數(shù)據(jù)或發(fā)送數(shù)據(jù)存儲(chǔ)在通信緩存中時(shí),允許對(duì)通信緩存的訪問,從而與本發(fā)明的第一實(shí)施例相比提高了通信的可靠性。
作為本發(fā)明的又一個(gè)實(shí)施例,如果在不使用門電路控制器800的情況下將數(shù)據(jù)寫入到指定的地址或上一個(gè)地址,則創(chuàng)建數(shù)據(jù)將自動(dòng)地發(fā)送到下一個(gè)通信緩存中是有可能的。也就是說(shuō),如果在接收數(shù)據(jù)時(shí)將數(shù)據(jù)寫入到第一通信緩存的指定地址或上一個(gè)地址,則數(shù)據(jù)將自動(dòng)地發(fā)送到第二通信緩存,從而防止由于CPU 700和串行通信設(shè)備600之間的干涉而導(dǎo)致的錯(cuò)誤。
作為本發(fā)明的再一個(gè)實(shí)施例,它通過訪問在系統(tǒng)時(shí)鐘發(fā)生器1000和第二通信緩存BUF2之間的或者在系統(tǒng)時(shí)鐘發(fā)生器1000和第三通信緩存BUF3之間的時(shí)延電路,有可能創(chuàng)建不完整的待發(fā)送數(shù)據(jù),從而在當(dāng)?shù)谝煌ㄐ啪彺鍮UF1與第三通信緩存BUF3分別訪問第二通信緩存BUF2時(shí)產(chǎn)生時(shí)間差。
還是本發(fā)明的另一個(gè)實(shí)施例,通過使用雙端口的隨機(jī)存儲(chǔ)器(RAM)而不是第二通信緩存BUF2,不允許進(jìn)行同步訪問的串行通信設(shè)備與CPU對(duì)該RAM可以進(jìn)行雙向訪問。
由于本發(fā)明可以以若干個(gè)實(shí)施例的形式來(lái)體現(xiàn),因此只要不偏離其中的精神或主要特點(diǎn),對(duì)實(shí)施例的上述描述不僅僅局限于前面任何描述的細(xì)節(jié),除非特別指出。而且應(yīng)該在本發(fā)明的權(quán)利要求書中所定義的精神和范圍內(nèi)被廣泛地理解,因此在權(quán)利要求書及其等價(jià)的所有范圍內(nèi)的任何改動(dòng)和修訂都應(yīng)該為所附的權(quán)利要求書所包含。
權(quán)利要求
1.一種使用三步通信緩存的通信設(shè)備,包括串行通信設(shè)備,用于接收來(lái)自另一個(gè)通信設(shè)備的數(shù)據(jù),或者將數(shù)據(jù)發(fā)送到所述的另一個(gè)通信設(shè)備;中央處理單元用于讀取從串行通信設(shè)備接收的數(shù)據(jù),或者為串行通信設(shè)備提供向另一個(gè)通信設(shè)備發(fā)送的數(shù)據(jù);中斷發(fā)生器,用于產(chǎn)生中斷信號(hào),并且在串行通信設(shè)備完成數(shù)據(jù)接收時(shí),將中斷信號(hào)輸出到中央處理單元;系統(tǒng)時(shí)鐘發(fā)生器,用于產(chǎn)生時(shí)鐘信號(hào),以同步通信設(shè)備;第一通信緩存,其連接到串行通信設(shè)備,用于臨時(shí)存儲(chǔ)從串行通信設(shè)備接收到的數(shù)據(jù),或者臨時(shí)存儲(chǔ)來(lái)自中央處理單元的、將要發(fā)送到所述的另一個(gè)通信設(shè)備的數(shù)據(jù),并且用于為串行通信設(shè)備提供數(shù)據(jù);第三通信緩存,其在時(shí)鐘信號(hào)發(fā)生器的時(shí)鐘信號(hào)處于上升沿或下降沿時(shí)啟動(dòng),用于接收并臨時(shí)存儲(chǔ)數(shù)據(jù),或者輸出存儲(chǔ)的數(shù)據(jù);以及第二通信緩存,其連接在第一通信緩存和第三通信緩存之間,在處于不同于啟動(dòng)第三通信緩存的時(shí)鐘信號(hào)沿的一個(gè)沿時(shí)啟動(dòng),用于接收和臨時(shí)存儲(chǔ)來(lái)自第一通信緩存的數(shù)據(jù),或者將存儲(chǔ)的數(shù)據(jù)輸出到第一通信緩存。
2.如權(quán)利要求1所述的設(shè)備,進(jìn)一步包括連接在第二通信緩存和第三通信緩存之間的門電路裝置,其允許或阻斷從第二通信緩存向第三通信緩存、或者從第三通信緩存向第二通信緩存進(jìn)行數(shù)據(jù)發(fā)送;以及門電路控制器,用于響應(yīng)來(lái)自中央處理單元的指令信號(hào),以及輸出一個(gè)指示允許數(shù)據(jù)發(fā)送到門電路裝置的指令信號(hào)。
3.如權(quán)利要求2所述的設(shè)備,其中,門電路裝置是與門,其包括一個(gè)輸入終端,用于輸入數(shù)據(jù);另一個(gè)輸入終端,用于輸入來(lái)自門電路控制器的指令信號(hào);以及輸出終端,用于輸出數(shù)據(jù)。
4.如權(quán)利要求2所述的設(shè)備,其中門電路控制器是一個(gè)緩存,用于輸出來(lái)自中央處理單元的指令信號(hào)到門電路裝置。
5.如權(quán)利要求1所述的設(shè)備,進(jìn)一步包括第一門電路裝置,其連接在第一通信緩存和第二通信緩存之間,允許或阻斷第一通信緩存向第二通信緩存、或者第二通信緩存向第一通信緩存進(jìn)行數(shù)據(jù)發(fā)送;第二門電路裝置,其連接在第二通信緩存和第三通信緩存之間,允許或阻斷第二通信緩存向第三通信緩存、或者第三通信緩存向第二通信緩存進(jìn)行數(shù)據(jù)發(fā)送;門電路控制器,用于以響應(yīng)來(lái)自中央處理單元的指令信號(hào)的方式,輸出用于指示允許數(shù)據(jù)發(fā)送到第二門電路裝置的第一指令信號(hào),或者用于在收到來(lái)自串行通信設(shè)備或中央處理單元的、用于指示發(fā)送完成的數(shù)據(jù)時(shí),輸出用于指示允許數(shù)據(jù)發(fā)送到第一門電路裝置的第二指令信號(hào)。
6.如權(quán)利要求1所述的設(shè)備,其中通過系統(tǒng)時(shí)鐘發(fā)生器的時(shí)鐘信號(hào)沿分別啟動(dòng)的第二通信緩存和第三通信緩存是多個(gè)觸發(fā)器,用于接收數(shù)據(jù)并且臨時(shí)存儲(chǔ)起來(lái),或者輸出所存儲(chǔ)的數(shù)據(jù)。
7.如權(quán)利要求1所述的設(shè)備,其中第二通信緩存是一個(gè)雙端口的隨機(jī)存儲(chǔ)器,其中串行通信設(shè)備與中央處理單元在雙向都可以訪問該隨機(jī)存儲(chǔ)器,但是不能同時(shí)對(duì)其進(jìn)行訪問。
8.如權(quán)利要求1所述的設(shè)備,進(jìn)一步包括時(shí)延電路,其連接在系統(tǒng)時(shí)鐘發(fā)生器和第二通信緩存之間,或者連接在系統(tǒng)時(shí)鐘發(fā)生器和第三通信緩存之間,用于在當(dāng)?shù)谝煌ㄐ啪彺媾c第三通信緩存分別訪問第二通信緩存時(shí)產(chǎn)生時(shí)間差。
全文摘要
本發(fā)明涉及使用三步通信緩存來(lái)臨時(shí)存儲(chǔ)接收到的數(shù)據(jù)或在串行通信設(shè)備與中央處理單元(CPU)之間發(fā)送的數(shù)據(jù)的一種通信設(shè)備。為了防止由于串行通信設(shè)備和CPU在讀/寫數(shù)據(jù)時(shí)同步訪問通信緩存而導(dǎo)致的錯(cuò)誤,允許在系統(tǒng)時(shí)鐘信號(hào)的不同沿對(duì)通信緩存進(jìn)行訪問,這樣就使兩次訪問之間有時(shí)間差。
文檔編號(hào)H04L7/04GK1441566SQ03106369
公開日2003年9月10日 申請(qǐng)日期2003年2月26日 優(yōu)先權(quán)日2002年2月26日
發(fā)明者李英俊 申請(qǐng)人:Lg產(chǎn)電株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1