您当前的位置:五五电子网电子知识单片机-工控设备综合-其它基于STM32F103的贴片机控制系统的设计与实现 正文
基于STM32F103的贴片机控制系统的设计与实现

基于STM32F103的贴片机控制系统的设计与实现

点击数:7640 次   录入时间:03-04 11:40:08   整理:http://www.55dianzi.com   综合-其它

    根据1.1.2中的介绍,舵机用来控制吸笔和拖拽针的运动,在单片机的控制中常用PWM(Pulse Width Modulation)调制来驱动它。脉冲宽度调制(PWM)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,其优越性在于驱动电子设备的简单性和计算机接口的容易性。在舵机控制系统中,输出的PWM信号通过功率器件将所需的电流和能量传送到舵机线圈绕组中,来控制舵机的正反转。

    STM32的定时器除了TIM6和TIM7,其他的定时器都可以用来产生PWM输出。其中高级定时器TIM1和TIM8可以同时产生多达7路的PWM输出。而通用定时器也能同时产生多达4路的PWM输出,这样,STM32最多可以同时产生30路PWM输出。由于只控制一个舵机,这里我们仅利用TIM3的CH2产生一路PWM输出。具体步骤如下:

    1)开启TIM3时钟,配置PA7为复用输出。

    2)设置TIM3的ARR和PSC,控制输出PWM的周期。

    3)设置TIM3_CH2的PWM模式。

    4)使能TIM3的CH2输出,使能TIM3。

    5)修改TIM3_CCR2来控制占空比。

    由于舵机所需的控制信号标准周期是20毫秒,最低不得少于15毫秒。中位脉冲宽度是1.5毫秒,脉冲宽度在加减1.5毫秒之间内变化。可控范围一般都是0.5~2.5毫秒。即控制舵机运行至两个机械极限位置的信号周期为0.5~2.5毫秒,对应占空比为2.5%-12.5%。本方案中舵机需保持在3个状态,分别是左极限,右极限和中间位置。用于控制拖拽针下移,吸笔下移和复位。

    因此,要控制舵机,首现需要一个频率为50赫兹的PWM波,然后调节其占空比为2.5%-12.5%。PWM输出频率的计算公式为:

基于STM32F103的贴片机控制系统的设计与实现

    这里系统时钟频率为72000000赫兹,所需PWM频率为50赫兹。为方便计算,同时保证自动重装载值和预分频系数均为整数,这里取自动重装载值为1000。计算得预分频系数为1440-1=1439。因此调用PWM初始化函数为:PWM_Init(1000,1439);

    PWM输出波形占空比计算公式为:

基于STM32F103的贴片机控制系统的设计与实现

    由此计算得到:

    左极限位置时TIM3->CCR2=25,

    右极限位置时TIM3->CCR2=125,

    中间位置时TIM3->CCR2=75。

    3.2 串口通信配置

    STM32的串口资源相当丰富的,最多可提供5路串口(STM32F103RBT6只有3个串口),有分数波特率发生器、支持同步单线通信和半双工单线通讯、支持LIN、支持调制解调器操作、智能卡协议和IrDA SIR ENDEC规范(仅串口3支持)、具有DMA等。

    STM32的串口配置需要开启串口时钟,并设置相应IO口的模式,配置波特率、数据位长度、奇偶校验位等信息。STM32的串口波特率计算公式如下:

基于STM32F103的贴片机控制系统的设计与实现

    上式中,FPCLKx是给串口的时钟;USARTDIV是一个无符号定点数。

    3.3 串口数据包格式设计

    表1为串口与单片机通信的数据包格式,每帧有9个字节,开始六个字节是包头标志、器件地址、数据类型、起始地址以及数据长度,其中数据类型有:读数据指令r(0x72)、预设参数w(0x77)、运动指令m(0x6D)、请求重发指令c(0x63)、正常返回指令b(0x62)和放弃通信指q(0x71)。然后是10个字节的数据位,通常数据位为2个4字节的数据,为了避免出现数据对齐问题,在后面加入两个值为0的字节。最后是两

    个字节的校验位和结束标志位,采用CRC16进行校验。

基于STM32F103的贴片机控制系统的设计与实现


www.55dianzi.com

    数据由上位机即PC主动发送,下位机即单片机被动等待接收,系统在每次上电初始化时进行一次握手,下位机在接收到的包头数据中匹配自己的器件地址,一致时则接收命令,否则将收到的数据包抛弃。当上层控制器向单片机发送读数据指令r(0x72)时,其数据位均为0;单片机收到指令后,将状态信息填入数据位,回发给上位机。当上位机向单片机发送预设参数w(0x77)数据包时,将参数信息填入相应数据位;单片机收到后,将数据写入EEPROM中并发送反馈,反馈帧以同样的类型、将存好的数据再次读出填入数据位,发送给上位机进行匹配校验。当上位机向单片机发送运动指令m(0x6D)时,将数据位按设定的格式填入数据位;单片机读取并按照指令内容进行运动。

基于STM32F103的贴片机控制系统的设计与实现

    单片机正确接收到除预设参数之外的数据时向主机回发正常返回指b(0x62);若收到上一组主机的数据后发现数据出错,则请求重发指令c(0x63),主机接收到此回应指令后执行重发操作;若连续通信错误并超过最大限制后则发送的放弃指令q(0x71)。因为不涉及有效数据,所以这三种指令的起始地址、数据长度、有效数据均为0。

    4 结束语

    本文根据目前贴片机市场上的应用现状,提出了低成本,小型化的设计方案。对贴片机整机的机械结构进行了优化设计。分别对贴片机的机械传动系统,机器视觉系统及运动控制系统给出了设计思路。针对运动控制系统,设计了具体的硬件与软件实现方案,并对整机工作过程进行详细说明。本文设计的贴片机运动控制程序经过调试,达到了预期目标,现已在学校实验室的应用中取得了不错的成果。



上一页  [1] [2] 


本文关键字:控制系统  贴片机  综合-其它单片机-工控设备 - 综合-其它