數(shù)字繼電保護(hù)系統(tǒng)中CAN總線通信的實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
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ù)段長度最多為8個(gè)字節(jié),不會(huì)占用總線時(shí)間過長,從而保證了通信的實(shí)時(shí)性。如MCP2510 CAN控制器的串行速率為1M,最長報(bào)文發(fā)送時(shí)延為64µs(8×8/1=64)。但這同時(shí)也反映了其不適于傳輸長報(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)兼容。
本文選用TI公司高性能C54系列的DSP作為控制核心,型號(hào)為TMS320VC5410A,工作主頻160MHz。TMS320VC5410A提供高速、雙向、多通道帶緩沖串行接口McBSP與MCP2510的SPI(工業(yè)標(biāo)準(zhǔn)串行外圍接口)接口,兩者連接關(guān)系如圖2所示。
McBSP功能強(qiáng)大,結(jié)構(gòu)復(fù)雜,要實(shí)現(xiàn)二者的通信,關(guān)鍵要對(duì)McBSP的各寄存器進(jìn)行合理配置,包括主從方式選擇,時(shí)鐘信號(hào)、幀同步信號(hào)的產(chǎn)生,數(shù)據(jù)收發(fā)的沿邊選擇,時(shí)序配合等,下面分別加以論述。
時(shí)鐘與幀同步信號(hào)的連接關(guān)系表明McBSP工作在主(Master)方式,MCP2510 工作在從(Slave)方式。McBSP的發(fā)送時(shí)鐘由DSP內(nèi)部采樣率發(fā)生器產(chǎn)生(發(fā)送時(shí)鐘模式位CLKXM=1),采樣率發(fā)生器時(shí)鐘由DSP內(nèi)部時(shí)鐘產(chǎn)生(采樣率發(fā)生器時(shí)鐘模式位CLKSM=1),McBSP的接收時(shí)鐘由發(fā)送時(shí)鐘驅(qū)動(dòng)(接收時(shí)鐘模式位CLKRM=0),MCP2510的時(shí)鐘由McBSP給出,總之,所有的時(shí)鐘源頭是DSP的內(nèi)部時(shí)鐘;同時(shí),發(fā)送幀同步信號(hào)FSX由McBSP內(nèi)部寄存器DXR向XSR的數(shù)據(jù)拷貝動(dòng)作產(chǎn)生(發(fā)送幀同步模式位FSXM=1,采樣率發(fā)生器發(fā)送幀同步模式位FSGM=0),接收幀同步信號(hào)由發(fā)送幀同步信號(hào)驅(qū)動(dòng)(接收幀同步模式位FSRM=0)。
根據(jù)如圖3所示的內(nèi)部連接圖中時(shí)鐘和同步信號(hào)流程分析,McBSP內(nèi)部時(shí)鐘信號(hào)(Internal CLKX、Internal CLKR)、幀同步信號(hào)(Internal FSX、Internal FSR)與MCP2510的時(shí)鐘信號(hào)、片選信號(hào)同步產(chǎn)生與停止。McBSP內(nèi)部發(fā)送幀同步信號(hào)Internal FSX是從低電平跳到高電平,而與之相連的MCP2510片選信號(hào)是高電平跳到低電平有效,相位相反,故McBSP內(nèi)部寄存器的發(fā)送幀同步信號(hào)極性位FSXP=1,而McBSP內(nèi)部幀同步信號(hào)Internal FSR與Internal FSX必須一致,故Internal FSR也必須和MCP2510片選信號(hào)反相,接收幀同步信號(hào)極性位FSRP=1。
McBSP在內(nèi)部發(fā)送時(shí)鐘Internal CLKX的上升沿發(fā)送數(shù)據(jù),而在內(nèi)部接收時(shí)鐘Internal CLKR的下降沿接收數(shù)據(jù)。反之,MCP2510在外部時(shí)鐘CLK的上升沿接收數(shù)據(jù),在外部時(shí)鐘CLK的下降沿發(fā)送數(shù)據(jù)。根據(jù)前面對(duì)時(shí)鐘與幀同步信號(hào)的分析可知:Internal CLKX、Internal CLKR與CLK為同一時(shí)鐘,要保證可靠收發(fā)數(shù)據(jù),必須配置發(fā)送時(shí)鐘極性位CLKXP=1(Internal CLKX 與 CLKX反相)和接收時(shí)鐘極性位CLKRP=1(Internal CLKR 與 CLKR反相)。這樣,一方在上升沿發(fā)送,另一方在下降沿接收,通信可靠;否則雙方在同一時(shí)鐘的同一邊沿收發(fā)數(shù)據(jù),不能保證可靠通信。
3 通信軟件流程設(shè)計(jì)
DSP通過McBSP與MCP2510的SPI接口傳送數(shù)據(jù)。MCP2510的發(fā)送寄存器作為發(fā)送緩沖區(qū)的映射寄存器,DSP通過訪問發(fā)送寄存器將數(shù)據(jù)傳送到發(fā)送緩沖區(qū)。MCP2510有6個(gè)過濾器,CAN總線上通過接收過濾器過濾的數(shù)據(jù)首先被放到接收緩沖區(qū)中。接收寄存器作為接受緩沖區(qū)的映射寄存器,DSP通過訪問接收寄存器來接受緩沖區(qū)中的數(shù)據(jù)。
DSP與MCP2510之間的通信過程分兩步:① 按照以上分析得出的結(jié)論對(duì)McBSP的控制寄存器配置,發(fā)送過程為:將數(shù)據(jù)寫入McBSP的發(fā)送寄存器DXR,然后通過發(fā)送移位寄存器XSR將數(shù)據(jù)經(jīng)引腳BDX移出發(fā)送,接收過程為:通過McBSP引腳BDR接收的數(shù)據(jù)移入接收移位寄存器RSR,并復(fù)制這些數(shù)據(jù)到接收緩沖寄存器RBR,然后再復(fù)制到接受寄存器DRR,最后由DSP讀入。② McBSP與MCP2510之間的通信按照McBSP內(nèi)部配置好的時(shí)鐘、幀同步信號(hào)交換數(shù)據(jù)。
為了提高通信效率,DSP發(fā)送采取主動(dòng)發(fā)送方式,由DSP的HD口(配置為IO口)和MCP2510的TXRTS端相連,以選擇發(fā)送緩沖單元,發(fā)送流程如圖4所示;而接收采取中斷方式,一旦MCP2510接收緩沖器滿,則發(fā)中斷信號(hào)給DSP,通知DSP讀取數(shù)據(jù),接收流程如圖5所示。
4 結(jié)語
本文針對(duì)CAN總線短字節(jié)通信實(shí)時(shí)性好、可靠性高的特點(diǎn),分析了CAN總線在數(shù)字保護(hù)系統(tǒng)中的應(yīng)用可行性,給出了DSP的McBSP與CAN控制器接口的硬件配置方案和軟件設(shè)計(jì)流程。在數(shù)字保護(hù)系統(tǒng)中實(shí)際通信試驗(yàn)所得到的數(shù)據(jù)證明CAN通信方案高效可靠,能夠滿足數(shù)字繼電保護(hù)對(duì)實(shí)時(shí)通信的要求,充分發(fā)揮了CAN總線的優(yōu)點(diǎn)。
本文作者創(chuàng)新點(diǎn):針對(duì)CAN總線的特點(diǎn)論述了數(shù)字繼電保護(hù)中CAN總線應(yīng)用的可行性,詳細(xì)分析了TMS320VC54X DSP的高速、雙向、多通道帶緩沖串行接口McBSP的內(nèi)部時(shí)鐘和同步信號(hào)流程,由此得出McBSP與CAN控制器接口的主從方式選擇,時(shí)鐘信號(hào)、幀同步信號(hào)的產(chǎn)生,數(shù)據(jù)收發(fā)的沿邊選擇,時(shí)序配合等寄存器關(guān)鍵位的配置。