国产成人精品a视频一区www_国产区视频在线观看_99色视频_欲色av_亚洲一区电影_亚洲综合视频一区

基于樹莓派的多串口多總線服務器設計

來源:網絡

點擊:1132

A+ A-

所屬頻道:新聞中心

關鍵詞: 樹莓派,總線,服務器

      工業控制中,各設備的信號采集和監控只靠串口總線難以實現擴展,要將現場控制網絡和信息網絡相連,就需要解決串口通信協議和因特網通信協議的轉換問題,即把原有設備轉換為具備網絡接口的外設,這樣可以將傳統串行鏈路上的數據傳輸到信息網絡上,而無需更換原有設備。如此,可以提高原有設備利用率、增加多終端連接數、節約成本、簡化布線的復雜度及延長通信距離。

      近年來,因信息化和物聯網發展的需要,串口服務器大量涌現,它們不占用主機資源,且具有終端服務器的功能。不過,設備體積龐大、價格昂貴、串口不易裁剪或擴展、傳輸大量數據幀時丟包、參數配置繁雜等問題也隨之出現。

      本設計采用的串口服務器的核心設備--樹莓派,是一款體積小、價格便宜但功能非常強大的平臺,可通過多種通信方式接入互聯網,支持多種完整網絡協議,結合USB-hub及USB/串口轉換器使用,可保證串口服務器使用方便,并實現實時、準確、長時間穩定的數據傳輸。

      1 總體設計

      根據當今工業現場數據傳輸需求,應具備的技術指標和設置參數如下。

      1.1 技術指標

      ①主控芯片:32位700 MHz的ARM1176JZF-S處理器;

      ②操作系統:Linux;

      ③支持協議:TCP/IP、UDP、HTTP、FTP;

      ④網絡接口:10/100 Mbps自適應以太網接口;

      ⑤串口類型:1~16個RS 232/RS485/RS422接口,1個TTL電平串口;

      ⑥參數配置方式:WEB瀏覽器配置;

      ⑦會話數:支持多連接,滿足5個以內用戶同時管理一個模塊設備;

      ⑧工作模式:TCP客戶端、TCP服務器、UDP廣播模式;

      ⑨指示燈:電源指示燈、通信指示燈;

      ⑩供電電壓:5 V。

      1.2 設置參數

      該設備選擇WEB瀏覽器設置方式,內置WEB服務器,用戶可進行IP地址、串口通信參數、工作模式等的管理和配置。以下主要介紹串口通信和工作模式參數的設置。

      (1)串口通信參數

      ①波特率為2 400~115 200 bps;

      ②數據位為6/7/8/9;

      ③校驗位為None/Even/Odd;

      ④停止位為1/1.5/2;

      ⑤成幀長度為1~15000字節;

      ⑥成幀間隔為30~500位。

      其中,成幀長度指每一幀接收數據的長度,接收端緩沖區一旦接收到該長度的數據就轉發出去;成幀間隔就是所謂的串口超時,超時時間T(s)、成幀間隔N(位)、波特率B(b/s)的關系如下。一旦超時,不管已有數據長度是不是達到成幀長度,接收端緩沖區就將已有數據組幀轉發出去。

      T= N/B (1)

      (2)工作模式參數

      ①單個串口支持會話數為1~5個,每個會話模式間相互獨立;

      ②TCP服務器模式為綁定端口范圍為1025~65535;

      ③TCP客戶端模式為需配置目標服務器IP、端口及自動重連時間,其中自動重連時間指網絡連接中斷或者服務器異常時,重新發起主動連接的時間間隔,循環自動重連直到正常連接上為止;

      ④UDP廣播模式為需配置本地端口、目標服務器IP和目標端口。

      2 硬件設計

      此串口服務器根據以上指標選用最新的樹莓派、USB-hub及北京世紀聯信公司生產的USB/四串口轉換器組合而成。

      2.1 硬件結構組成

      串口服務器硬件結構組成如圖1所示,樹莓派具有兩個USB接口、一個TTL串口及一個10/100 MHz自適應以太網接口。一個USB接口通過USB-hub和n(可據情況選擇,最多時n=4)個USB/串口轉換器擴展出4n個RS232/RS422/RS455串口,另一個可外接無線USB網卡,從而實現局域網或廣域網中有線或無線數據傳輸。

    基于樹莓派的多串口多總線服務器設計

      圖1 硬件結構框圖

      2.2 樹莓派簡介

      樹莓派(Raspberry Pi)是一款基于Linux系統的只有一張信用卡大小的單板計算機,配備一枚博通生產的700 MHzARM架構BCM2835處理器,512 MB內存,使用SD卡當作存儲介質,操作系統采用開源的Linux系統,提供并支持Python作為主要編程語言。

      2.3 USB-hub簡介

      USB-hub(USB集線器)是一個將多個USB設備連接到計算機上的USB接口或另一個USB集線器上某時候,它們都來自于主板內部一個或者兩個主USB接口,而不是相互獨立的硬件。一個USB接口、一個USB集線器和若干個外圍設備可以構建一個USB網絡。本系統選用的USB-hub由一個USB接口擴展出4個USB接口。

      2.4 USB/串口轉換器簡介

      USB/串口轉換器選用北京世紀聯信LENSYS-USB2COM-4模塊。它是一種導軌安裝式串口擴展模塊,實現了用USB口擴展4串口的功能,可以通過USB快速擴展四個計算機串口,通過撥碼開關設定RS 232/422/485接口方式,還可以實現4個RS 232轉4個RS422/485的功能。通過該模塊能夠可靠、實時、便捷地完成工業現場RS232/485/422信號的傳輸和轉換,廣泛應用于石油天然氣、水利、電力調度、市政調度等行業。

      3 軟件設計

      此串口服務器軟件設計基本結構如圖2所示,客戶端只是WEB瀏覽器,軟件設計則主要體現為服務器端的網頁展現、業務邏輯和數據存儲。

      WEB服務器負責串口服務器通信參數的手動配置和存儲、通信程序的手動啟停等;應用服務器負責實現TCP/IP網絡與串行接口設備的互通,完成TCP/IP協議格式的數據與串行數據間的相互轉換;數據庫主要包含用戶管理數據表、串口參數配置數據表、工作模式配置數據表。

    基于樹莓派的多串口多總線服務器設計

      圖2 軟件設計基本結構圖

      下面介紹串口服務器軟件設計中3個主要任務:WEB服務器的設計、WEB配置頁面的設計和串口聯網通信程序的設計。

      3.1 WEB服務器的設計

      由于串口數量較多,所以在樹莓派中植入WEB服務器,由WEB服務器將用戶的請求轉換為對后臺數據的查詢或更新,并將友好的圖形界面在瀏覽器上展示給用戶,實現簡便統一的遠程通信參數配置、設備管理、用戶管理、監控串口服務器運行狀態。

      本串口聯網服務器選擇樹莓派自帶的Python作為開發語言,采用小巧而靈活的web.py開發框架提供HTTP服務,其輕量級滿足采集系統對數據傳輸模塊的要求,可以提高系統的使用效率,WEB服務器設計流程如圖3所示。

    基于樹莓派的多串口多總線服務器設計

      圖3 WEB服務器設計流程

      設備上電或系統重啟后,WEB服務自動啟動,并初始化WEB服務器所需顯示和配置的信息,用戶通過瀏覽器訪問系統指定端口進行登錄認證即可訪問參數配置頁面。其中,設備信息和網絡信息通過系統文件管理器進行查看和配置,用戶信息、串口參數和工作模式信息通過數據庫進行讀寫,幫助信息則通過FTP服務器進行串口服務器說明手冊、公司服務信息等文檔下載。

      3.2 WEB配置頁面設計

      WEB配置頁面即WEB服務器的展示層,如圖4所示,掃描出的串口數表明該串口服務器帶有16個串口,每個串口配置相互獨立。

    基于樹莓派的多串口多總線服務器設計

      圖4 WEB配置界面

      由于配置程序設計采取工作模式配置與串口參數配置相關聯,如果選用前3個串口,則工作模式配置中只顯示此3個串口的工作模式配置界面,如圖5所示。

    基于樹莓派的多串口多總線服務器設計

      圖5 工作模式配置界面

      以上配置方式可方便實現批量配置,配置完成后可生成配置信息查看界面,如圖6所示,該界面還可進行選中串口的通信參數、工作模式的編輯和刪除。

    基于樹莓派的多串口多總線服務器設計

      圖6 配置信息查看界面

      3.3 串口聯網通信程序設計

      WEB服務器完成配置工作后,即可啟動通信程序進行數據通信工作,具體實現流程如圖7所示。此程序在設備上電或系統重啟后自動啟動,讀取用戶配置的串口通信和工作模式參數后,進入通信程序無限循環,圖中進程數即現場應用所配置的串口總數。其中N為串口服務器串口數,M(M≤W)為N個串口中使用的串口數;n為各自編號,I為進程編號;S為所配會話數,s為線程編號。

    基于樹莓派的多串口多總線服務器設計

      圖7 串口服務器通信程序工作流程

      3種工作模式中,TCP服務器和TCP客戶端同屬TCP協議傳輸程序,其數據幀收發處理過程都采用同一種思想,下面介紹TCP、UDP協議傳輸程序和數據幀轉發程序的設計:

      3.3.1 TOP協議傳輸程序設計

      TCP協議傳輸程序涉及到服務器端和客戶端的設計。

      服務器端程序設計:

      ①建立一個socket,選擇類型INET及TCP連接方式;

      ②讀取配置端口進行綁定監聽,等待客戶端主動連接;

      ③設置監聽隊列大小;

      ④進入一個無限循環,使用accept()等待客戶連接,返回的新連接對應于客戶端IP,建立通信信道;

      ⑤進入無限子循環,通過sendall()及recv()進行讀寫操作。

      客戶端程序設計:

      ①建立一個socket,選擇類型及連接方式同服務器端;

      ②讀取配置所配置遠程服務器IP及端口;

      ③進入無限循環,使用connect()連接遠程服務器,若連不上,達到所配置超時間隔后再次重連;

      ④連接成功后進入無限子循環,通過sendall()及recv()進行讀寫操作。

      3.3.2 UDP協議傳輸程序設計

      UDP傳輸稱為無連接傳輸,不存在TCP中的三次握手和錯誤重傳機制,其傳輸程序需同時讀取所配置的本地IP和端口、遠程IP和端口,建立數據報形式的socket后可同時作為發送端和接收端。作為發送端時,sendto()發送地址為遠程接收端IP和端口,作為接收端時公開本地IP和端口,recvfrom()等待遠程發送端的數據到來,可以接收任何地址發送過來的數據包。

      3.3.3 數據幀轉發程序設計

      串口服務器功能模塊實現了串行鏈路數據與以太網數據轉換的功能:一方面,接收來自串行鏈路的數據幀,并將其轉化為以太網鏈路數據幀后發出;另一方面,接收來自以太網鏈路的數據幀,并將其轉化為串行鏈路數據幀后發出。以上兩個通信過程并行執行,在程序設計中采取多線程實現方式。

      (1)網絡數據的接收

      每種通信模式下,網絡數據的接收都在指定的回調函數中實現,TCP通信接收函數為recv(),而UDP通信中為recvfrom()。當數據幀長度積累到指定的接收緩沖區大小或達到串口超時還不足指定數據幀長度,立即調用實例化后的串口發送函數write(),即可將緩沖區中接收到的數據通過串口轉發。

      (2)網絡數據的發送

      接收串口數據時調用串口接收函數read(),當數據幀長度達到串口接收緩沖區大小或串口超時,立即調用網絡發送函數把該緩沖區中的數據幀通過網口轉發,其中TCP通信發送函數為sendall(),而UDP通信為sendto()。

      結語

      經全面測試合格后,目前本串口服務器已經成功應用到工業現場,由此可見,本串口服務器支持高頻轉發、大數據幀實時轉發,可長期、全天候穩定運行。

    (審核編輯: 智匯張瑜)

    聲明:除特別說明之外,新聞內容及圖片均來自網絡及各大主流媒體。版權歸原作者所有。如認為內容侵權,請聯系我們刪除。

    主站蜘蛛池模板: 久草青青| 久久婷婷色| av在线一区二区三区 | 99精品视频在线 | 国产高清在线精品一区二区三区 | 亚洲精品视频在线播放 | 在线一区 | 欧美1区| 欧美精品综合 | 精品无人乱码区1区2区3区 | 9uu在线观看 | 亚洲精品一区二三区不卡 | 亚洲高清视频一区二区 | 日日日操 | 精品国产乱码久久久久久闺蜜 | 国产精品成av人在线视午夜片 | 亚洲网色| 日韩在线观看 | 成人欧美一区二区三区黑人麻豆 | 一区二区三区亚洲 | 日韩在线不卡 | 成人在线视频播放 | 日本免费看 | 国产色网 | 国产69精品久久久久观看黑料 | 久久久精品亚洲 | 一区二区三区视频 | 日韩一区二区三区在线观看 | 欧美综合一区二区 | 亚洲欧洲一区二区 | 男女做爰高清无遮挡免费视频 | 高清久久久久 | 精品无码久久久久久国产 | 欧美一区二区精品久久 | 久久久资源 | 天天射欧美 | 欧美伊人影院 | 免费观看一级特黄欧美大片 | 午夜视频一区二区 | 亚洲精品成人a8198a | 在线视频成人 |