0 引言
當(dāng)前,,步進(jìn)電機(jī)已經(jīng)在工業(yè)應(yīng)用,,如自動(dòng)剝線(xiàn)機(jī)、工業(yè)機(jī)器人,、雕刻機(jī),、植毛機(jī)工作臺(tái)等涉及到精確定位的場(chǎng)合,得到廣泛的應(yīng)用,。常用的步進(jìn)電機(jī)控制系統(tǒng)由驅(qū)動(dòng)模塊和控制器模塊組成,。驅(qū)動(dòng)模塊實(shí)現(xiàn)功率放大,控制器模塊用于產(chǎn)生電機(jī)轉(zhuǎn)動(dòng)的控制信號(hào),,上述控制方法將會(huì)大量占用控制核心的資源,,影響控制系統(tǒng)的實(shí)時(shí)性及靈活性。本文設(shè)計(jì)的步進(jìn)電機(jī)驅(qū)動(dòng)器,,將控制電路和驅(qū)動(dòng)模電路集成在同一個(gè)模塊上,,減少系統(tǒng)中主控核心的負(fù)擔(dān),提高系統(tǒng)的實(shí)時(shí)性,、可靠性,,可以使系統(tǒng)設(shè)計(jì)變得更加靈活、方便,。
1 CAN中繼器硬件的設(shè)計(jì)
1.1 系統(tǒng)的硬件結(jié)構(gòu)
本文設(shè)計(jì)的基于CAN總線(xiàn)的一體化兩相步進(jìn)電機(jī)驅(qū)動(dòng)器系統(tǒng)框圖如圖1所示,,包括CAN收發(fā)器L9616、MCU STM32F103C6,、光耦隔離,、驅(qū)動(dòng)芯片SLA7033M、溫度傳感器和D/A轉(zhuǎn)換,。CAN收發(fā)器L9616接收主控核心發(fā)送過(guò)來(lái)的幀數(shù)據(jù)包后,,再把數(shù)據(jù)包發(fā)送給MCU,。STM32F103C6是一體化步進(jìn)電機(jī)驅(qū)動(dòng)器的核心,負(fù)責(zé)對(duì)CAN收發(fā)器L9616傳送過(guò)來(lái)的數(shù)據(jù)包進(jìn)行解析,,同時(shí)做出相應(yīng)的操作,生成對(duì)應(yīng)的驅(qū)動(dòng)信號(hào)和轉(zhuǎn)動(dòng)方向,;另一面MCU控制高精度D/A轉(zhuǎn)換器,,經(jīng)D/A轉(zhuǎn)換輸出的電壓送給驅(qū)動(dòng)芯片SLA7033M,使SLA7033M輸出電流恒定,,同時(shí)在SLA7033M的輸出端加入采樣電阻,,MCU實(shí)時(shí)監(jiān)控SLA7033M的輸出電流,當(dāng)輸出電流大于閾值時(shí),,關(guān)閉驅(qū)動(dòng)信號(hào),,保護(hù)芯片SLA7033M;另外MCU還對(duì)加在芯片SLA7033M上面的散熱器進(jìn)行溫度實(shí)時(shí)監(jiān)控,,當(dāng)散熱片上的溫度超過(guò)預(yù)設(shè)值時(shí)關(guān)閉驅(qū)動(dòng)信號(hào),,起保護(hù)SLA7033M的作用。MCU對(duì)SLA7033M的輸出電流進(jìn)行采樣以及對(duì)溫度實(shí)時(shí)監(jiān)控,,有效地保護(hù)了SLA7033M,,使SLA7033M工作的壽命更加長(zhǎng),工作更加穩(wěn)定,。由于MCU輸出的信號(hào)屬于弱的信號(hào),,而SLA70 33M輸出的信號(hào)是大電壓大電流信號(hào),為了確保MCU正常工作,,采用光耦隔離,,使控制信號(hào)與驅(qū)動(dòng)信號(hào)分離,同時(shí)控制和驅(qū)動(dòng)兩部分的電路采用獨(dú)立的電源供電,,它們之間互不干擾,,信號(hào)通過(guò)光耦傳輸。
1.2 STM32F105微控制器
STM32F105是基于最新ARM V7.0內(nèi)核Cortex-M3的32位閃存微控制器,,這是一款專(zhuān)為嵌入式應(yīng)用而開(kāi)發(fā)的內(nèi)核,,帶有用于電機(jī)控制的PWM輸出,特別適合在電機(jī)控制場(chǎng)合的應(yīng)用,。STM32F10內(nèi)置CAN收發(fā)FIFO,,可以降低采用外置CAN控制器的成本以及提高系統(tǒng)的穩(wěn)定性。STM32F103具有較大容量的FLASH和RAM,,以及豐富的外設(shè),,因此采用STM32F103作為主控芯片可以方便地實(shí)現(xiàn)CAN數(shù)據(jù)收發(fā)、A/D轉(zhuǎn)換,、D/A轉(zhuǎn)換,、PWM輸出等,。
1.3 CAN收發(fā)電路
CAN收發(fā)器采用ST公司的L9616。終端匹配電阻采用跳線(xiàn)的方式供用戶(hù)安裝時(shí)自行選擇,。在差分信號(hào)線(xiàn)上并上瞬態(tài)抑制二極管,,可以起到對(duì)L9616的I/O的保護(hù)作用。光電隔離部分采用最高轉(zhuǎn)換速率可達(dá)10Mbit/s的高速光耦6N137,,電阻R2,、R5起到限流作用。VCC5_1是由DC/DC隔離電源單獨(dú)產(chǎn)生的5V電壓,。
1.4 電源電路
步進(jìn)電機(jī)采用5V供電,。用開(kāi)關(guān)穩(wěn)壓集成芯片LM2596代替?zhèn)鹘y(tǒng)的三段穩(wěn)壓器,僅需要極少的外圍器件即可構(gòu)成高效的穩(wěn)壓電路且不需加散熱片,。LM2576產(chǎn)生的5V電壓供給電機(jī)驅(qū)動(dòng)芯片,,主控CPU工作所需的3.3V電壓由LDO芯片LM1117-3.3產(chǎn)生。CAN收發(fā)電路單獨(dú)供電的DC/DC電路采用隔離電源模塊,,使驅(qū)動(dòng)器和和CAN總線(xiàn)接口實(shí)現(xiàn)完全的電氣隔離,。
1.5 光電隔離電路
連接在控制芯片與驅(qū)動(dòng)芯片之間的光耦隔離電路,主芯片負(fù)責(zé)產(chǎn)生驅(qū)動(dòng)芯片需要的控制信號(hào),。當(dāng)輸入端為高電平時(shí)光耦中的光敏二極管導(dǎo)通,,同時(shí)光敏三極管也導(dǎo)通,使對(duì)應(yīng)的輸出端也為高電平,。使用了光耦隔離,,使得驅(qū)動(dòng)電路的高壓電路與控制電路的低壓電路完全隔離,互不干擾,,提高了系統(tǒng)的抗干擾能力和穩(wěn)定性,。
1.6 SLA7033M驅(qū)動(dòng)電路
SLA7033M是高性能步進(jìn)電機(jī)集成功率放大器,該芯片由參考電壓電路,、觸發(fā)脈沖產(chǎn)生電路,、電壓比較放大電路、電流控制電路,、激勵(lì)信號(hào)放大電路,、電動(dòng)勢(shì)補(bǔ)償電路等組成。INA,、Ina,、INB、INb為四個(gè)驅(qū)動(dòng)信號(hào)輸入端,,OUT/a,、OUTa、OUT/b,、OUTb為四個(gè)驅(qū)動(dòng)信號(hào)輸出端,,在輸出端接二相步進(jìn)電機(jī)作為負(fù)載,。VREF為經(jīng)過(guò)D/A轉(zhuǎn)換后的基準(zhǔn)電壓輸入端,通過(guò)調(diào)整D/A的輸出基準(zhǔn)電壓,,即可調(diào)整驅(qū)動(dòng)器的輸出電流的大小,。電阻R11、R12為電流檢測(cè)電阻,,當(dāng)主控芯片檢測(cè)到該電阻上的電壓超過(guò)閾值時(shí),,重新調(diào)整輸出的電流大小,使輸出電流不能超過(guò)最大值,,以保護(hù)驅(qū)動(dòng)芯片SLA7033M。
2 CAN中繼器軟件的設(shè)計(jì)
程序開(kāi)始時(shí)先初始化各個(gè)輸出端口以及各個(gè)相關(guān)的外設(shè)模塊,。程序以模塊化進(jìn)行設(shè)計(jì),,主程序只需循環(huán)檢測(cè)相應(yīng)的狀態(tài),當(dāng)對(duì)應(yīng)的狀態(tài)滿(mǎn)足要求時(shí)執(zhí)行相應(yīng)的操作,,使得程序簡(jiǎn)潔以及實(shí)時(shí)性更強(qiáng),。當(dāng)程序出現(xiàn)異常情況時(shí),異常處理程序檢查相應(yīng)的異常情況,,判斷是哪些情況出現(xiàn)異常,,記錄相應(yīng)的情況,同時(shí)可以把異常情況打包成數(shù)據(jù)發(fā)送到CAN總線(xiàn),,方便主控核心進(jìn)行異常情況的分析及處理,。無(wú)異常情況則檢查是否有數(shù)據(jù)包的標(biāo)志位,假如有數(shù)據(jù)包,,則數(shù)據(jù)包處理程序?qū)?shù)據(jù)包進(jìn)行分析,,并進(jìn)行相應(yīng)的操作。數(shù)據(jù)包處理程序具有識(shí)別是發(fā)送數(shù)據(jù)包還是接收到的數(shù)據(jù)包,,如果是發(fā)送數(shù)據(jù)包,,則把相應(yīng)的數(shù)據(jù)包經(jīng)過(guò)處理生成標(biāo)準(zhǔn)報(bào)文幀格式,隨后經(jīng)過(guò)CAN收發(fā)器發(fā)送幀數(shù)據(jù)給主控核心,;如果接收到的數(shù)據(jù)包則要對(duì)該數(shù)據(jù)包進(jìn)行解析,,按照標(biāo)準(zhǔn)報(bào)文幀格式進(jìn)行提取相應(yīng)的數(shù)據(jù),以及對(duì)相應(yīng)的數(shù)據(jù)進(jìn)行處理,,假如收到的數(shù)據(jù)里的ID和該設(shè)備號(hào)ID一致,,表明是該設(shè)備的數(shù)據(jù),即對(duì)該設(shè)備進(jìn)行操作,;反之,,表明不是該設(shè)備的數(shù)據(jù),則對(duì)收到的數(shù)據(jù)不處理,,同時(shí)推出數(shù)據(jù)包處理程序,。主程序假如沒(méi)有數(shù)據(jù)包處理或者數(shù)據(jù)包處理程序完成則檢查溫度是否超過(guò)預(yù)設(shè)值,,假如已經(jīng)超過(guò)預(yù)設(shè)的值,則執(zhí)行超溫處理程序,;假如沒(méi)有超溫則往下執(zhí)行,。當(dāng)沒(méi)有超溫或者超溫處理程序完成后查詢(xún)電流是否超過(guò)預(yù)設(shè)值,假如已經(jīng)超過(guò)了輸出電流的預(yù)設(shè)值則執(zhí)行調(diào)整輸出電流程序,,對(duì)輸出電流輸出調(diào)整,,即對(duì)D/A的輸出值進(jìn)行調(diào)整,使輸出電流減少,;若沒(méi)有超過(guò)輸出電流的預(yù)設(shè)值則返回檢查異常情況,,程序進(jìn)行循環(huán)檢測(cè)。
3 結(jié)束語(yǔ)
文采用了以高性能的ARM處理器STMF103為一體化步進(jìn)電機(jī)主控CPU,,SLA7033M作為驅(qū)動(dòng)芯片,,將控制電路和驅(qū)動(dòng)模電路集成在同一個(gè)模塊上,,減少系統(tǒng)中主控核心的負(fù)擔(dān),,提高系統(tǒng)的實(shí)時(shí)性、可靠性,,有一定的社會(huì)效益和廣泛的推廣價(jià)值。