基于arm的舞臺電腦燈步進(jìn)電機(jī)控制研究
任慧,蔣偉,袁闊,劉 榮
(中國傳媒大學(xué)自動化系,北京100024)
摘要:舞臺電腦燈能夠在舞臺上創(chuàng)建具有震撼力的燈光效果,是現(xiàn)代舞臺、劇場等娛樂場所不可缺少的智能燈具。針對傳統(tǒng)的51單片機(jī)電腦燈控制系統(tǒng)的不足,提出了嵌入式linux的arm處理器作為電腦燈的控制核心,根據(jù)舞臺劇情設(shè)置步進(jìn)電機(jī)驅(qū)動程序,自動對電腦燈步進(jìn)電機(jī)進(jìn)行控制,實現(xiàn)了舞臺電腦燈所完成的功能。
關(guān)鍵詞:舞臺電腦燈;嵌入式lmux;步進(jìn)電機(jī);驅(qū)動電路
中圖分類號:tm383. 6 文獻(xiàn)標(biāo)志碼:a 文章編號:1001-6848(2010)03-0098-03
0引 言
傳統(tǒng)的電臆燈的控制方法采用單片機(jī)控制步進(jìn)電機(jī),但由于單片機(jī)的系統(tǒng)贅源、運算速度和存儲空間的限制,每個單片機(jī)控制的步進(jìn)電機(jī)的數(shù)量較少,而每臺電腦燈往往需要很多步進(jìn)電機(jī)。arm憑借豐富的系統(tǒng)資源和更高的運算速度,更適于作為電腦燈步進(jìn)電機(jī)的微處理器,一個arm可以控制更多的步進(jìn)電機(jī)。而嵌入式的linux系統(tǒng)負(fù)責(zé)嵌入式系統(tǒng)的全部軟、硬件資源的分配、調(diào)度,它在實時性、硬件的相關(guān)依賴性、軟件固化以及應(yīng)用的專業(yè)性等方面具有較為突出的優(yōu)點,本文重點闡述嵌入式linux的步進(jìn)電機(jī)驅(qū)動程序的
設(shè)計[1]。
1 系統(tǒng)硬件電路設(shè)計
為了便于說明,本系統(tǒng)僅使用3臺步進(jìn)電機(jī)來控制。電腦燈控制臺送出dmx-512信號,arm電路板接收到該信號后進(jìn)行處理,轉(zhuǎn)換成相應(yīng)步進(jìn)電機(jī)的脈沖信號,使步進(jìn)電機(jī)實現(xiàn)相應(yīng)的動作,進(jìn)而實現(xiàn)電腦燈的動作。為了防止步進(jìn)電機(jī)出現(xiàn)漏步,與步進(jìn)電機(jī)同軸安置碼盤檢測步進(jìn)電機(jī)是否按要求準(zhǔn)確動作,如果出現(xiàn)諞步,通過偏差進(jìn)行調(diào)整。系統(tǒng)電路結(jié)構(gòu)如圖1所示。
1.1接口芯片a3972
本設(shè)計中選用兩相四線混合式步進(jìn)電機(jī)42bygh107,額定電流為0.4 a,步距角為1.80。采用的接口芯片是a3972,a3972是allegro公詞生產(chǎn)的一款雙dmos全橋微步距脈寬調(diào)制(pwm)步進(jìn)馬達(dá)驅(qū)動集成電路,利用cpu通過3線(時鐘、數(shù)據(jù)、選通)串行接口對其進(jìn)行控制,可設(shè)置步進(jìn)電機(jī)的運轉(zhuǎn)方向及各種不同的步進(jìn)法(從微步距到全步驅(qū)動),對步進(jìn)電機(jī)的轉(zhuǎn)矩控制具有很大的靈活性[2,3]。
1.2步進(jìn)電機(jī)9200muio使用配置
本系統(tǒng)中,3個步進(jìn)電機(jī)接口芯片的a3972里的串行接口的3個引腳ste(使能信號端)、clk(時鐘信號端)、data(數(shù)據(jù)輸入信號端)分別與at91rm9200的gpio口相連,對應(yīng)關(guān)系如表l所示,at91rm9200處理器的pao,pa1,pa2接步進(jìn)電機(jī)1接口芯片的三個引腳,pa3,pa4,pa5接步進(jìn)電機(jī)2接口芯片的三個引腳,pa18,pa19,pa20接步進(jìn)電機(jī)3接口芯片的三個引腳。
2嵌入式linux步進(jìn)電機(jī)驅(qū)動
linux將所有的設(shè)備看作具體的文件,通過文件系統(tǒng)層對設(shè)備進(jìn)行訪問。所以在lmux的框架結(jié)構(gòu)中,與設(shè)備相關(guān)的處理可以分為兩個層次,即文件系統(tǒng)層和設(shè)備驅(qū)動層。設(shè)備驅(qū)動層屏蔽具體設(shè)備的細(xì)節(jié);文件系統(tǒng)層則向用戶提供一組統(tǒng)一的規(guī)范的用戶接口。這種設(shè)備管理方法可以很好的做到“設(shè)各無關(guān)性”,可以根據(jù)外設(shè)的更新進(jìn)行方便的擴(kuò)展。整個設(shè)備管理子系統(tǒng)的結(jié)構(gòu)如圖2所示。
2.1步進(jìn)電機(jī)主要驅(qū)動程序設(shè)計
首先定義gpio口,初始化硬件,然后根據(jù)ch的值選擇不同的電機(jī),在這里我們使用3個電機(jī),ch的值來選擇控制3個通道中對應(yīng)的gpio來向
a3972傳數(shù)據(jù),從而控制不同的電機(jī)。在i從18 >o的19次循環(huán)里,控制clock_ pin模擬clk時鐘的一個周期,并用get_ bit獲取數(shù)據(jù)的第i位,賦
予data_ pin來傳遞給a3972,具體程序如下:
|