資料介紹
引言CAN總線是一種多主方式的串行通信總線,具有優良的穩定性、實時性、遠程通信能力以及超強的硬件CRC糾錯等特性;CAN總線技術的應用不再僅限于汽車行業,而是擴展到了機械、紡織、控制等行業,并被公認為是最有前途的現場總線之一。然而由于受制于CAN收發器,CAN總線通信距離和網絡中節點數被分別限制在10 km和110個之內。但是在稍大型的CAN總線系統中,這往往是不夠的,這時就需要用CAN總線中繼器對CAN總線網絡進行擴展。CAN中繼器是系統組網的關鍵技術設備之一,使用中繼器可以提高網絡設計的靈活性,并且通過中繼器還可以連接兩個不同波特率的CAN總線網絡;在兩個網絡間進行數據轉發,極大地擴展其使用范圍。基于此,本文設計出一款基于STM32的CAN總線中繼器,并將其應用到齊瑪印花機上,完成圓網印花機通信系統的工程改造。1 系統整體方案及硬件實現以往的CAN中繼器設計大多采用MCU加CAN控制器的雙芯片或多芯片解決方案。例如,參考文獻使用1片MCU加2路CAN控制器的結構實現中繼器;參考文獻使用雙MCU結構設計CAN總線中繼器;參考文獻使用獨立雙CAN控制器作為2路CAN接口的控制器來設計CAN中繼器。上述方案電路復雜,MCU與CAN控制器通過外部總線連接,數據吞吐速度慢,整體可靠性也比較差。意法半導體的STM32是以ARM Cortex-M3為內核的32位微處理器,主頻可高達72 MHz,內置Flash和SRAM,其容量可分別高達512 KB和64 KB;內部集成雙bxCAN控制器。它支持CAN協議V2.0A和V2.OB,波特率最高可達1 Mb/s,具有3個發送郵箱和2個3級深度的FIFO,能夠以最小的CPU負荷來高效處理大量收到的報文。基于此,選用STM32F105作為主控制器,設計出一款基于STM32的CAN總線中繼器。其整體方案如圖1所示。由于STM32F105內部集成了雙路CAN控制器,CAN中繼器的節點電路變得十分簡單,其硬件電路如圖2所示。以往的節點電路,為了降低生產現場的抗干擾能力,保證中繼器工作的可靠性,都采用多重的抗干擾措施。例如,大部分的節點電路都是采用在CAN控制器和收發器之間加入光電隔離器6N137來實現CAN節點之間的電氣隔離,采用外加DC/DC電源模塊的方法切斷系統電源的干擾。同樣著眼于提高系統的抗干擾能力和可靠性的問題,本設計中一反常規的設計方法,直接采用廣州致遠電子有限公司生產的CAN通用收發器CTM8251。CTM8251是一款帶隔離的通用CAN收發器芯片,該芯片內部集成了所有必需的CAN隔離及CAN收發器件,這些都被集成在不到3 cm2的芯片上。芯片的主要功能是將CAN控制器的邏輯電平轉換為CAN總線的差分電平,并且具有DC 2500 V的隔離功能。該芯片符合ISO11898標準,因此,它可以和其他遵從ISO11898標準的CAN收發器產品互操作。實踐證明采用CTM8251不僅使系統真正與外接隔離開,抑制了干擾的串入提高系統的可靠性,簡化了CAN節點外圍電路的復雜度,還降低了成本,有較高的性價比。圖2中120 Ω為可選用的終端匹配電阻,如果網絡中已經有一對匹配電阻,則不使用該電阻。另外,電路中設計有相應的撥碼開關電路用于CAN網絡的ID標志和設置相應的波特率。2 中繼器的軟件實現CAN中繼器的主要任務是在兩個網絡中進行數據的過濾和轉發。其軟件主要包括以下模塊:初始化模塊、數據發送模塊和接收模塊等。2.1 初始化模塊CAN初始化直接關系到CAN控制器能否正常工作,在很多情況下,軟件不能正常工作并不是CAN的收發程序有問題,往往是初始化配置不正確造成的。STM32的CAN初始化主要包括CAN寄存器初始化、CAN單元初始化(包括CAN模式和波特率的設置)、CAN過濾器的初始化。由于STM32開發商提供了大量的固件庫函數,所以只需在調用的時間作出相應的設置即可。初始化子程序如下所示:①CAN單元初始化子程序。在該初始化子程序中最關鍵的環節是怎么設置CAN的波特率,STM32數據手冊給出了波特率的計算公式:其中tq為CAN時鐘周期。如上述CAN單元初始化子程序中:SJW=tq,BS1=8tq,BS2=7tq,STM32的CAN時鐘有APB1提供。假設系統時鐘為72 MHz,APB1為系統時鐘的9分頻,結合初始化子程序,CAN_Prescaler=1,帶入波特率計算公式即可求的其波特率為500 kb/s。②CAN過濾器的初始化子程序。CAN過濾器設置的得當與否是CAN是否能夠成功接收信息的關鍵,尤其在過濾器組位寬和模式設計上,如何將節點的ID號準確地映射到過濾器組位寬設置寄存器上是過濾器的核心。為了過濾出一組標識符,設置過濾器工作在屏蔽位模式下,對標識符的任何一位采用“必須匹配”或“不用關心”的原則處理。2.2 數據發送模塊中繼器的任務之一就是實現報文的轉發。STM32F105內部集成了雙bxCAN控制器,它包括3個發送郵箱和2個3級深度的FIFO。結合STM32-F105的特性,采用雙FIFO的轉發機制,其原理如圖3所示。依據圖3,當STM32F105接收到新的報文時,經過數據處理模塊處理,在主監控程序負責下,對兩路bxCAN控制器的接收FIFO緩沖區進行監視,如某一路緩沖區非空則向另一路轉發。STM32F105發送報文的流程為:應用程序選擇1個空置的發送郵箱;設置標識符,數據長度和待發送數據;然后對CAN_TIxR寄存器的TXRQ位置1,來請求發送。TXRQ位置1后,郵箱就不再是空郵箱;而一旦郵箱不再為空置,軟件對郵箱寄存器就不再有寫的權限。TXRQ位置1后,郵箱馬上進入掛號狀態,并等待成為最高優先級的郵箱。一旦郵箱成為最高優先級的郵箱,其狀態就變為預定發送狀態。當CAN總線進入空閑狀態,預定發送郵箱中的報文就馬上被發送(進入發送狀態)。在郵箱中的報文被成功發送后,它馬上變為空置郵箱;硬件相應地對CAN_TSR寄存器的RQCP和TXOK位置1,來表明一次成功發送。2.3 數據接收模塊為了提高中繼器數據傳輸的實時性,CAN報文的接收采用中斷方式。所以在CAN初始化過程中應該通過調用STM32固件庫函數voidCAN_IT-Config(CAN_TypeDef*CANx,uint32_t CAN_IT,FunctionalState Newstate)來開啟CAN1和CAN2的中斷。在接收時通過判斷其標志位來確定是CAN1還是CAN2產生的中斷,以此進入中斷函數void CAN1_RX0_IRQHandler(void)和voidCAN2 RX0_IRQHandler(void)對收到的報文進行處理。即:在接收一個報文時,其標識符首先與配置在標識符列表模式下的過濾器相比較。如果匹配上,報文就被存放到相關聯的FIFO中,并且所匹配的過濾器的序號被存入過濾器匹配序號中;如果沒有匹配,報文標識符接著與配置在屏蔽位模式下的過濾器進行比較;如果報文標識符沒有跟過濾器中的任何標識符相匹配,那么硬件就丟棄該報文,且不會對軟件有任何打擾。數據接收模塊流程如圖4所示。3 系統在齊瑪印花機上的應用在齊瑪印花機CAN通信系統中,CF101板是控制主板,上面具有CAN中繼器的功能,其他3個操作板是從節點。系統利用中繼器將整個網絡的通信系統分為兩層,由中繼器對主節點和從節點之間的報文進行轉發。為了完成對工程的改造,將筆者所設計的CAN中繼器代替CF101主板,另外3個節點電路同樣采用STM32來設計。筆者所設計的CAN中繼器現在紹興某公司進行測試。在實際應用中,將中繼器的一端和網絡主干線連接,另一端和操作板及顯示板連接。就最近3個月的測試結果表明:該系統能夠和原設備正常通信,保證印花機的正常工作且性能穩定可靠;維護和擴容方便,大大提高了印花機工作效率,并更大程度地降低了設備成本。4 結論本文所設計的CAN總線中繼器,充分利用以Cortex-M3為內核的STM32的優勢,內部集成雙bxCAN控制器簡化了硬件電路的設計;豐富的固件庫函數縮短了開發周期。實踐表明,基于STM32的CAN中繼器完成了各項設計指標,符合工程的要求,在齊瑪印花機系統中能夠有效的完成數據的轉發和網絡的拓展,具有較高的性價比。(mbbeetchina)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- TCA9517-Q1電平轉換I2C總線中繼器數據表
- TCA9517電平轉換I2C總線中繼器數據表
- TCA9517A電平轉換I2C總線中繼器數據表
- PCA9517電平轉換I2C總線中繼器數據表
- TCA9509電平轉換I2C和SMBUS總線中繼器數據表
- TCA9617B電平轉換FM+I2C總線中繼器數據表
- 基于STM32單片機的單線CAN總線隔離中繼器
- 工業級CAN總線隔離中繼器 1次下載
- 銳力通科技工業級MEMOBUS總線光纖中繼器 0次下載
- 雙MCU的CAN總線中繼器設計
- CAN總線是什么,CAN總線的特點資料下載
- CAN總線教程之CAN總線快速入門資料免費下載 213次下載
- 雙CAN口的MCU實現的CAN總線中繼器的設計 24次下載
- PROFIBUS DP_FMS 總線光纖中繼器 22次下載
- 單線CAN總線隔離中繼器的設計 76次下載
- 紅石中繼器如何設置和連接 127次閱讀
- CAN中繼器的類型有哪些 362次閱讀
- 協議型can總線隔離中繼器接多會怎樣 443次閱讀
- can集線器和中繼器區別是什么 455次閱讀
- 如何選擇合適的CAN中繼器?選擇合適的CAN中繼器要考慮幾個方面? 479次閱讀
- 中繼器的種類/優缺點,中繼器是如何工作的? 1w次閱讀
- CAN轉光纖中繼器實現遠距離通訊 1209次閱讀
- 網絡中繼器的優點 4045次閱讀
- 無線中繼器怎么用_無線中繼器如何使用 2.5w次閱讀
- 無線中繼器是什么_無線中繼器有什么作用 1.6w次閱讀
- 光中繼器結構_光中繼器安裝 3678次閱讀
- 光中繼器的作用_光中繼器有哪些類型 1w次閱讀
- 無線中繼器安裝操作步驟 1.9w次閱讀
- 自制WiFi中繼器方法詳解 3.7w次閱讀
- axure中繼器實現實時搜索 3928次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多