sja1000 c语言,CAN总线控制器SJA1000源程序(c语言).doc
CAN總線控制器SJA1000源程序(c語言)
CAN總線控制器sja1000源程序
SJA1000 是一種獨立控制器用于移動目標和一般工業環境中的區域網絡控制CAN 它是PHILIPS
半導體PCA82C200 CAN 控制器BasicCAN 的替代產品而且它增加了一種新的工作模式PeliCAN ,
這種模式支持具有很多新特性的CAN 2.0B 協議。
1 特性
???? 和PCA82C200 獨立CAN 控制器引腳兼容
???? 和PCA82C200 獨立CAN 控制器電氣兼容
???? PCA82C200 模式即默認的BasicCAN 模式
???? 擴展的接收緩沖器64 字節先進先出FIFO
???? 和CAN2.0B 協議兼容PCA82C200 兼容模式中的無源擴展幀
???? 同時支持11 位和29 位識別碼
???? 位速率可達1Mbits/s
???? PeliCAN 模式擴展功能
--可讀/寫訪問的錯誤計數器
--可編程的錯誤報警限制
--最近一次錯誤代碼寄存器
--對每一個CAN 總線錯誤的中斷
--具體控制位控制的仲裁丟失中斷
--單次發送無重發
--只聽模式無確認無活動的出錯標
志
--支持熱插拔軟件位速率檢測
--驗收濾波器擴展4 字節代碼4 字節屏蔽
--自身信息接收自接收請求
???? 24MHz 時鐘頻率
???? 對不同微處理器的接口
???? 可編程的CAN 輸出驅動器配置
???? 增強的溫度適應-40-+125
#include
#include
#include
//-----------------------沿襲引腳和變量----------------------------------------------
#define uchar unsigned char //宏定義
#define uint unsigned int //宏定義
void MCU_init(void);
/*P2口的管腳定義*/
sbit LED1 = P2^6;
sbit LED2 = P2^5;
sbit SJA_CS = P2^7; //SJA1000片選管腳,低電平有效
//sbit SJA_RST = P1^2;
/*P3口的管腳定義*/
sbit SJA_RD = P3^7;
sbit SJA_WR = P3^6;
//-----------------------定義尋址的基址--------------------------------------------------------
#define base_Adr 0x7F00
//-----------------------定義總線定時寄存器的值--------------------------------------------------------
#define SJA_BTR0 0x07 //該值需要用戶根據需要的波特率進行計算,推薦使用周立功發布的波特率計算器
#define SJA_BTR1 0x2F
//-----------------------設置接收報文類型(標示符)--------------------------------------------------------
//該值需要用戶根據實際需要重新配置
#define SJA_ACR 0x11 //驗收代碼寄存器的值
#define SJA_AMR 0xFF //驗收屏蔽寄存器的值
//-----------------------設置輸出時鐘類型--------------------------------------------------------
//該值需要用戶根據實際需要重新配置
#define SJA_OCR 0xaa //輸出控制寄存器的值
#define SJA_CDR 0x40 //時鐘分頻寄存器的值
//-----------------------設置SJA中斷,1為開中斷---------------------------
總結
以上是生活随笔為你收集整理的sja1000 c语言,CAN总线控制器SJA1000源程序(c语言).doc的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: PHP:Fatal error: All
- 下一篇: 看看阿里、百度、华为等互联网公司的年终奖
