CAN与以太网数据交换的研究与分析通信网2020年
CAN与以太数据交换的研究与分析 - 通信/络 - 电子工程
P89C668:微控制器,主要的控制部分,实现对络芯片以及CAN器件的控制,并进行两者之间的协议转换。
SJA1000:CAN控制器,两种工作模式(BasicCAN和PeliCAN)。BasicCAN仅支持标准模式,PeliCAN支持 CAN2.0B的标准模式和扩展模式(本文仅介绍BasicCAN模式)。支持错误分析功能,对CAN收发器进行控制,为微控制器提供了控制CAN总线的简单接口。
TJA1050:CAN收发器,微控制器对CAN控制器进行相应配置后,收发器自动过完成相应的CAN总线动作。
RTL8019:络芯片,提供给微控制器控制以太的简单接口,使微控制器只需要对其进行相应读写即可完成对以太的操作。
实验中另外用到一个CAN模块作为一个CAN节点,和转换模块一起组成一个简单的CAN。
4 软件部分
4.1 CAN编程
BasicCAN模式中的CAN编程相对简单,只需要对SJA1000相应的寄存器进行读写操作即可。在该模式下,报文识别码为11位,在经过验收滤波器的筛选后,符合条件的报文才能被接收,并存入SJA1000接收缓冲区。识别码值越小,优先级越高。如果总线上出现报文冲突,优先级高的报文选占据总线。CAN节点间每次最多传送的数据为10个字节。发送缓冲区寄存器的描述如表1所列,它与接收缓冲区寄存器结构大体相同,只是地址不同。
表 1 发送缓冲区寄存器
名称位7位6位5位4位3位2位1位0识别码字节1ID.10ID.9ID.8ID.7ID.6ID.5ID.4ID.3识别码字节2ID.2ID.1ID.0RTRDLC.3DLC.2DLC.1DLC.0TX数据1~8发送数据字节1~8
本实验中用到P89C668的外部中断1。该中断由SJA1000引发,设置为当SJA1000收到来自另一节点的数据时,向P89C668发出中断信号。在中断处理程序中,P89C668读取并保存SJA1000中断寄存器的值,作为在相应程序中进行处理的依据。
4.2 TCP/IP协议
由于TCP/IP协议很复杂,涉及的内容很多。下面仅就几点作简要介绍。
(1)封装和分层的概念
发送数据时要对数据进行逐层封装,既加上相应的首部,作为所经过每层的标识。具体原理如图3所示。
什么原因引起糖尿病胃轻瘫腹胀更年期痛经的原因
淤青不退有几种原因
总是肝痛怎么办
儿童感冒止咳药哪个效果好