999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種多通道CAN總線通訊M模塊的設(shè)計(jì)

2017-12-14 05:43:19
關(guān)鍵詞:信號(hào)設(shè)計(jì)

, ,

(哈爾濱工業(yè)大學(xué) 電氣工程及自動(dòng)化學(xué)院,哈爾濱 150001)

一種多通道CAN總線通訊M模塊的設(shè)計(jì)

付平,周穎,喬家慶

(哈爾濱工業(yè)大學(xué)電氣工程及自動(dòng)化學(xué)院,哈爾濱150001)

針對(duì)船舶燃機(jī)監(jiān)控系統(tǒng)的CAN總線數(shù)據(jù)通信需求,設(shè)計(jì)了一種多通道CAN總線通訊模塊;該方案采用M模塊標(biāo)準(zhǔn)設(shè)計(jì),使用4片獨(dú)立的CAN控制器和CAN隔離收發(fā)器實(shí)現(xiàn)CAN節(jié)點(diǎn)電路、4通道CAN通訊控制和信號(hào)電氣隔離;通過(guò)可編程邏輯器件CPLD以及硬件描述語(yǔ)言VerilogHDL,實(shí)現(xiàn)了M模塊接口和4通道CAN總線接口的轉(zhuǎn)換;在硬件設(shè)計(jì)的基礎(chǔ)上,進(jìn)行了CAN總線通信程序設(shè)計(jì);經(jīng)測(cè)試和應(yīng)用結(jié)果表明,本模塊能夠?qū)崿F(xiàn)4通道CAN總線大量數(shù)據(jù)通信,滿足了設(shè)計(jì)需求,具有很好的應(yīng)用前景。

CAN總線;M模塊;CPLD

0 引言

CAN總線是一種有效支持分布式控制的現(xiàn)場(chǎng)工業(yè)總線,被廣泛用于船舶、汽車(chē)、鐵路和地礦勘探等領(lǐng)域[1-2]。就船舶領(lǐng)域而言,現(xiàn)代船舶營(yíng)運(yùn)體系對(duì)船舶系統(tǒng)的信息集成化要求越來(lái)越高,伴隨著設(shè)備功能的完善,船舶設(shè)備體系的復(fù)雜度也越來(lái)越高,通常一個(gè)船舶通信網(wǎng)絡(luò)本身會(huì)由多個(gè)設(shè)備組成,比如舵機(jī)控制系統(tǒng)、燃機(jī)監(jiān)控系統(tǒng)、駕駛員操作臺(tái)等等。目前許多船舶設(shè)備都使用了CAN接口進(jìn)行通信,船舶系統(tǒng)使用CAN接口將總控制器與各設(shè)備連接起來(lái),實(shí)現(xiàn)對(duì)船舶設(shè)備的控制和測(cè)試。在這種大型的網(wǎng)絡(luò)系統(tǒng)中,隨著系統(tǒng)復(fù)雜性的增加, 對(duì)系統(tǒng)通訊的安全性要求也隨之提高。滿足系統(tǒng)安全性的技術(shù)手段之一就是采用冗余通訊網(wǎng)絡(luò),其硬件基礎(chǔ)通常就是多通道的通訊線路。此外,CAN總線的通訊速率最高為1 Mbit/s,節(jié)點(diǎn)發(fā)送的數(shù)據(jù)依據(jù)幀ID的優(yōu)先級(jí)搶占總線使用權(quán)[3],因此當(dāng)總線節(jié)點(diǎn)較多、總線通訊負(fù)荷較重時(shí),需要多個(gè)通訊通道來(lái)滿足各個(gè)節(jié)點(diǎn)間通訊的實(shí)時(shí)性[4]。本文針對(duì)某船舶燃?xì)廨啓C(jī)監(jiān)控系統(tǒng)的數(shù)據(jù)通訊需求,設(shè)計(jì)了一種多通道CAN總線通訊模塊。

1 模塊的功能要求

本模塊需要實(shí)現(xiàn)4通道CAN總線通信功能,采用M模塊標(biāo)準(zhǔn)設(shè)計(jì),與VME總線M模塊載板共同組成一個(gè)VME總線4通道CAN總線通訊模塊,應(yīng)用于某基于VME總線的燃?xì)廨啓C(jī)監(jiān)控系統(tǒng)實(shí)現(xiàn)多通道CAN總線通信,模塊功能設(shè)計(jì)要求如下:

對(duì)于CAN總線接口,各通道特性如下:

1)CAN總線通信時(shí)采用CAN2.0B協(xié)議;

