

6 節(jié)點(diǎn)軟件設(shè)計(jì)
節(jié)點(diǎn)軟件流程如圖5所示。程序采用查詢方式,節(jié)點(diǎn)初始化并報(bào)告正常工作后將一直處于查詢狀態(tài),直到主控節(jié)點(diǎn)發(fā)送的燈光控制命令到達(dá)燈光節(jié)點(diǎn)時(shí),單片機(jī)才可判斷控制的是哪一路燈光或哪幾路燈光,并通過開關(guān)的診斷反饋功能檢測相應(yīng)的開關(guān)是否正常。如果正常,則向相應(yīng)的高/低端開關(guān)發(fā)送相應(yīng)的控制命令,然后回到查詢狀態(tài)。如果不正常,則向儀表節(jié)點(diǎn)發(fā)送相應(yīng)端點(diǎn)的不正常信息幀,繼續(xù)檢測相應(yīng)的端點(diǎn)。
節(jié)點(diǎn)初始化主要是單片機(jī)初始化,包括端口初始化和CAN控制模塊的初始化。單片機(jī)端口初始化主要對用到的I/O口上電復(fù)位。CAN模塊的初始化主要是設(shè)置所用的特殊功能寄存器,主要包括協(xié)議模式、驗(yàn)收濾波方式、CAN通信速率和中斷寄存器的設(shè)置等。將驗(yàn)收代碼和驗(yàn)收屏蔽代碼寫入驗(yàn)收代碼寄存器和驗(yàn)收屏蔽寄存器。
CAN總線的軟件設(shè)計(jì)主要包括CAN節(jié)點(diǎn)的初始化、數(shù)據(jù)的發(fā)送和接收程序,掌握了這3個(gè)模塊的設(shè)計(jì),基本上就完成了CAN通信的軟件設(shè)計(jì)。
7 結(jié)束語
雖然本節(jié)點(diǎn)是為控制客車車燈設(shè)計(jì)的,但對其他一些節(jié)點(diǎn)也有借鑒作用,尤其是CAN總線的硬件接口部分,可以通用到客車其他CAN網(wǎng)絡(luò)節(jié)點(diǎn)上,甚至可以用在其他非汽車領(lǐng)域的CAN網(wǎng)絡(luò)上,如工業(yè)自動(dòng)化等領(lǐng)域。





