一種CAN總線高層通信協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)
對(duì)于每個(gè)模塊,上電1s后若未收到任何通信信息,則按計(jì)算延時(shí)發(fā)送自身的地址碼和溫度電流采樣值。延時(shí)時(shí)間的計(jì)算為[6]:
tdelay=t×add
其中:tdelay-為延時(shí)發(fā)送時(shí)間;
t-為單位延時(shí)時(shí)間常數(shù),該值根據(jù)通信速率定義;可以取1個(gè)位周期,在波特率為100khz時(shí)為10μs;
add-為模塊地址編碼。
主模塊是id10=0的模塊,因此具有最高的優(yōu)先級(jí)。上電后主模塊首先向總線廣播發(fā)送自身的地址碼和溫度電流采樣值,然后即按順序向從機(jī)發(fā)送指令,等待從機(jī)的回答。主機(jī)1秒鐘后若未收到任何通信信息則認(rèn)為該模塊出錯(cuò),發(fā)出報(bào)警。同樣從機(jī)1s后若未收到主機(jī)任何通信信息則認(rèn)為主機(jī)出錯(cuò),按照源地址優(yōu)先級(jí)由其 余模塊中地址最低的模塊充當(dāng)主模塊,并將其id10由1改為0,以獲得最高通信優(yōu)先權(quán)。
各模塊檢測(cè)到自身故障時(shí),將切斷輸出,退出通信,并向上位機(jī)報(bào)警,同時(shí)發(fā)出聲光報(bào)警。
5 結(jié)束語(yǔ)
本文中所介紹的can高層通信協(xié)議,結(jié)構(gòu)簡(jiǎn)單、使用靈活、可靠性極高,實(shí)現(xiàn)也比較容易。很適合在節(jié)點(diǎn)數(shù)不多、通信可靠性要求高、控制結(jié)構(gòu)較簡(jiǎn)單的小型控制系統(tǒng)中應(yīng)用,具有一定的實(shí)用價(jià)值。
參考文獻(xiàn)
[1] can基本知識(shí)[eb]. http://www.zlgmcu.com.
[2] 控制器局域網(wǎng)(can)未來的工業(yè)微處理器串行通訊[eb]. http://www.zlgmcu.com.
[3] 周立功等. 增強(qiáng)型80c51單片機(jī)速成與實(shí)戰(zhàn)[m]. 北京:北京航空航天大學(xué)出版社,2003.
[4] 饒運(yùn)濤等.現(xiàn)場(chǎng)總線can原理與應(yīng)用技術(shù)[m]. 北京:北京航空航天大學(xué)出版社,2003.
[5] 蔣建文等. can總線通信協(xié)議的分析和實(shí)現(xiàn)[j]. 計(jì)算機(jī)工程,2002,2.
[6] 鄭尊標(biāo).數(shù)字化智能電源模塊研究[d]. 浙江:浙江大學(xué),2001.
[7] canbus現(xiàn)場(chǎng)總線基礎(chǔ)方案芯片篇[eb]
評(píng)論