《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > STM32的CAN總線中繼器設(shè)計(jì)及應(yīng)用
STM32的CAN總線中繼器設(shè)計(jì)及應(yīng)用
潘 銅,葉小榮,張 娜,范建峰 西安工程大學(xué)
摘要: CAN中繼器是系統(tǒng)組網(wǎng)的關(guān)鍵,通過中繼器可以擴(kuò)展節(jié)點(diǎn)的數(shù)量和實(shí)現(xiàn)不同波特率之間的通信。本文充分利用STM32F105內(nèi)部集成雙bx CAN控制器的特性,設(shè)計(jì)出一款基于STM32的單芯片CAN總線中繼器,并將其應(yīng)用到齊瑪印花機(jī)上。實(shí)踐證明該方法有效可行,不僅實(shí)現(xiàn)了齊瑪印花機(jī)的改造,還降低了系統(tǒng)設(shè)備的成本。
Abstract:
Key words :

摘要:CAN中繼器是系統(tǒng)組網(wǎng)的關(guān)鍵,通過中繼器可以擴(kuò)展節(jié)點(diǎn)的數(shù)量和實(shí)現(xiàn)不同波特率之間的通信。本文充分利用STM32F105內(nèi)部集成雙bx CAN控制器的特性,設(shè)計(jì)出一款基于STM32的單芯片CAN總線中繼器,并將其應(yīng)用到齊瑪印花機(jī)上。實(shí)踐證明該方法有效可行,不僅實(shí)現(xiàn)了齊瑪印花機(jī)的改造,還降低了系統(tǒng)設(shè)備的成本。
關(guān)鍵詞:CAN總線;中繼器;STM32F105;齊瑪印花機(jī)

引言
    CAN總線是一種多主方式的串行通信總線,具有優(yōu)良的穩(wěn)定性、實(shí)時(shí)性、遠(yuǎn)程通信能力以及超強(qiáng)的硬件CRC糾錯(cuò)等特性;CAN總線技術(shù)的應(yīng)用不再僅限于汽車行業(yè),而是擴(kuò)展到了機(jī)械、紡織、控制等行業(yè),并被公認(rèn)為是最有前途的現(xiàn)場總線之一。然而由于受制于CAN收發(fā)器,CAN總線通信距離和網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)被分別限制在10 km和110個(gè)之內(nèi)。但是在稍大型的CAN總線系統(tǒng)中,這往往是不夠的,這時(shí)就需要用CAN總線中繼器對CAN總線網(wǎng)絡(luò)進(jìn)行擴(kuò)展。
    CAN中繼器是系統(tǒng)組網(wǎng)的關(guān)鍵技術(shù)設(shè)備之一,使用中繼器可以提高網(wǎng)絡(luò)設(shè)計(jì)的靈活性,并且通過中繼器還可以連接兩個(gè)不同波特率的CAN總線網(wǎng)絡(luò);在兩個(gè)網(wǎng)絡(luò)間進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),極大地?cái)U(kuò)展其使用范圍。基于此,本文設(shè)計(jì)出一款基于STM32的CAN總線中繼器,并將其應(yīng)用到齊瑪印花機(jī)上,完成圓網(wǎng)印花機(jī)通信系統(tǒng)的工程改造。

1 系統(tǒng)整體方案及硬件實(shí)現(xiàn)
    以往的CAN中繼器設(shè)計(jì)大多采用MCU加CAN控制器的雙芯片或多芯片解決方案。例如,參考文獻(xiàn)使用1片MCU加2路CAN控制器的結(jié)構(gòu)實(shí)現(xiàn)中繼器;參考文獻(xiàn)使用雙MCU結(jié)構(gòu)設(shè)計(jì)CAN總線中繼器;參考文獻(xiàn)使用獨(dú)立雙CAN控制器作為2路CAN接口的控制器來設(shè)計(jì)CAN中繼器。上述方案電路復(fù)雜,MCU與CAN控制器通過外部總線連接,數(shù)據(jù)吞吐速度慢,整體可靠性也比較差。
    意法半導(dǎo)體的STM32是以ARM Cortex-M3為內(nèi)核的32位微處理器,主頻可高達(dá)72 MHz,內(nèi)置Flash和SRAM,其容量可分別高達(dá)512 KB和64 KB;內(nèi)部集成雙bxCAN控制器。它支持CAN協(xié)議V2.0A和V2.OB,波特率最高可達(dá)1 Mb/s,具有3個(gè)發(fā)送郵箱和2個(gè)3級深度的FIFO,能夠以最小的CPU負(fù)荷來高效處理大量收到的報(bào)文。基于此,選用STM32F105作為主控制器,設(shè)計(jì)出一款基于STM32的CAN總線中繼器。其整體方案如
