張偉,唐敦兵,周建華,楊俊,張澤群,仲太生
(1. 南京航空航天大學 機電學院,江蘇 南京 210016; 2. 江蘇揚力集團有限公司, 江蘇 揚州 225104)
?
基于ARM和FPGA的嵌入式伺服壓力機控制系統設計
張偉1,唐敦兵1,周建華1,楊俊1,張澤群1,仲太生2
(1. 南京航空航天大學 機電學院,江蘇 南京 210016; 2. 江蘇揚力集團有限公司, 江蘇 揚州 225104)
摘要:通過對曲柄滑塊伺服壓力機和伺服電機的工作原理進行分析,對伺服壓力機控制系統的軟硬件進行了選擇和設計,為伺服壓力機滑塊的精確控制提供了依據。設計了以S3C2440微處理器和FPGA為核心的控制器,構建了Linux+Xenomai的實時操作系統,并采用Qt/Embedded開發人機交互界面。控制系統功能完善,操作界面設計人性化。
關鍵詞:嵌入式系統;伺服壓力機;控制系統
0引言
隨著電子技術和數控技術的發展,促進了壓力機行業水平的提高和技術的進步。特別是在最近十多年,由于伺服控制技術的引進,徹底打破了傳統壓力機行業的發展,先后出現了液壓伺服壓力機、電動伺服壓力機、復合伺服壓力機、直接驅動伺服壓力機等多種形式的伺服壓力機[1]。其中直接驅動伺服壓力機采用伺服電機直接對滑塊進行驅動,可有效地控制壓力機滑塊的行程路徑、沖壓的速度和輸出力的大小。改善了壓力機的工作環境,拓寬了壓力機的使用范圍,適用于拉深、沖裁、彎曲、壓印、成形等多種不同的加工工藝。具有精度高、柔性好、效率高、噪聲低、環保性、復合性等特點,體現了現代鍛壓機床的一種發展趨勢[2]。
研究目標是以嵌入式技術為平臺,利用其軟硬件資源可定制的特性,開發高可靠性、低功耗、高性價比的嵌入式伺服壓力機控制系統。
1控制系統總體設計
伺服壓力機與傳統壓力機的最大區別在于,滑塊速度曲線的柔性規劃,并配合伺服電機中編碼器和位置傳感器等檢測器件形成閉環控制。可在一個沖壓周期內對滑塊速度進行規劃,針對不同材質、沖壓對象,設計不同的加工模式,其中伺服控制器的設計與伺服控制軟件的開發是整個伺服壓力機開發的核心。伺服壓力機控制系統主要由觸摸屏、操作面板、伺服系統控制器、伺服系統控制軟件、交流伺服電動機驅動器、交流伺服電動機、位置檢測傳感器等組成,如圖1所示。

圖1 伺服壓力機控制系統原理圖
目前控制系統大多采用PC機與運動控制卡相結合,使用通用操作系統,如windows操作系統。其優點在于能將PC機的開放性和信息處理能力與運動控制卡的運動處理特性相結合,但整個控制系統成本高、硬件資源浪費嚴重、功耗大[3]。以ARM9和FPGA組成運動控制器,向伺服電機驅動器提供控制指令,實現伺服壓力機的滑塊速度和位置的調節。以三星公司的S3C2440微處理器為核心構成系統主板,配合以FPGA為核心的擴展板,構成硬件平臺。基于Linux+Xenomai實時操作系統構建軟件運行平臺,選用Qt/Embedded為圖形界面開發工具,設計伺服壓力機的控制系統的人機交互界面。
2系統硬件設計
將嵌入式技術應用到伺服壓力機控制系統設計中的一大特點就是應用其靈活的可定制性,針對具體的應用對象,可設計與其性能要求相匹配的嵌入式系統硬件。在具體設計中,需要對整個伺服壓力機的控制需求進行詳細分析,以便使伺服壓力機控制系統具有良好的開發效率和應用性能。
在功能上,伺服壓力機控制系統應具備以下要求:
1) CPU應能夠搭載合適的嵌入式系統,滿足系統多任務和實時性的要求;滿足運行過程中高速運算和大量數據采集、傳輸的要求。
2) 人機交互接口,支持觸摸屏和操作面板,實現操作者對壓力機的控制。
3) 提供豐富的接口資源,如串口、USB、網絡接口以及各種標準總線接口,方便對外通信和系統開發初期調試。
4) 針對不同的加工對象和材料,控制伺服電機實現不同的加工工藝。
5) 系統能夠實時采集各種信號和數據,包括開關量信號、傳感器信號、伺服電機實時數據等,并及時對各種信號做出相應的處理。
6) 有足夠的存儲空間,以滿足嵌入式操作系統、控制系統程序和加工數據的存儲。
綜合考慮伺服壓力機控制系統的功能需求和高性價比的原則,對系統硬件進行了合理的選擇和設計,采用“核心板+擴展板”的模式,系統硬件總體結構如圖2所示。

