美章網(wǎng) 資料文庫 高速串行總線的RS485串口通信接口設(shè)計范文

高速串行總線的RS485串口通信接口設(shè)計范文

本站小編為你精心準備了高速串行總線的RS485串口通信接口設(shè)計參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。

高速串行總線的RS485串口通信接口設(shè)計

摘要:工業(yè)現(xiàn)場存在大量RS5串口接入設(shè)備,然而一般處理器集成的RS5串口個數(shù)有限,難以滿足實際應(yīng)用需求。通過研究分析RS5串口的應(yīng)用需求和變電站輔助設(shè)備的結(jié)構(gòu)特點,提出一種基于高速串行總線的分布式RS5串口通信方式,重點討論了通信協(xié)議設(shè)計和通信接口設(shè)計。采用該方案研制的變電站輔助設(shè)備,提高了RS5串口可擴展性,易于升級與維護。現(xiàn)場運行結(jié)果表明該方案的有效性和實用性。

關(guān)鍵詞:串行高速總線;分布式;RS5串口;通信

RS5串口通信技術(shù)具有傳輸距離遠、成本低、抗干擾能力強等優(yōu)點,在計算機通信領(lǐng)域占有一席之地。但是由于RS5總線缺少總線仲裁,多對多會導(dǎo)致多個設(shè)備在總線上信號沖撞,所以只能構(gòu)成一對一或一對多的通信網(wǎng)絡(luò),使其難以實現(xiàn)較為復(fù)雜的工業(yè)現(xiàn)場測控網(wǎng)絡(luò)的構(gòu)建[1]。控制器局域網(wǎng)網(wǎng)絡(luò)(ControllerAreaNetwork,CAN)是應(yīng)用最為廣泛的工業(yè)現(xiàn)場總線之一,具有總線仲裁、高可靠性和高性能等特點,在變電站、礦山煤場、汽車等領(lǐng)域有廣泛的應(yīng)用[2-4]。但是CAN總線最高速率只有1Mbps,難以滿足高速數(shù)據(jù)采集、通信的速率要求。高速串行總線(High-speedSerialBus,HSB)利用低壓差分信號(LowVoltageDef-erentialSignaling,LVDS)的高速特點(最高1.23Gbps)來改進CAN總線的性能,其中CAN作為控制總線,LVDS作為數(shù)據(jù)總線,從而實現(xiàn)多點互聯(lián)的大數(shù)據(jù)量高速通信的應(yīng)用需求,在變電站等領(lǐng)域有廣泛應(yīng)用[5-6]。變電站內(nèi)一次設(shè)備在線監(jiān)測、火災(zāi)消防、安全防衛(wèi)、動環(huán)系統(tǒng)等為變電站監(jiān)控提供輔助支撐的設(shè)備,總稱為輔助設(shè)備。輔助設(shè)備通過RS5接口接入火災(zāi)自動報警系統(tǒng)、溫濕度傳感器、空調(diào)控制器等外部監(jiān)測和控制設(shè)備,實現(xiàn)對各種數(shù)據(jù)的采集接入和設(shè)備的控制[7-8]。然而一般的處理器集成的串口資源有限,難以滿足使用需求,針對此問題,本文實現(xiàn)了一種基于高速串行總線的分布式串口擴展方式,可以根據(jù)使用需求快速擴展串口資源。

1系統(tǒng)概述

基于靈活硬件資源配置和硬件平臺設(shè)計考慮,典型的變電站輔助設(shè)備裝置硬件系統(tǒng)采用多板卡的分布式結(jié)構(gòu),由控制、數(shù)字量采集、模擬量采集和RS5通信等板卡組成,每個板卡可以根據(jù)需要進行多個配置,裝置內(nèi)部互聯(lián)總線采用HSB總線,硬件總線架構(gòu)圖如圖1所示。控制板卡是輔助設(shè)備的核心,通過HSB總線與其他板卡進行通信,對采集的數(shù)據(jù)進行計算處理,其中的FPGA模塊實現(xiàn)HSB總線和千兆以太網(wǎng)總線控制,通過千兆以太網(wǎng)總線與CPU模塊互聯(lián);CPU模塊為ARMCortex-A7系列處理器,處理器包含4個CPU核心,主頻1.2GHz,運行嵌入式Linux操作系統(tǒng)。RS5通信板卡包含8個RS5接口,用于接入RS5接口設(shè)備,其中的FPGA模塊實現(xiàn)HSB總線控制和RS5總線控制功能。其他板卡與本文內(nèi)容無關(guān),限于篇幅不再贅述。RS5通信板卡的FPGA接收RS5報文后,添加HSB報文頭后發(fā)送到HSB總線,控制板卡的FPGA從HSB總線接收HSB報文后,通過千兆以太網(wǎng)口上送CPU,由CPU進行HSB報文解包和計算處理,至此,完成一幀RS5報文的接收。控制板卡的CPU接收到RS5報文后,添加HSB報文頭后通過千兆以太網(wǎng)口發(fā)送給FPGA,F(xiàn)PGA的HSB總線控制模塊將HSB報文發(fā)送到HSB總線,RS5通信板卡的FPGA從HSB總線接到HSB報文后,從HSB報文中解析出RS5報文,并根據(jù)HSB報文頭中的相關(guān)信息將RS5報文發(fā)送到指定的RS5接口,至此,完成一幀RS5報文的發(fā)送。

