CAN總線的通信應用系統(tǒng)設(shè)計
2 系統(tǒng)軟件設(shè)計
在使用CAN控制器之前首先必須對它的內(nèi)部寄存器進行初始化設(shè)置,包括相關(guān)I/O口,位定時器的設(shè)置以及郵箱的相關(guān)配置。著重介紹在所有相關(guān)的寄存器都配置好之后,如何能使CAN正常工作。其中具體介紹CAN總線正常通訊的條件。
2.1 I/O口配置;由于CAN通訊所用到的兩個引腳CANTX和CANRX均為復用I/O口,因此進行CAN通訊軟件編程的第一步即為正確配置這兩個I/O口。
2.2初始化位定時器: 位定時器主要是由BCR1和BCR2兩個寄存器組成,包括了CAN
控制器的通訊波特率,同步跳轉(zhuǎn)寬度,采樣次數(shù)和重同步方式。圖3列出了位定時器的配置流程圖。
2.3 初始化郵箱:郵箱初始化主要是設(shè)置郵箱的標識符,控制域(即發(fā)送的是遠程幀還是數(shù)據(jù)幀)以及對相應的郵箱賦初值。圖4列出了郵箱初始化的配置流程圖。
2.4 數(shù)據(jù)的發(fā)送與接收:當完成以上三步之后,接著就實現(xiàn)對數(shù)據(jù)的發(fā)送與接收請求。數(shù)據(jù)接收時,所接收到的信息的標識符必須與相應的接收郵箱的標識符相同才能被接收,否則該信息將被濾除掉。這里數(shù)據(jù)的發(fā)送與接收請求均采用標志位查詢方式。圖5和圖6分別列出了數(shù)據(jù)的發(fā)送與接收請求的配置流程圖。
2.5 CAN總線正常通訊的條件:當完成以上所有的設(shè)置和請求以后,其實還是不能使CAN總線工作,若要使CAN總線正常通訊,必須要使所有的接點同時激活總線。因為根據(jù)CAN 協(xié)議,CAN總線信號使用差分電壓傳送,兩條信號線被稱為“CAN_H”和“CAN_L”,靜態(tài)時均是2.5V左右,此時狀態(tài)表示為邏輯“1”,也可以叫做“隱性”。用CAN_H比CAN_L高表示邏輯“0”,稱為“顯形”,此時,通常電壓值為:CAN_H = 3.5V 和CAN_L = 1.5V。而在CAN總線中傳送的數(shù)據(jù)幀由7個不同的位場組成,其中有一個位場叫做應答場。應答場長度為2 個位,包含應答間隙和應答界定符,在應答場里,發(fā)送站發(fā)送兩個“隱性”位。當接收器正確地接收到有效的報文,接收器就會在應答間隙期間向發(fā)送器發(fā)送一“顯性”的位以示應答。因此連在CAN總線上的所有接點都必須對總線進行發(fā)送請求(不論該接點只管接收還是只管發(fā)送),即同時激活總線,使各自節(jié)點都能對相對應的發(fā)送器進行應答,以確認對方以存在總線上,并隨時準備發(fā)送或接收數(shù)據(jù)。只要把這點設(shè)置好,CAN總線就可以正常地工作。
以上是CAN總線的基本接收和發(fā)送功能,此外LF2407內(nèi)嵌的CAN模塊還能實現(xiàn)遠程幀請求和自動遠程幀回應功能,它對于遠程控制數(shù)據(jù)傳送很有用。而遠程幀的發(fā)送和數(shù)據(jù)幀相類似,只是要設(shè)置郵箱2和3為發(fā)送郵箱并且遠程幀中沒有數(shù)據(jù)。另外CAN模塊還配置有自測試模式來測試程序能否正確運行,這對初學者熟悉相關(guān)的CAN寄存器設(shè)置也很有幫助。
四 結(jié)束語
由CAN 總線構(gòu)成網(wǎng)絡(luò)中,理論上可以掛接無數(shù)個節(jié)點。但在實際應用中,節(jié)點數(shù)目受網(wǎng)絡(luò)硬件的電氣特性所限制。CAN 可提供高達1Mbit/s的數(shù)據(jù)傳輸速率,這使實時控制變得非常容易。另外,硬件的錯誤檢定特性也增強了CAN的抗電磁干擾能力。而LF2407內(nèi)嵌的CAN模塊也使到硬件電路設(shè)計更為簡單。以上系統(tǒng)已經(jīng)實際調(diào)試通過,并可跟據(jù)不同的需求作擴展。
參考文獻
1 TMS320LF240X DSP結(jié)構(gòu)原理及應用 劉和平 北京航空航天大學出版社
2 現(xiàn)場總線CAN原理和應用技術(shù) 鄔寬明 北京航空航天大學出版社
3 廣州周立功單片機發(fā)展有限公司網(wǎng)站資料.
4 現(xiàn)場總線技術(shù)及其應用 楊憲惠 清華大學出版社
作者簡介:
暨綿浩 男 1979年生
1998-2002 廣東工業(yè)大學自動化專業(yè)獲學士學位
2003-2006 廣東工業(yè)大學自動化碩士研究生 研究方向:電力電子計術(shù)與數(shù)字信號處理
評論