圖2 控制系統硬件結構圖
2.1伺服控制器核心板
不同于傳統的嵌入式數控系統控制器采用上下位機雙CPU進行實時控制的模式,將主要的控制任務和運算放于核心板中的微處理器運行。核心板的主要任務包括運行操作系統、伺服壓力機控制系統程序、驅動觸摸屏、系統運行過程中數據和狀態的存儲、網絡通信等。
核心板主要包括的資源有,三星公司生產的ARM920T內核的S3C2440微處理器,主頻達到400 MHz,最高可達到533 MHz;64 M SDRAM,時鐘頻率為100 MHz;256 M NAND Flash和2M NOR Flash,支持掉電非易失;4線電阻式觸摸屏接口;DM9000網絡芯片(100M網口);豐富的外部接口資源,包括USB接口、串口、JTAG接口、電源接口、GPIO接口、系統總線接口、LED指示燈、按鍵等資源。這些豐富的資源,極大的方便了開發、調試、與擴展板通信、控制外部設備等。
其中JTAG接口為前期的硬件在線調試提供了方便,網絡接口為后期的驅動程序、伺服控制軟件等程序的在線調試以及伺服壓力機的網絡控制提供了可能,串口可作為操作系統的控制終端或者被用于同宿主機進行數據通信。操作系統映像文件、文件系統、伺服控制系統程序等最終被存儲于NAND Flash中,開機以后,操作系統映像文件被裝載到SDRAM中運行,隨后伺服控制系統也被裝載到SDRAM中運行。
2.2伺服控制器擴展板
伺服控制器擴展板以FPGA為核心,采用Altera公司的EP1C12Q240C8芯片,內部資源豐富,有12060個邏輯單元,173個具有獨立的三態輸出使能的I/O引腳,239616bit的RAM,并支持多種I/O標準。同時加以輔助的硬件電路,包括碼盤接口模塊、開關量輸入輸出處理模塊、電源模塊、D/A轉換模塊等,擴展板通過擴展總線接口同核心板進行通信。
為實現伺服控制系統的閉環控制,需要實時采集伺服電機驅動器中編碼器的反饋信號,驅動器輸出三對差分信號,A+/A-,B+/B-,Z+/Z-。首先經過26LS32構成的差分電路,將這三對差分信號轉換為單端信號A、B、Z,再經過74AHC14芯片構成的整形濾波電路,消除信號中的毛刺,最終被送到FPGA,經過四倍頻鑒向電路處理,將相差90°相位的編碼器返回信號轉換為計數脈沖信號和方向信號,其中計數結果被放置于FPGA中的一個可逆計數器中。可逆計數器的輸出即為編碼器當前的計數值,當系統需要讀取編碼器當前值時,只需要讀取相應的地址中的值即可。
3系統軟件設計
嵌入式伺服壓力機控制系統軟件設計主要涉及兩個部分,嵌入式實時操作系統的構建和控制系統功能模塊的設計。前者為后者提供開發和運行的環境,后者為整個控制系統提供了具體功能的實現,伺服壓力機控制系統軟件運行環境結構如圖3所示。

