當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]摘要:系統(tǒng)以STM32F103作主控單元,使用RS485通信總線,制定了一套通信協(xié)議,從軟件角度保證了總線仲裁機制的完整,保證了測控網(wǎng)絡(luò)的正常運轉(zhuǎn)。在系統(tǒng)設(shè)計論述過程中,根據(jù)RS485通信總線的特點,論述了系統(tǒng)中多機通信

摘要:系統(tǒng)以STM32F103作主控單元,使用RS485通信總線,制定了一套通信協(xié)議,從軟件角度保證了總線仲裁機制的完整,保證了測控網(wǎng)絡(luò)的正常運轉(zhuǎn)。在系統(tǒng)設(shè)計論述過程中,根據(jù)RS485通信總線的特點,論述了系統(tǒng)中多機通信設(shè)計的原理及過程,結(jié)合在系統(tǒng)調(diào)試過程中遇到的問題,提出了在使用RS485過程中的注意事項。

隨著嵌入式技術(shù)的發(fā)展,測控設(shè)備逐漸智能化。企業(yè)信息化需求在設(shè)備選型時一個必要條件就是設(shè)備要具有聯(lián)網(wǎng)通信接口。RS232接口能夠?qū)崿F(xiàn)點對點的通信方式,但不能實現(xiàn)聯(lián)網(wǎng)功能,且遠距離傳輸性能抗干擾性差。RS485接口解決了此問題,其數(shù)據(jù)傳輸最高速率可達到10 Mbps,且接口采用平衡驅(qū)動器和差分接收器的組合,抗共模干擾能力強,抗噪性好,適合于遠距離傳輸。RS485總線最大可以支持32個節(jié)點,通過特制芯片,最大可以支持400個節(jié)點,因此,RS485非常適合于分布式測控系統(tǒng)通信領(lǐng)域。但RS485只能代表通信的物理介質(zhì),數(shù)據(jù)的傳輸訪問必須開發(fā)相應(yīng)的程序。

CORTEX—M3是基于ARM7架構(gòu)的處理器內(nèi)核,采用哈佛架構(gòu),其功耗低,性價比高。在多機通信網(wǎng)的設(shè)計中,經(jīng)過需求分析,提出并設(shè)計了一種基于CORTEX—M3的多機通信網(wǎng)絡(luò)。設(shè)計中,CORTEX—M3用做系統(tǒng)終端,作為主機和從機。從機負(fù)責(zé)前端系統(tǒng)的各類數(shù)據(jù)測量,主機作為控制端,負(fù)責(zé)各從機測量信息的采集,并通過網(wǎng)絡(luò)實現(xiàn)對從機的控制。在系統(tǒng)的設(shè)計中,網(wǎng)絡(luò)傳輸接口采用RS485,根據(jù)通信網(wǎng)絡(luò)特點,設(shè)計中自制了RS485多機通信協(xié)議,開發(fā)了基于CORTEX—M3處理器的通信接口程序,程序移植性好,可以移植到CORTEX—M3內(nèi)核的通信網(wǎng)絡(luò)當(dāng)中。經(jīng)過測試,系統(tǒng)通信性能良好,無數(shù)據(jù)丟失及網(wǎng)絡(luò)死鎖現(xiàn)象。

1 RS485介紹

RS-485標(biāo)準(zhǔn)是為彌補RS-232通信距離短、遠距離通信的抗干擾性能差等缺點而產(chǎn)生的。RS-485標(biāo)準(zhǔn)只規(guī)定了平衡發(fā)送器和接收器的電特性,而沒有規(guī)定接插件、傳輸電纜和應(yīng)用層通信協(xié)議。

RS-485標(biāo)準(zhǔn)與RS-232不一樣,數(shù)據(jù)信號采用差分傳輸方式,也稱作平衡傳輸,它使用一對雙絞線,將其中一線定義為A,另一線定義為B,如圖1所示。

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

2 RS485在系統(tǒng)中的應(yīng)用

RS485多機通信中,各器件中的A點連接在一起,B點連接在一起,通過雙絞線連接,所有RS485節(jié)點掛接在一對RS485總線上。由于RS485為半雙工工作模式,同一時刻,網(wǎng)絡(luò)中只允許一臺RS485接口設(shè)備處于發(fā)送狀態(tài),否則,總線上的數(shù)據(jù)會混亂;此外,由于RS485缺乏硬件仲裁機制,通信中,無法通過硬件仲裁來釋放及占有總線,在多機通信網(wǎng)絡(luò)中,可以從軟件角度考慮總線仲裁。而RS485標(biāo)準(zhǔn)沒有規(guī)定應(yīng)用層通信協(xié)議,在軟件設(shè)計系統(tǒng)總線仲裁中,可以根據(jù)系統(tǒng)特性及功能,制定相應(yīng)的應(yīng)用通信層協(xié)議。

1)系統(tǒng)簡述

系統(tǒng)中網(wǎng)絡(luò)結(jié)構(gòu)采用星形網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)拓?fù)鋱D如圖4所示。

系統(tǒng)中的網(wǎng)絡(luò)結(jié)構(gòu)由主控機(M0)、從機(S1、S2……)構(gòu)成,均為嵌入式系統(tǒng)設(shè)備,內(nèi)核為CORTEX—M3。本系統(tǒng)中所有的RS485終端設(shè)備為嵌入式設(shè)備,終端設(shè)備接口一致,直接通過雙絞線連接。