2) CAN通訊波特率可程控,最高為1 Mbps;

3)最長(zhǎng)通訊距離大于10米;

4)各個(gè)CAN接口之間電氣隔離,隔離電壓大于500 V。

對(duì)于M模塊接口,技術(shù)要求如下:

1) 支持A08,D08工作模式;

2) 采用INTA中斷模式。

2 硬件設(shè)計(jì)

從上節(jié)功能要求可以看出,本模塊硬件工作需要設(shè)計(jì)CAN總線接口,M模塊接口,同時(shí)為了實(shí)現(xiàn)兩種接口之間的通信,還需要設(shè)計(jì)中間的接口轉(zhuǎn)換部分作為橋梁,由此可得到模塊的基本框圖如圖1。下面將重點(diǎn)介紹本模塊這幾個(gè)方面的硬件設(shè)計(jì)工作。

圖1 模塊基本框圖

2.1 CAN總線接口部分

本部分為模塊接入CAN網(wǎng)絡(luò)的電路接口,所有CAN節(jié)點(diǎn)接入CAN網(wǎng)絡(luò),都必須通過(guò)符合 CAN總線協(xié)議規(guī)范的控制器和收發(fā)器。CAN控制器用于節(jié)點(diǎn)通信控制,實(shí)現(xiàn)ISO/OSI模型的數(shù)據(jù)鏈路層功能;CAN收發(fā)器用于加強(qiáng)節(jié)點(diǎn)在CAN總線系統(tǒng)中的驅(qū)動(dòng)能力,實(shí)現(xiàn)物理層功能。

目前常用的CAN控制器有兩種,一種是獨(dú)立CAN控制器,它不與其它智能單元處理單元集成在一起,是一個(gè)單獨(dú)的控制器件;另一種是集成型CAN控制器,即將CAN控制器與微處理器集成在一個(gè)芯片上。前者編寫(xiě)的CAN應(yīng)用程序是針對(duì)獨(dú)立CAN控制器的,程序可移植性強(qiáng),設(shè)計(jì)更加靈活,可以與不同的處理器配合,編寫(xiě)好的程序可以靈活地移植到任意的處理器平臺(tái)中,但是會(huì)占用MCU的I/O資源。后者需專(zhuān)用開(kāi)發(fā)工具,編寫(xiě)的程序只針對(duì)特定處理器,可移植性差,且需針對(duì)該控制器設(shè)計(jì)獨(dú)立的調(diào)試鏈路。考慮M模塊是作為功能模塊搭載于其他處理器平臺(tái)中,模塊本身無(wú)需自帶MCU,且M模塊接口的I/O資源比較豐富,故選用獨(dú)立CAN控制器。

目前主流的CAN獨(dú)立控制器通常采用NXP公司的SJA1000和Microchip公司的MCP2515。SJA1000采用并行I/O的51接口時(shí)序;MCP采用串行的SPI接口配置,采用較少的線即可與處理器連接。二者都能實(shí)現(xiàn)CAN2.0B的CAN總線通信,但是SJA1000芯片采用的是5 V電壓供電,管腳I/O電平也是5 V,MCP2515采用3.3 V供電,管腳電平為3.3 V,而M模塊接口信號(hào)中提供了5 V電源輸入,采用5 V電壓芯片的話在電路上不需要再設(shè)計(jì)額外的供電模塊,可以在一定程度上簡(jiǎn)化電路設(shè)計(jì);另外雖然SPI接口比較簡(jiǎn)單,但在一定程度上會(huì)增加接口轉(zhuǎn)換和軟件的設(shè)計(jì)復(fù)雜度,所以本設(shè)計(jì)采用SJA1000作為CAN控制器。