圖3 控制系統軟件運行環境結構圖
3.1伺服壓力機控制系統軟件主要特點
1) 多任務
整個伺服壓力機系統是個復雜的多任務系統,為了使整個系統功能更完善、處理速度更快、結構更加緊湊,對系統的軟件進行模塊化設計,主要分為管理模塊、伺服控制模塊、編程模塊和邏輯控制模塊,伺服壓力機控制系統任務模塊如圖4所示。

圖4 伺服壓力機控制系統軟件任務模塊圖
2) 并行性
系統運行過程中,各任務之間并行運行,因此需合理的分配各任務占用處理器的時間。采用嵌入式操作系統作為伺服壓力機控制系統的運行環境,可方便的利用操作系統的任務調度功能,通過操作系統的進程或者線程來實現各任務的并行運行。
3) 實時性
實時性是指系統能夠在指定的響應時間內提供所需的服務。整個伺服壓力機的控制系統的實時性由系統硬件和操作系統兩部分決定。由于核心板的微處理器正常主頻能到達400MHz,完全能滿足系統運行實時性的要求,故伺服壓力機控制系統的實時性主要受操作系統的影響。
3.2軟件系統運行環境的選擇和構建
由于伺服壓力機控制系統的多任務、并行性、實時性的要求,需要選擇一款功能強大的嵌入式實時操作系統。目前在嵌入式數控系統方面應用比較廣泛的操作系統主要有:
1) μC/OS-II是一種開源的實時多任務操作系統內核。它僅僅包含了一些基本功能,如任務調度、時間管理、任務間的通信和同步等,并沒有提供輸入輸出管理、文件系統、網絡等功能,這些功能的實現需要開發者自己實現。
2) VxWorks操作系統支持多任務調度,基于優先級搶占方式和同優先級任務間的時間片輪轉調度,因此能夠保證系統實時性,但其使用費用同樣昂貴。
3) WindowsCE是微軟公司開發的嵌入式操作系統,它經過模塊化設計、可伸縮性能好、通信功能強、實時性能出色、對硬件支持性好,但其商業版本需要付費。
4) Linux是一種自由的、源碼開放、基于POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統,存在著許多不同的Linux版本,其中常見的版本有Ubuntu、Debian、Mandrake、Red Hat Linux、SuSE、Linux Mint等。
文中所選用的嵌入式操作系統是嵌入式Linux系統,相較于其他系統,其主要特點是:源代碼開放、內核結構模塊化、廣泛的平臺支持和完善的技術支持等,這為構建伺服壓力機控制系統軟件的運行環境提供了相當大的優勢。
3.3Linux系統實時性的不足與改造
操作系統的實時性的衡量主要從三個方面考慮,系統響應時間、任務切換時間、中斷延遲時間。根據系統實時性要求的不同,操作系統被分為硬實時和軟實時兩種類型。硬實時要求操作系統對于事件的響應時間必須是確定的,而軟實時是指操作系統對于截止時間沒有強制的要求,不會給系統帶來致命的錯誤。標準的Linux內核設計的初衷是用于通用的操作系統,并沒有提供對硬實時的支持,其采用的調度策略是優先級與時間片相結合。標準的Linux實時性弱的原因在于非搶占式的內核、機會均等的調度策略、過長的中斷禁止時間、系統內核時鐘粒度比較粗糙、虛擬內存技術的使用等問題[4]。
目前對于Linux的實時性的改造主要有兩種思想,一種是直接修改內核,另外一種是使用雙內核[5]。根據應用對象的要求,對Linux內核中相應的實時性缺陷進行修改,有較大的修改工作量和開發難度,采用該方法的產品有Kurt-Linux、RED-Linux、Linux-SRT等。雙系統是指外擴一個用于實時功能的內核,通過硬實時操作系統來解決Linux系統調用和內核支持硬實時之間存在的矛盾。目前使用這種方法的設計有RTAI、RT-Linux、Xenomai等。它們都從不同的方面對標準Linux內核進行了實時性的支持,其中大多數都是通過提高時鐘精度、解決內核態不能搶占和封中斷等問題來解決。
在雙系統方面,由于RT-Linux的開源免費版只是提供了對于X86的硬件平臺,RTAI對于S3C2440A也不支持,因此選擇了平臺支持性更好的Xenomai。Xenomai通過Adeos機制構建了一個平行于Linux系統的是實時內核,Adeos是用來建立一個可擴展的操作系統自適應環境,在這個環境中,Adeos通過在一個已經存在的操作系統之下抽象出一個軟件層,該軟件層能夠使得多個操作系統共同使用硬件資源。在Adeos中,Xenomai和Linux都以域的形式存在,Linux作為根域為Xenomai提供基本的功能。Linux系統經實時化改造后的系統架構如圖5所示。

