RS485總線圖片 北京制造 提供現(xiàn)貨
簡要描述:RS422/RS485總線接口作為多點、差分?jǐn)?shù)據(jù)傳輸?shù)碾姎庖?guī)范,現(xiàn)已成為業(yè)界應(yīng)用較為廣泛的標(biāo)準(zhǔn)通信接口之一。RS422/RS485標(biāo)準(zhǔn)只對接口的電氣特性做出了規(guī)定,而不涉及接插件、電纜或協(xié)議,因此,用戶可在此基礎(chǔ)上建立自己的高層通信協(xié)議。
- 廠商性質(zhì):生產(chǎn)廠家
- 更新時間:2024-08-25
- 訪 問 量:371
在
RS485總線系統(tǒng)
在實際應(yīng)用中,RS485半雙工異步通信總線是被各研究機構(gòu)廣泛應(yīng)用的數(shù)據(jù)通信總路線,它往往應(yīng)用在集中控制樞紐和分散控制單元之間。系統(tǒng)如圖1所示
在實際應(yīng)用中,分散控制單元往往數(shù)量較多,分布較遠(yuǎn),現(xiàn)場存在各種干擾,可靠性不高。再加上軟硬件設(shè)計不完善,使得如何在工業(yè)應(yīng)用中保證RS485的可靠性成為各研發(fā)人員的一塊心病。
在設(shè)計485通信系統(tǒng)時如果按照常規(guī)的電路設(shè)計,會存在以下幾點問題:
1、通信數(shù)據(jù)收發(fā)可靠性問題。
2、在多節(jié)點通信系統(tǒng)中,如果一個節(jié)點發(fā)生故障(死機),往往會使得整個通信系統(tǒng)的框架崩潰,而且給故障排查帶來困難。
3、由于現(xiàn)場總線上的各種高壓信號干擾,在長距離的傳輸中必須采取隔離措施,
工業(yè)現(xiàn)場經(jīng)常要采集多點數(shù)據(jù),
圖1 常規(guī)RS485總線主從方式接口圖
硬件設(shè)計
整個系統(tǒng)由主單元和多個子單元組成(圖2),主單元包括:ARM7微控制器、程序存儲器、數(shù)據(jù)存儲器、與子單元通信RS485、與主單元通信RS485、系統(tǒng)電源和通信隔離電源;子單元包括:MSP430單片機、與子單元通信RS485、系統(tǒng)電源和通信隔離電源。
圖2 系統(tǒng)框圖
主單元
ARM微控制器是主單元的核心,采用三星32位ARM7TDMI內(nèi)核芯片S3C44B0,該芯片高處理速度可達(dá)76MHZ,總線開放,可外擴程序存儲器FLASH和數(shù)據(jù)存儲器SDRAM,該系統(tǒng)外擴了SST公司生產(chǎn)的39VF1601和現(xiàn)代生產(chǎn)的HY57V641620HG,2個UART串行接口,使用ADI的隔離RS485芯片ADM2483進(jìn)行接口電平轉(zhuǎn)換,總線狀態(tài)檢測使用74HC125三態(tài)門芯片。
子單元
子單元的微控制器使用TI的MSP430F133單片機,該單片機處理速度可達(dá)8MHz,8K字節(jié)片內(nèi)FLASH存儲,256K字節(jié)片內(nèi)SRAM。
電源電路
電源電路采用開關(guān)電源供電,開關(guān)電源輸入電壓范圍比較寬,輸出直流電壓5V,通過SP1117-3.3和SP1117-2.5芯片輸出3.3V電源。RS485需要的隔離5V電源通過DC-DC模塊得到。
總線檢測電路
總線狀態(tài)檢測使用74HC125三態(tài)門芯片和單片機的兩個I/O(圖3),當(dāng)系統(tǒng)都不使用總線時,每個單元的74HC125都輸出高阻狀態(tài),此時總線為低電平,當(dāng)有單元要使用總線時,他首先檢測總線狀態(tài),如果總線為低電平,該單元迅速把74HC125改為輸出狀態(tài),此時總線變?yōu)楦唠娖?,該單元占領(lǐng)總線,往總線上發(fā)送數(shù)據(jù),發(fā)送數(shù)據(jù)完成再把74HC125改為高阻狀態(tài)。如果檢測到總線是高電平,等待檢測,直到總線變低后再占領(lǐng)總線。
圖3 總線檢測電路
隔離485電路
使用ADI的ADM2483芯片進(jìn)行接口電平轉(zhuǎn)換(圖4),該芯片屬于隔離485,雙電源供電輸入輸出隔離。
圖4 隔離485電路
軟件設(shè)計
主機程序部分需要實現(xiàn)各從機上傳數(shù)據(jù)的接收、處理和上傳。主機接收子單元信息通過一個RS485串口實現(xiàn),數(shù)據(jù)格式為16進(jìn)制,數(shù)據(jù)位8位,1 個起始位,1個結(jié)束位,無寄偶校驗位,波特率9600bps。采用串行口中斷的方式接收,主機程序初始化完成后等待各從機發(fā)送信息,當(dāng)主機接收到*個字節(jié)后,判斷該字節(jié)是否為設(shè)備號,如果不是設(shè)備號,接收個數(shù)清零,如果是設(shè)備號繼續(xù)接收第二個字節(jié);判定第二個字節(jié)是否為正確的功能碼,如果功能碼錯誤,接收個數(shù)清零重新接收,功能碼正確;接收第三個字節(jié),該字節(jié)為從單元發(fā)送信息的字節(jié)個數(shù)x,計算從單元發(fā)送總字節(jié)個數(shù)為M=X+3+2,3個開頭字節(jié)和2個 CRC校驗碼,主機接收到M個字節(jié)后,首先判斷CRC校驗碼是否正確,錯誤舍棄所有信息,正確則把從單元的信息保存到數(shù)據(jù)區(qū),該次接收結(jié)束,主機繼續(xù)等待接收。
信息的上傳通過一個RS232串口實現(xiàn)。當(dāng)主機接收到從機信息后,進(jìn)行數(shù)據(jù)的處理,發(fā)現(xiàn)從單元信息發(fā)生變化,主機準(zhǔn)備把從機信息發(fā)送到上位機,首先重新初始化發(fā)送緩沖區(qū),然后通過中斷的方式依次發(fā)送信息到上位機,發(fā)送信息包括設(shè)備號、功能碼、發(fā)送字節(jié)個數(shù)、信息字節(jié)和CRC校驗碼。
主機單元接收數(shù)據(jù)流程圖示于圖5。