SJA1000在許多場(chǎng)合中都具有適用性,特別是在系統(tǒng)優(yōu)化,診斷和維護(hù)等方面[5]。它具有兩種工作模式:BasicCAN模式和PeliCAN模式,本設(shè)計(jì)選擇PeliCAN工作模式,能夠進(jìn)行單通道CAN2.0B總線通訊,本模塊總共需要4片SJA1000。SJA1000可以支持多種處理器的時(shí)序特性,如Intel模式(Mode=低電平)或Motorola模式(Mode=高電平),本模塊采用Intel模式,這樣CAN控制器與與上層處理器的接口可以簡(jiǎn)化,所以電路設(shè)計(jì)時(shí)需要將Mode引腳置為高電平。另外,本模塊沒(méi)有外接CAN輸入比較器,所以SJA1000的RX1輸入應(yīng)該連接到一個(gè)確定電平(如2.5 V),時(shí)鐘分頻寄存器的CBP位應(yīng)該置位,才能使得控制器正確地讀到總線上的位流信息。通過(guò)對(duì)接口讀寫(xiě)周期時(shí)序的分析,SJA1000接口與上層處理器的連接方式是地址數(shù)據(jù)復(fù)用模式,主要信號(hào)有地址選通信號(hào)ale,片選信號(hào)cs_n,讀信號(hào)rd_n,寫(xiě)信號(hào)wr_n和地址數(shù)據(jù)信號(hào)ad7~ad0,在ale有效時(shí)ad7~ad0接口傳送地址信號(hào),在rd_n或wr_n有效且片選信號(hào)rst_n有效時(shí),傳輸數(shù)據(jù)信號(hào)。另外,SJA1000可以通過(guò)中斷輸出引腳提出中斷請(qǐng)求,處理器響應(yīng)中斷后中斷請(qǐng)求才會(huì)撤銷(xiāo)。

CAN總線收發(fā)器通常有隔離收發(fā)器和非隔離收發(fā)器兩種。常見(jiàn)的非隔離收發(fā)器如NXP的TJA1050,這種收發(fā)器在實(shí)現(xiàn)電氣隔離設(shè)計(jì)時(shí),通常加上光電耦合使得CAN控制器和收發(fā)器相連以達(dá)到電氣隔離的目的,同時(shí)還需要設(shè)計(jì)電源隔離電路。這種設(shè)計(jì)方式相對(duì)復(fù)雜,并且占用電路板面積較大,M模塊標(biāo)準(zhǔn)允許的電路板面積較小,本設(shè)計(jì)需要同時(shí)實(shí)現(xiàn)4路相互電氣隔離的CAN總線接口,采用光電耦合電路加隔離電源的方案將會(huì)使模塊設(shè)計(jì)難度增加。而隔離收發(fā)器通常內(nèi)部集成了隔離電路,減少了額外輔助電路的設(shè)計(jì),故本模塊采用隔離式收發(fā)器。

AD公司的CAN隔離收發(fā)器系列可供選擇,該系列有ADM3052/3/4,都可達(dá)到1 Mbps的CAN通訊波特率,都有大于500 V的隔離電壓。但是AD3053集成度更高,其功能框圖如圖2所示,它采用單個(gè)SOIC表貼封裝,同時(shí)集成了通道隔離器、CAN收發(fā)器以及隔離式DC/DC轉(zhuǎn)換器[6],能夠?qū)崿F(xiàn)2 500 V的信號(hào)隔離和電源隔離。芯片的電源隔離功能由isoPower 集成隔離 DC/DC轉(zhuǎn)換器實(shí)現(xiàn),其I/O口引出了隔離電源輸出VISOOUT,在電路設(shè)計(jì)時(shí)須將該引腳從外部連接至芯片隔離電源輸入引腳VISOIN,本電路不需要設(shè)計(jì)電源隔離模塊。芯片的信號(hào)隔離通過(guò)數(shù)字隔離部分和收發(fā)器部分實(shí)現(xiàn),邏輯側(cè)TxD和RxD等引腳數(shù)據(jù)以邏輯地GND1為參考,總線側(cè)輸入輸出信號(hào)以總線地GND2為參考,兩側(cè)信號(hào)通過(guò)數(shù)字隔離部分的隔離柵進(jìn)行耦合。CAN收發(fā)器部分可通過(guò)Rs引腳選擇高速模式或斜率控制模式。該器件5 V單電源供電,提供完全隔離的CAN解決方案,本設(shè)計(jì)選擇該芯片為收發(fā)器。

圖2 ADM3053功能框圖

2.2 M模塊接口部分

M模塊接口部分決定了本模塊與其上層系統(tǒng)的互聯(lián)性,M模塊規(guī)范規(guī)定了接口特性、電氣和機(jī)械要求等。對(duì)于具有M模塊載板的任何平臺(tái),例如VMEbus,VXI,LXI等系統(tǒng),都可使用M模塊實(shí)現(xiàn)板級(jí)互聯(lián)。因此,由于本模塊便于拆裝,接口靈活性強(qiáng),在許多平臺(tái)具有很強(qiáng)的實(shí)用性。

M模塊有3種機(jī)械尺寸規(guī)格:?jiǎn)伪冻叽纭㈦p倍尺寸以及三倍尺寸,本設(shè)計(jì)采用單倍尺寸規(guī)格,M模塊接口通過(guò)2排40針連接器與板連接,選擇A08,D08,INTA工作模式,即8位地址線模式,8位數(shù)據(jù)線,軟件結(jié)束中斷。

