亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置及方法

文檔序號(hào):7957043閱讀:340來源:國知局
專利名稱:實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置及方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,更具體地說,涉及一種實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置及方法。
背景技術(shù)
HDLC(High-Level Data Link Control,高層數(shù)據(jù)鏈路控制)是面向比特的數(shù)據(jù)鏈路控制協(xié)議。由于HDLC協(xié)議的傳輸控制功能和處理功能分離,并具有傳輸透明、可靠性高、傳輸效率高、靈活性高等特點(diǎn),其已廣泛應(yīng)用于數(shù)據(jù)通信領(lǐng)域,是確保數(shù)據(jù)信息可靠互通的重要技術(shù)。
如圖1所示,完整的HDLC幀由標(biāo)志序列F、地址字段A、控制字段C、信息字段I和幀校驗(yàn)序列字段FCS組成。其中在HDLC幀中指定比特組合01111110作為幀標(biāo)志序列,所有幀必須以F開始,并以F結(jié)束。為做到透明傳輸,HDLC中采用“0”比特插入的方法,防止標(biāo)志序列F在包括A、C、I以及FCS在內(nèi)的整個(gè)比特序列中出現(xiàn)。具體方法為標(biāo)志序列間如有5個(gè)連“1”的話,則在發(fā)送端插入1個(gè)“0”;接收端檢查接收幀的內(nèi)容,發(fā)現(xiàn)標(biāo)志序列之間若有5個(gè)連續(xù)的“1”,則將后面的1個(gè)“0”刪去,如圖2所示。HDLC協(xié)議的基本工作原理如下在發(fā)送端按照HDLC數(shù)據(jù)幀格式,接收高層下發(fā)的信息字段,插入地址字段信息,將鏈路監(jiān)控信息填入控制字段,對(duì)地址字段+控制字段+信息字段進(jìn)行CRC校驗(yàn),附加CRC校驗(yàn)比特。以0x7e隔離HDLC數(shù)據(jù)幀,并且將并行HDLC數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),″0″bit插入。將整個(gè)數(shù)據(jù)段下發(fā)次層。
在接收端接收次層上傳的HDLC幀,檢查接收方向上進(jìn)行幀定界、串并轉(zhuǎn)換和CRC校驗(yàn),″0″bit去除。按照HDLC幀格式,進(jìn)行CRC解校驗(yàn),提取地址字段、控制字段、信息字段等信息。完成尋址和鏈路監(jiān)控功能。將信息字段上傳高層。
目前,通常采用軟硬件協(xié)同的方式實(shí)現(xiàn)整個(gè)HDLC功能。具體來說,采用ASIC實(shí)現(xiàn)HDLC物理層的組幀/拆幀、CRC編碼或譯碼、信息透傳處理(“0”比特插入和刪除)以及數(shù)據(jù)的發(fā)送和接受等功能;而地址域、控制域、信息域等處理則由軟件實(shí)現(xiàn)。
如圖3所示,現(xiàn)有的HDLC模塊由接口模塊31、HDLC數(shù)據(jù)發(fā)送模塊32、HDLC數(shù)據(jù)接收模塊33等3個(gè)部分組成。其中,HDLC接口模塊31提供有時(shí)鐘,其通過數(shù)據(jù)、地址總線和讀寫信號(hào)讀寫并行數(shù)據(jù),并產(chǎn)生和處理中斷信號(hào)。HDLC數(shù)據(jù)發(fā)送模塊32鎖存外部CPU寫入的發(fā)送數(shù)據(jù)并按照指定的時(shí)序啟動(dòng)發(fā)送;在發(fā)送數(shù)據(jù)段前加上“7E”啟始標(biāo)志;對(duì)發(fā)送數(shù)據(jù)逐位做CRC計(jì)算并把計(jì)算結(jié)果附在發(fā)送數(shù)據(jù)之后;對(duì)包括CRC計(jì)算值在內(nèi)的數(shù)據(jù)進(jìn)行“插零”操作并附上“7E”結(jié)束標(biāo)志并把結(jié)果送出。HDLC數(shù)據(jù)接收模塊33用于在接收的數(shù)據(jù)流中檢測有無“7E”標(biāo)志;當(dāng)檢測到數(shù)據(jù)流中有“1F”信號(hào)時(shí),則對(duì)數(shù)據(jù)進(jìn)行“刪零”操作;對(duì)經(jīng)過“刪零”后的數(shù)據(jù)進(jìn)行CRC校驗(yàn);把接收到的數(shù)據(jù)進(jìn)行串/并轉(zhuǎn)換并存入雙端口RAM;當(dāng)接收到結(jié)束標(biāo)志后,檢查CRC校驗(yàn)值是否正確,通知接口模塊數(shù)據(jù)接收完畢。
然而上述HDLC模塊沒有提供DMA功能,因此HDLC數(shù)據(jù)讀取或發(fā)送,都需要CPU干預(yù),需要占用寶貴的CPU處理資源。此外,上述HDLC模塊僅提供CPU接口,而不提供總線接口,使其無法集成到SOC,從而在面積、功耗、可靠性等方面略顯不足。上述的HDLC模塊還不能進(jìn)行數(shù)據(jù)塊連續(xù)處理,每次處理完畢1個(gè)HDLC數(shù)據(jù)塊之后,需要等待CPU重新下發(fā)數(shù)據(jù)(發(fā)送方向)或等待CPU全部取走上傳數(shù)據(jù)(接收方向)之后,進(jìn)行HDLC物理層協(xié)議操作,效率相對(duì)較低。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對(duì)上述現(xiàn)有系統(tǒng)進(jìn)行HDLC處理時(shí)CPU運(yùn)行負(fù)荷大和處理效率低下的缺陷,提供一種新的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置及方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是構(gòu)造一種實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置,包括有用于通過先進(jìn)高性能總線與外設(shè)交互的總線接口模塊和與所述總線接口模塊連接的HDLC處理通道,所述HDLC處理通道包括有核心處理模塊以及核心控制模塊,所述核心控制模塊根據(jù)外設(shè)的DMA搬移請(qǐng)求信號(hào)控制核心處理模塊通過總線接口模塊從外設(shè)讀取數(shù)據(jù)并進(jìn)行HDLC處理、并在核心處理模塊處理完成后通知相關(guān)外設(shè)或CPU讀取處理完成的數(shù)據(jù)。
在本發(fā)明所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置中,所述HDLC處理包括將輸入的原始數(shù)據(jù)轉(zhuǎn)換為HDLC幀或?qū)⑤斎氲腍DLC幀轉(zhuǎn)換為原始數(shù)據(jù)。
在本發(fā)明所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置中,所述裝置還包括配置編程接口,所述HDLC處理通道通過配置編程接口接收來自CPU的配置參數(shù)并向CPU上報(bào)狀態(tài)變化。
在本發(fā)明所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置中,所述HDLC處理通道包括有參數(shù)配置模塊,所述參數(shù)配置模塊解析來自CPU的配置參數(shù)并分配給核心控制模塊和核心處理模塊,同時(shí)所述參數(shù)配置模塊還匯總來自核心控制模塊和核心處理模塊的狀態(tài)變化供CPU回讀。
在本發(fā)明所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置中,所述核心處理模塊包括有依次連接的用于FCS計(jì)算和校驗(yàn)的FCS模塊、用于透明化處理的透明化處理模塊、用于幀標(biāo)志序列插入和刪除的標(biāo)志序列處理模塊。
在本發(fā)明所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置中,所述HDLC處理通道還包括有用于存放處理完畢的接收數(shù)據(jù)的目的輸出緩沖和用于存放沒有處理的發(fā)送數(shù)據(jù)的源輸入緩沖。
在本發(fā)明所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置中,所述核心控制模塊包括有在數(shù)據(jù)搬移過程中核心處理模塊的源輸入緩沖為空時(shí)將源外設(shè)數(shù)據(jù)讀入核心處理模塊進(jìn)行處理的輸入控制模塊,以及在核心處理模塊的目的輸出緩沖滿時(shí)將核心處理模塊目的輸出緩沖的數(shù)據(jù)輸出到目的外設(shè)的輸出控制模塊,其中所述輸入控制模塊和輸出控制模塊分別與核心處理模塊連接。
在本發(fā)明所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置中,所述裝置包括有仲裁模塊,所述HDLC處理通道包括有多個(gè),所述多個(gè)HDLC處理通道經(jīng)由仲裁模塊連接到總線接口模塊,所述仲裁模塊用于使用仲裁算法在多個(gè)HDLC處理通道之間選擇特定HDLC處理通道進(jìn)行總線訪問。
在本發(fā)明所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置中,所述裝置還包括有接收源外設(shè)或目的外設(shè)的DMA請(qǐng)求并將所述DMA請(qǐng)求分配到各個(gè)HDLC處理通道的同步模塊。
在本發(fā)明所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置中,所述核心控制模塊還包括有根據(jù)來自同步模塊的DMA請(qǐng)求產(chǎn)生DMA請(qǐng)求響應(yīng)或中斷上報(bào)的響應(yīng)接口,所述響應(yīng)接口在核心處理模塊完成數(shù)據(jù)轉(zhuǎn)換后發(fā)送DMA請(qǐng)求清除信號(hào)。
在本發(fā)明所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置中,所述裝置還包括將來自各HDLC處理通道的DMA清除響應(yīng)和中斷上報(bào)響應(yīng)輸出的匯總模塊。
本發(fā)明還提供一種實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的方法,包括以下步驟(a)HDLC模塊根據(jù)來自外設(shè)的DMA搬移請(qǐng)求信號(hào)從外設(shè)讀取數(shù)據(jù);(b)HDLC模塊將從外設(shè)將數(shù)據(jù)讀入的數(shù)據(jù)進(jìn)行HDLC處理;(c)HDLC模塊在處理完讀入數(shù)據(jù)后通知相關(guān)外設(shè)或CPU讀取已處理完畢數(shù)據(jù)。
在本發(fā)明所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的方法中,所述步驟(b)中的HDLC處理包括包括幀標(biāo)志檢測、透明化處理、FCS處理。
在本發(fā)明所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的方法中,所述步驟(b)中的HDLC處理包括將輸入的原始數(shù)據(jù)轉(zhuǎn)換為HDLC幀和/或?qū)⑤斎氲腍DLC幀轉(zhuǎn)換為原始數(shù)據(jù)。
本發(fā)明的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置及方法,通過在HDLC處理中提供DMA數(shù)據(jù)搬移功能,減輕了CPU運(yùn)行負(fù)荷,節(jié)省了CPU處理資源。本發(fā)明還通過提供先進(jìn)高性能總線接口模塊,使得本發(fā)明的裝置可以集成到SOC系統(tǒng)。此外,本發(fā)明通過使用數(shù)據(jù)緩沖區(qū)和定時(shí)查詢機(jī)制,實(shí)現(xiàn)了與CPU的交互,確保HDLC處理通道在滿足數(shù)據(jù)流量的前提下,可以實(shí)現(xiàn)流水作業(yè),提高了傳輸處理效率。


