?? a_control_system_based_on_arm_and_ucos-ii.txt
字號:
基于ARM和uC/OS-II的電液比例控制系統(tǒng)的設計
作者:蒙娟 所屬分類: 自動化/計算機技術
所投刊社及刊社評語
《微計算機信息(嵌入式與SOC)》旬刊
摘要 摘要:針對傳統(tǒng)電液比例控制系統(tǒng)的性能較差,本文提出了一種基于ARM和uC/OS-II的電液比例控制系統(tǒng)的設計,并詳細介紹了以ARM內(nèi)核微控制器LPC2292和電機驅動芯片LMD18200為核心的硬件電路,以及嵌入式操作系統(tǒng)μC/OS-II在ARM7上的實現(xiàn)。 關鍵詞:ARM;電液比例控制;LMD18200;μC/OS-II
正文 字體大小:大 中 小
1引言
在現(xiàn)代工程機械中,電液比例控制系統(tǒng)具有控制精度高、安裝使用靈活以及抗污染能力強等多方面優(yōu)點,因此應用領域日益拓寬。傳統(tǒng)的電液比例控制系統(tǒng)采用8位或 16位的單片機作為控制器,使用單任務順序機制,系統(tǒng)的實時性、安全可靠性較差,運算處理和資源管理能力都很有限。本文采用Philips公司的 ARM7TDMI內(nèi)核微處理器LPC2292作為控制器,電機專用芯片LMD18200作為PWM驅動器,μC/OS-II作為操作系統(tǒng)大大提高了系統(tǒng)的穩(wěn)定性、可靠性和實時響應能力。
2系統(tǒng)工作原理
電液比例控制系統(tǒng)是根據(jù)輸入電信號的大小按比例連續(xù)地控制液壓系統(tǒng)的壓力、流量或方向等參數(shù)【3】。通常,電液比例控制系統(tǒng)主要由操作手柄、控制器、PWM 驅動電路、比例電磁鐵、電液比例閥以及執(zhí)行機構等部分組成。在一般的工程機械場合,電液比例控制系統(tǒng)采用開環(huán)控制均能滿足要求,只需采用電流閉環(huán)以穩(wěn)定輸出量。電液比例閥控制方式大多采用PWM技術進行控制,通過改變PWM信號的占空比來調整比例電磁鐵的平均電流,以降低摩擦、減少電磁鐵的滯環(huán)和死區(qū)現(xiàn)象,提高電液比例閥的響應速度。
3硬件電路設計
綜合電液比例控制系統(tǒng)的功能需求,整個系統(tǒng)的控制電路包括外擴FLASH、SRAM、模擬量輸入、數(shù)字量輸入、鍵盤輸入、PWM輸出、LCD顯示、數(shù)字量輸出、CAN總線通信等 部分組成。其硬件電路框圖如圖1所示:
圖1 電液比例控制系統(tǒng)硬件電路框圖
3.1 LPC2292簡介【2】
LPC2292是一款基于16/32位ARM7TDMI-S,支持實時仿真和跟蹤的CPU,并帶有256kB嵌入的高速Flash存儲器和16KB的靜態(tài)RAM。128位寬度的存儲器接口和獨特的加速結構使32位代碼能夠在最大60MHZ的時鐘速率下運行。LPC2292具有ISP和IAP功能,包括多個32位定時器、8路10位ADC、2路高級CAN通道、2個UART接口以及多達9個的外部中斷。更重要的是,LPC2292帶有6路PWM輸出和高達112個GPIO口,使LPC2292成為電液比例控制系統(tǒng)控制器的首選。
3.2 系統(tǒng)存儲器電路的設計
大多數(shù)的ARM 微處理器片內(nèi)存儲器的容量都不太大,需要用戶在設計系統(tǒng)時外擴存儲器。本文擴展了一片1M×16的CMOS多功能FLASH SST39VF160和一個512K×16的高速CMOS靜態(tài)RAM IS61LV51216,用以緩沖數(shù)據(jù)和存貯程序。LPC2292帶有外部存儲器接口EMC模塊,管腳地址輸出線是A[23:0],其中地址位A[25:24]用于4個存儲器組的譯碼(CS[3:0])。通過EMC可以擴展4個Bank寄存器組(Bank0-Bank3),每個寄存器空間大小為16M字節(jié)。為了方便程序的調試及最終代碼的固化應用,使用了LPC2292的 Bank0和Bank1的地址空間,并通過跳線將片選信號CS0和CS1分別分配給SRAM和FLASH。在調試程序時,分配SRAM為Bank0地址,因為Bank0可以進行異常向量表的重新映射操作;在固化代碼到FLASH時,分配FLASH為Bank0地址,因為Bank0可以用來引導程序運行。由于SST39VF160和IS61LV51216都是16位總線接口,所以使用LPC2292的地址總線A1-A20與它們相連。
3.3 LPC2292與LMD18200的連接
電液比例控制的核心是控制電液比例閥的電流,其驅動電流一般為1A左右,需要對LPC2292輸出的PWM信號進行放大,還要設計電液比例閥的相關保護電路,以避免過流、欠壓、短路、回流等現(xiàn)象。本系統(tǒng)中,采用美國國家半導體公司推出的直流電機驅動芯片LMD18200作為PWM驅動器,內(nèi)部電路如圖3所示。LMD18200具有很強的驅動能力,瞬間驅動電流可達6A,正常工作電流可達3A,還具備溫度報警、過熱與短路保護的功能。
LMD18200可提供雙極性驅動方式或單極性驅動方式,本系統(tǒng)中的電液比例閥為單極性控制,故 LMD18200采用單極性方式。其控制信號由方向信號和幅值信號組成,幅值信號由PWM的占空比決定,方向信號由DIR的電平?jīng)Q定,零脈沖代表零電壓。本文將LMD18200的DIR腳直接接地,實現(xiàn)LMD18200的單極性控制,將LPC2292的P0.7、P0.8、P0.9、P0.21配置為PWM輸出,再經(jīng)過光電隔離輸出到LMD18200的PWM輸入端,實現(xiàn)LMD18200的幅值控制。LMD18200的第8腳是電流取樣信號,每輸出1A電流,腳8輸出377nA的取樣電流,將這個信號反饋到LPC2292的模擬通道中,形成電流閉環(huán)回路,以加快電液比例閥的響應、啟動和增強低頻穩(wěn)定性。同時在閥的輸入端設計了續(xù)流二極管以保護電液比例閥。
圖2 LMD18200內(nèi)部電路
3.4 LCD顯示模塊
液晶顯示模塊采用320×240液晶顯示模塊SED1335,內(nèi)嵌64K RAM,其特點是:有較強功能的I/O緩沖器;操作指令功能豐富;四位數(shù)據(jù)并行發(fā)送,最大驅動能力為640×256點陣;圖形和文本方式混合顯示等。 SED1335與ARM的接口采用直接訪問方式。SED1335的數(shù)據(jù)線DB0-DB7與LPC2292的D0-D7相連,SED1335的A0、WR、RD分別與LPC2292的A0、WE、OE相連,SED1335的片選信號CS是經(jīng)過LPC2292的CS3和A23-A21進行地址譯碼后選中。
3.5 其他模塊
整個系統(tǒng)的電源來自車載的+24V,而系統(tǒng)需要提供的電源有:LPC2292的內(nèi)核供電電源為1.8V,I/O口供電電源為3.3V,系統(tǒng)部分外設的供電電源為5V,這些都由+24V轉化而來。系統(tǒng)還設計了CAN總線收發(fā)器,采用了TI公司的SN65HVD230,外圍監(jiān)控器件SP708和串行時鐘芯片S3530等相關電路。
4軟件設計
電液比例控制系統(tǒng)的軟件設計包括μC/OS-II在ARM7上的移植和應用程序的編寫。其開發(fā)環(huán)境采用的是ARM公司推出的ARM核微控制器集成開發(fā)工具 ADS1.2。ADS支持軟件調試及JTAG硬件仿真調試,支持匯編、C、C++源程序,具有編譯效率高、系統(tǒng)庫功能強等特點【1】。
4.1 μC/OS-II簡介【4】
μC/OS- II是基于優(yōu)先級的搶占式實時多任務操作系統(tǒng),是一個完整的、可移植、可固化、可裁減的多任務內(nèi)核。絕大部分μC/OS-II的代碼是用ANSI C語言編寫,與硬件相關部分用匯編語言編寫,可用于各類8位、16位和32位單片機或DSP等不同架構的微處理器。μC/OS-II可以管理64個任務,具有實時內(nèi)核、任務管理、時間管理、任務間通信同步(信號量,郵箱,消息隊列)和內(nèi)存管理等系統(tǒng)功能。至今,從8位到64位,μC/OS-II已在超過 40種不同架構的微處理器上運行。
4.2 μC/OS-II在ARM7上的移植
根據(jù)μC/OS-II的要求,移植μC/OS-II到ARM7TDMI上需要提供3個與處理器相關的文件【5】。
1, OS_CPU.H(C語言頭文件)
OS_CPU.H 文件主要是定義與編譯器無關的數(shù)據(jù)類型、堆棧類型、堆棧增長方向和SWI服務函數(shù)。在ARM7處理器中,用戶任務可以使用兩種處理器模式:用戶模式和系統(tǒng)模式,各種方式對系統(tǒng)資源有不同的訪問控制權限。為了使底層接口函數(shù)與處理器狀態(tài)無關,同時不需要知道函數(shù)的位置,移植中要使用軟中斷指令SWI作為底層接口,使用不同的功能號區(qū)分不同的函數(shù)。
2,OS_CPU_C.C(C程序源文件)
OS_CPU_C.C文件中主要是任務堆棧初始化代碼、軟中斷異常處理程序、開關中斷、鉤子函數(shù)和移植增加的特定函數(shù)。根據(jù)ARM內(nèi)核的特點,增加了處理器模式轉換函數(shù)和兩個任務初始化指令集設置函數(shù)。它們都是通過SWI轉換到系統(tǒng)模式,通過軟件中斷服務程序實現(xiàn)的。
3,OS_CPU_A.S(匯編程序源文件)
OS_CPU_A.S文件主要包括軟件中斷的匯編接口、任務級任務切換函數(shù)OS_TASK_SW和中斷級任務切換函數(shù)OSIntCtxSw以及啟動最高優(yōu)先級就緒任務函數(shù)。
4,中斷及時鐘節(jié)拍
在本系統(tǒng)的移植中,只使用了ARM的IRQ中斷。編寫中斷服務程序代碼比較簡單,關鍵在于把程序與芯片的相關中斷源掛接,使芯片在產(chǎn)生相應的中斷后會調用相應的處理程序。這需要做兩方面的事:一是增加匯編接口的支持;二是初始化向量中斷控制器。至于時鐘節(jié)拍服務程序是通過在中斷服務子程序中調用 OSTimeTick()實現(xiàn)的。不過,值得注意的是,用戶必須在多任務系統(tǒng)啟動以后再開啟時鐘節(jié)拍器,否則容易造成用戶應用程序的崩潰。
4.3 應用程序的編寫
根據(jù)電液比例控制系統(tǒng)所要實現(xiàn)的功能,并考慮到系統(tǒng)的實時性和可靠性,進行任務劃分、創(chuàng)建任務并確定每個任務的優(yōu)先級。按優(yōu)先級高低順序排列,并行存在以下七個任務:起始任務,監(jiān)控任務,鍵盤掃描任務,模擬信號采集任務,PWM輸出任務,液晶顯示任務,通信任務。其中,起始任務包括啟動時鐘節(jié)拍,創(chuàng)建郵箱、消息量,初始化統(tǒng)計任務,創(chuàng)建其他任務等;監(jiān)控任務檢測數(shù)字式傳感器輸入的信號,比較是否屬于危險操作,是否需要報警等;鍵盤掃描任務主要對鍵盤陣列進行處理,當檢測到有鍵按下時進入該按鍵子程序;模擬信號采集任務主要是采集手柄信號并進行AD轉換;PWM輸出任務根據(jù)控制算法輸出占空比可調的PWM 信號;液晶顯示任務顯示當前時間、系統(tǒng)狀態(tài)和一些人機對話框;通信任務通過CAN總線實現(xiàn)前端單元和電液比例控制系統(tǒng)的信息交互,數(shù)據(jù)上傳等。編寫好這些任務的代碼、相關的調用程序和中斷服務程序后,啟動操作系統(tǒng)應用程序就開始運行。軟件流程圖如圖5所示:
圖3 軟件流程圖
5結語
本文詳細介紹了基于ARM和μC/OS-Ⅱ的電液比例控制系統(tǒng)的設計思路。采用ARM核LPC2292嵌入式微處理器,可以使系統(tǒng)小型化、功能集成度高、便于提高性能以及和各種外設的擴展。采用嵌入式實時操作系統(tǒng)μC/OS-Ⅱ,便于多任務的管理調度。經(jīng)過實驗表明,本系統(tǒng)具有精度高、可靠性好、運行穩(wěn)定、實時性好、抗干擾能力強等特點,可以在多種工程機械領域中推廣應用。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -