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

一種高速多協(xié)議數(shù)據(jù)傳輸系統(tǒng)和方法

文檔序號:7682860閱讀:248來源:國知局
專利名稱:一種高速多協(xié)議數(shù)據(jù)傳輸系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及嵌入式系統(tǒng)技術(shù)領(lǐng)域,尤其涉及嵌入式系統(tǒng)中一種CPU與
邏輯^t塊進行數(shù)據(jù)傳輸?shù)南到y(tǒng)和方法。
背景技術(shù)
隨著電信級設(shè)備向著高集成化、微型化方向發(fā)展,在設(shè)備中的一塊單板
上集成的功能也越來越多,同時又要兼顧CPU的性價比,因此如何更有效 地提高CPU的使用率,減少CPU負荷,是必須面對的一個i果題。在目前的 電信設(shè)備中,I/O (輸入/輸出)操作是CPU最主要的工作之一,加之i/o搡 作速率低,因而I/O應(yīng)用部分一般是占用CPU資源較多的應(yīng)用之一,通常
也是主要的優(yōu)化對象。
目前,越來越多的應(yīng)用是通過邏輯模塊來實現(xiàn)i/o數(shù)據(jù)的協(xié)議處理,一
般的應(yīng)用方式是將邏輯模塊掛接在本地總線(LocalBus)下,這樣的話,在 數(shù)據(jù)傳輸過程必須要CPU參與才能實現(xiàn),并且最重要的缺陷在于邏輯模塊 無法訪問CPU地址空間,使得在使用時存在很大的缺陷,增加了 CPU的負 擔(dān)。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,提供一種高速多協(xié)議數(shù)據(jù)傳輸系統(tǒng)和 方法,解決現(xiàn)有技術(shù)中占用CPU過多以及邏輯模塊無法訪問CPU地址空間
的問題。
鑒于現(xiàn)有技術(shù)中的問題,本發(fā)明提出了把邏輯模塊做成一個標準的PCI (周邊器件互聯(lián),Peripheral Component Interconnect)設(shè)備,提供各種和CPU進行通信的接口,收發(fā)都由邏輯模塊控制完成,CPU只需定時去接收或存 放數(shù)據(jù)在指定內(nèi)存即可的系統(tǒng)和方法,數(shù)據(jù)傳輸過程不需要CPU參與,可 減少CPU的負荷。
本發(fā)明提供一種高速多協(xié)議數(shù)據(jù)傳輸系統(tǒng),包括CPU和邏輯模塊兩個 部分,所述CPU通過PCI總線與所述邏輯^t塊相連,所述邏輯^f莫塊,包括 PCI設(shè)備標準接口單元、數(shù)據(jù)接收接口單元、數(shù)據(jù)發(fā)送接口單元、控制單元、 協(xié)議處理單元,其中
所述CPU在需要發(fā)送數(shù)據(jù)時,在緩存描述符中設(shè)置控制字,通過PCI 總線經(jīng)PCI設(shè)備標準接口通知所述邏輯模塊的控制單元開始發(fā)送,所述控制 單元通知所述數(shù)據(jù)發(fā)送接口單元從所述CPU在緩存描述符中指定的地址獲 取待發(fā)送的數(shù)據(jù)并發(fā)送出去,待發(fā)送完成后所述控制單元向CPU發(fā)送一個 發(fā)送中斷;
所述邏輯模塊在接收到數(shù)據(jù)時,所述協(xié)議處理單元對所述數(shù)據(jù)接收接口 單元所接收的數(shù)據(jù)進行協(xié)議處理,并將協(xié)議處理后的數(shù)據(jù)傳輸?shù)疆?dāng)前緩存描 述符所指向的緩存處,然后向CPU發(fā)送一個接收中斷。
進一步地,本發(fā)明的技術(shù)方案中,所述緩存描述符,是由CPU與邏輯 模塊預(yù)先約定的,包括控制狀態(tài)域、數(shù)據(jù)長度域、數(shù)據(jù)地址域和保留域,其 中
控制狀態(tài)域,用于標示此援存描述符的狀態(tài)和命令; 數(shù)據(jù)地址域,用于標示要發(fā)送/接收數(shù)據(jù)包的地址; 數(shù)據(jù)長度域,用于標示數(shù)據(jù)包的長度。
進一步地,本發(fā)明的技術(shù)方案中,所述CPU在收到所述接收中斷后, 則判斷當(dāng)前緩存描述符的控制狀態(tài)域是否有幀,如果有,則開始接收數(shù)據(jù), 并更新緩存描述符的地址域指向的緩存,設(shè)置控制狀態(tài)域為無數(shù)據(jù)狀態(tài),當(dāng) 前緩存描述符的編號加1;所述CPU重復(fù)上述步驟直至接收完全部數(shù)據(jù)為 止。
本發(fā)明還提供一種高速多協(xié)議數(shù)據(jù)傳輸方法,用于實現(xiàn)CPU通過PCI總線與所述邏輯模塊進行數(shù)據(jù)傳輸,包括如下步驟
所述CPU與所述邏輯模塊預(yù)先約定緩存描述符,并在CPU初始化時建 立所述緩存描述符鏈表;
在所述CPU需要發(fā)送數(shù)據(jù)時,在所述緩存描述符中設(shè)置控制字,并通 過PCI總線通知所述邏輯模塊開始發(fā)送,所述邏輯模塊從所述CPU在緩存 描述符中指定的地址獲取待發(fā)送的數(shù)據(jù)并發(fā)送出去,待發(fā)送完成后向CPU 發(fā)送一個發(fā)送中斷;
在所述邏輯模塊接收到數(shù)據(jù)時,所述邏輯模塊對所接收的數(shù)據(jù)進行協(xié)議 處理,并將協(xié)議處理后的數(shù)據(jù)傳輸?shù)疆?dāng)前緩存描述符所指向的緩存處,然后 向CPU發(fā)送一個接收中斷。
進一步地,本發(fā)明的方法技術(shù)方案中,所述緩存指示符包括控制狀態(tài)域、 數(shù)據(jù)長度域、數(shù)據(jù)地址域和保留域,其中
控制狀態(tài)域,用于標示此緩存描述符的狀態(tài)和命令;
數(shù)據(jù)地址域,用于標示要發(fā)送/接收數(shù)據(jù)包的地址;
數(shù)據(jù)長度域,用于標示數(shù)據(jù)包的長度。
進一步地,本發(fā)明的方法技術(shù)方案中,所述CPU根據(jù)所述緩存描述符 進行初始化時,建立緩存指示符鏈表并將第一個緩存指示符的地址配置給所 述邏輯模塊的首個發(fā)送控制寄存器。
進一步地,本發(fā)明的方法技術(shù)方案中,所述鏈表中緩存描述符的個數(shù)是 根據(jù)實際數(shù)據(jù)傳輸?shù)牧髁縼碓u估確定。
進一步地,本發(fā)明的方法技術(shù)方案中,所述方法進一步包括
所述CPU在收到所述接收中斷后,則判斷當(dāng)前緩存描述符的控制狀態(tài) 域是否有幀,如果有,則開始接收數(shù)據(jù),并更新緩存描述符的地址域指向的 緩存,設(shè)置控制狀態(tài)域為無數(shù)據(jù)狀態(tài),當(dāng)前緩存描述符的編號加1;
所述CPU重復(fù)上述步驟直至接收完全部數(shù)據(jù)為止。 采用本發(fā)明所述系統(tǒng)和方法,使得在數(shù)據(jù)傳輸過程中,完全不需要CPU的參與,非常有效的降低了 CPU的占用率。


