專利名稱:異步通信控制器及其控制方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及一種異步通信控制器及其控制方法,特別涉及因應(yīng)多種應(yīng)用環(huán)境可 進(jìn)行配置的一種以數(shù)據(jù)幀形式進(jìn)行信息通信的通信控制器及其數(shù)據(jù)傳輸和通信控制方 法。
背景技術(shù):
現(xiàn)有的通信控制器及通信方式,主要存在以下三方面的問(wèn)題
一是目前存在的通信控制器均只支持下述通信方式其中的一種,不能動(dòng)態(tài)的在這些 通信方式中轉(zhuǎn)換。 一對(duì)一雙工通信模式,即通信只在兩個(gè)終端之間發(fā)生,是大多數(shù)通信 控制器的通信模式。 一對(duì)多單工通信模式是一個(gè)終端向多個(gè)終端發(fā)送相同數(shù)據(jù)、多個(gè)終 端接收的單向通信模式。多對(duì)一單工通信模式是多個(gè)終端向同一個(gè)終端發(fā)送數(shù)據(jù)、該終 端接收的單向通信模式。 一對(duì)多雙工通信模式是一個(gè)終端向多個(gè)終端發(fā)送相同數(shù)據(jù)且接 收多個(gè)終端發(fā)來(lái)的不同的數(shù)據(jù)。
二是通信應(yīng)用有多幀數(shù)據(jù)和單幀數(shù)據(jù)的不同,還有數(shù)據(jù)包大小的不同,這些不同的 應(yīng)用需求對(duì)通信控制器的要求自然不同。目前的通信控制器只能固定在某一種應(yīng)用上, 應(yīng)用環(huán)境發(fā)生變化時(shí)必須用另一通信控制器替代。
三是當(dāng)數(shù)據(jù)處理方對(duì)接收的數(shù)據(jù)處理能力不足,出I見(jiàn)處理不及時(shí)的情況時(shí),現(xiàn)有通 信控制器有兩種處理策略。 一是后續(xù)數(shù)據(jù)覆蓋先前收到的數(shù)據(jù),這會(huì)造成接收方數(shù)據(jù)丟 失;二是接收方在收到的數(shù)據(jù)未作處理前對(duì)后續(xù)數(shù)據(jù)不作理會(huì),這會(huì)出現(xiàn)接收方對(duì)發(fā)送 方不響應(yīng)或響應(yīng)時(shí)間過(guò)長(zhǎng)的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的在于避免現(xiàn)有技術(shù)的不足之處,提供一種異步通信控制器及其通信控 制方法,以解決目前存在的通信控制器及控制方法通信對(duì)應(yīng)方式單一、對(duì)應(yīng)用環(huán)境的適 應(yīng)單一,不能動(dòng)態(tài)進(jìn)行配置的問(wèn)題。本發(fā)明通過(guò)配置控制單元寄存器能夠支持一對(duì)一雙工通信模式、 一對(duì)多單工通信模式和多對(duì)一單工通信模式、 一對(duì)多雙工通信模式的動(dòng)態(tài) 轉(zhuǎn)換。
本發(fā)明的另一目的在于對(duì)多幀數(shù)據(jù)和單幀數(shù)據(jù)的不同、數(shù)據(jù)包大小的不同應(yīng)用背景, 通過(guò)配置控制單元寄存器即可完成轉(zhuǎn)換,不需要更換硬件就可提供支持的通信控制器。
本發(fā)明還有一目的在于發(fā)送和接收采用隊(duì)列方式,以解決處理和通信間的瓶頸問(wèn)題。 通過(guò)控制單元寄存器使隊(duì)列長(zhǎng)度動(dòng)態(tài)可調(diào),則能根據(jù)具體應(yīng)用的不同而采用不同的緩存 深度,從而避免數(shù)據(jù)丟失和提高響應(yīng)速度。
本發(fā)明的目的可以通過(guò)采用以下技術(shù)方案來(lái)實(shí)現(xiàn) 一種異步通信控制器,采用可配 置的數(shù)據(jù)存儲(chǔ)單元,支持單幀數(shù)據(jù)包、適應(yīng)多種通信方式的多幀數(shù)據(jù)包的快速異步通信, 其主要特點(diǎn)是包括有與CPU (1)聯(lián)通的數(shù)據(jù)包存儲(chǔ)單元(2),控制單元(3)分別與數(shù) 據(jù)包存儲(chǔ)單元(2)、發(fā)送單元(4)、接收單元(5)聯(lián)通,發(fā)送單元(4)通過(guò)通信物理 通道(6)與接收單元(5)聯(lián)通
所述的存儲(chǔ)單元(2)為配置隊(duì)列長(zhǎng)度、配置數(shù)據(jù)包存儲(chǔ)單元大小,支持單幀數(shù)據(jù)包、 多幀數(shù)據(jù)包的快速異步通信;
所述的發(fā)送單元(4)通過(guò)數(shù)據(jù)發(fā)送電路,按照自定義高速異步串行通信控制協(xié)議發(fā) 送存儲(chǔ)單元的數(shù)據(jù);自定義高速異步串行包括線路空閑狀態(tài)(idle,高電平)、起始位(start bit,低電平)、16位數(shù)據(jù)位(databits)和停止位(stopbit,位數(shù)為1),這種格式是由起始 位和停止位來(lái)實(shí)現(xiàn)16位數(shù)據(jù)的同步;
所述的接收單元(5)通過(guò)數(shù)據(jù)接收電路接收數(shù)據(jù),并把數(shù)據(jù)儲(chǔ)存在接收存儲(chǔ)單元;
所述的控制單元(3)按照寄存器設(shè)置的不同控制模式,對(duì)存儲(chǔ)單元(2)、接收單元 (5)和發(fā)送單元(4)進(jìn)行控制和啟動(dòng)。
所述的異步通信控制器,所述的數(shù)據(jù)包存儲(chǔ)單元(2)包括發(fā)送存儲(chǔ)單元(2-0)和 接收存儲(chǔ)單元(2-1);其中接收存儲(chǔ)單元是通過(guò)數(shù)據(jù)接收模塊按照通信控制協(xié)議接收數(shù) 據(jù)并儲(chǔ)存數(shù)據(jù);發(fā)送單元,通過(guò)數(shù)據(jù)發(fā)送模i央按照通信控制協(xié)議發(fā)送存儲(chǔ)單元的數(shù)據(jù)。 所述的數(shù)據(jù)包存儲(chǔ)單元(2)存儲(chǔ)空間分成六段,每段由4K字節(jié)的接收存儲(chǔ)空間和4K 字節(jié)的發(fā)送存儲(chǔ)空間組成,存儲(chǔ)空間地址不重疊,每段存儲(chǔ)空間對(duì)應(yīng)各自的發(fā)送,莫塊和 接收模塊;所述的數(shù)據(jù)包存儲(chǔ)單元(2)通過(guò)并行總線與外部處理器總線接口 (1-1)連 接,雙向讀寫,實(shí)現(xiàn)數(shù)據(jù)不同位數(shù)的轉(zhuǎn)換;地址半字對(duì)齊即按照16位對(duì)齊要求為2的倍
6數(shù)。
所述的異步通信控制器,所述的通信控制器存儲(chǔ)單元(2)還包括有隊(duì)列寄存器組 (2-2)、控制寄存器組(2-3)、狀態(tài)寄存器組(24)、收發(fā)緩存區(qū)(2-0、 2-1),所述的 收發(fā)緩存區(qū)(2-0、 2-1)與隊(duì)列寄存器組(2-2)、控制寄存器組(2-3)、狀態(tài)寄存器組(24) 存儲(chǔ)空間地址不重疊,每段收發(fā)存儲(chǔ)空間對(duì)應(yīng)各自的發(fā)送模塊和接收模塊。隊(duì)列寄存器 組(2-2)、控制寄存器組(2-3)、狀態(tài)寄存器組(24)占用存儲(chǔ)單元(2)內(nèi)存單元,和 收發(fā)緩存區(qū)(2-0、 2-1)的存儲(chǔ)訪問(wèn)接口是一致的。這些寄存器組配置的值決定控制單 元(3)的工作方式。外部處理器通過(guò)訪問(wèn)控制單元的狀態(tài)寄存器,可獲取存儲(chǔ)單元存儲(chǔ) 空間狀態(tài),發(fā)送單元和接收單元工作狀態(tài),接收數(shù)據(jù)包數(shù)據(jù)校驗(yàn)狀態(tài)。外部處理器通過(guò) 訪問(wèn)控制單元的控制寄存器,改變控制器的不同發(fā)送模式和通道,啟動(dòng)和停止發(fā)送單元 和接收單元工作。
所述的異步通信控制器,所述的接收單元(5)包含有多個(gè)接收模塊,每個(gè)接收模塊 對(duì)應(yīng)各自的接收存儲(chǔ)單元空間;所述的發(fā)送單元(4)包含有多個(gè)發(fā)送模塊,每個(gè)發(fā)送模 塊對(duì)應(yīng)各自的發(fā)送(接收)存儲(chǔ)單元空間。
所述的異步通信控制器,所述的接收單元(5)的多個(gè)接收模塊和所述的發(fā)送單元(4) 的多個(gè)發(fā)送模塊對(duì)應(yīng),通過(guò)所述的控制單元(3)的控制,實(shí)現(xiàn)一路數(shù)據(jù)通過(guò)多個(gè)發(fā)送單 元并行發(fā)送,或多路數(shù)據(jù)通過(guò)一個(gè)發(fā)送單元順序發(fā)送,或多路數(shù)據(jù)通過(guò)各自發(fā)送模塊發(fā) 送。
所述的異步通信控制器,所述的控制單元(3)包括有與所述的接收單元(5)連接 的接收控制模塊(3-l-2),所述的接收控制模塊G-l-2)分別與接收長(zhǎng)度識(shí)別模塊(3-l-l)、 接收狀態(tài)模塊(3-1-3)、解析數(shù)據(jù)幀模塊(3-1-4)相連。
所述的異步通信控制器,所述的控制單元(3)還包括有與所述的發(fā)送單元(4)連 接的發(fā)送控制模塊(3-2-2),所述的發(fā)送控制模塊(3-2-2)分別與發(fā)送長(zhǎng)度識(shí)別模塊 (3-2-1)、發(fā)送狀態(tài)模塊(3-2-3)、填充數(shù)據(jù)幀模塊(3-2-4)相連。
所述的異步通信控制器的數(shù)據(jù)傳輸方法,其主要特點(diǎn)是以自定義高速異步串行通信 控制協(xié)議發(fā)送存儲(chǔ)單元的數(shù)據(jù)時(shí),發(fā)送模塊把數(shù)據(jù)包嵌套在通信數(shù)據(jù)幀中,包含通信控 制器ID和數(shù)據(jù)校驗(yàn)碼,由支持多種電平標(biāo)準(zhǔn)(LVDS、 LVTTL、 LVCEL)的高速串行總線,通過(guò)光收發(fā)器收發(fā)數(shù)據(jù)。
按隊(duì)列發(fā)送時(shí),隊(duì)列長(zhǎng)度和數(shù)據(jù)塊大小默認(rèn)為缺省值,還可以根據(jù)具體應(yīng)用對(duì)相應(yīng) 寄存器進(jìn)行設(shè)置實(shí)現(xiàn)動(dòng)態(tài)配置。 一方面通過(guò)隊(duì)列可以降低對(duì)響應(yīng)時(shí)間的嚴(yán)格要求,減小 數(shù)據(jù)拷貝復(fù)制任務(wù)量;另一方面如果通信的單幀數(shù)據(jù)長(zhǎng)度很大,可以調(diào)大數(shù)據(jù)塊并且減 小隊(duì)列長(zhǎng)度以適應(yīng)大數(shù)據(jù)幀的傳遞。另外,本通信控制方法通過(guò)對(duì)控制寄存器組中偏移 寄存器的配置能夠支持多幀數(shù)據(jù)包的收發(fā);通過(guò)通信模式的設(shè)置可支持一對(duì)一、 一對(duì)多、 多對(duì)一多種通信模式間的轉(zhuǎn)換。
所述的異步通信控制器的數(shù)據(jù)傳輸方法,所述的通信數(shù)據(jù)幀包括幀頭標(biāo)識(shí)、幀模式、 數(shù)據(jù)包長(zhǎng)度、數(shù)據(jù)、數(shù)據(jù)校驗(yàn)碼和幀尾標(biāo)識(shí)。
發(fā)送應(yīng)用層把要發(fā)送的數(shù)據(jù)包緩存入發(fā)送隊(duì)列;發(fā)送方從發(fā)送隊(duì)列中取數(shù)據(jù)塊,執(zhí) 行校驗(yàn)算法并在數(shù)據(jù)塊尾部附加上校驗(yàn)信息,然后嵌入通信幀中發(fā)送;接收方從接收隊(duì) 列中取數(shù)據(jù)塊并進(jìn)行校驗(yàn);接收校驗(yàn)通過(guò)去除通信幀附加信息并通知應(yīng)用層進(jìn)行處理, 校驗(yàn)未通過(guò)的則拋棄該數(shù)據(jù)包并報(bào)告校驗(yàn)錯(cuò)誤。
所述的異步通信控制器的數(shù)據(jù)傳輸方法,所述的幀模式包括有幀類型標(biāo)識(shí)、數(shù)據(jù)包 幀數(shù)、幀序號(hào)。
所述的異步通信控制器的通信接收控制方法,其主要特點(diǎn)在于,包括有如下步驟
(1) 準(zhǔn)備工作步驟101系統(tǒng)開(kāi)始工作后,步驟102首先檢測(cè)幀頭0x3C3C,如果符 合則進(jìn)行幀校驗(yàn)(對(duì)幀進(jìn)行校驗(yàn)時(shí),首先判斷幀頭是否0x3C3C、幀尾是否0xC3C3, 中間的數(shù)據(jù)采用CRC16校驗(yàn)是否與數(shù)據(jù)幀中的校驗(yàn)碼一致,違反其中任何一條 即判定為無(wú)效幀。);如果未檢測(cè)到幀頭或幀校驗(yàn)錯(cuò)誤,則進(jìn)入步驟102重新檢測(cè) 幀頭并進(jìn)行幀格式校驗(yàn);如果正確,進(jìn)入步驟103判斷單幀或多幀;
(2) 如果是單幀,則進(jìn)入步驟105,進(jìn)行單幀接收處理后,進(jìn)入步驟107判斷中斷模 式;
(3) 如果是多幀,則進(jìn)入步驟104,進(jìn)行多幀接收處理后,進(jìn)入步驟106判斷尾幀, 如果不是尾幀,則進(jìn)入步驟102重新判斷幀頭;如果是尾幀,則進(jìn)入步驟107判 斷中斷模式;
(4) 如果是中斷模式,進(jìn)入步驟108觸發(fā)中斷,完成后,則進(jìn)入步驟102重新判斷幀 頭;如果不是中斷模式,則進(jìn)入步驟102重新判斷幀頭。外部處理器與本通信控制器交互, 一方面外部處理器通過(guò)訪問(wèn)控制單元的狀態(tài)寄存 器,可獲取存儲(chǔ)單元存儲(chǔ)空間狀態(tài),發(fā)送單元和接收單元工作狀態(tài),接收數(shù)據(jù)包數(shù)據(jù)校 驗(yàn)狀態(tài);夕卜部處理器通過(guò)設(shè)置控制單元的控制寄存器,改變控制器的不同發(fā)送模式和通 道,啟動(dòng)和停止發(fā)送單元和接收單元工作;外部處理器通過(guò)存儲(chǔ)單元可以設(shè)置發(fā)送數(shù)據(jù) 包,也可以讀取接收到的數(shù)據(jù)包。如果通信控制器的控制單元中觸發(fā)寄存器設(shè)置為中斷 方式,則在發(fā)送完或接收完數(shù)據(jù)包的時(shí)候,通信控制器會(huì)通過(guò)中斷方式通知外部處理器 進(jìn)行下一步處理;否則為輪詢方式,即外部處理器不斷査詢通信控制器控制單元的相關(guān) 寄存器進(jìn)而決定下一步處理。
所述的異步通信控制器的通信發(fā)送控制方法,其主要特點(diǎn)在于,包括有如下步驟
(1) 準(zhǔn)備工作步驟201系統(tǒng)開(kāi)始工作后,步驟202判斷是否啟動(dòng)發(fā)送;如果否,則 進(jìn)入步驟202重新判斷是否啟動(dòng)發(fā)送;如果是,則進(jìn)入步驟203填充通信幀;
(2) 步驟203填充通信幀完成后,進(jìn)入步驟204進(jìn)行發(fā)送,發(fā)送完畢后,進(jìn)入下一 輪;應(yīng)用層根據(jù)幀格式配置寄存器(例如長(zhǎng)度寄存器、幀類型寄存器等)填充數(shù) 據(jù)幀;啟動(dòng)發(fā)送時(shí),發(fā)送模塊根據(jù)寄存器的設(shè)置完成通信幀的填充;如果發(fā)送控 制寄存器設(shè)置為隊(duì)列發(fā)送模式,則在數(shù)據(jù)幀發(fā)送完成時(shí)去査詢隊(duì)列中是否還有數(shù) 據(jù)幀需要發(fā)送。
發(fā)送應(yīng)用層把要發(fā)送的數(shù)據(jù)塊緩存入發(fā)送隊(duì)列;發(fā)送方從發(fā)送隊(duì)列中取數(shù)據(jù)塊執(zhí)行 校驗(yàn)算法并在數(shù)據(jù)塊尾部附加上校驗(yàn)信息,然后嵌入通信幀中發(fā)送;接收方從接收隊(duì)列 中取數(shù)據(jù)塊并進(jìn)行校驗(yàn);接收校驗(yàn)通過(guò)的去除通信幀附加信息并通知應(yīng)用層進(jìn)行處理, 校驗(yàn)未通過(guò)的則拋棄該數(shù)據(jù)包并報(bào)告校驗(yàn)錯(cuò)誤。所述的隊(duì)列長(zhǎng)度和數(shù)據(jù)塊大小不僅有缺 省值,還可以根據(jù)具體應(yīng)用對(duì)相應(yīng)寄存器進(jìn)行設(shè)置實(shí)現(xiàn)動(dòng)態(tài)配置。 一方面通過(guò)隊(duì)列可以 降低對(duì)響應(yīng)時(shí)間的嚴(yán)格要求,減小數(shù)據(jù)拷貝復(fù)制任務(wù)量;另一方面如果通信的單幀數(shù)據(jù) 長(zhǎng)度很大,可以調(diào)大數(shù)據(jù)塊并且減小隊(duì)列長(zhǎng)度以適應(yīng)大數(shù)據(jù)幀的傳遞。另外,本通信控 制方法通過(guò)偏移寄存器的設(shè)置能夠支持多幀數(shù)據(jù)包的收發(fā);通過(guò)通信模式寄存器的設(shè)置 可支持"一對(duì)一"、"一對(duì)多"、"多對(duì)一"等多種通信模式間的轉(zhuǎn)換。
本發(fā)明的有益效果是與現(xiàn)有技術(shù)比較,本發(fā)明解決了目前存在的通信控制器及控 制方法通信對(duì)應(yīng)方式單一、對(duì)應(yīng)用環(huán)境的適應(yīng)單一,不能動(dòng)態(tài)進(jìn)行更改的問(wèn)題。通過(guò)偏移寄存器的設(shè)置能夠支持多幀數(shù)據(jù)包的收發(fā);通過(guò)通信模式寄存器的設(shè)置可支持"一對(duì) 一"、"一對(duì)多"、"多對(duì)一"等多種通信模式間的轉(zhuǎn)換;通過(guò)調(diào)整隊(duì)列深度和數(shù)據(jù)塊大小 可以調(diào)整外部處理器響應(yīng)時(shí)間要求,也可以適應(yīng)大數(shù)據(jù)幀的傳遞。
-
圖1為通信控制器總體結(jié)構(gòu)示意圖。
圖2為通信控制器內(nèi)部結(jié)構(gòu)示意圖。
圖3為通信數(shù)據(jù)幀示意圖。
圖4為通信控制器接收控制流程圖。
圖5為通信控制器發(fā)送控制流程圖。
具體實(shí)施例方式
以下結(jié)合附圖,對(duì)本發(fā)明所示最佳實(shí)施例之一進(jìn)行詳細(xì)說(shuō)明。以下所說(shuō)明的是本發(fā) 明的實(shí)施例,但本發(fā)明不限于以下的說(shuō)明。
見(jiàn)圖1, 一種異步通信控制器,采用可配置的數(shù)據(jù)存儲(chǔ)單元,支持單幀數(shù)據(jù)包、適
應(yīng)多種通信方式的多幀數(shù)據(jù)包的快速異步通信,其主要特點(diǎn)是包括有與CPU1聯(lián)通的數(shù) 據(jù)包存儲(chǔ)單元2,控制單元3分別與數(shù)據(jù)包存儲(chǔ)單元2、發(fā)送單元4、接收單元5聯(lián)通, 發(fā)送單元4通過(guò)通信物理通道6與接收單元5聯(lián)通
所述的存儲(chǔ)單元2可配置隊(duì)列長(zhǎng)度、配置數(shù)據(jù)包存儲(chǔ)單元大小,支持單幀數(shù)據(jù)包、 多幀數(shù)據(jù)包的快速異步通信;
所述的發(fā)送單元4通過(guò)數(shù)據(jù)發(fā)送電路,按照自定義高速異步串行通信控制協(xié)議發(fā)送 存儲(chǔ)單元的數(shù)據(jù);自定義高速異步串行包括線路空閑狀態(tài)(idle,高電平)、起始位(start bit,低電平)、16位數(shù)據(jù)位(databits)和停止位(stopbit,位數(shù)為1),這種格式是由起始 位和停止位來(lái)實(shí)現(xiàn)16位數(shù)據(jù)的同步;
所述的接收單元5通過(guò)數(shù)據(jù)接收電路接收數(shù)據(jù),并把數(shù)據(jù)儲(chǔ)存在接收存儲(chǔ)單元;
所述的控制單元3按照寄存器設(shè)置的不同控制模式,對(duì)存儲(chǔ)單元2、接收單元5和 發(fā)送單元4進(jìn)行控制和啟動(dòng)。
外部CPU 1指使用通信控制器進(jìn)行數(shù)據(jù)收發(fā)的通信控制器外部處理器,它和通信控制器存儲(chǔ)單元2之間有總線接口,包括數(shù)據(jù)總線、地址總線和控制總線。存儲(chǔ)單元2內(nèi) 包含數(shù)據(jù)收發(fā)緩存區(qū),同時(shí)也包含控制單元3的寄存器集合和自身的隊(duì)列配置寄存器組。 外部CPU l和控制單元3均可對(duì)這些寄存器進(jìn)行讀寫,以達(dá)到設(shè)置和控制的目的??刂?單元3根據(jù)外部CPU 1設(shè)置的寄存器值控制發(fā)送單元4的發(fā)送以及接收單元5的接收。 在本實(shí)施例中,通信物理通道6采用的是光收發(fā)器件,和發(fā)送單元4、接收單元5間采 用高速串行通信。配合"多對(duì)一"、"一對(duì)多"通信方式,發(fā)送單元4和接收單元5可對(duì) 應(yīng)多個(gè)光收發(fā)器件,即通信物理通道6中有多個(gè)光收發(fā)器件與通信控制器相連接。
見(jiàn)圖2, 一種異步通信控制器,所述的數(shù)據(jù)包存儲(chǔ)單元2包括發(fā)送存儲(chǔ)單元2-0和 接收存儲(chǔ)單元2-1;其中接收存儲(chǔ)單元是通過(guò)數(shù)據(jù)接收模塊按照通信控制協(xié)議接收數(shù)據(jù) 并儲(chǔ)存數(shù)據(jù);發(fā)送單元,通過(guò)數(shù)據(jù)發(fā)送模塊按照通信控制協(xié)議發(fā)送存儲(chǔ)單元的數(shù)據(jù)。所 述的數(shù)據(jù)包存儲(chǔ)單元2存儲(chǔ)空間分成六段,每段由4K字節(jié)的接收存儲(chǔ)空間和4K字節(jié)的 發(fā)送存儲(chǔ)空間組成,存儲(chǔ)空間地址不重疊,每段存儲(chǔ)空間對(duì)應(yīng)各自的發(fā)送模塊和接收模 塊;所述的數(shù)據(jù)包存儲(chǔ)單元2通過(guò)并行總線與外部處理器總線接口 1-1連接,雙向讀寫, 實(shí)現(xiàn)數(shù)據(jù)不同位數(shù)的轉(zhuǎn)換;地址半字對(duì)齊即按照16位對(duì)齊要求為2的倍數(shù)。
所述的異步通信控制器,所述的通信控制器存儲(chǔ)單元2有隊(duì)列寄存器組2-2、控制 寄存器組2-3、狀態(tài)寄存器組24、收發(fā)緩存區(qū)2-0、 2-1,并列設(shè)置。所述的收發(fā)緩存區(qū) 2-0、 2-l與隊(duì)列寄存器組2-2、控制寄存器組2-3、狀態(tài)寄存器組2-4存儲(chǔ)空間地址不重 疊,每段收發(fā)存儲(chǔ)空間對(duì)應(yīng)各自的發(fā)送模塊和接收模塊。隊(duì)列寄存器組2-2、控制寄存 器組2-3、狀態(tài)寄存器組24占用存儲(chǔ)單元2內(nèi)存單元,和收發(fā)緩存區(qū)2-0、 2-1的存儲(chǔ) 訪問(wèn)接口是一致的。這些寄存器組配置的值決定控制單元3的工作方式。外部處理器通 過(guò)訪問(wèn)控帝撣元的狀態(tài)寄存器,可獲取存儲(chǔ)單元存儲(chǔ)空間狀態(tài),發(fā)送單元和接收單元工 作狀態(tài),接收數(shù)據(jù)包數(shù)據(jù)校驗(yàn)狀態(tài)。外部處理器通過(guò)訪問(wèn)控制單元的控制寄存器,改變 控制器的不同發(fā)送模式和通道,啟動(dòng)和停止發(fā)送單元和接收單元工作。
存儲(chǔ)單元2的收發(fā)緩存區(qū)2-0、 2-1對(duì)應(yīng)的存儲(chǔ)空間分成多段,每段由4K字節(jié)的接 收存儲(chǔ)空間和4K字節(jié)的發(fā)送存儲(chǔ)空間組成,存儲(chǔ)空間地址不重疊,每段存儲(chǔ)空間對(duì)應(yīng) 各自的發(fā)送模塊和接收模塊。存儲(chǔ)單元通過(guò)并行總線與外部處理器連接,雙向讀寫,實(shí) 現(xiàn)數(shù)據(jù)不同位數(shù)的轉(zhuǎn)換。每段內(nèi)部的空間布局取決于隊(duì)列寄存器組的設(shè)置。發(fā)送方應(yīng)用層把要發(fā)送的數(shù)據(jù)塊緩存入發(fā)送隊(duì)列;發(fā)送方從發(fā)送隊(duì)列中取數(shù)據(jù)塊執(zhí) 行校驗(yàn)算法并在數(shù)據(jù)塊尾部附加上校驗(yàn)信息,然后嵌入通信幀中通過(guò)高速串行發(fā)送至通 信物理通道6。
接收單元從通信物理通道6接收串行數(shù)據(jù)流并解碼存儲(chǔ)至存儲(chǔ)單元對(duì)應(yīng)隊(duì)列中;接 收方從接收隊(duì)列中取數(shù)據(jù)塊并進(jìn)行校驗(yàn);接收校驗(yàn)一致的,去除通信幀附加信息并通知
應(yīng)用層進(jìn)行處理,校驗(yàn)不一致的則拋棄該數(shù)據(jù)包并報(bào)告校驗(yàn)錯(cuò)誤。如果是多幀數(shù)據(jù)包模
式,則在數(shù)據(jù)包中尾幀接收完畢后才通知應(yīng)用方進(jìn)行處理;在尚未收到尾幀時(shí)收到新數(shù) 據(jù)包中的幀,控制單元會(huì)報(bào)告發(fā)生數(shù)據(jù)覆蓋。
所述的接收單元5包含有多個(gè)接收模塊,每個(gè)接收模塊對(duì)應(yīng)各自的接收存儲(chǔ)單元空 間;所述的發(fā)送單元4包含有多個(gè)發(fā)送模塊,每個(gè)發(fā)送模塊對(duì)應(yīng)各自的發(fā)送存儲(chǔ)單元空 間。
所述的接收單元5的多個(gè)接收模塊和所述的發(fā)送單元4的多個(gè)發(fā)送模塊對(duì)應(yīng),通過(guò) 所述的控制單元3的控制,實(shí)現(xiàn)一路數(shù)據(jù)通過(guò)多個(gè)發(fā)送單元并行發(fā)送,或多路數(shù)據(jù)通過(guò) 一個(gè)發(fā)送單元順序發(fā)送,或多路數(shù)據(jù)通過(guò)各自發(fā)送模塊發(fā)送。
所述的控制單元3包括有與所述的接收單元5連接的接收控制模塊3-1-2,所述的接 收控制模塊3-1-2分別與接收長(zhǎng)度識(shí)別模塊3-1-1、接收狀態(tài)模塊3-1-3、解析數(shù)據(jù)幀模塊 3-M相連。
所述的控制單元3還包括有與所述的發(fā)送單元4連接的發(fā)送控制模塊3-2-2,所述的 發(fā)送控制模塊3-2-2分別與發(fā)送長(zhǎng)度識(shí)別模塊3-2-1、發(fā)送狀態(tài)模塊3-2-3、填充數(shù)據(jù)幀模 塊3-24相連。
見(jiàn)圖3, 一種異步通信控制器的數(shù)據(jù)傳輸方法,以自定義高速異步串行通信控制協(xié) 議發(fā)送存儲(chǔ)單元的數(shù)據(jù)時(shí),發(fā)送模塊把數(shù)據(jù)包嵌套在通信數(shù)據(jù)幀中,包含通信控制器ID 和數(shù)據(jù)校驗(yàn)碼,由支持多種電平標(biāo)準(zhǔn)LVDS或LVTTL或LVCEL的高速串行總線,通過(guò) 光收發(fā)器收發(fā)數(shù)據(jù)。
按隊(duì)列發(fā)送時(shí),隊(duì)列長(zhǎng)度和數(shù)據(jù)塊大小默認(rèn)為缺省值,還可以根據(jù)具體應(yīng)用對(duì)相應(yīng) 寄存器進(jìn)行設(shè)置實(shí)現(xiàn)動(dòng)態(tài)配置。 一方面通過(guò)隊(duì)列可以降低對(duì)響應(yīng)時(shí)間的嚴(yán)格要求,減小 數(shù)據(jù)拷貝復(fù)制任務(wù)量;另一方面如果通信的單幀數(shù)據(jù)長(zhǎng)度很大,可以調(diào)大數(shù)據(jù)塊并且減小隊(duì)列長(zhǎng)度以適應(yīng)大數(shù)據(jù)幀的傳遞。在具體設(shè)計(jì)中,存儲(chǔ)單元容量R肯定是固定的,與 數(shù)據(jù)塊大小D和隊(duì)列長(zhǎng)度L之間的關(guān)系為R=D*L。另外,本通信控制方法通過(guò)對(duì)控制 寄存器組中偏移寄存器的配置能夠支持多幀數(shù)據(jù)包的收發(fā);通過(guò)通信模式的設(shè)置可支持 一對(duì)一、 一對(duì)多、多對(duì)一多種通信模式間的轉(zhuǎn)換。
所述的異步通信控制器的數(shù)據(jù)傳輸方法,所述的通信數(shù)據(jù)幀包括幀頭標(biāo)識(shí)、幀模式、 數(shù)據(jù)包長(zhǎng)度、數(shù)據(jù)、數(shù)據(jù)校驗(yàn)碼和幀尾標(biāo)識(shí)。
發(fā)送應(yīng)用層把要發(fā)送的數(shù)據(jù)包緩存入發(fā)送隊(duì)列;發(fā)送方從發(fā)送隊(duì)列中取數(shù)據(jù)塊,執(zhí) 行校驗(yàn)算法并在數(shù)據(jù)塊尾部附加上校驗(yàn)信息,然后嵌入通信幀中發(fā)送;接收方從接收隊(duì) 列中取數(shù)據(jù)塊并進(jìn)行校驗(yàn);接收校驗(yàn)通過(guò)去除通信幀附加信息并通知應(yīng)用層進(jìn)行處理, 校驗(yàn)未通過(guò)的則拋棄該數(shù)據(jù)包并報(bào)告校驗(yàn)錯(cuò)誤。
所述的異步通信控制器的數(shù)據(jù)傳輸方法,所述的幀模式包括有幀類型標(biāo)識(shí)、數(shù)據(jù)包 幀數(shù)、幀序號(hào)。
見(jiàn)圖4, 一種異步通信控制器的通信接收控制方法,包括有如下步驟
(1) 準(zhǔn)備工作步驟101系統(tǒng)開(kāi)始工作后,步驟102首先檢測(cè)幀頭0x3C3C,如果符 合則進(jìn)行幀校驗(yàn)(對(duì)幀進(jìn)行校驗(yàn)時(shí),首先判斷幀頭是否0x3C3C、幀尾是否0xC3C3, 中間的數(shù)據(jù)采用CRC16校驗(yàn)是否與數(shù)據(jù)幀中的校驗(yàn)碼一致,違反其中任何一條 即判定為無(wú)效幀。);如果未檢測(cè)到幀頭或幀校驗(yàn)錯(cuò)誤,則進(jìn)入步驟102重新檢測(cè) 幀頭并進(jìn)行幀格式校驗(yàn);如果正確,進(jìn)入步驟103判斷單幀或多幀;
(2) 如果是單幀,則進(jìn)入步驟105,進(jìn)行單幀接收處理后,進(jìn)入步驟107判斷中斷模 式;
(3) 如果是多幀,則進(jìn)入步驟104,進(jìn)行多幀接收處理后,進(jìn)入步驟106判斷尾幀, 如果不是尾幀,則進(jìn)入步驟102重新判斷幀頭;如果是尾幀,則進(jìn)入步驟107判 斷中斷模式;
(4) 如果是中斷模式,進(jìn)入步驟108觸發(fā)中斷,完成后,則進(jìn)入步驟102重新判斷幀 頭;如果不是中斷模式,則進(jìn)入步驟102重新判斷幀頭。
外部處理器與本通信控制器交互, 一方面外部處理器通過(guò)訪問(wèn)控制單元的狀態(tài)寄存 器,可獲取存儲(chǔ)單元存儲(chǔ)空間狀態(tài),發(fā)送單元和接收單元工作狀態(tài),接收數(shù)據(jù)包數(shù)據(jù)校 驗(yàn)狀態(tài);外部處理器通過(guò)設(shè)置控制單元的控制寄存器,改變控制器的不同發(fā)送模式和通道,啟動(dòng)和停止發(fā)送單元和接收單元工作外部處理器通過(guò)存儲(chǔ)單元可以設(shè)置發(fā)送數(shù)據(jù) 包,也可以讀取接收到的數(shù)據(jù)包。如果通信控制器的控制單元中觸發(fā)寄存器設(shè)置為中斷 方式,則在發(fā)送完或接收完數(shù)據(jù)包的時(shí)候,通信控制器會(huì)通過(guò)中斷方式通知外部處理器 進(jìn)行下一步處理;否則為輪詢方式,即外部處理器不斷査詢通信控制器控制單元的相關(guān) 寄存器進(jìn)而決定下一步處理。
見(jiàn)圖5, 一種異步通信控制器的通信發(fā)送控制方法,包括有如下步驟--
(1) 準(zhǔn)備工作步驟201系統(tǒng)開(kāi)始工作后,步驟202判斷是否啟動(dòng)發(fā)送;如果否,則 進(jìn)入步驟202重新判斷是否啟動(dòng)發(fā)送;如果是,則進(jìn)入步驟203填充通信幀;
(2) 步驟203填充通信幀完成后,進(jìn)入步驟204進(jìn)行發(fā)送,發(fā)送完畢后,進(jìn)入下一 輪;發(fā)送方應(yīng)用層根據(jù)幀格式配置寄存器(例如長(zhǎng)度寄存器、幀類型寄存器等) 填充數(shù)據(jù)幀;啟動(dòng)發(fā)送時(shí),發(fā)送模塊根據(jù)寄存器的設(shè)置完成通信幀的填充;如果 發(fā)送控制寄存器設(shè)置為隊(duì)列發(fā)送模式,則在數(shù)據(jù)幀發(fā)送完成時(shí)去査詢隊(duì)列中是否 還有數(shù)據(jù)幀需要發(fā)送。
發(fā)送應(yīng)用層把要發(fā)送的數(shù)據(jù)塊緩存入發(fā)送隊(duì)列;發(fā)送方從發(fā)送隊(duì)列中取數(shù)據(jù)塊執(zhí)行 校驗(yàn)算法并在數(shù)據(jù)塊尾部附加上校驗(yàn)信息,然后嵌入通信幀中發(fā)送;接收方從接收隊(duì)列 中取數(shù)據(jù)塊并進(jìn)行校驗(yàn);接收校驗(yàn)通過(guò)的去除通信幀附加信息并通知應(yīng)用層進(jìn)行處理, 校驗(yàn)未通過(guò)的則拋棄該數(shù)據(jù)包并報(bào)告校驗(yàn)錯(cuò)誤。所述的隊(duì)列長(zhǎng)度和數(shù)據(jù)塊大小不僅有缺 省值,還可以根據(jù)具體應(yīng)用對(duì)相應(yīng)寄存器進(jìn)行設(shè)置實(shí)現(xiàn)動(dòng)態(tài)配置。 一方面通過(guò)隊(duì)列可以 降低對(duì)響應(yīng)時(shí)間的嚴(yán)格要求,減小數(shù)據(jù)拷貝復(fù)制任務(wù)量;另一方面如果通信的單幀數(shù)據(jù) 長(zhǎng)度很大,可以調(diào)大數(shù)據(jù)塊并且減小隊(duì)列長(zhǎng)度以適應(yīng)大數(shù)據(jù)幀的傳遞。另外,本通信控 制方法通過(guò)偏移寄存器的設(shè)置能夠支持多幀數(shù)據(jù)包的收發(fā);通過(guò)通信模式寄存器的設(shè)置 可支持"一對(duì)一"、"一對(duì)多"、"多對(duì)一"等多種通信模式間的轉(zhuǎn)換。
權(quán)利要求
1. 一種異步通信控制器,采用可配置的數(shù)據(jù)存儲(chǔ)單元,支持單幀數(shù)據(jù)包、適應(yīng)多種通信方式的多幀數(shù)據(jù)包的快速異步通信,其特征是包括有與CPU(1)聯(lián)通的數(shù)據(jù)包存儲(chǔ)單元(2),控制單元(3)分別與數(shù)據(jù)包存儲(chǔ)單元(2)、發(fā)送單元(4)、接收單元(5)聯(lián)通,發(fā)送單元(4)通過(guò)通信物理通道(6)與接收單元(5)聯(lián)通所述的存儲(chǔ)單元(2)為配置隊(duì)列長(zhǎng)度、配置數(shù)據(jù)包存儲(chǔ)單元大小,支持單幀數(shù)據(jù)包、多幀數(shù)據(jù)包的快速異步通信;所述的發(fā)送單元(4)通過(guò)數(shù)據(jù)發(fā)送電路,按照自定義高速異步串行通信控制協(xié)議發(fā)送存儲(chǔ)單元的數(shù)據(jù);所述的接收單元(5)通過(guò)數(shù)據(jù)接收電路接收數(shù)據(jù),并把數(shù)據(jù)儲(chǔ)存在接收存儲(chǔ)單元(2-1);所述的控制單元(3)按照寄存器設(shè)置的不同控制模式,對(duì)存儲(chǔ)單元(2)、接收單元(5)和發(fā)送單元(4)進(jìn)行控制和啟動(dòng)。
2. 如權(quán)利要求1所述的異步通信控制器,其特征是所述的數(shù)據(jù)包存儲(chǔ)單元(2)包括 發(fā)送存儲(chǔ)單元(2-0)和接收存儲(chǔ)單元(2-1);所述的數(shù)據(jù)包存儲(chǔ)單元(2)存儲(chǔ)空間 分成六段,每段由4K字節(jié)的接收存儲(chǔ)空間和4K字節(jié)的發(fā)送存儲(chǔ)空間組成,存儲(chǔ)空 間地址不重疊,每段存儲(chǔ)空間對(duì)應(yīng)各自的發(fā)送模塊和接收模塊;所述的數(shù)據(jù)包存儲(chǔ) 單元(2)通過(guò)并行總線與外部處理器總線接口 (1-1)連接,雙向讀寫,實(shí)現(xiàn)數(shù)據(jù)不 同位數(shù)的轉(zhuǎn)換;地址半字對(duì)齊即按照16位對(duì)齊要求為2的倍數(shù)。
3. 如權(quán)利要求1所述的異步通信控制器,其特征是所述的通信控制器存儲(chǔ)單元(2) 還包括有隊(duì)列寄存器組(2-2)、控制寄存器組(2-3)、狀態(tài)寄存器組(24)、收發(fā)緩 存區(qū)(2-0、 2-1),所述的收發(fā)緩存區(qū)(2-0、 2-1)與隊(duì)列寄存器組(2-2)、控制寄存 器組(2-3)、狀態(tài)寄存器組(24)存儲(chǔ)空間地址不重疊,每段收發(fā)存儲(chǔ)空間對(duì)應(yīng)各 自的發(fā)送模塊和接收模塊。
4. 如權(quán)利要求1所述的異步通信控制器,其特征是所述的接收單元(5)包含有多個(gè) 接收模塊,每個(gè)接收模塊對(duì)應(yīng)各自的接收存儲(chǔ)單元空間;所述的發(fā)送單元(4)包含有多個(gè)發(fā)送模塊,每個(gè)發(fā)送模塊對(duì)應(yīng)各自的發(fā)送存儲(chǔ)單元空間。
5. 如權(quán)利要求1所述的異步通信控制器,其特征是所述的接收單元(5)的多個(gè)接收模塊和所述的發(fā)送單元(4)的多個(gè)發(fā)送模塊對(duì)應(yīng),通過(guò)所述的控制單元(3)的控 制,實(shí)現(xiàn)一路數(shù)據(jù)通過(guò)多個(gè)發(fā)送單元并行發(fā)送,或多路數(shù)據(jù)通過(guò)一個(gè)發(fā)送單元順序 發(fā)送,或多路數(shù)據(jù)通過(guò)各自發(fā)送模塊發(fā)送。
6. 如權(quán)利要求1所述的異步通信控制器,其特征是所述的控制單元(3)包括有與所 述的接收單元(5)連接的接收控制模塊(3-1-2),所述的接收控制模塊(3-1-2)分 別與接收長(zhǎng)度識(shí)別模塊(3-1-1)、接收狀態(tài)模塊(3-1-3)、解析數(shù)據(jù)幀模塊(3-14) 相連。
7. 如權(quán)利要求1所述的異步通信控制器,其特征是所述的控制單元(3)還包括有與 所述的發(fā)送單元(4)連接的發(fā)送控制模塊(3-2-2),所述的發(fā)送控制模塊(3-2-2) 分別與發(fā)送長(zhǎng)度識(shí)別模塊(3-2-1)、發(fā)送狀態(tài)模塊(3-2-3)、填充數(shù)據(jù)幀模i央(3-2-4) 相連。
8. 如權(quán)利要求1至7所述的異步通信控制器的數(shù)據(jù)傳輸方法,其特征是以自定義高 速異步串行通信控制協(xié)議發(fā)送存儲(chǔ)單元的數(shù)據(jù)時(shí),發(fā)送模塊把數(shù)據(jù)包嵌套在通信數(shù) 據(jù)幀中,由支持多種電平標(biāo)準(zhǔn)的高速串行總線,通過(guò)光收發(fā)器收發(fā)數(shù)據(jù)。
9. 如權(quán)利要求8所述的異步通信控制器的數(shù)據(jù)傳輸方法,其特征是所述的通信數(shù)據(jù) 幀包括幀頭標(biāo)識(shí)、幀模式、數(shù)據(jù)包長(zhǎng)度、數(shù)據(jù)、數(shù)據(jù)校驗(yàn)碼和幀尾標(biāo)識(shí)。
10. 如權(quán)利要求8所述的異步通信控制器的數(shù)據(jù)傳輸方法,其特征是所述的幀模式包 括有幀類型標(biāo)識(shí)、數(shù)據(jù)包幀數(shù)、幀序號(hào)。
11. 如權(quán)利要求1至7所述的異步通信控制器的通信接收控制方法,其特征在于,包括有如下步驟(1) 準(zhǔn)備工作步驟101系統(tǒng)開(kāi)始工作后,步驟102首先檢測(cè)幀頭0x3C3C,如果符 合則進(jìn)行幀校驗(yàn);如果未檢測(cè)到幀頭或幀校驗(yàn)錯(cuò)誤,則進(jìn)入步驟102重新檢測(cè)幀 頭并進(jìn)行幀格式校驗(yàn);如果正確,進(jìn)入步驟103判斷單幀或多幀;(2) 如果是單幀,則進(jìn)入步驟105,進(jìn)行單幀接收處理后,進(jìn)入步驟107判斷中斷模 式;(3) 如果是多幀,則進(jìn)入步驟104,進(jìn)行多幀接收處理后,進(jìn)入步驟106判斷尾幀, 如果不是尾幀,則進(jìn)入步驟102重新判斷幀頭;如果是尾幀,則進(jìn)入步驟107判 斷中斷模式;(4) 如果是中斷模式,進(jìn)入步驟108觸發(fā)中斷,完成后,則進(jìn)入步驟102重新判斷幀 頭;如果不是中斷模式,則進(jìn)入步驟102重新判斷幀頭。
12.如權(quán)利要求1至7所述的異步通信控制器的通信發(fā)送控制方法,其特征在于,包括 有如下步驟(1) 準(zhǔn)備工作步驟201系統(tǒng)開(kāi)始工作后,步驟202判斷是否啟動(dòng)發(fā)送;如果否,則 進(jìn)入步驟202重新判斷是否啟動(dòng)發(fā)送;如果是,則進(jìn)入步驟203填充通信幀;(2) 步驟203填充通信幀完成后,進(jìn)入步驟204進(jìn)行發(fā)送,發(fā)送完畢后,進(jìn)入下一 輪;應(yīng)用層根據(jù)幀格式配置寄存器,填充數(shù)據(jù)幀;啟動(dòng)發(fā)送時(shí),發(fā)送模塊根據(jù)寄 存器的設(shè)置完成通信幀的填充;如果發(fā)送控制寄存器設(shè)置為隊(duì)列發(fā)送模式,則在 數(shù)據(jù)幀發(fā)送完成時(shí)去查詢隊(duì)列中是否還有數(shù)據(jù)幀需要發(fā)送。
全文摘要
本發(fā)明主要涉及一種異步通信控制器及其控制方法,特別涉及因應(yīng)多種應(yīng)用環(huán)境可進(jìn)行配置的一種以數(shù)據(jù)幀形式進(jìn)行信息通信的通信控制器及其數(shù)據(jù)傳輸和通信控制方法。一種異步通信控制器,采用可配置的數(shù)據(jù)存儲(chǔ)單元,支持單幀數(shù)據(jù)包、適應(yīng)多種通信方式的多幀數(shù)據(jù)包的快速異步通信,其主要特點(diǎn)是包括有與CPU(1)聯(lián)通的數(shù)據(jù)包存儲(chǔ)單元(2),控制單元(3)分別與數(shù)據(jù)包存儲(chǔ)單元(2)、發(fā)送單元(4)、接收單元(5)聯(lián)通,發(fā)送單元(4)通過(guò)通信物理通道(6)與接收單元(5)聯(lián)通。本發(fā)明的優(yōu)點(diǎn)是與現(xiàn)有技術(shù)比較,本發(fā)明解決了目前存在的通信控制器及控制方法通信對(duì)應(yīng)方式單一、對(duì)應(yīng)用環(huán)境的適應(yīng)單一,不能動(dòng)態(tài)進(jìn)行更改的問(wèn)題。
文檔編號(hào)H04L12/56GK101534259SQ20091013686
公開(kāi)日2009年9月16日 申請(qǐng)日期2009年4月15日 優(yōu)先權(quán)日2009年4月15日
發(fā)明者濤 何, 喻俊淇, 方亞非, 曠文珍, 牛宏俠, 范多旺, 葛立明, 邢東峰, 陳光武, 魏宗壽, 魏文軍 申請(qǐng)人:蘭州大成自動(dòng)化工程有限公司