基于CAN总线的车身电器控制系统网络实验台设计

时间:2010-08-03来源:网络

3 系统软件设计
任何CAN总线系统的通信协议都由物理层协议、数据链路层协议和应用层协议组成。SJAl000和PCA82C250的硬件结构保证了协议的物理层和数据链路层。对于应用层,在不同的应用领域,人们制定了不同的协议,包括CANopen、DeviceNet及SAE J1939等。应用层协议决定了CAN总线系统的可扩展性。将CAN应用层合理分配后应用于软件结构中可提高软件的兼容性。
本设计各类节点可将程序分为主程序和子程序。主程序的目的是监控本节点中各电器的状态,采用查询方式编程:子程序分为接收子程序和发送子程序,采用模块化编程,将节点的功能分成各种模块并形成文件,在编写各节点程序时直接调用各个模块程序函数即可。这里参考SAE J1939的编码规则对CAN系统的应用层进行分配,并介绍各节点的软件结构。
3.1节点主程序
上位机转换节点主程序的作用是:查询总线上的数据,并将依据CAN协议的数据转换为依据RS232电平标准的数据。图7为上位机转换节点流程:开关控制节点主程序用于查询开关的闭合或断开状态并将开关状态存储到单片机的寄存器中。图8所示为开关控制节点的程序流程,其车灯控制节点主程序用于查询CAN总线上的数据以控制相应的电器。图9所示为车灯控制节点的程序流程,其车门控制节点既要查询开关的状态存人单片机,又要查询CAN总线的数据控制相应的电机,其主程序包含开关控制节点和车灯控制节点主程序的功能。


3.2 节点子程序
接收子程序的作用是将CAN总线上传来的数据存储到单片机中合适的位置,需要用时,CPU直接从该位置查询即可。在运行接收函数前,需先检查CAN控制器SJAl000的寄存器中是否有传来的数据,如果有则运行此程序;如果无,则放弃或继续查询。发送子程序的作用是将所要发送的数据包装并发送到CAN控制器。在主程序中,系统不断查询SJAl000的状态,一旦空闲,CPU将待发送的数据发送到CAN控制器。

4 结束语
通过对基于CAN总线的车身电器控制系统的整体优化设计,得出结论:对车身节点进行优化后,资源得到合理使用,并增强了节点的实用和美观性,使节点的接口电路设计更加灵活。本方案侧重于对实验台实用性的改进。通信过程中存在的干扰、基于时间触发的CAN(即TTCAN)的应用问题尚待进一步的研究。

1 2 3

关键词: CAN 总线 车身 电器控制

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版