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