袁航空,張勁松,呂 露
(1.武漢郵電科學(xué)研究院,湖北武漢 430074;2.世紀(jì)民生科技股份有限公司武漢群茂科技有限公司,湖北武漢 430074;3.烽火科技集團(tuán)武漢虹信通信科技有限公司,湖北武漢 430074)
基于CS6209的串口服務(wù)器/交換機(jī)設(shè)計研究
袁航空1,2,張勁松2,呂 露1,3
(1.武漢郵電科學(xué)研究院,湖北武漢 430074;2.世紀(jì)民生科技股份有限公司武漢群茂科技有限公司,湖北武漢 430074;3.烽火科技集團(tuán)武漢虹信通信科技有限公司,湖北武漢 430074)
首先分析了串口服務(wù)器的構(gòu)成,然后提出了一種將串行通信設(shè)備連入管理網(wǎng)絡(luò)的解決方案,該方案MCU摒棄了常見的ARM類通用嵌入式芯片而采用世紀(jì)民生C8051核的CS6209,它集成了以太網(wǎng)接口(MAC和PHY),是一種超低成本串口服務(wù)器解決方案。隨后,介紹了該方案TCP/IP協(xié)議棧的結(jié)構(gòu)和系統(tǒng)的軟件架構(gòu),以及該方案的硬件設(shè)計和驗證,最后對其實用性和易用性做了總結(jié)和說明。
串口服務(wù)器;CS6209;TCP/IP;網(wǎng)絡(luò)管理
【本文獻(xiàn)信息】袁航空,張勁松,呂露.基于CS6209的串口服務(wù)器/交換機(jī)設(shè)計研究[J].電視技術(shù),2013,37(3).
隨著網(wǎng)絡(luò)通信和智能電子業(yè)的飛速發(fā)展,各種智能化電子設(shè)備逐漸增多,高速通信成為主流。但是在工業(yè)控制、智能家電等行業(yè)中很多的設(shè)備依然還是通過RS-232/RS-485與其他設(shè)備通信,很多情況下,串口通信是它們與外部世界通信的唯一方式,主要原因是串行口具有易用性和可靠性,在對數(shù)據(jù)速率要求不高時,依然能夠提供足夠高的通信能力。然而新的應(yīng)用需要TCP/IP的連通性和以太網(wǎng)的通信能力,昂貴的成本和耗時設(shè)計常常阻止了開發(fā)者前進(jìn)的步伐。本設(shè)計以實際問題出發(fā),通過將串口轉(zhuǎn)換成以太網(wǎng)口,實現(xiàn)收發(fā)數(shù)據(jù)格式的轉(zhuǎn)換,完成設(shè)備遠(yuǎn)程管理、本地串口之間以及本地串口與遠(yuǎn)端串口之間的數(shù)據(jù)交換,最終實現(xiàn)串行設(shè)備強(qiáng)大的通信能力。
本方案的設(shè)計初衷是在不改變原有串行設(shè)備結(jié)構(gòu)的基礎(chǔ)上,僅將串行接口進(jìn)行轉(zhuǎn)換,將串行口的數(shù)據(jù)轉(zhuǎn)換成能在以太網(wǎng)上傳輸?shù)腡CP/IP協(xié)議網(wǎng)絡(luò)數(shù)據(jù),并提供管理功能,可以進(jìn)行串行接口交換。
本地主機(jī)通過本地網(wǎng)絡(luò)、遠(yuǎn)端主機(jī)通過以太網(wǎng)發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包給指定的串行設(shè)備,網(wǎng)絡(luò)數(shù)據(jù)包經(jīng)過串口服務(wù)器進(jìn)行解析,串行設(shè)備識別到管理端發(fā)來的管理信息,回傳相應(yīng)的設(shè)備狀態(tài)信息或者管理端請求的數(shù)據(jù)。串行設(shè)備也可以不定期地向遠(yuǎn)端管理主機(jī)發(fā)送自身設(shè)備的實時信息,實現(xiàn)實時監(jiān)控。本方案的應(yīng)用拓?fù)鋱D如圖1所示。
在一個串口服務(wù)器上的幾個串行設(shè)備也可以在串口服務(wù)器經(jīng)過相應(yīng)配置后進(jìn)行信息的交互,即在管理端將要通信的串口配置成連接狀態(tài),完成交換功能。
1.2.1 登錄管理
用戶可以通過不同用戶名登錄系統(tǒng),設(shè)備參數(shù)的配置和命令下達(dá)的前提是用戶有管理權(quán)限,即成功登錄設(shè)備的HTTP Server,登錄后還可以新建用戶和修改密碼。
1.2.2 通過網(wǎng)頁查看和配置串口服務(wù)器
用戶能夠通過Web瀏覽器對連接在一個以太網(wǎng)上所有的串行設(shè)備進(jìn)行系統(tǒng)參數(shù)和網(wǎng)絡(luò)參數(shù)的配置和查詢,而不用用戶在上位機(jī)上安裝任何配套管理軟件。
圖1 應(yīng)用拓?fù)鋱D
1.2.3 系統(tǒng)配置管理
用戶可以修改設(shè)備參數(shù),包括串口波特率(2 400~115 200 bit/s)和工作方式(TCP Server模式、TCP Client模式、UDP模式)、工作端口、系統(tǒng)獲取IP地址的方式、網(wǎng)絡(luò)參數(shù)以及DDNS相關(guān)信息等。
1.2.4 動態(tài)域名
為了給Internet用戶提供更方便的訪問,串口服務(wù)器內(nèi)實現(xiàn)了DDNS的客戶端,并可以由用戶自己指定DDNS的Server,用戶只需要在任何一個提供DDNS的Server處申請一個動態(tài)域名,然后系統(tǒng)配置管理頁面對DDNS部分做相應(yīng)的設(shè)置,便可以通過域名來訪問串口服務(wù)器。這樣,即使該串口服務(wù)的IP地址經(jīng)常發(fā)生變化,對用戶來說也毫無影響。
CS6209是快速的與8051兼容的高度集成的網(wǎng)絡(luò)微控制器,其硬件結(jié)構(gòu)如圖2所示。通常8051單片機(jī)中的12個時鐘周期可形成一個機(jī)器周期,而在CS6209中一個機(jī)器周期只需要1個時鐘周期,因此在相同的時鐘周期下,CS6209的處理速度是51系列單片機(jī)的12倍,而且CS6209比標(biāo)準(zhǔn)的8位微控制器提供了更多的資源。
圖2 CS6209硬件架構(gòu)示意圖
CS6209集成了10/100 Mbit/s以太網(wǎng)接口(包括MAC/PHY),以前網(wǎng)絡(luò)接入問題需要單片機(jī)和MAC/PHY兩個芯片才能解決,應(yīng)用CS6209的高度集成性,既簡化了電路又降低了成本。硬件設(shè)計框圖如圖3所示,CS6209片上外設(shè)有兩個串口,能滿足兩口的串口服務(wù)器需求。
圖3 硬件設(shè)計框圖
串口服務(wù)器的目的就是要實現(xiàn)串口設(shè)備的連網(wǎng)能力,既要將串行通信數(shù)據(jù)在網(wǎng)絡(luò)上傳輸,又要確保數(shù)據(jù)傳輸?shù)耐该餍?,所以網(wǎng)絡(luò)協(xié)議的使用必不可少。本設(shè)計根據(jù)實際需要設(shè)計了精簡型的協(xié)議棧,下面介紹協(xié)議棧的結(jié)構(gòu)和工作原理。
CS6209的協(xié)議棧結(jié)構(gòu)如圖4所示,該協(xié)議棧支持主流應(yīng)用協(xié)議。
圖4 CS6209 TCP/IP協(xié)議棧結(jié)構(gòu)
物理層:支持片上Ethernet接口和RS-232接口。
Ethernet:通過CS6209片上的以太網(wǎng)硬件接口,支持IP數(shù)據(jù)報的傳輸協(xié)議。
PPP:點到點協(xié)議能夠支持通過串口傳輸IP數(shù)據(jù)報。
網(wǎng)絡(luò)層:支持網(wǎng)際協(xié)議(IPv4)。
ARP:當(dāng)知曉遠(yuǎn)端主機(jī)的IP地址的情況下,以太網(wǎng)的節(jié)點能夠確定遠(yuǎn)端主機(jī)的MAC地址。
ICMP:完成網(wǎng)絡(luò)連通性的測試,主要用作調(diào)試。
傳輸層:支持TCP和UDP。
應(yīng)用層:支持以下應(yīng)用協(xié)議。
HTTP:主要用于建立Web Server,僅支持HTTP Server。
SMTP:支持郵件發(fā)送,僅支持SMTP Client。
POP3:支持郵件接收,僅支持POP3 Client。
FTP:支持網(wǎng)絡(luò)和主機(jī)之間的發(fā)送和接收文件操作,僅支持FTP Client。
在CS6209中,分為數(shù)據(jù)通道(COM1默認(rèn)端口號8001、COM2默認(rèn)端口號8002)和管理通道(端口號9090),其中數(shù)據(jù)通道主要是本地串口之間數(shù)據(jù)通信或者通過網(wǎng)管配置后經(jīng)網(wǎng)絡(luò)口透明轉(zhuǎn)發(fā)至遠(yuǎn)端,網(wǎng)管通過HTTP Server進(jìn)行參數(shù)配置。
這里通過兩個串行設(shè)備的通信實例說明系統(tǒng)工作原理。
首先系統(tǒng)啟動,并初始化系統(tǒng)配置、網(wǎng)絡(luò)配置和串口驅(qū)動,然后進(jìn)入消息處理的大循環(huán),其中包括網(wǎng)絡(luò)收發(fā)和串口收發(fā),各種操作均在大循環(huán)中完成。本設(shè)備因為沒有操作系統(tǒng)的支持,在TCP和UDP的操作上可能會更復(fù)雜,現(xiàn)以UDP的工作方式為例,每個串口默認(rèn)分配了一個端口號,當(dāng)本地串口和遠(yuǎn)端串口通信時,首次通信必須組建一個ARP請求發(fā)送到遠(yuǎn)端獲取MAC地址,遠(yuǎn)端接收到請求后將IP信息組包回復(fù),本地接收到回復(fù),保存到NODE定義的desnode結(jié)構(gòu)體中,NODE定義如下:
當(dāng)本地串口要向遠(yuǎn)端發(fā)送數(shù)據(jù)時,系統(tǒng)將串口buffer中的數(shù)據(jù)拷貝到UDP數(shù)據(jù)域中,UDP包定義如下:
IPHDR包含目的IP和源IP等IP信息,用于IP層的交互;UDPHDR則包含目的端口號和源端口號等Socket信息,用于Socket層交互。UDP包中的數(shù)據(jù)域經(jīng)過IP層后在數(shù)據(jù)鏈路層進(jìn)行封裝成幀,發(fā)往物理層的發(fā)送緩沖區(qū),最終由物理層以比特流的形式,發(fā)往目的MAC的主機(jī)。
這些比特流經(jīng)過以太網(wǎng)到達(dá)目的主機(jī),并經(jīng)過相同的逆過程后,最終以端口號的形式映射到指定串口,數(shù)據(jù)從而轉(zhuǎn)移進(jìn)該串口的發(fā)送緩沖區(qū),發(fā)往與該串口相連的串行設(shè)備,完成端到端的通信。具體的數(shù)據(jù)處理過程如圖5所示,圖中箭頭所指是數(shù)據(jù)的流向。
圖5 數(shù)據(jù)流向圖
CS6209 HTTP Server是基于TCP協(xié)議的應(yīng)用,它提供了相應(yīng)的回調(diào)函數(shù)處理80端口的連接請求,這里通過配置串口波特率的實例說明HTTP Server的工作過程:
1)當(dāng)遠(yuǎn)端客戶端(瀏覽器)發(fā)送一個修改波特率連接請求時,格式為
GET/application.cgi?BR=6...
2)HTTP Server收到GET請求時,調(diào)用回調(diào)函數(shù),執(zhí)行
提取請求的網(wǎng)頁,調(diào)用CGI(Common Gateway Interface)程序去替換EGI標(biāo)簽(BR),并將替換后的網(wǎng)頁發(fā)送給客戶端(瀏覽器),刷新顯示。
3)網(wǎng)頁在發(fā)送時,其大小有時超過了Socket發(fā)送的Buffer空間,必須順序地將網(wǎng)頁分片發(fā)送,當(dāng)數(shù)據(jù)發(fā)送完成,且客戶端確定接收的數(shù)據(jù)后,關(guān)閉 Socket,完成交互[4]。
對串口服務(wù)器方案的測試,是為了實驗者能夠?qū)ο到y(tǒng)方案通信能力進(jìn)行評測的有效保證。
本系統(tǒng)設(shè)計的成功與否,關(guān)鍵在于系統(tǒng)的通信速率是否能適應(yīng)現(xiàn)場要求,現(xiàn)將一對串口服務(wù)器,通過網(wǎng)線接入同一局域網(wǎng),通過瀏覽器對兩端串口分別配置成UDP模式,設(shè)置好目的IP和端口號后,用串口調(diào)試軟件測試在連續(xù)發(fā)送100 kbyte后(單次發(fā)送包大小為200 byte,發(fā)送間隔為18 ms),查看丟包情況,結(jié)果如表1所示。
表1 通信速率測試數(shù)據(jù)
由于該設(shè)計方案沒有采用操作系統(tǒng)作為系統(tǒng)時間調(diào)度,不考慮在以太網(wǎng)中可能出現(xiàn)的沖突和碰撞現(xiàn)象,在串口通信速率較高時(115 200 bit/s),連續(xù)傳送大的網(wǎng)絡(luò)包,由于串口包轉(zhuǎn)成網(wǎng)絡(luò)包,網(wǎng)絡(luò)包在對端轉(zhuǎn)成串口包后,超出接收瓶頸,會有微量丟包情況出現(xiàn),而在實際應(yīng)用中反復(fù)測試時,幾乎無影響。
本文介紹了一種低成本的串口服務(wù)器設(shè)計方案,運用世紀(jì)民生CS6209高度集成的特性,簡化了硬件電路設(shè)計,易用性大大加強(qiáng)。CS6209非常高的集成度以及豐富的I/O資源,使得嵌入式系統(tǒng)通過以太網(wǎng)方便地和遠(yuǎn)程計算機(jī)進(jìn)行通信。該串口服務(wù)器能很好地應(yīng)用于智能家電、遠(yuǎn)程控制、網(wǎng)絡(luò)管理等領(lǐng)域,解決了串行設(shè)備接入難的問題。
:
[1]王俊.嵌入式 WebServer系統(tǒng)的實現(xiàn)[EB/OL].[2012-06-09].http://www.docin.com/p-462494272.html.
[2]CS6209_user_manual[EB/OL].[2012-06-09].http://en.pudn.com/downloads155/doc/comm/detail688423_en.html.
[3]史蒂文斯.TCP/IP詳解:卷1[M].范建華,譯.北京:機(jī)械工業(yè)出版社,2000.
[4]RICHARD S W,BILL F,ANDREW M.UNIX 網(wǎng)絡(luò)編程:卷1API[M].楊繼張,譯.3版.北京:人民郵電出版社,2009.
Study of Serial Port Server/Switch Based on CS6209
YUAN Hangkong1,2,ZHANG Jinsong2,Lü Lu1,3
(1.Wuhan Research Institute of Posts&Telecommunications,Wuhan 430074,China;2.Myson Century Inc.,Wuhan Trimode Technology Inc.,Wuhan 430074,China;3.Firberhome Inc.,Wuhan Hongxin Telecommunication Technologies Co.,Ltd.,Wuhan 430074,China)
A kind of solution that serial communication devices connect to the management network.This scheme adopts Myson Century CS6209 chip as the main MCU,incorporating C8051-compatible micro-controller core and integrating Ethernet interface(MAC and PHY),it is a kind of ultra low-cost serial server solution.In this paper,the composition of the serial server is described firstly.Then,a solution that serial communication devices connect to the management network is proposed.That solution adopts Myson Century CS6209 chip as the main MCU,incorporating C8051-compatible micro-controller core and integrating Ethernet interface(MAC and PHY),it is a kind of ultra low-cost serial server solution.After that,the structure of TCP/IP protocol stack,system software architecture and hardware design and verification of this program are all introduced.Finally,it sums up and makes an instruction of CS6209’s practical and facility.
serial device server;CS6209;TCP/IP;network management
TP368.1
A
袁航空(1988— ),碩士生,從事嵌入式IA設(shè)計;
張勁松(1970— ),博士,研究生導(dǎo)師,從事通信終端設(shè)計研究;
呂 露(1987— ),碩士生,從事通信電源設(shè)計和視頻監(jiān)控設(shè)計。
責(zé)任編輯:許 盈
2012-07-30