圖5 Linux+Xenomai實時操作系統架構圖
3.4主要功能模塊設計
a) 電機控制模塊設計
伺服電機驅動器有三種工作模式:位置模式、速度模式、轉矩模式。按照伺服壓力機的控制要求,對滑塊速度和位置都需要精確控制,所以需要選擇位置模式,但位置模式是驅動器運算最多、耗時最長的一種模式,對伺服壓力機的精度會有所影響,所以文中選擇速度模式,而將位置模式中的位置環放于核心板中進行運算。伺服電機的控制由核心板和擴展板共同完成,其中核心板輸出電機控制所需的PWM信號,經擴展板中的26LS31差分芯片獲得差分信號,再經過運算放大電路和濾波電路,得到變化范圍為+10 V到-10 V的模擬量電壓信號,最終將信號輸入到驅動器的速度模式的輸入端,其中伺服電機速度的調節是通過改變PWM信號的占空比來完成。
b) 基于RS232的數字伺服驅動器通訊控制模塊設計
數字伺服驅動器通訊是指通過核心板中的RS232串口和伺服驅動器之間進行通訊。選用的三菱MR-J2S系類的伺服驅動器,具有RS-422/RS-232串行通訊功能。通過通信可實現運行伺服系統、修改參數、監視運行狀態等功能[6]。通訊控制模塊主要實現外部輸入/輸出狀態的讀取、參數設定與狀態讀取、報警狀態讀取與報警清除、電機狀態讀取(反饋脈沖累計、伺服電機速度和滯留脈沖等)等功能。
三菱伺服電機驅動器通訊采用十六進制數,數據在控制器和驅動器之間采用ASCII碼傳輸,一次完整的通訊過程包括握手過程、數據傳輸、結束、和校驗等過程完成[7]。通訊過程采用主從問答式,每次通訊都是由控制器端發出指令啟動通訊,驅動器端接收指令后,核對站號(驅動器地址),正確就響應命令,返回結果給控制器端,圖6所示為一次完整的通訊過程。

圖6 通訊過程示意圖
c) 人機系統模塊設計
用戶界面是用戶與整個數控系統進行交互的主要方式,其功能的完整性、布局的合理性、操作的方便性和人性化直接影響了整個數控系統的使用。目前Linux環境下的界面開發工具主要有Qt/Embedded、MiniGUI、MicroWindws、GTK+等[8],綜合考慮控制系統的設計要求,采用Qt的嵌入式版本Qt/Embedded開發數控系統的人機界面。與其他界面開發工具相比,其特點是:良好的平臺移植性、面向對象的封裝機制、豐富的API、信號與槽通信機制等。
本伺服壓力機控制系統的人機界面分為多個模塊,不同功能模塊可通過選項卡進行自由切換,在不同的界面里實現對伺服壓力機的運動控制和狀態顯示等(圖7),主要界面模塊有:
1) 伺服壓力機功能選擇模塊。在此功能界面內部集成了多種伺服壓力機的工作模式,根據不同的零件加工要求,選擇加載不同的程序進行加工。
2) 動態監測模塊。由圖7(a)所示,主要是整個伺服壓力機的狀態的實時監控,包括開關量信號、潤滑系統狀態、保護系統狀態、滑塊運行狀態、電機運行狀態、加工狀態等,以及整個系統的啟停選擇等。
3) 生產信息模塊。由圖7(b)所示,顯示伺服壓力機的主要參數指標,選擇該次加工的零件的名稱、型號、使用模具的型號以及加工的類型,以備記錄查看。
4) 報警信息模塊。記錄和顯示整個伺服壓力機的報警信息,主要包括報警項目、出錯時間、恢復時間、處理人、詳細原因等,方便記錄和查詢。


