CAN總線是德國(guó)BOSCH公司在上世紀(jì)80年代初為解決現(xiàn)代汽車中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議。由于CAN總線的高可靠性和獨(dú)特的設(shè)計(jì),目前在電力系統(tǒng)、移動(dòng)設(shè)備、醫(yī)療和測(cè)試儀器中得到廣泛應(yīng)用,被公認(rèn)為最有前途的現(xiàn)場(chǎng)總線之一【1】。1993年11月國(guó)際標(biāo)準(zhǔn)化組織(ISO)正式頒布了高速通信控制器局部網(wǎng)(CAN)國(guó)際標(biāo)準(zhǔn)ISO11898[2],為CAN總線標(biāo)準(zhǔn)化、規(guī)范化推廣鋪平了道路。
1 CAN總線在數(shù)字保護(hù)系統(tǒng)中應(yīng)用的可行性分析
CAN總線是一種多主總線,即每個(gè)節(jié)點(diǎn)機(jī)均可成為主機(jī),且節(jié)點(diǎn)機(jī)之間也可進(jìn)行通信,總線上各個(gè)節(jié)點(diǎn)共享通信介質(zhì),因此必須解決各節(jié)點(diǎn)競(jìng)爭(zhēng)使用總線而引起的沖突問題。CAN總線采用了一種獨(dú)特的基于報(bào)文靜態(tài)優(yōu)先級(jí)的非破壞性帶沖突檢測(cè)的載波偵聽多路訪問(Nondestructive CSMA/CD)總線仲裁技術(shù)[3]。
報(bào)文的頭部識(shí)別符定義一個(gè)靜態(tài)的報(bào)文優(yōu)先級(jí)。只要總線空閑,任何節(jié)點(diǎn)都可以開始發(fā)送報(bào)文。如果2個(gè)或2個(gè)以上的節(jié)點(diǎn)同時(shí)開始傳送報(bào)文,此時(shí)就會(huì)出現(xiàn)總線訪問沖突。通過識(shí)別符的按位仲裁可以解決這個(gè)沖突。仲裁期間,每一個(gè)發(fā)送器都對(duì)發(fā)送位的電平與被偵聽的總線電平進(jìn)行比較。如果電平相同,則這個(gè)節(jié)點(diǎn)可以繼續(xù)發(fā)送;如果不同,退出發(fā)送。
CAN總線上電平用“顯性”(邏輯“0”)和“隱性”(邏輯“1”)來表示,當(dāng)同時(shí)出現(xiàn)“顯性”和“隱性”時(shí),其結(jié)果是總線電平呈“顯性”。如果節(jié)點(diǎn)1發(fā)送的是“隱性”電平而節(jié)點(diǎn)2發(fā)送的是“顯性”電平,兩節(jié)點(diǎn)偵聽到的總線電平則是“顯性”,這樣節(jié)點(diǎn)1就失去了仲裁,必須退出發(fā)送狀態(tài),而節(jié)點(diǎn)2贏得仲裁可以繼續(xù)不受影響地發(fā)送報(bào)文。CAN總線這種非破壞性總線仲裁機(jī)制確保了報(bào)文和時(shí)間均不損失。
除了上述非破壞性總線仲裁機(jī)制的特點(diǎn),CAN總線還具有如下顯著的特點(diǎn)[4]:
① CAN總線具有完善的錯(cuò)誤處理機(jī)制,包括偵聽、CRC校驗(yàn)、位填充技術(shù)、幀格式檢查等以及一些相應(yīng)的準(zhǔn)則。CAN總線上,任何檢測(cè)到錯(cuò)誤的節(jié)點(diǎn)都會(huì)發(fā)出一串稱為“錯(cuò)誤標(biāo)志”的位流,標(biāo)記出已損壞的報(bào)文。此報(bào)文會(huì)失效并將自動(dòng)地開始重新傳送。 因此,它的可靠性很高。
② 數(shù)據(jù)段長(zhǎng)度最多為8個(gè)字節(jié),不會(huì)占用總線時(shí)間過長(zhǎng),從而保證了通信的實(shí)時(shí)性。如MCP2510 CAN控制器的串行速率為1M,最長(zhǎng)報(bào)文發(fā)送時(shí)延為64µs(8×8/1=64)。但這同時(shí)也反映了其不適于傳輸長(zhǎng)報(bào)文的局限性。
考慮到數(shù)字繼電保護(hù)系統(tǒng)中的開關(guān)量信號(hào),包括斷路器位置狀態(tài)信號(hào)、保護(hù)投入信號(hào)、分合閘與報(bào)警信號(hào)等,都是幾個(gè)字節(jié)的小數(shù)據(jù)量信息,但是對(duì)實(shí)時(shí)性和可靠性要求很高,在保護(hù)系統(tǒng)中應(yīng)用CAN總線傳輸開關(guān)量信號(hào),可以充分發(fā)揮CAN總線的技術(shù)優(yōu)勢(shì)。
2 DSP的McBSP與CAN控制器接口的設(shè)計(jì)
CAN總線通信模塊由MICROCHIP公司的CAN總線控制器MCP2510[5]和TI公司CAN總線收發(fā)器SN65HVD232[6]組成,如圖1所示。MCP2510是帶SPI接口的CAN控制器,與CAN2.0A/B協(xié)議兼容,支持CAN1.2、CAN2.0A、CAN2.0B的被動(dòng)/主動(dòng)版本協(xié)議,實(shí)現(xiàn)CAN總線的邏輯鏈路控制和介質(zhì)訪問控制,能夠發(fā)送、接收標(biāo)準(zhǔn)和擴(kuò)展報(bào)文,位速率可達(dá)1Mbps,它還具有驗(yàn)收過濾和消息管理的功能,包括3個(gè)發(fā)送緩沖器和2個(gè)接收緩沖器,減少了微控制器(MCU)管理的負(fù)擔(dān)。SN65HVD232是CAN協(xié)議控制器和物理總線的驅(qū)動(dòng)接口,為總線提供不同的發(fā)送能力和對(duì)CAN控制器提供不同的接收能力,與ISO11898標(biāo)準(zhǔn)兼容。
圖1 CAN通信的硬件電路
本文選用TI公司高性能C54系列的DSP作為控制核心,型號(hào)為TMS320VC5410A,工作主頻160MHz。TMS320VC5410A提供高速、雙向、多通道帶緩沖串行接口McBSP與MCP2510的SPI(工業(yè)標(biāo)準(zhǔn)串行外圍接口)接口,兩者連接關(guān)系如圖2所示。
圖2 DSP的McBSP與MCP251連接關(guān)系