2通信協(xié)議設(shè)計

基于通信過程的復(fù)雜性和靈活性考慮,通常將通信協(xié)議劃分為若干個層次,每個層次完成一部分功能,各個層次相互配合共同完成通信功能。控制板卡與RS5通信板卡間的通信基于HSB總線,依照分層通信體系結(jié)構(gòu),通信協(xié)議從下往上依次劃分為數(shù)據(jù)鏈路層、HSB通信協(xié)議層和串口通信協(xié)議層,如圖2所示。數(shù)據(jù)鏈路層的主要功能是幀編碼和誤差糾正控制。通過鏈路層協(xié)議來控制數(shù)據(jù)的傳輸,以保證被傳輸數(shù)據(jù)的正確性。使用千兆以太網(wǎng)協(xié)議作為鏈路層協(xié)議,不僅可以利用Linux操作系統(tǒng)現(xiàn)有的千兆以太網(wǎng)驅(qū)動和編程接口,減少開發(fā)工作量,而且可以利用Linux網(wǎng)絡(luò)協(xié)議棧的NAPI收包、套接字緩存等特性[],提高通信性能和穩(wěn)定性。HSB通信協(xié)議層的主要功能是實現(xiàn)控制板卡與RS5通信板卡間的通信,也是本文討論的重點。HSB通信協(xié)議報文的各字段定義如圖3所示。報文目標節(jié)點地址、報文源節(jié)點地址、報文優(yōu)先級、報文長度5個字段用于HSB的CAN總線控制,其中,報文目標節(jié)點地址字段表示通信的接收方,報文源節(jié)點地址字段表示通信的發(fā)送方,報文優(yōu)先級字段用于CAN總線的發(fā)送優(yōu)先級控制,報文長度字段用于指定HSB協(xié)議數(shù)據(jù)段的長度。報文類型、串口端口、串口配置3個字段用于HSB的RS5串口報文控制,其中,報文類型字段用于區(qū)分發(fā)送報文和接收報文,串口端口字段用于確定RS5通信板卡上的串口地址,串口配置字段用于確定串口的波特率和通信協(xié)議配置,該通信協(xié)議由1個起始位、5~個數(shù)據(jù)位、1~2個停止位、1個奇偶校驗位組成。串口通信協(xié)議層的主要功能是實現(xiàn)各種應(yīng)用功能。作為應(yīng)用層協(xié)議,位于HSB報文的數(shù)據(jù)部分。常用的通信協(xié)議包括ModBus、ProfiBus協(xié)議等。

3通信接口設(shè)計

“一切皆是文件”是Unix/Linux的基本哲學(xué)之一,Linux常用文件接口包括打開、關(guān)閉、讀、寫等。基于此設(shè)計思想,RS5串口通信接口設(shè)計如下。COMOpen用于打開和初始化RS5通信板卡上的串口設(shè)備,其中slotid參數(shù)用于指定RS5通信板卡地址,devid參數(shù)用于指定串口端口地址,baud參數(shù)用于指定串口波特率,flags參數(shù)用于指定串口通信協(xié)議配置,接口返回打開的串口對象指針;COMClose用于關(guān)閉串口;COMWrite、COMRead分別用于串口報文發(fā)送和接收,其中dev參數(shù)用于指定已打開的串口對象,buf、len參數(shù)用于指定串口報文緩沖區(qū)的首地址和長度。structcom_dev觹COMOpen(uint_tslotid,uint_tdevid,uint_tbaud,uint_tflags);intCOMClose(structcom_dev觹dev);intCOMWrite(structcom_dev觹dev,uint8_t觹buf,uint_tlen);intCOMRead(structcom_dev觹dev,uint8_t觹buf,uint_tlen);

3.1串口打開和初始化