本設(shè)計(jì)M模塊的接口信號(hào)有:地址信號(hào)a7~a1,數(shù)據(jù)信號(hào)d7~d0,片選信號(hào)cs_n,讀寫(xiě)信號(hào)wr_n(低電平為寫(xiě)有效,高電平為讀有效),數(shù)據(jù)應(yīng)答信號(hào)dtack,中斷請(qǐng)求信號(hào)irq_n以及復(fù)位信號(hào)rst_n,另外還有+5 V的電壓輸入信號(hào)和接地信號(hào),可給模塊上的其他器件提供電源供電。可以看出M模塊接口的地址線和數(shù)據(jù)線是非復(fù)用的,基于其接口信號(hào)特點(diǎn),M模塊與載板之間的數(shù)據(jù)傳輸模式有基本讀寫(xiě)方式和中斷方式,通過(guò)片選信號(hào)cs_n和數(shù)據(jù)應(yīng)答信號(hào)dtack之間的握手機(jī)制實(shí)現(xiàn)數(shù)據(jù)的異步傳輸,握手時(shí)間決定了數(shù)據(jù)傳輸速率。

2.3 接口轉(zhuǎn)換部分

通過(guò)對(duì)CAN總線接口部分和M模塊接口部分的分析,可以看出兩部分的接口時(shí)序不同,同時(shí)為了實(shí)現(xiàn)4個(gè)CAN通道的接口擴(kuò)展也需要對(duì)接口進(jìn)行中間的處理。因此M模塊接口與CAN總線控制器接口不能簡(jiǎn)單地直連,需進(jìn)行傳輸方向的控制和數(shù)據(jù)隔離。

本設(shè)計(jì)選用可編程邏輯器件實(shí)現(xiàn)中間接口轉(zhuǎn)換,該器件主要實(shí)現(xiàn)以下幾個(gè)方面功能[7]。

1)完成M模塊接口和CAN控制器接口之間的邏輯、時(shí)序轉(zhuǎn)換,實(shí)現(xiàn)M模塊接口的地址數(shù)據(jù)非復(fù)用信號(hào)到CAN控制器的地址數(shù)據(jù)復(fù)用信號(hào)之間的雙向轉(zhuǎn)換,實(shí)現(xiàn)異步握手通信機(jī)制到同步通信機(jī)制之間的轉(zhuǎn)換;

2)通過(guò)對(duì)M模塊接口地址線譯碼,實(shí)現(xiàn)對(duì)4個(gè)SJA1000的片選功能,完成多通道擴(kuò)展(本模塊為4通道)。M模塊地址線為a7~a1,由于SJA1000的寄存器范圍為0~31,需要M模塊5條地址線a5~a1即可尋址,對(duì)應(yīng)到SJA1000的ad4~ad0地址線,ad7~ad5三位地址線為0。M模塊高位a7~a6兩條地址線用于邏輯譯碼,使得不同的片選線有效從而選中相應(yīng)的SJA1000;

3)完成在SJA1000產(chǎn)生中斷后,將中斷傳給上層處理器。本模塊采用的是4通道中斷線與的方式,任何一個(gè)CAN控制器產(chǎn)生中斷都將引起處理器的中斷響應(yīng),若4個(gè)CAN控制器同時(shí)產(chǎn)生中斷,會(huì)從通道0到通道3依次查詢中斷,采取先查詢先處理的原則。因?yàn)闆](méi)有被查詢的通道其中斷寄存器內(nèi)容不會(huì)改變,所以不會(huì)造成中斷丟失的情況。

由于本設(shè)計(jì)對(duì)邏輯資源要求較低,且由于M模塊板卡尺寸固定布局有限,為了節(jié)省板卡空間和簡(jiǎn)化電路設(shè)計(jì),本模塊采用CPLD作為接口轉(zhuǎn)換器件。本模塊選擇了Altera公司MAX7000系列的EMP7128STC100。該芯片具有128個(gè)宏單元,84個(gè)用戶I/O管腳,管腳間延遲快至10 ns,系統(tǒng)內(nèi)可編程,另外,該芯片采用5 V單電源供電,可實(shí)現(xiàn)5 V電壓輸出,這些性能基本滿足板卡設(shè)計(jì)的考慮。CPLD的全局時(shí)鐘采用和SJA1000芯片時(shí)鐘一樣的頻率16 MHZ,由晶振統(tǒng)一輸出,并通過(guò)時(shí)鐘緩沖芯片SN74S244JB扇出。通過(guò)以上分析,得出模塊的硬件原理框圖如圖3所示,由于篇幅有限,只給出1個(gè)CAN通道的硬件連接圖,其它3個(gè)通道的電路設(shè)計(jì)類(lèi)似。

