主從設(shè)備的數(shù)據(jù)傳輸方法
【專利摘要】本發(fā)明提供一種主從設(shè)備的數(shù)據(jù)傳輸方法,該方法包括主設(shè)備響應(yīng)從設(shè)備發(fā)出的數(shù)據(jù)傳輸中斷請(qǐng)求后,接收從設(shè)備傳輸?shù)陌墟溄佑行缘臄?shù)據(jù),判斷鏈接有效性是否為有效,如是,繼續(xù)接收從設(shè)備傳輸?shù)臄?shù)據(jù),否則,終止接收數(shù)據(jù)。本發(fā)明能提高主設(shè)備與從設(shè)備之間的數(shù)據(jù)傳輸效率。
【專利說(shuō)明】主從設(shè)備的數(shù)據(jù)傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)傳輸領(lǐng)域,具體地,是一種主設(shè)備與從設(shè)備之間數(shù)據(jù)傳輸?shù)姆椒??!颈尘凹夹g(shù)】
[0002]現(xiàn)代的通信系統(tǒng)中,尤其在無(wú)線網(wǎng)絡(luò)設(shè)備中,通常采取主從設(shè)備的架構(gòu),即通信系統(tǒng)包括一個(gè)主設(shè)備以及一個(gè)或多個(gè)從設(shè)備,主設(shè)備與從設(shè)備之間進(jìn)行數(shù)據(jù)交換。
[0003]通常,主設(shè)備上運(yùn)行一個(gè)大型操作系統(tǒng),從設(shè)備上運(yùn)行一個(gè)微型嵌入式系統(tǒng)。參見(jiàn)圖1,主設(shè)備(Host) 10具有主機(jī)(master) 11、中央處理器12以及隨機(jī)存儲(chǔ)器(RAM) 13,主機(jī)11可以接收中央處理器12輸出的命令,并且可以通過(guò)DMA (直接存儲(chǔ)器訪問(wèn))的方式訪問(wèn)隨機(jī)存儲(chǔ)器13。從設(shè)備(Device) 16具有從機(jī)(slaver)17、中央處理器18以及隨機(jī)存儲(chǔ)器(RAM) 19,從機(jī)17可以接收中央處理器18輸出的命令,并且可以通過(guò)DMA (直接存儲(chǔ)器訪問(wèn))的方式訪問(wèn)隨機(jī)存儲(chǔ)器19。
[0004]由于主設(shè)備10與從設(shè)備16之間的數(shù)據(jù)接收發(fā)送等對(duì)實(shí)時(shí)性要求很高,且所需要的硬件加速工作在從機(jī)17的芯片中進(jìn)行,數(shù)據(jù)的上層協(xié)議處理則轉(zhuǎn)交給主設(shè)備10處理,這樣分工能充分發(fā)揮硬件加速模塊的作用以盡量降低主設(shè)備10的負(fù)載。在主設(shè)備10和從設(shè)備16之間需要一個(gè)傳輸接口來(lái)承擔(dān)數(shù)據(jù)發(fā)送接收的作用,該接口可以是SP1、SD10、USB等接口。
[0005]當(dāng)主設(shè)備10需要向從設(shè)備16傳輸數(shù)據(jù)或者從設(shè)備16向主設(shè)備10傳輸數(shù)據(jù)時(shí),通常會(huì)產(chǎn)生一個(gè)數(shù)據(jù)傳輸?shù)闹袛嗾?qǐng)求信號(hào),因此每一個(gè)單元的數(shù)據(jù)傳輸都會(huì)在主設(shè)備10和從設(shè)備16上各產(chǎn)生一次中斷請(qǐng)求信號(hào)。現(xiàn)有的數(shù)據(jù)傳輸過(guò)程控制邏輯簡(jiǎn)潔,容錯(cuò)性要求低,并且在從設(shè)備16上能及時(shí)釋放緩沖區(qū)以充分利用有限的存儲(chǔ)空間。對(duì)于主設(shè)備10與從設(shè)備16之間數(shù)據(jù)的傳輸速率要求不高的情況下,上述的方案是一種穩(wěn)定高效的處理方式。
[0006]如圖1所示,當(dāng)從設(shè)備16有數(shù)據(jù)需要傳輸?shù)街髟O(shè)備10的時(shí)候,從設(shè)備16的中央處理器18通過(guò)操作從機(jī)17的寄存器,把從設(shè)備16中的待傳輸數(shù)據(jù)的地址以及長(zhǎng)度等信息發(fā)送給從機(jī)17。然后,從機(jī)17向主機(jī)11發(fā)起數(shù)據(jù)傳輸?shù)恼?qǐng)求中斷信號(hào)。主機(jī)11收到從機(jī)17的中斷請(qǐng)求信號(hào)后,向主設(shè)備10的中央處理器12發(fā)起中斷請(qǐng)求,主設(shè)備10的中央處理器12響應(yīng)中斷請(qǐng)求,并從從機(jī)17的寄存器中獲取待傳輸數(shù)據(jù)的長(zhǎng)度信息,然后通過(guò)主機(jī)11向從機(jī)17發(fā)起數(shù)據(jù)讀取操作。最后,從機(jī)17通過(guò)DMA的方式讀取從設(shè)備16隨機(jī)存儲(chǔ)器19上的數(shù)據(jù)并傳輸?shù)街鳈C(jī)11,主機(jī)11把收到的數(shù)據(jù)寫到主設(shè)備10的隨機(jī)存儲(chǔ)器13上。這樣,就完成了一次從設(shè)備16到主設(shè)備10的數(shù)據(jù)傳輸。
[0007]當(dāng)主設(shè)備10有數(shù)據(jù)需要傳輸?shù)綇脑O(shè)備16時(shí),從設(shè)備16的中央處理器18需要向從機(jī)17的寄存器寫入數(shù)據(jù)的目標(biāo)地址,并把從設(shè)備16的狀態(tài)置為準(zhǔn)備狀態(tài)。然后,主設(shè)備10的中央處理器12通過(guò)寄存器的操作,把數(shù)據(jù)源地址、數(shù)據(jù)長(zhǎng)度以及其他一些必要的傳輸參數(shù)配置到主機(jī)11,主機(jī)11把數(shù)據(jù)傳輸?shù)綇臋C(jī)17,從機(jī)17通過(guò)DMA方式將數(shù)據(jù)寫入到從設(shè)備16的隨機(jī)存儲(chǔ)器19的目標(biāo)地址。數(shù)據(jù)傳輸完成后,從機(jī)17向從設(shè)備16的中央處理器18發(fā)起傳輸完畢中斷請(qǐng)求,通知其進(jìn)行數(shù)據(jù)的后續(xù)處理。在中斷處理過(guò)程中,從設(shè)備16把新的目標(biāo)地址發(fā)送給從機(jī)17,并把從設(shè)備16的工作狀態(tài)重新置為準(zhǔn)備狀態(tài),準(zhǔn)備下一次數(shù)據(jù)的接收。
[0008]由于現(xiàn)有的數(shù)據(jù)傳輸模式下,無(wú)論是從設(shè)備16向主設(shè)備10傳輸數(shù)據(jù),還是從主設(shè)備10向從設(shè)備16傳輸數(shù)據(jù),均會(huì)引起一次中斷請(qǐng)求。由于主設(shè)備10上往往運(yùn)行的是多任務(wù)系統(tǒng),中斷請(qǐng)求會(huì)導(dǎo)致主設(shè)備10中上下文的切換。并且,很多時(shí)候從設(shè)備16向主設(shè)備10發(fā)送的數(shù)據(jù)都是突發(fā)和分片的,當(dāng)從設(shè)備16進(jìn)行大量數(shù)據(jù)的傳輸時(shí),大量的中斷會(huì)導(dǎo)致主設(shè)備10的中央處理器12的執(zhí)行效率減低,而且數(shù)據(jù)的傳輸效率也會(huì)較低。
[0009]對(duì)于從設(shè)備16而言,為了保證數(shù)據(jù)處理的有序可靠,只有在從設(shè)備16完成了中斷請(qǐng)求的處理后,主設(shè)備10才能進(jìn)行下一次的傳輸。這樣,從設(shè)備16處理中斷的時(shí)間也算進(jìn)了數(shù)據(jù)的傳輸時(shí)間當(dāng)中,這樣數(shù)據(jù)的傳輸效率就大大的下降了。
[0010]隨著通信行業(yè)技術(shù)的發(fā)展,無(wú)線網(wǎng)絡(luò)對(duì)數(shù)據(jù)傳輸速度的要求越來(lái)越高,對(duì)主設(shè)備10與從設(shè)備16之間的數(shù)據(jù)傳輸速率要求也越來(lái)越高,傳統(tǒng)的實(shí)現(xiàn)方式使得主設(shè)備10與從設(shè)備16之間的傳輸接口成為整個(gè)數(shù)據(jù)通路上的瓶頸。
【發(fā)明內(nèi)容】
[0011]本發(fā)明的主要目的是提供一種數(shù)據(jù)傳輸效率高的主從設(shè)備的數(shù)據(jù)傳輸方法。
[0012]為了實(shí)現(xiàn)上述的主要目的,本發(fā)明提供的主從設(shè)備數(shù)據(jù)傳輸方法包括主設(shè)備響應(yīng)從設(shè)備發(fā)出的數(shù)據(jù)傳輸中斷請(qǐng)求后,接收從設(shè)備傳輸?shù)陌墟溄佑行缘臄?shù)據(jù),判斷鏈接有效性是否為有效,如是,繼續(xù)接收從設(shè)備傳輸?shù)臄?shù)據(jù),否則,終止接收數(shù)據(jù)。
[0013]由上述方案可見(jiàn),主設(shè)備接收到數(shù)據(jù)后,分析所接收的數(shù)據(jù)中的鏈接有效性來(lái)判斷是否還需要繼續(xù)接收數(shù)據(jù),如還需要繼續(xù)接收數(shù)據(jù),則不再等待中斷請(qǐng)求信號(hào),直接接收下一數(shù)據(jù)。這樣,從設(shè)備不需要每一次傳輸數(shù)據(jù)前向主設(shè)備發(fā)出一次中斷請(qǐng)求,只要在最開(kāi)始向主設(shè)備發(fā)出一次中斷請(qǐng)求后連續(xù)地向主設(shè)備傳輸數(shù)據(jù),主設(shè)備也能連續(xù)地接收數(shù)據(jù),提高數(shù)據(jù)的傳輸效率。
[0014]一個(gè)優(yōu)選的方案是,鏈接有效性的數(shù)據(jù)為從設(shè)備向主設(shè)備傳輸?shù)臄?shù)據(jù)中的鏈接有效性標(biāo)志信息,用于標(biāo)識(shí)從設(shè)備發(fā)送的下一數(shù)據(jù)的有效性。
[0015]由此可見(jiàn),鏈接有效性用于表示從設(shè)備向主設(shè)備發(fā)送的下一數(shù)據(jù)的有效性,主設(shè)備根據(jù)鏈接有效性可以確定是否需要接收下一數(shù)據(jù),有利于實(shí)現(xiàn)一次中斷請(qǐng)求接收多個(gè)數(shù)據(jù)的目的。
[0016]進(jìn)一步的方案是,從設(shè)備在發(fā)送的數(shù)據(jù)包為連續(xù)發(fā)送的最后一個(gè)數(shù)據(jù)包時(shí),將當(dāng)前數(shù)據(jù)包的鏈接有效性置為無(wú)效。
[0017]可見(jiàn),從設(shè)備通過(guò)鏈接有效性來(lái)標(biāo)識(shí)所傳輸?shù)臄?shù)據(jù)是否為最后一個(gè)數(shù)據(jù)包,主設(shè)備可以方便地了解所接收到數(shù)據(jù)包是否為最后一個(gè)數(shù)據(jù)包,從而確定是否需要繼續(xù)接收數(shù)據(jù),避免從設(shè)備多次發(fā)送中斷請(qǐng)求信號(hào),主設(shè)備也無(wú)需多次響應(yīng)中斷請(qǐng)求信號(hào)。
[0018]更進(jìn)一步的方案是,主設(shè)備向從設(shè)備傳輸?shù)臄?shù)據(jù)前,判斷從設(shè)備的存儲(chǔ)器是否處于全滿狀態(tài),如是,終止向從設(shè)備傳輸數(shù)據(jù),否則,向從設(shè)備傳輸數(shù)據(jù)。
[0019]由此可見(jiàn),由于主設(shè)備向從設(shè)備傳輸數(shù)據(jù)前,均判斷從設(shè)備的存儲(chǔ)器能否存儲(chǔ)新的數(shù)據(jù),因此主設(shè)備能夠確保所傳輸?shù)臄?shù)據(jù)能夠?qū)懭氲綇脑O(shè)備中。因此主設(shè)備向從設(shè)備發(fā)送數(shù)據(jù)后,從設(shè)備無(wú)需向其自身的中央處理器發(fā)出中斷請(qǐng)求信號(hào),提高數(shù)據(jù)的傳輸效率。[0020]更進(jìn)一步的方案是,從設(shè)備接收到主設(shè)備傳輸?shù)臄?shù)據(jù)后,將所接收到數(shù)據(jù)直接傳遞至后級(jí)處理,并根據(jù)所接收的數(shù)據(jù)的長(zhǎng)度計(jì)算新的從設(shè)備數(shù)據(jù)讀取目標(biāo)地址。
[0021]可見(jiàn),從設(shè)備接收到數(shù)據(jù)后,并不需要向中央處理器發(fā)送中斷請(qǐng)求信號(hào)就直接將數(shù)據(jù)傳輸至中央處理器,減小從設(shè)備產(chǎn)生中斷請(qǐng)求信號(hào)的次數(shù),提高數(shù)據(jù)傳輸效率。
【專利附圖】
【附圖說(shuō)明】
[0022]圖1是現(xiàn)有主從設(shè)備數(shù)據(jù)傳輸?shù)慕Y(jié)構(gòu)框圖。
[0023]圖2是應(yīng)用本發(fā)明主從設(shè)備數(shù)據(jù)傳輸方法實(shí)施例的主從設(shè)備的結(jié)構(gòu)框圖。
[0024]圖3是應(yīng)用本發(fā)明主從設(shè)備數(shù)據(jù)傳輸方法實(shí)施例的從設(shè)備隨機(jī)存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)圖。
[0025]圖4是應(yīng)用本發(fā)明主從設(shè)備數(shù)據(jù)傳輸方法實(shí)施例的一個(gè)數(shù)據(jù)塊的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)圖。
[0026]圖5是本發(fā)明主從設(shè)備數(shù)據(jù)傳輸方法實(shí)施例中主設(shè)備向從設(shè)備傳輸數(shù)據(jù)時(shí)從設(shè)備存儲(chǔ)器的存儲(chǔ)狀態(tài)結(jié)構(gòu)圖。
[0027]圖6是本發(fā)明主從設(shè)備數(shù)據(jù)傳輸方法實(shí)施例中從設(shè)備向主設(shè)備傳輸數(shù)據(jù)時(shí)從設(shè)備存儲(chǔ)器的存儲(chǔ)狀態(tài)結(jié)構(gòu)圖。
[0028]圖7是本發(fā)明主從設(shè)備數(shù)據(jù)傳輸方法實(shí)施例中主設(shè)備向從設(shè)備傳輸數(shù)據(jù)時(shí)主設(shè)備的工作流程圖。
[0029]圖8是本發(fā)明主從設(shè)備數(shù)據(jù)傳輸方法實(shí)施例中主設(shè)備向從設(shè)備傳輸數(shù)據(jù)時(shí)從設(shè)備的工作流程圖。
[0030]圖9是本發(fā)明主從設(shè)備數(shù)據(jù)傳輸方法實(shí)施例中從設(shè)備向主設(shè)備傳輸數(shù)據(jù)時(shí)從設(shè)備的工作流程圖。
[0031]圖10是本發(fā)明主從設(shè)備數(shù)據(jù)傳輸方法實(shí)施例中從設(shè)備向主設(shè)備傳輸數(shù)據(jù)時(shí)主設(shè)備的工作流程圖。
[0032]以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
【具體實(shí)施方式】
[0033]本發(fā)明應(yīng)用在主從設(shè)備中并用于實(shí)現(xiàn)主從設(shè)備之間的數(shù)據(jù)傳輸,包括主設(shè)備將數(shù)據(jù)傳輸至從設(shè)備,也包括從設(shè)備將數(shù)據(jù)傳輸至主設(shè)備。應(yīng)用本發(fā)明方案的主設(shè)備與從設(shè)備不限于無(wú)線網(wǎng)絡(luò)設(shè)備,其他主從設(shè)備見(jiàn)的數(shù)據(jù)傳輸也可以應(yīng)用本發(fā)明的方案。
[0034]參見(jiàn)圖2,本發(fā)明應(yīng)用在具有主設(shè)備20與從設(shè)備26的系統(tǒng)中,主設(shè)備20具有主機(jī)21、中央處理器22以及隨機(jī)存儲(chǔ)器23,從設(shè)備26具有從機(jī)27、中央處理器28以及隨機(jī)存儲(chǔ)器29,主設(shè)備20與從設(shè)備26通信時(shí),主機(jī)21與從機(jī)27通過(guò)傳輸接口實(shí)現(xiàn)數(shù)據(jù)的傳輸。
[0035]主機(jī)21可以向中央處理器22發(fā)出中斷請(qǐng)求信號(hào),并且接收中央處理器22讀寫主機(jī)21的寄存器的命令,主機(jī)21還可以通過(guò)直接存儲(chǔ)器訪問(wèn)的方式對(duì)隨機(jī)存儲(chǔ)器23進(jìn)行讀寫操作。從機(jī)27可以接收中央處理器28讀寫從機(jī)27的寄存器的命令,并且可以通過(guò)直接存儲(chǔ)器訪問(wèn)的方式對(duì)隨機(jī)存儲(chǔ)器29進(jìn)行讀寫操作。
[0036]應(yīng)用本發(fā)明時(shí),從設(shè)備26向主設(shè)備20傳輸數(shù)據(jù)時(shí)不再米樣傳輸一次數(shù)據(jù)產(chǎn)生一次中斷請(qǐng)求的模式,而是采用產(chǎn)生一次中斷請(qǐng)求傳輸多次數(shù)據(jù)的模式,也就是主設(shè)備20在沒(méi)有接收到中斷請(qǐng)求信號(hào)的情況下也可以主動(dòng)地讀取從設(shè)備26上的數(shù)據(jù)。在這種傳輸模式下,有些數(shù)據(jù)的傳輸是沒(méi)有中斷請(qǐng)求的,這時(shí),從設(shè)備26的中央處理器28無(wú)法知道主設(shè)備20什么時(shí)候會(huì)讀取數(shù)據(jù)、主設(shè)備20讀取數(shù)據(jù)的次數(shù),從設(shè)備26無(wú)法在適當(dāng)?shù)臅r(shí)候把數(shù)據(jù)的源地址和長(zhǎng)度信息發(fā)送給從機(jī)27。所以,主設(shè)備20的中央處理器22在讀取從設(shè)備20的數(shù)據(jù)之前需要獲取數(shù)據(jù)的源地址和長(zhǎng)度信息。
[0037]當(dāng)從設(shè)備26有數(shù)據(jù)需要傳給主設(shè)備20時(shí),先檢查從機(jī)27中的主設(shè)備20操作狀態(tài)寄存器,如果主設(shè)備20在讀取數(shù)據(jù)的狀態(tài),則等待主設(shè)備20讀取數(shù)據(jù);否則,向主設(shè)備20發(fā)出數(shù)據(jù)傳輸?shù)闹袛嗾?qǐng)求信號(hào)。
[0038]主設(shè)備20的主機(jī)21收到從機(jī)27的發(fā)出的中斷請(qǐng)求信號(hào)后,向中央處理器22發(fā)出中斷請(qǐng)求信號(hào),中央處理器22響應(yīng)該中斷請(qǐng)求后,主機(jī)21從從機(jī)27的寄存器中獲取待傳輸數(shù)據(jù)的長(zhǎng)度信息,然后讀取從設(shè)備26相應(yīng)的數(shù)據(jù),并且把從機(jī)27中的狀態(tài)寄存器設(shè)為讀取狀態(tài)。
[0039]主機(jī)21通過(guò)解析上一個(gè)數(shù)據(jù)的所攜帶信息,判斷是否還有待讀取的數(shù)據(jù),如果還有待傳輸?shù)臄?shù)據(jù),主設(shè)備20繼續(xù)讀取從設(shè)備26的下一數(shù)據(jù),如此循環(huán),直到?jīng)]有待傳輸?shù)臄?shù)據(jù)為止。最后,主機(jī)21將從機(jī)27中的狀態(tài)寄存器設(shè)為非讀取狀態(tài)。這樣,從設(shè)備26發(fā)出一次中斷請(qǐng)求信號(hào)可以實(shí)現(xiàn)多次數(shù)據(jù)的傳輸。
[0040]當(dāng)主設(shè)備20有數(shù)據(jù)需要傳輸至從設(shè)備26時(shí),從機(jī)27不向從設(shè)備26的中央處理器28發(fā)出中斷請(qǐng)求信號(hào),即主設(shè)備20向從設(shè)備26傳輸數(shù)據(jù)是非中斷傳輸模式。在缺少中斷請(qǐng)求信號(hào)的情況下,從設(shè)備26的中央處理器28無(wú)法知道從機(jī)27在什么時(shí)候向隨機(jī)存儲(chǔ)器29寫入了多少的數(shù)據(jù)。
[0041 ] 因此,當(dāng)主設(shè)備20有待傳輸?shù)臄?shù)據(jù),首先獲取從設(shè)備26的待寫入地址和從設(shè)備26的數(shù)據(jù)狀態(tài),如果有足夠的剩余空間,則主設(shè)備20的中央處理器22通過(guò)主機(jī)21將待傳輸數(shù)據(jù)的源地址、數(shù)據(jù)長(zhǎng)度以及目標(biāo)地址傳到從機(jī)27,從機(jī)27把接收到的數(shù)據(jù)寫到主機(jī)21指定的從設(shè)備26的隨機(jī)存儲(chǔ)器29的目標(biāo)地址上。如果主設(shè)備20判斷從設(shè)備26隨機(jī)存儲(chǔ)器29剩余空間不夠,則停止數(shù)據(jù)的傳輸。如果主設(shè)備20的隨機(jī)存儲(chǔ)器23上還有剩余數(shù)據(jù)待傳輸,則重復(fù)執(zhí)行數(shù)據(jù)傳輸步驟,直到所有數(shù)據(jù)傳輸完畢,或者直到從設(shè)備26的隨機(jī)寄存器29剩余存儲(chǔ)空間不足為止。
[0042]為了實(shí)現(xiàn)上述的方案,從設(shè)備26必須滿足以下三個(gè)條件:1、從設(shè)備26的從機(jī)27對(duì)隨機(jī)存儲(chǔ)器29進(jìn)行讀寫操作時(shí),數(shù)據(jù)的存儲(chǔ)必須連續(xù)。2、從機(jī)27必須能夠解析主機(jī)21發(fā)出的命令中的地址信息,并能夠轉(zhuǎn)譯為從設(shè)備26的隨機(jī)存儲(chǔ)器29的數(shù)據(jù)地址。實(shí)際應(yīng)用時(shí),從機(jī)27將主機(jī)21發(fā)出的命令中的地址作為偏移量信息,加上隨機(jī)存儲(chǔ)器29的起始地址,即可以得到對(duì)應(yīng)的從設(shè)備26的隨機(jī)存儲(chǔ)器29的數(shù)據(jù)地址。3、從機(jī)27需要定義一組寄存器,用于記錄主設(shè)備20最后一次讀寫數(shù)據(jù)的目標(biāo)地址、主設(shè)備20的讀寫狀態(tài)以及從設(shè)備26隨機(jī)存儲(chǔ)器29的剩余空間的信息。
[0043]從設(shè)備26的隨機(jī)存儲(chǔ)器29的存儲(chǔ)結(jié)構(gòu)如圖3所示,數(shù)據(jù)的存儲(chǔ)是從起始地址連續(xù)地存儲(chǔ)到終止地址,其中Pkt表示隨機(jī)存儲(chǔ)器29中的數(shù)據(jù)塊,free表示隨機(jī)存儲(chǔ)器29中的空白部分,即沒(méi)有存儲(chǔ)有用數(shù)據(jù)的部分。
[0044]不管是主設(shè)備20向從設(shè)備26寫入的數(shù)據(jù)還是從設(shè)備26需要寫入到主設(shè)備20的數(shù)據(jù),均存儲(chǔ)在隨機(jī)存儲(chǔ)器29中,但主設(shè)備20向從設(shè)備26寫入的數(shù)據(jù)與從設(shè)備26需要寫入到主設(shè)備20的數(shù)據(jù)的存儲(chǔ)區(qū)域不相同,因此兩種數(shù)據(jù)不會(huì)相互影響。并且,數(shù)據(jù)的存儲(chǔ)是循環(huán)存儲(chǔ)的,當(dāng)?shù)酱鎯?chǔ)的數(shù)據(jù)達(dá)到或者逼近隨機(jī)存儲(chǔ)器29的終止地址時(shí)會(huì)重新回到起始地址。
[0045]主設(shè)備20向從設(shè)備26寫入數(shù)據(jù)后,數(shù)據(jù)暫存在隨機(jī)存儲(chǔ)器29內(nèi),當(dāng)從設(shè)備26將主設(shè)備20寫入的數(shù)據(jù)處理后,將主設(shè)備20寫入的數(shù)據(jù)的存儲(chǔ)空間標(biāo)識(shí)為free,即將對(duì)應(yīng)的存儲(chǔ)空間釋放,用于存儲(chǔ)新的數(shù)據(jù)。從設(shè)備26待傳輸至主設(shè)備20的數(shù)據(jù)也存儲(chǔ)在隨機(jī)存儲(chǔ)器29中,當(dāng)從設(shè)備26將數(shù)據(jù)傳輸至主設(shè)備20后,也會(huì)將已經(jīng)傳輸?shù)臄?shù)據(jù)對(duì)應(yīng)的存儲(chǔ)空間標(biāo)識(shí)為free,以便于釋放存儲(chǔ)空間,繼續(xù)存儲(chǔ)待傳輸?shù)臄?shù)據(jù)。
[0046]參見(jiàn)圖4,主設(shè)備20與從設(shè)備26之間傳輸?shù)臄?shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)信息以及數(shù)據(jù)實(shí)體,數(shù)據(jù)信息位于數(shù)據(jù)實(shí)體之前,數(shù)據(jù)信息包括以下內(nèi)容=Iencheck,數(shù)據(jù)長(zhǎng)度的取反,用于數(shù)據(jù)長(zhǎng)度的校驗(yàn);length: 數(shù)據(jù)塊的長(zhǎng)度,不包括填充區(qū);flag:數(shù)據(jù)包的一些標(biāo)志信息,包括數(shù)據(jù)包是否有效的鏈接有效性標(biāo)志信息、組合包等;seq:數(shù)據(jù)包的主機(jī)發(fā)送序列號(hào);neXtlen:下一個(gè)待傳輸數(shù)據(jù)的長(zhǎng)度,包括填充區(qū);addr:下一個(gè)待傳輸數(shù)據(jù)的地址,實(shí)際應(yīng)用中是指相對(duì)于起始地址的地址偏移;credit:用于記錄從設(shè)備26的數(shù)據(jù)讀取地址。其中,數(shù)據(jù)包中包含的有關(guān)于下一數(shù)據(jù)包的相關(guān)信息,諸如nextlen等,均為鏈接信息。
[0047]圖4所示的數(shù)據(jù)結(jié)構(gòu)中,payload表示待傳輸?shù)臄?shù)據(jù)實(shí)體,padding是填充區(qū),使用二進(jìn)制數(shù)O填充字節(jié),使整個(gè)需要傳輸?shù)臄?shù)據(jù)包的長(zhǎng)度滿足四個(gè)字節(jié)對(duì)齊的長(zhǎng)度要求。
[0048]由于主設(shè)備20與從設(shè)備26之間的數(shù)據(jù)傳輸不基于中斷請(qǐng)求實(shí)現(xiàn),因此主設(shè)備20與從設(shè)備26傳輸數(shù)據(jù)前,必須了解隨機(jī)存儲(chǔ)器29的數(shù)據(jù)存儲(chǔ)狀態(tài)。本發(fā)明將隨機(jī)存儲(chǔ)器29的數(shù)據(jù)存儲(chǔ)狀態(tài)設(shè)定為三種狀態(tài):普通狀態(tài)、全空狀態(tài)、全滿狀態(tài)。
[0049]另外,本發(fā)明還需要使用以下四個(gè)地址:主設(shè)備20寫入數(shù)據(jù)的目標(biāo)地址HW地址,主設(shè)備20讀取數(shù)據(jù)的目標(biāo)地址HR地址,從設(shè)備26寫入數(shù)據(jù)的目標(biāo)地址DW地址,從設(shè)備26讀取數(shù)據(jù)的目標(biāo)地址DR地址。上述四個(gè)地址均是指向隨機(jī)存儲(chǔ)器29上的地址,且上述四個(gè)地址在初始化時(shí)都是在隨機(jī)存儲(chǔ)器29的起始地址,并且連續(xù)地移動(dòng)向終止地址,當(dāng)上述四個(gè)地址達(dá)到或者逼近隨機(jī)存儲(chǔ)器29的終止地址時(shí)會(huì)重新回到起始地址。并且,從機(jī)27設(shè)有寄存器存儲(chǔ)HW地址以及HR地址,優(yōu)選地,從機(jī)27還存儲(chǔ)DW地址以及DR地址。
[0050]在主設(shè)備20向從設(shè)備26傳輸數(shù)據(jù)時(shí),隨機(jī)存儲(chǔ)器29的數(shù)據(jù)存儲(chǔ)狀態(tài)可能出現(xiàn)如圖5所示的五種狀態(tài),此時(shí)隨機(jī)存儲(chǔ)器29的數(shù)據(jù)存儲(chǔ)狀態(tài)只與HW地址與DR地址有關(guān)。[0051 ] 如圖5 (a)所示的狀態(tài)中,HW地址在DR地址之后,則HW地址和DR地址之間的數(shù)據(jù)為從設(shè)備26接收并待處理的數(shù)據(jù),其他的部分為剩余的存儲(chǔ)空間。當(dāng)剩余的存儲(chǔ)空間足以容納下一個(gè)數(shù)據(jù)包時(shí),從機(jī)27判斷數(shù)據(jù)的存儲(chǔ)狀態(tài)處于普通狀態(tài)。
[0052]如圖5 (b)所示的狀態(tài)中,HW地址在DR地址之前,則HW地址和DR地址之間的存儲(chǔ)空間為剩余空間,其他的部分的數(shù)據(jù)為從設(shè)備26接收并待處理數(shù)據(jù)。當(dāng)剩余空間足以容納下一個(gè)數(shù)據(jù)包時(shí),從機(jī)27判斷隨機(jī)存儲(chǔ)器29處于普通狀態(tài)。
[0053]如圖5(c)所示的狀態(tài)中,HW地址與DR地址相等,表示隨機(jī)存儲(chǔ)器29中沒(méi)有待處理等數(shù)據(jù),此時(shí)判斷數(shù)據(jù)存儲(chǔ)狀態(tài)為全空狀態(tài)。
[0054]如圖5 (d)所示的狀態(tài)中,HW地址在DR地址之后,則HW地址和DR地址之間的數(shù)據(jù)為待處理數(shù)據(jù),其他的部分為剩余的存儲(chǔ)空間,當(dāng)剩余的存儲(chǔ)空間不足以容納下一個(gè)數(shù)據(jù)包時(shí),從機(jī)27判斷數(shù)據(jù)的存儲(chǔ)狀態(tài)處于全滿狀態(tài)。[0055]如圖5 (e)所示的狀態(tài)中,HW地址在DR地址之前,則HW地址和DR地址之間的存儲(chǔ)空間為剩余空間,其他的部分的數(shù)據(jù)為從設(shè)備26接收并待處理數(shù)據(jù)。當(dāng)剩余空間不足以容納下一個(gè)數(shù)據(jù)包時(shí),從機(jī)27判斷隨機(jī)存儲(chǔ)器29處于全滿狀態(tài)。
[0056]相同地,在從設(shè)備26向主設(shè)備20傳輸數(shù)據(jù)的時(shí)候,從設(shè)備26也會(huì)判斷隨機(jī)存儲(chǔ)器29的存儲(chǔ)狀態(tài)。此時(shí),從設(shè)備26根據(jù)DW地址與HW地址判斷隨機(jī)存儲(chǔ)器29的存儲(chǔ)狀態(tài)。隨機(jī)存儲(chǔ)器29的存儲(chǔ)狀態(tài)如圖6所示。
[0057]如圖6 (a)所示狀態(tài)下,Dff地址在HR地址之后,則DW地址和HR地址之間的數(shù)據(jù)為從設(shè)備26寫入到隨機(jī)存儲(chǔ)器29并待傳輸至主設(shè)備20的數(shù)據(jù),其他的部分為剩余存儲(chǔ)空間。當(dāng)剩余存儲(chǔ)空間足以容納下一個(gè)數(shù)據(jù)包時(shí),從設(shè)備26判斷隨機(jī)存儲(chǔ)器29處于普通狀態(tài)。
[0058]如圖6 (b)所示狀態(tài)下,Dff地址在HR地址之前,則DW地址和HR地址之間的空間為剩余存儲(chǔ)空間,其他的數(shù)據(jù)為待傳輸至主設(shè)備20的數(shù)據(jù)。當(dāng)剩余存儲(chǔ)空間足以容納下一個(gè)數(shù)據(jù)包時(shí),從設(shè)備26判斷隨機(jī)存儲(chǔ)器29的存儲(chǔ)狀態(tài)處于普通狀態(tài)。
[0059]如圖6(c)所示狀態(tài)下,HR地址與DW地址相等,表示隨機(jī)存儲(chǔ)器29中沒(méi)有待傳輸?shù)葦?shù)據(jù),此時(shí)從設(shè)備26判斷數(shù)據(jù)存儲(chǔ)狀態(tài)為全空狀態(tài)。
[0060]如圖6 (d)所示狀態(tài)下,Dff地址在HR地址之后,則DW地址和HR地址之間的數(shù)據(jù)為待傳輸至主設(shè)備20的數(shù)據(jù),其他的存儲(chǔ)空間為剩余存儲(chǔ)空間,當(dāng)剩余存儲(chǔ)空間不足以容納下一個(gè)數(shù)據(jù)包時(shí),從設(shè)備26判斷隨機(jī)存儲(chǔ)器29的存儲(chǔ)狀態(tài)處于全滿狀態(tài)。
[0061 ] 如圖6 (e)所示狀態(tài)下,Dff地址在HR地址之前,則DW地址和HR地址之間的存儲(chǔ)空間為剩余存儲(chǔ)空間,其他的數(shù)據(jù)為待傳輸至主設(shè)備20的數(shù)據(jù)。當(dāng)剩余存儲(chǔ)空間不足以容納下一個(gè)數(shù)據(jù)包時(shí),從設(shè)備26判斷隨機(jī)存儲(chǔ)器29的存儲(chǔ)狀態(tài)處于全滿狀態(tài)。
[0062]本發(fā)明中,由于從設(shè)備26向主設(shè)備20傳輸?shù)臄?shù)據(jù)包括鏈接有效性的標(biāo)志信息,用于標(biāo)志下一傳輸數(shù)據(jù)的有效性,因此本發(fā)明對(duì)鏈接有效性進(jìn)行如下定義:當(dāng)從設(shè)備26連續(xù)地向主設(shè)備20傳輸數(shù)據(jù),當(dāng)傳輸最后一個(gè)數(shù)據(jù)包時(shí),不再傳輸下一個(gè)數(shù)據(jù)包,則認(rèn)為下一個(gè)數(shù)據(jù)包不存在,此時(shí)將鏈接有效性設(shè)置為無(wú)效。此外,下一個(gè)數(shù)據(jù)包的存儲(chǔ)區(qū)域不能和當(dāng)前數(shù)據(jù)包的存儲(chǔ)區(qū)域發(fā)生重疊,下一個(gè)數(shù)據(jù)包的存儲(chǔ)區(qū)域也不能超出隨機(jī)存儲(chǔ)器29的存儲(chǔ)區(qū)域,下一個(gè)數(shù)據(jù)包的長(zhǎng)度也不能小于預(yù)設(shè)的最小長(zhǎng)度。如果從設(shè)備26待傳輸?shù)南乱粋€(gè)數(shù)據(jù)包滿足上述的條件,則認(rèn)為下一個(gè)數(shù)據(jù)包是有效的,將當(dāng)前的數(shù)據(jù)包的鏈接有效性置為有效,否則將鏈接有效性置為無(wú)效。主設(shè)備20 —旦檢測(cè)某一個(gè)數(shù)據(jù)包的鏈接有效性為無(wú)效,則讀取當(dāng)前數(shù)據(jù)包后,不再繼續(xù)讀取數(shù)據(jù)包,在收到下次數(shù)據(jù)中斷請(qǐng)求信號(hào)之前,不會(huì)再進(jìn)行數(shù)據(jù)的讀取。
[0063]從設(shè)備26向主設(shè)備20傳輸?shù)臄?shù)據(jù)包中包含有標(biāo)識(shí)信息flag,其中包括鏈接有效性標(biāo)志信息,例如使用二進(jìn)制數(shù)“ I ”表示鏈接有效性為有效,使用二進(jìn)制數(shù)“O”表示鏈接有效性為無(wú)效。
[0064]當(dāng)然,主設(shè)備20接收到從設(shè)備26傳輸?shù)男畔⒑?,在判斷從設(shè)備26傳輸?shù)臄?shù)據(jù)中鏈接有效性為有效時(shí),還會(huì)對(duì)數(shù)據(jù)的鏈接有效性進(jìn)行一次檢測(cè),如判斷從設(shè)備26下一個(gè)需要傳輸?shù)臄?shù)據(jù)包的長(zhǎng)度小于預(yù)設(shè)最小長(zhǎng)度、下一個(gè)需要傳輸?shù)臄?shù)據(jù)包存儲(chǔ)區(qū)域與當(dāng)前數(shù)據(jù)包的存儲(chǔ)區(qū)域發(fā)生重疊、下一個(gè)需要傳輸?shù)臄?shù)據(jù)包存儲(chǔ)區(qū)域超出主設(shè)備20的存儲(chǔ)器的存儲(chǔ)區(qū)域時(shí),都會(huì)將當(dāng)前數(shù)據(jù)包的鏈接有效性置為無(wú)效。因此,即使從設(shè)備26傳輸?shù)臄?shù)據(jù)中鏈接有效性為有效,主設(shè)備20也可能將當(dāng)前數(shù)據(jù)包的鏈接有效性置為無(wú)效,并不再?gòu)膹脑O(shè)備26讀取數(shù)據(jù),直至接收到下一次的數(shù)據(jù)傳輸中斷請(qǐng)求為止。
[0065]下面結(jié)合圖7與圖8說(shuō)明主設(shè)備20向從設(shè)備26傳輸數(shù)據(jù)的流程。主設(shè)備20首先執(zhí)行步驟SI,判斷是否有待傳輸?shù)臄?shù)據(jù),如有,則執(zhí)行步驟S2,從上一次主設(shè)備讀取數(shù)據(jù)的流程中所接收到的數(shù)據(jù)包中獲取credit字段的信息,也就是獲取DR地址。如果上一次所接收的數(shù)據(jù)包中credit字段的信息是無(wú)效的,則從從機(jī)27的寄存器中獲取credit字段的值。并且,通過(guò)上一次的HW地址加上上一次傳輸數(shù)據(jù)的長(zhǎng)度得到出當(dāng)前的HW地址。然后,執(zhí)行步驟S3,根據(jù)獲得的DR地址與HW地址判斷隨機(jī)存儲(chǔ)器29是否處于全滿狀態(tài),如是,則直接結(jié)束數(shù)據(jù)傳輸流程,否則,執(zhí)行步驟S4,主機(jī)21將數(shù)據(jù)傳輸至從機(jī)27,從機(jī)27根據(jù)主機(jī)21所發(fā)送的數(shù)據(jù)存儲(chǔ)的目標(biāo)地址,將所接收到的數(shù)據(jù)存儲(chǔ)至隨機(jī)存儲(chǔ)器29指定的目標(biāo)地址上。
[0066]從設(shè)備26接收到主機(jī)21傳輸?shù)臄?shù)據(jù)后,首先執(zhí)行步驟S11,根據(jù)寄存器所存儲(chǔ)的HW地址以及DR地址確定隨機(jī)存儲(chǔ)器29的存儲(chǔ)狀態(tài),判斷隨機(jī)存儲(chǔ),29是否為全空狀態(tài),如不是,則執(zhí)行步驟S12,對(duì)所接收的數(shù)據(jù)進(jìn)行容錯(cuò)校驗(yàn)處理,數(shù)據(jù)的容錯(cuò)校驗(yàn)具體步驟后面將詳細(xì)說(shuō)明。如果所接收的數(shù)據(jù)沒(méi)有錯(cuò)誤,從機(jī)27直接將所接收的數(shù)據(jù)傳遞至后級(jí)進(jìn)行處理,即執(zhí)行步驟S13。最后,待對(duì)所接收的數(shù)據(jù)進(jìn)行后續(xù)處理后,從機(jī)27對(duì)數(shù)據(jù)進(jìn)行定界,即更新DR地址,確定哪些數(shù)據(jù)已經(jīng)處理完畢,已經(jīng)處理完畢的數(shù)據(jù)的存儲(chǔ)空間將被釋放,用于存儲(chǔ)新的數(shù)據(jù)。
[0067]由于主設(shè)備20每次向從設(shè)備26傳輸數(shù)據(jù)前均對(duì)隨機(jī)存儲(chǔ)器29的存儲(chǔ)狀態(tài)進(jìn)行判斷,只有確定隨機(jī)存儲(chǔ)器29能夠接收數(shù)據(jù)的情況下才傳輸數(shù)據(jù)。且從機(jī)27在接收到數(shù)據(jù)后不需要向中央處理器28發(fā)送中斷請(qǐng)求信號(hào),提高數(shù)據(jù)的傳輸效率。
[0068]下面結(jié)合圖9與圖10說(shuō)明從設(shè)備26向主設(shè)備20傳輸數(shù)據(jù)的流程。從設(shè)備26有待傳輸?shù)臄?shù)據(jù)時(shí),首先執(zhí)行步驟S21,從設(shè)備26的中央處理器28從從機(jī)27的寄存器中獲取HR地址。然后,根據(jù)獲取的HR地址以及待寫入到隨機(jī)存儲(chǔ)器29的DW 地址判斷隨機(jī)存儲(chǔ)器29的存儲(chǔ)狀態(tài),即執(zhí)行步驟S22,判斷隨機(jī)存儲(chǔ)器29是否為全滿狀態(tài),如是,則跳過(guò)步驟S23,執(zhí)行后面的步驟,否則,執(zhí)行步驟S23,將待傳輸?shù)臄?shù)據(jù)寫入到隨機(jī)存儲(chǔ)器29,接著設(shè)置數(shù)據(jù)的鏈接信息并更新DW地址。
[0069]然后,中央處理器28執(zhí)行步驟S24,再次從從機(jī)27的寄存器中獲取HR地址,這是因?yàn)橹髟O(shè)備20與從設(shè)備26之間的通信是異步的。接著,從設(shè)備26判斷隨機(jī)存儲(chǔ)器29是否為全空狀態(tài),即執(zhí)行步驟S25,如不是,則繼續(xù)執(zhí)行步驟S26,判斷主設(shè)備20是否處于數(shù)據(jù)讀取狀態(tài),如是,則等待主設(shè)備20繼續(xù)讀取數(shù)據(jù),否則,執(zhí)行步驟S27,將配置數(shù)據(jù)信息發(fā)送給從機(jī)27,從機(jī)27執(zhí)行步驟S28,向主設(shè)備20的主機(jī)21發(fā)出數(shù)據(jù)傳輸?shù)闹袛嗾?qǐng)求信息。
[0070]由于從機(jī)27中設(shè)有寄存器存儲(chǔ)有主設(shè)備20工作狀態(tài)的標(biāo)志,在主設(shè)備20讀取從設(shè)備26的數(shù)據(jù)時(shí),從機(jī)27將主設(shè)備20的工作狀態(tài)標(biāo)記為讀取狀態(tài),否則,將主設(shè)備20的工作狀態(tài)標(biāo)記為非讀取狀態(tài)。因此,從設(shè)備26有待傳輸?shù)臄?shù)據(jù)時(shí),實(shí)際上判斷主設(shè)備20是否處于數(shù)據(jù)讀取狀態(tài),如主設(shè)備20處于數(shù)據(jù)讀取狀態(tài),則繼續(xù)由主設(shè)備20讀取數(shù)據(jù),也就是不發(fā)出中斷請(qǐng)求信號(hào),繼續(xù)向主設(shè)備20傳輸數(shù)據(jù),否則,向主設(shè)備20發(fā)出中斷請(qǐng)求信號(hào)。當(dāng)主設(shè)備20讀取數(shù)據(jù)完畢后,從設(shè)備26的從機(jī)27修改狀態(tài)寄存器,將主設(shè)備20的工作狀態(tài)修改為非讀取狀態(tài)。[0071]主設(shè)備20接收到數(shù)據(jù)傳輸?shù)闹袛嗾?qǐng)求信號(hào)后,執(zhí)行步驟S31,進(jìn)入數(shù)據(jù)讀取狀態(tài),然后,主設(shè)備20的主機(jī)21執(zhí)行步驟S32,獲取所讀取數(shù)據(jù)地址以及長(zhǎng)度,其中第一次獲取的數(shù)據(jù)地址以及數(shù)據(jù)長(zhǎng)度等信息可以從從機(jī)27的寄存器中獲取。
[0072]接著,主機(jī)21執(zhí)行步驟S33,主機(jī)21根據(jù)獲取的數(shù)據(jù)地址以及數(shù)據(jù)長(zhǎng)度讀取從設(shè)備26上的數(shù)據(jù)。讀取數(shù)據(jù)完畢后,執(zhí)行步驟S34,對(duì)所讀取的數(shù)據(jù)進(jìn)行容錯(cuò)校驗(yàn)處理,如果數(shù)據(jù)沒(méi)有錯(cuò)誤,則執(zhí)行步驟S35,將數(shù)據(jù)傳遞至后級(jí)處理。最后,主設(shè)備20執(zhí)行步驟S36,判斷所讀取的數(shù)據(jù)的鏈接有效性,即判斷從設(shè)備26是否還有下一數(shù)據(jù)需要傳輸或者下一數(shù)據(jù)是否有效,如鏈接有效性為有效,返回執(zhí)行步驟S32,繼續(xù)讀取數(shù)據(jù),否則,結(jié)束數(shù)據(jù)讀取流程。
[0073]由于主設(shè)備20讀取從設(shè)備26的數(shù)據(jù)過(guò)程中,根據(jù)鏈接有效性判斷是否還需要讀取下一數(shù)據(jù),因此從設(shè)備26只需要發(fā)送一次數(shù)據(jù)傳輸?shù)闹袛嗾?qǐng)求信號(hào)即可以傳輸多次數(shù)據(jù),減小主設(shè)備20響應(yīng)中斷請(qǐng)求信號(hào)的次數(shù),提高數(shù)據(jù)傳輸?shù)男省?br>
[0074]以下說(shuō)明主設(shè)備20或者從設(shè)備26對(duì)所接收的數(shù)據(jù)進(jìn)行容錯(cuò)校驗(yàn)處理。數(shù)據(jù)發(fā)生錯(cuò)誤的類型主要有兩種原因,一是總線傳輸錯(cuò)誤,也就是物理上傳輸發(fā)生錯(cuò)誤,二是傳輸控制錯(cuò)誤,也就是傳輸控制信息被沒(méi)有正確被配置或者丟失,導(dǎo)致傳輸不能有序進(jìn)行。
[0075]如果是總線傳輸錯(cuò)誤,對(duì)于有數(shù)據(jù)校驗(yàn)的總線而言,可以由硬件來(lái)檢測(cè)并要求重傳進(jìn)行數(shù)據(jù)的恢復(fù)。對(duì)于沒(méi)有數(shù)據(jù)校驗(yàn)的總線而言,總線傳輸錯(cuò)誤可以由軟件來(lái)進(jìn)行檢測(cè)并要求重傳。重傳超過(guò)一定的次數(shù),則放棄數(shù)據(jù)的傳輸。由于在傳輸接口中,數(shù)據(jù)讀寫的發(fā)起方都是主設(shè)備20,所以重傳機(jī)制在主設(shè)備20上實(shí)現(xiàn)。在主設(shè)備20向從設(shè)備26傳輸數(shù)據(jù)的過(guò)程中,如果發(fā)生了總線傳輸錯(cuò)誤,從機(jī)27將通知主機(jī)21,然后由主設(shè)備20對(duì)數(shù)據(jù)進(jìn)行重發(fā)。在從設(shè)備26向主設(shè)備20傳輸數(shù)據(jù)的過(guò)程中,如果主機(jī)21檢測(cè)到數(shù)據(jù)錯(cuò)誤后,主設(shè)備20會(huì)對(duì)數(shù)據(jù)進(jìn)行重讀。
[0076]如果由于軟件的某些潛在錯(cuò)誤行為導(dǎo)致傳輸控制信息出現(xiàn)錯(cuò)誤,則錯(cuò)誤的檢測(cè)和恢復(fù)都需要軟件來(lái)完成,下面說(shuō)明對(duì)各種信息的錯(cuò)誤進(jìn)行處理。
[0077]如果在主設(shè)備20向從設(shè)備26傳輸數(shù)據(jù)的過(guò)程中出現(xiàn)length信息錯(cuò)誤,則從設(shè)備26將丟棄當(dāng)前的數(shù)據(jù)包,并通過(guò)四字節(jié)的步長(zhǎng)來(lái)讀取數(shù)據(jù),當(dāng)遇到下一個(gè)數(shù)據(jù)包時(shí),其識(shí)別主要依靠length信息和Iencheck信息、seq信息等。如果在從設(shè)備26向主設(shè)備20傳輸數(shù)據(jù)過(guò)程出現(xiàn)length信息錯(cuò)誤,則主設(shè)備20丟棄接收到的數(shù)據(jù)包,結(jié)束數(shù)據(jù)接收流程,等待下一次的數(shù)據(jù)傳輸中斷請(qǐng)求。
[0078]從設(shè)備26向主設(shè)備20傳輸數(shù)據(jù)過(guò)程出現(xiàn)nextlen信息錯(cuò)誤,主設(shè)備20將放棄連續(xù)讀取數(shù)據(jù)包。
[0079]在主設(shè)備20向從設(shè)備26傳輸數(shù)據(jù)的過(guò)程中,如果出現(xiàn)nxtpkt_addr信息錯(cuò)誤的情況,主設(shè)備20放棄連續(xù)讀取數(shù)據(jù)包。
[0080]如果出現(xiàn)序列號(hào)seq信息錯(cuò)誤的情況,主設(shè)備20只會(huì)發(fā)出警告,不會(huì)丟棄數(shù)據(jù)包。
[0081]如果出現(xiàn)信息標(biāo)志flag錯(cuò)誤的情況,一般情況下無(wú)法單獨(dú)判斷其正確性,必須結(jié)合相關(guān)的信息進(jìn)行判斷。
[0082]在從設(shè)備26向主設(shè)備20傳輸數(shù)據(jù)的過(guò)程中,可能出現(xiàn)credit信息錯(cuò)誤,即DR地址不正確的情況。所以當(dāng)出現(xiàn)起始地址加上credit的數(shù)值大于終止地址的情況時(shí),就判斷該數(shù)據(jù)無(wú)效,主設(shè)備20需要從從機(jī)27的寄存器更新DR地址。[0083]當(dāng)然,上述實(shí)施例僅是本發(fā)明較佳的實(shí)施方式,實(shí)際應(yīng)用時(shí),還可以有更多的改變,例如,對(duì)數(shù)據(jù)容錯(cuò)校驗(yàn)的方式可以根據(jù)實(shí)際情況改變;或者,鏈接有效性的判斷條件也可以根據(jù)實(shí)際情況改變,這樣的改變也能實(shí)現(xiàn)本發(fā)明的目的。
[0084]最后需要強(qiáng)調(diào)的是,本發(fā)明不限于上述實(shí)施方式,如數(shù)據(jù)信息結(jié)構(gòu)的改變、存儲(chǔ)器類型的改變等變化也應(yīng)該包括在本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.主從設(shè)備的數(shù)據(jù)傳輸方法,其特征在于:包括 主設(shè)備響應(yīng)從設(shè)備發(fā)出的數(shù)據(jù)傳輸中斷請(qǐng)求后,接收從設(shè)備傳輸?shù)陌墟溄佑行缘臄?shù)據(jù),判斷所述鏈接有效性是否為有效,如是,繼續(xù)接收所述從設(shè)備傳輸?shù)臄?shù)據(jù),否則,終止接收數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的主從設(shè)備的數(shù)據(jù)傳輸方法,其特征在于: 所述鏈接有效性的數(shù)據(jù)為所述從設(shè)備向所述主設(shè)備傳輸?shù)臄?shù)據(jù)中的鏈接有效性標(biāo)志信息,用于標(biāo)識(shí)所述從設(shè)備發(fā)送的下一數(shù)據(jù)的有效性。
3.根據(jù)權(quán)利要求1或2所述的主從設(shè)備的數(shù)據(jù)傳輸方法,其特征在于: 所述從設(shè)備在發(fā)送的數(shù)據(jù)包為連續(xù)發(fā)送的最后一個(gè)數(shù)據(jù)包時(shí),將當(dāng)前數(shù)據(jù)包的鏈接有效性置為無(wú)效。
4.根據(jù)權(quán)利要求1或2所述的主從設(shè)備的數(shù)據(jù)傳輸方法,其特征在于: 所述主設(shè)備根據(jù)接收的當(dāng)前數(shù)據(jù)包的鏈接信息判斷所述從設(shè)備下一個(gè)需要傳輸?shù)臄?shù)據(jù)包的長(zhǎng)度小于預(yù)設(shè)最小長(zhǎng)度或者下一個(gè)需要傳輸?shù)臄?shù)據(jù)包存儲(chǔ)區(qū)域與當(dāng)前數(shù)據(jù)包的存儲(chǔ)區(qū)域發(fā)生重疊或者下一個(gè)需要傳輸?shù)臄?shù)據(jù)包存儲(chǔ)區(qū)域超出存儲(chǔ)器的存儲(chǔ)區(qū)域時(shí),將當(dāng)前數(shù)據(jù)包的鏈接有效性置為無(wú)效。
5.根據(jù)權(quán)利要求1或2所述的主從設(shè)備的數(shù)據(jù)傳輸方法,其特征在于: 所述從設(shè)備在所述主設(shè)備接收數(shù)據(jù)時(shí)標(biāo)記所述主設(shè)備的狀態(tài)為讀取狀態(tài),在所述主設(shè)備終止接收數(shù)據(jù)后,將所述主設(shè)備的狀態(tài)標(biāo)記為非讀取狀態(tài); 所述從設(shè)備向所述主設(shè)備傳輸數(shù)據(jù)前,判斷所述主設(shè)備是否處于非讀取狀態(tài),如是,向所述主設(shè)備發(fā)出數(shù)據(jù)傳輸中斷請(qǐng)求,否則,不發(fā)出數(shù)據(jù)傳輸中斷請(qǐng)求,繼續(xù)向所述主設(shè)備傳輸數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的主從設(shè)備的數(shù)據(jù)傳輸方法,其特征在于: 所述主設(shè)備向所述從設(shè)備傳輸?shù)臄?shù)據(jù)前,判斷所述從設(shè)備的存儲(chǔ)器是否處于全滿狀態(tài),如是,終止向所述從設(shè)備傳輸數(shù)據(jù),否則,向所述從設(shè)備傳輸數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的主從設(shè)備的數(shù)據(jù)傳輸方法,其特征在于: 所述主設(shè)備判斷所述從設(shè)備的存儲(chǔ)器處于全滿狀態(tài)的步驟是:讀取所述從設(shè)備的存儲(chǔ)器上從設(shè)備數(shù)據(jù)讀取目標(biāo)地址與主設(shè)備數(shù)據(jù)寫入目標(biāo)地址,根據(jù)所述從設(shè)備數(shù)據(jù)讀取目標(biāo)地址與所述主設(shè)備數(shù)據(jù)寫入目標(biāo)地址判斷所述存儲(chǔ)器沒(méi)有足夠存儲(chǔ)空間存儲(chǔ)所需要傳輸?shù)臄?shù)據(jù)時(shí),判斷所述存儲(chǔ)器處于全滿狀態(tài)。
8.根據(jù)權(quán)利要求7所述的主從設(shè)備的數(shù)據(jù)傳輸方法,其特征在于: 所述主設(shè)備從上一次從所述從設(shè)備接收的數(shù)據(jù)中或者所述從設(shè)備的寄存器中獲取所述設(shè)備數(shù)據(jù)讀取目標(biāo)地址。
9.根據(jù)權(quán)利要求6至8任一項(xiàng)所述的主從設(shè)備的數(shù)據(jù)傳輸方法,其特征在于: 所述從設(shè)備接收到所述主設(shè)備傳輸?shù)臄?shù)據(jù)后,將所接收到數(shù)據(jù)直接傳遞至后級(jí)處理,并根據(jù)所接收的數(shù)據(jù)的長(zhǎng)度計(jì)算新的從設(shè)備數(shù)據(jù)讀取目標(biāo)地址。
10.根據(jù)權(quán)利要求6至8任一項(xiàng)所述的主從設(shè)備的數(shù)據(jù)傳輸方法,其特征在于: 所述從設(shè)備接收所述主設(shè)備傳輸?shù)臄?shù)據(jù)后,對(duì)所接收的數(shù)據(jù)進(jìn)行容錯(cuò)校驗(yàn)處理。
【文檔編號(hào)】H04L29/08GK103685578SQ201410009475
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2014年1月8日 優(yōu)先權(quán)日:2014年1月8日
【發(fā)明者】楊富華 申請(qǐng)人:珠海全志科技股份有限公司