CAN是一个分布式系统的通信协议,所以CAN通信控制器(例如SJA1000)不可能有主从节点设置。如果要利用CAN总线实现集中式控制系统,那么节点的主从属性由用户程序完成。这样的程序例子可以在DEVICENET中找到。
有没有专用的集中式控制系统通信控制器?有!而且功能设计很精彩。例如HDLC/SDLC协议通信控制器,功能: 1、控制器带有主控或从节点设置位。当一个控制器设置为从站时,即使执行发送命令,该节点也不会执行发送操作。 2、自动响应方式(这一点优于CAN通信控制器)。当一个从站接收到主站的查询时,它“自动”发出响应帧/数据帧!并且不会引起本节点任何中断!也就是不影响CPU的正常操作。这个功能好像是有2个处理器在同时“独立”工作。 3、可以设置多种帧格式,例如:去掉CAN帧格式中的CRC域,这使得CRC域—CCITT—16的内容透明可见,(或代之以用户为自己系统设计的校验密码。)这使CAN的短帧更短。另外的地址段/控制段都可以自由舍/取。这能够让用户自主设计其他的协议。 4、各种功能的设置只需要2个功能寄存器。这表现出与CAN(德国)的思维方法的不同。 5、...... 6、......
世界是多元的,一个CAN标准通信控制器一定是SJA1000那样的蓝本设计。一个HDLC通信控制器也一定包含以上CAN没有的功能设计,把CAN设计成主从系统,只是因为我们只了解一种通信控制器。 |