论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
2.1 主监控程序的设计
主监控程序负责对两路CAN控制器的接收FIFO缓冲区进行监视,如某一路缓冲区非空则向另一路转发。两路缓冲区的容量大小可采用不对称配置。采用这种不对称配置的一个好处在于可以将容量更大的缓冲区分配给通信任务更繁忙的一方,从而尽量避免缓冲区出现溢出。FIFO缓冲区共有两个指针:接收数据指针和发送数据指针。当两指针不相等时即证明缓冲区中存有有效数据。缓冲区接收数据指针的调整是通过接收中断子程序实现的,而发送数据指针的调整则通过发送子程序实现。在主监控程序中,还用到了一个请求状态标志,该标志在接收中断子程序中建立,用于中继器及时返回本身故障状态或响应上位机的状态查询命令。当该标志为1时,主监控程序会向上位机发送本身状态,并清除该标志。
2.2 接收中断子程序的设计
中继器接收中断子程序流程图如图2所示。在进入中断后,首先判断中断类型。若为错误警告中断,则进行相应处理并建立标志,若为接收中断则接收报文。在报文接收前,要根据接收报文的长度判断接收缓冲区是否会溢出。若会溢出,则判断是否为状态查询命令,是则置位请求状态标志,对于接收的其它报文则丢弃。若缓冲区不会溢出,则接收该报文。接收报文后取出命令字节,判断是否是中继器状态查询命令,若是则置位请求状态标志,不进行缓冲区参数调整(因为是上位机发送给中继器的命令,只要求中继器作出响应而不要求其转发,所以不能放入缓冲区中)。若不是中继器状态查询命令,则不作处理,只进行缓冲区参数调整,接收报文有效。随后进行释放CAN接收缓冲区、恢复现场和中断返回等工作。
(科教论文网 lw.nseaC.Com编辑发布)