一、知識目標(biāo)
- 掌握總線的基礎(chǔ)知識
- 掌握RS-485標(biāo)準(zhǔn)的電氣特性及其與RS-422饭宾、RS-232標(biāo)準(zhǔn)的區(qū)別
- 掌握RS-485通信的收發(fā)器芯片的功能及其典型應(yīng)用電路
- 了解Modbus總線并編程實(shí)現(xiàn)組網(wǎng)通信
二批糟、技能目標(biāo)
- 能進(jìn)行基于Modbus串行通信協(xié)議軟件的開發(fā)
- 能搭建RS485總線并編程實(shí)現(xiàn)組網(wǎng)通信
三、總線概述
在 20 世紀(jì) 80 年代中后期,隨著工業(yè)控制、計(jì)算機(jī)嫌佑、通信以及模塊化集成等技術(shù)的發(fā)展追逮,出現(xiàn)了現(xiàn)場總線控制系統(tǒng)。按照國際電工委員會 IEC61158 標(biāo)準(zhǔn)的定義,現(xiàn)場總線是應(yīng)用在制造或過程區(qū)域現(xiàn)場裝置與控制室內(nèi)自動(dòng)控制裝置之間的數(shù)字式、串行、多點(diǎn)通信的數(shù)據(jù)總線石抡。它也被稱為開放式、數(shù)字化助泽、多點(diǎn)通信的底層控制網(wǎng)絡(luò)啰扛。以現(xiàn)場總線為技術(shù)核心的工業(yè)控制系統(tǒng),稱為現(xiàn)場總線控制系統(tǒng) FCS(Fieldbus Control System)嗡贺。
在總線的發(fā)展過程中隐解,有多種分類方式。
一是按照傳輸速率分類:可分為低速總線和高速總線暑刃。
二是按照連接類型分類:可分為系統(tǒng)總線厢漩、外設(shè)總線和擴(kuò)展總線。
三是按照傳輸方式分類:可分為并行總線和串行總線岩臣。
本書主要關(guān)注計(jì)算機(jī)與嵌入式系統(tǒng)領(lǐng)域的高速串行總線技術(shù)溜嗜。
3.1 串行通信的概念
學(xué)習(xí) RS-485 通信標(biāo)準(zhǔn)就不得不提串行通信,因?yàn)?RS-485 通信隸屬于串行通信的范疇架谎。在計(jì)算機(jī)網(wǎng)絡(luò)與分布式工業(yè)控制系統(tǒng)中炸宵,設(shè)備之間經(jīng)常通過各自配備的標(biāo)準(zhǔn)串行通信接口,加上合適的通信電纜實(shí)現(xiàn)數(shù)據(jù)與信息的交換谷扣。所謂“串行通信”是指外設(shè)和計(jì)算機(jī)之間土全,通過數(shù)據(jù)信號線、地線與控制線等会涎,按位進(jìn)行傳輸數(shù)據(jù)的一種通信方式裹匙。
常見串行通信接口標(biāo)準(zhǔn)有 RS-232、RS-422 和 RS-485 等末秃。另外概页,SPI(SerialPeripheral Interface,串行外設(shè)接口)练慕、I2C(Inter-Integrated Circuit惰匙,內(nèi)置集成電路)和 CAN(Controller Area Network技掏,控制器局域網(wǎng))通信也屬于串行通信。
3.2常見的電平信號及其電氣特性
常見的電平信號有TTL電平项鬼、CMOS電平哑梳、RS-232電平與USB電平等。由于它們對于邏輯“1”和邏輯“0”的表示標(biāo)準(zhǔn)有所不同绘盟,因此在不同器件之間進(jìn)行通信時(shí)鸠真,要特別注意電平信號的電氣特性。
3.3 RS-485 與 RS-422/RS-232 通信標(biāo)準(zhǔn)
RS-232奥此、RS-422 和 RS-485 標(biāo)準(zhǔn)最初都是由美國電子工業(yè)協(xié)會(Electronic Industries Association弧哎,EIA)制訂并發(fā)布的雁比。RS-232 標(biāo)準(zhǔn)在 1962 年發(fā)布稚虎,它的缺點(diǎn)是通信距離短、速率低偎捎,而且只能點(diǎn)對點(diǎn)通信蠢终,無法組建多機(jī)通信系統(tǒng)。另外茴她,在工業(yè)控制環(huán)境中寻拂,基于 RS-232 標(biāo)準(zhǔn)的通信系統(tǒng)經(jīng)常會由于外界的電氣干擾而導(dǎo)致信號傳輸錯(cuò)誤。以上缺點(diǎn)決定了 RS-232 標(biāo)準(zhǔn)無法適用于工業(yè)控制現(xiàn)場總線丈牢。
RS-422 標(biāo)準(zhǔn)在 RS-232 的基礎(chǔ)上發(fā)展而來祭钉,它彌補(bǔ)了 RS-232 標(biāo)準(zhǔn)的一些不足。如:RS-422 標(biāo)準(zhǔn)定義了一種平衡通信接口己沛,改變了 RS-232 標(biāo)準(zhǔn)的單端通信的方式慌核,總線上使用差分電壓進(jìn)行信號的傳輸。這種連接方式將傳輸速率提高到 10Mbps申尼,并將傳輸距離延長到4000 英尺(速率低于 100Kbps 時(shí))垮卓,而且允許在一條平衡總線上最多連接 10 個(gè)接收器。為了擴(kuò)展應(yīng)用范圍师幕,EIA又于1983年發(fā)布了RS-485標(biāo)準(zhǔn)粟按。RS-485標(biāo)準(zhǔn)與RS-422標(biāo)準(zhǔn)相比,增加了多點(diǎn)霹粥、雙向的通信能力灭将。
RS-232、RS-422 和 RS-485 標(biāo)準(zhǔn)的主要電氣特性比較
3.4 485收發(fā)器
TTL—485需要發(fā)送器 485—TTL接要接收器
通常發(fā)送器和接收器做在同一個(gè)芯片中后控,但是發(fā)送器和接收器不能同時(shí)工作庙曙,通過硬件上的連線 ,單片機(jī)來操作控制引腳讓它某一時(shí)刻是工作在接收狀態(tài)還是發(fā)送狀態(tài)忆蚀。
485通信實(shí)際上是一個(gè)差分的通信模式矾利, A B線上的電壓差代表0和1 姑裂。
485總線與主從模式
四、 Modbus協(xié)議
任何一次數(shù)據(jù)發(fā)送由主機(jī)發(fā)起男旗,主機(jī)發(fā)送的是有規(guī)定格式的尋址數(shù)據(jù)幀舶斧。凡是遵循約定的、公開的察皇、共通性的茴厉,可以在不同設(shè)備廠商的設(shè)備上可以解析的協(xié)議,就是軟件層協(xié)議什荣。Modbus就是這樣的一種軟件層協(xié)議
Modbus通信協(xié)議是全球第一個(gè)真正用于工業(yè)現(xiàn)場的總線協(xié)議矾缓,完全免費(fèi)。
Modbus通信協(xié)議是應(yīng)用于電子控制器上的一種通用協(xié)議稻爬,目前已成為一通用工業(yè)標(biāo)準(zhǔn)嗜闻。多工業(yè)設(shè)備包括PCL\DCS\變頻器\智能儀表等都在使用。
Modbus使不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò)桅锄,進(jìn)行集中監(jiān)控琉雳。Modbus支持多種電氣接口,如RS-232友瘤、RS-485,還可以在各種介質(zhì)上傳輸翠肘,如雙絞線、光纖辫秧、無線等束倍。
- Modbus是一種單主/多從的通信協(xié)議,即:在同一時(shí)間里盟戏,總線上只能有一個(gè)主設(shè)備绪妹,但可以有一個(gè)或多個(gè)(最多247個(gè))從設(shè)備。
MODBUS協(xié)議的某些特性是固定的抓半,如信息幀結(jié)構(gòu)喂急,幀順序,通訊錯(cuò)誤和異常情況的處理笛求,以及所執(zhí)行的功能碼等廊移,都不能隨便改動(dòng)。其他特性是屬于用戶可選的如傳輸介質(zhì)探入,波特率狡孔,字符奇偶校驗(yàn),停止位個(gè)數(shù)蜂嗽,參數(shù)字址定義等
- 設(shè)備地址:被選中的從設(shè)備地址苗膝。
- 功能碼:告知被選中的從設(shè)備要執(zhí)行何種功能。
- 數(shù)據(jù)段:包含從設(shè)備要執(zhí)行功能的附加信息植旧。如:功能碼“03”要求從設(shè)備讀保持寄存器并響應(yīng)寄存器的內(nèi)容辱揭,則數(shù)據(jù)段必須包含要求從設(shè)備讀取寄存器的起始地址及數(shù)量离唐。
- 差錯(cuò)檢測區(qū):為從機(jī)提供一種數(shù)據(jù)校驗(yàn)方法,以保證信息內(nèi)容的完整性问窃。
4.2 Modbus請求報(bào)文的模式
在Modbus網(wǎng)絡(luò)中亥鬓,主設(shè)備向從設(shè)備發(fā)送Modbus請求報(bào)文的模式有兩種:單播模式與廣播模式:
單播模式:主設(shè)備尋址單個(gè)從設(shè)備。
廣播模式:主設(shè)備向Modbus網(wǎng)絡(luò)中的所有從設(shè)備發(fā)送請求報(bào)文域庇,從設(shè)備接收并處理完畢后不要求返回響應(yīng)報(bào)文嵌戈。
MODBUS通信協(xié)議提供了ASCIl和RTU(遠(yuǎn)程終端單元)兩種通信模式。
ASCll模式的主要優(yōu)點(diǎn)是允許字符之間的時(shí)間間隔長達(dá)1S听皿,也不會出現(xiàn)錯(cuò)誤熟呛。
RTU模式的優(yōu)點(diǎn)是在相同波特率下其傳輸?shù)淖址拿芏雀哂贏SCIl模式,每個(gè)信息必須連續(xù)傳輸尉姨。
4.3 ASCII消息幀格式
- 起始位:1位
- 數(shù)據(jù)長度:7位庵朝,低位先送
- 校驗(yàn)位:1位(有校驗(yàn)),0位(無校驗(yàn))
- 停止位:1位(有校驗(yàn))啊送,2位(無校驗(yàn))
- 波特率:可選
ASCIl模式數(shù)據(jù)傳送約定在數(shù)據(jù)格式中每個(gè)16進(jìn)制字符(09)偿短、(AF)都轉(zhuǎn)換成ASCll碼發(fā)送。這種方式的主要優(yōu)點(diǎn)是字符發(fā)送的時(shí)間間隔可達(dá)1秒馋没,而不產(chǎn)生錯(cuò)誤。
4.4 RTU消息幀格式
- 起始位:1位
- 數(shù)據(jù)長度:8位降传,低位先送
- 校驗(yàn)位:1位(有校驗(yàn))篷朵,0位(無校驗(yàn))
- 停止位:1位(有校驗(yàn))婆排,2位(無校驗(yàn))
- 波特率:可選
4.5 Modbus功能碼
舉例如下:
03功能碼規(guī)定:主至從的數(shù)據(jù)含義
03功能碼規(guī)定:從至主的數(shù)據(jù)含義