圖1所示。

a.JPG
    由于STM32F105內(nèi)部集成了雙路CAN控制器,CAN中繼器的節(jié)點(diǎn)電路變得十分簡單,其硬件電路如圖2所示。

b.JPG
    以往的節(jié)點(diǎn)電路,為了降低生產(chǎn)現(xiàn)場的抗干擾能力,保證中繼器工作的可靠性,都采用多重的抗干擾措施。例如,大部分的節(jié)點(diǎn)電路都是采用在CAN控制器和收發(fā)器之間加入光電隔離器6N137來實(shí)現(xiàn)CAN節(jié)點(diǎn)之間的電氣隔離,采用外加DC/DC電源模塊的方法切斷系統(tǒng)電源的干擾。同樣著眼于提高系統(tǒng)的抗干擾能力和可靠性的問題,本設(shè)計(jì)中一反常規(guī)的設(shè)計(jì)方法,直接采用廣州致遠(yuǎn)電子有限公司生產(chǎn)的CAN通用收發(fā)器CTM8251。
    CTM8251是一款帶隔離的通用CAN收發(fā)器芯片,該芯片內(nèi)部集成了所有必需的CAN隔離及CAN收發(fā)器件,這些都被集成在不到3 cm2的芯片上。芯片的主要功能是將CAN控制器的邏輯電平轉(zhuǎn)換為CAN總線的差分電平,并且具有DC 2500 V的隔離功能。該芯片符合ISO11898標(biāo)準(zhǔn),因此,它可以和其他遵從ISO11898標(biāo)準(zhǔn)的CAN收發(fā)器產(chǎn)品互操作。
    實(shí)踐證明采用CTM8251不僅使系統(tǒng)真正與外接隔離開,抑制了干擾的串入提高系統(tǒng)的可靠性,簡化了CAN節(jié)點(diǎn)外圍電路的復(fù)雜度,還降低了成本,有較高的性價(jià)比。
    圖2中120 Ω為可選用的終端匹配電阻,如果網(wǎng)絡(luò)中已經(jīng)有一對匹配電阻,則不使用該電阻。另外,電路中設(shè)計(jì)有相應(yīng)的撥碼開關(guān)電路用于CAN網(wǎng)絡(luò)的ID標(biāo)志和設(shè)置相應(yīng)的波特率。

 

2 中繼器的軟件實(shí)現(xiàn)
    CAN中繼器的主要任務(wù)是在兩個(gè)網(wǎng)絡(luò)中進(jìn)行數(shù)據(jù)的過濾和轉(zhuǎn)發(fā)。其軟件主要包括以下模塊:初始化模塊、數(shù)據(jù)發(fā)送模塊和接收模塊等。
2.1 初始化模塊
    CAN初始化直接關(guān)系到CAN控制器能否正常工作,在很多情況下,軟件不能正常工作并不是CAN的收發(fā)程序有問題,往往是初始化配置不正確造成的。STM32的CAN初始化主要包括CAN寄存器初始化、CAN單元初始化(包括CAN模式和波特率的設(shè)置)、CAN過濾器的初始化。由于STM32開發(fā)商提供了大量的固件庫函數(shù),所以只需在調(diào)用的時(shí)間作出相應(yīng)的設(shè)置即可。初始化子程序如下所示:
    ①CAN單元初始化子程序。

