一款基于STM32的贴片机控制系统设计与实现

时间:2014-05-21来源:网络

2.2 电源电路

电源电路采用AMS1117—3.3作为电压转换芯片。AMS1117是一款正电压输出低压差的三端线性稳压电路,在输出1 A电流时,输入输出的电压差典型值为1.8 V,内部集成过热保护和限流电路,确保芯片和电源系统的稳定性。

该电路输入端与输出端各接1个0.1μF的非极性独石电容和1个220μF的极性电容。这两组电容起到了稳压滤波的作用。

2.3 串口电平转换电路

串行接口是嵌入式系统中较为常用的一种接口。本系统采用RS-232总线于上位机进行通信,采用MAX232芯片来完成RS-232串行接口的电平转换。串口通信电路如图8所示。

 

 

2.4 步进电机驱动电路

步进电机必须有驱动器和控制器才能正常工作。驱动器的作用是对控制脉冲进行环形分配、功率放大,使步进电机绕组按一定顺序通电,控制电机转动。本设计采用DM442数字式步进电机驱动器。该驱动器可以设置512内的任意细分以及额定电流内的任意电流值,能够满足大多数场合的应用需要。电路连线如图9所示。

 

 

通过步进电机驱动器控制步进电机的方法较为简单,仅需通过单片机IO口给出不同频率的方波脉冲信号即可控制步进电机的速度,通过另一个IO口给出高低电平控制电机旋转方向。本文所采用的步进电机步距角为1.8°,因此驱动器每接收200个脉冲信号,步进电机旋转一周。

3 运动控制系统软件设计

下位机控制程序由串口收发程序,限位开关检测程序,舵机驱动程序、步进电机驱动等部分组成。下面将对舵机驱动和串口收发部分做详细的介绍。

3.1 舵机驱动程序

根据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进行校验。

 

1 2 3

关键词: STM32 STM32F103RBT6

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

或用微信扫描左侧二维码

相关文章

查看电脑版