表1; 发送缓冲区寄存器
本实验中用到P89C668的外部中断1 。该中断由SJA1000引发,设置为当SJA1000收到来自另一节点的数据时,向P89C668发出中断信号 。在中断处理程序中,P89C668读取并保存SJA1000中断寄存器的值,作为在相应程序中进行处理的依据 。
4.2TCP/IP协议
由于TCP/IP协议很复杂,涉及的内容很多 。下面仅就几点作简要介绍 。
(1)封装和分层的概念
发送数据时要对数据进行逐层封装,既加上相应的首部,作为所经过每层的标识 。具体原理如图3所示 。接收到的数据是按一定结构封装好的,我们要根据前面的首部信息,判定数据应交付给下面哪一层,并将相应首部信息去除,这样依次向下传,到最后可以得到所传送的真正数据 。具体原理如图4所示 。
【CAN与以太网数据交换的研究与分析】 (2)以太网驱动程序
以太网驱动程序是提供链路层物理接口与网络层交互的软件接口 。网络层数据必须先交付给以太网驱动程序,由它将网络层数据打包交付给物理接口,完成数据发送 。反之,以太网驱动程序在接收到数据时,要按照应用层可以接收的形式进行处理并交付给网络层 。
(3)ARP协议
即地址解析协议,提供逻辑地址到物理地址的动态映射 。发送站必须知道接收站的物理地址才能对数据进行封装,才能在以太网中进行传输,因此只知道接收站的逻辑地址是不够的,必须事先通过ARP协议得到接收站的物理地址 。
(4)IP协议
即网络协议,提供一种不可靠的、无连接的服务,完成的功能有将运输层待发送数据封装成IP数据报,调用以太网驱动程序发送数据,从数据链路层接收数据,以及数据校验等 。
(5)TCP协议
即传输控制协议,是一种面向连接的、可靠的运输协议 。UDP协议实现相同功能,但它只把数据报分组从一台主机发送到另一台主机,不保证可靠性 。本文主要使用TCP协议进行数据交换,而没有采用UDP协议 。实验中用到P89C668的定时器0中断,10ms中断一次,主要为了进行ARP老化处理,设置TCP超时标志 。
4.3CAN与以太网的数据交换
数据交换原理简单说就是对从以太网中收到的数据进行分层 。假如是TCP数据报,取出真正的数据,并将其存入一个开辟的数据区,对数据进行相应分析后,按照BasicCAN模式进行发送 。反过来,将接收到的CAN数据存入另一数据区,除去地址和个数信息,将其余数据按照TCP/IP协议进行封装发送 。具体流程图如图5所示 。
由CAN接收引起外部中断后,保存SJA1000中断寄存器和状态寄存器的值,在CAN处理子程序中根据其值进行处理 。当上到来自另一节点的数据,则将该数据存入相应缓冲区,并置位一标志位,在主程序中的TCP超时处理子程序中判定该标志位,假如为高则将该缓冲区中的数据拷贝到以太网发送缓部眍中,并将数据封装发送 。当P89C668接收到来自以太网的TCP数据报,同样将一标志位置1,在CAN处理子程序(见图6)中,根据该标志位判定是否有数据要发送给另一节点 。
在具体调试时,使一个CAN节点每隔一段时间向转换模块发送一些数据 。该节点接收后,通过以太网转发给上位机,上位机通过超级终端显示接收的数据 。同样,可以通过超级终端发送一些键入的数据,经过转换模块传给另一个CAN节点,从而改变它的一些内部数据 。
5; 小结
该实验只是实现了以太网与BasicCAN模式下CAN的简单数据交换,没有涉及CAN的高层协议和复杂错误处理 。不过有了该实验的成功尝试,使实现PeliCAN模式下的转换以及加载完善的协议成为可能,可以说该实验为CAN和以太网的融合打下了坚实的基础 。
推荐阅读
- 交换机与配线架端口对应快速查找
- 朋友与小人的经典语录
- 视而不见,与瓦石无异翻译 视而不见与瓦石无意的翻译
- 网络交换机设备升级与选购指南
- 雅诗兰黛小棕瓶精华液功效与作用雅诗兰黛小棕瓶精华液功效与作用有哪些
- 如何提高言语理解与表达
- 个人与社会关系中的个人是指
- 交换机故障排查常见方法与分析原则
- 小米南瓜粥的功效与作用 小米南瓜粥对人有什么益处
- 闲聊怎么没有提醒声音