多通道實(shí)時(shí)CAN模擬器設(shè)計(jì)方案
2.3.1 結(jié)構(gòu)設(shè)計(jì)
CPLD的輸入信號(hào)是單片機(jī)發(fā)送的信號(hào),由高位地址A[15..8]、ALE鎖存信號(hào)、中斷信號(hào)以及寫/讀信號(hào)組成。地址線A14和A15經(jīng)譯碼后作為片選信號(hào),ALE實(shí)現(xiàn)低8位地址線的鎖存。實(shí)體和構(gòu)造體部分代碼如下所示:
2.3.2 仿真結(jié)果
該模塊在Xilinx ISE 9.1工具下進(jìn)行綜合,并在結(jié)合ModelSim環(huán)境下進(jìn)行功能仿真。其仿真結(jié)果如圖3所示。
3 軟件設(shè)計(jì)
該系統(tǒng)軟件設(shè)計(jì)的關(guān)鍵是通信程序設(shè)計(jì)。通信軟件由三部分組成:?jiǎn)纹瑱C(jī)和CAN控制器的初始化程序、CAN發(fā)送程序、CAN接收程序。對(duì)于初始化程序,采用MAX232芯片對(duì)單片機(jī)進(jìn)行在線編程,可同時(shí)對(duì)多通道CAN控制器初始化。對(duì)于CAN控制器的初始化程序,主要是通過(guò)對(duì)CAN控制器控制段中的寄存器寫入控制字,從而確定CAN控制器的工作方式等,即通過(guò)上電復(fù)位、硬件復(fù)位或軟件復(fù)位給CAN控制器發(fā)一個(gè)復(fù)位請(qǐng)求,便可進(jìn)入初始化。在復(fù)位期間,對(duì)必需的寄存器進(jìn)行設(shè)置。對(duì)于發(fā)送和接受程序,只需把到來(lái)的信息幀送到CAN的發(fā)送或接受緩沖區(qū),同時(shí)啟動(dòng)命令即可。二者可采用查詢方式或中斷方式,對(duì)于中斷方式,程序分為主程序和中斷服務(wù)程序兩部分設(shè)計(jì)。在具體項(xiàng)目中,需要軟硬件結(jié)合調(diào)試才能保證各部分的設(shè)計(jì)準(zhǔn)確無(wú)誤,到達(dá)實(shí)際應(yīng)用的要求。
4 結(jié) 語(yǔ)
在對(duì)CAN通信協(xié)議進(jìn)行分析的基礎(chǔ)上,構(gòu)建了一種多通道實(shí)時(shí)CAN總線模擬器架構(gòu),同時(shí)利用CPLD器件,通過(guò)功能仿真,驗(yàn)證了設(shè)計(jì)方案的正確性。經(jīng)實(shí)際工程項(xiàng)目使用,驗(yàn)證了該設(shè)計(jì)方案切實(shí)可行,滿足了實(shí)際應(yīng)用中高可靠性、高實(shí)時(shí)性以及傳輸速率較高的需求。
評(píng)論