基于CAN總線的多通道實時模擬器設(shè)計與技術(shù)應(yīng)用
CAN總線技術(shù)介紹CAN(Controller Area Network)總線是一種串行多主站控制器局域網(wǎng)總線,在數(shù)據(jù)通信方面具有高可靠性、實時性強、靈活性等優(yōu)點。除了廣泛應(yīng)用于汽車行業(yè)外,還擴展到
CAN總線技術(shù)介紹
CAN(Controller Area Network)總線是一種串行多主站控制器局域網(wǎng)總線,在數(shù)據(jù)通信方面具有高可靠性、實時性強、靈活性等優(yōu)點。除了廣泛應(yīng)用于汽車行業(yè)外,還擴展到機械工業(yè)、機器人、數(shù)控機床等領(lǐng)域。然而,在大量數(shù)據(jù)通信處理中,單通道CAN總線無法滿足實際通信需求。因此,基于多通道實時CAN模擬器的設(shè)計方案應(yīng)運而生。
CAN總線通信協(xié)議
在CAN 2.0B版本協(xié)議中,有兩種幀格式:標(biāo)準(zhǔn)幀和擴展幀。其中,標(biāo)準(zhǔn)幀包含11位標(biāo)識符,而擴展幀包含29位標(biāo)識符。根據(jù)報文傳輸時嚴(yán)格的幀結(jié)構(gòu)要求,不同類型的幀具有不同的傳輸方式,如數(shù)據(jù)幀用于傳輸數(shù)據(jù),遠(yuǎn)程幀用于請求數(shù)據(jù)發(fā)送,錯誤幀用于指示總線出錯,過載幀用于提供額外延時。
CAN協(xié)議控制器
目前主流的CAN協(xié)議控制器通常采用I/O總線(如SJA1000)或SPI接口(如MCP2515)與處理器進(jìn)行通信。在設(shè)計中選擇SJA1000控制器,它是一款獨立CAN控制器,應(yīng)用于移動目標(biāo)和工業(yè)局域網(wǎng)控制領(lǐng)域。SJA1000支持BasicCAN和PeliCAN兩種工作模式,用于完成CAN協(xié)議規(guī)定的物理層和數(shù)據(jù)鏈路層功能。
系統(tǒng)設(shè)計方案
針對多通道實時CAN總線模擬器的設(shè)計,可以基于ISA總線來研制,提出了ISA總線CAN通信控制器和微處理器CAN通信控制器兩種設(shè)計方案。考慮到CAN總線通信對實時性的要求,以及多通道設(shè)計的需求,選擇單片機負(fù)責(zé)CAN總線通信功能。選用DS89C430作為單片機,性能高效穩(wěn)定,適合實時通信需求。同時,通過XC95144CPLD芯片實現(xiàn)鎖存和譯碼功能,提高系統(tǒng)集成度和可靠性。
系統(tǒng)硬件設(shè)計
系統(tǒng)硬件由單片機、CAN控制器、CAN收發(fā)器和SRAM存儲器構(gòu)成。單片機用于計算和信息處理,CAN控制器用于通信,CAN收發(fā)器用于增強驅(qū)動能力,SRAM用于緩存數(shù)據(jù)。整個系統(tǒng)的發(fā)送和接收過程通過單片機與CAN控制器之間的交互完成,實現(xiàn)信息的傳輸和處理。
CPLD設(shè)計部分
CPLD輸入信號包括單片機發(fā)送的信號,經(jīng)過鎖存、譯碼等處理后得到片選信號和其他必要信號。通過Xilinx ISE和ModelSim環(huán)境的綜合和仿真,驗證CPLD設(shè)計的正確性和可行性,確保系統(tǒng)正常運行。
軟件設(shè)計
系統(tǒng)軟件設(shè)計關(guān)鍵在于通信程序設(shè)計,包括單片機和CAN控制器的初始化程序、CAN發(fā)送程序和CAN接收程序。通過MAX232芯片對單片機進(jìn)行在線編程,進(jìn)行多通道CAN控制器初始化,并通過寫入控制字確定CAN控制器的工作方式。發(fā)送和接收程序則負(fù)責(zé)數(shù)據(jù)的傳輸和處理,可采用查詢或中斷方式實現(xiàn)。
在CAN總線的多通道實時模擬器設(shè)計中,硬件與軟件密切配合,充分利用CAN總線技術(shù)優(yōu)勢,通過合理的系統(tǒng)架構(gòu)和設(shè)計方案,實現(xiàn)了高可靠性、高實時性的通信需求。隨著該設(shè)計方案在實際工程項目中的成功應(yīng)用,為相關(guān)領(lǐng)域的技術(shù)應(yīng)用和發(fā)展提供了有力支持。