·上一文章:基于MPXY8020传感器的TPMS系统设计分析
·下一文章:VxWorks下的异步通用定时器设计
3.2.2 扩展CAN通信电路
单片机与电机控制器采用CAN总线通信,CAN接口采用Philips公司的CAN物理层和链路层接口芯片SJA1000和PCA82C250。单片机直接控制SJA1000的AD0~AD7、ALE、INT引脚。SJA1000工作在Intel模式下,MODE脚接高电平,片选脚CS接地,始终处于选通状态。扩展CAN通信电路如图5所示。单片机对SJA1000的操作主要是对寄存器的操作:一方面,对SJA1000的模式寄存器、命令寄存器、状态寄存器、中断寄存器、中断允许寄存器、总线定时寄存器、输出控制寄存器、时钟分频计数器进行设置和检测;另一方面,对收发缓冲区进行读写,从而和CAN设备交换数据。
3.3 控制系统软件设计
自平衡机器人的控制系统需要实现以下功能:传感器信息处理和机器人姿态信息计算,电机控制PID算法实现和CAN口的数据处理。系统控制流程如图6所示。系统上电后从主函数开始执行。主函数负责初始化控制器的I/O口、CAN口、控制周期定时器、A/D转换器、各个中断接收数据和发送数据模块等。初始化完毕,控制周期定时器时间到后,传感器信息输入到A/D转换器中进行转换,计算机器人的倾倒角度和倾倒角速度;然后调用PID算法计算电机控制数据,并通过CAN口输出给电机驱动器。