基於CORTEX-M3的多機通信網絡的設計與實現

2020-12-20 電子產品世界

摘要:系統以STM32F103作主控單元,使用RS485通信總線,制定了一套通信協議,從軟體角度保證了總線仲裁機制的完整,保證了測控網絡的正常運轉。在系統設計論述過程中,根據RS485通信總線的特點,論述了系統中多機通信設計的原理及過程,結合在系統調試過程中遇到的問題,提出了在使用RS485過程中的注意事項。

本文引用地址:http://www.eepw.com.cn/article/201809/388276.htm

隨著嵌入式技術的發展,測控設備逐漸智能化。企業信息化需求在設備選型時一個必要條件就是設備要具有聯網通信接口。RS232接口能夠實現點對點的通信方式,但不能實現聯網功能,且遠距離傳輸性能抗幹擾性差。RS485接口解決了此問題,其數據傳輸最高速率可達到10 Mbps,且接口採用平衡驅動器和差分接收器的組合,抗共模幹擾能力強,抗噪性好,適合於遠距離傳輸。RS485總線最大可以支持32個節點,通過特製晶片,最大可以支持400個節點,因此,RS485非常適合於分布式測控系統通信領域。但RS485隻能代表通信的物理介質,數據的傳輸訪問必須開發相應的程序。

CORTEX—M3是基於ARM7架構的處理器內核,採用哈佛架構,其功耗低,性價比高。在多機通信網的設計中,經過需求分析,提出並設計了一種基於CORTEX—M3的多機通信網絡。設計中,CORTEX—M3用做系統終端,作為主機和從機。從機負責前端系統的各類數據測量,主機作為控制端,負責各從機測量信息的採集,並通過網絡實現對從機的控制。在系統的設計中,網絡傳輸接口採用RS485,根據通信網絡特點,設計中自製了RS485多機通信協議,開發了基於CORTEX—M3處理器的通信接口程序,程序移植性好,可以移植到CORTEX—M3內核的通信網絡當中。經過測試,系統通信性能良好,無數據丟失及網絡死鎖現象。

1 RS485介紹

RS-485標準是為彌補RS-232通信距離短、遠距離通信的抗幹擾性能差等缺點而產生的。RS-485標準只規定了平衡發送器和接收器的電特性,而沒有規定接插件、傳輸電纜和應用層通信協議。

RS-485標準與RS-232不一樣,數據信號採用差分傳輸方式,也稱作平衡傳輸,它使用一對雙絞線,將其中一線定義為A,另一線定義為B,如圖1所示。

圖2中,RS485發送器中A、B之間的高電平是在+2~+6 V之間,表示正邏輯狀態;低電平是在-2~-6 V之間,表示負邏輯狀態。對於RS485接收端,當在A、B之間有大於+200 mV電壓,輸入為正邏輯電平;小於-200 mV,輸入為負邏輯電平,如圖3所示。圖1中RS-485器件中有一個信號地,一般,各器件信號地可以連接在一起,或者不連接;器件中,另有一個「使能」控制信號端,用於控制RS485是作為發送端還是作為接收端。當使能端為高電平時,作為發送端,當為低電平時,作為接收端。RS485為半雙工通信方式,同一時刻,器件只能作為發送端或接收端,軟體設計總線仲裁中,通過「使能」信號控制。

2 RS485在系統中的應用

RS485多機通信中,各器件中的A點連接在一起,B點連接在一起,通過雙絞線連接,所有RS485節點掛接在一對RS485總線上。由於RS485為半雙工工作模式,同一時刻,網絡中只允許一臺RS485接口設備處於發送狀態,否則,總線上的數據會混亂;此外,由於RS485缺乏硬體仲裁機制,通信中,無法通過硬體仲裁來釋放及佔有總線,在多機通信網絡中,可以從軟體角度考慮總線仲裁。而RS485標準沒有規定應用層通信協議,在軟體設計系統總線仲裁中,可以根據系統特性及功能,制定相應的應用通信層協議。

1)系統簡述

系統中網絡結構採用星形網絡結構,網絡拓撲圖如圖4所示。

系統中的網絡結構由主控機(M0)、從機(S1、S2……)構成,均為嵌入式系統設備,內核為CORTEX—M3。本系統中所有的RS485終端設備為嵌入式設備,終端設備接口一致,直接通過雙絞線連接。

