在舞臺機械設備中,吊桿起著(zhù)重要的傷腦筋。在大型的影劇院,一場(chǎng)演出往往需要調動(dòng)大量的舞臺背景,有時(shí)要控制多達64路的吊桿同時(shí)動(dòng)作。操作人員要在現場(chǎng)不斷變換舞臺背景,控制室人員要不斷地和現場(chǎng)人員進(jìn)行協(xié)調,這給舞臺控制帶來(lái)了很大不便。對吊桿的集中控制、實(shí)時(shí)響應來(lái)自多路的請求及吊桿位置的精確定位是設計中要解決的三個(gè)關(guān)鍵問(wèn)題。目前的舞臺控制系統大都通過(guò)采用光電編碼盤(pán)產(chǎn)生脈沖信號的方式來(lái)獲取吊桿的移動(dòng)距離,并直接用單片機進(jìn)行計數和控制。這種方法在響應多路請求時(shí),往往會(huì )因為單片機任務(wù)繁重而造成計數脈沖丟失,引起測量誤差。綜上所述,本文提出了用CYGNAL單片機和FPGA設計舞臺吊桿控制器的方法。 1 舞臺吊桿控制系統的組成及工作原理 舞臺吊桿控制系統主要由遠程控制端(PC機)、舞臺吊桿控制器、現場(chǎng)設備、LCD顯示器等組成,如圖1所示。 系統采用分布式結構。遠程控制端作為管理機,負責管理和協(xié)調現場(chǎng)設備,通過(guò)局域網(wǎng)使用UDP/IP協(xié)議發(fā)送控制指令并采集現場(chǎng)數據;舞臺吊桿控制器作為終端,接收遠程控制端送來(lái)的指令,并根據接收到的控制命令控制現場(chǎng)設備動(dòng)作,采集到現場(chǎng)數據后把數據以UDP格式打包送給遠程控制端,以便 遠程控制端實(shí)時(shí)進(jìn)行現場(chǎng)監控。同時(shí)為使現場(chǎng)能夠觀(guān)察到單個(gè)設備的運行情況。還把這些數據通過(guò)串口送給現場(chǎng)LCD顯示器。 2 舞臺吊桿控制器的硬件設計 在整個(gè)控制系統中,舞臺吊桿控制器是設計的關(guān)鍵,它的功能有兩個(gè):其一,接收與發(fā)送UDP數據包,解析數據包并轉化成FPGA控制器能夠識別的格式。其二,接收FPGA控制器送來(lái)的現場(chǎng)信息。 2.1 舞臺吊桿控制器的硬件組成及工作原理 舞臺吊桿控制器主要由C8051F020單片機、FPGA控制器、LCD顯示器、E2PROM存儲器、RTL8019網(wǎng)卡芯片和JTAG程序下載及調度接口等組成。其硬件組成框圖如圖2所示。 工作原理如下:C8051F020單片機通過(guò)RTL8019網(wǎng)卡芯片接收遠程控制端送來(lái)的UDP格式的控制命令數據包,從該控制命令數據包解析出控制指令,傳輸給FPGA控制器。FPGA控制器根據控制指令控制現場(chǎng)設備動(dòng)作,并且把相關(guān)的現場(chǎng)數據返回給單片機。單片機把這些現場(chǎng)數據存入E2PROM中作為備份數據,同時(shí)送給LCD顯示器,并打成UDP數據包通過(guò)網(wǎng)卡芯片發(fā)送給遠程控制端。下面主要介紹單片機控制系統和FPGA控制器的設計。 2.2 單片機控制系統 單片機控制系統主要由C8051F020單片機組成,主要完成數據的接收與處理。C8051F020的特點(diǎn)是運算速度快、集成度高、引腳可配置、工作穩定和可靠性高。它完全能夠滿(mǎn)足舞臺吊桿控制器對存儲器容量、多種總線(xiàn)接口、處理速度和浮點(diǎn)運算等方面的要求。 C8051F020單片機有UART0和UART1兩個(gè)串口,其中,串口UART0與LCD顯示器連接,用于把舞臺吊桿運行時(shí)的位置數據送給LCD顯示器。單片機利用它的SMBUS接口連接帶有I2C總線(xiàn)接口的E2PROM(FM24C64鐵片存儲器),把現場(chǎng)數據存入存儲器,以備在掉電后得新上電時(shí)能夠讀出吊桿的當前位置,連續控制吊桿的運動(dòng);同時(shí)利用它的普通I/O口與網(wǎng)卡芯片RTL8019和FPGA控制器相連,實(shí)現數據的收發(fā)。 2.3 FPGA控制器的設計 FPGA控制器是利用EDA方法實(shí)現的,主要用 于對霍爾傳感器過(guò)來(lái)的脈沖進(jìn)行計數并控制電機。由于吊桿運動(dòng)過(guò)程中產(chǎn)生的脈沖頻率高,FPGA控制器計數量大,所以本設計選擇了高容量、高性能的可編程邏輯器件,即ALTERA公司的FLEX 10K系列FPGA。 2.3.1 FPGA控制器的模塊劃分 根據系統功能要墳,FPGA控制器的頂層模塊被劃分為以下四個(gè)模塊:兩個(gè)5-32譯碼器、八路與門(mén)模塊、八路16位可逆并行計數模塊、電機控制模塊,如圖3所示。 兩個(gè)5-32譯碼器模塊的功能是提供與單片機的接口,實(shí)現可編程接口邏輯。八路計數模塊(COUNTER8_FILE_LAST模塊)包括八個(gè)單路計數模塊、數據轉換模塊等,其功能是對霍爾傳感器過(guò)來(lái)的八路脈沖信號進(jìn)行可逆計數并完成16位數據與8位數據之間的轉換。由于C8051F020單片機的數據長(cháng)度是8位,而計數模塊完成的是16位墳數,所以必須進(jìn)行數據位數的轉換。 2.3.2 FPGA模塊的功能仿真 FPGA控制器是用ALTERA公司的FLEX10K10芯片,在MAX+PLUSII軟件中進(jìn)行設計綜合的。根據上述的模塊劃分,在MAX+PLUSII中的仿真波形圖如圖4所示。 3 舞臺吊桿控制器的軟件設計 舞臺吊桿控制器的軟件主要包括:主程序、UDP數據的傳輸與解析程序、串口數據的發(fā)送程序、數據存儲程序等。 3.1 通信協(xié)議設計 在舞臺吊桿控制系統中,遠程控制端通過(guò)局域網(wǎng)采用UDP/IP協(xié)議給舞臺吊桿控制器發(fā)送命令并接收來(lái)自控制器的數據包。UDP/IP數據包的格式如下: IP HEADER(20 Bytes) UDP HEADER(8 Bytes) UDP DATA(Variable Length) 在使用該協(xié)議時(shí),命令信息和狀態(tài)數據都在UDP DATA數據區。為了完成控制目的,必須對這塊數據區的數據制定協(xié)議,協(xié)議格式如表1所示。 表1 協(xié)議格式 命令號 輔命令/錯誤號 上行方向位 下行方向位 功能號 位置數 1Byte 1Byte 2Byte 2Byte 8Byte 4Byte 3.2 主程序設計 主程序主要完成單片機和各個(gè)功能模塊的初始化、對各個(gè)功能模塊的調用以及對FPGA控制器的控制。由于篇幅關(guān)系,只給出主程序的流程圖,如圖5所示。 4 可靠性設計 4.1 電機慣性引起誤差的補償方法 在電機拖動(dòng)系統中,要考慮電機的慣性問(wèn)題以便及時(shí)進(jìn)行誤差補償。目前系統中,大都利用一次或二次函數來(lái)近似電機的慣性量。而本系統則采用在遠程控制端人工輸入補償系數Q的方法來(lái)實(shí)現誤差補償。這里的補償系數Q的測量可在排演時(shí)進(jìn)行。 系統工作時(shí),遠程控制端需設定路標要運行到的位置,即計數終值和誤差補償系數。當接收到補償系數測量命令時(shí),控制系統將開(kāi)始測量補償系數Q。這里假設輸入終止位置值為S1,實(shí)際終止位置值為S2,那么Q=(S2-S1)/S1%26;#215;100%(由于慣性的緣大處著(zhù)眼,S2>S1)。接著(zhù)控制系統把這個(gè)誤差補償系數Q送回給遠程控制器,并且存入存儲器中。在吊桿實(shí)際運動(dòng)時(shí),控制系統都會(huì )對輸入值進(jìn)行誤差補償,即:實(shí)際運行終止值S=輸入值S1-輸入值S1%26;#215;Q。用此方法得到的電機慣性量非常精確。 4.2 系統的抗干擾設計 為了保證舞臺吊桿控制器能夠長(cháng)期可靠地運行,系統在硬件和軟件兩方面采取了有效的抗干擾措施。其中硬件方面主要采取了3.3V電源和5V電源隔離(它們與電磁隔離)、“看門(mén)狗”等方法。通過(guò)電源隔能夠有效地防止電源電平不穩和其它電器對控制器的干擾,保證了系統的穩定性;通過(guò)“看門(mén)狗”能保證程序的正常運行,保證了系統的可靠性。軟件方面采取了軟件陷阱等方法。 行前研制的大規模舞臺控制系統使用8044單片機完成數據處理及計數功能,通過(guò)BitBusU總線(xiàn)完成通信功能。由于單片機的任務(wù)非常繁重,在實(shí)際應用中經(jīng)常出現脈沖丟失以及系統相應速度慢的問(wèn)題。而本設計采用了EDA技術(shù),將舞臺吊桿控制器用CYGNAL單片機和FPGA實(shí)現,并且UDP/IP協(xié)議實(shí)現局域網(wǎng)內的通信,解決了上述問(wèn)題。舞臺控制系統現場(chǎng)應用表明,該吊桿控制器性能完全達到了要求。 |