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