專利名稱:數(shù)據(jù)交互系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)交互系統(tǒng)及方法,特別是涉及一種能夠用臨時(shí)存儲區(qū)代替Rx buffer來實(shí)現(xiàn)數(shù)據(jù)的替代硬件流控的數(shù)據(jù)交互系統(tǒng)以及一種利用該數(shù)據(jù)交互系統(tǒng)實(shí)現(xiàn)的數(shù)據(jù)交互方法。
背景技術(shù):
現(xiàn)在的外部設(shè)備與計(jì)算機(jī)進(jìn)行數(shù)據(jù)交互有兩種方式,無流控和硬件流控。其中無流控方式數(shù)據(jù)的傳輸效率高,但是不能保證準(zhǔn)確無誤的傳輸,而硬件流控方式可以保證正確的傳輸,但是傳輸效率相對較低。因此在數(shù)據(jù)交互時(shí)無論采用哪種方式都不能同時(shí)保證準(zhǔn)確無誤并且具有高傳輸效率,而且在外部設(shè)備與計(jì)算機(jī)進(jìn)行較小數(shù)據(jù)量下的數(shù)據(jù)傳輸時(shí)均采用無流控方式就無法確保傳輸數(shù)據(jù)的正確性。發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有技術(shù)中外部設(shè)備與計(jì)算機(jī)進(jìn)行較小數(shù)據(jù)量下的數(shù)據(jù)交互時(shí)無法確保傳輸?shù)臄?shù)據(jù)的正確性的缺陷,提供一種能夠用臨時(shí)存儲區(qū)代替Rx (接收)buffer (緩沖寄存器)來實(shí)現(xiàn)數(shù)據(jù)的硬件流控的數(shù)據(jù)交互系統(tǒng)以及一種利用該數(shù)據(jù)交互系統(tǒng)實(shí)現(xiàn)的數(shù)據(jù)交互方法。
本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題的
本發(fā)明提供了一種數(shù)據(jù)交互方法,其特點(diǎn)在于,其用于控制一外部設(shè)備與一計(jì)算機(jī)進(jìn)行數(shù)據(jù)交互,該數(shù)據(jù)交互方法包括以下步驟
S1、在該計(jì)算機(jī)中關(guān)閉數(shù)據(jù)通道中斷并停止DMA (直接內(nèi)存存取)傳輸;
S2、在該計(jì)算機(jī)中申請一臨時(shí)存儲區(qū),并將指向Rx buffer的指針設(shè)置為指向該臨時(shí)存儲區(qū);
S3、開啟該數(shù)據(jù)通道中斷及DMA傳輸;
S4、控制該外部設(shè)備與該計(jì)算機(jī)通過DMA傳輸進(jìn)行數(shù)據(jù)交互。
其中,通過在步驟S1中關(guān)閉數(shù)據(jù)通道中斷,就能夠防止接收到MSG_ID_UART_ READY_TO_READ_IND消息(屬于驅(qū)動層的消息),進(jìn)而也就能防止在用該臨時(shí)存儲區(qū)替換Rx buffer時(shí)底層有消息上報(bào)。而步驟S2中申請的該臨時(shí)存儲區(qū),存儲容量可大可小,可以根據(jù)計(jì)算機(jī)系統(tǒng)性能來階梯式的申請,如可以先申請100KB (千字節(jié)),若不成功則申請90KB 等,以此類推。
并且,通過將原來指向Rx buffer的指針設(shè)置為指向該臨時(shí)存儲區(qū),就實(shí)現(xiàn)了用該臨時(shí)存儲區(qū)替代Rx buffer,進(jìn)而也就實(shí)現(xiàn)了在較小數(shù)據(jù)傳輸量下以替代硬件流控方式進(jìn)行該外部設(shè)備與該計(jì)算機(jī)之間的數(shù)據(jù)交互,而交互時(shí)可以采用DMA傳輸進(jìn)行數(shù)據(jù)收發(fā),這屬于本領(lǐng)域的公知技術(shù),在此就不再贅述,從而在保證正確傳輸?shù)耐瑫r(shí)也提升了傳輸效率。
較佳地,步驟S2中該臨時(shí)存儲區(qū)的存儲容量的取值范圍為50-100KB。
較佳地,步驟S4中在數(shù)據(jù)交互完成后,還將該指針設(shè)置為重新指向Rxbuffer。3
本發(fā)明還提供了一種數(shù)據(jù)交互系統(tǒng),其特點(diǎn)在于,其用于控制一外部設(shè)備與一計(jì)算機(jī)進(jìn)行數(shù)據(jù)交互,該數(shù)據(jù)交互系統(tǒng)包括一控制模塊、一指針設(shè)置模塊以及一數(shù)據(jù)交互模塊;
該控制模塊用于首先在該計(jì)算機(jī)中關(guān)閉數(shù)據(jù)通道中斷并停止DMA傳輸,并在該指針設(shè)置模塊在該計(jì)算機(jī)中申請一臨時(shí)存儲區(qū)、將指向Rx buffer的指針設(shè)置為指向該臨時(shí)存儲區(qū)后,再開啟該數(shù)據(jù)通道中斷及DMA傳輸,該數(shù)據(jù)交互模塊用于控制該外部設(shè)備與該計(jì)算機(jī)通過DMA傳輸進(jìn)行數(shù)據(jù)交互。
較佳地,該指針設(shè)置模塊申請的該臨時(shí)存儲區(qū)的存儲容量的取值范圍為 50-100KB。
較佳地,該指針設(shè)置模塊還用于在該外部設(shè)備與該計(jì)算機(jī)完成數(shù)據(jù)交互后將該指針設(shè)置為重新指向Rx buffer ο
本發(fā)明的積極進(jìn)步效果在于本發(fā)明能夠用臨時(shí)存儲區(qū)替代Rx buffer,進(jìn)而也就能夠?qū)崿F(xiàn)在較小數(shù)據(jù)傳輸量下以替代硬件流控方式進(jìn)行外部設(shè)備與計(jì)算機(jī)之間的數(shù)據(jù)交互,在保證正確傳輸?shù)耐瑫r(shí)也提升了傳輸效率。
圖I為本發(fā)明的一較佳實(shí)施例的數(shù)據(jù)交互系統(tǒng)的結(jié)構(gòu)圖。
圖2為本發(fā)明的一較佳實(shí)施例的數(shù)據(jù)交互方法的流程圖。
具體實(shí)施方式
下面結(jié)合附圖給出本發(fā)明較佳實(shí)施例,以詳細(xì)說明本發(fā)明的技術(shù)方案。
如圖I所示,本發(fā)明的數(shù)據(jù)交互系統(tǒng)包括一控制模塊I、一指針設(shè)置模塊2以及一數(shù)據(jù)交互模塊3。
本發(fā)明的數(shù)據(jù)交互系統(tǒng)能夠控制外部設(shè)備與計(jì)算機(jī)之間的數(shù)據(jù)交互,而首先該控制模塊I會在該計(jì)算機(jī)中關(guān)閉數(shù)據(jù)通道中斷并停止DMA傳輸,接著,該指針設(shè)置模塊2則在該計(jì)算機(jī)中申請一臨時(shí)存儲區(qū),并將指向Rx buffer的指針設(shè)置為指向該臨時(shí)存儲區(qū),之后該控制模塊I會再開啟該數(shù)據(jù)通道中斷并開啟DMA傳輸,最后該數(shù)據(jù)交互模塊3就控制該外部設(shè)備與該計(jì)算機(jī)通過DMA傳輸進(jìn)行數(shù)據(jù)交互。
通過關(guān)閉數(shù)據(jù)通道中斷,就能夠防止接收到MSG_ID_UART_READY_TO_READ_IND消息,進(jìn)而也就能防止在用該臨時(shí)存儲區(qū)替換Rx buffer時(shí)底層有消息上報(bào)。而該指針設(shè)置模塊2申請的該臨時(shí)存儲區(qū)的存儲容量可大可小,在本實(shí)施例中存儲容量的取值范圍可設(shè)置在50-100KB,具體可以根據(jù)計(jì)算機(jī)系統(tǒng)性能來階梯式的申請,如可以先申請100KB,若不成功則申請90KB等,以此類推。
并且,通過將原來指向Rx buffer的指針設(shè)置為指向該臨時(shí)存儲區(qū),就實(shí)現(xiàn)了用該臨時(shí)存儲區(qū)替代Rx buffer,進(jìn)而也就實(shí)現(xiàn)了在較小數(shù)據(jù)傳輸量下以替代硬件流控方式進(jìn)行該外部設(shè)備與該計(jì)算機(jī)之間的數(shù)據(jù)交互,而交互時(shí)可以采用DMA傳輸進(jìn)行數(shù)據(jù)收發(fā),這屬于本領(lǐng)域的公知技術(shù),在此就不再贅述,從而在保證正確傳輸?shù)耐瑫r(shí)也提升了傳輸效率。
其中,該指針設(shè)置模塊2還可以在該外部設(shè)備與該計(jì)算機(jī)完成數(shù)據(jù)交互后將該指針設(shè)置為重新指向Rx buffer ο
如圖2所示,本發(fā)明利用本實(shí)施例的數(shù)據(jù)交互系統(tǒng)實(shí)現(xiàn)的數(shù)據(jù)交互方法包括以下步驟
步驟100、在該計(jì)算機(jī)中關(guān)閉數(shù)據(jù)通道中斷并停止DMA傳輸。
步驟101、在該計(jì)算機(jī)中申請一臨時(shí)存儲區(qū),并將指向Rx buffer的指針設(shè)置為指向該臨時(shí)存儲區(qū)。
步驟102、開啟該數(shù)據(jù)通道中斷及DMA傳輸;
步驟103、控制該外部設(shè)備與該計(jì)算機(jī)通過DMA傳輸進(jìn)行數(shù)據(jù)交互,數(shù)據(jù)交互完成后將該指針設(shè)置為重新指向Rx buffer,然后結(jié)束流程。
雖然以上描述了本發(fā)明的具體實(shí)施方式
,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,這些僅是舉例說明,本發(fā)明的保護(hù)范圍是由所附權(quán)利要求書限定的。本領(lǐng)域的技術(shù)人員在不背離本發(fā)明的原理和實(shí)質(zhì)的前提下,可以對這些實(shí)施方式做出多種變更或修改,但這些變更和修改均落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種數(shù)據(jù)交互方法,其特征在于,其用于控制一外部設(shè)備與ー計(jì)算機(jī)進(jìn)行數(shù)據(jù)交互,該數(shù)據(jù)交互方法包括以下步驟 51、在該計(jì)算機(jī)中關(guān)閉數(shù)據(jù)通道中斷并停止DMA傳輸; 52、在該計(jì)算機(jī)中申請ー臨時(shí)存儲區(qū),并將指向Rxbuffer的指針設(shè)置為指向該臨時(shí)存儲區(qū); 53、開啟該數(shù)據(jù)通道中斷及DMA傳輸; 54、控制該外部設(shè)備與該計(jì)算機(jī)通過DMA傳輸進(jìn)行數(shù)據(jù)交互。
2.如權(quán)利要求I所述的數(shù)據(jù)交互方法,其特征在于,步驟S2中該臨時(shí)存儲區(qū)的存儲容量的取值范圍為50-100KB。
3.如權(quán)利要求2所述的數(shù)據(jù)交互方法,其特征在于,步驟S4中在數(shù)據(jù)交互完成后,還將該指針設(shè)置為重新指向Rx buffer ο
4.一種數(shù)據(jù)交互系統(tǒng),其特征在于,其用于控制一外部設(shè)備與ー計(jì)算機(jī)進(jìn)行數(shù)據(jù)交互,該數(shù)據(jù)交互系統(tǒng)包括ー控制模塊、一指針設(shè)置模塊以及ー數(shù)據(jù)交互模塊; 該控制模塊用于首先在該計(jì)算機(jī)中關(guān)閉數(shù)據(jù)通道中斷并停止DMA傳輸,并在該指針設(shè)置模塊在該計(jì)算機(jī)中申請ー臨時(shí)存儲區(qū)、將指向Rx buffer的指針設(shè)置為指向該臨時(shí)存儲區(qū)后,再開啟該數(shù)據(jù)通道中斷及DMA傳輸,該數(shù)據(jù)交互模塊用于控制該外部設(shè)備與該計(jì)算機(jī)通過DMA傳輸進(jìn)行數(shù)據(jù)交互。
5.如權(quán)利要求4所述的數(shù)據(jù)交互系統(tǒng),其特征在于,該指針設(shè)置模塊申請的該臨時(shí)存儲區(qū)的存儲容量的取值范圍為50-100KB。
6.如權(quán)利要求5所述的數(shù)據(jù)交互系統(tǒng),其特征在干,該指針設(shè)置模塊還用于在該外部設(shè)備與該計(jì)算機(jī)完成數(shù)據(jù)交互后將該指針設(shè)置為重新指向Rx buffer0
全文摘要
本發(fā)明公開了一種數(shù)據(jù)交互系統(tǒng)及方法,用于控制一外部設(shè)備與一計(jì)算機(jī)進(jìn)行數(shù)據(jù)交互,該數(shù)據(jù)交互方法包括以下步驟S1、在該計(jì)算機(jī)中關(guān)閉數(shù)據(jù)通道中斷并停止DMA傳輸;S2、在該計(jì)算機(jī)中申請一臨時(shí)存儲區(qū),并將指向Rx buffer的指針設(shè)置為指向該臨時(shí)存儲區(qū);S3、開啟該數(shù)據(jù)通道中斷及DMA傳輸;S4、控制該外部設(shè)備與該計(jì)算機(jī)通過DMA傳輸進(jìn)行數(shù)據(jù)交互。本發(fā)明能夠用臨時(shí)存儲區(qū)替代Rx buffer,進(jìn)而也就能夠?qū)崿F(xiàn)在較小數(shù)據(jù)傳輸量下以替代硬件流控方式進(jìn)行外部設(shè)備與計(jì)算機(jī)之間的數(shù)據(jù)交互,在保證正確傳輸?shù)耐瑫r(shí)也提升了傳輸效率。
文檔編號G06F13/32GK102981986SQ201210434510
公開日2013年3月20日 申請日期2012年11月2日 優(yōu)先權(quán)日2012年11月2日
發(fā)明者曹龍 申請人:上海移遠(yuǎn)通信技術(shù)有限公司