下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中圖1是HDLC幀的結(jié)構(gòu)示意圖;圖2是透明化處理的示意圖;圖3是現(xiàn)有的HDLC模塊的結(jié)構(gòu)框圖;圖4是本發(fā)明實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置的結(jié)構(gòu)框圖;圖5是圖4中HDLC處理通道的結(jié)構(gòu)框圖;圖6是圖5中核心處理模塊的結(jié)構(gòu)框圖;圖7是本發(fā)明實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置中的一個(gè)緩沖的數(shù)據(jù)結(jié)構(gòu)示意圖;如圖8是HDLC模塊進(jìn)行數(shù)據(jù)搬移的流程圖;如圖9是HDLC模塊在發(fā)送數(shù)據(jù)時(shí)進(jìn)行數(shù)據(jù)轉(zhuǎn)換的流程圖;如圖10是HDLC模塊在接收數(shù)據(jù)時(shí)進(jìn)行數(shù)據(jù)轉(zhuǎn)換的流程圖。
具體實(shí)施例方式
如圖4所示,在本發(fā)明的一個(gè)實(shí)施例中,實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置(簡稱HDLC模塊)包括HDLC處理通道(Hdlc_Channel)44、總線接口模塊(Ahb_Master)46。其中HDLC處理通道44通過總線接口模塊46經(jīng)由先進(jìn)高性能總線(Advanced High-performance Bus,AHB)連接到外設(shè),從而與外設(shè)交互。HDLC處理通道44用于實(shí)現(xiàn)DMA數(shù)據(jù)搬移功能和HDLC物理層基本處理,例如發(fā)起DMA請(qǐng)求、實(shí)現(xiàn)源外設(shè)到HDLC模塊數(shù)據(jù)搬移、HDLC基本處理流程、實(shí)現(xiàn)HDLC模塊到目的外設(shè)數(shù)據(jù)搬移??偩€接口模塊46連接先進(jìn)高性能總線,用于提供HDLC協(xié)議的業(yè)務(wù)數(shù)據(jù)進(jìn)出通道,其中下行HDLC處理之前數(shù)據(jù)輸入或處理之后數(shù)據(jù)輸出、上行HDLC處理之前數(shù)據(jù)輸入或處理之后數(shù)據(jù)輸出都通過總線接口模塊46。
本發(fā)明所述的HDLC處理包括將輸入的原始數(shù)據(jù)轉(zhuǎn)換為HDLC幀和/或?qū)⑤斎氲腍DLC幀轉(zhuǎn)換為原始數(shù)據(jù)。
如圖5所示,是圖4中HDLC處理通道44的結(jié)構(gòu)框圖。HDLC處理通道44包括有核心控制模塊442以及核心處理模塊443。
核心控制模塊442用于提供DMA請(qǐng)求響應(yīng)或中斷上報(bào)的接口,同時(shí)提供訪問AHB總線的數(shù)據(jù)訪問接口,其包括輸入控制模塊和輸出控制模塊,其中輸入控制模塊和輸出控制模塊分別與核心處理模塊443連接。在搬移開始之前,核心控制模塊442將申請(qǐng)AHB總線傳輸中止請(qǐng)求和正常的AHB總線傳輸請(qǐng)求、以及各類AHB傳輸參數(shù),輸出給總線接口模塊45;在數(shù)據(jù)搬移的過程,如果核心處理模塊443空閑,核心控制模塊442通過輸入控制模塊將源外設(shè)數(shù)據(jù)讀入核心處理模塊443進(jìn)行處理;核心控制模塊442還通過輸出控制模塊將經(jīng)由核心處理模塊443處理完成的數(shù)據(jù)輸出到目的外設(shè);在搬移結(jié)束之后,核心控制模塊442將DMA請(qǐng)求清除信號(hào)輸出給CPU。核心控制模塊442還在搬移過程之中將傳輸錯(cuò)誤中斷信號(hào)或傳輸結(jié)束中斷信號(hào),輸出給CPU。
核心處理模塊443用于完成HDLC基本功能,包括CRC生成和校驗(yàn)、透明化處理、幀標(biāo)志序列的添加或刪除等。如圖6所示,核心處理模塊443包括有依次連接的完成FCS計(jì)算和校驗(yàn)的FCS模塊、完成透明化處理(零插入和零刪除)的透明化處理模塊以及完成幀標(biāo)志序列插入和刪除的標(biāo)志序列處理模塊。
其中,F(xiàn)CS模塊用于FCS的計(jì)算,F(xiàn)CS計(jì)算的范圍包括地址字段、控制字段以及未透明化處理的信息字段。透明化處理模塊用于在發(fā)送端發(fā)送連續(xù)5個(gè)“1”之后插入1個(gè)“0”,在接收端連續(xù)接收到5個(gè)“1”刪除后面的那個(gè)“0”;透明化處理的范圍包括地址字段、控制字段、信息字段、幀校驗(yàn)序列。從而在一個(gè)HDLC幀中,僅有首尾存在7E。標(biāo)志序列處理模塊用于在HDLC幀間隙進(jìn)行幀標(biāo)志序列(0X7E)的插入。
核心處理模塊443在發(fā)送HDLC幀時(shí),首先由FCS模塊對(duì)地址字段、控制字段以及未透明化處理的信息字段進(jìn)行CRC校驗(yàn),并將生成的校驗(yàn)序列放入FCS字段(即對(duì)發(fā)送數(shù)據(jù)逐位做CRC計(jì)算并把計(jì)算結(jié)果附在FCS字段);然后通過透明化處理模塊將上述生成的數(shù)據(jù)進(jìn)行透明化處理,即在連續(xù)發(fā)送5個(gè)”1”之后插入1個(gè)”0”, 透明化處理的范圍包括地址字段、控制字段、信息字段和FCS字段,從而在一幀HDLC數(shù)據(jù)中,除了首尾有7E外,其他地方都不應(yīng)該出現(xiàn)7E字符;最后通過標(biāo)志序列處理模塊在HDLC幀間隙插入幀標(biāo)志序列(0X7E)。
核心處理模塊443在接收HDLC幀時(shí),首先通過標(biāo)志序列處理模塊進(jìn)行幀定界,即去除幀標(biāo)志序列(0X7E);然后通過透明化處理模塊對(duì)取出幀標(biāo)志序列的數(shù)據(jù)進(jìn)行透明化處理,即連續(xù)接收到5個(gè)”1”刪除后面的那個(gè)”0”,透明化處理的范圍包括地址字段、控制字段、信息字段和FCS字段;最后通過FCS模塊進(jìn)行FCS刪除,得到原始數(shù)據(jù)。
核心處理模塊443還包括有目的輸出緩沖和源輸入緩沖,其中目的輸出緩沖用于存放處理完畢的接收數(shù)據(jù),等待CPU讀?。辉摧斎刖彌_用于存放沒有處理的發(fā)送數(shù)據(jù),準(zhǔn)備等待進(jìn)行HDLC處理。在本實(shí)施例中,源輸入緩沖和目的輸出緩沖都位于外部存儲(chǔ)單元中,各被劃分為32塊,每塊2KB,每個(gè)數(shù)據(jù)塊記錄1個(gè)HDLC幀。
核心控制模塊442為輸入緩沖和輸出緩沖各自維護(hù)1個(gè)32Bit狀態(tài)寄存器。輸入緩沖狀態(tài)寄存器記錄32個(gè)數(shù)據(jù)緩沖的狀態(tài)信息,顯示CPU接收緩沖的歸屬狀態(tài)“0”HDLC擁有數(shù)據(jù)緩沖控制權(quán),可寫入收到的數(shù)據(jù);“1”CPU擁有數(shù)據(jù)緩沖控制權(quán),可讀取收到的數(shù)據(jù)。CPU在讀完1個(gè)緩沖的數(shù)據(jù)后,需要對(duì)相應(yīng)的緩沖標(biāo)志位清0,以便HDLC進(jìn)行寫。在對(duì)每個(gè)寄存器的寫操作中,只能將要清0的位設(shè)置為0,其他位設(shè)置為1。在本實(shí)施例中,緩沖必須按順序讀,即只有在緩沖0讀完以后才能讀緩沖1,依次類推。
輸出緩沖狀態(tài)寄存器記錄32個(gè)數(shù)據(jù)緩沖的狀態(tài)信息,顯示CPU發(fā)送緩沖的歸屬狀態(tài)“0”表示CPU擁有數(shù)據(jù)緩沖控制權(quán),可寫入要發(fā)送的HDLC數(shù)據(jù);“1”表示HDLC擁有數(shù)據(jù)緩沖控制權(quán),可啟動(dòng)HDLC數(shù)據(jù)發(fā)送。當(dāng)HDLC發(fā)送完一個(gè)緩沖的數(shù)據(jù)后,會(huì)自動(dòng)將對(duì)應(yīng)的緩沖標(biāo)志位清0,以便CPU進(jìn)行寫。CPU在完成一個(gè)緩沖的寫操作后,需要將相應(yīng)位置1。在對(duì)寄存器的寫操作中,只能將要設(shè)1的位設(shè)置為1,其他位設(shè)置為0。同樣該處的緩沖也必須按順序?qū)?。在核心控制模塊442進(jìn)行數(shù)據(jù)搬移的時(shí)候,如果核心處理模塊443的源輸入緩沖為空,則核心控制模塊442的輸入控制模塊將源外設(shè)數(shù)據(jù)讀入核心處理模塊443進(jìn)行處理;如果核心處理模塊443的目的輸出緩沖滿,則核心控制模塊442的輸出控制模塊將核心處理模塊443目的輸出緩沖的數(shù)據(jù)輸出到目的外設(shè)。
為方便控制,在本實(shí)施例中,如圖5所示,HDLC處理通道44還包括有參數(shù)配置模塊441。參數(shù)配置模塊441用于提供配置接口,所有的參數(shù)配置或狀態(tài)回讀都經(jīng)由該參數(shù)配置模塊441完成。參數(shù)配置模塊441將來自CPU的配置參數(shù)解析之后,分配給核心控制模塊442和核心處理模塊443,同時(shí)收集匯總來自核心控制模塊442和核心處理模塊443的狀態(tài)變化,以備CPU回讀之需。
如圖4所示,為實(shí)現(xiàn)較大數(shù)據(jù)量的處理,在本發(fā)明中,HDLC處理通道44還可包括有多個(gè),而HDLC模塊還包括有配置編程接口41(Ahb_Slave)、仲裁模塊(Ahb_Arbiter)45、同步模塊(Req_Sync)42以及匯總模塊(Rsp_Route)43。
配置編程接口41用于提供CPU配置編程接口,其將HDLC配置參數(shù)解析、分配到各個(gè)獨(dú)立的HDLC處理通道44,同時(shí)將各個(gè)獨(dú)立的HDLC處理通道44信息回讀、匯總后上報(bào)CPU。仲裁模塊45用于按照固定優(yōu)先級(jí)或輪循等仲裁算法,在多個(gè)HDLC處理通道44之間進(jìn)行仲裁,以選擇特定HDLC處理通道,授予其AHB總線訪問控制權(quán)。
同步模塊42用于對(duì)DMA搬移請(qǐng)求信號(hào)(hdlc_b/sreq)進(jìn)行同步化處理(鎖存2個(gè)時(shí)鐘周期),并提供DMA請(qǐng)求接口以將來自源或目的外設(shè)的DMA(Direct Memory Access,直接存儲(chǔ)器訪問)請(qǐng)求分配到各個(gè)獨(dú)立通道。同步模塊42可為20個(gè)外設(shè)提供DMA搬移請(qǐng)求信號(hào),用于DMA搬移請(qǐng)求,其為每個(gè)外設(shè)提供了4種DMA請(qǐng)求信號(hào)輸入,分別為·組(burst)傳輸請(qǐng)求信號(hào)(hdlc_breq),該信號(hào)引發(fā)一次組傳輸,組長度預(yù)先設(shè)定;·單次傳輸請(qǐng)求信號(hào)(hdlc_sreq),該信號(hào)引發(fā)一次單次傳輸,即從/向外設(shè)讀取/寫入1個(gè)數(shù)據(jù)。
·最后一次組傳輸請(qǐng)求信號(hào)(hdlc_lbreq)。
·最后一次單次傳輸請(qǐng)求信號(hào)(hdlc_lsreq)。
匯總模塊41用于將來自各個(gè)獨(dú)立通道的DMA清除響應(yīng)(hdlc_clrX(X=0~19))、DMA傳輸結(jié)束響應(yīng)(hdlc_TcY(Y=0~19))和中斷上報(bào)響應(yīng)(hdlc_IntZ(Z=0~19))匯總,得到統(tǒng)一的DMA清除響應(yīng)(hdlc_clr)和中斷上報(bào)響應(yīng)(hdlc_int)輸出。其中·DMA清除響應(yīng)信號(hào)或確認(rèn)信號(hào)用于應(yīng)答外設(shè)的DMA請(qǐng)求信號(hào);·DMA傳輸結(jié)束響應(yīng)信號(hào)用于表示整個(gè)數(shù)據(jù)塊的傳輸已結(jié)束;·HDLC中斷上報(bào)響應(yīng)信號(hào)通知CPU此時(shí)HDLC檢測到某類中斷;CPU可以通過查詢中斷狀態(tài)寄存器確定中斷源或中斷類型。
如圖7所示,核心處理模塊442的一個(gè)輸入緩沖(或輸出緩沖)包括有長度域、狀態(tài)域和有效數(shù)據(jù)域。其中長度域?yàn)?個(gè)字節(jié),表示HDLC幀數(shù)據(jù)有多少字節(jié)(除去長度域、狀態(tài)域的有效字節(jié),不包括FCS);狀態(tài)域?yàn)?個(gè)字節(jié),指示幀錯(cuò)誤信息,標(biāo)志位都是1位。在標(biāo)志序列01111110之間的字節(jié)數(shù)超過2K-4字節(jié)的HDLC幀定義為過長;在標(biāo)志序列01111110之間的字節(jié)數(shù)小于4Byte的幀定義為過短;對(duì)于來自CPU的輸入,狀態(tài)域?yàn)槿?。有效數(shù)據(jù)域是HDLC幀的一個(gè)子集,包括地址、控制和信息域。
當(dāng)然,本發(fā)明的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置中,HDLC處理通道也可通過其他方式與外設(shè)或CPU連接(例如僅通過CPU接口等),并實(shí)現(xiàn)數(shù)據(jù)的DMA搬移和HDLC處理。
如圖8所示,為本發(fā)明實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置進(jìn)行數(shù)據(jù)搬移的流程圖。
步驟S81HDLC模塊進(jìn)行數(shù)據(jù)的輸入或輸出,該搬移可以是組傳輸方式或者單次傳輸方式。當(dāng)HDLC模塊進(jìn)行外設(shè)和外設(shè)之間或者外設(shè)和外部存儲(chǔ)單元之間的數(shù)據(jù)搬移時(shí),DMA數(shù)據(jù)搬移由來自外設(shè)的DMA搬移請(qǐng)求發(fā)起,HDLC模塊接收到來自外設(shè)的DMA搬移請(qǐng)求后進(jìn)行數(shù)據(jù)搬移;HDLC模塊進(jìn)行外設(shè)存儲(chǔ)單元和外部存儲(chǔ)單元之間的數(shù)據(jù)搬移時(shí),HDLC模塊自行完成數(shù)據(jù)輸入和輸出。
步驟S82HDLC模塊每完成一次組傳輸或單次傳輸數(shù)據(jù)搬移后,通知外設(shè)本次組傳輸或單次傳輸數(shù)據(jù)搬移完畢(進(jìn)行外設(shè)間或者外設(shè)與外部存儲(chǔ)單元間的數(shù)據(jù)搬移時(shí)),或者自動(dòng)對(duì)配置傳輸長度遞減1(進(jìn)行外設(shè)存儲(chǔ)單元和外部存儲(chǔ)單元間的數(shù)據(jù)搬移時(shí))。
步驟S83在全部數(shù)據(jù)搬移結(jié)束之后,HDLC模塊通過中斷上報(bào)CPU,釋放本次傳輸占用的DMA通道。
在進(jìn)行外設(shè)間或者外設(shè)與外部存儲(chǔ)單元間的數(shù)據(jù)搬移時(shí),HDLC模塊還通知外設(shè)本次數(shù)據(jù)搬移完畢;而在進(jìn)行外設(shè)存儲(chǔ)單元和外部存儲(chǔ)單元間的數(shù)據(jù)搬移時(shí),當(dāng)配置傳輸長度遞減為0時(shí)表明全部數(shù)據(jù)搬移結(jié)束。
如圖9所示,為HDLC模塊在發(fā)送數(shù)據(jù)時(shí)進(jìn)行數(shù)據(jù)轉(zhuǎn)換的流程圖。
步驟S91當(dāng)用DLC發(fā)送數(shù)據(jù)幀在存儲(chǔ)單元準(zhǔn)備完畢,HDLC模塊從指定的存儲(chǔ)單元讀取HDLC幀數(shù)據(jù),進(jìn)行FCS處理、透明化處理和幀標(biāo)志插入處理,直到數(shù)據(jù)全部讀完;步驟S92HDLC模塊發(fā)送1個(gè)用DLC幀數(shù)據(jù)之后,通過中斷或者軟件查詢的方式與軟件交互,通知某個(gè)HDLC幀已經(jīng)發(fā)送完畢。
如圖10所示,為HDLC模塊在接收數(shù)據(jù)時(shí)進(jìn)行數(shù)據(jù)轉(zhuǎn)換的流程圖。
步驟S101外設(shè)(SPI、UART)通過驅(qū)動(dòng)DMA搬移請(qǐng)求信號(hào),通知HDLC模塊有數(shù)據(jù)輸入;步驟S102HDLC模塊從外設(shè)將數(shù)據(jù)讀入,然后對(duì)讀入數(shù)據(jù)進(jìn)行幀標(biāo)志檢測、透明化處理(連續(xù)5個(gè)之后自動(dòng)零刪除)、FCS處理(CRC校驗(yàn)處理),最后將處理后數(shù)據(jù)寫入指定存儲(chǔ)單元,直到接收處理完1個(gè)完整的HDLC幀;步驟S103HDLC模塊在接收完1個(gè)HDLC幀之后,通過中斷與CPU交互,通知CPU讀取已處理完畢的HDLC幀。
CPU在讀取完畢存儲(chǔ)單元的HDLC幀之后,通知HDLC模塊HDLC接收數(shù)據(jù)幀已經(jīng)在存儲(chǔ)單元讀取完畢。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制HDLC的裝置,其特征在于,包括用于與外設(shè)交互的總線接口模塊;與所述總線接口模塊連接的HDLC處理通道,所述HDLC處理通道包括有核心處理模塊以及核心控制模塊,所述核心控制模塊接收源外設(shè)的DMA搬移請(qǐng)求信號(hào),控制核心處理模塊通過總線接口模塊從所述源外設(shè)讀取數(shù)據(jù)并進(jìn)行HDLC處理,并在核心處理模塊處理完成后通知所述目的外設(shè)或CPU讀取處理完成的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置,其特征在于,所述總線接口模塊通過先進(jìn)高性能總線連接到外設(shè)。
3.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置,其特征在于,所述裝置還包括配置編程接口,所述HDLC處理通道通過配置編程接口接收來自CPU的配置參數(shù)并向CPU上報(bào)狀態(tài)變化。
4.根據(jù)權(quán)利要求3所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置,其特征在于,所述HDLC處理通道包括有參數(shù)配置模塊,所述參數(shù)配置模塊解析所述配置編程接口發(fā)送的配置參數(shù)并分配給核心控制模塊和核心處理模塊,同時(shí)所述參數(shù)配置模塊還匯總來自核心控制模塊和核心處理模塊的狀態(tài)變化,并通過所述配置編程接口供CPU回讀。
5.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置,其特征在于,所述核心處理模塊包括有依次連接的用于FCS計(jì)算和校驗(yàn)的FCS模塊、用于透明化處理的透明化處理模塊、用于幀標(biāo)志序列插入和刪除的標(biāo)志序列處理模塊。
6.根據(jù)權(quán)利要求5所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置,其特征在于,所述核心處理模塊還包括有用于存放處理完畢的接收數(shù)據(jù)的目的輸出緩沖和用于存放沒有處理的發(fā)送數(shù)據(jù)的源輸入緩沖。
7.根據(jù)權(quán)利要求6所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置,其特征在于,所述核心控制模塊包括輸入控制模塊,用于在數(shù)據(jù)搬移過程中所述源輸入緩沖為空時(shí)將源外設(shè)數(shù)據(jù)讀入核心處理模塊進(jìn)行處理;輸出控制模塊,用于在所述目的輸出緩沖滿時(shí)將所述目的輸出緩沖的數(shù)據(jù)輸出到目的外設(shè)的輸出控制模塊;其中所述輸入控制模塊和輸出控制模塊分別與核心處理模塊連接。
8.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置,其特征在于,當(dāng)所述裝置包括多個(gè)HDLC處理通道時(shí),所述裝置還包括有仲裁模塊,所述多個(gè)HDLC處理通道經(jīng)由仲裁模塊連接到總線接口模塊,所述仲裁模塊用于使用仲裁算法在多個(gè)HDLC處理通道之間選擇特定HDLC處理通道進(jìn)行總線訪問。
9.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置,其特征在于,所述裝置還包括有接收源外設(shè)或目的外設(shè)的DMA請(qǐng)求并將所述DMA請(qǐng)求分配到各個(gè)HDLC處理通道的同步模塊。
10.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置,其特征在于,所述核心控制模塊還包括有根據(jù)來自同步模塊的DMA請(qǐng)求產(chǎn)生DMA請(qǐng)求響應(yīng)或中斷上報(bào)的響應(yīng)接口,所述響應(yīng)接口在核心處理模塊完成數(shù)據(jù)轉(zhuǎn)換后發(fā)送DMA請(qǐng)求清除信號(hào)。
11.根據(jù)權(quán)利要求10所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置,其特征在于,所述裝置還包括將來自各HDLC處理通道的DMA清除響應(yīng)和中斷上報(bào)響應(yīng)輸出的匯總模塊。
12.一種實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制HDLC的方法,其特征在于,包括以下步驟(a)接收源外設(shè)的DMA搬移請(qǐng)求信號(hào)從源外設(shè)讀取數(shù)據(jù);(b)對(duì)所述讀取的數(shù)據(jù)進(jìn)行HDLC處理;(c)在處理完讀取數(shù)據(jù)后通知目的外設(shè)或CPU讀取已處理完畢數(shù)據(jù)。
13.根據(jù)權(quán)利要求12所述的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的方法,其特征在于,所述步驟(b)中HDLC處理包括包括幀標(biāo)志檢測、透明化處理、FCS處理。
全文摘要
本發(fā)明涉及一種實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的裝置,包括有用于通過先進(jìn)高性能總線與外設(shè)交互的總線接口模塊和與所述總線接口模塊連接的HDLC處理通道,所述HDLC處理通道包括有核心處理模塊以及核心控制模塊,所述核心控制模塊根據(jù)外設(shè)的DMA搬移請(qǐng)求信號(hào)控制核心處理模塊通過總線接口模塊從外設(shè)讀取數(shù)據(jù)并進(jìn)行HDLC處理、并在核心處理模塊處理完成后通知相關(guān)外設(shè)或CPU讀取處理完成的數(shù)據(jù)。本發(fā)明還提供一種對(duì)應(yīng)的實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制的方法。本發(fā)明通過在HDLC處理中提供DMA數(shù)據(jù)搬移功能,減輕了CPU運(yùn)行負(fù)荷,節(jié)省了CPU處理資源。
文檔編號(hào)H04L29/08GK1984148SQ200610060670
公開日2007年6月20日 申請(qǐng)日期2006年5月15日 優(yōu)先權(quán)日2006年5月15日
發(fā)明者陳東斌, 吳奇祥 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1