圖3 硬件原理框圖

CPLD接口轉(zhuǎn)換部分的固件使用Verilog設(shè)計(jì),通過(guò)有限狀態(tài)機(jī)的方式加以實(shí)現(xiàn),如圖4所示。狀態(tài)機(jī)總共有5個(gè)狀態(tài):S1~S5。

1)S1為空閑狀態(tài),在此狀態(tài)下M模塊接口信號(hào)與CAN控制器接口信號(hào)均處于無(wú)效狀態(tài),沒(méi)有讀寫(xiě)周期發(fā)生;

2)S2為讀寫(xiě)開(kāi)始狀態(tài),在此期間,CAN接口的地址選通信號(hào)ale變?yōu)橛行В涞刂窋?shù)據(jù)復(fù)用線傳送M模塊地址信號(hào);

3)S3為地址鎖存狀態(tài),ale失效,SJA1000通過(guò)ale的下降沿把地址信號(hào)鎖存起來(lái);

4)S4為數(shù)據(jù)有效狀態(tài),根據(jù)M模塊接口的write_n信號(hào)使能CAN接口的讀寫(xiě)信號(hào),同時(shí)對(duì)M模塊地址線進(jìn)行譯碼選通相應(yīng)的片選線cs_n0/1/2/3,數(shù)據(jù)開(kāi)始在對(duì)應(yīng)的通道上傳輸,如果是讀操作,將M模塊的數(shù)據(jù)線輸出接上CAN接口的數(shù)據(jù)輸入,如果是寫(xiě)操作,M模塊的數(shù)據(jù)輸入接上CAN接口的數(shù)據(jù)輸出;

5)S5為接口應(yīng)答狀態(tài),此時(shí)CAN接口完成數(shù)據(jù)讀寫(xiě),其讀寫(xiě)信號(hào)失效,并且驅(qū)動(dòng)M模塊接口的數(shù)據(jù)應(yīng)答信號(hào)有效,等待信號(hào)握手成功。

復(fù)位后,狀態(tài)機(jī)處于S1空閑狀態(tài),M模塊接口的片選信號(hào)有效時(shí)表示上層處理器發(fā)起了讀寫(xiě),在時(shí)鐘沿到來(lái)后即進(jìn)入讀寫(xiě)開(kāi)始狀態(tài)S2;在16 MHZ時(shí)鐘的作用下,單周期信號(hào)變化時(shí)間可達(dá)62.5 ns,可滿足SJA1000接口讀寫(xiě)時(shí)信號(hào)的時(shí)序變換要求,因此,在時(shí)鐘沿到來(lái)時(shí),由S2讀寫(xiě)開(kāi)始狀態(tài)變換到S5接口應(yīng)答狀態(tài)都是無(wú)條件跳轉(zhuǎn);而在S5接口應(yīng)答狀態(tài)時(shí),由于M模塊片選信號(hào)cs_n與數(shù)據(jù)應(yīng)答信號(hào)dtack_n握手成功后才代表本次讀寫(xiě)的結(jié)束,因此等待握手后片選信號(hào)無(wú)效再跳回S1空閑狀態(tài),至此,狀態(tài)機(jī)完成了循環(huán)。

圖4 接口轉(zhuǎn)換狀態(tài)機(jī)

3 軟件設(shè)計(jì)

為了實(shí)現(xiàn)本模塊CAN總線通信的功能,需要在硬件的基礎(chǔ)上再進(jìn)行相應(yīng)的軟件設(shè)計(jì)。本模塊4通道之間相互獨(dú)立,通道之間只是讀寫(xiě)寄存器時(shí)相應(yīng)偏移地址的差別,每個(gè)通道的軟件設(shè)計(jì)思想是一致的,本文下面以其中一通道為例進(jìn)行說(shuō)明。

本模塊工作于VME總線控制系統(tǒng)中,VME計(jì)算機(jī)使用的是ARM處理器,操作系統(tǒng)為嵌入式Linux,本模塊的軟件程序在該系統(tǒng)下的C語(yǔ)言開(kāi)發(fā)環(huán)境下進(jìn)行設(shè)計(jì),并通過(guò)arm-elf-gcc交叉編譯器生成可執(zhí)行文件。針對(duì)CAN總線通信時(shí)的需求,在系統(tǒng)的VME總線讀寫(xiě)驅(qū)動(dòng)和中斷驅(qū)動(dòng)的基礎(chǔ)上,軟件設(shè)計(jì)部分主要包括3大部分:CAN通道初始化程序、數(shù)據(jù)接收程序和數(shù)據(jù)發(fā)送程序的設(shè)計(jì),利用這3部分就能編寫(xiě)出CAN總線通信的一般應(yīng)用程序。