c.JPG
    在該初始化子程序中最關(guān)鍵的環(huán)節(jié)是怎么設(shè)置CAN的波特率,STM32數(shù)據(jù)手冊給出了波特率的計(jì)算公式:
    d.JPG
    其中tq為CAN時(shí)鐘周期。如上述CAN單元初始化子程序中:SJW=tq,BS1=8tq,BS2=7tq,STM32的CAN時(shí)鐘有APB1提供。假設(shè)系統(tǒng)時(shí)鐘為72 MHz,APB1為系統(tǒng)時(shí)鐘的9分頻,結(jié)合初始化子程序,CAN_Prescaler=1,帶入波特率計(jì)算公式即可求的其波特率為500 kb/s。
    ②CAN過濾器的初始化子程序。

 f.JPG
    CAN過濾器設(shè)置的得當(dāng)與否是CAN是否能夠成功接收信息的關(guān)鍵,尤其在過濾器組位寬和模式設(shè)計(jì)上,如何將節(jié)點(diǎn)的ID號準(zhǔn)確地映射到過濾器組位寬設(shè)置寄存器上是過濾器的核心。為了過濾出一組標(biāo)識符,設(shè)置過濾器工作在屏蔽位模式下,對標(biāo)識符的任何一位采用“必須匹配”或“不用關(guān)心”的原則處理。
2.2 數(shù)據(jù)發(fā)送模塊
    中繼器的任務(wù)之一就是實(shí)現(xiàn)報(bào)文的轉(zhuǎn)發(fā)。STM32F105內(nèi)部集成了雙bxCAN控制器,它包括3個(gè)發(fā)送郵箱和2個(gè)3級深度的FIFO。結(jié)合STM32-F105的特性,采用雙FIFO的轉(zhuǎn)發(fā)機(jī)制,其原理如圖3所示。

g.JPG
    依據(jù)圖3,當(dāng)STM32F105接收到新的報(bào)文時(shí),經(jīng)過數(shù)據(jù)處理模塊處理,在主監(jiān)控程序負(fù)責(zé)下,對兩路bxCAN控制器的接收FIFO緩沖區(qū)進(jìn)行監(jiān)視,如某一路緩沖區(qū)非空則向另一路轉(zhuǎn)發(fā)。
    STM32F105發(fā)送報(bào)文的流程為:應(yīng)用程序選擇1個(gè)空置的發(fā)送郵箱;設(shè)置標(biāo)識符,數(shù)據(jù)長度和待發(fā)送數(shù)據(jù);然后對CAN_TIxR寄存器的TXRQ位置1,來請求發(fā)送。TXRQ位置1后,郵箱就不再是空郵箱;而一旦郵箱不再為空置,軟件對郵箱寄存器就不再有寫的權(quán)限。TXRQ位置1后,郵箱馬上進(jìn)入掛號狀態(tài),并等待成為最高優(yōu)先級的郵箱。一旦郵箱成為最高優(yōu)先級的郵箱,其狀態(tài)就變?yōu)轭A(yù)定發(fā)送狀態(tài)。當(dāng)CAN總線進(jìn)入空閑狀態(tài),預(yù)定發(fā)送郵箱中的報(bào)文就馬上被發(fā)送(進(jìn)入發(fā)送狀態(tài))。在郵箱中的報(bào)文被成功發(fā)送后,它馬上變?yōu)榭罩绵]箱;硬件相應(yīng)地對CAN_TSR寄存器的RQCP和TXOK位置1,來表明一次成功發(fā)送。
2.3 數(shù)據(jù)接收模塊
    為了提高中繼器數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,CAN報(bào)文的接收采用中斷方式。所以在CAN初始化過程中應(yīng)該通過調(diào)用STM32固件庫函數(shù)voidCAN_IT-Config(CAN_TypeDef*CANx,uint32_t CAN_IT,F(xiàn)unctionalState Newstate)來開啟CAN1和CAN2的中斷。在接收時(shí)通過判斷其標(biāo)志位來確定是CAN1還是CAN2產(chǎn)生的中斷,以此進(jìn)入中斷函數(shù)void CAN1_RX0_IRQHandler(void)和voidCAN2 RX0_IRQHandler(void)對收到的報(bào)文進(jìn)行處理。即:在接收一個(gè)報(bào)文時(shí),其標(biāo)識符首先與配置在標(biāo)識符列表模式下的過濾器相比較。如果匹配上,報(bào)文就被存放到相關(guān)聯(lián)的FIFO中,并且所匹配的過濾器的序號被存入過濾器匹配序號中;如果沒有匹配,報(bào)文標(biāo)識符接著與配置在屏蔽位模式下的過濾器進(jìn)行比較;如果報(bào)文標(biāo)識符沒有跟過濾器中的任何標(biāo)識符相匹配,那么硬件就丟棄該報(bào)文,且不會對軟件有任何打擾。數(shù)據(jù)接收模塊流程如圖4所示。

