基于CAN 總線(xiàn)的智能傳感器網(wǎng)絡(luò )

圖3 硬件電路圖
4 軟件設計
智能傳感器作為一個(gè)節點(diǎn)的軟件設計主要包括兩部分: 一部分為初始化單片機和SJAl000 , 另一部分為節點(diǎn)實(shí)際要完成的數據采集和對執行機構的控制功能。對CAN 控制器的初始化, 對各個(gè)寄存器分別寫(xiě)入不同的內容, 其中CAN 控制器與單片機之間采用中斷方式通信。其流程如圖4 所示。

圖4 中斷流程圖
SJAl000 的初始化程序為:
MOVA , # 0BH 04H 為ACR 寄存器地址 00H 為CR 寄存器的地址
MOVDPTR , # 8000H
MOVX@DPTR , A開(kāi)放錯誤和接收中斷, SJA1000 進(jìn)入復位模式
MOVDPTR , # 8004H
MOVA , # 02H
MOVX@DPTR , A
INC DPTR05H 為AMR 寄存器地址。設為全部收
MOVA , # FFH
MOVX@DPTR , A
INC DPTR
MOVA , # 01H06H 為BTR0 的寄存器地址
MOVX@DPTR , A
INC DPTR
MOVA , # FFH07H 為BTRl 的寄存器地址, 寫(xiě)BTR0 和BTRl , 波特率設為160K
MOVX@DPTR , A
INC DPTR
MOVA , # 0AH08H 為OCR 寄存器地址, SJAl000 采用正常模式輸出
MOVX@DPTR , A
MOVA , # OFH
MOVDPTR , # 801FH 1FH 為CDR 寄存器地址, 使微控制器與SJAl000 的時(shí)鐘相同
MOVX@DPTR , A
MOVA , # 0AH
MOVDPTR , # 8000H
MOVX@DPTR , A寫(xiě)CR 寄存器使SJAl000 進(jìn)入工作模式
RET
5 結 語(yǔ)
將CAN 總線(xiàn)應用于智能傳感器中, 使傳感器獲得的信號能通過(guò)總線(xiàn)實(shí)時(shí)地、可靠地、高速而準確地進(jìn)行傳輸。同時(shí), 由于整個(gè)智能傳感器網(wǎng)絡(luò )采用全數字化的通信, 因此總線(xiàn)也具有很好的抗干擾能力, 即使在重負荷下也不會(huì )出現網(wǎng)絡(luò )癱瘓的情況, 這些優(yōu)越性能是其它現場(chǎng)總線(xiàn)所不及的。
評論