當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]前 言Internet的日益普及,信息共享程度的不斷提高,給工作和生活帶來了極大的方便?,F(xiàn)在,上網(wǎng)瀏覽對于人們來說是一件很平常的事情。不僅如此,架構(gòu)一個WebServer,做自己的主頁也是司空見慣的。一般情況下,人們通

前 言

Internet的日益普及,信息共享程度的不斷提高,給工作和生活帶來了極大的方便。現(xiàn)在,上網(wǎng)瀏覽對于人們來說是一件很平常的事情。不僅如此,架構(gòu)一個WebServer,做自己的主頁也是司空見慣的。一般情況下,人們通過一臺上網(wǎng)的電腦來建立WebServer。在這里將討論另外一種方法:通過單片機(jī)來建立WebServer。之所以會想到用單片機(jī)來實(shí)現(xiàn) WebServer,是因?yàn)殡S著嵌入式系統(tǒng)的迅猛發(fā)展和IA(信息電器)的出現(xiàn),以單片機(jī)為中心的應(yīng)用系統(tǒng)將搭上Internet的快車逐步取代傳統(tǒng)的以 PC為中心的應(yīng)用,成為未來Internet發(fā)展中的主力軍。

一、 具體應(yīng)用方案

1. 基于單片機(jī)的WebServer方案

基于單片機(jī)的WebServer的硬件平臺如圖1所示。


 
2. 主要芯片介紹

(1) SX52BD100

SX52BD100 是UBICOM公司生產(chǎn)的一款RISC指令集的單片機(jī),片上帶有4K×16 位的Flash存儲器和262×8位的RAM。由于采用CPU并行流水線方式及單時鐘周期指令,在100MHz晶振驅(qū)動下指令執(zhí)行速度可達(dá) 100MIPS。該單片機(jī)的最大特點(diǎn)就是虛擬外設(shè)功能,即通過軟件對I/O口進(jìn)行靈活的配置,CPU執(zhí)行虛擬軟件模塊就可以驅(qū)動普通的I/O口來模擬外設(shè)的功能,比如UART、SPI、IIC和FSK等。當(dāng)然,令人驚奇的是,SX52BD100可以通過虛擬外設(shè)功能來運(yùn)行網(wǎng)絡(luò)協(xié)議棧,例如TCP、IP、 HTTP以及SMTP等。

(2)RTL8019AS

RTL8019AS是RealTek公司出品的一種全雙工以太網(wǎng)控制器。它自帶16KB的SRAM,工作在Ethernet II和IEEE802.3、 10Base5、10Base2、10BaseT下,與NE2000兼容。

(3)24LC256

24LC256是Microchip公司生產(chǎn)的一種串行32KB的 E2PROM存儲器,采用CMOS工藝,通過2根數(shù)據(jù)線和外界通信,兼容I2C總線接口,可設(shè)為硬件寫保護(hù),10萬次的擦寫,200年以上的數(shù)據(jù)保護(hù)。

3.工作流程和軟件設(shè)計

RJ45為此系統(tǒng)與局域網(wǎng)的接口。由于大部分局域網(wǎng)都采用以太網(wǎng),這里的RTL8019AS就是處理以太網(wǎng)協(xié)議(IEEE802.3)的。數(shù)據(jù)的流向?yàn)椋赫埱笮畔木钟蚓W(wǎng)中來,通過RJ45送到RTL8019AS,處理后的數(shù)據(jù)包送入SX52BD100協(xié)議棧,由協(xié)議棧對數(shù)據(jù)包進(jìn)行解析,得到原始請求信息。請求信息再經(jīng)過SX52BD100的處理,產(chǎn)生回復(fù)信息?;貜?fù)信息到局域網(wǎng)的過程與上面正好相反。

整個系統(tǒng)的軟件流程如圖2所示。

圖1中的E2PROM 24LC256用來存儲WebServer的網(wǎng)頁信息。它可以處理Web頁面、圖像文件、PDF文檔記憶其它文件。當(dāng)然,它不能像PC上WebServer中的硬盤那樣可以存儲大量的頁面。它的容量決定了WebServer的資源文件的大小。

二、網(wǎng)絡(luò)協(xié)議棧的實(shí)現(xiàn)