3.1 CAN通道初始化程序

CAN通道初始化程序主要是實(shí)現(xiàn)SJA1000控制器相關(guān)寄存器的初始化,將硬件配置到用戶需要的模式和狀態(tài),為數(shù)據(jù)接收和發(fā)送做好相關(guān)準(zhǔn)備。CAN通道初始化流程如圖5所示,關(guān)閉中斷后,設(shè)置模式寄存器的復(fù)位模式位,在該模式下進(jìn)行SJA1000的初始化操作,依次包括:設(shè)置時(shí)鐘分頻器確定CAN模式、配置接收濾波器、設(shè)置波特率參數(shù)以及SJA1000的輸出模式等,完成一系列寄存器初始設(shè)置后, 進(jìn)入工作模式,并且開(kāi)放中斷,SJA1000的初始化工作完成,可以進(jìn)入數(shù)據(jù)接收和發(fā)送狀態(tài)。

圖5 初始化程序流程圖

3.2 數(shù)據(jù)接收程序

數(shù)據(jù)接收程序負(fù)責(zé)完成CAN總線數(shù)據(jù)到CAN控制器的接收工作,這部分可能需要對(duì)接收溢出、錯(cuò)誤等異常情況進(jìn)行處理,采用中斷方式實(shí)現(xiàn)。SJA1000收到數(shù)據(jù)產(chǎn)生相應(yīng)中斷后,即進(jìn)入中斷服務(wù)程序,其設(shè)計(jì)流程如圖6所示,首先關(guān)閉中斷,讀中斷寄存器確認(rèn)是否為接收中斷,如果不是則繼續(xù)執(zhí)行其它任務(wù),如果是則進(jìn)一步判斷接收緩沖區(qū)是否產(chǎn)生數(shù)據(jù)溢出,如果溢出則進(jìn)行數(shù)據(jù)溢出相關(guān)處理,否則讀取接收緩沖區(qū)中收到的CAN總線數(shù)據(jù),讀取結(jié)束后釋放接收緩沖區(qū)以便下一次數(shù)據(jù)接收。每個(gè)通道的接收中斷處理流程一致,只是進(jìn)入中斷后按照先后順序判斷,先判斷的通道先處理。

圖6 數(shù)據(jù)接收程序流程圖

3.3 數(shù)據(jù)發(fā)送程序

數(shù)據(jù)發(fā)送程序負(fù)責(zé)將報(bào)文發(fā)送到CAN總線,這部分相對(duì)數(shù)據(jù)接收程序較簡(jiǎn)單,可采用軟件查詢的方式實(shí)現(xiàn)。如圖7所示,通過(guò)查詢SJA1000的狀態(tài)寄存器,等待發(fā)送緩沖器為空后將發(fā)送節(jié)點(diǎn)的幀信息和ID填入幀頭,將待發(fā)送數(shù)據(jù)填入幀數(shù)據(jù)段,組合成一幀報(bào)文后寫(xiě)入發(fā)送緩沖區(qū),然后設(shè)置SJA1000的發(fā)送請(qǐng)求位,即可啟動(dòng)報(bào)文的發(fā)送。

圖7 數(shù)據(jù)發(fā)送程序流程圖

4 模塊測(cè)試

完成軟硬件設(shè)計(jì)后,需進(jìn)行實(shí)驗(yàn)測(cè)試才能保證各部分的正確性。將本模塊通過(guò)M模塊載板搭在VME系統(tǒng)中,該系統(tǒng)VME機(jī)箱中有VME控制器模塊,編寫(xiě)好的軟件程序?qū)鞯皆撃K的處理器中,實(shí)現(xiàn)對(duì)CAN通信模塊控制;與本模塊進(jìn)行通信的測(cè)試卡為周立功公司CANET-4E-U,該測(cè)試卡為4通道CAN接口,通過(guò)LAN口與計(jì)算機(jī)相連,操作計(jì)算機(jī)端的控制面板即可控制CAN通信。該測(cè)試卡與本模塊建立起4個(gè)獨(dú)立的CAN通信網(wǎng)絡(luò),各通道之間相互獨(dú)立,測(cè)試結(jié)構(gòu)如圖8所示。

