徐敏航,葉 蓓
(1.海軍駐上海711所軍事代表室,上海 201108;2.上海船舶運輸科學研究所,上海 200135)
多路RS-485板的開發與應用
徐敏航1,葉 蓓2
(1.海軍駐上海711所軍事代表室,上海 201108;2.上海船舶運輸科學研究所,上海 200135)
多路RS-485板采用RS-485通信構成遠程控制網絡,該網絡的拓撲結構采用總線結構,傳送數據采用單片機通信,傳輸介質為4芯屏蔽電纜。硬件設計包括通信接口收發模塊與多路串口通信技術2個主要部分,在通信接口收發模塊中,介紹了MAX485收發器的原理及應用;而在多路串口通信技術中,介紹了該電路板中SC16C554芯片的性能及應用。針對RS-485網絡的應用層,介紹了ModBus通信協議的協議特點。該電路板在船舶自動化領域已經得到了廣泛的應用。
RS-485;多路串口通信;數據采集
RS-485標準是一種相對經濟、高噪聲抑制、高傳輸速率、傳輸距離遠、寬共模范圍的通信平臺。同時,RS-485電路具有使用方便、可靠性高和成本低廉等優點,最多可以在平衡電纜上連接32個發送器/接收器,在工業控制、電力通信、智能監控領域有著非常廣泛的應用[1],特別適用于工業控制領域進行分布式管理、聯網檢測控件等。目前Profibus-DP、Arcnet和CAN等總線標準的物理層均是RS-485規范。
隨著RS-485通信接口的廣泛應用和工業控制的飛速發展,多串口通信顯得越來越重要。串口通信具有通信線路簡單、使用靈活方便、數據傳遞安全可靠的優點,在工業控制、數據采集和實時監控等場合得到廣泛的應用。多串口芯片的性能在不斷提高、數據處理能力在不斷加強,其應用領域日益增多,應用范圍涉及信號處理的諸多行業。本文介紹的多路RS-485板可用于各類船舶自動化控制系統,包括主機遙控系統、機艙監測系統和電站監控系統。
RS-485標準是一種平衡傳輸方式的串行接口標準,也是多發送器的電路標準,允許在雙導線上有多個發送器,也允許一個發送器驅動多個負載的設備。
一般情況下,發送驅動器之間的正電平在+2~+6 V,負電平在-2~-6 V,還有一個信號地。RS-485標準使用一對雙絞線進行傳輸,數據信號采用差分方式[2]。在RS-485器件中,通常還有一個使能控制信號,該信號用于控制發送驅動器與傳輸線的切斷與連接。當使能端起作用時,發送驅動器處于高阻狀態,它是有別于邏輯“1”與“0”的第3種狀態。
對于接收器,也有與發送驅動器相對的規定,收、發端通過平衡雙絞線將A-A與B-B對應相連[3]。當在接收端A-B之間有大于+200 mV的電平時,輸出正電平;小于-200 mV時,輸出負電平。在接收器的接收平衡線上,電平范圍通常在200 mV至6 V之間。
TIA/EIA-485串行通信方式標準性能如表1所示。