圖7 控制系統運行圖
4結語
通過對伺服壓力機控制系統的硬件平臺、實時操作系統運行環境、人機界面以及主要控制模塊的選擇和設計,構建了一個功能完善、實時性強的伺服壓力機控制系統。實驗表明,構建的實時操作系統能滿足實時性要求,實現了伺服壓力機的主要控制任務。在后續研究中,可以進一步完善電機驅動模塊,提高滑塊的控制精度。
參考文獻:
[1] 史國亮, 孫友松, 黎勉, 等. 1 100 kN 伺服曲柄壓力機控制系統研究[J]. 鍛壓技術, 2009, 34(2): 79-82.
[2] 孫友松, 周先輝, 黎勉, 等. 交流伺服壓力機及其關鍵技術[J]. 鍛壓技術, 2008, 33(4): 1-8.
[3] 趙英燦. 基于 ARM 的伺服壓力機控制系統的研究[J]. 自動化技術與應用, 2013, 32(5).
[4] 韓守謙, 裴海龍, 王清陽. 基于 Xenomai 的實時嵌入式 Linux 操作系統的構建[J]. 計算機工程與設計, 2011, 32(001): 96-98.
[5] 李少雪, 吾守爾, 斯拉木, 等. 嵌入式 Linux2. 6 的實時性能研究與優化[J]. 微電子學與計算機, 2010, 8: 053.
[6] 陳振華, 李聲晉, 蘆剛. 伺服系統的串行通訊實時性研究[J]. 機械與電子, 2006, 12: 31-33.
[7] 閆獻勇, 吳嵐軍, 王珺. 用微機串口實現對交流伺服電機的控制[J]. 現代電子技術, 2004, 8: 33-34.
[8] 丁丁, 習勇, 魏急波. 三種主流嵌入式圖形用戶界面的移植及性能比較[J]. 電子產品世界, 2004, 9(5): 3-4.
Design of Embedded Control System of Servo Press Based on ARM and FPGA
ZHANG Wei1, TANG Dun-bing1, ZHOU Jian-hua1,YANG Jun1, ZHANG Ze-qun1,ZHONG Tai-sheng2
(1. Nanjing University of Aeronautics and Astronautics, College of Mechanical and Electrical Engineering,
Nanjing 210016,China; 2. Jiangsu Yang Li Group Co., Ltd., Yangzhou 225104,China)
Abstract:Based on the analysis of the working principle of crank-slider servo press and servo motor, software and hardware of the control system for servo press are selected and designed, which provide the basis for controlling slider move precisely. The controller composed of S3C2440 microprocessor and FPGA is designed and real-time operating system based on Linux+Xenomai is constructed. Then the man-machine interface is designed by Qt/Embedded software. The function of the control system is improved and the interface is of humanized design.
Key words:embedded system; servo-press; control system
收稿日期:2014-11-19
中圖分類號:TG315; TP273
文獻標志碼:B
文章編號:1671-5276(2015)03-0150-05
作者簡介:張偉(1989-),男,江蘇揚州人,碩士研究生,研究方向為伺服壓力機控制系統的設計與開發。