r1)、輸出控制寄存器(ocr)、時鐘分頻計數器(cdr)進行設置和檢測,以及對收發緩沖區進行讀寫,從而完成和其它can節點的數據交換。 為了能使can網絡1(最多110個節點)的信息和can網絡2(最多110個節點)的信息共享,p87c591在軟件上必須使得任何格式的數據能實時的從can網絡1傳送到can網絡2,以及信息從can網絡2傳送到can網絡1。這樣,兩個不同的子網就實現了互聯,can網絡的節點得到了擴展。 軟件設計 *在初始化sja1000時,必須設置接收代碼寄存器acrn,接收代碼屏蔽寄存器amrn的值為ff,以能收發所有的數據。由于p87c591片上自帶的can控制器在軟件上是向上兼容sja1000的,所以對sja1000的初始化,讀、寫的流程與p87c591基本類似。 初始化部分的原程序如下: #include<reg591.h> viod ini_can_controller (void) { canmod=0x01; /*進入復位模式,啟動can初始化*/ p1m2=p1m2 i 0x02; /*管腳txd