徐敏航,葉 蓓
(1.海軍駐上海711所軍事代表室,上海 201108;2.上海船舶運(yùn)輸科學(xué)研究所,上海 200135)
多路RS-485板的開發(fā)與應(yīng)用
徐敏航1,葉 蓓2
(1.海軍駐上海711所軍事代表室,上海 201108;2.上海船舶運(yùn)輸科學(xué)研究所,上海 200135)
多路RS-485板采用RS-485通信構(gòu)成遠(yuǎn)程控制網(wǎng)絡(luò),該網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)采用總線結(jié)構(gòu),傳送數(shù)據(jù)采用單片機(jī)通信,傳輸介質(zhì)為4芯屏蔽電纜。硬件設(shè)計(jì)包括通信接口收發(fā)模塊與多路串口通信技術(shù)2個(gè)主要部分,在通信接口收發(fā)模塊中,介紹了MAX485收發(fā)器的原理及應(yīng)用;而在多路串口通信技術(shù)中,介紹了該電路板中SC16C554芯片的性能及應(yīng)用。針對(duì)RS-485網(wǎng)絡(luò)的應(yīng)用層,介紹了ModBus通信協(xié)議的協(xié)議特點(diǎn)。該電路板在船舶自動(dòng)化領(lǐng)域已經(jīng)得到了廣泛的應(yīng)用。
RS-485;多路串口通信;數(shù)據(jù)采集
RS-485標(biāo)準(zhǔn)是一種相對(duì)經(jīng)濟(jì)、高噪聲抑制、高傳輸速率、傳輸距離遠(yuǎn)、寬共模范圍的通信平臺(tái)。同時(shí),RS-485電路具有使用方便、可靠性高和成本低廉等優(yōu)點(diǎn),最多可以在平衡電纜上連接32個(gè)發(fā)送器/接收器,在工業(yè)控制、電力通信、智能監(jiān)控領(lǐng)域有著非常廣泛的應(yīng)用[1],特別適用于工業(yè)控制領(lǐng)域進(jìn)行分布式管理、聯(lián)網(wǎng)檢測(cè)控件等。目前Profibus-DP、Arcnet和CAN等總線標(biāo)準(zhǔn)的物理層均是RS-485規(guī)范。
隨著RS-485通信接口的廣泛應(yīng)用和工業(yè)控制的飛速發(fā)展,多串口通信顯得越來(lái)越重要。串口通信具有通信線路簡(jiǎn)單、使用靈活方便、數(shù)據(jù)傳遞安全可靠的優(yōu)點(diǎn),在工業(yè)控制、數(shù)據(jù)采集和實(shí)時(shí)監(jiān)控等場(chǎng)合得到廣泛的應(yīng)用。多串口芯片的性能在不斷提高、數(shù)據(jù)處理能力在不斷加強(qiáng),其應(yīng)用領(lǐng)域日益增多,應(yīng)用范圍涉及信號(hào)處理的諸多行業(yè)。本文介紹的多路RS-485板可用于各類船舶自動(dòng)化控制系統(tǒng),包括主機(jī)遙控系統(tǒng)、機(jī)艙監(jiān)測(cè)系統(tǒng)和電站監(jiān)控系統(tǒng)。
RS-485標(biāo)準(zhǔn)是一種平衡傳輸方式的串行接口標(biāo)準(zhǔn),也是多發(fā)送器的電路標(biāo)準(zhǔn),允許在雙導(dǎo)線上有多個(gè)發(fā)送器,也允許一個(gè)發(fā)送器驅(qū)動(dòng)多個(gè)負(fù)載的設(shè)備。
一般情況下,發(fā)送驅(qū)動(dòng)器之間的正電平在+2~+6 V,負(fù)電平在-2~-6 V,還有一個(gè)信號(hào)地。RS-485標(biāo)準(zhǔn)使用一對(duì)雙絞線進(jìn)行傳輸,數(shù)據(jù)信號(hào)采用差分方式[2]。在RS-485器件中,通常還有一個(gè)使能控制信號(hào),該信號(hào)用于控制發(fā)送驅(qū)動(dòng)器與傳輸線的切斷與連接。當(dāng)使能端起作用時(shí),發(fā)送驅(qū)動(dòng)器處于高阻狀態(tài),它是有別于邏輯“1”與“0”的第3種狀態(tài)。
對(duì)于接收器,也有與發(fā)送驅(qū)動(dòng)器相對(duì)的規(guī)定,收、發(fā)端通過平衡雙絞線將A-A與B-B對(duì)應(yīng)相連[3]。當(dāng)在接收端A-B之間有大于+200 mV的電平時(shí),輸出正電平;小于-200 mV時(shí),輸出負(fù)電平。在接收器的接收平衡線上,電平范圍通常在200 mV至6 V之間。
TIA/EIA-485串行通信方式標(biāo)準(zhǔn)性能如表1所示。
表1 TIA/EIA-485通信方式性能
RS-485標(biāo)準(zhǔn)只對(duì)接口的電氣特性做出規(guī)定,而不涉及接插件、電纜或協(xié)議,在此基礎(chǔ)上用戶可以建立自己的高層通信協(xié)議。RS-485有二線與四線方式,二線制可實(shí)現(xiàn)真正的多點(diǎn)雙向通信。采用四線方式時(shí),只能實(shí)現(xiàn)點(diǎn)對(duì)多的通信,只能有一個(gè)主設(shè)備,其余為從設(shè)備,但無(wú)論二線還是四線連接方式,總線上都可連接32個(gè)設(shè)備。
RS-485的特點(diǎn)是抗干擾能力強(qiáng),傳輸距離遠(yuǎn),速率高。平衡雙絞線的長(zhǎng)度與傳輸速率成反比,如果采用雙絞線傳輸信號(hào),當(dāng)最大傳輸速率為100 Mbit/s,傳輸距離為15 m;在最大100 kbit/s的傳輸速率下,可以傳輸1 200 m;如果最大傳輸速率為9 600 bit/s,則傳輸距離可達(dá)1 500 m。
RS-485電路需要2個(gè)終端電阻,其匹配阻值等于傳輸電纜的特性阻抗。在短距離傳輸時(shí)可以不需要終端電阻,通常在300 m以內(nèi)不需要。終端電阻接在傳輸總線的兩端。
RS-485芯片已廣泛應(yīng)用于工業(yè)控制、儀器儀表、智能化系統(tǒng)控制、監(jiān)控報(bào)警、機(jī)電一體化產(chǎn)品等許多領(lǐng)域,市場(chǎng)上可用的芯片種類越來(lái)越多,選擇最合適的芯片往往是每個(gè)設(shè)計(jì)者都會(huì)遇到的一個(gè)問題。在不同的應(yīng)用場(chǎng)合,RS-485接口對(duì)芯片的要求和使用方法也不同。半雙工通信的芯片主要有SN75176、SN75LBC184、MAX485、MAX1487 等;全雙工通信的芯片主要有 SN75179、MAX490、MAX1482等。在工業(yè)控制領(lǐng)域較為常用的通信接口之一就是物理層采用MAX485的通信接口,可以方便地將許多設(shè)備組成一個(gè)控制網(wǎng)絡(luò)。MAX485芯片具有結(jié)構(gòu)簡(jiǎn)單、價(jià)格低廉、抗雷擊和抗靜電沖擊、通信距離和數(shù)據(jù)傳輸速率適當(dāng)?shù)忍攸c(diǎn)。
MAX485是Maxim公司生產(chǎn)的一種低功耗、可用于RS-485和RS-422通信的收發(fā)器,通信方式采用半雙工,數(shù)據(jù)傳輸率為2.5 Mbit/s。該芯片有DIP/SO和μMAX 2種封裝形式,它們只是引腳定義的順序不同,代表的含義是相同的。DE和RE分別是該芯片的發(fā)送使能和接收使能,控制通信的收發(fā)狀態(tài)。DI和RO是信號(hào)的輸入端和輸出端,一般情況下是與單片機(jī)的串口TXD和RXD相連。A和B是差分信號(hào)的兩端,當(dāng)A的電平高于B端200 mV時(shí),代表RO輸出是高電平;當(dāng)A的電平低于B端200 mV時(shí),代表RO輸出是低電平。同時(shí)將A和B端之間加匹配電阻,一般可選120 Ω的電阻。MAX485的框圖與電路圖如圖1。
一般來(lái)說(shuō),多路串口通信技術(shù)有兩種實(shí)現(xiàn)方案:一種是通過軟件編程實(shí)現(xiàn),采用程序控制模擬串口的收發(fā)。這種方案存在的主要缺點(diǎn)有:采樣速率低,難以保證數(shù)據(jù)的連續(xù)性和正確性;無(wú)法實(shí)現(xiàn)高波特率的通信,串口模擬軟件一般達(dá)不到高于4 800 bit/s的波特率[4];編程復(fù)雜、開發(fā)周期長(zhǎng)、可靠性不高。
另一種是通過硬件的方法實(shí)現(xiàn),采用專用的串口可擴(kuò)展芯片[3]。這種方法可靠性高,開發(fā)相對(duì)簡(jiǎn)單。目前市場(chǎng)上的串口可擴(kuò)展芯片選擇性較多,如TI或Philips等公司開發(fā)的l6C554系列芯片。該系列芯片通過全硬件實(shí)現(xiàn)串口擴(kuò)展,保證了芯片工作的穩(wěn)定性,與標(biāo)準(zhǔn)串口通信格式兼容,完全能滿足一般系統(tǒng)需求,利用該系列芯片實(shí)現(xiàn)串口擴(kuò)展是性價(jià)比較高的串口擴(kuò)展方案。本設(shè)計(jì)是采用通用異步通信芯片SC16C554實(shí)現(xiàn)串口擴(kuò)展,采用單片機(jī)實(shí)現(xiàn)與異步串口擴(kuò)展芯片之間的控制。
圖1 MAX485引腳圖及工作電路圖
SC16C554是Philips公司生產(chǎn)的4路可擴(kuò)展串口的低功耗芯片,4個(gè)通道獨(dú)立收發(fā)數(shù)據(jù),與TI公司的TL16C554兼容。該芯片實(shí)現(xiàn)的功能是并行口和串行口的擴(kuò)展轉(zhuǎn)換,功能強(qiáng)大,通信速率高,最高處理串行數(shù)據(jù)的速率可達(dá)5 Mbit/s。具有可編程的控制寄存器,可以靈活選擇數(shù)據(jù)的收發(fā)頻率。SCl6C554實(shí)現(xiàn)多路串口通信的連接示意圖如圖2所示。
SCl6C554提供了15個(gè)內(nèi)部寄存器,這些寄存器分別是數(shù)據(jù)保持寄存器 (THR/RHR)、中斷狀態(tài)和控制寄存器 (IER/ISR)、FIFO控制寄存器(THR/RHR)、線路狀態(tài)和控制寄存器 (LCR/LSR)、modem狀態(tài)和控制寄存器 (MCR/MSR)、可編程數(shù)據(jù)速率控制寄存器 (DLL/DLM)、用戶可訪問暫存寄存器 (SPR),三位地址線A2~A0控制的內(nèi)部寄存器如表2所示。
RS-485收發(fā)器僅能夠用于實(shí)現(xiàn)RS-485網(wǎng)絡(luò)的物理層。在一個(gè)實(shí)際運(yùn)行的RS-485網(wǎng)絡(luò)中,還需要基于應(yīng)用層的通信協(xié)議,以完成預(yù)定功能的目標(biāo)之間的數(shù)據(jù)通信。由RS-485網(wǎng)絡(luò)的傳輸特性決定,任一時(shí)刻在同一物理連接網(wǎng)絡(luò)中只能夠存在一個(gè)發(fā)送節(jié)點(diǎn),多節(jié)點(diǎn)同時(shí)發(fā)送可能會(huì)導(dǎo)致RS-485總線出現(xiàn)競(jìng)爭(zhēng)“鎖定”。因此,通常選擇單主多從的通信協(xié)議作為RS-485網(wǎng)絡(luò)的應(yīng)用層通信協(xié)議。
RS-485是一種標(biāo)準(zhǔn)的物理接口,沒有統(tǒng)一的通信協(xié)議。很多具有RS-485接口電路的用戶設(shè)備都有自己制定的簡(jiǎn)單通信協(xié)議,但目前應(yīng)用非常廣泛的是ModBus協(xié)議,大部分公司的RS-485產(chǎn)品都支持此協(xié)議,或是直接取自 ModBus協(xié)議(ASCII/RTU/TCP模式)中的一部分功能。ModB-us協(xié)議需要對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)[5],串行協(xié)議中除了有奇偶校驗(yàn)外,RTU模式采用16位CRC校驗(yàn)。每次通信由主機(jī)發(fā)出數(shù)據(jù)請(qǐng)求信息,從機(jī)接收到正確消息后發(fā)送數(shù)據(jù)響應(yīng)主機(jī)的請(qǐng)求;主機(jī)也可以直接發(fā)信息修改從機(jī)的數(shù)據(jù),實(shí)現(xiàn)雙向讀寫。
電路板的原理結(jié)構(gòu)框圖如圖3所示。
接收數(shù)據(jù)時(shí),8路外部接口進(jìn)來(lái)的數(shù)據(jù)輸入到各自的RS485通信收發(fā)器MAX485芯片,完成電平轉(zhuǎn)換變成串行信號(hào)。再經(jīng)過光耦元件對(duì)4路通用異步通信芯片SC16C554和RS-485總線電路進(jìn)行隔離,提高系統(tǒng)的抗干擾能力,將串行數(shù)據(jù)存入到各路串口的緩存區(qū)。當(dāng)轉(zhuǎn)換芯片SC16C554檢測(cè)到某路串口有接收數(shù)據(jù)時(shí),該芯片發(fā)出該路的中斷信號(hào),通過PC104總線通知CPU串口存在需要接收的數(shù)據(jù)。CPU接收到外部中斷指令后,通過依次發(fā)出8路串口對(duì)應(yīng)在轉(zhuǎn)換芯片SC16C554中的中斷狀態(tài)寄存器的地址,讀取地址線上中斷狀態(tài)寄存器中的數(shù)據(jù),從而判斷出是哪路串口得到數(shù)據(jù)。隨后CPU在地址線上發(fā)送相應(yīng)的串口數(shù)據(jù)緩存的地址,在數(shù)據(jù)線上得到接收的串行數(shù)據(jù),CPU通知轉(zhuǎn)換芯片SC16C554接受數(shù)據(jù)完成,該芯片上的相應(yīng)緩存得到釋放。
發(fā)送數(shù)據(jù)時(shí),CPU首先在內(nèi)存中準(zhǔn)備需要發(fā)送的數(shù)據(jù),通過PC104總線接收4路串口/并口轉(zhuǎn)換芯片的中斷,CPU通過轉(zhuǎn)換芯片SC16C554內(nèi)部的寄存器來(lái)判斷中斷是否是因?yàn)槟陈钒l(fā)送緩沖區(qū)為空而發(fā)出的。如果是,則CPU將準(zhǔn)備好的數(shù)據(jù)通過PC104總線的數(shù)據(jù)線寫入4路串口/并口轉(zhuǎn)換芯片內(nèi)部相應(yīng)的寄存器,該芯片內(nèi)部有16 byte的發(fā)送數(shù)據(jù)緩存,可以在一次中斷中發(fā)送較多的數(shù)據(jù)。而轉(zhuǎn)換芯片SC16C554則根據(jù)設(shè)定好的數(shù)據(jù)流管理方式在相應(yīng)的時(shí)間內(nèi)將需要發(fā)送的數(shù)據(jù)加上起始位、校驗(yàn)位和終止位以串行數(shù)據(jù)的方式發(fā)送出去。串行數(shù)據(jù)通過光耦元件隔離后進(jìn)入RS485通信收發(fā)器MAX485芯片,然后發(fā)送至RS485通信線上的其他設(shè)備。CPU的分配地址如表3所示。
單塊RS-485板可以完成8路485的收發(fā),電路板很好地考慮了擴(kuò)展功能,只要使用4路RS-485板就可以完成總線上32路485的收發(fā)。擴(kuò)展后的結(jié)構(gòu)框圖如圖4所示。
圖3 電路板的原理結(jié)構(gòu)框圖
表3 CPU的地址分配
圖4 擴(kuò)展后的結(jié)構(gòu)框圖
可以看出,采用多路RS-485開發(fā)板的系統(tǒng)設(shè)計(jì)有2個(gè)突出的特點(diǎn)。首先,降低了硬件設(shè)計(jì)的難度,縮短了硬件開發(fā)周期,提高了設(shè)計(jì)的可靠性,使用上相當(dāng)?shù)撵`活、快速。再次,由于使用的是4路擴(kuò)展芯片SC16C554,使得軟件開發(fā)容易,開發(fā)者無(wú)需過多地考慮細(xì)節(jié)性的電路設(shè)計(jì),可以把注意力集中在系統(tǒng)整體構(gòu)架和功能上,同時(shí)還可以得到比較好的系統(tǒng)穩(wěn)定性和可靠性。
作為一種便利的通信方式,基于485總線的系統(tǒng)具有接口簡(jiǎn)單,性價(jià)比高等特點(diǎn)。本文提出了一種采用串口擴(kuò)展芯片SC16C554實(shí)現(xiàn)多路RS-485通信的方法,硬件設(shè)計(jì)邏輯上比較簡(jiǎn)單。該技術(shù)可應(yīng)用于各類多路RS-485的需求控制,適用領(lǐng)域廣泛,體現(xiàn)了多路RS-485通信的靈活性、高可靠性等特點(diǎn),大大降低了成本,縮短了開發(fā)時(shí)間。目前已經(jīng)在船舶自動(dòng)化領(lǐng)域得到了廣泛的應(yīng)用,實(shí)踐證明,該開發(fā)板使用穩(wěn)定、可靠,可為解決相關(guān)課題提供新思路。
[1]郭詮水.通信設(shè)備接口技術(shù)及其應(yīng)用[M].北京:人民郵電出版社,2009.
[2]譚志東,楊著,劉青山,等.基于RS485總線的集中監(jiān)控系統(tǒng)設(shè)計(jì)與仿真 [J].科學(xué)技術(shù)與工程,2010(28):1-5.
[3]謝輝,陳立萬(wàn).基于RS485網(wǎng)絡(luò)的智能通信系統(tǒng)設(shè)計(jì)[J].自動(dòng)化與儀表,2009(10):1-4.
[4]胡成華,劉傳瑞,郭文生.嵌入式網(wǎng)絡(luò)編程串口通信、工業(yè)總線、傳感器網(wǎng)絡(luò)應(yīng)用開發(fā)[M].北京:電子工業(yè)出版社,2012.
[5]宋建,瞿金平.基于Modbus協(xié)議的PCC與觸摸屏串口通信的實(shí)現(xiàn) [J].機(jī)電一體化,2007(2):1-3.
RS-485 communication is adopted in multi-channel RS-485 board to form the remote-control network with bus structure as its topology stucture,fourchips shielded cable as its medium and monolithic communication as its data transmission.Hardwork design includes two main parts-communication interface bistatic module and multiple-serial communication technology.In the first part,the principle and application for MAX485 transceiver are introduced and in the second part,the performance and application of SC16C554 chip in the board are introduced as well.The character of the ModBus Agreement is given directed against the application layer of RS -485 network,which is widely used in ship-automation.
RS-485;multiple-serial communication technology;data acquisition
U672
C
1001-8328(2013)05-0033-05
徐敏航 (1979-),男,黑龍江哈爾濱人,工程師,學(xué)士,主要從事船用機(jī)電系統(tǒng)裝備監(jiān)造工作。
2013-07-02