因為串口報文通過千兆以太網(wǎng)總線進入控制板卡的CPU,所以CPU通過網(wǎng)絡(luò)接口設(shè)備與RS5通信板卡進行通信。首先通過socket接口打開千兆以太網(wǎng)接口網(wǎng)絡(luò)接口設(shè)備,并綁定網(wǎng)絡(luò)協(xié)議號,網(wǎng)絡(luò)協(xié)議號由RS5通信板卡地址slotid和串口端口地址devid構(gòu)造生成,通過網(wǎng)絡(luò)協(xié)議號實現(xiàn)與指定RS5通信板卡的串口端口建立通信通道。接著設(shè)置報文接收超時的時間,避免讀接口因為無報文而阻塞。然后創(chuàng)建并初始化串口設(shè)備對象,串口設(shè)備對象包含socket文件描述符、RS5通信板卡地址、串口地址和串口配置等信息,作為其他接口的參數(shù),提供相關(guān)通信信息。最后發(fā)送一個數(shù)據(jù)長度為0的HSB報文,完成串口波特率和通信協(xié)議配置。

3.2串口報文發(fā)送

串口報文發(fā)送接口的核心工作是為串口報文添加HSB報文首部后發(fā)出。首先對串口設(shè)備對象、報文緩沖區(qū)的首地址和長度進行合法性檢查,然后通過串口報文長度加上HSB報文首部長度計算出HSB報文長度,以此申請一個HSB報文緩沖區(qū)并初始化此HSB報文的目標節(jié)點地址、報文長度、報文類型、串口配置、數(shù)據(jù)段等各個發(fā)送相關(guān)字段,最后通過網(wǎng)絡(luò)通信接口sendto發(fā)出HSB報文。

3.3串口報文接收

串口報文接收接口與串口報文發(fā)送接口的處理流程類似。首先對所有參數(shù)進行合法性檢查,然后計算出HSB報文長度并申請一個HSB報文緩沖區(qū),接著使用網(wǎng)絡(luò)通信接口recvfrom接收到HSB報文,最后將接收到的HSB報文的數(shù)據(jù)段數(shù)據(jù)拷貝到串口報文接收緩沖區(qū)。

3.4串口關(guān)閉

串口關(guān)閉接口的主要功能是釋放相關(guān)系統(tǒng)資源,如關(guān)閉socket接口、釋放串口設(shè)備對象等。

4工程應(yīng)用

本方案目前已應(yīng)用到新一代的安防監(jiān)控、消防信息傳輸控制等多個變電站輔助設(shè)備中。通過RS5通信板卡的RS5接口,與安防監(jiān)控、火災(zāi)自動報警系統(tǒng)等終端的通信功能工作正常,通過RS5接口接入的擴展鍵盤、探測器和輸出前端等設(shè)備,能正確實現(xiàn)報警信號、布撤防等數(shù)據(jù)交互。設(shè)備現(xiàn)場運行情況良好,所有功能工作穩(wěn)定,性能符合裝置技術(shù)指標要求。本方案提高設(shè)備的可擴展性,通信協(xié)議易于升級與維護,對低速通信總線的擴展具有一定參考價值。

作者:陳彬 陳從靖 單位:南京國電南自電網(wǎng)自動化有限公司

主站蜘蛛池模板: 又黄又大又爽免费视频| 国产精品毛片完整版视频| 久久国产免费观看精品3| 欧美成人天天综合在线视色| 免费无遮挡无码永久视频| 色片网站在线观看| 国产欧美日韩一区二区加勒比| 99久re热视频这里只有精品6| 成人免费一区二区三区| 久久国产成人精品国产成人亚洲| 欧美双茎同入视频在线观看| 亚洲色图欧美激情| 精品乱人伦一区二区| 国产V亚洲V天堂无码久久久| 鲤鱼乡太大了坐不下去| 国产真实夫妇交换| 69天堂人成无码麻豆免费视频| 天天综合色天天桴色| 一级黄色片大全| 新梅瓶1一5集在线观看| 久久夜色精品国产欧美| 欧美va在线播放免费观看| 国产特级毛片aaaaaa高潮流水 | 白医生的控制欲| 国产福利一区二区三区在线视频| 99久久精品免费看国产| 学霸c了我一节课| 中文乱码字字幕在线第5页| 日本在线|中文| 久久精品女人天堂AV免费观看| 欧美乱强伦xxxxx高潮| 亚洲欧美成人一区二区在线电影 | 91精品国产免费入口| 天堂新版资源中文最新版下载地址| 三级国产4国语三级在线| 护士好爽好深好多水| 久久久久久不卡| 日本久久久久久久| 久久人人爽人人爽人人片dvd| 日韩欧美在线播放| 九九九好热在线|