i.JPG

3 系統(tǒng)在齊瑪印花機(jī)上的應(yīng)用
    在齊瑪印花機(jī)CAN通信系統(tǒng)中,CF101板是控制主板,上面具有CAN中繼器的功能,其他3個(gè)操作板是從節(jié)點(diǎn)。系統(tǒng)利用中繼器將整個(gè)網(wǎng)絡(luò)的通信系統(tǒng)分為兩層,由中繼器對主節(jié)點(diǎn)和從節(jié)點(diǎn)之間的報(bào)文進(jìn)行轉(zhuǎn)發(fā)。為了完成對工程的改造,將筆者所設(shè)計(jì)的CAN中繼器代替CF101主板,另外3個(gè)節(jié)點(diǎn)電路同樣采用STM32來設(shè)計(jì)。
    筆者所設(shè)計(jì)的CAN中繼器現(xiàn)在紹興某公司進(jìn)行測試。在實(shí)際應(yīng)用中,將中繼器的一端和網(wǎng)絡(luò)主干線連接,另一端和操作板及顯示板連接。就最近3個(gè)月的測試結(jié)果表明:該系統(tǒng)能夠和原設(shè)備正常通信,保證印花機(jī)的正常工作且性能穩(wěn)定可靠;維護(hù)和擴(kuò)容方便,大大提高了印花機(jī)工作效率,并更大程度地降低了設(shè)備成本。

