1 引言 近年來,隨著電子技術(shù)、計算機技術(shù)以及通訊技術(shù)的不斷發(fā)站,越來越多的電子產(chǎn)品被應(yīng)用到了各行各業(yè)。在工業(yè)應(yīng)用領(lǐng)域,通常存在著大量的傳感器、執(zhí)行機構(gòu)和電子控制單元,它們一般分布較廣,且在進行現(xiàn)場檢測的時候?qū)崟r性和可靠性都有嚴格的要求。CAN(Controller Area Network)總線作為一種現(xiàn)場總線標準以其具有的諸多優(yōu)點而在工業(yè)領(lǐng)域中得到了廣泛應(yīng)用,到目前為止,用于工業(yè)領(lǐng)域的絕大部分電子產(chǎn)品都支持CAN通訊方式。基于此,本文提出了一種全新的基于CAN總線技術(shù)的自動節(jié)點探測算法,并利用該方法搭建了一個電子產(chǎn)品自動測試平臺。 2 CAN總線簡介 隨著工業(yè)現(xiàn)場控制和生產(chǎn)自動化技術(shù)的不斷進步,傳統(tǒng)的RS232、RS485等通信標準已經(jīng)不能適應(yīng)工業(yè)現(xiàn)場需要了。現(xiàn)場總線技術(shù)因其造價低廉且能夠滿足工業(yè)現(xiàn)場環(huán)境下的通信要求漸逐漸成為了新的通信方式。 CAN(即控制器局域網(wǎng))是理輯總線的典型代表。它是德國的BOSCH公司為現(xiàn)代汽車應(yīng)用領(lǐng)先推出的一種多主主機局部網(wǎng),由于其卓越性能現(xiàn)已廣泛應(yīng)用于工業(yè)自動化、多種控制設(shè)備、交通工具,醫(yī)療儀器以及建筑、環(huán)境控制等眾多部門。CAN總線是一種多主總線、通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。通信速率最高可達1MBPS。它通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理。CAN協(xié)議廢除了傳統(tǒng)的站地址編碼,而代之以對通信數(shù)據(jù)塊進行編碼。采用這種方法的優(yōu)點可使網(wǎng)絡(luò)內(nèi)的節(jié)點個數(shù)在理論上不受限制.還可使不同的節(jié)點同時接收到相同的數(shù)據(jù),這一點在分布式控制系統(tǒng)中非常有用。 CAN協(xié)議的數(shù)據(jù)段長度最多為8個字節(jié),不會占用總線時間過長,從而保證了通信的實時性。CAN協(xié)議采用CRC檢驗并可提供相應(yīng)的錯誤處理功熊,保證了數(shù)據(jù)通信的可靠性。另外,CAN總線采用了多主競爭式總線結(jié)構(gòu),具有多主站運行和分散仲裁的串行總線及廣播通信的特點。CAN總線上任意節(jié)點可在任意時刻主動地向網(wǎng)絡(luò)上其它節(jié)點發(fā)送信息而不分主次,因此可在各節(jié)點之間實現(xiàn)自由通信。 CAN卓越的特性、極高的可靠性和獨特的設(shè)計,特別適合工業(yè)過程監(jiān)控設(shè)備的互連,因此,越來越受到工業(yè)界的重視,并已公認為最有前途的現(xiàn)場總線之一。 3 測試平臺構(gòu)建 本文所述的自動測試平臺由主節(jié)點、從節(jié)點和CAN網(wǎng)組成,主節(jié)點由測試主機構(gòu)成。主要用于對被測產(chǎn)品發(fā)送測試命令,并對被測產(chǎn)品返回的測試信息進行分析處理處理。每個從節(jié)點上都可安裝一臺待測產(chǎn)品。其系統(tǒng)結(jié)構(gòu)如圖1所示。 ![]() 圖1 測試平臺結(jié)構(gòu) 在產(chǎn)品的批量自動測試過程中,最大的難點在于每個從節(jié)點的地址無法預(yù)先標示,這就不能保證主節(jié)點與各個從節(jié)點之間進行互不干擾并且準確可靠的信息交互。傳統(tǒng)的解決方法一般是通過硬件來實現(xiàn),即對每個從節(jié)點進行硬件編碼,從而唯一的標示每個從節(jié)點。這種實現(xiàn)方式的優(yōu)點是地址固定、反應(yīng)快速;但是這種硬件編碼的方式的實現(xiàn)較復(fù)雜、成本較高;并且不夠靈活,一旦檢測工裝需改進,改動的工作量相當大,該實現(xiàn)方式主要適應(yīng)于大量產(chǎn)品的檢測,對于中小批量產(chǎn)品的檢測來說成本過高。基于此,本文提出了一種基于自動節(jié)點探測算法的軟件實現(xiàn)方式,由于其實現(xiàn)完全脫離了硬件,因此具有靈活度較高,易擴展的特點,而且其實現(xiàn)菲常簡單。 自動帶點探測算法的主要思想是:當主節(jié)點下發(fā)檢測開始的命令后,各從節(jié)點自身產(chǎn)生一個確認碼發(fā)回主節(jié)點,瞬時在本地保存。當主節(jié)點收到該確認碼后,在本地遴行搜索,看是否有已對該確認碼賦過標示號,如“是”則不作處理,如“否”則對該確認碼賦予一個唯一的標示號。然后每隔一定的周期將確認碼帶標示號以廣播的形式下發(fā)到從節(jié)點。各從節(jié)點接收到帶標示號的確認碼后,將其與本地保存的確認碼進行比較,如果與本地不同,則繼續(xù)往主節(jié)點發(fā)送確認碼,相反則取出標示號,對自己進行標示,同時停止往主節(jié)點發(fā)送確認碼,并把標示號帶確認碼再返回給主節(jié)點,告訴主節(jié)點本節(jié)點已被標示,主節(jié)點在收到從節(jié)點的反饋信息后,將該標示號置乎“已確認”狀態(tài),并停止下發(fā)該標識號。至此,從節(jié)點標示完成,可繼續(xù)進行相應(yīng)的測試任務(wù)。從節(jié)點的整個標示過程如圖2所示。 ![]() 圖2從節(jié)點標示流程圖 4 應(yīng)用實例 根據(jù)前述方法,本文針對三一重工股份有限公司自主研發(fā)的工業(yè)顯示屏產(chǎn)品SYLD開發(fā)了一個對其進行批量自檢的檢測平臺。待測的SYLD顯示屏構(gòu)成了從節(jié)點,SYLD是一款通用型高性能工業(yè)顯示屏,支持CAN通訊方式。主節(jié)點由三一重工股份有限公司自主研發(fā)的遠程監(jiān)控終端SYMT構(gòu)成.SYMT可自動從衛(wèi)星下載當前時間,且其對外接口支持CAN通訊方式。整個檢測平臺的結(jié)構(gòu)如圖3所示。 ![]() 圖3 SYLD批量測試平臺結(jié)構(gòu)圖 本文所開發(fā)的檢測工裝主要對SYLD顯示屏的顏色、通訊功能以及文件系統(tǒng)進行檢測,此外還附有校準系統(tǒng)時鐘和應(yīng)用程序燒寫等功能。工裝的SYMT端測試程序采用ARM Developer Suite 1.2 編寫,SYLD端測試程序采用embedded Visual C++ 4.0 編寫。到目前為止,該工裝運行效果良好。SYLD檢測流程如圖4所示。 ![]() 圖4 SYLD檢測流程 5 結(jié)束語 本文通過實例論證了所提方法的可行性,并且證明了利用自動節(jié)點探測方式搭建的電子產(chǎn)品自動測試平臺具有易實現(xiàn)、易擴展、周期短、成本低等特點,具有較大的借鑒意義,可推廣到其他電子產(chǎn)品的測試平臺中。 本文主要創(chuàng)新點在于:利用CAN總線的特點,提出一種用軟件方式實現(xiàn)的能使掛在CAN總線上的從設(shè)備對內(nèi)身進行自動地址標示的方法,從而保證其與主設(shè)備之間進行正確的信息交互。通過相關(guān)設(shè)備的配套,到目前為止成果應(yīng)用融產(chǎn)生經(jīng)濟效益約10萬元。 作者:楊棟 來源:《微計算機信總》(嵌入式姆SOC)2009年第2-2期 |