<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 測試測量 > 正文

    案例分析:打造以“樹莓派”為核心的多串口多總線服務器

    發(fā)布時間:2014-12-07 責任編輯:echolady

    【導讀】在工業(yè)控制中,各種設備的信號采集和監(jiān)控都只能依靠串口總線,因此難以實現(xiàn)擴展。本文解析了以“樹莓派”為核心的多串口多總線服務器的方案設計。

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

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

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

    1 總體設計

    根據(jù)當今工業(yè)現(xiàn)場數(shù)據(jù)傳輸需求,應具備的技術指標和設置參數(shù)如下。

    1.1 技術指標

    ①主控芯片:32位700 MHz的ARM1176JZF—S處理器;
    ②操作系統(tǒng):Linux;
    ③支持協(xié)議:TCP/IP、UDP、HTTP、FTP;
    ④網(wǎng)絡接口:10/100 Mbps自適應以太網(wǎng)接口;
    ⑤串口類型:1~16個RS 232/RS485/RS422接口,1個TTL電平串口;
    ⑥參數(shù)配置方式:WEB瀏覽器配置;
    ⑦會話數(shù):支持多連接,滿足5個以內(nèi)用戶同時管理一個模塊設備;
    ⑧工作模式:TCP客戶端、TCP服務器、UDP廣播模式;
    ⑨指示燈:電源指示燈、通信指示燈;
    ⑩供電電壓:5 V。

    1.2 設置參數(shù)

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

    (1)串口通信參數(shù)

    ①波特率為2 400~115 200 bps;
    ②數(shù)據(jù)位為6/7/8/9;
    ③校驗位為None/Even/Odd;
    ④停止位為1/1.5/2;
    ⑤成幀長度為1~15000字節(jié);
    ⑥成幀間隔為30~500位。

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

    T= N/B (1)

    (2)工作模式參數(shù)

    ①單個串口支持會話數(shù)為1~5個,每個會話模式間相互獨立;
    ②TCP服務器模式為綁定端口范圍為1025~65535;
    ③TCP客戶端模式為需配置目標服務器IP、端口及自動重連時間,其中自動重連時間指網(wǎng)絡連接中斷或者服務器異常時,重新發(fā)起主動連接的時間間隔,循環(huán)自動重連直到正常連接上為止;
    ④UDP廣播模式為需配置本地端口、目標服務器IP和目標端口。
    [page]
    2 硬件設計

    此串口服務器根據(jù)以上指標選用最新的樹莓派、USB—hub及北京世紀聯(lián)信公司生產(chǎn)的USB/四串口轉換器組合而成。

    2.1 硬件結構組成

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

    案例分析:打造以“樹莓派”為核心的多串口多總線服務器
    圖1 硬件結構框圖
     
    2.2 樹莓派簡介

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

    2.3 USB—hub簡介

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

    2.4 USB/串口轉換器簡介

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

    3 軟件設計

    此串口服務器軟件設計基本結構如圖2所示,客戶端只是WEB瀏覽器,軟件設計則主要體現(xiàn)為服務器端的網(wǎng)頁展現(xiàn)、業(yè)務邏輯和數(shù)據(jù)存儲。

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

    案例分析:打造以“樹莓派”為核心的多串口多總線服務器
    圖2 軟件設計基本結構圖
     
    下面介紹串口服務器軟件設計中3個主要任務:WEB服務器的設計、WEB配置頁面的設計和串口聯(lián)網(wǎng)通信程序的設計。

    3.1 WEB服務器的設計

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

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

    案例分析:打造以“樹莓派”為核心的多串口多總線服務器
    圖3 WEB服務器設計流程
     
    設備上電或系統(tǒng)重啟后,WEB服務自動啟動,并初始化WEB服務器所需顯示和配置的信息,用戶通過瀏覽器訪問系統(tǒng)指定端口進行登錄認證即可訪問參數(shù)配置頁面。其中,設備信息和網(wǎng)絡信息通過系統(tǒng)文件管理器進行查看和配置,用戶信息、串口參數(shù)和工作模式信息通過數(shù)據(jù)庫進行讀寫,幫助信息則通過FTP服務器進行串口服務器說明手冊、公司服務信息等文檔下載。
    [page]
    3.2 WEB配置頁面設計

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

    案例分析:打造以“樹莓派”為核心的多串口多總線服務器
    圖4 WEB配置界面
     
    由于配置程序設計采取工作模式配置與串口參數(shù)配置相關聯(lián),如果選用前3個串口,則工作模式配置中只顯示此3個串口的工作模式配置界面,如圖5所示。

    案例分析:打造以“樹莓派”為核心的多串口多總線服務器
    圖5 工作模式配置界面

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

    案例分析:打造以“樹莓派”為核心的多串口多總線服務器
    圖6 配置信息查看界面

    3.3 串口聯(lián)網(wǎng)通信程序設計

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

    案例分析:打造以“樹莓派”為核心的多串口多總線服務器
    圖7 串口服務器通信程序工作流程
     
    3種工作模式中,TCP服務器和TCP客戶端同屬TCP協(xié)議傳輸程序,其數(shù)據(jù)幀收發(fā)處理過程都采用同一種思想,下面介紹TCP、UDP協(xié)議傳輸程序和數(shù)據(jù)幀轉發(fā)程序的設計:

    3.3.1 TOP協(xié)議傳輸程序設計

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

    服務器端程序設計:

    ①建立一個socket,選擇類型INET及TCP連接方式;
    ②讀取配置端口進行綁定監(jiān)聽,等待客戶端主動連接;
    ③設置監(jiān)聽隊列大小;
    ④進入一個無限循環(huán),使用accept()等待客戶連接,返回的新連接對應于客戶端IP,建立通信信道;
    ⑤進入無限子循環(huán),通過sendall()及recv()進行讀寫操作。

    客戶端程序設計:

    ①建立一個socket,選擇類型及連接方式同服務器端;
    ②讀取配置所配置遠程服務器IP及端口;
    ③進入無限循環(huán),使用connect()連接遠程服務器,若連不上,達到所配置超時間隔后再次重連;
    ④連接成功后進入無限子循環(huán),通過sendall()及recv()進行讀寫操作。

    3.3.2 UDP協(xié)議傳輸程序設計

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

    3.3.3 數(shù)據(jù)幀轉發(fā)程序設計

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

    (1)網(wǎng)絡數(shù)據(jù)的接收

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

    (2)網(wǎng)絡數(shù)據(jù)的發(fā)送

    接收串口數(shù)據(jù)時調(diào)用串口接收函數(shù)read(),當數(shù)據(jù)幀長度達到串口接收緩沖區(qū)大小或串口超時,立即調(diào)用網(wǎng)絡發(fā)送函數(shù)把該緩沖區(qū)中的數(shù)據(jù)幀通過網(wǎng)口轉發(fā),其中TCP通信發(fā)送函數(shù)為sendall(),而UDP通信為sendto()。

    相關閱讀:

    適用于緊湊型服務器電源的低通態(tài)電阻功率MOSFET
    關于服務器冗余電源配置實例的探討
    關于服務器的電源配置方案
    要采購轉換器么,點這里了解一下價格!
    特別推薦
    技術文章更多>>
    技術白皮書下載更多>>
    熱門搜索
    ?

    關閉

    ?

    關閉

    人妻中文字幕无码专区| 日韩中文字幕在线视频| 中文字幕国产在线| 国产精品99无码一区二区| 台湾无码AV一区二区三区| 亚洲精品无码久久毛片| 无码少妇一区二区性色AV| 久草中文在线观看| 中文国产成人精品久久不卡| 黄A无码片内射无码视频| 中文字幕乱码人妻无码久久 | 无码高清不卡| 国产白丝无码免费视频| 亚洲av永久无码精品国产精品| 日本中文字幕在线2020| 亚洲综合最新无码专区| 国产成人精品无码片区在线观看 | 自拍中文精品无码| √天堂中文官网8在线| 亚洲精品无码av天堂| 国产成人AV无码精品| 国产产无码乱码精品久久鸭| 久久精品无码专区免费东京热| 曰韩精品无码一区二区三区| 免费看成人AA片无码视频吃奶| 最近中文字幕完整免费视频ww| 久久精品中文无码资源站| 欧美人妻aⅴ中文字幕| 天堂资源中文最新版在线一区| A最近中文在线| 被夫の上司に犯中文字幕| 亚洲va中文字幕无码久久不卡| 国产精品 中文字幕 亚洲 欧美| 中文字幕亚洲精品无码| 天堂在线资源中文在线8| 久久精品aⅴ无码中文字字幕不卡| 日韩亚洲不卡在线视频中文字幕在线观看 | 精品视频无码一区二区三区| 无码国产色欲XXXX视频| 精品少妇无码AV无码专区| 国产99久久九九精品无码|