關(guān)鍵字:ADSP2181 CAN總線 通訊
現(xiàn)在CAN總線除了被用于汽車系統(tǒng)內(nèi)部的數(shù)據(jù)通訊與控制,,他已在工業(yè)自動(dòng)化、各種控制設(shè)備、交通工具,、醫(yī)療儀器以及建筑、環(huán)境控制等各領(lǐng)域得到廣泛的應(yīng)用,。而這里被用于成套測(cè)井儀器中各儀器之間的數(shù)據(jù)通訊,。
1 CAN與DSP的接口電路
以ADSP2181和SJA1000芯片設(shè)計(jì)的接口電路如圖1所示。圖1中,,用1片GAL16V8作為邏輯轉(zhuǎn)換電路,。為突出接口電路,其他部分從略,。
用FM書(shū)寫的設(shè)計(jì)文件如下:
2 波特率的設(shè)定
BTR0和BTR1是總線定時(shí)寄存器,,通過(guò)對(duì)這2個(gè)寄存器的設(shè)置可以惟一地確定波特率和同步跳轉(zhuǎn)寬度。BTR0各位功能如圖2所示,。BTR1各位功能如圖3所示,。
總線長(zhǎng)度在40 m以內(nèi)(滿足這里的設(shè)計(jì)需求),CAN總線的位速率可達(dá)到1 Mb/s,,這里需要的波特率為1Mb/s,,晶體震蕩頻率為24MHz,設(shè)BTR0=00H,,BTR1=18H,,計(jì)算總線傳輸速率。由給定的BTR0和 BTR1可知:BRP.5,,BRP.4,,BRP.3,BRP.2,,BRP.1和BRP.0以及TSEG2.1,,TSEG2.0,TSEG1.3均為0,;另外,,TSEG2.2,TSEG1.2,,TSEG1.1,,TSEG1.0均為1。因此有:
而波特率為1/tB,,即為1 Mb/s,。
3 初始化子程序
SJA1000的初始化只有在復(fù)位模式下才可以進(jìn)行。初始化主要包括工作方式的設(shè)置、接收濾波方式的設(shè)置,、接收屏蔽寄存器AMR和接收代碼寄存器ACR的設(shè)置,、波特率參數(shù)設(shè)置和中斷允許寄存器IER的設(shè)置等。在完成SJA1000的初始化設(shè)置以后,,SJA1000就可以回到工作狀態(tài),,進(jìn)行正常的通信任務(wù)。下面提供SJA1000初始化的ADSP匯編源程序,。程序中寄存器符號(hào)表示的是SJA1000相應(yīng)寄存器占用的片外存儲(chǔ)器地址,,這些符號(hào)可在程序的頭部用偽指令對(duì)其定義。需要注意的事SJA_PORT位I/O接口,,其地址為0x0600,。
4 結(jié) 語(yǔ)
CAN總線已在測(cè)井儀器系統(tǒng)中得到初步的應(yīng)用,隨著測(cè)井事業(yè)發(fā)展的需求,,由于其良好的性能,,他的使用將會(huì)更為廣泛和深入。