圖1是本發(fā)明具體實施例BD結(jié)構(gòu)圖2是本發(fā)明具體實施例數(shù)據(jù)傳輸系統(tǒng)示意圖3是本發(fā)明具體實施例發(fā)送數(shù)據(jù)包的示意圖4是本發(fā)明具體實施例接收數(shù)據(jù)包的示意圖5是本發(fā)明具體實施例發(fā)送/接收BD的狀態(tài)控制域示意圖6是本發(fā)明具體實施例發(fā)送/接收控制寄存器0示意圖7是本發(fā)明具體實施例發(fā)送/接收BD鏈表示意圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,以下結(jié)合附圖對本發(fā)明 作進一步地詳細說明。
本發(fā)明所述的CPU與邏輯進行數(shù)據(jù)傳輸?shù)南到y(tǒng)和方法,主要應(yīng)用于 CPU和邏輯進行各種協(xié)議數(shù)據(jù)傳輸?shù)膱鼍埃@種系統(tǒng)和方法可以使得CPU 完全不參與數(shù)據(jù)的傳輸過程,有效的降低了 CPU利用率。
下面以將本發(fā)明所述的方法應(yīng)用于移動通訊基站單板從外部接收數(shù)據(jù) 為例,來說明本發(fā)明的數(shù)據(jù)傳輸系統(tǒng)和方法的應(yīng)用實例。在目前的系統(tǒng)中,
很多小的協(xié)議都采用邏輯實現(xiàn)了,比如UART (通用異步接收器發(fā)送器, Universal Asynchronous Receiver/Transmitter) , HDLC (高級數(shù)據(jù)鏈路控制, High level Data Link Control)等,這里以HDLC協(xié)議為例介紹本發(fā)明。
如圖1所示,顯示的是本發(fā)明具體實施例中緩存描述符即BD的結(jié)構(gòu)圖, 該BD的結(jié)構(gòu)是CPU與邏輯模塊預(yù)先約定的,包括控制狀態(tài)域、數(shù)據(jù)長度 域、凄t據(jù)地址域和保留域,其中
控制狀態(tài)域,用于標示此緩存描迷符即BD的狀態(tài)和命令,例如發(fā)送與 否、發(fā)送/接收完成與否、發(fā)送/接收成功與否等;數(shù)據(jù)地址域,用于標示要發(fā)送/接收數(shù)據(jù)包的地址; 數(shù)據(jù)長度域,用于標示數(shù)據(jù)包的長度。
圖2是本發(fā)明具體實施例的一種高速多協(xié)議數(shù)據(jù)傳輸系統(tǒng)的示意圖,包 括CPU和邏輯模塊兩個部分,所述CPU通過PCI總線與所述邏輯模塊相連。 所述邏輯模塊,包括PCI設(shè)備標準接口單元、數(shù)據(jù)接收接口單元、數(shù)據(jù)發(fā)送 接口單元、控制單元、協(xié)議處理單元,其中
PCI設(shè)備標準接口單元,通過PCI總線與所述CPU相連,用于完成PCI 標準協(xié)議功能;
數(shù)據(jù)接收接口單元,通過一組寄存器和CPU交互完成數(shù)據(jù)的接收過程;
數(shù)據(jù)發(fā)送接口單元,通過一組寄存器和CPU交互完成數(shù)據(jù)的發(fā)送過程;
控制單元,用于根據(jù)各個寄存器的信息作出相應(yīng)的動作、狀態(tài)更新;
協(xié)議處理單元,用于完成相關(guān)協(xié)議的組幀、解幀以及CRC校I^等。
其中,所述數(shù)據(jù)接收接口單元或數(shù)據(jù)發(fā)送接口單元通過PCI設(shè)備標準接 口單元來與CPU交互。
所述CPU用于為邏輯才莫塊分配PCI地址,根據(jù)圖1所示的BD結(jié)構(gòu)來 初始化收發(fā)BD (緩存描述符,Buffer Descriptor)鏈表;
當(dāng)CPU需要發(fā)送數(shù)據(jù)時,只需要在BD中設(shè)置控制字,然后通過PCI 總線通知邏輯模塊開始發(fā)送,此發(fā)送數(shù)據(jù)的過程賣際上是由邏輯模塊的發(fā)送 接口單元去CPU指定的地址獲取數(shù)據(jù)的過程,在獲取數(shù)據(jù)之后將獲得到的 數(shù)據(jù)發(fā)送出去。發(fā)送完成后,邏輯模塊的控制單元給CPU—個發(fā)送中斷(此 中斷可以屏蔽,用定時查詢)。此處中斷的目的是為了通知CPU數(shù)據(jù)已發(fā) 送完成。
當(dāng)邏輯模塊接收到數(shù)據(jù)時,進行協(xié)議處理,直接傳輸?shù)竭壿嬆K的接收 單元中記錄的當(dāng)前BD指向的緩存處,然后控制單元向CPU發(fā)送一個接收 中斷(此中斷可以屏蔽,用定時查詢,定時查詢一般通過定時器Is產(chǎn)生多 少次中斷來完成)。圖3顯示了本發(fā)明實施例中用于數(shù)據(jù)發(fā)送的具體實施過程,包括如下步

