基于S3C2410的CAN總線(xiàn)通信設計與開(kāi)發(fā)
在兩種情況會(huì )下被執行,其一發(fā)送中斷響應中,如果當前有發(fā)送任務(wù),通過(guò)發(fā)送緩沖區記錄標志確定空的發(fā)生緩沖區并向其中填發(fā)送幀,然后啟動(dòng)發(fā)送;其二在接收中斷響應中,在接收處理完后如果有發(fā)送任務(wù)且有發(fā)送緩沖區空,會(huì )處理發(fā)送任務(wù)。在兩處處理發(fā)送主要是考慮有多個(gè)發(fā)送、接收緩沖區可用,可以提高通信效率。
(2) 接收處理
需要根據ICOD的值來(lái)確定當前是那個(gè)接收緩沖區的數據準備好,可以讀取。接收幀處理過(guò)程中首先讀取幀的ID值,確定當前幀的數據是那個(gè)節點(diǎn)發(fā)送來(lái)的,并據此把幀中數據字段的數據存放相應的位置。
(3) 錯誤處理
引起錯誤處理的原因很多,并且都產(chǎn)生錯誤中斷,需要訪(fǎng)問(wèn)錯誤標志寄存器來(lái)確定具體錯誤類(lèi)型,并據此作相應的處理。
此外,圖3中更新發(fā)送緩沖區使用記錄是為了在發(fā)送和接收中斷響應中可以據此清楚發(fā)送緩沖區的使用情況,確定當前是否可以做發(fā)送處理。
4 測試與應用
將以上設計方案應用到自主開(kāi)發(fā)的HMI(結構框圖如圖4,虛線(xiàn)框中為擴展的CAN總線(xiàn)接口框圖)實(shí)驗板上,同時(shí)與黃石市科威自控有限公司開(kāi)發(fā)的混合型PLC(EASY-M0808R-A44NB)、通用型PLC(EASY-M2416R)、運動(dòng)控制器(EASY-KP3-M0506R)進(jìn)行通信測試,其中HMI作主站,其他設備作從站。測試環(huán)境中有電機頻繁啟停和不間斷繼電器開(kāi)閉干擾,其他測試條件和參數見(jiàn)如附表:
附表 CAN接口測試記錄表 在測試記錄程序中記錄了通訊速率為500Kbps,運行到6時(shí)31分42秒時(shí)出現了一次通信“死機”,隨后系統調用自恢復程序重新配置軟硬件參數,6時(shí)31分43秒重啟通信,通信恢復正常。其他測試條件下沒(méi)有出現“死機”的情況。該測試結果說(shuō)明采用這種方法設計的CAN接口完全能夠滿(mǎn)足工業(yè)現場(chǎng)網(wǎng)絡(luò )通訊的要求。
圖4 HMI系統結構圖5 結束語(yǔ)
采用ARM芯片S3C2410集成的SPI接口擴展的CAN總線(xiàn)接口,在不改變CAN總線(xiàn)自身的特點(diǎn)的前提下,使得PCB布線(xiàn)簡(jiǎn)單,增強了系統的可靠性;為擴展接口找到了一個(gè)便捷的方法。在自主開(kāi)發(fā)的HMI中采用該設計方案實(shí)現CAN總線(xiàn)接口的擴展,并且在實(shí)際應用和測試中證明了該方案的正確性和可靠性。(end)
評論