基于CAN 總線的智能傳感器網(wǎng)絡(luò)
圖3 硬件電路圖
4 軟件設(shè)計
智能傳感器作為一個節(jié)點(diǎn)的軟件設(shè)計主要包括兩部分: 一部分為初始化單片機(jī)和SJAl000 , 另一部分為節(jié)點(diǎn)實(shí)際要完成的數(shù)據(jù)采集和對執(zhí)行機(jī)構(gòu)的控制功能。對CAN 控制器的初始化, 對各個寄存器分別寫入不同的內(nèi)容, 其中CAN 控制器與單片機(jī)之間采用中斷方式通信。其流程如圖4 所示。
圖4 中斷流程圖
SJAl000 的初始化程序?yàn)?
MOVA , # 0BH 04H 為ACR 寄存器地址 00H 為CR 寄存器的地址
MOVDPTR , # 8000H
MOVX@DPTR , A開放錯誤和接收中斷, SJA1000 進(jìn)入復(fù)位模式
MOVDPTR , # 8004H
MOVA , # 02H
MOVX@DPTR , A
INC DPTR05H 為AMR 寄存器地址。設(shè)為全部收
MOVA , # FFH
MOVX@DPTR , A
INC DPTR
MOVA , # 01H06H 為BTR0 的寄存器地址
MOVX@DPTR , A
INC DPTR
MOVA , # FFH07H 為BTRl 的寄存器地址, 寫B(tài)TR0 和BTRl , 波特率設(shè)為160K
MOVX@DPTR , A
INC DPTR
MOVA , # 0AH08H 為OCR 寄存器地址, SJAl000 采用正常模式輸出
MOVX@DPTR , A
MOVA , # OFH
MOVDPTR , # 801FH 1FH 為CDR 寄存器地址, 使微控制器與SJAl000 的時鐘相同
MOVX@DPTR , A
MOVA , # 0AH
MOVDPTR , # 8000H
MOVX@DPTR , A寫CR 寄存器使SJAl000 進(jìn)入工作模式
RET
5 結(jié) 語
將CAN 總線應(yīng)用于智能傳感器中, 使傳感器獲得的信號能通過總線實(shí)時地、可靠地、高速而準(zhǔn)確地進(jìn)行傳輸。同時, 由于整個智能傳感器網(wǎng)絡(luò)采用全數(shù)字化的通信, 因此總線也具有很好的抗干擾能力, 即使在重負(fù)荷下也不會出現(xiàn)網(wǎng)絡(luò)癱瘓的情況, 這些優(yōu)越性能是其它現(xiàn)場總線所不及的。
評論