步驟301: CPU進行初始化建立緩存指示符鏈表,并將第一個緩存指示 符的地址配置給邏輯模塊的發(fā)送控制寄存器0;
其中,CPU進行初始化時,首先要根據(jù)圖1所示的緩存指示符BD的結(jié) 構(gòu)建立如圖7所示的BD鏈表,鏈表中BD的具體個數(shù)根據(jù)實際數(shù)據(jù)傳輸?shù)?流量來評估確定;
其中,所述發(fā)送控制寄存器O是地址指針寄存器,其大小可以才艮據(jù)具體 業(yè)務(wù)流情況來確定,本實施例中其大小配置為32比特,如圖6所示;
步驟302:當(dāng)CPU有數(shù)據(jù)需要發(fā)送時,則填充緩存指示符BD的各個域, 通知邏輯模塊有數(shù)據(jù)發(fā)送;
其中,在填充緩存指示符BD的域時,為了通知邏輯模塊有數(shù)據(jù)要發(fā)送, 尤其要填充BD中的發(fā)送控制狀態(tài)域,需要將發(fā)送控制狀態(tài)域設(shè)置成有數(shù)據(jù) 發(fā)送狀態(tài),例如圖5所示,將發(fā)送控制狀態(tài)域的bit7設(shè)置為1,表示準備發(fā) 送數(shù)據(jù);并通知邏輯^^莫塊有數(shù)據(jù)發(fā)送,例如圖5所示將發(fā)送控制狀態(tài)域的 bit4置為l,以通知邏輯模塊有數(shù)據(jù)要發(fā)送。
步驟303:邏輯模塊根據(jù)BD控制狀態(tài)域檢測是否有數(shù)據(jù)發(fā)送,如果有, 則根據(jù)BD的數(shù)據(jù)地址域所指向的地址直接獲取數(shù)據(jù),該步驟303完全由邏 輯模塊獨立來完成,避免了CPU的參與;
步驟304:邏輯模塊發(fā)送完一個數(shù)據(jù)結(jié)束后,跳到下一個BD地址,檢 測下一個BD的控制狀態(tài)域,判斷是否有數(shù)據(jù)要發(fā)送;
例如,可以檢測圖5所示的下一個BD的控制狀態(tài)域的bit7是否為1, 為1則表示還有數(shù)據(jù)需要發(fā)送,否則表示沒有數(shù)據(jù)要發(fā)送;
步驟305:若有,則從緩存中讀取數(shù)據(jù)繼續(xù)發(fā)送;
步驟306:在所有數(shù)據(jù)都發(fā)送完成后,產(chǎn)生一個發(fā)送中斷給CPU。
圖4顯示了本發(fā)明實施例中用于數(shù)據(jù)接收的具體實施過程,包括如下步
驟步驟401: CPU進行初始化,建立緩存指示符BD鏈表,并將第一個緩 存指示符的地址配置給邏輯模塊的接收控制寄存器0;其中,CPU進行初始化時,首先要根據(jù)圖1所示的緩存指示符BD的結(jié) 構(gòu)建立如圖7所示的BD鏈表,鏈表中BD的具體個數(shù)根據(jù)實際數(shù)據(jù)傳輸?shù)?流量來評估確定;進一步地,鏈表的建立可以由CPU中的軟件來實現(xiàn)鏈表 建立;其中,所述接收控制寄存器O是地址指針寄存器,其大小可以根據(jù)具體 業(yè)務(wù)流情況來確定,本實施例中其大小配置為32比特,如圖6所示;步驟402:當(dāng)邏輯模塊接收到數(shù)據(jù)時,邏輯模塊首先對所接收的數(shù)據(jù)進 行協(xié)議處理,再根據(jù)接收控制器寄存器O所存的BD地址,獲取BD的信息;步驟403:所述邏輯模塊進一步地再將協(xié)議處理后的數(shù)據(jù)存放到BD的 地址域所指向的地址,并更新BD的控制狀態(tài)域。步驟404:所述邏輯模塊隨后向CPU發(fā)送一個接收中斷;步驟405: CPU接收到該接收中斷后,則判斷當(dāng)前BD的控制狀態(tài)域是 否有幀,如果有,則開始接收數(shù)據(jù),并更新BD的地址域指向的緩存,設(shè)置 控制狀態(tài)域為無數(shù)據(jù)狀態(tài),當(dāng)前BD編號加1;對控制狀態(tài)域的判斷,具體實現(xiàn)時可以通過判斷圖5所示的接收控制狀 態(tài)域的bit7是否為1來判斷是否有幀,其中若為1則表示有數(shù)據(jù)需要接收;步驟406:所述CPU繼續(xù)判斷BD的控制狀態(tài)域是否有幀,有則執(zhí)行步 驟405,直到收完全部數(shù)據(jù)。本發(fā)明所述的方法,把邏輯模塊作為一個PCI設(shè)備,充分利用PCI總線 的特性,使得邏輯模塊可以訪問到CPU的內(nèi)存空間,從而使得數(shù)據(jù)傳輸不 需要CPU參與,進而有效的提高了 CPU的使用效率,在CPU的負荷越來 越重的趨勢中,本發(fā)明所述的方法將具有豐富和巨大的應(yīng)用潛力。本文所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本 領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。因此,凡在本發(fā)明的 精神和原則之內(nèi)所作的任何修改、等同替換、改進以及更新等等,均應(yīng)包含 在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、一種高速多協(xié)議數(shù)據(jù)傳輸系統(tǒng),包括CPU和邏輯模塊兩個部分,其特征在于,所述CPU通過PCI總線與所述邏輯模塊相連,所述邏輯模塊,包括PCI設(shè)備標準接口單元、數(shù)據(jù)接收接口單元、數(shù)據(jù)發(fā)送接口單元、控制單元、協(xié)議處理單元,其中所述CPU在需要發(fā)送數(shù)據(jù)時,在緩存描述符中設(shè)置控制字,通過PCI總線經(jīng)PCI設(shè)備標準接口通知所述邏輯模塊的控制單元開始發(fā)送,所述控制單元通知所述數(shù)據(jù)發(fā)送接口單元從所述CPU在緩存描述符中指定的地址獲取待發(fā)送的數(shù)據(jù)并發(fā)送出去,待發(fā)送完成后所述控制單元向CPU發(fā)送一個發(fā)送中斷;所述邏輯模塊在接收到數(shù)據(jù)時,所述協(xié)議處理單元對所述數(shù)據(jù)接收接口單元所接收的數(shù)據(jù)進行協(xié)議處理,并將協(xié)議處理后的數(shù)據(jù)傳輸?shù)疆?dāng)前緩存描述符所指向的緩存處,然后向CPU發(fā)送一個接收中斷。
2、 如權(quán)利要求1所述的高速多協(xié)議數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述緩存描述符,是由CPU與邏輯模塊預(yù)先約定的,包括控制狀態(tài)域、 數(shù)據(jù)長度域、數(shù)據(jù)地址域和保留域,其中控制狀態(tài)域,用于標示此緩存描述符的狀態(tài)和命令;數(shù)據(jù)地址域,用于標示要發(fā)送/接收數(shù)據(jù)包的地址;數(shù)據(jù)長度域,用于標示數(shù)據(jù)包的長度。
3、 如權(quán)利要求2所述的高速多協(xié)議數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述CPU在收到所述接收中斷后,則判斷當(dāng)前緩存描述符的控制狀態(tài) 域是否有幀,如果有,則開始接收數(shù)據(jù),并更新緩存描述符的地址域指向的 緩存,設(shè)置控制狀態(tài)域為無數(shù)據(jù)狀態(tài),當(dāng)前緩存描述符的編號加1;所述 CPU重復(fù)上述步驟直至接收完全部數(shù)據(jù)為止。
4、 一種高速多協(xié)議數(shù)據(jù)傳輸方法,用于實現(xiàn)CPU通過PCI總線與所述 邏輯模塊進行數(shù)據(jù)傳輸,包括如下步驟所述CPU與所述邏輯模塊預(yù)先約定緩存描述符,并在CPU初始化時建 立所述緩存描述符鏈表;在所述CPU需要發(fā)送數(shù)據(jù)時,在所述緩存描述符中設(shè)置控制字,并通 過PCI總線通知所述邏輯模塊開始發(fā)送,所述邏輯模塊從所述CPU在緩存 描述符中指定的地址獲取待發(fā)送的數(shù)據(jù)并發(fā)送出去,待發(fā)送完成后向CPU 發(fā)送一個發(fā)送中斷;在所述邏輯模塊接收到數(shù)據(jù)時,所述邏輯^t塊對所接收的數(shù)據(jù)進行協(xié)議 處理,并將協(xié)議處理后的數(shù)據(jù)傳輸?shù)疆?dāng)前緩存描述符所指向的緩存處,然后 向CPU發(fā)送一個4妻收中斷。
5、 如權(quán)利要求4所述的高速多協(xié)議數(shù)據(jù)傳輸方法,其特征在于,所述緩存指示符包括控制狀態(tài)域、數(shù)據(jù)長度域、數(shù)據(jù)地址域和保留域, 其中控制狀態(tài)域,用于標示此緩存描述符的狀態(tài)和命令; 數(shù)據(jù)地址域,用于標示要發(fā)送/接收數(shù)據(jù)包的地址; 數(shù)據(jù)長度域,用于標示數(shù)據(jù)包的長度。
6、 如權(quán)利要求5所述的高速多協(xié)議數(shù)據(jù)傳輸方法,其特征在于,所述CPU根據(jù)所述緩存描述符進行初始化時,建立緩存指示符鏈表并 將第一個緩存指示符的地址配置給所述邏輯;漠塊的首個發(fā)送控制寄存器。
7、 如權(quán)利要求6所述的高速多協(xié)議數(shù)據(jù)傳輸方法,其特征在于, 所述鏈表中緩存描述符的個數(shù)是根據(jù)實際數(shù)據(jù)傳輸?shù)牧髁縼碓u估確定。
8、 如權(quán)利要求6所述的高速多協(xié)議數(shù)據(jù)傳輸方法,其特征在于,所述 方法進一步包括所述CPU在收到所述接收中斷后,則判斷當(dāng)前緩存描述符的控制狀態(tài) 域是否有幀,如果有,則開始接收數(shù)據(jù),并更新緩存描述符的地址域指向的 i爰存,設(shè)置控制狀態(tài)域為無數(shù)據(jù)狀態(tài),當(dāng)前緩存描述符的編號加1;所述CPU重復(fù)上述步驟直至接收完全部數(shù)據(jù)為止。
全文摘要
本發(fā)明公開了嵌入式系統(tǒng)中一種CPU與邏輯模塊進行數(shù)據(jù)傳輸?shù)南到y(tǒng)和方法。所述CPU通過PCI總線與所述邏輯模塊相連,所述邏輯模塊,包括PCI設(shè)備標準接口單元、數(shù)據(jù)接收接口單元、數(shù)據(jù)發(fā)送接口單元、控制單元、協(xié)議處理單元,CPU在需要發(fā)送數(shù)據(jù)時通過PCI總線通知所述邏輯模塊從所述CPU在緩存描述符中指定的地址獲取數(shù)據(jù)并發(fā)送,向CPU發(fā)一個發(fā)送中斷;所述邏輯模塊在接收到數(shù)據(jù)時,所述協(xié)議處理單元對所接收的數(shù)據(jù)進行協(xié)議處理后傳輸?shù)疆?dāng)前緩存描述符所指向的緩存處,然后向CPU發(fā)送一個接收中斷。本發(fā)明在數(shù)據(jù)傳輸過程中,完全不需要CPU的參與,有效的降低了CPU的占用率。
文檔編號H04L12/56GK101222430SQ20081000425
公開日2008年7月16日 申請日期2008年1月24日 優(yōu)先權(quán)日2008年1月24日
發(fā)明者華 丁 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1