劉曦 國網(wǎng)四川省電力公司信息通信公司
近年來,隨著我國計(jì)算機(jī)軟件及硬件技術(shù)的快速發(fā)展,以及集成電路技術(shù)的普遍應(yīng)用,兩者的有機(jī)結(jié)合技術(shù)也被廣泛行業(yè)技術(shù)人員探索性的應(yīng)用于提高和優(yōu)化分布式工業(yè)系統(tǒng)的控制,其技術(shù)結(jié)合呈現(xiàn)出的獨(dú)特技術(shù)優(yōu)勢使其在自動(dòng)化工業(yè)領(lǐng)域得到高度認(rèn)可。其中,CAN總線技術(shù)就是計(jì)算機(jī)技術(shù)和集成電路技術(shù)完美結(jié)合的成功技術(shù)之一,其在技術(shù)應(yīng)用上具備靈活性和可靠性等優(yōu)勢,具有廣闊的開發(fā)和應(yīng)用前景。
基于多主機(jī)控制器的串聯(lián)數(shù)據(jù)傳輸是CAN總線技術(shù)的顯著技術(shù)優(yōu)勢之一,其通??梢允褂霉饫w電纜或雙絞線進(jìn)行操作。如果某一節(jié)點(diǎn)從總線上發(fā)出數(shù)據(jù),其他節(jié)點(diǎn)就會(huì)以消息的方式收到傳輸?shù)臄?shù)據(jù),此外,通過不同的標(biāo)識(shí)符來區(qū)分不同的消息,并且根據(jù)不同的標(biāo)識(shí)符來劃分消息的優(yōu)先級。通常,相同的CAN總線系統(tǒng)使用唯一的識(shí)別符號。并迅速轉(zhuǎn)化為報(bào)文發(fā)送的狀態(tài)。在網(wǎng)站收到消息后,它會(huì)檢查以確定信息的值。
CAN協(xié)議具有以下特點(diǎn):①多主控制的特點(diǎn)。通??偩€傳輸是經(jīng)過的第一個(gè)節(jié)點(diǎn)可以獲得優(yōu)先傳輸權(quán)。不同節(jié)點(diǎn)信息的優(yōu)先級可以充分保證信息的真實(shí)性和有效性;②系統(tǒng)的靈活性。通常CAN總線協(xié)議可以通過不強(qiáng)行改變節(jié)點(diǎn)的方式來靈活地添加控制節(jié)點(diǎn);③通信速度。通常,統(tǒng)一網(wǎng)絡(luò)的每個(gè)單元中存在相同的通信速度,并且不同的網(wǎng)絡(luò)單元具有不同的通信速度;④消息優(yōu)先判斷的特點(diǎn)。系統(tǒng)逐個(gè)比較不同節(jié)點(diǎn)的分組信息,判斷其中的獲勝節(jié)點(diǎn),并發(fā)送消息信息;⑤遠(yuǎn)程數(shù)據(jù)請求。通常,CAN總線協(xié)議可以基于不同節(jié)點(diǎn)間發(fā)送的數(shù)據(jù)請求,實(shí)時(shí)選擇性的向其他節(jié)點(diǎn)發(fā)送所需的數(shù)據(jù)信息;⑥錯(cuò)誤檢測。CAN總線協(xié)議可以實(shí)現(xiàn)定期的錯(cuò)誤自身檢測功能。⑦連接和傳輸距離。通常,在實(shí)際連接和傳輸中,為了提高總線系統(tǒng)的通信速度,應(yīng)盡可能減少可連接單元的數(shù)量。
通常,CAN總線通信過程可以基于諸如數(shù)據(jù)幀等不同類型的消息格式來執(zhí)行數(shù)據(jù)傳輸?shù)墓こ?。信息傳輸距離通常是影響通信時(shí)間的重要因素。通常通信過程中出現(xiàn)的數(shù)據(jù)累積和過載現(xiàn)象是由于CAN總線傳輸信息過多而導(dǎo)致,這顯然不利于數(shù)據(jù)的平平穩(wěn)傳輸。同時(shí),工作人員可以根據(jù)需要;添加通信節(jié)點(diǎn),而不更改節(jié)點(diǎn)應(yīng)用程序?qū)咏Y(jié)構(gòu)。此外,在總線操作期間也會(huì)由于一些其他因素的干擾而發(fā)生沖突現(xiàn)象,此時(shí)當(dāng)總線空閑時(shí),通信單元將發(fā)送消息,以解決沖突。
上位機(jī)(如PC主機(jī)),數(shù)據(jù)轉(zhuǎn)換器和現(xiàn)場節(jié)點(diǎn)通常是CAN總線系統(tǒng)的主要組成單元。主計(jì)算機(jī)通過數(shù)據(jù)轉(zhuǎn)換器連接到CAN總線。主節(jié)點(diǎn)由運(yùn)行在主機(jī)上的LABVIEW編寫的監(jiān)控軟件實(shí)現(xiàn)。數(shù)據(jù)轉(zhuǎn)換器采用STM32連接到CAN總線系統(tǒng),主要是串行協(xié)議和CAN協(xié)議的橋接,并轉(zhuǎn)發(fā)接收的數(shù)據(jù)。每個(gè)節(jié)點(diǎn)不僅需要連接到對應(yīng)的目標(biāo)功能儀表,還需要連接到CAN總線,并通過從CAN總線接收或發(fā)送數(shù)據(jù)。
(1)CAN總線的拓?fù)浣Y(jié)構(gòu)
基于多個(gè)節(jié)點(diǎn)的分布式控制是CAN總線的拓?fù)浣Y(jié)構(gòu)的基本原則,可保障CAN總線的可靠性,適合傳輸各種數(shù)據(jù)信息。
(2)CAN總線節(jié)點(diǎn)的硬件組成
CAN總線節(jié)點(diǎn)的硬件結(jié)構(gòu)通常可以:①將CAN總線控制器的MCU連接到CAN的收發(fā)器,并將其連接到CAN總線。②將控制器MCU連接到獨(dú)立的CAN控制器,然后連接CAN收發(fā)器以形成CAN總線的硬件結(jié)構(gòu)。兩種兩種類型的硬件結(jié)構(gòu)組成,無論采用何種解決方案,CAN收發(fā)器都是CAN總線的節(jié)點(diǎn)連接總線的必經(jīng)之路。
(3)STM32的CAN通信模塊
STM32的CAN通信模塊主要包含初始化模塊,正常工作模式,睡眠模式三種主要模塊。初始化模塊通?;谲浖脑O(shè)置來完成,而CAN模塊的初始化的啟動(dòng)和退出通常基于CAN寄存器的設(shè)置來實(shí)現(xiàn)。一般情況下,在初始化模式下,CAN總線通信模塊無法接收和發(fā)送消息?;赟TM32的CAN總線在模塊初始化后,將進(jìn)入正常工作模式,并可以實(shí)現(xiàn)對傳輸信息的正常收發(fā)。但是,通信模塊的收發(fā)模塊功能模塊只能在總線空閑時(shí)執(zhí)行。但當(dāng)基于STM32的CAN通信模塊處于睡眠模式時(shí),對郵箱寄存器的訪問仍然可以通過軟件控制來實(shí)現(xiàn),即使在CAN通信模塊停止工作時(shí)。
(1)系統(tǒng)軟件的設(shè)計(jì)
微控制器作為CAN總線網(wǎng)絡(luò)中最重要的節(jié)點(diǎn),其主要功能是可實(shí)現(xiàn)與其他節(jié)點(diǎn)的通信,最終實(shí)現(xiàn)信息共享。STM32是控制單元CAN通信的核心組件,其設(shè)置通?;趯TM32的初始化,此外還需要設(shè)置寄存器,波特率和中斷模式等參數(shù)。
(2)基于STM32的CAN總線系統(tǒng)的程序流程
整個(gè)程序的主要框架首先基于對STM32開發(fā)部分的初始化,然后設(shè)定要發(fā)送的CAN消息,以執(zhí)行程序的主循環(huán)模塊。之后,還要根據(jù)實(shí)施情況判斷CAN模塊是否可以根據(jù)實(shí)際情況發(fā)送或接受相關(guān)信息。如果能正常接收消息,則LED將亮起,反之亦然。
(3)CAN初始化程序設(shè)計(jì)
CAN初始化程序基于初始CAN模塊時(shí)鐘的設(shè)置,并通過上拉CAN模塊控制器輸入和輸出功能。通過對其啟用或中斷,以實(shí)現(xiàn)開啟或關(guān)閉自動(dòng)重傳機(jī)制,通常清除數(shù)據(jù)寄存器,設(shè)置波特率,然后通過接受消息傳輸信號,通過設(shè)置寄存器的特定位,以退出初始化模式。
基于自動(dòng)化控制領(lǐng)域CAN總線技術(shù)的廣泛應(yīng)用及其技術(shù)優(yōu)勢,本文首先概述了CAN總線的基本工作原理及其協(xié)議特點(diǎn)和通信過程,然后基于其系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì),分別具體從硬件設(shè)計(jì)和軟件設(shè)計(jì)兩個(gè)方面系統(tǒng)地討論了基于STM32的CAN總線通信節(jié)點(diǎn)的設(shè)計(jì)方案,并以此詳細(xì)探討了一種基于STM32的CAN總線節(jié)點(diǎn)方案的設(shè)計(jì)流程。綜上所述,隨著嵌入式技術(shù)與CAN總線技術(shù)的聯(lián)合應(yīng)用的日趨增加,這無疑對克服傳統(tǒng)控制系統(tǒng)的局限性具有顯著優(yōu)勢,總之基于STM32的CAN總線通信節(jié)點(diǎn)設(shè)計(jì)研發(fā),有利于推動(dòng)我國工業(yè)生產(chǎn)中自動(dòng)控制系統(tǒng)的快速發(fā)展。