當(dāng)前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]摘要:提出了一種用MCU自帶的雙CAN接口實(shí)現(xiàn)CAN總線中繼器的設(shè)計(jì)方法,并給出了基于STM32F105的CAN總線中繼器的軟硬件實(shí)現(xiàn)方案。采用單CPU的設(shè)計(jì)可以很好地解決兩個(gè)CAN接口的主從狀態(tài)轉(zhuǎn)換,使系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、性能穩(wěn)

摘要:提出了一種用MCU自帶的雙CAN接口實(shí)現(xiàn)CAN總線中繼器的設(shè)計(jì)方法,并給出了基于STM32F105的CAN總線中繼器的軟硬件實(shí)現(xiàn)方案。采用單CPU的設(shè)計(jì)可以很好地解決兩個(gè)CAN接口的主從狀態(tài)轉(zhuǎn)換,使系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、性能穩(wěn)定、實(shí)時(shí)性高等特點(diǎn)。
關(guān)鍵詞:CAN總線;中繼器:STM32F105;CAN控制器;

0 引言
    CAN總線最初是為了解決汽車內(nèi)部的信號(hào)傳輸問題而提出來的,目前廣泛應(yīng)用于工業(yè)現(xiàn)場(chǎng)控制單元、智能樓宇單元、礦業(yè)控制通訊、遠(yuǎn)程通訊節(jié)點(diǎn)等控制領(lǐng)域。受到CAN收發(fā)器的閑宣,總線上掛接的節(jié)點(diǎn)不能超過110個(gè),兩個(gè)節(jié)點(diǎn)間的最大通訊距離為10km,掛在總線上的節(jié)點(diǎn)要通訊必須具有相同的波特率。
    為了能夠在總線上掛接更多的節(jié)點(diǎn),增加通信距離以及使具有不同波特率的節(jié)點(diǎn)或網(wǎng)絡(luò)間進(jìn)行通信,本文提出了一種使用具有雙CAN口的MCU實(shí)現(xiàn)的CAN總線中繼器。該中繼器可大大縮短采用兩個(gè)CPU時(shí)CAN接口的主從狀態(tài)切換和CPU間通信的時(shí)間,提高系統(tǒng)的實(shí)時(shí)性。

1 CAN中繼器硬件的設(shè)計(jì)
1.1 系統(tǒng)的硬件結(jié)構(gòu)
    本文設(shè)計(jì)的CAN總線中繼器的系統(tǒng)框圖如圖1所示。此中繼器以帶有雙CAN接口的STM32F105為核心,外圍電路主要由光電隔離電路、DC /DC電路、CAN收發(fā)器、狀態(tài)顯示電路、波特率設(shè)置電路、ID設(shè)置電路和電源電路組成。光電隔離電路采用高速光耦將主控電路CPU的I/O口和收發(fā)器進(jìn)行電氣隔離,可消除總線上的噪聲對(duì)主控電路的干擾;為了能使總線和主控電路完全的電氣隔離,用DC/DC隔離電源單獨(dú)對(duì)CAN收發(fā)器電路部分供電;狀態(tài)顯示電路指示當(dāng)前各個(gè)CAN口的收發(fā)狀態(tài);波特率設(shè)置電路可分別設(shè)置兩個(gè)CAN接口的波特率;ID設(shè)置電路可根據(jù)用戶需求設(shè)置當(dāng)前CAN中繼器的ID;電源電路主要將輸入的9~36V的直流電壓轉(zhuǎn)成5V和3.3V兩種電壓,分別給DC/DC電路和主控電路供電。CAN總線A上的各節(jié)點(diǎn)發(fā)送的信息經(jīng)過CAN收發(fā)器將差分信號(hào)轉(zhuǎn)換為TTL電平的報(bào)文,經(jīng)過隔離后進(jìn)入主控CPU,主控CPU將收到的CAN報(bào)文進(jìn)行ID過濾后由另一個(gè)CAN接口經(jīng)過光電隔離傳送到另一路的CAN收發(fā)器,CAN收發(fā)器將TTL電平的報(bào)文轉(zhuǎn)換為差分信號(hào)后發(fā)送到CAN總線B上。
    圖1 CAN總線中繼器系統(tǒng)框圖


1.2 STM32F105微控制器
    STM32F105是基于突破性的ARM V7.0內(nèi)核Cortex-M3的32位閃存微控制器,這是一款專為嵌入式應(yīng)用而開發(fā)的內(nèi)核。使用THUMB-2指令集,與ARM7TDMI相比,Cortex-M3內(nèi)核要快35%,代碼減少45%,大幅度提高了中斷響應(yīng),而且所有新功能都同時(shí)具有業(yè)界最優(yōu)的功耗水平。STM32F105具有雙路CAN控制器,且內(nèi)置CAN收發(fā)FIFO,可以降低采用外置CAN控制器的成本以及提高系統(tǒng)的穩(wěn)定性。STM32F105具有較大容量的FLASH和RAM,以及豐富的外設(shè),因此采用STM32F105作為主控電路的CPU可以方便地實(shí)現(xiàn)外部參數(shù)的設(shè)置,兩個(gè)CAN口收發(fā)狀態(tài)的轉(zhuǎn)換,工作狀態(tài)的顯示等。