4 結(jié)論
    本文所設(shè)計(jì)的CAN總線中繼器,充分利用以Cortex-M3為內(nèi)核的STM32的優(yōu)勢,內(nèi)部集成雙bxCAN控制器簡化了硬件電路的設(shè)計(jì);豐富的固件庫函數(shù)縮短了開發(fā)周期。實(shí)踐表明,基于STM32的CAN中繼器完成了各項(xiàng)設(shè)計(jì)指標(biāo),符合工程的要求,在齊瑪印花機(jī)系統(tǒng)中能夠有效的完成數(shù)據(jù)的轉(zhuǎn)發(fā)和網(wǎng)絡(luò)的拓展,具有較高的性價(jià)比。
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧洲精品一区二区| 亚洲在线播放电影| 亚洲自拍偷拍福利| 日韩亚洲一区二区| 亚洲伦理在线观看| 亚洲精品国产欧美| 亚洲人久久久| 日韩视频一区二区三区在线播放免费观看| 一色屋精品视频在线看 | 欧美日韩在线播放一区二区| 欧美片在线观看| 欧美日韩国产a| 欧美日韩午夜精品| 欧美日韩三级视频| 欧美婷婷久久| 国产精品丝袜91| 国产区亚洲区欧美区| 国产无遮挡一区二区三区毛片日本| 国产农村妇女毛片精品久久莱园子 | 国产一区二区中文| 韩国av一区二区三区| 在线播放一区| 亚洲日本激情| 99亚洲精品| 亚洲自拍偷拍麻豆| 欧美中文在线视频| 亚洲国产视频直播| 一本色道久久综合亚洲精品高清| 一本色道久久综合亚洲精品按摩 | 精品999在线观看| 亚洲高清在线观看| 日韩视频一区二区三区在线播放| 一本色道久久88亚洲综合88| 亚洲欧美大片| 亚洲大片一区二区三区| 亚洲精品一二三| 亚洲特级毛片| 久久精品三级| 欧美黄在线观看| 欧美性片在线观看| 国产视频亚洲精品| 亚洲国产女人aaa毛片在线| 99在线视频精品| 欧美亚洲日本国产| 亚洲激情视频在线播放| 一区二区三区你懂的| 欧美一级久久| 欧美高清视频www夜色资源网| 欧美日韩理论| 国产一区白浆| 亚洲免费av片| 久久xxxx| 亚洲校园激情| 久久视频免费观看| 欧美日韩亚洲成人| 韩国三级在线一区| 99精品热视频| 久久精品视频在线| 亚洲综合日韩在线| 久久综合久色欧美综合狠狠| 欧美日韩一区在线播放| 国产一区在线看| 亚洲精品色图| 欧美中文字幕久久| 亚洲图片自拍偷拍| 久久综合久色欧美综合狠狠| 欧美性猛交视频| 亚洲福利国产| 西西裸体人体做爰大胆久久久| 亚洲精品黄色| 欧美中文在线字幕| 欧美色欧美亚洲另类二区| 黄色小说综合网站| 亚洲一区二区三| 日韩视频永久免费| 久久久久一区二区三区四区| 欧美三级精品| 亚洲国内精品在线| 久久高清国产| 亚洲欧美色婷婷| 欧美激情在线观看| 国产一区二区高清不卡| 在线性视频日韩欧美| 亚洲精品国产精品国自产在线| 欧美一区在线看| 欧美日韩免费高清| 影音先锋久久久| 亚洲欧美日本国产有色| 亚洲无线一线二线三线区别av| 免费在线观看一区二区| 国产婷婷色一区二区三区四区| 一区二区三区欧美在线| 亚洲乱码国产乱码精品精天堂 | 欧美视频不卡中文| 亚洲国产精品视频一区| 久久精品电影| 久久久久国产一区二区三区| 国产精品丝袜白浆摸在线| 一区二区免费在线视频| 亚洲美女中文字幕| 免费久久99精品国产| 国内成人精品一区| 香蕉成人久久| 欧美一区二区国产| 国产噜噜噜噜噜久久久久久久久 | 午夜精品在线| 国产精品第2页| 一区二区日韩伦理片| 一区二区久久| 欧美精品在线视频| 亚洲激情一区二区三区| 亚洲精品久久久久久下一站| 久久在线观看视频| 激情欧美国产欧美| 亚洲电影欧美电影有声小说| 久久久久天天天天| 黑人一区二区| 亚洲电影免费观看高清完整版| 久久蜜桃精品| 在线成人中文字幕| 亚洲黄色在线| 欧美大胆成人| 亚洲精品视频免费观看| 一区二区三区视频在线播放| 欧美日韩在线看| 亚洲一区二区成人在线观看| 午夜视频在线观看一区二区三区| 国产精品卡一卡二| 亚洲欧美成人综合| 久久久久久久久久久一区| 国产永久精品大片wwwapp| 久久精品免费| 欧美不卡高清| 99国产精品国产精品毛片| 亚洲香蕉视频| 国产欧美激情| 亚洲第一综合天堂另类专| 免费日韩一区二区| 亚洲精品国偷自产在线99热| 亚洲午夜激情| 国产欧美精品日韩| 亚洲高清在线视频| 欧美日韩激情小视频| 亚洲一区二区精品在线| 欧美在线国产| 在线播放国产一区中文字幕剧情欧美| 亚洲精品乱码久久久久久日本蜜臀 | 久久精品日产第一区二区三区| 美国十次成人| 日韩视频永久免费| 午夜精品久久久久久久久久久| 国产色爱av资源综合区| 亚洲经典视频在线观看| 欧美日韩福利| 亚洲欧美中文字幕| 免费成人在线观看视频| 亚洲精一区二区三区| 午夜性色一区二区三区免费视频 | 亚洲国产美女精品久久久久∴| 欧美精品激情| 亚洲欧美在线免费| 免费看亚洲片| 亚洲天堂av图片| 另类专区欧美制服同性| 亚洲乱码国产乱码精品精98午夜| 亚洲欧美久久久| 欲香欲色天天天综合和网| 亚洲私人影吧| 狠狠v欧美v日韩v亚洲ⅴ| 日韩午夜剧场| 国产日韩综合一区二区性色av| 亚洲精品一区二区三区在线观看| 国产精品美女久久久浪潮软件| 亚洲国产高清自拍| 国产精品久久久久久久一区探花| 久久国产福利国产秒拍| 欧美三区在线视频| 亚洲第一精品福利| 欧美小视频在线观看| 亚洲国产精品小视频| 国产精品国产精品| 91久久线看在观草草青青| 国产精品视区| 在线性视频日韩欧美| 韩日在线一区| 亚洲欧洲99久久| 91久久嫩草影院一区二区| 久久精品九九| 一区二区三区视频观看| 免费日韩av| 香蕉久久一区二区不卡无毒影院| 欧美片在线观看| 亚洲福利一区| 国产欧美精品久久| 一区二区三区毛片| 18成人免费观看视频| 欧美一区二区精美| aa级大片欧美| 欧美激情一二三区| 欧美一级久久久|