圖8 模塊測(cè)試結(jié)構(gòu)圖

進(jìn)行實(shí)驗(yàn)設(shè)置時(shí),根據(jù)M模塊接口設(shè)計(jì)要求,M模塊按照A08,D08的要求進(jìn)行軟件配置以實(shí)現(xiàn)對(duì)SJA1000各個(gè)寄存器的正確讀寫(xiě),中斷方式采取INTA的模式。為了驗(yàn)證CAN接口的功能特性,各通道與CAN接口卡以CAN2.0B協(xié)議進(jìn)行收發(fā)通信,通信數(shù)據(jù)為“01234567”,幀ID遞增,M模塊的收發(fā)數(shù)據(jù)信息可在測(cè)試平臺(tái)的顯示器上打印,CAN接口卡的運(yùn)行信息在其對(duì)應(yīng)的操作面板中顯示;同時(shí)為了驗(yàn)證通訊距離是否滿足要求,可將模塊與測(cè)試卡通過(guò)長(zhǎng)度為12米的電纜連接進(jìn)行通訊;另外,可在軟件層通過(guò)命令修改通訊波特率。

本模塊的測(cè)試項(xiàng)目及測(cè)試結(jié)果如表1所示。從表1可以看出,對(duì)于數(shù)據(jù)發(fā)送和接收而言,在各通道以一定波特率每隔10 ms發(fā)送一幀數(shù)據(jù)以及測(cè)試卡給本模塊各通道每隔10 ms發(fā)送一幀數(shù)據(jù)的情況下,本模塊連續(xù)工作1個(gè)小時(shí)沒(méi)有出現(xiàn)數(shù)據(jù)亂碼或者數(shù)據(jù)丟失的情況,說(shuō)明本模塊能夠?qū)崿F(xiàn)4通道CAN2.0B協(xié)議的基本數(shù)據(jù)收發(fā)功能,實(shí)現(xiàn)了模塊的基本通信需求;同時(shí),模塊在3種波特率下均工作無(wú)誤,說(shuō)明設(shè)計(jì)滿足了波特率可程控的要求,且最高波特率達(dá)到了CAN總線協(xié)議要求的1 Mbps,可將本模塊用于高速的CAN總線通訊;收發(fā)兩端在12米的電纜連接下進(jìn)行可正常通訊,達(dá)到了通訊距離設(shè)計(jì)要求。另外,在實(shí)驗(yàn)過(guò)程中發(fā)現(xiàn),如果數(shù)據(jù)每隔200 us進(jìn)行收發(fā),有可能因?yàn)閿?shù)據(jù)緩沖區(qū)溢出而導(dǎo)致數(shù)據(jù)丟失,因此建議在兩次收發(fā)之間加上毫秒級(jí)的延時(shí)以確保通信的可靠性。

表1 測(cè)試項(xiàng)目及測(cè)試結(jié)果

5 結(jié)論

本課題從CAN總線接口特性以及M模塊接口要求出發(fā),研制了可用于4通道CAN總線通訊的M模塊,完成了模塊的軟硬件設(shè)計(jì),并進(jìn)行了模塊測(cè)試,經(jīng)過(guò)多次的調(diào)試和實(shí)驗(yàn),說(shuō)明本模塊最終能滿足模塊的技術(shù)要求。

[1] M. Farsi, K. Ratcliff, M. Barbosa. An overview of controller area network[J]. Computing amp; Control Engineering Journal, 1999, 10(3): 113-120.

[2] 張紹兵,郭繼坤,趙艷芹. 基于CAN總線智能適配卡的軟硬件設(shè)計(jì)[J]. 計(jì)算機(jī)測(cè)量與控制,2008,16(8): 1196-1198.

[3] 趙 君,蔣東方. 基于CAN總線的分布式測(cè)控系統(tǒng)[J]. 計(jì)算機(jī)測(cè)量與控制,2006,14(9): 1146-1148.

[4] 王會(huì)敏,張遂南. 多通道實(shí)時(shí)CAN總線模擬器設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù),2009(22): 173-175.

[5] 曲 波,楊 曄. 基于CPLD的多通道CAN總線接口設(shè)計(jì)[J]. 儀器儀表學(xué)報(bào),2010,31(8): 171-174.

[6] 謝云山, 龔建宇. ADM3053在CAN隔離接口應(yīng)用中的EMC設(shè)計(jì)[J]. 自動(dòng)化與儀器儀表,2012(5):35-37.

