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