MODBUS/CANBUS现场通信网关CANBUS应用层设计包括CAN初始化,CAN发送程序,CAN接收程序。其中CAN的初始化包括以下内容:配置中断,设置CAN的Rx和Tx中断优先级,RX和TX中断使能。根据硬件连接配置GPIO,设置波特率及过滤器配置。 CANBUS数据的接收是通过接收邮箱(FIFO)中断进行处理的,当FIFO接收到一个新的报文时,过滤器根据预设的值判断报文的提示符是否匹配,若不匹配,直接丢弃该报文;若该报文的表示符与预设值匹配则中断程序将接收邮箱中的数据拷贝到数据缓冲区中,该数据作为MODBUS主站发往MODBUS从站的数据。CANBUS数据接收程序流程图如下所示:
CANBUS的数据发送同样适用邮箱机制,网关从数据缓冲区中获得从MODBUS接收的数据,设置标识符和数据长度,选择一个发送邮箱,使能发送邮箱空中断。因此该邮箱为空时产生一个中断,中断处理程序将数据从缓冲区拷贝到发送邮箱,该邮箱状态变为预定发送状态。
当CAN总线进入空闲状态,预定发送邮箱中的报文就马上被发送,进入发送状态。邮箱中的报文被成功发送后,它马上变为空邮箱。CANBUS数据发送程序流程图如下所示。
|