• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Modbus 通信協(xié)議的信號采集系統(tǒng)

      2021-06-17 12:42:18吳晨紅
      電子制作 2021年7期
      關(guān)鍵詞:下位通信協(xié)議指令

      吳晨紅

      (合肥工業(yè)大學(xué)電子科學(xué)與應(yīng)用物理學(xué)院,安徽合肥,230601)

      0 前言

      如今,嵌入式系統(tǒng)在人們的生活中隨處可見。從應(yīng)用的角度,嵌入式系統(tǒng)包括監(jiān)視裝置[1]。在嵌入式系統(tǒng)中,此信號采集系統(tǒng)屬于是監(jiān)視裝置。在各種工業(yè)現(xiàn)場總線被應(yīng)用于各行各業(yè)的電壓監(jiān)視裝置中時,并沒有一個標(biāo)準(zhǔn)化統(tǒng)一的總線協(xié)議,導(dǎo)致使用者感受到數(shù)據(jù)可讀性差或難度較大且復(fù)雜。所以使用一種開放性、可擴(kuò)充性和標(biāo)準(zhǔn)化的通信協(xié)議對促進(jìn)嵌入式系統(tǒng)的監(jiān)視裝置的發(fā)展顯得尤為重要。Modicon 公司于1927 年發(fā)明Modbus 協(xié)議[2],具有劃時代意義。Modbus 協(xié)議以其開放性、高可靠性、高效簡單性、免費等優(yōu)點,在監(jiān)視裝置領(lǐng)域被廣泛使用,表現(xiàn)出Modbus協(xié)議強(qiáng)大的生命力,在我國監(jiān)視裝置領(lǐng)域已經(jīng)成為標(biāo)準(zhǔn)。Modbus 協(xié)議支持RS-485 通信接口。因此,如果我們實現(xiàn)了在下位機(jī)與PC 端之間通過RS-485 總線并以Modbus 通信協(xié)議進(jìn)行 的正常通信,就可以達(dá)到電壓監(jiān)視裝置開放性、可擴(kuò)充性和標(biāo)準(zhǔn)化的目的。

      在此系統(tǒng)中,下位機(jī)之間選用CAN(Controller Area Network,控制器局域網(wǎng)現(xiàn)場總線)總線[2]完成數(shù)據(jù)傳輸。在強(qiáng)噪音的環(huán)境下,CAN 總線目前今在監(jiān)控裝置中應(yīng)用較多的RS-485 總線的誤碼率低。同時,CAN 總線具有穩(wěn)定簡單的開放性設(shè)計,以及成本低廉[3]的特點。因而CAN 總線可在電壓監(jiān)視裝置中應(yīng)用,使離散的數(shù)據(jù)檢測實現(xiàn)可靠性和實時性的數(shù)據(jù)交換。

      因為人們對更為方便的生活需求逐漸變強(qiáng),不斷促進(jìn)著工業(yè)的發(fā)展。工業(yè)現(xiàn)場中出現(xiàn)多臺設(shè)備之間的通信需求促進(jìn)了監(jiān)視裝置的發(fā)展進(jìn)步。為提供對控制系統(tǒng)的集中管理,此設(shè)計基于各總線技術(shù)的基礎(chǔ),結(jié)合Modbus 協(xié)議的方式來實現(xiàn)對監(jiān)控點電壓信號的檢測與數(shù)據(jù)傳輸。且該系統(tǒng)對需要基于Modbus協(xié)議實現(xiàn)數(shù)據(jù)傳輸?shù)谋O(jiān)控設(shè)備具有參考意義,如溫度、濕度和水位等數(shù)據(jù)。

      1 系統(tǒng)總體設(shè)計

      基于Modbus通信協(xié)議的信號采集系統(tǒng)的功能流程如下:

      (1)下位機(jī)2 將信號源轉(zhuǎn)換為電信號,單片機(jī)將接受的數(shù)據(jù)通過CAN 總線發(fā)送給下位機(jī)1;

      (2)下位機(jī)1通過按鍵控制接受對電壓模擬信號的采集;

      (3)當(dāng)PC 端發(fā)送Modbus 協(xié)議的查詢指令,下位機(jī)1 則通過RS-485 總線以Modbus 協(xié)議把數(shù)據(jù)上傳到PC 端。

      基于Modbus 通信協(xié)議的信號采集系統(tǒng)將以STM-32F103C8T6 微控制器(Microcontroller Unit,MCU)控制各模塊,完成對信號源電壓信號的采集。此信號采集系統(tǒng)可以將采集的模擬信號轉(zhuǎn)換為數(shù)字信號,同時也能將所采集的電壓數(shù)字信號發(fā)送給PC 端,以達(dá)到一定距離的電壓監(jiān)控目的。綜上所述,基于Modbus 通信協(xié)議的信號采集系統(tǒng)可由以下6 個部分組成:信號源、電壓采集模塊、STM32 微控制器模塊、CAN 總線傳輸模塊、RS-485 總線傳輸模塊和PC端接收模塊。

      電壓采集系統(tǒng)的工作原理如下:信號源的電壓信號先通過電壓采集模塊,即通過STM32 的ADC(Analog-to-Digital Converter,模擬數(shù)字轉(zhuǎn)化器)將電壓模擬信號轉(zhuǎn)換為電壓數(shù)字信號,由下位機(jī)2 的STM32 微控制器模塊保存,再經(jīng)過CAN 總線傳輸?shù)较聶C(jī)位1。信號經(jīng)下機(jī)位1 的MCU 微控制單元處理后,數(shù)據(jù)將通過以Modbus 協(xié)議由RS-485 總線上傳給電腦端的串口助手接收,如圖1 所示。

      圖1 基于Mobus 通信協(xié)議的信號采集系統(tǒng)框圖

      2 硬件設(shè)計

      ■2.1 電壓采集模塊設(shè)計

      STM32 的ADC 模塊起著將模擬信號轉(zhuǎn)化為數(shù)字信號的中介作用。STM32F103 系列MCU 上自帶12 位的ADC 模/數(shù)轉(zhuǎn)換器[4],具有的18 個通道模/數(shù)轉(zhuǎn)換有單次和連續(xù)的模式,將模擬信號轉(zhuǎn)化為數(shù)字信號,并以二進(jìn)制[4]的形式保存。

      ADC 的重要參數(shù)包括量程、分辨率和精度[1]等。在此系統(tǒng)中的STM32F103C8T6 芯片[5],由PA0 腳接外部信號源。芯片以1MHz 轉(zhuǎn)化速率、12 位轉(zhuǎn)化結(jié)果(12 位0~4095)。電壓量程為單極性,范圍為0~+3.3V;分辨率為12 位;最小精度位3.3V/212=0.0008056640625V;將采集的數(shù)據(jù)用電壓來顯示,設(shè)采集的數(shù)據(jù)為C(0~4095),則采樣電壓為U(V)計算公式為:

      ■2.2 CAN 總線傳輸模塊設(shè)計

      CAN 通信系統(tǒng)的每個節(jié)點都包括CAN 收發(fā)器、CAN 控制器[6]和微處理器3 個部分。微處理器STM32F103C8T6可控制CAN 節(jié)點數(shù)據(jù)的收發(fā)、處理和緩存;CAN 收發(fā)器選用JTA1050 芯片,這是一款有較強(qiáng)的抗干擾能力、速率較高的芯片;STM32F103C8T6 芯片以其內(nèi)部自帶bxCAN[7](Basic Extended CAN,基本擴(kuò)展CAN)作為CAN 控制器。用來以CAN 的協(xié)議格式發(fā)送或接受數(shù)據(jù)。

      作為一款標(biāo)準(zhǔn)高速CAN 收發(fā)器,TJA1050 芯片當(dāng)作物理總線和STM32F103C8T6 之間的接口。TJA1050 是一款5V 供電的芯片,可以給予CAN 控制器差動接收功能,以及給予CAN 總線差動發(fā)送性能。CAN 物理層的模式選用閉環(huán)通信網(wǎng)絡(luò),總線通訊速度最高為1Mbps,最大長度有40m。CAN 總線遵照ISO11898 標(biāo)準(zhǔn)是短距離的、高速的網(wǎng)絡(luò)??偩€的左右兩邊分別加上一個“120 歐”的終端電阻,如圖2 所示。

      圖2 CAN 接口電路

      ■2.3 RS-485 總線傳輸模塊設(shè)計

      STM32F103C8T6 將USART3 作 為RS-485 接 口[8]電路使用,而接口芯片選用的是MAX3485 芯片,這是一款3.3V供電的RS-485 芯片。MAX3485 芯片的DI 和RO 管腳分別接STM32 的PB10 和PB11 管腳,作為信號的接收和發(fā)送端;芯片的DE和兩個管腳分別是發(fā)送使能端和接收使能端,如圖3 所示。系統(tǒng)通信利用STM32 的USART3 外設(shè)作為通信節(jié)點中的串口控制器,連接MAX3485 芯片收發(fā)引腳,以完成由USART3 外設(shè)的TTL 電平信號轉(zhuǎn)化成RS-485 的差分信號。

      圖3 RS—485 接口電路

      Modbus 協(xié)議用在RS-485 通訊接口。因此,在下位機(jī)與上位機(jī)之間的通信我們通過基于Modbus 協(xié)議的RS-485總線來完成通過RS-485總線進(jìn)行基于Modbus協(xié)議的通信。

      3 關(guān)鍵軟件設(shè)計

      此系統(tǒng)采用針對嵌入式平臺的Modbus 協(xié)議作為上位機(jī)與下位機(jī)之間的通信協(xié)議。Modbus 協(xié)議的RTU(Remote Terminal Unit,遠(yuǎn)程終端裝置)模式[9]。RTU 方式下,數(shù)據(jù)收發(fā)的判定是經(jīng)過時間標(biāo)記器來確定數(shù)據(jù)幀的起始端和末端,并通過CRC(Cyclic Redundancy Check,循環(huán)冗余校驗碼)數(shù)據(jù)校驗[2]。Modbus RTU 協(xié)議[2]進(jìn)行通信時,每條指令需要連續(xù)的傳輸,并且指令中每8 位字節(jié)則分成兩個4 位十六進(jìn)制的字符。電壓采集系統(tǒng)以PC 端為主站,數(shù)據(jù)采集系統(tǒng)為從站,PC 端發(fā)送查詢指令到下位機(jī),下位機(jī)根據(jù)各自的編號向上位機(jī)返回各項采集的數(shù)據(jù),返回的數(shù)據(jù)通過Modbus 調(diào)試精靈顯示和查詢。此系統(tǒng)使用03 功能碼讀取保持寄存器,以及獲取十六進(jìn)制電壓數(shù)據(jù)的高位和低位。03 功能碼查詢指令和應(yīng)答格式如圖4 所示。

      圖4 03 功能碼指令格式

      Modbus RTU 協(xié)議需要對每個從站分配不同的地址,以完成一個一主機(jī)與多個從機(jī)進(jìn)行通信。系統(tǒng)軟件采用模塊化設(shè)計的思想,其中下位機(jī)1 主要分為STM32 微控制器模塊、CAN 總線傳輸模塊和RS-485 總線傳輸模塊,如圖5 所示。下位機(jī)1 首先要完成系統(tǒng)初始化,配置好各通信參數(shù),再調(diào)用串口接收命令讀取上位機(jī)查詢指令的數(shù)據(jù)幀;確定查詢地址正確后,再確定CRC 校驗正確與否;若校驗都正確,則將對應(yīng)的電壓數(shù)值保存到Modbus 的返回指令的數(shù)據(jù)位中;否則,上位機(jī)接收不到返回數(shù)據(jù)。

      圖5 下位機(jī)1 系統(tǒng)采集流程圖

      4 測試結(jié)果與分析

      PC 端與下位機(jī)1 通過USB 轉(zhuǎn)RS-485 轉(zhuǎn)換器連接來配置各通信參數(shù),構(gòu)建測試環(huán)境??梢缘玫阶x寄存器區(qū)的收發(fā)指令分別為:

      (1)上位機(jī)發(fā)送查詢指令:04 03 00 00 00 02 C4 5E;

      (2)上位機(jī)接收到的指令:04 03 04 00 E6 00 07 0F 06;

      其中接收指令格式如下:設(shè)備地址、03功能碼、4個字節(jié)、十六進(jìn)制電壓的低八位數(shù)值、十六進(jìn)制電壓的高八位數(shù)值、CRC 校驗位。綜上所述,此時采集的十六進(jìn)制電壓數(shù)據(jù)為07E6,即對應(yīng)十進(jìn)制數(shù)據(jù)2022,將數(shù)據(jù)帶入公式(1)可以得到:采樣電壓=(2022/4096)×3.3V=1.629V。

      由上述計算過程得到的測試結(jié)果可知:在一定誤差內(nèi),所得采樣電壓值與測試點實際電壓值近似相等。所以該系統(tǒng)可以實現(xiàn)以Modbus 通信協(xié)議格式獲得信號源的電壓,符合系統(tǒng)要求,如表1 所示。

      表1 數(shù)據(jù)采樣表

      5 結(jié)論

      此系統(tǒng)包含信號源、電壓采集模塊、STM32 微控制器模塊、CAN 總線傳輸模塊、RS-485 總線傳輸模塊、電腦端串口助手?jǐn)?shù)據(jù)接收模塊6 個組成部分,從而電腦端可實時查詢信號源的電壓值,實現(xiàn)了電壓監(jiān)視裝置與Modbus 協(xié)議的結(jié)合,并完成了電壓數(shù)據(jù)的正常傳輸。本文對需要基于Modbus 協(xié)議實現(xiàn)數(shù)據(jù)傳輸?shù)谋O(jiān)控設(shè)備具有參考意義,實現(xiàn)了一定距離的更具兼容性的通信系統(tǒng),具備推廣價值,可助力工業(yè)現(xiàn)場自動化的快速發(fā)展。

      猜你喜歡
      下位通信協(xié)議指令
      聽我指令:大催眠術(shù)
      發(fā)射機(jī)房監(jiān)控系統(tǒng)之下位機(jī)
      ARINC661顯控指令快速驗證方法
      LED照明產(chǎn)品歐盟ErP指令要求解讀
      電子測試(2018年18期)2018-11-14 02:30:34
      基于Z-Stack通信協(xié)議棧的紅外地溫采集電路設(shè)計
      景洪電廠監(jiān)控系統(tǒng)下位機(jī)數(shù)據(jù)傳輸網(wǎng)絡(luò)改造
      基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設(shè)計與研究
      圍觀黨“下位”,吐槽帝“登基”
      基于NS-3的PLC多頻通信協(xié)議仿真平臺設(shè)計與實現(xiàn)
      電測與儀表(2016年2期)2016-04-12 00:24:52
      CAN總線并發(fā)通信時下位機(jī)應(yīng)用軟件設(shè)計
      盈江县| 大宁县| 南丹县| 普宁市| 鄄城县| 松原市| 浙江省| 镇平县| 阿克陶县| 香格里拉县| 德令哈市| 凌海市| 轮台县| 兰考县| 岢岚县| 通辽市| 东城区| 科技| 六盘水市| 申扎县| 上杭县| 泰来县| 高清| 莎车县| 蒙山县| 碌曲县| 自治县| 湖南省| 南召县| 瑞丽市| 平泉县| 丽水市| 白水县| 和平县| 龙南县| 墨玉县| 河南省| 隆尧县| 永城市| 株洲县| 尚义县|