1. 引言
傳統(tǒng)行業(yè)中, 特別是工業(yè)控制領(lǐng)域大量設(shè)備采用RS232 或RS485 串口與主機(jī)通訊,比如:數(shù)控機(jī)床、數(shù)字水表、數(shù)字電表、基于字符界面的串口終端等。串口通訊中距離短、速率低是這一類設(shè)備的主要缺點(diǎn),無(wú)法進(jìn)行集中、遠(yuǎn)程管理。本項(xiàng)目的研究與開(kāi)發(fā)旨在為工控領(lǐng)域的串行設(shè)備接入以太網(wǎng)、互聯(lián)網(wǎng)提供全面的解決方案。行業(yè)用戶在不浪費(fèi)原有設(shè)備資源的基礎(chǔ)上,通過(guò)架設(shè)串口聯(lián)網(wǎng)服務(wù)器就可以把原有的串行設(shè)備無(wú)縫接入以太網(wǎng)、互連網(wǎng),實(shí)現(xiàn)集中控制、遠(yuǎn)程控制,并能使所有設(shè)備共享主機(jī)資源, 大大節(jié)約了人力成本和時(shí)間成本,提高了生產(chǎn)率。
2.系統(tǒng)性能
串口服務(wù)器是一款數(shù)據(jù)通訊產(chǎn)品, 不僅要求硬件平臺(tái)性能高、功耗低,而且對(duì)穩(wěn)定性、可靠性要求極高,機(jī)器必須7X24 小時(shí)連續(xù)工作, 硬件平臺(tái)上需要集成看門狗電路,防止系統(tǒng)死鎖。結(jié)構(gòu)上要求體積小巧,美觀。軟件上要求依托成熟穩(wěn)定的操作系統(tǒng)為平臺(tái),定制串口驅(qū)動(dòng)、網(wǎng)絡(luò)驅(qū)動(dòng),改造硬件中斷優(yōu)先級(jí),提高系統(tǒng)的實(shí)時(shí)性。系統(tǒng)軟件平臺(tái)需要同時(shí)支持TCP/IP、FTP、TELNET、HTTP 協(xié)議。上層應(yīng)用核心是串口服務(wù)及網(wǎng)絡(luò)服務(wù)程序,需要設(shè)計(jì)完善的進(jìn)程通訊機(jī)制,實(shí)現(xiàn)串口數(shù)據(jù)到網(wǎng)絡(luò)數(shù)據(jù)之間的轉(zhuǎn)發(fā),要求各串口獨(dú)立工作,互不干涉, 每個(gè)串口工作在115.2KBPS 速率下不需要流量控制。用戶要求能夠通過(guò)本地端口、網(wǎng)絡(luò)、Web 等方式對(duì)串口服務(wù)器進(jìn)行參數(shù)配置, 能夠通過(guò)集中管理軟件監(jiān)控機(jī)器運(yùn)行狀態(tài),并能對(duì)核心代碼進(jìn)行升級(jí),要求維護(hù)、安裝方便。
3. 硬件設(shè)計(jì)
為提升性能, 在實(shí)際設(shè)計(jì)過(guò)程中我們需要完全控制串口和網(wǎng)絡(luò)的底層信號(hào),提高整個(gè)系統(tǒng)的實(shí)時(shí)性,我們選用了性價(jià)比更高一點(diǎn)的X86 兼容平臺(tái)RDC 公司的R8610,主頻柯達(dá)150Mhz,另外,此平臺(tái)下編程及匯編比較容易上手,可以加快產(chǎn)品的上市周期,硬件平臺(tái)的主要性能指標(biāo)如下表:
硬件結(jié)構(gòu)框圖如下:
圖1 硬件平臺(tái)結(jié)構(gòu)框圖
4. 軟件設(shè)計(jì)
4.1 內(nèi)核定制與驅(qū)動(dòng)設(shè)計(jì)
操作系統(tǒng)選擇ucLinux,ucLinux 在工業(yè)控制領(lǐng)域性能卓越。由于其代碼精煉,系統(tǒng)消耗小,效率更高。設(shè)計(jì)過(guò)程中,我們將ucLiux 進(jìn)行了徹底的定制,只保留了與R8610 相關(guān)的代碼,集成文件系統(tǒng)、任務(wù)調(diào)度、進(jìn)程管理和TCP/IP 模塊, 整個(gè)核心代碼控制在500K 以下,運(yùn)行效果相當(dāng)穩(wěn)定。
驅(qū)動(dòng)程序設(shè)計(jì)上,我們重點(diǎn)實(shí)現(xiàn)winbond 83977 串口擴(kuò)展芯片的驅(qū)動(dòng), 在linux 核心代碼8250.c 的基礎(chǔ)上設(shè)計(jì)我們自己的驅(qū)動(dòng), 針對(duì)串口擴(kuò)展芯片特性設(shè)計(jì)了硬件緩沖中斷機(jī)制, 當(dāng)硬件緩沖到達(dá)設(shè)置參數(shù)(FIFO_SIZE_1、FIFO_SIZE_4、FIFO_SIZE_8) 規(guī)定的字節(jié)數(shù),或者判斷沒(méi)有后續(xù)字節(jié)到達(dá)時(shí)發(fā)出中斷,這樣可以大大提高串口數(shù)據(jù)讀寫(xiě)效率。網(wǎng)絡(luò)驅(qū)動(dòng)針對(duì)DM9008芯片特性定制,充分發(fā)揮DM9008 全雙工屬性,提高網(wǎng)絡(luò)數(shù)據(jù)交換效率。
4.2 應(yīng)用服務(wù)程序設(shè)計(jì)
核心應(yīng)用程序基于ucLinux 操作系統(tǒng)設(shè)計(jì),主要設(shè)計(jì)了兩線程,串口服務(wù)線程和網(wǎng)絡(luò)服務(wù)線程,這兩種線程是成對(duì)出現(xiàn)的,彼此之間通過(guò)兩個(gè)隊(duì)列serial_queue和tcpsrv_queue 完成數(shù)據(jù)共享與交換,主要工作流程如下:
(1) 串口線程tcp_ser_proc()偵聽(tīng)串口,接收數(shù)據(jù),然后發(fā)送到tcpsrv_queue 隊(duì)列的數(shù)據(jù)鏈上; 同時(shí)監(jiān)測(cè)serial_queue 隊(duì)列,如果有數(shù)據(jù)則發(fā)送到對(duì)應(yīng)的本地串口。
(2) 網(wǎng)絡(luò)線程tcp_srv_proc()偵聽(tīng)網(wǎng)絡(luò)連接請(qǐng)求,建立連接,接收網(wǎng)絡(luò)數(shù)據(jù),完成解包,最后發(fā)送到serial_queue 隊(duì)列上;同時(shí)監(jiān)測(cè)serial_queue 隊(duì)列,如果有數(shù)據(jù)則發(fā)送到TCP/IP 遠(yuǎn)端控制節(jié)點(diǎn)。
圖2 軟件系統(tǒng)架構(gòu)圖
5.系統(tǒng)測(cè)試
使用傳統(tǒng)串口字符終端, 與串口服務(wù)器通過(guò)串口連接,后臺(tái)Linux 系統(tǒng)與串口服務(wù)器通過(guò)網(wǎng)絡(luò)連接,服務(wù)器中設(shè)置遠(yuǎn)端主機(jī)為L(zhǎng)inux 系統(tǒng)的IP 地址,當(dāng)串口服務(wù)器開(kāi)機(jī)的時(shí)候直接通過(guò)Telnet 協(xié)議連到Linux 系統(tǒng)上,串口終端就能夠出現(xiàn)login 登錄畫(huà)面,如同串口終端直接連到網(wǎng)絡(luò)上一樣, 可運(yùn)行服務(wù)器上的后臺(tái)應(yīng)用;服務(wù)器上的程序也可以直接對(duì)串口操作。系統(tǒng)測(cè)試性能良好。
6. 結(jié)論
本文設(shè)計(jì)的串口聯(lián)網(wǎng)服務(wù)器,具有操作維護(hù)方便、可靠性高、性能穩(wěn)定等優(yōu)點(diǎn),能夠?qū)⒐I(yè)控制領(lǐng)域、金融領(lǐng)域等大量使用的串口設(shè)備直接連到網(wǎng)絡(luò), 可有效通過(guò)管理程序?qū)υO(shè)備進(jìn)行遠(yuǎn)程、集中管理,提升了設(shè)備適應(yīng)網(wǎng)絡(luò)的能力,具有很好的市場(chǎng)前景。
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5573瀏覽量
174598 -
Web
+關(guān)注
關(guān)注
2文章
1280瀏覽量
70732 -
Linux
+關(guān)注
關(guān)注
87文章
11446瀏覽量
212645 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9663瀏覽量
87178
發(fā)布評(píng)論請(qǐng)先 登錄
串口服務(wù)器——TCP Server