表1 TIA/EIA-485通信方式性能
RS-485標準只對接口的電氣特性做出規定,而不涉及接插件、電纜或協議,在此基礎上用戶可以建立自己的高層通信協議。RS-485有二線與四線方式,二線制可實現真正的多點雙向通信。采用四線方式時,只能實現點對多的通信,只能有一個主設備,其余為從設備,但無論二線還是四線連接方式,總線上都可連接32個設備。
RS-485的特點是抗干擾能力強,傳輸距離遠,速率高。平衡雙絞線的長度與傳輸速率成反比,如果采用雙絞線傳輸信號,當最大傳輸速率為100 Mbit/s,傳輸距離為15 m;在最大100 kbit/s的傳輸速率下,可以傳輸1 200 m;如果最大傳輸速率為9 600 bit/s,則傳輸距離可達1 500 m。
RS-485電路需要2個終端電阻,其匹配阻值等于傳輸電纜的特性阻抗。在短距離傳輸時可以不需要終端電阻,通常在300 m以內不需要。終端電阻接在傳輸總線的兩端。
RS-485芯片已廣泛應用于工業控制、儀器儀表、智能化系統控制、監控報警、機電一體化產品等許多領域,市場上可用的芯片種類越來越多,選擇最合適的芯片往往是每個設計者都會遇到的一個問題。在不同的應用場合,RS-485接口對芯片的要求和使用方法也不同。半雙工通信的芯片主要有SN75176、SN75LBC184、MAX485、MAX1487 等;全雙工通信的芯片主要有 SN75179、MAX490、MAX1482等。在工業控制領域較為常用的通信接口之一就是物理層采用MAX485的通信接口,可以方便地將許多設備組成一個控制網絡。MAX485芯片具有結構簡單、價格低廉、抗雷擊和抗靜電沖擊、通信距離和數據傳輸速率適當等特點。
MAX485是Maxim公司生產的一種低功耗、可用于RS-485和RS-422通信的收發器,通信方式采用半雙工,數據傳輸率為2.5 Mbit/s。該芯片有DIP/SO和μMAX 2種封裝形式,它們只是引腳定義的順序不同,代表的含義是相同的。DE和RE分別是該芯片的發送使能和接收使能,控制通信的收發狀態。DI和RO是信號的輸入端和輸出端,一般情況下是與單片機的串口TXD和RXD相連。A和B是差分信號的兩端,當A的電平高于B端200 mV時,代表RO輸出是高電平;當A的電平低于B端200 mV時,代表RO輸出是低電平。同時將A和B端之間加匹配電阻,一般可選120 Ω的電阻。MAX485的框圖與電路圖如圖1。
一般來說,多路串口通信技術有兩種實現方案:一種是通過軟件編程實現,采用程序控制模擬串口的收發。這種方案存在的主要缺點有:采樣速率低,難以保證數據的連續性和正確性;無法實現高波特率的通信,串口模擬軟件一般達不到高于4 800 bit/s的波特率[4];編程復雜、開發周期長、可靠性不高。
另一種是通過硬件的方法實現,采用專用的串口可擴展芯片[3]。這種方法可靠性高,開發相對簡單。目前市場上的串口可擴展芯片選擇性較多,如TI或Philips等公司開發的l6C554系列芯片。該系列芯片通過全硬件實現串口擴展,保證了芯片工作的穩定性,與標準串口通信格式兼容,完全能滿足一般系統需求,利用該系列芯片實現串口擴展是性價比較高的串口擴展方案。本設計是采用通用異步通信芯片SC16C554實現串口擴展,采用單片機實現與異步串口擴展芯片之間的控制。

