发表于:2003-09-25 15:48:00
楼主
我在学习CAN应用设计中的一点心得体会,也算是走了一些弯路,现在把它写出来和大
家共同交流。
不知道各位注意到没有,大多数情况下,SJA1000是与8250+51系列单片机的方式来做
CAN的控制应用。如果是1M/s的通讯速度的话,实际上的流量只有大概500多K的样子,此点
希望大家在以后的应用设计中需要考虑周到。
上诉问题产生的原因是SJA1000的发送缓冲区只有1个,应用程序在判断发送完一幀
数据后,需要计算下一幀需要装载的数据长度,然后根据长度再装载相应的数据到缓冲区
,这个过程要消耗掉了一定的时间(特别是标准51内核的单片机),因此CAN总线上的数据
流实际上是发送一幀就有一个比较长的空闲区(单片机装载数据的时间),这样一来就浪费
了总线资源。
微芯的MCP2510有3个发送缓冲区,在5V的电源下以5Mb/s的SPI端口读写数据,可以较好
的解决这个问题,但是多数的51单片机都无SPI,这样也给单片机的选择上带来了一定的麻
烦。具体选择怎样的方案,只能看各自的应用情况来定了!