2.3、串口電平轉(zhuǎn)換電路
串行接口是嵌入式系統(tǒng)中較為常用的一種接口。本系統(tǒng)采用RS-232總線(xiàn)于上位機(jī)進(jìn)行通信,采用MAX232芯片來(lái)完成RS-232串行接口的電平轉(zhuǎn)換。串口通信電路如圖8所示。
圖8串口電平轉(zhuǎn)換電路
2.4、步進(jìn)電機(jī)驅(qū)動(dòng)電路
驅(qū)動(dòng)器的作用是對(duì)控制脈沖進(jìn)行環(huán)形分配、功率放大,使步進(jìn)電機(jī)繞組按一定順序通電,控制電機(jī)轉(zhuǎn)動(dòng)。本設(shè)計(jì)采用DM442數(shù)字式步進(jìn)電機(jī)驅(qū)動(dòng)器。該驅(qū)動(dòng)器可以設(shè)置512內(nèi)的任意細(xì)分以及額定電流內(nèi)的任意電流值,能夠滿(mǎn)足大多數(shù)場(chǎng)合的應(yīng)用需要。電路連線(xiàn)如圖9所示。
圖9步進(jìn)電機(jī)驅(qū)動(dòng)器連線(xiàn)圖
通過(guò)步進(jìn)電機(jī)驅(qū)動(dòng)器控制步進(jìn)電機(jī)的方法較為簡(jiǎn)單,僅需通過(guò)單片機(jī)IO口給出不同頻率的方波脈沖信號(hào)即可控制步進(jìn)電機(jī)的速度,通過(guò)另一個(gè)IO口給出高低電平控制電機(jī)旋轉(zhuǎn)方向。本文所采用的步進(jìn)電機(jī)步距角為1.8°,因此驅(qū)動(dòng)器每接收200個(gè)脈沖信號(hào),步進(jìn)電機(jī)旋轉(zhuǎn)一周。
3、運(yùn)動(dòng)控制系統(tǒng)軟件設(shè)計(jì)
下位機(jī)控制程序由串口收發(fā)程序,限位開(kāi)關(guān)檢測(cè)程序,舵機(jī)驅(qū)動(dòng)程序、步進(jìn)電機(jī)驅(qū)動(dòng)等部分組成。下面將對(duì)舵機(jī)驅(qū)動(dòng)和串口收發(fā)部分做詳細(xì)的介紹。
3.1、舵機(jī)驅(qū)動(dòng)程序
根據(jù)1.1.2中的介紹,舵機(jī)用來(lái)控制吸筆和拖拽針的運(yùn)動(dòng),在單片機(jī)的控制中常用PWM(PulseWidthModulation)調(diào)制來(lái)驅(qū)動(dòng)它。在舵機(jī)控制系統(tǒng)中,輸出的PWM信號(hào)通過(guò)功率器件將所需的電流和能量傳送到舵機(jī)線(xiàn)圈繞組中,來(lái)控制舵機(jī)的正反轉(zhuǎn)。
STM32的定時(shí)器除了TIM6和TIM7,其他的定時(shí)器都可以用來(lái)產(chǎn)生PWM輸出。其中高級(jí)定時(shí)器TIM1和TIM8可以同時(shí)產(chǎn)生多達(dá)7路的PWM輸出。而通用定時(shí)器也能同時(shí)產(chǎn)生多達(dá)4路的PWM輸出,這樣,STM32最多可以同時(shí)產(chǎn)生30路PWM輸出。由于只控制一個(gè)舵機(jī),這里我們僅利用TIM3的CH2產(chǎn)生一路PWM輸出。具體步驟如下:
1)開(kāi)啟TIM3時(shí)鐘,配置PA7為復(fù)用輸出。
2)設(shè)置TIM3的ARR和PSC,控制輸出PWM的周期。
3)設(shè)置TIM3_CH2的PWM模式。
4)使能TIM3的CH2輸出,使能TIM3。
5)修改TIM3_CCR2來(lái)控制占空比。
由于舵機(jī)所需的控制信號(hào)標(biāo)準(zhǔn)周期是20毫秒,最低不得少于15毫秒。中位脈沖寬度是1.5毫秒,脈沖寬度在加減1.5毫秒之間內(nèi)變化。可控范圍一般都是0.5~2.5毫秒。即控制舵機(jī)運(yùn)行至兩個(gè)機(jī)械極限位置的信號(hào)周期為0.5~2.5毫秒,對(duì)應(yīng)占空比為2.5%-12.5%。本方案中舵機(jī)需保持在3個(gè)狀態(tài),分別是左極限,右極限和中間位置。用于控制拖拽針下移,吸筆下移和復(fù)位。
因此,要控制舵機(jī),首現(xiàn)需要一個(gè)頻率為50赫茲的PWM波,然后調(diào)節(jié)其占空比為2.5%-12.5%。PWM輸出頻率的計(jì)算公式為:
這里系統(tǒng)時(shí)鐘頻率為72000000赫茲,所需PWM頻率為50赫茲。為方便計(jì)算,同時(shí)保證自動(dòng)重裝載值和預(yù)分頻系數(shù)均為整數(shù),這里取自動(dòng)重裝載值為1000。計(jì)算得預(yù)分頻系數(shù)為1440-1=1439。因此調(diào)用PWM初始化函數(shù)為:PWM_Init(1000,1439);
PWM輸出波形占空比計(jì)算公式為:
由此計(jì)算得到:
左極限位置時(shí)TIM3-》CCR2=25,
右極限位置時(shí)TIM3-》CCR2=125,
中間位置時(shí)TIM3-》CCR2=75。
3.2、串口通信配置
STM32的串口配置需要開(kāi)啟串口時(shí)鐘,并設(shè)置相應(yīng)IO口的模式,配置波特率、數(shù)據(jù)位長(zhǎng)度、奇偶校驗(yàn)位等信息。STM32的串口波特率計(jì)算公式如下:
上式中,fPCLKx是給串口的時(shí)鐘;USARTDIV是一個(gè)無(wú)符號(hào)定點(diǎn)數(shù)。
評(píng)論
查看更多