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