專利名稱:Modbus與 Canbus通訊數(shù)據(jù)快速交換的系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種快速實(shí)現(xiàn)RS485接口下的Modbus與Canbus通訊數(shù)據(jù)的快速交換的系統(tǒng)。
背景技術(shù):
Modbus協(xié)議是一種標(biāo)準(zhǔn)的應(yīng)用層協(xié)議,采用RS485接口形式的Modbus通訊已經(jīng)廣泛應(yīng)用于各種工控場(chǎng)合。該協(xié)議對(duì)外開放,實(shí)時(shí)性強(qiáng),通訊驗(yàn)證機(jī)制好,非常適用于通信可靠性要求較高的場(chǎng)合,便于實(shí)現(xiàn)與上位機(jī)的直接聯(lián)機(jī)使用。但存在僅支持主節(jié)點(diǎn)、傳輸距離近、總線傳輸率低的缺點(diǎn)。Canbus協(xié)議是一種串行、數(shù)字式、多節(jié)點(diǎn)通訊的現(xiàn)場(chǎng)總線協(xié)議,支持多主節(jié)點(diǎn)分布式實(shí)時(shí)控制。由于其高性能、高可靠性、實(shí)時(shí)性好及其獨(dú)特的設(shè)計(jì),已廣泛應(yīng)用于控制系統(tǒng)中的各檢測(cè)和執(zhí)行機(jī)構(gòu)之間的數(shù)據(jù)通信,CAN總線的通訊介質(zhì)可采用雙絞線,同軸電纜和光導(dǎo)纖維。通訊距離與波持率有關(guān),最大通訊距離可達(dá)10km,最大通訊波持率可達(dá)lMdps,但缺點(diǎn)是不便于與上位機(jī)直接聯(lián)機(jī)。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)存在的不足,提供一種基于RS485接口的Modbus與 Canbus通訊數(shù)據(jù)快速交換的系統(tǒng)。本發(fā)明的目的通過以下技術(shù)方案來(lái)實(shí)現(xiàn)
Modbus與Canbus通訊數(shù)據(jù)快速交換的系統(tǒng),特點(diǎn)是包括AVR單片機(jī)、Max 487模塊、 SJA1000模塊和TJA1040模塊,AVR單片機(jī)通過第一光電隔離模塊與Max 487模塊相連,Max 487模塊與RS485接口相連,AVR單片機(jī)還通過SJA1000模塊與第二光電隔離模塊相連,第二光電隔離模塊與TJA1040模塊相連,TJA1040模塊與Can接口相連。本發(fā)明技術(shù)方案的實(shí)質(zhì)性特點(diǎn)和進(jìn)步主要體現(xiàn)在
本發(fā)明彌補(bǔ)了現(xiàn)有的兩種通訊存在的不足,結(jié)合各自的有點(diǎn)實(shí)現(xiàn)優(yōu)勢(shì)互補(bǔ),擴(kuò)大在數(shù)據(jù)通訊領(lǐng)域的應(yīng)用范圍,為其在工業(yè)控制領(lǐng)域發(fā)揮更好的作用而設(shè)計(jì)的一種快速數(shù)據(jù)轉(zhuǎn)換
ο
下面結(jié)合附圖對(duì)本發(fā)明技術(shù)方案作進(jìn)一步說明 圖1 本發(fā)明的結(jié)構(gòu)示意圖。
具體實(shí)施例方式如圖1所示,Modbus與Canbus通訊數(shù)據(jù)快速交換的系統(tǒng),包括AVR單片機(jī)4、Max 487模塊2、SJA1000模塊5和TJA1040模塊7,AVR單片機(jī)4通過第一光電隔離模塊3與 Max 487模塊2相連,Max 487模塊2與RS485接口 1相連,AVR單片機(jī)4還通過SJA1000 模塊5與第二光電隔離模塊6相連,第二光電隔離模塊6與TJA1040模塊7相連,TJA1040模塊7與Can接口 8相連。轉(zhuǎn)換器在RS485接口端使用的是標(biāo)準(zhǔn)的Modbus RTU協(xié)議格式,轉(zhuǎn)換器不僅支持用戶使用Modbus RTU協(xié)議,轉(zhuǎn)換器也可以直接與其它支持Modbus RTU協(xié)議的設(shè)備相接口。在Canbus控制端,采用的是分段通訊格式實(shí)現(xiàn)Modbus RTU通訊。轉(zhuǎn)換器在其中實(shí)現(xiàn)的是協(xié)議驗(yàn)證和轉(zhuǎn)發(fā),支持Modbus RTU協(xié)議的傳輸,用戶按照Modbus RTU協(xié)議通訊格式要求發(fā)送或接收數(shù)據(jù)即可。轉(zhuǎn)換器采用的Modbus RTU傳輸格式是1起始位、8數(shù)據(jù)位和1停止位。Modbus RTU幀長(zhǎng)度最大為緩沖區(qū)長(zhǎng)度255字節(jié)。當(dāng)上位機(jī)通過RS485接口要下發(fā)數(shù)據(jù)時(shí),將要發(fā)送的數(shù)據(jù)組成Modbus RTU協(xié)議通訊的數(shù)據(jù)幀發(fā)送到轉(zhuǎn)換單元,轉(zhuǎn)換單元通過串行中斷接收程序?qū)?shù)據(jù)幀接收,邊接收邊根據(jù)協(xié)議判斷其是否符合要求,如果符合要求就將其放到接收緩存區(qū),不符合就丟掉。然后將接收的數(shù)據(jù)幀轉(zhuǎn)換為符合CANbus協(xié)議的數(shù)據(jù)幀,通過CAN總線發(fā)送到指定的節(jié)點(diǎn)。該節(jié)點(diǎn)在接收到命令后,對(duì)命令進(jìn)行解釋、執(zhí)行, 并組織相應(yīng)的返回?cái)?shù)據(jù)幀通過CAN總線向485總線發(fā)送。返回的數(shù)據(jù)幀也首先到達(dá)協(xié)議轉(zhuǎn)換單元,并通過轉(zhuǎn)換單元的CAN中斷接收程序接收節(jié)點(diǎn)的返回?cái)?shù)據(jù)幀,然后通過CAN總線發(fā)送程序?qū)⒐?jié)點(diǎn)的返回?cái)?shù)據(jù)幀處理、打包,最后通過串行通信向485總線發(fā)送Modbus RTU協(xié)議通訊格式數(shù)據(jù),至此,一個(gè)完整的數(shù)據(jù)收發(fā)過程結(jié)束。轉(zhuǎn)換單元的程序由初始化程序(包括串口初始化和CAN初始化)、串行中斷接收子程序、串行發(fā)送子程序、CAN中斷接收子程序和CAN發(fā)送子程序5部分組成。轉(zhuǎn)換單元選AVR單片機(jī)做為其電路的核心,實(shí)現(xiàn)對(duì)CANbus部分和RS485部分的調(diào)度和控制,硬件電路設(shè)計(jì)部分把符合RS485標(biāo)準(zhǔn)的邏輯電平和符合CANbus標(biāo)準(zhǔn)的邏輯電平進(jìn)行相互轉(zhuǎn)換。ModubusRTU幀格式由地址域+功能碼+數(shù)據(jù)域+CRC校驗(yàn)共同組成在串口端向CAN端轉(zhuǎn)換的過程中,轉(zhuǎn)換器只會(huì)在接收到一完整正確的Modbus RTU幀才會(huì)進(jìn)行轉(zhuǎn)換, 否則無(wú)動(dòng)作。CRC校驗(yàn)字節(jié)不轉(zhuǎn)換到CAN報(bào)文中,CAN的報(bào)文中也不必帶有串行幀的校驗(yàn)字節(jié),因?yàn)镃AN總線本身具有良好的校驗(yàn)機(jī)制。轉(zhuǎn)換的是Modbus RTU的協(xié)議內(nèi)容——功能碼和數(shù)據(jù)域。CAN端的設(shè)備采用Modbus協(xié)議則需要為之定義一種可靠的傳輸格式,采用一種分段協(xié)議實(shí)現(xiàn),其定義了一個(gè)長(zhǎng)度大于8字節(jié)的信息進(jìn)行分段以及重組的方法。分段傳送協(xié)議的制定參考了 IS015765-3中應(yīng)用層分段報(bào)文的傳送協(xié)議。轉(zhuǎn)換時(shí)依次轉(zhuǎn)換在CAN報(bào)文幀的數(shù)據(jù)域里,由于ModbusRTU幀的長(zhǎng)度根據(jù)功能碼的不同而不同。而CAN報(bào)文一幀只能傳送8個(gè)數(shù)據(jù),所以轉(zhuǎn)換器會(huì)將較長(zhǎng)的Modbus RTU幀分段轉(zhuǎn)換成CAN的報(bào)文后用上述的CAN分段協(xié)議分成多個(gè)包的數(shù)據(jù)發(fā)出,在接收端重新組合為一個(gè)長(zhǎng)數(shù)據(jù)。用戶在CAN的節(jié)點(diǎn)上接收時(shí)取功能碼和數(shù)據(jù)域處理即可。對(duì)于CAN總線的Modbus協(xié)議數(shù)據(jù),無(wú)需做循環(huán)冗余校驗(yàn),轉(zhuǎn)換器按照分段協(xié)議接收,接收完一幀解析后自動(dòng)加上循環(huán)冗余校驗(yàn),轉(zhuǎn)換成 Modbus RTU幀發(fā)送至串行總線。如果接收到的數(shù)據(jù)不符合分段協(xié)議,則將該組數(shù)據(jù)丟棄不予轉(zhuǎn)換。通過上位機(jī)軟件編程對(duì)轉(zhuǎn)換器CANbus和Modbus RS485端口進(jìn)行通訊參數(shù)設(shè)置, 可實(shí)現(xiàn)模擬和調(diào)試兩種總線的數(shù)據(jù)互傳,也可設(shè)置CANbus為只聽模式,來(lái)監(jiān)聽其他CAN總線通信時(shí)的實(shí)時(shí)數(shù)據(jù),經(jīng)由RS485端口上傳到上位機(jī)軟件并進(jìn)行分析,增加了產(chǎn)品的實(shí)用性。實(shí)現(xiàn)了多節(jié)點(diǎn)多數(shù)據(jù)的CANbus和RS485兩種工業(yè)總線透明轉(zhuǎn)換,從而實(shí)現(xiàn)兩種總線的優(yōu)缺互補(bǔ),而自身的優(yōu)點(diǎn)決定了該轉(zhuǎn)換器可以低價(jià)快速地市場(chǎng)化、商品化,產(chǎn)生良好的經(jīng)濟(jì)效益。 需要理解到的是以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1. Modbus與Canbus通訊數(shù)據(jù)快速交換的系統(tǒng),其特征在于包括AVR單片機(jī)、Max 487模塊、SJA1000模塊和TJA1040模塊,AVR單片機(jī)通過第一光電隔離模塊與Max 487模塊相連,Max 487模塊與RS485接口相連,AVR單片機(jī)還通過SJA1000模塊與第二光電隔離模塊相連,第二光電隔離模塊與TJA1040模塊相連,TJA1040模塊與Can接口相連。
全文摘要
本發(fā)明涉及Modbus與Canbus通訊數(shù)據(jù)快速交換的系統(tǒng),包括AVR單片機(jī)、Max487模塊、SJA1000模塊和TJA1040模塊,AVR單片機(jī)通過第一光電隔離模塊與Max487模塊相連,Max487模塊與RS485接口相連,AVR單片機(jī)還通過SJA1000模塊與第二光電隔離模塊相連,第二光電隔離模塊與TJA1040模塊相連,TJA1040模塊與Can接口相連。彌補(bǔ)了現(xiàn)有的兩種通訊存在的不足,結(jié)合各自的有點(diǎn)實(shí)現(xiàn)優(yōu)勢(shì)互補(bǔ),擴(kuò)大在數(shù)據(jù)通訊領(lǐng)域的應(yīng)用范圍,為其在工業(yè)控制領(lǐng)域發(fā)揮更好的作用而設(shè)計(jì)的一種快速數(shù)據(jù)轉(zhuǎn)換器。
文檔編號(hào)H04L12/04GK102447602SQ20111044132
公開日2012年5月9日 申請(qǐng)日期2011年12月26日 優(yōu)先權(quán)日2011年12月26日
發(fā)明者白聯(lián)軍 申請(qǐng)人:蘇州工業(yè)園區(qū)廣福汽保機(jī)電設(shè)備有限公司