1.3 CAN收發(fā)電路及光電隔離電路
    CAN收發(fā)器采用ST公司的L9616。終端匹配電阻采用跳線的方式供用戶安裝時(shí)自行選擇。在差分信號(hào)線上并上瞬態(tài)抑制二極管,可以對(duì)L9616的I/O起到保護(hù)作用。光電隔離部分采用最高轉(zhuǎn)換速率可達(dá)10Mbit/s的高速光耦6N137,電阻R2、R5起到限流作用。VCC5 1是由DC/DC隔離電源單獨(dú)產(chǎn)生的5V電壓。


1.4 電源電路及DC/DC電路
    用開關(guān)穩(wěn)壓集成芯片LM2576代替?zhèn)鹘y(tǒng)的三段穩(wěn)壓器,僅需要極少的外圍器件即可構(gòu)成高效的穩(wěn)壓電路且不需加散熱片。LM2576產(chǎn)生的5V電壓供給光耦及DC/DC電路,主控CPU工作所需的3.3V電壓由LDO芯片LM1117-3.3產(chǎn)生。分別給每一路CAN收發(fā)電路單獨(dú)供電的DC/DC電路采用金升陽公司的BL0505-1W電源模塊,使總線和主控電路實(shí)現(xiàn)完全的電氣隔離。


1.5 波特率設(shè)置及ID設(shè)置電路
    波特率設(shè)置電路由兩個(gè)4位撥碼開關(guān)構(gòu)成,STM32F105通過讀取每個(gè)波特率撥碼開關(guān)的編碼值確定每一路CAN接口的波特率,每一路CAN接口可以選擇16種不同的波特率。由于兩個(gè)CAN接口是通過內(nèi)部進(jìn)行通信,因此它們的ID可設(shè)置為相同的值,ID設(shè)置電路由4位編碼的旋轉(zhuǎn)編碼開關(guān)構(gòu)成,ID的值為編碼開關(guān)的編碼值加上0x190。

2 CAN中繼器軟件的設(shè)計(jì)
    CAN中繼器的主要作用是對(duì)接收到的CAN報(bào)文進(jìn)行過濾轉(zhuǎn)發(fā)。中繼器的工作流程為:中繼器上電時(shí)通過讀取波特率設(shè)置電路和ID設(shè)置電路的狀態(tài),設(shè)置好波特率和ID值。初始化完成后,STM32F105通過監(jiān)聽兩個(gè)CAN接口的中斷完成數(shù)據(jù)的存儲(chǔ)轉(zhuǎn)發(fā)。當(dāng)CAN接口A收到總線上的數(shù)據(jù)包時(shí)產(chǎn)生中斷,中斷處理程序根據(jù)標(biāo)準(zhǔn)標(biāo)識(shí)符(StdId)和擴(kuò)展標(biāo)識(shí)符(ExtId)判斷該數(shù)據(jù)包是標(biāo)準(zhǔn)幀還是擴(kuò)展幀,同時(shí)將該ID值和ID過濾表中的值進(jìn)行對(duì)比,若符合過濾條件則不轉(zhuǎn)發(fā),否則將數(shù)據(jù)包通過CAN接口B轉(zhuǎn)發(fā)出去。
    系統(tǒng)的主程序流程如圖4所示。系統(tǒng)上電時(shí)先初始化時(shí)鐘和端口,根據(jù)配置波特率設(shè)置電路和ID設(shè)置電路的狀態(tài)配置好CAN接口的參數(shù),打開CAN1和CAN2接口的接收中斷。系統(tǒng)在主程序中不斷掃描波特率設(shè)置電路和ID設(shè)置電路的狀態(tài)是否有變化,若當(dāng)前的讀取值和上次的讀取值不一樣,則重新配置波特率和ID。CAN數(shù)據(jù)包的存儲(chǔ)轉(zhuǎn)發(fā)在中斷服務(wù)程序中完成。為了避免系統(tǒng)若受到干擾死機(jī)后不能重啟,因此需打開STM32F105的內(nèi)置看門狗,看門狗的復(fù)位由芯片內(nèi)部的滴答時(shí)鐘每50ms喂狗一次。



3 結(jié)束語
    本文采用了采用雙CAN接口的高性能的ARM處理器STMF105作為CAN中繼器的主控CPU,可以很好地解決兩個(gè)CAN接口的主從狀態(tài)轉(zhuǎn)換,具有結(jié)構(gòu)簡(jiǎn)單、性能穩(wěn)定、實(shí)時(shí)性高等特點(diǎn),有一定的社會(huì)效益和廣泛的推廣價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