專利名稱:通信dma裝置的制作方法
技術(shù)領域:
本發(fā)明涉及通信DMA裝置,尤其是將用數(shù)字式靜象攝影機攝制的圖象數(shù)據(jù)輸出到個人計算機時使數(shù)據(jù)總線從CPU釋放并將存儲在DRAM內(nèi)的圖象數(shù)據(jù)通過通信線路輸出的通信DMA裝置。
背景技術(shù):
在數(shù)字式靜象攝影機等中,通常,將所攝制的圖象數(shù)據(jù)存儲在DRAM內(nèi),由CPU讀出所存儲的圖象數(shù)據(jù),并傳送到記錄媒體作為圖象保存,此外還可以傳送到顯示裝置將圖象映出。DRAM可將圖象數(shù)據(jù)區(qū)域以外的區(qū)域用作進行各種處理的工作區(qū)。例如,在將圖象數(shù)據(jù)通過串行通信接口傳送到個人計算機等時,在記錄媒體上通常存儲著按JPEG格式壓縮后的圖象數(shù)據(jù),并從中讀出其尺寸適于發(fā)送的圖象數(shù)據(jù),將其暫時寫入DRAM的工作區(qū),然后,CPU讀出圖象數(shù)據(jù)并作為發(fā)送數(shù)據(jù)寫入通信電路,從而以串行形式輸出發(fā)送數(shù)據(jù)。
當通過反復進行上述處理而完成對工作區(qū)的全部圖象數(shù)據(jù)的發(fā)送時,讀出下一個發(fā)送尺寸適當?shù)膱D象數(shù)據(jù),寫入DRAM,并通過反復進行與上述同樣的處理而繼續(xù)發(fā)送。
但是,為使通信高速化,必須使CPU為通信控制所專用,因而在這段時間里不能進行其他處理。此外,控制攝影機的CPU,通常很少用8位總線進行控制,一般是用16~32位總線控制。
另一方面,通信處理一般是以8位為單位進行,眾所周知的8251等,作為非同步/同步通信芯片也是用8位進行處理。因此,假如進行著控制的CPU是32位總線,則總線的數(shù)據(jù)被分成7~0、15~8、23~16、31~24位的4個字節(jié),其中,7~0位的數(shù)據(jù)可以直接寫入通信電路,但31~8位的數(shù)據(jù)則必須在對7~0位進行重新分配后寫入通信電路。因此,與將32位的數(shù)據(jù)一并傳送的情況相比,CPU的負荷增大,其結(jié)果是使CPU的處理速度變饅了。特別是,當從攝影機向打印機直接傳送圖象數(shù)據(jù)時,要求非常高的傳送速度,因而存在著超出CPU的處理能力的問題。
因此,本發(fā)明提供一種可以減輕CPU的負荷并能進行高速傳送的通信DMA裝置。
發(fā)明的公開本發(fā)明的通信DMA裝置,使CPU、通信電路及存儲器共用數(shù)據(jù)總線,并用于將存儲在存儲器內(nèi)的發(fā)送數(shù)據(jù)通過通信電路輸出到外部,該通信DMA裝置的特征在于通過由CPU進行的控制,將指示存儲器上的存儲著應發(fā)送的數(shù)據(jù)的區(qū)域的信息、指示應發(fā)送的數(shù)據(jù)容量的信息、及指示通信開始的信息存儲在寄存器內(nèi),為從存儲器讀出規(guī)定位寬的發(fā)送數(shù)據(jù),請求使數(shù)據(jù)總線從CPU釋放,并在讀出結(jié)束后立即由總線切換請求電路將數(shù)據(jù)總線與CPU連接,根據(jù)存儲在寄存器內(nèi)的信息將通過數(shù)據(jù)總線從存儲器讀出的數(shù)據(jù)暫時存儲在暫存電路內(nèi),對暫時存儲著的規(guī)定位寬的數(shù)據(jù)進行分割并以每次若干位的方式通過通信電路輸出到外部。
因此,按照本發(fā)明,在進行串行通信控制的基礎上,CPU可以通過執(zhí)行若干個命令執(zhí)行發(fā)送,并能避免使CPU為通信控制所專用,因而可以將花在通信控制上的時間用來進行其他的處理。而且,一旦對通信數(shù)據(jù)進行了DMA(直接存儲器存取),則即可通過監(jiān)視通信電路的標志進行發(fā)送處理而不管數(shù)據(jù)總線的狀態(tài),所以能夠?qū)崿F(xiàn)在發(fā)送數(shù)據(jù)與發(fā)送數(shù)據(jù)之間無間隙的發(fā)送。此外,由于可以縮短通信系統(tǒng)DMA專用數(shù)據(jù)總線的時間,所以對CPU的處理的影響非常小,因此不僅能高速通信,而且作為系統(tǒng)整體也可以進行高速處理。
在更理想的實施例中,由計數(shù)電路對從存儲器讀出數(shù)據(jù)的次數(shù)或向通信電路提供的數(shù)據(jù)的次數(shù)進行計數(shù),并將該計數(shù)值輸出到數(shù)據(jù)總線,使CPU通過該數(shù)據(jù)總線讀取計數(shù)值。
進一步,在另一理想的實施例中,當其他裝置請求釋放數(shù)據(jù)總線時,如該裝置的總線釋放請求在前,則使數(shù)據(jù)總線對該裝置釋放,并在該裝置的處理結(jié)束后由通信DMA裝置進行處理,當通信DMA裝置的總線釋放請求在前而在其處理過程中有其他裝置請求釋放總線時,由通信DMA裝置將處理中斷,并將數(shù)據(jù)總線讓給該其他裝置,在該裝置的處理結(jié)束后,使數(shù)據(jù)總線再次返回到通信DMA裝置,重新開始處理。
附圖的簡單說明
圖1是本發(fā)明一實施例的電路圖。
圖2A~圖2H是表示發(fā)送DMA處理的時序的時間圖。
圖3A~圖3I是表示發(fā)送DMA時的發(fā)送數(shù)據(jù)的寫入控制時序的時間圖。
圖4A~圖4D是表示發(fā)送DMA時的總線控制時序的時間圖。
用于實施發(fā)明的最佳形態(tài)為了更詳細地說明本發(fā)明,參照附圖對其進行說明。如圖1所示,CPU1的數(shù)據(jù)總線寬度由32位構(gòu)成,在該數(shù)據(jù)總線上,連接DRAM2,同時,通過輸入緩沖器3a連接著寄存器7、發(fā)送緩沖器16及選擇器18。用數(shù)字式靜象攝影機攝制的圖象數(shù)據(jù),作為傳送數(shù)據(jù)存儲在DRAM2內(nèi)。為了對該DRAM2進行寫入控制,設有CPU寫入控制電路4、DMA寫入控制電路5及DRAM地址電路6。
在將數(shù)據(jù)總線與CPU1切離時,DMA控制電路10進行DMA控制,用于使存儲在DRAM2內(nèi)的數(shù)據(jù)不通過CPU1讀出。由CPU1將DRAM2的存儲起始地址、地址寬度及傳送開始標志通過地址譯碼器8存儲在寄存器7內(nèi),DMA控制電路10,根據(jù)這些控制數(shù)據(jù)從DRAM2讀出數(shù)據(jù)。將所讀出的數(shù)據(jù)供給發(fā)送緩沖器16。發(fā)送緩沖器16,具有用于分別存儲4字節(jié)數(shù)據(jù)的1個字節(jié)的區(qū)域16a~16d,并由選擇器17選擇每個字節(jié)的數(shù)據(jù),進一步,通過選擇器18寫入通信電路14并輸出到外部。
字計數(shù)器21,用于對寫入通信電路14的數(shù)據(jù)的字數(shù)進行計數(shù),而字節(jié)計數(shù)器22,對其字節(jié)數(shù)進行計數(shù)。CPU1,當與數(shù)據(jù)總線連接時,可以在讀出控制電路19及地址譯碼器20的控制下通過輸出緩沖器3b和選擇器23讀得字計數(shù)器21及字節(jié)計數(shù)器22的計數(shù)值。
以下,說明圖1所示實施例的具體動作。假定通信電路14與8251具有互換性。8251通信電路,在初始狀態(tài)下為模式設定等待狀態(tài)。因此,CPU1必須對通信電路14寫入模式數(shù)據(jù)。當CPU1對與通信電路14的模式/命令對應的地址執(zhí)行寫入處理時,預先對CPU寫入控制電路11和地址譯碼器12分配通信電路系統(tǒng)的地址,并通過寫入控制電路13及選擇器18將模式數(shù)據(jù)寫入通信電路14。
模式數(shù)據(jù),例如在非同步通信中,將起始位、結(jié)束位都設定為1位、字符長度為8位、波特率為×16模式,當模式的設定結(jié)束時,通信電路14變?yōu)槊钤O定等待狀態(tài),所以,CPU1再次對同一地址進行寫入,從而設定命令。這里,將允許發(fā)送設定為激活狀態(tài)。
在將允許發(fā)送設定為激活狀態(tài)時,通過將發(fā)送數(shù)據(jù)寫入通信電路14,以串行形式輸出該寫入數(shù)據(jù)。而當使允許發(fā)送變?yōu)榧せ顮顟B(tài)時,發(fā)送就緒信號(TXRDY)被激活。另外,這里,假定傳送數(shù)據(jù)已預先由CPU1通過CPU寫入控制電路4、DRAM寫入控制電路5、DRAM地址電路6寫入DRAM2。
接著,在該狀態(tài)下進行DMA控制電路10的設定。該設定,由寄存器7、地址譯碼器8及鎖存生成電路9進行設定控制。對控制DMA控制電路10的幾種寄存器的每一個分配地址,并將來自CPU1的控制數(shù)據(jù)存儲在規(guī)定的寄存器內(nèi)。如上所述,該控制數(shù)據(jù),是指示DRAM2的存儲傳送數(shù)據(jù)的的某個區(qū)域的存儲起始地址、地址寬度及傳送開始標志。首先,設定DRAM2的區(qū)域,然后,當傳送開始標志被激活時,從DRAM2讀出1個字的數(shù)據(jù)作為第1傳送數(shù)據(jù)。該字與CPU1的數(shù)據(jù)寬度相等,這里為32位。
DMA控制電路10讀出的數(shù)據(jù),通過鎖存控制電路15的鎖存控制,暫時存儲在發(fā)送緩沖器16內(nèi)。這里,32位的傳送數(shù)據(jù),按每1個字節(jié)分別存儲在區(qū)域16a~16d內(nèi)。然后,每當字節(jié)計數(shù)器22計得1個字節(jié)時,切換選擇器17,且通過使選擇器18選擇在發(fā)送緩沖器側(cè),選擇8~0位的緩沖器并由寫入控制電路3將其中的數(shù)據(jù)作為發(fā)送數(shù)據(jù)寫入通信電路14。
圖2A~圖2H是表示發(fā)送DMA處理時序的時間圖。這里,參照圖2A~圖2H進行更為具體的說明。圖2A中的[a]時刻,表示在時鐘信號的上升沿將通信電路14的允許發(fā)送設定為激活狀態(tài),并使圖2B所示的發(fā)送就緒信號(TXRDY)變?yōu)榧せ顮顟B(tài)。在TXRDY變?yōu)榧せ顮顟B(tài)后,在由[b]指示的時刻,將傳送開始標志設定為激活狀態(tài)。這里,假定與DRAM2的區(qū)域有關(guān)的設定已進行過設定。當DMA控制電路10檢測到傳送開始標志時,使中斷標志IRL變?yōu)榻範顟B(tài),DMA控制電路10,如圖2C所示,在[c]時刻請求CPU1釋放數(shù)據(jù)總線。
另外,在同一時刻,使DRAM2的地址與起始地址連接,并將圖2G和圖2H中示出的字計數(shù)器21和字節(jié)計數(shù)器22的各自的計數(shù)值分別設定為0。在CPU1收到總線釋放請求并如圖2D所示結(jié)束其自身對數(shù)據(jù)總線的訪問后,在[d]時刻通知已將總線釋放,當DMA控制電路10檢測到總線已被釋放時,從DRAM2讀出設定在DRAM2內(nèi)的起始地址為1個字的數(shù)據(jù),同時將其存儲在發(fā)送緩沖器16內(nèi)。當在[e]時刻從DRAM2讀出數(shù)據(jù)時,將總線釋放請求解除,CPU1則在[f]時刻將總線的釋放解除。
另一方面,在將發(fā)送緩沖器16內(nèi)的數(shù)據(jù)寫入通信電路14時,TXRDY在[g]時刻變成禁止狀態(tài),在發(fā)送了1個字中的1個字節(jié)的數(shù)據(jù)后,使字計數(shù)器21、字節(jié)計數(shù)器22的計數(shù)值遞增,同時由DRAM地址電路6將DRAM2的地址遞增。與此同時,通信電路14輸出串行發(fā)送數(shù)據(jù),并在提供下一個TXRDY之前保持等待狀態(tài)。。
當從通信電路14進行發(fā)送數(shù)據(jù)的發(fā)送時,在[h]時刻使發(fā)送就緒信號再次變?yōu)榧せ顮顟B(tài)。由字節(jié)計數(shù)器22對1個字中的尚未發(fā)送的數(shù)據(jù)進行計數(shù),由選擇器17選擇后寫入通信電路14,并在[i]時刻僅使字節(jié)計數(shù)器22遞增。然后,使發(fā)送就緒信號變?yōu)榻範顟B(tài)。
當反復進行上述動作并結(jié)束對1個字中的全部數(shù)據(jù)的發(fā)送時,為從DRAM2讀出下一個字數(shù)據(jù),等待發(fā)送就緒信號的激活,并進行從[c]到[g]的處理。以下,通過同樣的處理依次進行傳送。
圖3A~圖3I是表示發(fā)送DMA時的發(fā)送數(shù)據(jù)的寫入控制時序的圖。在該圖3A~圖3I中,示出對字數(shù)據(jù)進行了2次傳送時的時序,上述圖2A~圖2H可以說是將圖3A~圖3I的時序放大后示出的情況。
緊接在傳送開始之后的第1傳送字,如圖3E所示,相當于T0。將該第1傳送字T0從DRAM2讀出后存儲在發(fā)送緩沖器16內(nèi),并選擇低位的8位。該低位的8位相當于T00。在將T00存儲在通信電路14內(nèi)時,如圖3G所示,從通信電路14的TXD以串行形式輸出T00。按照8251的初始設定,首先,輸出1位的初始位,然后輸出與T00相當?shù)臄?shù)據(jù),最后輸出結(jié)束位,從而完成1個字節(jié)的發(fā)送。
接著,依次反復進行第2字節(jié)(T01)~第4字節(jié)(T03)對通信電路14的寫入發(fā)送,并從DRAM2讀出第2字節(jié)(T01),對第5字節(jié)(T10)~第8字節(jié)(T13)進行同樣的處理。如圖3H和圖3I所示,字計數(shù)器21計數(shù)到2,字節(jié)計數(shù)器22計數(shù)到4,并將與之相當?shù)臄?shù)據(jù)寫入通信電路14,在圖3A所示的TXRDY變?yōu)榧せ顮顟B(tài)的時刻,DMA控制電路10,識別出DMA的結(jié)束,并通過將作為DMA的結(jié)束中斷信號的IRL激活而通知CPU1,結(jié)束一連串的處理。
當數(shù)據(jù)總線連接著CPU1時,字計數(shù)器21和字節(jié)計數(shù)器22,在讀出控制電路19及地址譯碼器20的控制下通過選擇器23將各自的計數(shù)值供給CPU1,使CPU1可以讀出各計數(shù)值。讀出控制電路19,根據(jù)CPU1的讀出控制信號及地址選擇要讀出的數(shù)據(jù)。此外,地址譯碼器25分配與要讀出的數(shù)據(jù)對應的地址,并將其譯碼值傳送到讀出控制電路19。選擇器23,根據(jù)來自讀出控制電路19的選擇信號選擇要讀出的數(shù)據(jù)。CPU1,可以通過讀出該值掌握發(fā)送的進行情況。此外,即使當從通信目的端接收到停止發(fā)送的請求并使DMA中斷時,也仍能算出剩余的數(shù)據(jù)數(shù)。
另外,在數(shù)字式靜象攝影機作為系統(tǒng)的動作中,不僅通信系統(tǒng)的DMA使用數(shù)據(jù)總線,有時為了顯示圖象而使數(shù)據(jù)總線從CPU1釋放,以便能對DRMA2進行讀出/寫入。在決定了圖象顯示的時刻如未進行存取,則可能對顯示造成影響,所以應使圖象顯示系統(tǒng)的DRMA2的讀出/寫入優(yōu)先。
圖4A~圖4D是表示發(fā)送DMA時的總線控制時序的圖。在圖4A~圖4D中,在[a]時刻,圖象顯示系統(tǒng)的組件請求釋放總線。在收到請求后,CPU1在結(jié)束其自身的訪問的時刻將總線釋放。假如在[b]時刻通信系統(tǒng)如圖4B所示請求釋放總線,則通信系統(tǒng)監(jiān)視圖象顯示系統(tǒng)的釋放總線請求,由于此時圖象顯示系統(tǒng)正處在請求釋放總線的過程中,所以,通信系統(tǒng)保持等待處理狀態(tài)。假定在[c]時刻圖象顯示系統(tǒng)解除了總線的釋放。通信系統(tǒng)識別到該情況后開始自身的處理。在[d]時刻,通信系統(tǒng)的處理結(jié)束,并當將總線的釋放解除時,CPU1本身與總線連接。
在到此為止的總線控制中,<a>期間是圖象顯示系統(tǒng)的處理期間,<b>期間是通信系統(tǒng)的處理期間,<c>期間表示CPU1能夠訪問的期間。接著,假定在[e]時刻通信系統(tǒng)再次請求釋放總線。CPU1在收到請求后將總線釋放,通信系統(tǒng)開始進行處理。這里,在[f]時刻,圖象顯示系統(tǒng)請求釋放總線。通信系統(tǒng)識別到其請求后將處理中斷并使圖象顯示系統(tǒng)具有總線。在[g]時刻,圖象處理結(jié)束,并將總線釋放請求解除。通信系統(tǒng)識別到該情況后,重新開始處理。在[h]時刻結(jié)束處理,并將總線釋放請求解除。CPU1本身與總線連接??偩€的釋放請求,以圖象顯示系統(tǒng)和通信系統(tǒng)的AND信號的形式返回CPU1,并且,在總線釋放期間,CPU1不識別執(zhí)行著哪一種處理。
產(chǎn)業(yè)上的可應用性如上所述,本發(fā)明的通信DMA裝置,在將用數(shù)字式靜象攝影機攝制的圖象數(shù)據(jù)輸出到個人計算機時,適用于使數(shù)據(jù)總線從CPU釋放并將存儲在DRAM中的圖象數(shù)據(jù)通過通信電路輸出。
權(quán)利要求
1.一種通信DMA裝置,使CPU、通信電路及存儲器共用數(shù)據(jù)總線,并用于將存儲于上述存儲器的發(fā)送數(shù)據(jù)通過上述通信電路輸出到外部,該通信DMA裝置包括寄存裝置,通過由上述CPU進行的控制,存儲指示上述存儲器上的存儲著應發(fā)送的數(shù)據(jù)的區(qū)域的信息、指示應發(fā)送的數(shù)據(jù)容量的信息、及指示通信開始的信息;總線切換請求裝置,為從上述存儲器讀出規(guī)定位寬的發(fā)送數(shù)據(jù),請求上述CPU釋放上述數(shù)據(jù)總線,并在讀出結(jié)束后立即將數(shù)據(jù)總線與CPU連接;暫存裝置,根據(jù)存儲在上述寄存裝置內(nèi)的信息,暫時存儲通過上述數(shù)據(jù)總線從上述存儲器讀出的數(shù)據(jù);及數(shù)據(jù)輸出裝置,對暫時存儲在上述暫存裝置內(nèi)的規(guī)定位寬的數(shù)據(jù)進行分割并以每次若干位的方式通過通信電路輸出到外部。
2.根據(jù)權(quán)利要求1所述的通信DMA裝置,其特征在于當暫時存儲在上述暫存裝置內(nèi)的所有數(shù)據(jù)的發(fā)送結(jié)束時,進一步從上述存儲器讀出下一個發(fā)送數(shù)據(jù)并反復進行發(fā)送處理。
3.根據(jù)權(quán)利要求1所述的通信DMA裝置,其特征在于還包含對從上述存儲器讀出數(shù)據(jù)的次數(shù)或向上述通信電路提供的數(shù)據(jù)的次數(shù)進行計數(shù)并將該計數(shù)值輸出到上述數(shù)據(jù)總線的計數(shù)裝置,上述CPU,通過上述數(shù)據(jù)總線讀取上述計數(shù)裝置的計數(shù)值。
4.根據(jù)權(quán)利要求1所述的通信DMA裝置,其特征在于進一步,當其他裝置請求釋放上述數(shù)據(jù)總線時,如該裝置的總線釋放請求在前,則使數(shù)據(jù)總線對該裝置釋放,并在該裝置的處理結(jié)束后由上述通信DMA裝置進行處理,當該通信DMA裝置的總線釋放請求在前而在其處理過程中有其他裝置請求釋放總線時,該通信DMA裝置立即將該處理中斷,并將上述數(shù)據(jù)總線讓給該其他裝置,在該裝置的處理結(jié)束后,使上述數(shù)據(jù)總線再次返回到上述通信DMA裝置,重新開始處理。
全文摘要
當使數(shù)據(jù)總線與CPU(1)切離并將發(fā)送就緒信號(TXRDY)激活時,DMA控制電路(10),根據(jù)由CPU(1)設定的DRAM(2)的指定存儲區(qū)域的起始地址及地址寬度,將32位的數(shù)據(jù)一并讀出,并存儲在發(fā)送緩沖器(16)內(nèi)。選擇器(17),每次從發(fā)送緩沖器(16)選擇8位數(shù)據(jù),在寫入通信電路(14)后輸出,并將總線釋放請求解除,每次從發(fā)送緩沖器(16)讀出8位的數(shù)據(jù),寫入通信電路(14)。當再次供給發(fā)送就緒信號時,重復進行上述處理。
文檔編號G06F13/28GK1258362SQ98805654
公開日2000年6月28日 申請日期1998年5月14日 優(yōu)先權(quán)日1997年5月30日
發(fā)明者石橋秀樹 申請人:三洋電機株式會社