郭海兵,張全柱,鄧永紅
(華北科技學(xué)院 信息與控制技術(shù)研究所,北京 東燕郊 065201)
控制器局域網(wǎng)(Controller Area Network,CAN)是一種普遍應(yīng)用于工業(yè)現(xiàn)場總線通信的網(wǎng)絡(luò)[1],尤其在煤礦安全監(jiān)控系統(tǒng)[2]、電力機(jī)車電源通信系統(tǒng)[3]與汽車內(nèi)部各電子裝置[4]之間應(yīng)用非常廣泛。CAN通信傳輸介質(zhì)可采用雙絞線、同軸電纜或光纖[5]。現(xiàn)在,隨著CAN總線技術(shù)高速、長距離應(yīng)用的普及[6],大部分CAN總線都采用雙絞線作為傳輸介質(zhì)[7]。但是在十分惡劣的現(xiàn)場環(huán)境中,雙絞線會(huì)有很大衰減和所謂近端串?dāng)_,即在發(fā)送線對和接收線對之間存在電磁耦合干擾[8],其抗干擾能力在強(qiáng)電磁情況下仍不能滿足通信需求。光纖具有不輻射能量、通信速率高等優(yōu)點(diǎn)而被廣泛應(yīng)用。有些學(xué)者[9]也曾指出對提高CAN網(wǎng)絡(luò)的抗電磁干擾能力而言,研究利用光纖來代替雙絞線作為CAN信號(hào)的傳輸介質(zhì)十分必要,同時(shí)光纖傳輸還可擴(kuò)展傳輸距離,減少空氣腐蝕和維護(hù)成本。
國外的歐洲粒子物理研究所曾研究在加速器中的兩個(gè)CAN總線節(jié)點(diǎn)之間采用光纖傳輸[10],以Mark Lynn為主的團(tuán)隊(duì)也研究了將光纖網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)應(yīng)用在汽車領(lǐng)域中,在一定程度上也指導(dǎo)了光纖CAN網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)[11]。在國內(nèi),文獻(xiàn)[12]中提出一種適用于解決對某個(gè)或某幾個(gè)CAN節(jié)點(diǎn)使用光纖進(jìn)行信號(hào)傳輸?shù)膯栴},具有實(shí)用價(jià)值,但不能同時(shí)在光纖接口的兩端連接CAN總線。文獻(xiàn)[13]提出一種由CPLD控制的星型光纖CAN網(wǎng)絡(luò),但使用成本過高,不利于普及應(yīng)用。文獻(xiàn)[14]設(shè)計(jì)了一種基于光纖收發(fā)一體模塊及CAN總線控制器SJA1000的光纖傳輸接口設(shè)計(jì)方案,但需使用FPGA對CAN總線信號(hào)編解碼,控制方法相對復(fù)雜。
本文在進(jìn)行研究CAN光纖通信時(shí)利用MCU消除掉CAN收發(fā)器上產(chǎn)生的干擾信號(hào),保證了CAN收發(fā)器在發(fā)送信號(hào)時(shí)的正確性,從而達(dá)到了CAN通信轉(zhuǎn)化為光纖通信的目的,可應(yīng)用于自帶CAN接口的通信設(shè)備實(shí)現(xiàn)光纖傳輸通信,并且成本低、可靠性強(qiáng),可在一定程度上避免強(qiáng)電磁干擾,提高信號(hào)線路的可靠性,實(shí)現(xiàn)遠(yuǎn)距離通信。
圖1所示結(jié)構(gòu)是光纖CAN控制器應(yīng)用在CAN通信設(shè)備中主機(jī)與從機(jī)進(jìn)行光纖通信的運(yùn)行結(jié)構(gòu)框圖。主機(jī)側(cè)的光纖CAN控制器把CAN信號(hào)轉(zhuǎn)成光信號(hào)通過光纖傳輸?shù)綇臋C(jī)側(cè)的光纖CAN控制器中,從機(jī)側(cè)控制器再把光信號(hào)轉(zhuǎn)換成CAN信號(hào)傳送給從機(jī),之后從機(jī)發(fā)送返回信號(hào)給主機(jī),以此實(shí)現(xiàn)主、從機(jī)之間的通信。這樣就能在不改變原有設(shè)備CAN通信接口的情況下用光纖代替雙絞線作為傳輸介質(zhì)實(shí)現(xiàn)遠(yuǎn)距離通信。使用此光纖CAN控制器作為中繼設(shè)備連接主機(jī)與從機(jī)進(jìn)行通信,既能夠增強(qiáng)傳輸距離,又可以減小傳輸過程中的電磁干擾。
圖1 光纖CAN控制器運(yùn)行結(jié)構(gòu)框圖
圖2所示是光纖CAN控制器的組成框圖,控制器由隔離的供電電源、光電轉(zhuǎn)換電路、CPU及其信號(hào)處理電路和CAN收發(fā)電路四部分組成。其工作原理是通過CAN收發(fā)電路把CAN總線上的信號(hào)轉(zhuǎn)化成TTL電平,經(jīng)CPU及其信號(hào)處理電路處理后再由光電轉(zhuǎn)換電路轉(zhuǎn)化成光信號(hào)通過光纖傳輸給另一端控制器的光信號(hào)接收端,使光信號(hào)與被傳輸電信號(hào)具有相同特征;光纖轉(zhuǎn)換電路把接收到的光信號(hào)再根據(jù)其特征還原為TTL電平,由CAN收發(fā)電路轉(zhuǎn)化成CAN總線上能識(shí)別的信號(hào),即可通過上述過程實(shí)現(xiàn)圖1中設(shè)備之間的通信。
圖2 光纖CAN控制器組成框圖
圖3給出了隔離供電電源電路,電路中主要由輸入濾波電路、隔離電源和輸出濾波電路三部分組成了系統(tǒng)供電電路,加強(qiáng)了電源電路的抗干擾能力。隔離電源模塊也可用開關(guān)電源代替,具有轉(zhuǎn)換效率高,空載功率低的特點(diǎn)。按照實(shí)際需求可由9 V到36 V電壓輸入轉(zhuǎn)換為穩(wěn)定的5 V隔離電壓輸出,使電壓的輸入與輸出完全隔離開,既保證了電路的穩(wěn)定性又提高了其抗干擾性[15]。
圖3 隔離電源電路
CAN總線電路設(shè)計(jì)如圖4所示。為使CAN總線上信號(hào)穩(wěn)定,在總線電路上加入了保險(xiǎn)F1、F2和濾波電感L1;R5、R6是在CAN總線上并聯(lián)后阻值為120Ω的終端匹配電阻,其作用是匹配總線阻抗,提高數(shù)據(jù)通信的抗干擾性及可靠行;SW1為撥動(dòng)開關(guān),可配置終端匹配電阻的通斷;D1是鉗位二極管;其余在CAN總線工作電路中的元件對電路起保護(hù)作用。CAN總線上的兩路信號(hào)CANH和CANL分別以圖中方式連接CAN收發(fā)器的引腳上,CAN收發(fā)器則通過TXD端和RXD端接收與發(fā)送TTL電平對數(shù)據(jù)進(jìn)行處理。
圖4 CAN總線電路
圖5給出了CPU及其信號(hào)處理電路的結(jié)構(gòu)。其結(jié)構(gòu)由微處理器MCU、通用邏輯門芯片MC74VHC1G00DFT2G電路和通用邏輯門芯片SN74AHC1G08DBVR電路三部分組成。微處理器MCU主要通過其I/O口讀取“CANT”中的電平信號(hào)來輸出高、低電平給芯片“U5”。通用邏輯門芯片“U4”的邏輯真值表如表1所示,其中A、B為輸入信號(hào)引腳,Y為輸出信號(hào)引腳,本文中采用B信號(hào)引腳持續(xù)輸入為高電平信號(hào),這樣根據(jù)真值表的內(nèi)容,其輸出引腳的狀態(tài)就由“CANR”來決定,實(shí)現(xiàn)的功能是把輸入的“CANR”信號(hào)進(jìn)行取“反”輸出給通用邏輯門芯片“U5”。“U5”則根據(jù)其真值表2中的內(nèi)容把“U4”和“U6”輸出的信號(hào)作為輸入進(jìn)行取“與”,之后輸出“CANR1”信號(hào)給圖6(b)光纖發(fā)送電路中具有“與非”邏輯輸入的雙路輸出驅(qū)動(dòng)器SN75452B芯片。
圖5 CPU及其信號(hào)處理電路
表1 MC74VHC1G00DFT2G邏輯真值表
表2 SN74AHC1G08DBVR邏輯真值表
圖6 光電轉(zhuǎn)換電路
CPU及其信號(hào)處理電路的功能是通過控制芯片接收“CANT”信號(hào)中的下降沿電平信號(hào)進(jìn)而觸發(fā)控制芯片執(zhí)行中斷輸出特定的電平信號(hào),把CAN收發(fā)器上接收數(shù)據(jù)輸出端RXD產(chǎn)生的干擾脈沖信號(hào)(下文稱為“自監(jiān)測信號(hào)”)屏蔽掉,而保留下有效的返回?cái)?shù)據(jù)。
光纖收發(fā)器是進(jìn)行CAN總線信號(hào)光電轉(zhuǎn)換的重要元件。工程中常用的光纖收發(fā)器一般分為兩種類型:第一種是具有獨(dú)立的光接收和光發(fā)送模塊,基于分立元件組成。它的光發(fā)射部分電路由光源和偏置控制電路等構(gòu)成;光接收部分由光探測器、整形放大電路構(gòu)成,常采用塑料或多模光纖進(jìn)行信號(hào)傳輸。第二種是光纖收發(fā)一體模塊。它把光的發(fā)送和接收集成為一體,使用較好性能的光源作為光發(fā)射器件,把時(shí)鐘及再生判決電路添加到光接收部分,常采用單模光纖進(jìn)行傳輸[16]。本文中光電轉(zhuǎn)換器件采用獨(dú)立的光接收和光發(fā)送模塊,在進(jìn)行光電數(shù)據(jù)轉(zhuǎn)換時(shí)可以各自獨(dú)立進(jìn)行。
圖6(a)是光纖發(fā)送器和光纖接收器的內(nèi)部構(gòu)造原理圖。發(fā)送器型號(hào)為HFBR-1521,其中“1”腳和“2”腳連通指定大小的正向電壓后可觸發(fā)二極管發(fā)光,即產(chǎn)生光信號(hào);接收器型號(hào)為HFBR-2521,其原理是利用光敏二級(jí)管檢測到光信號(hào)后觸發(fā)其內(nèi)部三極管導(dǎo)通,使“1”腳和“2”腳形成回路后便可通過“VO”來輸出高、低電平。光纖傳輸提供良好的級(jí)間隔離,可消除反串干擾,同時(shí)接收器的輸出電位只有高或低兩種,無中間態(tài),可以有效防止誤操作[17]。圖6(b)(c)分別是光纖發(fā)送電路和光纖接收電路。光纖發(fā)送電路主要由驅(qū)動(dòng)器SN75452B與光纖發(fā)送器HFBR-1521組成,把CAN收發(fā)器發(fā)出的TTL電平經(jīng)CPU及其信號(hào)處理電路處理后轉(zhuǎn)化成光信號(hào);光纖接收電路則把接收來的光信號(hào)還原為TTL電平發(fā)送給CAN收發(fā)器和CPU及其信號(hào)處理電路。
在主程序執(zhí)行時(shí)要先調(diào)用初始化程序。系統(tǒng)在上電后,開始初始化單片機(jī)內(nèi)部系統(tǒng)時(shí)鐘、I/O口、寄存器與其他功能模塊。初始化完成后開始進(jìn)行系統(tǒng)自檢,以保證系統(tǒng)運(yùn)行處于正常的工作狀態(tài)。
系統(tǒng)使用外部中斷接收觸發(fā)信號(hào),外部中斷處理程序主要負(fù)責(zé)接收光纖發(fā)送電路發(fā)來的光信號(hào)轉(zhuǎn)換成電平后TTL的變化過程,當(dāng)觸發(fā)中斷后,中斷服務(wù)函數(shù)開始執(zhí)行,使其I/O執(zhí)行相應(yīng)的操作。執(zhí)行完其設(shè)定功能后便返回繼續(xù)等待下一個(gè)中斷。軟件流程如圖7所示。
圖7 軟件流程圖
圖8所示為CAN通信轉(zhuǎn)光纖通信的工作過程圖。圖8中光纖CAN控制器1和光纖CAN控制器2功能完全相同,兩光纖CAN控制器之間通過光纖傳遞信號(hào)。主機(jī)與從機(jī)任一方均可先發(fā)送通信信息,之后另一方再返回通信信息,以此往復(fù)實(shí)現(xiàn)通信。以主機(jī)在工作時(shí)先發(fā)送通信信息為例,主機(jī)發(fā)送CAN信號(hào)到光纖CAN控制器1上,信號(hào)經(jīng)其內(nèi)部收發(fā)器通過CPU及其信號(hào)處理電路、光纖發(fā)送電路轉(zhuǎn)化為光信號(hào)發(fā)出到光纖CAN控制器2上再與從機(jī)通信。但經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),由于CAN收發(fā)器自身特性,每當(dāng)CAN收發(fā)器的TXD端接收到一幀TTL電平數(shù)據(jù)時(shí),就會(huì)在其RXD端相應(yīng)產(chǎn)生一幀同樣的“自監(jiān)測信號(hào)”,該信號(hào)如果不消除會(huì)導(dǎo)致CAN通信故障。CPU及其信號(hào)處理電路通過檢測光纖接收電路中的TTL電平進(jìn)而輸出信號(hào)將“自監(jiān)測信號(hào)”消除,而保證正常發(fā)出從機(jī)返回的有效數(shù)據(jù),使光纖通信可靠有效的工作,避免“自監(jiān)測信號(hào)”通過RXD端發(fā)送出來而造成干擾,致使通信出錯(cuò)。在消除掉“自監(jiān)測信號(hào)”后能夠正常返回從機(jī)的有效數(shù)據(jù)給主機(jī)光纖CAN控制器1上,光纖CAN控制器1上的CPU及其信號(hào)處理電路也會(huì)經(jīng)過同樣的過程消除“自監(jiān)測信號(hào)”而使通信正常。
圖8 光纖CAN控制器工作過程
對設(shè)計(jì)的光纖CAN控制器進(jìn)行實(shí)驗(yàn)研究,搭建圖9所示的實(shí)驗(yàn)平臺(tái),主要由示波器、可編程線性直流電源、兩套CAN通訊設(shè)備(‘主機(jī)’與‘從機(jī)’)和2塊光纖CAN控制器等組成,以圖中實(shí)驗(yàn)平臺(tái)為例進(jìn)行通信實(shí)驗(yàn)。圖中光纖CAN控制器1和2分別與CAN通訊設(shè)備以CAN總線方式就近連接,光纖CAN控制器之間以光纖方式連接,即可滿足設(shè)備通信要求。
圖9 搭建的實(shí)驗(yàn)臺(tái)
圖10(a)是CAN數(shù)據(jù)通信波形圖,圖中“C1”是CAN收發(fā)器上RXD端的波形,“C4”是CAN收發(fā)器TXD端上的波形,從波形圖中可知,在CAN收發(fā)器的TXD引腳上每接收到一幀數(shù)據(jù)就會(huì)在其RXD引腳上產(chǎn)生相同的“自監(jiān)測信號(hào)”幀。
圖10 光纖CAN控制器通信測試波形圖
圖10 光纖CAN控制器通信測試波形圖(續(xù))
圖10(b)光纖CAN控制器工作波形圖中,“C2”是MCU執(zhí)行中斷后輸出的波形圖,“C3”是CAN收發(fā)器RXD端發(fā)出且經(jīng)過CPU及其信號(hào)處理電路消除掉“自監(jiān)測信號(hào)”的波形,通過與“C1”波形進(jìn)行對比可以看出返回?cái)?shù)據(jù)中只有‘從機(jī)’發(fā)出的有效數(shù)據(jù)信號(hào)。圖10(c)是一幀數(shù)據(jù)波形展開圖,更加清晰顯示了一幀CAN信號(hào)的波形數(shù)據(jù)。表示互相通信的CAN數(shù)據(jù)信號(hào)沒有被“自監(jiān)測信號(hào)”干擾,驗(yàn)證了將CAN信號(hào)轉(zhuǎn)化為光信號(hào)傳輸?shù)膶?shí)用性和方案的可靠性。
(1) 本文研究了一種光纖CAN控制器,通過使用微處理器控制輸出電平信號(hào)的方式將CAN收發(fā)器上產(chǎn)生的干擾信號(hào)消除,進(jìn)而實(shí)現(xiàn)了光纖傳輸CAN信號(hào)通信的功能,提高了CAN通信線路中的抗干擾能力。
(2) 設(shè)計(jì)的光纖CAN控制器能應(yīng)用于各種帶有CAN通信接口設(shè)備中,無需改變原有硬件結(jié)構(gòu)就可實(shí)現(xiàn)光纖與CAN總線數(shù)據(jù)之間的互連通信,實(shí)驗(yàn)表明該光纖CAN控制器可以長時(shí)間穩(wěn)定運(yùn)行,控制效果較好。
(3) 該光纖CAN控制器具有簡單的外圍電路,性能穩(wěn)定,供電電路具有良好的隔離和保護(hù)能力,可適用于煤礦監(jiān)控設(shè)備或其他CAN通信設(shè)備遠(yuǎn)距離信號(hào)。
(4) 還具有強(qiáng)大的拓展能力,可以將多臺(tái)設(shè)備掛靠在CAN總線上實(shí)現(xiàn)長距離通信,有較強(qiáng)的工程實(shí)用性及應(yīng)用推廣價(jià)值。