【正文】
his paper, the MODBUS is a simple and easy to use code, CAN bus technology is studied, from hardware and software two aspects, to intelligent protocol adapters, implementation in the form of intelligent switching between MODBUS bus and CAN bus reliability, high speed switching. Implementation using MODBUS statute device through the bus adapter flexibly connected to CAN bus network.For bus adapter bad work environment, from the aspects of hardware design and software design to enhance the reliability of the bus protocol adapter and antiinterference ability.This article also introduces the laboratory test and the analysis of experimental results. For the bus protocol adapters work performance index provides a data basis.Practical significance of this subject is to design the intelligent bus protocol adapters as Modbus bus and CAN bus network patible with the implementation of the plan, implementation USES a Modbus serial interface munication protocol of the majority of the field intelligent instruments and meters and other automation control device for flexible access to the CAN field bus network. Expounds the application of the method can also provide a reference for other engineering field.[Keywords]:Fieldbus,Modbus,CAN,AdapterXIII前言基于ARM的Modbus/TCPCAN總線適配器的硬件設(shè)計(jì) 現(xiàn)場(chǎng)總線技術(shù)是當(dāng)今自動(dòng)化領(lǐng)域發(fā)展的研究熱。CAN規(guī)范現(xiàn)已被國(guó)際標(biāo)準(zhǔn)化組織采納,成為15011898標(biāo)準(zhǔn)??偩€作為一種可靠性高、功能完善、靈活性好并且成本合理的先進(jìn)遠(yuǎn)程網(wǎng)絡(luò)控制方式在工業(yè)自動(dòng)化控制領(lǐng)域中有著非常廣泛的應(yīng)用。只要按照MODBUS規(guī)約進(jìn)行數(shù)據(jù)通訊或傳輸,不同的系統(tǒng)或設(shè)備之間就可以實(shí)現(xiàn)無障礙的數(shù)據(jù)通訊。而MODBUS規(guī)約與CAN總線協(xié)議是互不兼容的。 第51頁(共50頁) 選課背景2 選題背景 課題來源課題來源于科研項(xiàng)目。例如工業(yè)過程控制系統(tǒng)中模擬量信號(hào)實(shí)現(xiàn)了數(shù)字化傳輸?shù)募夹g(shù)革命的產(chǎn)生就是由于現(xiàn)場(chǎng)總線技術(shù)產(chǎn)生和發(fā)展的結(jié)果。為完成一個(gè)基于ARM的Modbus/TCPCAN總線適配器的硬件設(shè)計(jì),且具有較高測(cè)量精度和穩(wěn)定性,該系統(tǒng)需要解決的關(guān)鍵技術(shù)問題有:(1)掌握can協(xié)議、modbus協(xié)議(2)了解嵌入式設(shè)計(jì)原理及過程,掌握接口技術(shù)(3)以太網(wǎng)接口電路設(shè)計(jì)(4)CAN總線接口電路設(shè)計(jì) 國(guó)內(nèi)外研究現(xiàn)狀與發(fā)展趨勢(shì)現(xiàn)場(chǎng)總線是制造技術(shù)、儀表技術(shù)、自動(dòng)化技術(shù)、計(jì)算機(jī)技術(shù)與網(wǎng)絡(luò)技術(shù)的有機(jī)結(jié)合,相關(guān)技術(shù)的發(fā)展對(duì)現(xiàn)場(chǎng)總線的發(fā)展都有很大的推動(dòng)作用,尤其是網(wǎng)絡(luò)技術(shù)對(duì)現(xiàn)場(chǎng)總線的影響。各大自動(dòng)化公司都推出了各自的現(xiàn)場(chǎng)總線標(biāo)準(zhǔn),提出了現(xiàn)場(chǎng)總線控制系統(tǒng)解決方案和產(chǎn)品。(1)TS61158現(xiàn)場(chǎng)總線該總線主要采用了Foundation FieldbuS總線和WorldFIP總線基本技術(shù),支持各種工業(yè)領(lǐng)域的信息處理、監(jiān)視和控制系統(tǒng),主要用于本地控制器、執(zhí)行器和傳感器之間的底層通信,可以實(shí)現(xiàn)PLC的互連。Ethernet/IP以太網(wǎng)工業(yè)協(xié)議在TCP用DP/IP之上附加控制和信息協(xié)議,提供一個(gè)公共的應(yīng)用層。(3)Profibus現(xiàn)場(chǎng)總線Profibus現(xiàn)場(chǎng)總線有ProfibusDPV1和ProfibusDPV2之分。ProfibusPA適用于過程自動(dòng)化,使用兩根線實(shí)現(xiàn)數(shù)據(jù)通信和供電,實(shí)現(xiàn)了本質(zhì)安全性能。(4)P NET現(xiàn)場(chǎng)總線PNET現(xiàn)場(chǎng)總線是多網(wǎng)絡(luò)、多主站系統(tǒng),采用分段式總線結(jié)構(gòu),每個(gè)總線分段上可以接入多個(gè)主站,主站之間通過接口實(shí)現(xiàn)網(wǎng)絡(luò)互連,它允許在沒有遞階網(wǎng)絡(luò)結(jié)構(gòu)的前提下可以實(shí)現(xiàn)多個(gè)總線區(qū)直接尋址。(6)SwiftNet現(xiàn)場(chǎng)總線該總線具有簡(jiǎn)單的結(jié)構(gòu)、較高的實(shí)時(shí)性,僅包括物理層和數(shù)據(jù)鏈路層兩層結(jié)構(gòu)。物理層波特率為5Mbps,一秒鐘內(nèi)實(shí)現(xiàn)105個(gè)不同報(bào)文的傳送。(7)WorldFIP現(xiàn)場(chǎng)總線WorldFIP現(xiàn)場(chǎng)總線系統(tǒng)分為過程、控制和監(jiān)控三級(jí)。WorldFIP協(xié)議包含物理層、數(shù)據(jù)鏈路層和應(yīng)用層三層結(jié)構(gòu)。INTERBUS總線包括遠(yuǎn)程總線和本地總線。(9)FF H1現(xiàn)場(chǎng)總線FF H1現(xiàn)場(chǎng)總線協(xié)議由物理層、數(shù)據(jù)鏈路層、應(yīng)用層以及用戶層四層組成。(10)PROFI net現(xiàn)場(chǎng)總線PROFI net有機(jī)地融合了工廠自動(dòng)化和企業(yè)信息管理層IT技術(shù),完全保留了Profibus現(xiàn)有的開放性。此外還有這樣幾種上面未提到但很常用的現(xiàn)場(chǎng)總線,比較流行的有:(1)LONWORKS現(xiàn)場(chǎng)總線由美國(guó)Echelon公司推出并與東芝、摩托羅拉共同倡導(dǎo),于1990年正式公布而形成的,采用面現(xiàn)對(duì)象的設(shè)計(jì)方法和ISO/OSI模型的全部七層網(wǎng)絡(luò)結(jié)構(gòu),廣泛應(yīng)用于家庭自動(dòng)化、樓宇自動(dòng)化、保安系統(tǒng)、辦公設(shè)備等行業(yè),基本沒有應(yīng)用在工業(yè)方面。其特點(diǎn)是在現(xiàn)有模擬信號(hào)傳輸線上實(shí)現(xiàn)數(shù)字信號(hào)傳輸,屬于模擬系統(tǒng)數(shù)字化轉(zhuǎn)變的過渡性產(chǎn)品?,F(xiàn)在已經(jīng)逐步應(yīng)用到其他控制領(lǐng)域。Modbus和CAN總線技術(shù)的介紹3 Modbus和CAN總線技術(shù)的介紹 Modbus技術(shù) ModBus是MODICON公司最先倡導(dǎo)的一種通信協(xié)議,經(jīng)過許多公司的實(shí)際應(yīng)用,逐漸被認(rèn)可,成為一種應(yīng)用于工業(yè)控制器上的標(biāo)準(zhǔn)通信協(xié)議。當(dāng)在一MODBUS網(wǎng)絡(luò)上通信時(shí),此協(xié)議決定了每個(gè)控制器必須要知道它們的設(shè)備地址,識(shí)別按地址發(fā)來的消息,決定要產(chǎn)生何種行動(dòng)。在其它網(wǎng)絡(luò)上,包含了MODBUS協(xié)議的消息轉(zhuǎn)換為在此網(wǎng)絡(luò)上使用的幀或包結(jié)構(gòu)。ModBus通信采用主從方式,主機(jī)端發(fā)出數(shù)據(jù)請(qǐng)求消息,從機(jī)端接收到正確消息后就可以發(fā)送數(shù)據(jù)到主機(jī)端以響應(yīng)請(qǐng)求,主機(jī)端也可以直接發(fā)信息修改從機(jī)端的數(shù)據(jù),實(shí)現(xiàn)雙向讀寫。通常情況下,主設(shè)備只與l臺(tái)從設(shè)備通信,但當(dāng)主設(shè)備發(fā)出的地址碼為0即采用廣播方式時(shí),可以將消息發(fā)送給所有的從設(shè)備。ModBus一次通信其發(fā)送和接收的數(shù)據(jù)包由若干幀組成,協(xié)議正是定義了這些幀的意義,控制器只要按照協(xié)議解釋其接收和發(fā)送的幀數(shù)據(jù),就能與在同一網(wǎng)絡(luò)中采用同樣協(xié)議的控制器實(shí)現(xiàn)通信。目前,ModBus協(xié)議常用的傳輸速率為1200 bit/s~19200 bit/s。MODBUS是OSI模型第7層上的應(yīng)用層報(bào)文傳輸協(xié)議,它在連接不同類型網(wǎng)絡(luò)的設(shè)備之間提供數(shù)據(jù)的通信。(1)以太網(wǎng)上的TCP/IP。(3) MODBUS PLUS,一種高速令牌傳遞網(wǎng)絡(luò) MODBUS數(shù)據(jù)單元 MODBUS協(xié)議定義了一個(gè)與基礎(chǔ)層無關(guān)的簡(jiǎn)單協(xié)議數(shù)據(jù)單元(Protocol Data Unit, PDU),特定總線或網(wǎng)絡(luò)上的MODBUS協(xié)議映射能夠在應(yīng)用數(shù)據(jù)單元(Additional Data Unit, ADU)上引入一些附加域,通用MODBU幀如圖22所示。其通信遵循以下的過程: (1)客戶端準(zhǔn)備請(qǐng)求并向服務(wù)器發(fā)送請(qǐng)求;(2)服務(wù)器分析并處理客服端的請(qǐng)求,然后向客戶端發(fā)送結(jié)果;(3)如果出現(xiàn)任何差錯(cuò),服務(wù)器將返回一個(gè)異常功能碼。對(duì)于一個(gè)正常響應(yīng)來說,服務(wù)器僅原始功能碼響應(yīng)。圖34 MODBUS事務(wù)處理(異常響應(yīng)) Modbus主站/從站協(xié)議原理Modbus串行鏈路協(xié)議是一個(gè)主—從協(xié)議。Modbus通信總是由主節(jié)點(diǎn)發(fā)起。主節(jié)點(diǎn)在同一時(shí)刻只會(huì)發(fā)起一個(gè)Modbus事務(wù)處理。 在單播模式,主節(jié)點(diǎn)以特定地址訪問某子節(jié)點(diǎn),子節(jié)點(diǎn)接到并處理完請(qǐng)求后,子節(jié)點(diǎn)向主節(jié)點(diǎn)返回一個(gè)報(bào)文(一個(gè)‘應(yīng)答’)。每個(gè)子節(jié)點(diǎn)必須有唯一的地址(1到247),這樣才能區(qū)別于其它節(jié)點(diǎn)被豬瘟獨(dú)立的尋址。 對(duì)于主節(jié)點(diǎn)廣播的請(qǐng)求沒有應(yīng)答返回,廣播請(qǐng)求一般用于寫命令。地址0是專門用于表示廣播數(shù)據(jù)的。(1)在標(biāo)準(zhǔn)MODBUS網(wǎng)絡(luò)上轉(zhuǎn)輸標(biāo)準(zhǔn)的MODBUS口是使用RS232C兼容串行接口,它定義了連接口的針腳、電纜、信號(hào)位、傳輸波特率、奇偶校驗(yàn)??刂破魍ㄐ攀褂弥鲝募夹g(shù),即僅設(shè)備(主設(shè)備)能初始化傳輸(查詢)。典型的主設(shè)備:主機(jī)和可編程儀表。主設(shè)備可單獨(dú)和從設(shè)備通信,也能以廣播方式和所有從設(shè)備通信。MODBUS協(xié)議建立了主設(shè)備查詢的格式:設(shè)備(或廣播)地址、功能代碼、所有要發(fā)送的數(shù)據(jù)、錯(cuò)誤檢測(cè)域。如果在消息接收過程中發(fā)生錯(cuò)誤,或從設(shè)備不能執(zhí)行其命令,從設(shè)備將建立錯(cuò)誤消息并把它作為回應(yīng)發(fā)送出去。這樣在單獨(dú)的通信過程中,控制器既可作為主設(shè)備也可作為從設(shè)備。在消息位,MODBUS協(xié)議仍提供了主從原則,盡管網(wǎng)絡(luò)通信方法是“對(duì)等”。同樣,當(dāng)控制器接收到消息,它將建立一從設(shè)備回應(yīng)格式并返回給發(fā)送的控制器。其物理層采用RS23485等異步串行標(biāo)準(zhǔn)。MODBUS通訊方式采用主從方式的查詢-相應(yīng)機(jī)制,只有主站發(fā)出查詢時(shí),從站才能給出響應(yīng),從站不能主動(dòng)發(fā)送數(shù)據(jù)。從站只響應(yīng)單獨(dú)發(fā)給它的查詢,而不響應(yīng)廣播消息。 ASCII模式當(dāng)控制器設(shè)為在Modbus網(wǎng)絡(luò)上以ASCII(美國(guó)標(biāo)準(zhǔn)信息交換代碼)模式通信,在消息中的每個(gè)8Bit字節(jié)都作為一個(gè)ASCII碼(兩個(gè)十六進(jìn)制字符)發(fā)送。信息幀的每一字節(jié)是用兩個(gè)字符表示的,如十六進(jìn)制數(shù)63,在ASCII 模式下占用2 字節(jié),用以表示字符“6”和“3”,其代碼是:0ll0ll0 0ll00ll。 RTU(Remote Terminal Unit)模式當(dāng)控制器設(shè)為在Modbus網(wǎng)絡(luò)上以RTU(遠(yuǎn)程終端單元)模式通信,在消息中的每個(gè)8Bit字節(jié)包含兩個(gè)4Bit的 十六進(jìn)制字符?! D37 RTU的串行字節(jié)表達(dá)格式:地址功能代碼數(shù)據(jù)數(shù)量數(shù)據(jù)1…數(shù)據(jù)nLRC高字節(jié)LRC低字節(jié)回車換行ASCII 模式地址功能代碼數(shù)據(jù)數(shù)量數(shù)據(jù)1…數(shù)據(jù)nCRC高字節(jié)CRC低字節(jié)RTU 模式 CAN總線技術(shù) 控制器局部網(wǎng)(CAN)控制器局部網(wǎng)(Controller Area NetworkCAN)屬于現(xiàn)場(chǎng)總線的范疇,它是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò)。由于CAN現(xiàn)場(chǎng)總線有卓越的特性和極高的可靠性,特別適合工業(yè)過程監(jiān)控設(shè)備的互連,因此越來越受到工業(yè)界的重視,并被公認(rèn)為幾種最有前途的現(xiàn)場(chǎng)總線之一,成為一種國(guó)際標(biāo)準(zhǔn)(ISO 11898)CAN現(xiàn)場(chǎng)總線是一個(gè)多主總線,各節(jié)點(diǎn)都有權(quán)向其它節(jié)點(diǎn)發(fā)送信息。(2)采用點(diǎn)對(duì)點(diǎn)、全局廣播發(fā)送接收數(shù)據(jù)。(4)采用非破壞性總線優(yōu)先級(jí)仲裁技術(shù),當(dāng)兩個(gè)節(jié)點(diǎn)同時(shí)向網(wǎng)上發(fā)送信息時(shí),優(yōu)先級(jí)低的節(jié)點(diǎn)主動(dòng)停止發(fā)送數(shù)據(jù)。采用短幀結(jié)構(gòu),傳送時(shí)間短、受干擾概率低。(7)具有自動(dòng)關(guān)閉功能,當(dāng)接點(diǎn)錯(cuò)誤嚴(yán)重時(shí),自動(dòng)切斷與總線的聯(lián)系,以不影響總線的工作。由于其高性能、高可靠性及獨(dú)特的設(shè)計(jì),CAN越來越受到人們的重視。CAN最初是由德國(guó)的BOSCH公司為汽車監(jiān)測(cè)、控制系統(tǒng)而設(shè)計(jì)的。CAN己經(jīng)形成國(guó)際標(biāo)準(zhǔn),并己被公認(rèn)為幾種最有前途的現(xiàn)場(chǎng)總線之一。利用這一點(diǎn)可以方便的構(gòu)成多機(jī)備份系統(tǒng)。 CAN節(jié)點(diǎn)的分層結(jié)構(gòu)為使設(shè)計(jì)透明和執(zhí)行靈活,遵循ISO/OSI標(biāo)準(zhǔn)模型,CAN分為數(shù)據(jù)鏈路層(包括邏輯鏈路控制子層LLC和媒體訪問控制子層MAC)和物理層,數(shù)據(jù)鏈路層的LLC和MAC子層的服務(wù)和功能被描述為“目標(biāo)層”和“傳送層”。在定義目標(biāo)處理時(shí),存在很多靈活性。MAC子層也要確定,為開始新一次的發(fā)送,總線是否開放或者是否馬上開始接收。MAC子層特性不存在修改的靈活性。顯然,在一個(gè)網(wǎng)絡(luò)里,所有節(jié)點(diǎn)物理層必須是相同的。 ,并描述與CAN有關(guān)的外層,物理層定義信號(hào)怎樣進(jìn)行發(fā)送,因而,涉及位定時(shí)、位編碼和同步的描述。MAC子層是CAN協(xié)議的核心,它描述由LLC子層接收到的報(bào)文和對(duì)LLC子層發(fā)送的認(rèn)可報(bào)文。LLC子層的主要功能是報(bào)文濾波、超載通知和恢復(fù)管理。1991年9月飛利浦半導(dǎo)體公司制訂并發(fā)布了CAN技術(shù)規(guī)范。此后,CAN成為國(guó)際標(biāo)準(zhǔn)ISO I 1898。 CAN通信參考模型參照ISO/OSI標(biāo)準(zhǔn)模型,CAN分為數(shù)據(jù)鏈路層和物理層。MAC子層主要規(guī)定傳輸規(guī)則,即控制幀結(jié)構(gòu)、執(zhí)行仲裁、錯(cuò)誤檢測(cè)、出錯(cuò)標(biāo)定和故障界定。MAC子層特性不存在修改的靈活性。在一個(gè)網(wǎng)絡(luò)內(nèi),要實(shí)現(xiàn)不同節(jié)點(diǎn)間的數(shù)據(jù)傳輸,所有節(jié)點(diǎn)的物理層必須是相同的。如果一個(gè)節(jié)點(diǎn)不是報(bào)文發(fā)送器,并且總線不處于空閑狀態(tài),則該節(jié)點(diǎn)為接收器。報(bào)文傳輸有4個(gè)不同類型的幀:數(shù)據(jù)幀,遠(yuǎn)程幀,錯(cuò)誤幀,過載幀。這里主要介紹一下數(shù)據(jù)幀。它由七種不同的位域組成:幀的起始域,仲裁域,控制域,數(shù)據(jù)域(長(zhǎng)度可為0)CRC域,應(yīng)答域,幀的結(jié)束域。標(biāo)準(zhǔn)格式和擴(kuò)展格式的數(shù)據(jù)幀結(jié)構(gòu)如圖312所示。(2)仲裁場(chǎng):標(biāo)準(zhǔn)格式幀與擴(kuò)展格式幀的仲裁域格