主機負(fù)責(zé)測控系統(tǒng)的信息采集。控制信息發(fā)送;各從機負(fù)責(zé)及完成各種信息的測量及數(shù)據(jù)轉(zhuǎn)換,并將測控信息發(fā)送給主機。系統(tǒng)采用星形拓?fù)浣Y(jié)構(gòu),分支節(jié)點故障查找方便,由于接口簡單,擴展性良好,中心節(jié)點通信軟件協(xié)議較復(fù)雜,而各分支節(jié)點通信協(xié)議較簡單。

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

通信協(xié)議的設(shè)計主要包括物理層和數(shù)據(jù)鏈路層:

物理層實現(xiàn)以下功能:

發(fā)送數(shù)據(jù)時,將數(shù)據(jù)鏈路層送來的數(shù)據(jù)按字節(jié)進行并串轉(zhuǎn)換,增加起始位、奇偶校驗位及停止位,然后將轉(zhuǎn)換后的信號發(fā)送到物理信道上;接收數(shù)據(jù)時,從物理信道串行接收電平信號,然后進行電平轉(zhuǎn)換、奇偶校驗、串并轉(zhuǎn)換,得到所接收的數(shù)據(jù)。

數(shù)據(jù)鏈路層實現(xiàn)以下功能:

數(shù)據(jù)鏈路層位于物理層和應(yīng)用層之間,為應(yīng)用層提供統(tǒng)一的接口函數(shù),實現(xiàn)無差錯的雙向數(shù)據(jù)傳輸。數(shù)據(jù)鏈路層協(xié)議主要包括幀格式設(shè)計、傳輸速率設(shè)置、幀收發(fā)程序、字符串收發(fā)程序。

①串口驅(qū)動程序設(shè)計

STM32F103串口驅(qū)動程序的設(shè)計調(diào)用系統(tǒng)庫函數(shù),省去了很多底層函數(shù)的編寫。幀格式設(shè)計、傳輸速率設(shè)置通過結(jié)構(gòu)體InitType DefInit StruCture結(jié)構(gòu)體賦并初始化完成;幀的發(fā)送及接收已有庫函數(shù)USART_ReceiveData(USART_TypeDef*USARTx)及USART_SendData(USART_Type Def*USARTx,uint16_tData),通過這兩個函數(shù)的應(yīng)用,可以實現(xiàn)字符串的收和發(fā)程序,簡化驅(qū)動程序開發(fā)。

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

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

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

第一步:所有從機處于接收等待狀態(tài);主機發(fā)送一幀數(shù)據(jù)表示地址,從機接收并判斷是否為本機地址:是,則響應(yīng);否則,丟棄此幀數(shù)據(jù),繼續(xù)等待接收本機地址幀;

第二步:從機接收到本機地址幀后,發(fā)送一個握手應(yīng)答數(shù)據(jù)給主機。此時,從機作為發(fā)送端,主機作為接收端。主機發(fā)送完地址幀后隨即切換狀態(tài)并等待接收握手應(yīng)答數(shù)據(jù)。當(dāng)接收到總線握手?jǐn)?shù)據(jù)后,主機判斷是不是所需要讀取的機號的握手通信數(shù)據(jù):是,則通信成功,讀取從機發(fā)送信息;否則,重新開始地址發(fā)送;

第三步:從機發(fā)送總線握手信號后,隨即發(fā)送數(shù)據(jù)給主機。數(shù)據(jù)發(fā)送結(jié)束后,恢復(fù)等待接受狀態(tài)。

整個通信過程中,所有從機通信協(xié)議全部一致,從機接受地址信息并判斷后,如果和本機地址相符,則發(fā)送數(shù)據(jù)給主機。

按照系統(tǒng)中制定的通信協(xié)議,主機和從機的軟件設(shè)計流程圖如圖5一圖7所示。

從機作為測控前端,實現(xiàn)系統(tǒng)測控和數(shù)據(jù)傳送,其通訊受控于主機,因而從機接收數(shù)據(jù)采用中斷方式,即從機一旦接收到主機的呼叫信號,立即進入接收中斷與主機通信,其工作流程圖如圖6、7所示。

在整個系統(tǒng)中,主從機均可作為發(fā)送端和接收端。同一時刻,網(wǎng)絡(luò)中只能有一個發(fā)送端,因此,在設(shè)計通信協(xié)議的時候,注意狀態(tài)的切換;另根據(jù)RS485狀態(tài)工作時序特點,需要設(shè)計好收發(fā)之間的延時,否則會出現(xiàn)數(shù)據(jù)丟失現(xiàn)象。發(fā)送時,使能端置“1”,延時1 ms左右,再發(fā)送有效數(shù)據(jù),一幀數(shù)據(jù)發(fā)送完畢后再延時1 ms,使能端置“0”。這樣總線在狀態(tài)切換時,使之有一個穩(wěn)定的工作狀態(tài)。

3 結(jié)束語

系統(tǒng)使用RS485半雙工收發(fā)器,實現(xiàn)了基于CORTEX—M3的多機通信網(wǎng)絡(luò)的組建,主機利用順序方式采集數(shù)據(jù),實現(xiàn)了一主多從的通訊方式。主從機通過狀態(tài)的切換,都可以扮演發(fā)送端及接收端的角色,本質(zhì)上還是使用了半雙工通信的特點,利用軟件進行任務(wù)調(diào)度,最終實現(xiàn)了星形網(wǎng)絡(luò)多機通信。本文設(shè)計的RS485通信協(xié)議可移植性強、穩(wěn)定性高、易擴展,可以廣泛應(yīng)用于工業(yè)控制、現(xiàn)場總線、遠程監(jiān)控等領(lǐng)域。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