[7] 張 濤,鄧志杰. 基于PCI總線的智能雙通道CAN通信卡設(shè)計(jì)[J]. 微電機(jī),2008,41(1): 79-81.

DesignofaMulti-channelCANBusCommunicationM-Module

Fu Ping,Zhou Ying,Qiao Jiaqing

(School of Electrical Engineering and Automation,Harbin Institute of Technology, Harbin 150001, China)

Aiming at CAN bus communication requirement within a gas turbine monitoring system, this article introduces the design of a multi-channel CAN bus communication M-Module. The design is based on M-Module standard, using four CAN controllers and four isolated CAN transceivers to achieve 4-channel CAN communication control and electrical isolation. The module adopts a CPLD with VerilogHDL firmware to achieve the conversion of M-Module interface and CAN controller interface. A set of test software is developed with C language to realize CAN bus communication control by PC. The experimental results show that this module can realize communication of large amounts of 4-channel CAN data, which meets the design requirement. It can be seen that this M-Module has a good application prospect.

CAN bus; M-module; CPLD

2017-02-26;

2017-04-12。

付 平(1965-),男,黑龍江哈爾濱人,教授,博士生導(dǎo)師,主要從事自動(dòng)化測(cè)試系統(tǒng)方向的研究。

1671-4598(2017)09-0118-05

10.16526/j.cnki.11-4762/tp.2017.09.031

TP273

A

猜你喜歡
信號(hào)設(shè)計(jì)
信號(hào)
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
何為設(shè)計(jì)的守護(hù)之道?
《豐收的喜悅展示設(shè)計(jì)》
流行色(2020年1期)2020-04-28 11:16:38
孩子停止長(zhǎng)個(gè)的信號(hào)
瞞天過(guò)海——仿生設(shè)計(jì)萌到家
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專(zhuān)
Coco薇(2017年5期)2017-06-05 08:53:16
基于LabVIEW的力加載信號(hào)采集與PID控制
一種基于極大似然估計(jì)的信號(hào)盲抽取算法
主站蜘蛛池模板: 青青极品在线| 欧美黄网站免费观看| 丰满人妻中出白浆| 91精品国产自产在线观看| 久久亚洲美女精品国产精品| 日韩成人免费网站| 91美女视频在线| 狠狠亚洲婷婷综合色香| 欧美国产综合色视频| 欧美一区中文字幕| 亚洲成人77777| 久久久久国色AV免费观看性色| 欧美另类图片视频无弹跳第一页| 99在线视频免费观看| 午夜影院a级片| 婷婷色婷婷| 91视频精品| 久久99国产综合精品女同| 一级毛片高清| 乱码国产乱码精品精在线播放| 伊人五月丁香综合AⅤ| 亚洲中久无码永久在线观看软件 | 亚洲国产一区在线观看| 日本91在线| 亚洲欧洲日产国产无码AV| 91九色国产porny| 综合网久久| 日韩免费毛片| 无码日韩精品91超碰| 黄色在线网| 婷婷亚洲最大| 亚洲国产无码有码| 97视频在线观看免费视频| 青青草原偷拍视频| 久久国产精品77777| 久久国产精品电影| 精品一区二区久久久久网站| 亚洲中文字幕久久无码精品A| 国产激情国语对白普通话| 国产欧美综合在线观看第七页 | 日韩在线影院| 久久人妻xunleige无码| 色噜噜在线观看| 在线看片中文字幕| 国产地址二永久伊甸园| 最近最新中文字幕在线第一页| 激情无码字幕综合| aⅴ免费在线观看| 亚洲综合第一区| 99国产精品免费观看视频| 99热国产这里只有精品无卡顿"| а∨天堂一区中文字幕| 国产99视频精品免费视频7| 色偷偷av男人的天堂不卡| 国产乱子精品一区二区在线观看| 一级一毛片a级毛片| 四虎影视无码永久免费观看| 国产福利免费视频| 国产精品性| 国产精品yjizz视频网一二区| 久久久精品无码一区二区三区| 亚洲欧美日韩中文字幕在线| 韩日免费小视频| 国产91无码福利在线| 国产swag在线观看| 丝袜亚洲综合| 久久中文字幕av不卡一区二区| 伊在人亚洲香蕉精品播放| 日本午夜三级| 99久视频| 波多野结衣国产精品| 蜜桃视频一区二区三区| 久久五月视频| 国产chinese男男gay视频网| 国产福利不卡视频| 美女啪啪无遮挡| 国产无码精品在线播放| a天堂视频在线| 99久久无色码中文字幕| 欧美精品成人一区二区在线观看| 综合天天色| 男女精品视频|