網(wǎng)絡(luò)協(xié)議通常分不同層次進(jìn)行開發(fā),每一層分別負(fù)責(zé)不同的通信功能。一個協(xié)議族,比如TCP/IP,是一組不同層次上的多個協(xié)議的組合。TCP/IP通常被認(rèn)為是一個四層協(xié)議系統(tǒng),如圖3所示。每一層負(fù)責(zé)不同的功能。
 
(1)數(shù)據(jù)鏈路層,有時也稱為網(wǎng)絡(luò)接口層。通常包括操作系統(tǒng)中的設(shè)備驅(qū)動程序和計算機(jī)中對應(yīng)的網(wǎng)絡(luò)接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細(xì)節(jié)。

(2)網(wǎng)絡(luò)層,有時也稱作互聯(lián)網(wǎng)層。處理分組在網(wǎng)絡(luò)中的活動,例如分組的選路。在TCP/IP協(xié)議族中,網(wǎng)絡(luò)層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議)、ICMP 協(xié)議(Internet互聯(lián)網(wǎng)控制報文協(xié)議)以及IGMP 協(xié)議(Internet組管理協(xié)議)。這里主要討論IP協(xié)議。

(3)傳輸層主要為兩臺主機(jī)上的應(yīng)用程序提供端到端的通信。TCP為兩臺主機(jī)提供高可靠性的數(shù)據(jù)通信。它所做的工作包括把應(yīng)用程序交給它的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡(luò)層,確認(rèn)接收到的分組,設(shè)置發(fā)送最后確認(rèn)分組的超時時鐘等。由于運(yùn)輸層提供了高可靠性的端到端的通信,因此應(yīng)用層可以忽略所有這些細(xì)節(jié)。

(4)應(yīng)用層負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)。幾乎各種不同的TCP/IP實(shí)現(xiàn)都會提供下面這些應(yīng)用:

 ?、?HTTP超文本傳輸控制協(xié)議;

 ?、?TELNET遠(yuǎn)程登錄;

 ?、?FTP文件傳輸協(xié)議;

 ?、?SMTP簡單郵件傳送協(xié)議;

 ?、?SNMP簡單網(wǎng)絡(luò)管理協(xié)議。


因?yàn)閿?shù)據(jù)鏈路層主要是網(wǎng)絡(luò)接口卡及驅(qū)動,由RTL8019AS來實(shí)現(xiàn),所以下面討論網(wǎng)絡(luò)層、傳輸層和應(yīng)用層協(xié)議棧的實(shí)現(xiàn)。

1. 網(wǎng)絡(luò)層

(1) IP協(xié)議

IP是TCP/IP 協(xié)議族中最為核心的協(xié)議。Internet所有的數(shù)據(jù)都以IP 數(shù)據(jù)報格式傳輸。IP協(xié)議最大的特點(diǎn)是提供不可靠的和無連接的數(shù)據(jù)包傳送服務(wù)。

不可靠(unreliable)的意思是它不能保證IP數(shù)據(jù)報能成功地到達(dá)目的地。IP僅提供最好的傳輸服務(wù)。若發(fā)生某種錯誤時,如某個路由器暫時用完了緩沖區(qū),IP有一個簡單的錯誤處理算法:丟棄該數(shù)據(jù)報,然后發(fā)送ICMP(Internet控制報文協(xié)議)消息報給信源端。任何要求的可靠性必須由上層來提供(如TCP)。

無連接(connectionless)的意思是IP并不維護(hù)任何關(guān)于后續(xù)數(shù)據(jù)報的狀態(tài)信息。每個數(shù)據(jù)報的處理是相互獨(dú)立的。這也說明,IP數(shù)據(jù)報可以不按發(fā)送順序接收。如果一信源向相同的信宿發(fā)送兩個連續(xù)的數(shù)據(jù)報(先是A,然后是B),每個數(shù)據(jù)報都是獨(dú)立地進(jìn)行路由選擇,可能選擇不同的路線,因此, B可能在A到達(dá)之前先到達(dá)。

IP數(shù)據(jù)包的格式如圖4所示。

版本是指IP協(xié)議的版本號。目前的協(xié)議版本號是4, 因此IP也稱作IPV4。

