基于汽車(chē)CAN總線(xiàn)的老化測試系統的設計
通信模塊與 10個(gè)檢測模塊及 1個(gè)溫控模塊通過(guò) CAN總線(xiàn)連接。理論上,在 CAN總線(xiàn)上,任意一個(gè)檢測模塊都可以向通信模塊發(fā)送檢測到的數據,通信控制板模塊可以同時(shí)向 10個(gè)檢測模塊發(fā)送命令。 CAN總線(xiàn)上的發(fā)送的數據幀帶有 ID字段,ID字段的值決定每個(gè)數據幀的優(yōu)先級,數據幀的 ID值越小,該數據幀的優(yōu)先級越高。同一時(shí)間,在 CAN總線(xiàn)上,不同的節點(diǎn),不能發(fā)送相同 ID值的數據幀。否則會(huì )造成通信錯誤。在本設計中,分配每個(gè)檢測模塊 1個(gè)固定的 ID值,可以看作該設備的地址編號。這樣不同的設備發(fā)出的數據幀具有不同的優(yōu)先級。這樣導致一個(gè)問(wèn)題:如果任由每個(gè)檢測模塊主動(dòng)向通信模塊發(fā)送數據幀,會(huì )造成 ID值較大的數據幀因優(yōu)先級低,而不能發(fā)出。另外,每個(gè)檢測模塊的設計也采用了 C8051F040的作為控制核心,一方面完成信號檢測,另一方面完成與通信模塊的 CAN通信。
在 C8051F040的 CAN控制器內部有 32個(gè)緩沖區,每個(gè)緩沖區為 8字節,每個(gè)緩沖區需要指定一個(gè)固定的 ID值。每個(gè)緩沖區可以被設置為發(fā)送緩沖區或接收緩沖區。當某個(gè)緩沖區被設置為發(fā)送緩沖區時(shí),該數據幀在底層帶有 ID值。當該緩沖區被設置為接收緩沖區時(shí),則僅接收 CAN總線(xiàn)上具有相同 ID值的數據幀。
在設計中,通信模塊的 CAN控制器的 32個(gè)緩沖區與 ID值分配如下:第 1至第 10緩沖區為發(fā)送緩沖區,對應的 ID值 21至 30。第 1緩沖區用于向第 1個(gè)檢測模塊發(fā)送數據幀,依次類(lèi)推,第 10緩沖區用于向第 10個(gè)檢測模塊發(fā)送數據幀。第 11緩沖區為發(fā)送緩沖區,對應 ID值為 31,用于向溫控模塊發(fā)送數據幀。第 20緩沖區至第 30緩沖區為接收緩沖區,對應 ID值 50至 60。與此對應,則 10個(gè)檢測模塊的 CAN控制器的 32個(gè)緩沖區內的第 1緩沖區均為接收緩沖區,分別對應的 ID值是 21至 30。第 2緩沖區至第 11緩沖區均為發(fā)送緩沖區,對應的 ID值 50至 60。即 10個(gè)檢測模塊發(fā)送的 CAN數據幀具有相同的 ID值。采用上述分配的原因在于:每個(gè)檢測模塊同時(shí)檢測 10個(gè)被測電路板,每次有 10個(gè)數據幀要同時(shí)向通信模塊發(fā)送。前提條件,10個(gè)檢測模塊不能同時(shí)向通信模塊發(fā)送數據。
通信控制板和檢測模塊之間通信采用主從應答通信方式。在工作過(guò)程中,通信模塊從串口命令緩沖隊列的隊首取出一條命令,進(jìn)行協(xié)議轉換,組裝成 8字節的 CAN信息幀。其中最后 1個(gè)字節值設為前 7個(gè)字節的 CRC8校驗值,雖然 CAN總線(xiàn)本身具有 CRC校驗,在應用層再次進(jìn)行校驗,可以提高通信的可靠性。
通信模塊將該 CAN信息幀通過(guò) CAN內部第 1緩沖區發(fā)送,這樣 CAN總線(xiàn)上的第 1個(gè)檢測模塊收到該信息幀,該檢測模塊校驗信息幀,如果通過(guò)校驗,進(jìn)一步解析該信息幀。如果是參數設置命令,則檢測設備提取其中的參數,然后向通信模塊發(fā)送 1個(gè)信息幀作為響應。如果是讀數據命令,則將 10個(gè)被測電路板的參數組裝成 10個(gè) CAN數據幀,分別通過(guò)檢測設備的 CAN緩沖區的第 2至第 11緩沖區向外發(fā)送,該 10個(gè)數據幀,僅被總線(xiàn)上的通信模塊接收,分別放在第 20至第 30緩沖區。通信模塊將這些信息通過(guò)串口向上位機發(fā)送。按照同樣的方式,通信模塊與其它 9個(gè)檢測模塊及 1個(gè)溫控模塊完成 CAN通信,實(shí)現了命令的設置與測試信息的獲取。
2 檢測模塊的設計
老化系統的 10個(gè)檢測模塊完全一樣,完成同樣的功能。根據分析被測電路板的特性,設計了檢測模塊實(shí)現檢測的方法與流程。檢測模塊首先檢測被測電路板是否存在短路故障與斷路故障,如果發(fā)現被測電路板存在斷路故障或斷路故障,則不再進(jìn)一步檢測,在與通信模塊通信過(guò)程發(fā)送該故障信息。如果被測電路沒(méi)有短路故障或斷路故障,則檢測模塊向被測電路板加上額定工作電壓與有效的激勵信號,使被測電路板正常工作,然后檢測被測電路板的輸出信號的波形類(lèi)型及頻率,按照設定的檢測算法判斷被測電路板是否存在其它故障。在 100多個(gè)小時(shí)的測試過(guò)程中,測試環(huán)境的溫度可以根據用戶(hù)的設置不斷變化或自動(dòng)變化,檢測模塊提供的輸入激勵信號采用多種組合。
3 溫控模塊設計
在老化過(guò)程,被老化的電路板被放置在密閉的柜體中。該柜體內的溫度保持在一定的范圍,以模擬中電路板的實(shí)際工作環(huán)境的溫度。溫控模塊通過(guò) CAN總線(xiàn)接收通信模塊發(fā)來(lái)的信息幀,解析信息幀,得到用戶(hù)要設置的溫度值。溫控模塊檢測柜體溫度,控制加熱裝置加熱與否,使柜體的溫度達到用戶(hù)設置的溫度。
溫度檢測采用 DS18B20完成,在溫控模塊中設置 4個(gè) DS18B20。將測得的 4個(gè)溫度值進(jìn)行算術(shù)平均,作為老化柜體內的溫度值。溫控模塊的繼電器輸出接加熱棒及排風(fēng)風(fēng)扇。采用了 PID控制算法,使柜體內溫度達到用戶(hù)設置溫度。4 上位機軟件的設計上位機軟件采用 VC++ 6.0設計完成,串口通信部分使用 Windows API函數完成,使用 API函數處理串口靈活高效。上位機軟件實(shí)時(shí)顯示每個(gè)被測電路板是否正常工作及當前老化柜的溫度及老化時(shí)間等信息,還提供歷史數據查詢(xún)及參數設置等功能。
5 結束語(yǔ)
本老化測試系統,采用 CAN總線(xiàn)作為系統的主要通信方式,采用模塊化結構,方便系統的設計與調試,同時(shí),各模塊掛在 CAN總線(xiàn),易于系統實(shí)現與擴展。本系統已經(jīng)應用于生產(chǎn)中,達到了設計要求,運行效果穩定良好。本系統已產(chǎn)生經(jīng)濟效益近 30萬(wàn)元。
評論