支持過(guò)程級(jí)動(dòng)態(tài)軟硬件劃分的RSoC設(shè)計(jì)與實(shí)現(xiàn)
串口數(shù)據(jù)采集儲(chǔ)存聯(lián)網(wǎng)服務(wù)器應(yīng)用方案
基于Altera FPGA的軟硬件協(xié)同仿真方法介紹
基于VxWorks和MPC860T的嵌入式串口通信服務(wù)器設(shè)計(jì)
基于VxWorks和MPC860T的嵌入式串口通信服務(wù)器設(shè)計(jì)
如何實(shí)現(xiàn)波形發(fā)生器的軟硬件系統(tǒng)設(shè)計(jì)?
嵌入式Web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)
基于EDA 的嵌入式系統(tǒng)軟硬件劃分方法
基于軟硬件協(xié)同設(shè)計(jì)的低功耗生理信號(hào)處理ASIC設(shè)計(jì)
利用FPGA軟硬件協(xié)同系統(tǒng)驗(yàn)證SoC系統(tǒng)的過(guò)程和方法

軟硬件協(xié)同設(shè)計(jì)是系統(tǒng)芯片的基礎(chǔ)設(shè)計(jì)方法學(xué)
為什么要從“軟硬件協(xié)同”走向“軟硬件融合”?
軟硬件融合的概念和內(nèi)涵

評(píng)論