首部長度指的是首部占32bit字的數(shù)目。由于它是一個4位字段,因此首部最長為60個字節(jié)。在這里,IP數(shù)據(jù)報字段的值是5。

服務(wù)類型字段包括一個3位的優(yōu)先權(quán)子字段(現(xiàn)在已被忽略)、4位的TOS子字段和1位未用位但必須置0。4bit的TOS分別代表:最小時延、最大吞吐量、最高可靠性和最小費(fèi)用。4bit中只能置其中1bit 。如果所有4bit 均為0,那么就意味著是一般服務(wù)。

總長度字段是指整個I P 數(shù)據(jù)報的長度,以字節(jié)為單位。利用首部長度字段和總長度字段,就可以知道I P 數(shù)據(jù)報中數(shù)據(jù)內(nèi)容的起始位置和長度。

標(biāo)識字段唯一地標(biāo)識主機(jī)發(fā)送的每一份數(shù)據(jù)報。

標(biāo)志字段用來指定目的地址是一個完整的主機(jī)地址還是一個網(wǎng)絡(luò)地址。

生存時間字段設(shè)置了數(shù)據(jù)報可以經(jīng)過的最多路由器數(shù)。

首部檢驗(yàn)和字段是根據(jù)IP首部計算的檢驗(yàn)和碼。

源地址和目的地址都是32位的數(shù)據(jù)。

可選項(xiàng)定義安全和處理限制、記錄路徑、時間戳、寬松的源站選路、嚴(yán)格的源站選路等信息。

(2)SX協(xié)議棧對IP層的實(shí)現(xiàn)

SX52BD100的協(xié)議棧中,IP層的實(shí)現(xiàn)就是把要發(fā)送出去的消息進(jìn)行IP打包,即加上IP包頭,使之符合IP數(shù)據(jù)包的格式發(fā)送到物理層;將接收到的來自物理層的數(shù)據(jù)包進(jìn)行IP解包,即去掉包頭,送到TCP層。應(yīng)注意,協(xié)議棧不接收分片的IP包,因?yàn)樗⒉粚邮盏降臄?shù)據(jù)進(jìn)行重新打包。

2. 傳輸層

(1)TCP 協(xié)議

TCP提供一種面向連接的、可靠的字節(jié)流傳送服務(wù)。TCP數(shù)據(jù)包的結(jié)構(gòu)如圖5所示。


 
每個TCP段都包含源端和目的端的端口號,用于尋找發(fā)端和收端應(yīng)用進(jìn)程。這兩個值加上IP包頭中的源端IP地址和目的端IP地址,唯一確定一個TCP連接。

序號用來標(biāo)識從T C P 發(fā)端向T C P 收端發(fā)送的數(shù)據(jù)字節(jié)流。它表示在這個報文段中的第一個數(shù)據(jù)字節(jié)。

確認(rèn)序號包含發(fā)送確認(rèn)的一端所期望收到的下一個序號。

首部長度給出首部中32bit字的數(shù)目。

緊急指針是一個正的偏移量,與序號字段中的值相加表示緊急數(shù)據(jù)最后一個字節(jié)的序號。其余字段的意義和IP包中的差不多。

為了保證TCP層的數(shù)據(jù)能有效地傳輸,在建立TCP連接時,用到了三向握手機(jī)制。具體過程如下(假設(shè)在A、B間通信,A、B的初始化序號為X、Y):

 ?、?由A向B發(fā)出SYN信號,告訴B,A的初始化序號為X。

 ?、?由B向A發(fā)出ACK和SYN信號,告訴A,B知道A的初始化序號為X,B的是Y。

  ③ 由A向B發(fā)出ACK信號,告訴B,A知道B的初始化序號是Y。

經(jīng)過這樣的初始化后,TCP連接的建立就完成了,A與B之間的數(shù)據(jù)傳輸也可靠了。

(2) SX協(xié)議棧對TCP層的實(shí)現(xiàn)

在SX52BD100的協(xié)議棧中,對TCP層的實(shí)現(xiàn)是通過提供的TCP API(應(yīng)用程序接口)來實(shí)現(xiàn)。TCP的API主要包括下面的函數(shù)和變量:

