陶知,陸曉峰,侯慶慶
(1.中國電子科技集團公司第五十八研究所,江蘇無錫 214072;2.中電科申泰信息科技有限公司,江蘇 無錫 214063)
CAN總線是控制器局域網(wǎng)絡(luò)(Controller Area Network, CAN)的簡稱,是ISO國際標準化的串行通信協(xié)議,具有高性能、高可靠性、實時性等優(yōu)點。最初是為汽車的監(jiān)測、控制系統(tǒng)而設(shè)計的,現(xiàn)已廣泛應(yīng)用于航天、電力、石化、紡織、造紙等行業(yè),在火車、船舶、機器人、樓宇自控、醫(yī)療設(shè)備、工業(yè)自動化儀表等設(shè)備中,都廣泛采用CAN技術(shù),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。
CAN總線協(xié)議的最大特點之一是取消了傳統(tǒng)的站地址編碼,取而代之對通信數(shù)據(jù)塊進行編碼。使不同的節(jié)點同時接收到相同的數(shù)據(jù),理論上網(wǎng)絡(luò)中的節(jié)點數(shù)不受限制。而且結(jié)構(gòu)簡單,僅2條線連接到外部,通信速率可以高達1Mbps 。
CAN總線具有的完善的通信協(xié)議可由CAN控制器芯片及其接口芯片CAN收發(fā)器來實現(xiàn)。CAN控制器用于將欲收發(fā)的報文,轉(zhuǎn)換為符合CAN規(guī)范的CAN幀,通過CAN收發(fā)器,在CAN總線上交換信息。所有控制操作都在CAN控制器中實現(xiàn)。例如:幀ID,幀數(shù)據(jù),幀格式,幀類型和其他參數(shù)的成幀處理,CRC校驗,響應(yīng)檢測等。以下通過某款CAN控制器來進行功能介紹,其功能框圖見下圖1。
圖1 功能框圖
CAN總線控制器主要有接口管理邏輯、發(fā)送緩沖器、接收FIFO、驗收濾波器、位流處理器、位時序邏輯、錯誤管理邏輯等模塊[1]。發(fā)送緩沖器可以存儲一個完整的報文,當(dāng)主控制器要求CAN控制器發(fā)送報文時,接口管理邏輯操縱CAN核心模塊將發(fā)送緩沖區(qū)中的報文發(fā)送到CAN總線上;當(dāng)接收一個報文時,CAN核心模塊首先將總線上的串行位流數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),然后交給驗收濾波器進行識別,判斷該報文是否為主控制器所要求的報文類別,把不希望接收到的數(shù)據(jù)過濾掉。所有接收的報文可以存放在接收FIFO內(nèi),根據(jù)不同的工作模式和數(shù)據(jù)長度,該隊列可以存放最多32個報文。
CAN總線控制器可以有兩種工作模式:BasicCAN和PeliCAN。BasicCAN僅支持標準幀模式,PeliCAN支持標準幀模式和擴展幀模式。通過時鐘分頻寄存器來選擇使用哪種模式。在PeliCAN模式下,可通過配置模式寄存器來選擇工作模式,驗收濾波模式、自我測試模式還是僅聽模式。
我們采用的ATE測試機是J750EX。測試前,將設(shè)計過程中的各種配置、各種工作模式下全部功能的仿真波形通過采樣轉(zhuǎn)換成二進制文本格式,再通過轉(zhuǎn)碼軟件編譯成ATE測試機專用的測試向量。
繪制ATE上專用的DUT板時,需將電路的所有引腳接到測試機的數(shù)字或電源通道上,并進行去耦及RC濾波防串?dāng)_等處理。
編寫測試程序時,根據(jù)J750EX支持多測試向量的特點,在測試程序中針對不同的功能運行不同的測試向量[2],并通過指定的測試向量來對電路的電參數(shù)進行相應(yīng)的測試。最終完成對電路全功能、全參數(shù)的測試。如圖2所示。
圖2 測試流程圖
仿真需要覆蓋電路的所有功能點,在BasicCAN和PeliCAN兩種模式下,包括接收FIFO寫滿、讀空、64B遍歷,所有寄存器的上電復(fù)位后讀、寫、再讀的操作等基本讀寫操作。還包括一些特殊功能,比如溢出狀態(tài)、濾波功能、遠程幀與數(shù)據(jù)幀的競爭、單濾波功能、三倍采樣、不同波特率配置、標準數(shù)據(jù)幀與擴展數(shù)據(jù)幀的競爭、單次發(fā)送功能、中止發(fā)送功能、自檢測模式、自接收功能、只聽模式等。及一些中斷操作,比如仲裁丟失中斷、數(shù)據(jù)溢出中斷、發(fā)送中斷、接收中斷等。另外在將輸出控制器配置為時鐘輸出時,對輸出引腳TX0、TX1的輸出電平進行了懸空、下拉、上拉3種狀態(tài)的功能測試。所有測試點覆蓋了intel和moto兩種工作方式,并進行了全工作電壓4.5V~5.5V下的功能測試,40余個測試向量覆蓋了電路全部功能[3]。
直流參數(shù)主要包括睡眠模式電流、工作電流、輸入引腳的輸入高/低電平,輸出引腳的輸出高/低電平等。通過運行功能向量(intel_sleep_mod_basic_lite_loop.pat)使電路進入睡眠模式,完成睡眠模式電流的測試,通過運行全速讀寫的功能向量(send_frame_ext.pat等)來測試電路的工作電流。通過運行部分讀寫功能向量(moto_send_frame_ext.pat、intel_send_frame_basic.pat等),確保測試向量中覆蓋輸入、輸出引腳的全部狀態(tài),完成對電路輸入、輸出引腳的靜態(tài)參數(shù)測試[4]。
交流參數(shù)主要包括各個控制信號、數(shù)據(jù)信號之間的建立、保持時間,控制信號的最小脈沖寬度,輸出數(shù)據(jù)的有效時間等。以下通過一個建立時間(TSUAAL)來說明交流參數(shù)的測試。波形如圖3所示。
圖3 時序波形圖
首先在測試程序中設(shè)置對應(yīng)的時序波形,如圖4所示。
圖4 設(shè)置Time Set
然后設(shè)置Characterization。根據(jù)每項參數(shù)的要求選擇搜索方式(return、open還是data等),比較方式(Edge還是Level等),然后選擇合適的算法(Pos Linear、Neg Linear、Pos Binary、Neg Binary等),設(shè)置搜索的范圍,對于多引腳的搜索結(jié)果選擇顯示方式(Individual還是Simultaneous)等。
然后在測試向量中找到相應(yīng)交流參數(shù)運行的周期,替換tset,然后運行測試向量,保證功能正常。
最后通過搜索得到相應(yīng)的交流參數(shù)測量值,通過VB語言輸出。
本文對CAN總線控制器進行ATE測試,通過完整的ATE測試程序,覆蓋電路的全部功能和性能。在全溫度范圍、全電壓范圍內(nèi),將設(shè)計仿真波形轉(zhuǎn)換成測試向量進行測試來保證功能正常,對電路的直流參數(shù)、交流參數(shù)測試來保證電路的性能指標。通過ATE測試機的一鍵操作,大大縮短了測試時間,同時提高了CAN總線通訊的可靠性,為總線控制器電路的測試提供了一種切實可行的方法。