·上一文章:城乡便捷巴士运营状态自动监测系统
·下一文章:自动检测技术在汽车安全系统中的应用
由于单片机的输出电流比较弱,难以驱动光电隔离器,为保险起见,信号输入光偶前要经过74HC573锁存;同样为了增加信号驱动能力,经过隔离的信号要再次经过74HC573锁存。
使用该单片机,无须扩展CAN总线模块,简化了硬件设计,提高了运行效率。
3.3 软件实现
PIC18F258的CAN模块带有众多控制和数据寄存器,为方便起见,可以将它们做以下分类:
〇控制和状态寄存器
〇发送缓冲寄存器
〇接收缓冲寄存器
〇波特率控制寄存器
〇I/O控制寄存器
〇中断标志和控制寄存器
CAN模块可工作于6种模式下,配置模式,禁止模式,正常工作模式,监听模式,自循环模式,错误识别模式。本系统涉及到了2种模式,配置模式和正常工作模式。
首先在配置模式下将控制和状态寄存器,波特率控制寄存器,I/O控制寄存器,中断标志和控制寄存器,接收掩码器和接受滤波器按照系统要求设定好,以保证CAN总线畅通。这些寄存器只能在配置模式下进行设定。设定完毕后,进入正常工作模式。上位机和下位机都将各自的CAN接收中断打开,等待CAN总线传送来的数据。所不同的是,上位机只在需要进行人工干预的情况下,向总线发送控制信号;而下位机是循环向总线发送采集到的信息的。
图4是CAN模块发送数据的程序流程图:
CAN模块数据接收是通过中断方式实现的,即每传来一个报文,就发生一个中断,然后将收到的数据从接收寄存器中转移到指定的存储区域内并保存起来 ,最后中断返回。