主機負責測控系統的信息採集。控制信息發送;各從機負責及完成各種信息的測量及數據轉換,並將測控信息發送給主機。系統採用星形拓撲結構,分支節點故障查找方便,由於接口簡單,擴展性良好,中心節點通信軟體協議較複雜,而各分支節點通信協議較簡單。

2)RS485通信協議總線設計

通信協議的設計主要包括物理層和數據鏈路層:

物理層實現以下功能:

發送數據時,將數據鏈路層送來的數據按字節進行並串轉換,增加起始位、奇偶校驗位及停止位,然後將轉換後的信號發送到物理信道上;接收數據時,從物理信道串行接收電平信號,然後進行電平轉換、奇偶校驗、串並轉換,得到所接收的數據。

數據鏈路層實現以下功能:

數據鏈路層位於物理層和應用層之間,為應用層提供統一的接口函數,實現無差錯的雙向數據傳輸。數據鏈路層協議主要包括幀格式設計、傳輸速率設置、幀收發程序、字符串收發程序。

①串口驅動程序設計

STM32F103串口驅動程序的設計調用系統庫函數,省去了很多底層函數的編寫。幀格式設計、傳輸速率設置通過結構體InitType DefInit StruCture結構體賦並初始化完成;幀的發送及接收已有庫函數USART_ReceiveData(USART_TypeDef*USARTx)及USART_SendData(USART_Type Def*USARTx,uint16_tData),通過這兩個函數的應用,可以實現字符串的收和發程序,簡化驅動程序開發。

在串口驅動程序設計中,需要注意的是:在接收及發送幀數據時,使能端的電平設置,因此收發程序不能直接使用stm32f中的庫函數。據此,在串口驅動程序的設計中,重新編寫了接收及發送字節函數。發送字節函數示例:

②通信協議設計

為了實現從機信息正確的接收,在設計過程中,根據系統特點,制定了相應的通信協議:人為認為每臺從機有地址編碼,例如,1號機地址為0x1,2號機地址為0x2,以此類推,此數據也代表了從機機號。從機全部作為接收端,等待接收命令。

第一步:所有從機處於接收等待狀態;主機發送一幀數據表示地址,從機接收並判斷是否為本機地址:是,則響應;否則,丟棄此幀數據,繼續等待接收本機地址幀;

第二步:從機接收到本機地址幀後,發送一個握手應答數據給主機。此時,從機作為發送端,主機作為接收端。主機發送完地址幀後隨即切換狀態並等待接收握手應答數據。當接收到總線握手數據後,主機判斷是不是所需要讀取的機號的握手通信數據:是,則通信成功,讀取從機發送信息;否則,重新開始地址發送;

第三步:從機發送總線握手信號後,隨即發送數據給主機。數據發送結束後,恢復等待接受狀態。

整個通信過程中,所有從機通信協議全部一致,從機接受地址信息並判斷後,如果和本機地址相符,則發送數據給主機。

按照系統中制定的通信協議,主機和從機的軟體設計流程圖如圖5一圖7所示。

從機作為測控前端,實現系統測控和數據傳送,其通訊受控於主機,因而從機接收數據採用中斷方式,即從機一旦接收到主機的呼叫信號,立即進入接收中斷與主機通信,其工作流程圖如圖6、7所示。

在整個系統中,主從機均可作為發送端和接收端。同一時刻,網絡中只能有一個發送端,因此,在設計通信協議的時候,注意狀態的切換;另根據RS485狀態工作時序特點,需要設計好收發之間的延時,否則會出現數據丟失現象。發送時,使能端置「1」,延時1 ms左右,再發送有效數據,一幀數據發送完畢後再延時1 ms,使能端置「0」。這樣總線在狀態切換時,使之有一個穩定的工作狀態。

3 結束語

系統使用RS485半雙工收發器,實現了基於CORTEX—M3的多機通信網絡的組建,主機利用順序方式採集數據,實現了一主多從的通訊方式。主從機通過狀態的切換,都可以扮演發送端及接收端的角色,本質上還是使用了半雙工通信的特點,利用軟體進行任務調度,最終實現了星形網絡多機通信。本文設計的RS485通信協議可移植性強、穩定性高、易擴展,可以廣泛應用於工業控制、現場總線、遠程監控等領域。

