王 丹,華紅艷,趙 嵩
(鄭州航空工業(yè)管理學(xué)院電子通信工程系,河南鄭州 450015)
隨著數(shù)字式聲納系統(tǒng)的發(fā)展,聲納基陣越來(lái)越大,系統(tǒng)功能日趨復(fù)雜,一部現(xiàn)代聲納要對(duì)幾十路甚至幾百路的數(shù)據(jù)進(jìn)行采集[1],大容量數(shù)據(jù)的遠(yuǎn)距離傳輸成為聲納設(shè)計(jì)的重要課題。以往采用的以太網(wǎng)傳輸方式為超時(shí)重發(fā)機(jī)制,單點(diǎn)的故障容易擴(kuò)散,造成整個(gè)網(wǎng)絡(luò)系統(tǒng)的癱瘓[2]。由于 CAN總線傳輸距離遠(yuǎn)、速度快,有較強(qiáng)的抗電磁干擾能力,已成為國(guó)際上應(yīng)用最廣的現(xiàn)場(chǎng)總線之一。CAN為多主方式工作,其節(jié)點(diǎn)分成不同的優(yōu)先級(jí),采用非破壞仲裁技術(shù),報(bào)文采用短幀結(jié)構(gòu),數(shù)據(jù)出錯(cuò)率極低,節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下可自動(dòng)關(guān)閉輸出。本系統(tǒng)利用雙層 CAN總線實(shí)現(xiàn)聲納數(shù)據(jù)通信,具有突出的可靠性、實(shí)時(shí)性和靈活性。
本數(shù)據(jù)通信系統(tǒng)要同時(shí)對(duì)多區(qū)域、多單元的數(shù)據(jù)信息進(jìn)行傳輸及管理控制,因此采用分層、分區(qū)域的思想實(shí)現(xiàn)通信。系統(tǒng)采用單片機(jī)中間控制器作為各采集區(qū)域的核心控制器[3],實(shí)現(xiàn)上下層間的數(shù)據(jù)交換。采集單元自身具有微控制器和存儲(chǔ)器,既可作為系統(tǒng)的重要組成部分,參與系統(tǒng)功能的實(shí)現(xiàn),也可作為獨(dú)立單元來(lái)完成數(shù)據(jù)采集功能,即在系統(tǒng)出現(xiàn)通信等故障的情況下,采集單元仍可以獨(dú)立實(shí)現(xiàn)數(shù)據(jù)采集功能,并進(jìn)行數(shù)據(jù)存儲(chǔ),提高了系統(tǒng)的可靠性。單片機(jī)中間控制器是數(shù)據(jù)通信的區(qū)域控制器,提供上層網(wǎng)絡(luò)和下層網(wǎng)絡(luò)通訊的雙接口。一方面通過(guò)底層網(wǎng)絡(luò)(Bot-CAN Bus)與各個(gè)采集單元進(jìn)行通訊,實(shí)現(xiàn)對(duì)本區(qū)域數(shù)據(jù)的傳輸與處理;另一方面通過(guò)上層網(wǎng)絡(luò)(Top-CAN Bus)與上位機(jī)進(jìn)行數(shù)據(jù)通訊,實(shí)現(xiàn)上位機(jī)對(duì)各個(gè)采集區(qū)域和采集單元的信息采集和控制。系統(tǒng)結(jié)構(gòu)原理框圖如圖 1所示。
圖1 聲納數(shù)據(jù)通信系統(tǒng)結(jié)構(gòu)原理框圖
系統(tǒng)主要由上位機(jī)、單片機(jī)中間控制器PIC18F4580、CAN總線控制器 MCP2510、收發(fā)器TJA1040T、高速光耦 HCPL0600、各采集單元等組成。接口包括采集單元的 CAN總線接口、單片機(jī)中間控制器的雙 CAN總線接口和上位機(jī)的 CAN總線接口。采集單元的 CAN總線接口采用標(biāo)準(zhǔn)的 CAN總線接口[4]。上位機(jī)采用工業(yè)控制計(jì)算機(jī),可通過(guò) CAN適配卡連接到 CAN總線網(wǎng)絡(luò)上。單片機(jī)中間控制器的雙層 CAN總線接口電路是系統(tǒng)設(shè)計(jì)的關(guān)鍵,其原理框圖,如圖 2所示。
單片機(jī)中間控制器 PIC18F4580自身就集成了一路 CAN控制器,該路 CAN總線與各采集單元進(jìn)行通信。為了實(shí)現(xiàn)兩路獨(dú)立的 CAN總線,需要通過(guò)單片機(jī)的 SPI口向外擴(kuò)展一路 CAN控制器,該路 CAN總線實(shí)現(xiàn)與上位機(jī)的通信。
圖2 兩級(jí)CAN總線接口原理框圖
外擴(kuò)展 CAN控制器選用 MicroChip生產(chǎn)的獨(dú)立可編程 CAN控制器芯片 MCP2510[5],MCP2510是一種帶有 SPI接口的 CAN控制器,它支持 CAN2.0A/B協(xié)議,并能夠發(fā)送和接收標(biāo)準(zhǔn)及擴(kuò)展的信息幀,同時(shí)具有接收濾波和信息管理的功能。MCP2510通過(guò) SPI接口與 PIC18F4580進(jìn)行數(shù)據(jù)傳輸,最高數(shù)據(jù)傳輸速率可達(dá) 5 MB/s,PIC18F4580可通過(guò) MCP2510與 CAN總線上的其他 MCU單元通訊。MCP2510內(nèi)含 3個(gè)發(fā)送緩沖器、兩個(gè)接收緩沖器,同時(shí)還具有靈活的中斷管理能力,這些特點(diǎn)使得 MCU對(duì) CAN總線的操作變得靈活簡(jiǎn)便。為提高系統(tǒng)的抗干擾能力,在 CAN控制器和 CAN收發(fā)器之間加入高速光耦 HCPL0600,其數(shù)據(jù)傳輸速率為 10MB/s,隔離電壓為 2 500 V。CAN數(shù)據(jù)收發(fā)器選用 Philips公司生產(chǎn)的 TJA1040T,具有功耗低和電磁兼容性好的特點(diǎn)。使用 MCP2510擴(kuò)展CAN總線的接口電路原理圖,如圖 3所示。
圖3 MCP2510擴(kuò)展CAN總線部分原理圖
圖 3中,單片機(jī)只給出部分管腳來(lái)說(shuō)明具體的設(shè)計(jì)方法。使用單片機(jī)的 RA5管腳來(lái)輸出 MCP2510的片選信號(hào),單片機(jī)的INT1管腳作為接收到有效數(shù)據(jù)包時(shí)的中斷輸入腳,利用單片機(jī)的 SPI端口 SDO,SDI和 SCK與 MCP2510實(shí)現(xiàn)數(shù)據(jù)的接收與發(fā)送。為了增強(qiáng) CAN總線節(jié)點(diǎn)的抗干擾能力,MCP2510的 TXCAN和 RXCAN并不是直接與 TJA1040的 TXD和 RXD相連,而是通過(guò)高速光耦 HCPL0600連接,這樣可實(shí)現(xiàn)總線上各 CAN節(jié)點(diǎn)間的電氣隔離。另外,CAN總線兩端接有一個(gè)120Ω的電阻,其作用是匹配總線阻抗。實(shí)驗(yàn)證明,忽略匹配電阻的接入會(huì)使數(shù)據(jù)通信的抗干擾性以及可靠性降低,甚至無(wú)法實(shí)現(xiàn)數(shù)據(jù)通信。
單片機(jī)與各采集單元之間的通信利用自身集成的CAN控制器實(shí)現(xiàn),只需將高速光耦 HCPL0600與PIC18F4580的 CAN控制器部分直接接口即可,不再贅述。為方便系統(tǒng)測(cè)設(shè),設(shè)置了 3個(gè)發(fā)光管指示燈,分別對(duì) CPU狀態(tài)和兩層 CAN總線網(wǎng)絡(luò)運(yùn)行狀態(tài)進(jìn)行顯示。
電源是通信系統(tǒng)的能量保證,電源電路的可靠性和穩(wěn)定性對(duì)系統(tǒng)能否正常工作起著至關(guān)重要的作用。為最大限度減小噪聲和干擾,光耦部分采用的兩個(gè)電源 VCC與 VDD必須完全隔離,否則采用光耦也就失去了意義。
系統(tǒng)采用 ICL7665對(duì) 5 V電源進(jìn)行監(jiān)測(cè),當(dāng)電源電壓在 4.8~5.2 V之間時(shí),OUT1和 OUT2均輸出高電平;當(dāng)電源電壓高于 5.2 V時(shí),OUT1輸出低電平,OUT2輸出高電平;當(dāng)電源電壓低于 4.8 V時(shí),OUT1輸出高電平,OUT2輸出低電平。ICL7665的輸出信號(hào)通過(guò)光電耦合器 TLP281[6]接入 PIC18F4580的 I/O口,實(shí)現(xiàn)對(duì)電源電壓的監(jiān)控,使電源電壓誤差 <4%。TLP281通過(guò)電光和光電傳遞信號(hào),在電氣上隔離信號(hào)的發(fā)送端和接收端。這種隔離作用能有效抑制噪聲,消除接地回路的干擾。電源監(jiān)測(cè)與隔離電路原理圖如圖 4所示。
通信程序主要包括節(jié)點(diǎn)初始化程序、數(shù)據(jù)發(fā)送程序、數(shù)據(jù)接收程序以及 CAN總線出錯(cuò)處理程序等。為便于移植和資源共享,系統(tǒng)軟件設(shè)計(jì)采用 C語(yǔ)言實(shí)現(xiàn),軟件遵循模塊化設(shè)計(jì)思想,采用結(jié)構(gòu)化程序設(shè)計(jì)方案,使其具有良好的擴(kuò)展性。
在 CAN通信過(guò)程中,初始化包括設(shè)置 SPI接口的數(shù)據(jù)傳輸速率、CAN通信的波特率、MCP2510的接收過(guò)濾器和屏蔽器以及發(fā)送和接收中斷允許標(biāo)志位等。內(nèi)部和外部 CAN控制器在接收數(shù)據(jù)時(shí)采用中斷方式,發(fā)送數(shù)據(jù)時(shí)采用查詢方式。與內(nèi)部 CAN控制器不同的是,讀、寫(xiě) MCP2510的發(fā)送和接收緩沖器必須通過(guò) SPI接口協(xié)議的讀寫(xiě)命令來(lái)實(shí)現(xiàn)。寫(xiě)指令首先被發(fā)送到 MCP2510的 SI引腳,并在 SCK的上升沿鎖存每個(gè)數(shù)據(jù)位,然后發(fā)送地址和數(shù)據(jù)。指令執(zhí)行完畢后,數(shù)據(jù)被寫(xiě)進(jìn)指定的地址單元中,再通過(guò) SPI接口協(xié)議的寫(xiě)命令來(lái)設(shè)置發(fā)送位以啟動(dòng)發(fā)送。讀操作時(shí),首先將讀指令和地址發(fā)送到 MCP2510的 SI引腳,并在 SCK的上升沿鎖存每個(gè)數(shù)據(jù)位。同時(shí)把存貯在這個(gè)地址單元中的數(shù)據(jù)在 SCK的下降沿輸出到SO引腳。當(dāng)執(zhí)行讀寫(xiě)操作時(shí),CS引腳應(yīng)始終保持在低電平。外部擴(kuò)展 CAN總線軟件設(shè)計(jì)的流程圖,如圖 5所示。
圖5 外部擴(kuò)展CAN總線軟件設(shè)計(jì)流程圖
CAN總線協(xié)議有很好的錯(cuò)誤校驗(yàn)措施,當(dāng)硬件檢測(cè)到數(shù)據(jù)在傳送過(guò)程中發(fā)生錯(cuò)誤時(shí),會(huì)自動(dòng)重新發(fā)送數(shù)據(jù),當(dāng)某一節(jié)點(diǎn)的錯(cuò)誤嚴(yán)重時(shí),總線會(huì)自動(dòng)關(guān)閉該節(jié)點(diǎn),且不影響其他節(jié)點(diǎn)的數(shù)據(jù)傳送。
為了驗(yàn)證系統(tǒng)數(shù)據(jù)采集及通信可靠性,分別對(duì)CAN總線上位機(jī)與各中間控制器節(jié)點(diǎn)、中間控制器與各采集單元節(jié)點(diǎn)進(jìn)行實(shí)時(shí)仿真測(cè)試。仿真通信介質(zhì)采用 100m長(zhǎng)屏蔽電纜,采用多種數(shù)據(jù)幀結(jié)構(gòu),選用總線速率為 20 kB/s,傳送數(shù)據(jù)域長(zhǎng)度為 8 bit的數(shù)據(jù)幀。分別進(jìn)行上位機(jī)與節(jié)點(diǎn)的單幀和多幀通信。從主控狀態(tài)顯示情況來(lái)看,無(wú)數(shù)據(jù)傳送出錯(cuò)和數(shù)據(jù)丟失現(xiàn)象,性能穩(wěn)定,驗(yàn)證系統(tǒng)具有一定的可靠性。
本文結(jié)合 CAN總線在航海領(lǐng)域的應(yīng)用狀況,在研究 CAN總線技術(shù)和 PIC單片機(jī)功能的基礎(chǔ)上,設(shè)計(jì)了一種基于雙層 CAN總線的聲納數(shù)據(jù)傳輸系統(tǒng)。本系統(tǒng)通過(guò)結(jié)合 PIC18F4580內(nèi)置 CAN控制器及外擴(kuò)展 CAN控制器的方式,以具有雙 CAN總線接口的單片機(jī)中間控制器為核心,采用分級(jí)、分區(qū)域組合的思想實(shí)現(xiàn)兩級(jí)、多區(qū)域數(shù)據(jù)信息的采集。系統(tǒng)充分融合了 CAN總線傳輸距離遠(yuǎn),傳輸速率高,抗干擾能力強(qiáng)的特點(diǎn),通過(guò)實(shí)驗(yàn)檢測(cè),文中所提出的設(shè)計(jì)方案可行,完全滿足聲納數(shù)據(jù)傳輸系統(tǒng)高穩(wěn)定性、高可靠性的要求。系統(tǒng)不僅適用于船舶聲納數(shù)據(jù)的采集,而且可對(duì) CAN總線在航空領(lǐng)域的應(yīng)用提供參考。
[1]何菲玲,陳清浪,張經(jīng)綸.高性能聲納數(shù)據(jù)采集處理系統(tǒng)[J].數(shù)據(jù)采集與處理,1998,13(2):159-162.
[2]Phlips Semiconductors.CAN Specification[Version2.0][S].Holand:Phlips Semiconductors,1991.
[3]趙政春,陸綺榮,孫秀桂.CAN總線的冷庫(kù)控制系統(tǒng)[J].計(jì)算機(jī)測(cè)量與控制,2006(10):1334-1337.
[4]陽(yáng)憲惠.現(xiàn)場(chǎng)總線技術(shù)及其應(yīng)用[M].北京:清華大學(xué)出版社,1999.
[5]Microchip Technology Inc.MCP2510Data Sheet[Z].USA:Microchip Technology Inc,2002.
[6]Toshiba Company.TLP281,TLP281-4[Z].Japan:Toshiba Company,2002.