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