• 
    

    
    

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

      MODBUS協(xié)議在stm32F103處理器上的實現(xiàn)

      2020-02-19 17:54:48劉繼志白曉亮
      數(shù)字通信世界 2020年1期
      關鍵詞:接收數(shù)據(jù)發(fā)送數(shù)據(jù)微控制器

      劉繼志,白曉亮

      (1.河北申科電力股份有限公司產品研發(fā)中心,保定 071000:2.河北大學,保定 071002)

      1 MODBUS協(xié)議

      MODBUS協(xié)議是Modicon公司(現(xiàn)在的施耐德電氣)于1979年發(fā)明的一種串行通信協(xié)議,最初是為解決可編程邏輯控制器(PLC)之間通信而制定的,現(xiàn)在在常用的控制器上都可以實現(xiàn)。MODBUS協(xié)議采用主從問答方式進行工作,允許一個主機與一個或者多個從機通訊,通過此協(xié)議,控制器相互之間、控制器經由網(wǎng)絡(如以太網(wǎng))和其他設備之間可以通信。不同廠商生產的控制設備通過MODBUS協(xié)議可以連成工業(yè)網(wǎng)絡,進行集中監(jiān)控。

      MODBUS協(xié)議有兩種傳輸方式:ASCII和RTU。對于ASCII模式,一個字節(jié)的數(shù)據(jù),需要把高低4位分別轉換為ASCII碼傳輸;而RTU模式,是按16進制字符傳輸?shù)摹Mㄟ^比較可以看出,相對于ASCII模式,RTU模式表達同樣的信息需要的位數(shù)較少,在同樣的傳輸速率下能獲取更多的信息,可以提高通訊的效率。本文采用RTU傳輸模式,RTU模式的消息幀結構如表1所示。

      表1 MODBUS幀結構

      2 硬件設計

      本設計采用了意法半導體的STM32系列微控制器,該控制器內核采用超低功率的ARMCortex-M3核心,具有高性能、低成本、低功耗的特點,同時集成了豐富出眾的外設系統(tǒng),具有集成度高和開發(fā)便捷的優(yōu)勢。系統(tǒng)硬件結構圖如圖1所示。

      圖1 系統(tǒng)硬件結構圖

      系統(tǒng)硬件包括stm32f103微控制器、485通信電路、時鐘電路、復位電路和電源電路等。stm32f103微控制器完成串口數(shù)據(jù)收發(fā)、數(shù)據(jù)幀的組包與解包、數(shù)據(jù)處理等,485通信電路部分采用了MAX483芯片,完成USART串口到485總線的轉換,通過高速光耦隔離芯片TLP2362和stm32f103微控制器的USART串口連接。

      3 軟件設計

      3.1 主程序

      主程序首先完成外設的初始化,初始化完成后就等待串口中斷,MODBUS數(shù)據(jù)接收和發(fā)送都在串口中斷中調用相應的函數(shù)完成。初始化程序首先完成串口的初始化,包括打開串口時鐘、配置GPIO復用功能、波特率、數(shù)據(jù)位數(shù)、奇偶校驗和中斷配置等。然后進行定時器初始化,定時器的作用是完成幀結束的判斷,MODBUS規(guī)定,MODBUS每幀之間需要間隔3.5字符,串口發(fā)送的每個字節(jié)數(shù)據(jù)都包含1位起始位,8位數(shù)據(jù)位、1位奇偶校驗位、1位停止位,共11位。以波特率9600為例,就需要4毫秒多,在此用定時器定時4.5ms。最后配置MODBUS的從站號、初始化接收和發(fā)送緩沖區(qū)。

      3.2 MODBUS發(fā)送數(shù)據(jù)程序

      MODBUS發(fā)送數(shù)據(jù)程序響應主機的請求,通過串口中斷完成數(shù)據(jù)發(fā)送緩沖區(qū)數(shù)據(jù)的發(fā)送。MODBUS發(fā)送數(shù)據(jù)程序流程圖見圖2所示。

      圖2 MODBUS發(fā)送數(shù)據(jù)程序流程圖

      3.3 MODBUS接收數(shù)據(jù)程序

      當串口接收數(shù)據(jù)后會觸發(fā)中斷,在中斷函數(shù)中判斷如果是接收到數(shù)據(jù)則調用MODBUS接收數(shù)據(jù)函數(shù)。MODBUS接收數(shù)據(jù)程序流程圖見圖3所示。

      首先從串口緩沖區(qū)讀取接收到的字符,判斷當前是否處于消息處理中,如果處于消息處理中則直接退出,等待消息處理完成,如果沒有處于消息處理中,通過判斷和上個字符之間的間隔是否超4.5ms,確定是否為新一幀,如果是新的一幀且該字符等于本從站號,則初始化接收計數(shù)器,并把字符存放在接收緩沖區(qū)中,如果不是新的一幀,說明當前正在進行一幀的接收,則把字符直接放在接收緩沖區(qū)中。

      圖3 MODBUS接收數(shù)據(jù)程序流程圖

      3.4 MODBUS數(shù)據(jù)處理程序

      從機在接收到主機發(fā)來的數(shù)據(jù)后,重新計算數(shù)據(jù)的CRC校驗,并和數(shù)據(jù)中的CRC進行比較,如果相等說明數(shù)據(jù)無誤,則讀取功能碼,根據(jù)不同功能碼調用相應的處理函數(shù);如果不相等說明數(shù)據(jù)有誤,調用誤差處理程序。

      4 通信測試

      從機通過U轉485線和計算機相連,上位機通信測試軟件采用了MODBUSPoll,設置好串口參數(shù)即可。測試了02功能碼(輸入狀態(tài)寄存器)、04功能碼(輸入型寄存器)、05功能碼(控制寄存器)、06和16功能碼(配置參數(shù)寄存器),均能正常通信。

      5 結束語

      MODBUS廣泛應用于自動化控制行業(yè)中,已經成為工業(yè)領域通信協(xié)議的業(yè)界標準,并且現(xiàn)在是工業(yè)電子設備之間常用的連接方式。本文在STM32F103微控制器上實現(xiàn)了MODBUS的數(shù)據(jù)通信,并將其應用在低壓監(jiān)測設備中,并進行了實際測試和使用。

      猜你喜歡
      接收數(shù)據(jù)發(fā)送數(shù)據(jù)微控制器
      移動自組網(wǎng)中MAC層協(xié)議研究
      沖激噪聲背景下基于幅度預處理的測向新方法*
      電訊技術(2021年10期)2021-11-02 01:25:36
      低復雜度多輸入多輸出雷達目標角度估計方法
      基于馬爾科夫鏈的LoRaWAN網(wǎng)絡節(jié)點性能分析
      帶標記方式的CRDSA++協(xié)議性能分析*
      通信技術(2018年10期)2018-10-15 07:30:00
      物聯(lián)網(wǎng)技術在微控制器實驗教學中的應用
      電子制作(2017年14期)2017-12-18 07:07:58
      使用IPSec安全傳輸數(shù)據(jù)
      單片機模擬串口數(shù)據(jù)接收程序的實現(xiàn)及優(yōu)化
      Atmel針對新一代物聯(lián)網(wǎng)應用發(fā)布全新32位微控制器
      最新STM32設計工具增加對混合信號微控制器的支持
      荣昌县| 深州市| 夹江县| 汶上县| 馆陶县| 巫山县| 黄大仙区| 远安县| 漳州市| 民权县| 松原市| 枣强县| 伊金霍洛旗| 宝坻区| 全州县| 平陆县| 老河口市| 讷河市| 定南县| 万州区| 乐安县| 遵义县| 白沙| 黔西| 科尔| 读书| 凉山| 高要市| 科尔| 当阳市| 迁安市| 南宫市| 油尖旺区| 资中县| 扬州市| 鄂托克前旗| 黄平县| 新竹市| 铜川市| 湘西| 广西|