相關焦點

  • 基於ARM Cortex-M3的MODBUS協議實現及其應用
    微控制器為核心,設計了MODBUS協議的實現方案。為解決漏磁探傷研究中的實驗仿真問題,研製了基於嵌入式系統的無損探傷試驗儀,通過實現MODBUS協議與變頻器通信,以此驅動交流電機與機械試驗裝置,完成運動控制並進行無損探傷試驗。
  • 基於Cortex―M3的自動氣象站設計
    使用GPRS模塊將數據包通過GSM網絡上傳到上位機。經實驗驗證,系統正常運行,測量精度達到設計要求,具有成本低廉,精度高,具有較好的實時性和穩定性。1 系統整體設計 整個氣象數據採集系統硬體主要由氣象數據採集傳感器模塊、主控制模塊、數據存儲模塊、數據發送模塊以及上位機接收模塊組成。
  • 智能家居基於Cortex-M3/M0的感知與控制子網設計
    LPC1768單片機內部包含有一個功能齊全的10/100Mbps乙太網RMII接口控制器,它可以通過RMII接口(通常簡化為媒體獨立接口MID外接一個物理接口收發器(PHY),再接上網絡變壓器和RJ-45接口,就組成了一個完整的乙太網通信接口,如圖2所示。
  • 基於Cortex M3的音頻播放器的設計
    1 系統總體設計系統總體設計如圖1所示,以TI公司的微處理器LM3S9B96為控制核心,通過讀取SD卡*.mp3、*.wma、*.wav等格式的音頻文件,然後通過音頻解碼晶片VS1003實現解碼,最後通過外部音頻功放完成放大,推動揚聲器工作。LCD觸控螢幕主要完成所播放歌曲名稱的顯示和人機互動功能。
  • 基於單片機與PC通信的數據採集控制系統設計研究
    在現代工業控制中,對於控制的準確性判斷以及控制的實時性和穩定性需求都很高,所以要有一種可以進行數據採集的控制系統,而且這種系統要能夠實現多通道、高精度以及大容量的要求。從這個角度來看,基於單片機與PC 通信的數據採集控制系統設計研究具有非常重要的現實意義。     1.
  • ARM7、ARM9、ARM11、ARM-Cortex系列的關係
    ARMv4架構的ARM7TDMI),Cortex-M比ARM7的架構高了3代,性能也有較大提升,所以新的設計推薦使用Cortex-M,關於從ARM7到Cortex-M的移植詳見ARM官網指導 ARM7處理器系列。
  • 基於cortex-M3、ADXL345的重力感應遙控器的實現
    檢測傾斜角度由ADXL345實現,三軸加速度傳感器能夠測出靜態時xyz方向的加速度,如果平放的情況下,只在z軸有一個向下的重力加速度,如果傾斜,那麼重力將可以分解到xy方向,這樣產生了xy方向的加速度,從而可以測得遙控器向哪邊傾斜了。
  • 基於ZigBee的電力線通信中繼器設計方案
    建立雙向、集成、實時的通信系統是實現智能電網的基礎,沒有這樣的通信系統任何智能電網的特徵都無法實現。因為智能電網的數據獲取、保護和控制都需要這樣的通信系統支持,因此建立這樣的通信系統是邁向智能電網的第一步。同時通信系統和電網一樣深入到幹家萬戶,這樣就形成了兩張緊密聯繫的網絡--電網和通信網絡,只有這樣才能實現智能電網的目標。
  • 基於軟體無線電的通信系統試驗平臺的設計實現,軟硬體原理、架構
    因此,本項目計劃設計一套通信原理實驗平臺,使學生在實踐過程中加深對課程的理解。本項目設計的目標:為高校提供一套適合本科生進行通信原理實驗且價格低廉能夠大面積推廣的通信原理綜合實驗平臺。學習通信原理課程的本科生可以利用本系統進行通信實驗,對課程學習中遇到的原理和概念加深理解。另外,本系統將提供一個開放接口,可以使學生利用本系統對通信原理進行深入的研究,實現更複雜的算法。
  • 採用ARM Cortex-M3單片機和DSP的逆變電源設計
    所設計的IPS核心控制電路通過測試仿真及現場測試結果證明,這種新型IPS設計改善了IPS結構設計,滿足IPS運作的高要求,而且豐富了遠程監控等人機互動接口,從而也間接多方面節約用戶的管理成本。,還要保證IPS控制器與外界的通信。
  • Arm技術文檔分享|Cortex-M 系列處理器Cortex-M3 DesignStart FPGA...
    DesignStart FPGA-Xilinx Edition文檔集:Revision: r0p01.Arm Cortex-M3 DesignStart FPGA-Xilinx edition User Guide附件包含文檔如下:1.arm_cortex_m3
  • 一種基於MMA8451的振動檢測儀的設計與實現
    基於這款高性能的傳感器,設計出主從式振動檢測儀器。文中介紹了整個電路的設計思路與組成結構,給出了作為前端傳感器在虛擬儀器中的應用,並且給出了測試結果。使用主從式對虛擬儀器進行設計,實現了預定目標並且擺脫了虛擬儀器開發對LabView的依賴。
  • Cortex-M3平臺上lwIP+AJAX的Web嵌入式應用
    摘要:本文基於lwIP乙太網協議棧將AJAX動態網頁設計技術應用於嵌入式Cortex-M3平臺,實現Web嵌入式應用嵌入式產品一般服務於工業現場,通過RS232、RS485、或是CAN等通信接口與外界互聯通信。如今伴隨著Internet技術的成熟,帶寬的日益提高,公共場所無線網絡覆蓋,智慧型手機日益普及,網絡化、信息化的要求越來越受到關注,Internet網絡互聯成為必然的趨勢[1]。
  • 基於ARM Cortex-A8處理器的工業機器人示教器設計
    該示教器以TI的ARM Cortex-A8處理器AM3359為核心,擴展了2GB DDR3 SDRAM、4GB NAND Flash、8.4英寸LCD屏和觸控螢幕、1000Mbps乙太網通信接口、USB接口、搖杆、按鍵等外圍電路,並基於嵌入式Linux系統和Qt開發框架,對示教器軟體進行了模塊化設計。該示教器已經成功應用於6軸機器人本體。
  • 基於VxWorks實時作業系統的通信模型設計
    軟體設計中模塊化的思想已日益普遍,模塊化的設計能夠使程序結構清晰,便於維護,開發起來也更加高效。大型軟體通常由多個功能模塊構成,模塊的功能實現又是由多個線程所支撐的。諸如windows,Linux類型的作業系統自身能夠對線程間的通信進行較好的管理,不需要過多的關心底層。而VxWorks是一個多任務系統,任務是系統最基本的執行單元。
  • 基於FPGA的TS over IP的設計與實現
    編者按:隨著網際網路的發展, 數位電視信號的網絡傳輸得到了越來越多的關注,本文設計與實現了一種基於FPGA和MCU(R8051XC2)的TS over IP系統,並對傳統的TS over IP系統進行了改進。
  • 基於嵌入式的自動售貨機設計與實現
    基於嵌入式的自動售貨機設計與實現 秩名 發表於 2012-07-18 14:18:32   我們知道,智能設備的根本在於嵌入式系統的開發應用(嵌入式系統開發流程),
  • 基於IEEE1451標準的IP傳感器的設計與實現
    IP傳感器是指基於標準的TCP/IP協議,採用模塊化結構將傳感器和嵌入式Inter2net技術有機地結合起來的一種新型的網絡化智能傳感器,並作為一個獨立的網絡節點直接與計算機網絡通信,從而使現場測控數據就近登臨網絡,在網絡所能及的範圍內實時發布和共享。敏感元件輸出的模擬信號經A/D轉換及數據處理後,由網絡協議處理器實現TCP/IP數據包的封裝和網絡化傳輸。
  • 基於TCP的網絡實時聊天室(socket通信案例)
    開門見山最近一個月記錄了學習Socket網絡編程的知識和實戰案例,相對來說,比較系統地學習了基於TCP協議實現網絡通信,也是計算機網絡中重中之重,TCP/IP屬於網絡層,在java中,對該層的工作實現了封裝,在編程中,就更加容易地去實現通信,而不用顧及底層的實現。當然,我們需要熟悉五層協議,在實踐中體會其中的原理,理解更加深刻。
  • 中國首次實現基於無人機的量子糾纏分發 有望實現更高質量通信
    原標題:南京大學首次實現基於無人機的量子糾纏分發,有望實現更高質量的通信中國江蘇網1月20日訊 不藉助光纖網絡、不需要衛星,利用無人機,就可以實現量子糾纏的分發,不受地域、天氣限制,迅速建立網絡,實現更高質量的通信。