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