STM32的CAN總線(xiàn)中繼器設計及應用
摘要:CAN中繼器是系統組網(wǎng)的關(guān)鍵,通過(guò)中繼器可以擴展節點(diǎn)的數量和實(shí)現不同波特率之間的通信。本文充分利用STM32F105內部集成雙bx CAN控制器的特性,設計出一款基于STM32的單芯片CAN總線(xiàn)中繼器,并將其應用到齊瑪印花機上。實(shí)踐證明該方法有效可行,不僅實(shí)現了齊瑪印花機的改造,還降低了系統設備的成本。
關(guān)鍵詞:CAN總線(xiàn);中繼器;STM32F105;齊瑪印花機
引言
CAN總線(xiàn)是一種多主方式的串行通信總線(xiàn),具有優(yōu)良的穩定性、實(shí)時(shí)性、遠程通信能力以及超強的硬件CRC糾錯等特性;CAN總線(xiàn)技術(shù)的應用不再僅限于汽車(chē)行業(yè),而是擴展到了機械、紡織、控制等行業(yè),并被公認為是最有前途的現場(chǎng)總線(xiàn)之一。然而由于受制于CAN收發(fā)器,CAN總線(xiàn)通信距離和網(wǎng)絡(luò )中節點(diǎn)數被分別限制在10 km和110個(gè)之內。但是在稍大型的CAN總線(xiàn)系統中,這往往是不夠的,這時(shí)就需要用CAN總線(xiàn)中繼器對CAN總線(xiàn)網(wǎng)絡(luò )進(jìn)行擴展。
CAN中繼器是系統組網(wǎng)的關(guān)鍵技術(shù)設備之一,使用中繼器可以提高網(wǎng)絡(luò )設計的靈活性,并且通過(guò)中繼器還可以連接兩個(gè)不同波特率的CAN總線(xiàn)網(wǎng)絡(luò );在兩個(gè)網(wǎng)絡(luò )間進(jìn)行數據轉發(fā),極大地擴展其使用范圍?;诖?,本文設計出一款基于STM32的CAN總線(xiàn)中繼器,并將其應用到齊瑪印花機上,完成圓網(wǎng)印花機通信系統的工程改造。
1 系統整體方案及硬件實(shí)現
以往的CAN中繼器設計大多采用MCU加CAN控制器的雙芯片或多芯片解決方案。例如,參考文獻使用1片MCU加2路CAN控制器的結構實(shí)現中繼器;參考文獻使用雙MCU結構設計CAN總線(xiàn)中繼器;參考文獻使用獨立雙CAN控制器作為2路CAN接口的控制器來(lái)設計CAN中繼器。上述方案電路復雜,MCU與CAN控制器通過(guò)外部總線(xiàn)連接,數據吞吐速度慢,整體可靠性也比較差。
意法半導體的STM32是以ARM Cortex-M3為內核的32位微處理器,主頻可高達72 MHz,內置Flash和SRAM,其容量可分別高達512 KB和64 KB;內部集成雙bxCAN控制器。它支持CAN協(xié)議V2.0A和V2.OB,波特率最高可達1 Mb/s,具有3個(gè)發(fā)送郵箱和2個(gè)3級深度的FIFO,能夠以最小的CPU負荷來(lái)高效處理大量收到的報文?;诖?,選用STM32F105作為主控制器,設計出一款基于STM32的CAN總線(xiàn)中繼器。其整體方案如
圖1所示。
由于STM32F105內部集成了雙路CAN控制器,CAN中繼器的節點(diǎn)電路變得十分簡(jiǎn)單,其硬件電路如圖2所示。
以往的節點(diǎn)電路,為了降低生產(chǎn)現場(chǎng)的抗干擾能力,保證中繼器工作的可靠性,都采用多重的抗干擾措施。例如,大部分的節點(diǎn)電路都是采用在CAN控制器和收發(fā)器之間加入光電隔離器6N137來(lái)實(shí)現CAN節點(diǎn)之間的電氣隔離,采用外加DC/DC電源模塊的方法切斷系統電源的干擾。同樣著(zhù)眼于提高系統的抗干擾能力和可靠性的問(wèn)題,本設計中一反常規的設計方法,直接采用廣州致遠電子有限公司生產(chǎn)的CAN通用收發(fā)器CTM8251。
CTM8251是一款帶隔離的通用CAN收發(fā)器芯片,該芯片內部集成了所有必需的CAN隔離及CAN收發(fā)器件,這些都被集成在不到3 cm2的芯片上。芯片的主要功能是將CAN控制器的邏輯電平轉換為CAN總線(xiàn)的差分電平,并且具有DC 2500 V的隔離功能。該芯片符合ISO11898標準,因此,它可以和其他遵從ISO11898標準的CAN收發(fā)器產(chǎn)品互操作。
實(shí)踐證明采用CTM8251不僅使系統真正與外接隔離開(kāi),抑制了干擾的串入提高系統的可靠性,簡(jiǎn)化了CAN節點(diǎn)外圍電路的復雜度,還降低了成本,有較高的性?xún)r(jià)比。
圖2中120 Ω為可選用的終端匹配電阻,如果網(wǎng)絡(luò )中已經(jīng)有一對匹配電阻,則不使用該電阻。另外,電路中設計有相應的撥碼開(kāi)關(guān)電路用于CAN網(wǎng)絡(luò )的ID標志和設置相應的波特率。
評論