本节主要描述控制器的软件部分。控制器的硬件平台是以STM32为核心设计
的,在此硬件平台基础上,采用了Keil }Vision5集成开发平台以及ST公司提供的
V3.5.0版本的STM32库文件系统进行软件设计,开发语言为C语言。
初始化模块完成软硬件的初始化。硬件初始化包括GPIO, CAN, USART,
ADC和FLASH等模块供其他部分使用。其中CAN和USART作为通信接口供调
试和操作夹持器使用,FLASH模块则用来保存夹持器参数,ADC模块用来采集传
感器信息。
通信模块分为两部分:CAN通信和串口通信。CAN总线是多主多从的总线,
因此CAN通信模式下,需要判断报文的来源。控制器接收到CAN报文后,先根
据CAN报文的帧类型、ID和报文长度判断接收的报文是否为上位机报文。判断报
文参数是否正确,参数错误则产生错误报文,正确则更改参数并发送反馈信息给
上位机。若更改的信息是夹持器开合度,则启动控制软件。在串口模式下,则可
以更改一下CAN通信的基本信息如CAN报文的帧类型、ID和通信波特率。因为
不知道这些信息就无法通过CAN总线与夹持器通信,故而上位机也无法通过CAN
总线修改夹持器ID和CAN波特率,为方便使用增加了串口模块。
控制模块包括步进电机加速部分,传感器采集部分和PID闭环控制部分。步
进电机加速部分根据夹持器设定生成加速曲线。根据速度加速方式((S型或梯形)、
速度以及运动距离,确定步进电机的运行轨迹。运行轨迹包含位置时间关系,供
PID闭环模块作为设定值使用。传感器采集部分通过软件滤波进一步提高数据精度,
同时将行程传感器数据转化成对应的夹持器开合度,以供其他模块使用。PID闭环
模块通过将传感器传来的实际位置与预期位置做比较进行PID调节进一步提高精
度。
|