TCPApp1Init():建立第一個TCP連接的初始化函數(shù);
TCPApp2Init():建立第二個TCP連接的初始化函數(shù);
TCPAppTxBytes():TCP連接中發(fā)送數(shù)據(jù)的字節(jié)數(shù);
TCPAppRxBytes():TCP連接中接收數(shù)據(jù)的字節(jié)數(shù);
TCPAppTxData():發(fā)送數(shù)據(jù);
TCPAppRxData():接收數(shù)據(jù);
TCPAppTxDone():發(fā)送完畢;
TCPAppRxDone():接收完畢;
TCPAppPassiveOpen():被動TCP連接;
TCPAppActiveOpen():主動TCP連接;
Sock1RomoteIP、Sock2RomoteIP:TCP連接的遠(yuǎn)程主機(jī)的IP地址;
MyIP:本機(jī)的IP地址;
tcb1LocalPortMSB、tcb1LocalPortLSB、tcb2LocalPortMSB、tcb2LocalPortLSB:本機(jī)的TCP連接端口;
tcb1RemotePortMSB、tcb1RemotePortLSB、tcb2RemotePortMSB、tcb2RemotePortLSB:遠(yuǎn)程主機(jī)的TCP連接端口;

TCP協(xié)議棧支持同時建立兩個TCP連接:一個為主動連接,由TCPApp1Init()來控制;另一個為被動連接,由TCPApp2Init()來控制。TCP是基于連接的協(xié)議,因?yàn)楸仨毐3謱CP連接狀態(tài)的監(jiān)視和狀態(tài)有關(guān)的信息保存在發(fā)送控制塊中;而TCP連接狀態(tài)的改變由TCP的軟件狀態(tài)機(jī)來實(shí)現(xiàn)。軟件狀態(tài)機(jī)又由事件或用戶來觸發(fā)。比如,當(dāng)監(jiān)視到一個帶有SYN標(biāo)志的TCP包到達(dá)時,狀態(tài)機(jī)就將TCP連接轉(zhuǎn)換到接收狀態(tài);用戶也可以手工控制狀態(tài)機(jī)處于發(fā)送狀態(tài)來建立TCP連接。

① 用TCP API來建立TCP被動連接

_TCPApp2Init
_bank TCB2_BANK
mov tcb2LocalPortLSB, #HTTP_PORT_LSB ;  設(shè)置TCP的服務(wù)端口
mov tcb2LocalPortMSB, #HTTP_PORT_MSB
bank HTTP_BANK
clr httpParseState
clr httpURIHash
setb flags2.TCP_SOCK ;  顯示TCP2的連接狀態(tài)
jmp @TCPAppPassiveOpen ;  跳轉(zhuǎn)到TCP被動連接子程序,進(jìn)行端口偵聽
retp

② 用TCP API建立TCP主動連接
_TCPApp1Init
test switch ;  條件觸發(fā)
sz
retp ;  沒有觸發(fā),退出
_bank HTTP_BANK
mov w, #HTTP_CONNECT ;  啟動HTTP狀態(tài)機(jī)
mov httpState, w
_bank TCB1_BANK
mov tcb1LocalPortLSB, #80 ;  設(shè)置本機(jī)TCP連接服務(wù)端口
mov tcb1LocalPortMSB, #80
mov tcb1RemotePortLSB, #HTTP_PORT_LSB ;  設(shè)置遠(yuǎn)程主機(jī)TCP連接服務(wù)端口
mov tcb1RemotePortMSB, #HTTP_PORT_MSB
_bank TCPSOCKET_BANK
mov sock1RemoteIP3,#SMTP_SERVER_IP3 ;  設(shè)置遠(yuǎn)程主機(jī)的IP地址
mov sock1RemoteIP2,#SMTP_SERVER_IP2
mov sock1RemoteIP1,#SMTP_SERVER_IP1
mov sock1RemoteIP0,#SMTP_SERVER_IP0
clrb flags2.TCP_SOCK ;  顯示TCP主動連接的狀態(tài)
jmp @TCPAppActiveOpen ;  在指定的端口建立TCP連接
retp

③ 用TCP API發(fā)送數(shù)據(jù)和接收數(shù)據(jù)

