你应该自己学着写,碰到问题了再问,这样就具体的某个樱巧细节问题,大家才好回答你。
这个要求包含如下几个方面:
1)单片机通过RS232与电脑之间发送、接脊搏键收数据;
2)51单片机对SJA1000的配置、控制、读写;
3)CAN的节点通讯(协议);
4)51单片机对DS18B20的温度采集。银凯
这些,你会哪些,不会哪些,至少自己一点一点的去啃一下,才有意义
这个问题我觉得你应该和CAN总线协议分开,因为CAN总线硬件链路层协议和数据链路层协议都是标准的,就是CAN2.0A和CAN2.0B协议,我觉得你应该是要定义上层应用的协议,专门针对你的通讯信息的协议,比如说你要传输“设置量程上下限,报警上下限,绘制历史和实时曲线”等信息的协议,如果是这样的话,那就简单了,解释一下:协议就是通讯两端对话的语言,你必须有至少两个CAN节点,然后通过线路将其连接(就是一对差分线行吵),然后就可以利用CAN底层协议互相通讯,而你要定的协议就是定义CAN接收的什么数据代表什么意思,一般来说,一个协议要包括头和尾及中间的内容,如当接收宴唤到一帧的第一个字节(CAN协议一帧可以传送8个字节)为0xfe时认为这是你的一个协议包的开始标志字节,一个协议包比如定义为8个字节,最后一个字节为0xEF为结束字节标志,这样当你的CAN接收到第一个字节为0xfe最后一个字节为0xef的帧就是你需要的协议包,你可以定义第二个字节表示标志此包传输意义的字节,如档祥侍为0x01表示“设置量程上下限”为0x02表示“报警上下限”等等,其他字节可以设置相应的需要设置的值。如果是一个复杂的协议的话,可以用多个帧表示一个你的协议包,而且一般需要加上一个或几个字节的校验字节,以验证是否传输正确。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)