4 系统软件设计
4.1 CAN控制器软件设计
图5为CAN控制器的软件流程,其中系统初始化包括程序缓冲初始化、CAN控制器初始化、中断初始化、SOC外围I/O配置及SOC晶振配置等;判断冷热启动是防止在接收到有效发送请求帧后检测发送方式或发送请求丢失;判断是否接收是为配合主控制多传感器分时接收控制。单片机接收来自总线的横坡、纵坡监测值后,设置PWM脉宽,并输出方波。
4.2 系统通信软件设计
系统通信软件设计主要包括CAN初始化、数据的发送及接收3部分。初始化主要包括设置工作方式、接收滤波方式、接收屏蔽寄存器和接收代码寄存器、波特率参数和中断允许寄存器等。在初始化这些寄存器之前,必须确保系统进入复位状态。图6为系统通信软件流程。
发送子程序负责节点报文的发送。发送时,只需将待发送的一帧报文送入SJA1000发送缓冲区,然后启动SJA1000发送即可。在向SJA1000发送缓冲区发送报文之前,必须先判断发送缓冲区是否为空。
接收子程序负责节点子程序的接收和其他情况处理。在处理报文时,同时要处理一些情况,如总线关闭、错误报警等。单片机响应接收中断后读取SJA1000接收缓冲区数据并保存,再清空SJA1000接收缓冲器。
4.3 系统控制策略
由于平地机的平地精度与其行驶速度、发动机转速、负载力等诸多因素有关,因此难以建立精确的数学模型。为了对平地机实施实时控制,最好采用一种简便、快速且无需被控系统并具有精确的数学模型的控制方法。例如:模糊控制不要求被控对象有精确的数学模型,但单独使用模糊控制不易消除稳态误差,采用模糊控制与PID控制相结合,利用模糊控制实时修正PID参数,则可提高系统的控制精度和鲁棒性,并具有较好的实用性。
5 结束语
本文设计的平地机自动找平系统可使平地机按照操作员预先设定的纵坡及横坡值进行自动控制,从而实现平地机的自动操作,保证平地机按照设定值进行精确平整。该系统具有精度高、操作简单、效率高、节省材料和投资等优点。采用CAN总线通信方式使整个系统的结构更紧凑,系统更加可靠,更具有实用性,且易于系统及功能扩展。