一旦建立了TCP連接,那就只有兩種情況:發(fā)送數(shù)據(jù)或接收數(shù)據(jù)。接收數(shù)據(jù)時,從IP層來的數(shù)據(jù)經(jīng)過狀態(tài)機(jī)去掉TCP包頭后再送到應(yīng)用層;發(fā)送數(shù)據(jù)時,軟件狀態(tài)機(jī)會在數(shù)據(jù)前面加上TCP包頭再發(fā)送到IP層。

接收數(shù)據(jù)時,需要用到的TCP API函數(shù)為TCPAppRxBytes()、TCPAppRxData()和TCPAppRxDone();發(fā)送數(shù)據(jù)時,有一點(diǎn)值得關(guān)注:為了防止接收緩沖區(qū)的溢出,相對于發(fā)送數(shù)據(jù)包,協(xié)議棧給予接收數(shù)據(jù)包以更高的優(yōu)先級。也就是說,協(xié)議棧軟件會一直處理接收的數(shù)據(jù)包,直到接收緩沖區(qū)中沒有任何數(shù)據(jù)。

發(fā)送數(shù)據(jù)時,需要用到的TCP API函數(shù)為TCPAppTxBytes()、TCPAppTxData()和TCPAppTxDone()。必須注意,只有在建立了TCP連接后,才可以發(fā)送數(shù)據(jù)。
 
3. 應(yīng)用層

HTTP是WWW上的協(xié)議。當(dāng)用戶要瀏覽服務(wù)器上的一個網(wǎng)頁時,一個HTTP 請求就會從用戶的瀏覽器發(fā)到HTTP服務(wù)器。服務(wù)器響應(yīng)這個請求,把指定的網(wǎng)頁傳送回來,用戶才看到了網(wǎng)頁。

下面是一個典型的客戶端向服務(wù)器發(fā)送請求的例子:

GET Destination_IP/index.html http/1.0

GET代表客戶端的請求命令,而服務(wù)器也受理這個命令;

Destination_IP代表遠(yuǎn)程主機(jī)的IP地址;index.html是客戶端請求的資源;

http/1.0是HTTP協(xié)議的版本。


(1)SX協(xié)議棧對HTTP層的實(shí)現(xiàn)

因?yàn)镠TTP層的下面是TCP層,也就是說HTTP把TCP作為它的傳輸協(xié)議,所以那兩個TCP連接也為WebServer所用。理所當(dāng)然,TCP API的發(fā)送和接收函數(shù)也用來實(shí)行WebServer的請求和相應(yīng)命令。

所有的服務(wù)器資源都存放在外部的E2PROM中,HTTP使用統(tǒng)一資源定位器來指定返回給客戶端的網(wǎng)絡(luò)資源。統(tǒng)一資源定位器就像一個帶有目錄的文件路徑一樣,指定資源的路徑和擴(kuò)展名。SX協(xié)議棧并沒有像普通的解決方案那樣使用一般的文件系統(tǒng)來管理外部存儲器中的資源,而是采用了一種稱之為智能信息表來解決這個問題。當(dāng)一個請求到來時,一個8位的無用信息對統(tǒng)一資源定位器進(jìn)行運(yùn)算(8位字符加運(yùn)算),再將得到的數(shù)據(jù)乘以2,并把這個結(jié)果作為一個索引區(qū)中的一個值。如果在E2PROM中已經(jīng)建立了查找表,憑著這個值在E2PROM中去查表,找到相應(yīng)的資源并返回。用這種方法的好處是可以避免繁瑣的字符串的比較和將統(tǒng)一資源定位器直接存放在服務(wù)器中。這種文件系統(tǒng)的結(jié)構(gòu)如圖6所示。
 
(2)E2PROM的編程

WebServer啟動以前,要先把資源文件下載到E2PROM中。在這個方案中采用RS232端口從電腦上傳輸資源文件。下載程序自動從電腦中載入磁盤的目錄結(jié)構(gòu)并在E2PROM中創(chuàng)建E2PROM文件系統(tǒng)。

參考文獻(xiàn)

1 SX52BD100 Data Sheet. UBICOM Corporation,2000
2 SX52BD100 User Manual. UBICOM Corporation,2000
3 Ethernet SX-Stack Internet Connectivity. UBICOM Corporation,2000
4 Web Server & Send Email Client Implementation with Ethernet as the Physical Layer. UBICOM Corporation,2000
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