圖1 MAX485引腳圖及工作電路圖
SC16C554是Philips公司生產的4路可擴展串口的低功耗芯片,4個通道獨立收發數據,與TI公司的TL16C554兼容。該芯片實現的功能是并行口和串行口的擴展轉換,功能強大,通信速率高,最高處理串行數據的速率可達5 Mbit/s。具有可編程的控制寄存器,可以靈活選擇數據的收發頻率。SCl6C554實現多路串口通信的連接示意圖如圖2所示。
SCl6C554提供了15個內部寄存器,這些寄存器分別是數據保持寄存器 (THR/RHR)、中斷狀態和控制寄存器 (IER/ISR)、FIFO控制寄存器(THR/RHR)、線路狀態和控制寄存器 (LCR/LSR)、modem狀態和控制寄存器 (MCR/MSR)、可編程數據速率控制寄存器 (DLL/DLM)、用戶可訪問暫存寄存器 (SPR),三位地址線A2~A0控制的內部寄存器如表2所示。
RS-485收發器僅能夠用于實現RS-485網絡的物理層。在一個實際運行的RS-485網絡中,還需要基于應用層的通信協議,以完成預定功能的目標之間的數據通信。由RS-485網絡的傳輸特性決定,任一時刻在同一物理連接網絡中只能夠存在一個發送節點,多節點同時發送可能會導致RS-485總線出現競爭“鎖定”。因此,通常選擇單主多從的通信協議作為RS-485網絡的應用層通信協議。
RS-485是一種標準的物理接口,沒有統一的通信協議。很多具有RS-485接口電路的用戶設備都有自己制定的簡單通信協議,但目前應用非常廣泛的是ModBus協議,大部分公司的RS-485產品都支持此協議,或是直接取自 ModBus協議(ASCII/RTU/TCP模式)中的一部分功能。ModB-us協議需要對數據進行校驗[5],串行協議中除了有奇偶校驗外,RTU模式采用16位CRC校驗。每次通信由主機發出數據請求信息,從機接收到正確消息后發送數據響應主機的請求;主機也可以直接發信息修改從機的數據,實現雙向讀寫。
電路板的原理結構框圖如圖3所示。
接收數據時,8路外部接口進來的數據輸入到各自的RS485通信收發器MAX485芯片,完成電平轉換變成串行信號。再經過光耦元件對4路通用異步通信芯片SC16C554和RS-485總線電路進行隔離,提高系統的抗干擾能力,將串行數據存入到各路串口的緩存區。當轉換芯片SC16C554檢測到某路串口有接收數據時,該芯片發出該路的中斷信號,通過PC104總線通知CPU串口存在需要接收的數據。CPU接收到外部中斷指令后,通過依次發出8路串口對應在轉換芯片SC16C554中的中斷狀態寄存器的地址,讀取地址線上中斷狀態寄存器中的數據,從而判斷出是哪路串口得到數據。隨后CPU在地址線上發送相應的串口數據緩存的地址,在數據線上得到接收的串行數據,CPU通知轉換芯片SC16C554接受數據完成,該芯片上的相應緩存得到釋放。
發送數據時,CPU首先在內存中準備需要發送的數據,通過PC104總線接收4路串口/并口轉換芯片的中斷,CPU通過轉換芯片SC16C554內部的寄存器來判斷中斷是否是因為某路發送緩沖區為空而發出的。如果是,則CPU將準備好的數據通過PC104總線的數據線寫入4路串口/并口轉換芯片內部相應的寄存器,該芯片內部有16 byte的發送數據緩存,可以在一次中斷中發送較多的數據。而轉換芯片SC16C554則根據設定好的數據流管理方式在相應的時間內將需要發送的數據加上起始位、校驗位和終止位以串行數據的方式發送出去。串行數據通過光耦元件隔離后進入RS485通信收發器MAX485芯片,然后發送至RS485通信線上的其他設備。CPU的分配地址如表3所示。
單塊RS-485板可以完成8路485的收發,電路板很好地考慮了擴展功能,只要使用4路RS-485板就可以完成總線上32路485的收發。擴展后的結構框圖如圖4所示。

圖3 電路板的原理結構框圖

表3 CPU的地址分配

圖4 擴展后的結構框圖
可以看出,采用多路RS-485開發板的系統設計有2個突出的特點。首先,降低了硬件設計的難度,縮短了硬件開發周期,提高了設計的可靠性,使用上相當的靈活、快速。再次,由于使用的是4路擴展芯片SC16C554,使得軟件開發容易,開發者無需過多地考慮細節性的電路設計,可以把注意力集中在系統整體構架和功能上,同時還可以得到比較好的系統穩定性和可靠性。
作為一種便利的通信方式,基于485總線的系統具有接口簡單,性價比高等特點。本文提出了一種采用串口擴展芯片SC16C554實現多路RS-485通信的方法,硬件設計邏輯上比較簡單。該技術可應用于各類多路RS-485的需求控制,適用領域廣泛,體現了多路RS-485通信的靈活性、高可靠性等特點,大大降低了成本,縮短了開發時間。目前已經在船舶自動化領域得到了廣泛的應用,實踐證明,該開發板使用穩定、可靠,可為解決相關課題提供新思路。
[1]郭詮水.通信設備接口技術及其應用[M].北京:人民郵電出版社,2009.
[2]譚志東,楊著,劉青山,等.基于RS485總線的集中監控系統設計與仿真 [J].科學技術與工程,2010(28):1-5.
[3]謝輝,陳立萬.基于RS485網絡的智能通信系統設計[J].自動化與儀表,2009(10):1-4.
[4]胡成華,劉傳瑞,郭文生.嵌入式網絡編程串口通信、工業總線、傳感器網絡應用開發[M].北京:電子工業出版社,2012.
[5]宋建,瞿金平.基于Modbus協議的PCC與觸摸屏串口通信的實現 [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-),男,黑龍江哈爾濱人,工程師,學士,主要從事船用機電系統裝備監造工作。
2013-07-02