圖4 模擬信號(hào)處理部分功能框圖
圖5 CAN總線接口電路 3.6 RS232接口
該接口的用途主要是提供人機(jī)接口,實(shí)現(xiàn)參數(shù)設(shè)定、故障檢測(cè)等功能?芍苯永脝纹瑱C(jī)的UART口,配以RS232電平轉(zhuǎn)換芯片,方便地構(gòu)成RS232接口。為保證系統(tǒng)產(chǎn)生準(zhǔn)確的常用波特率,需要精心選擇單片機(jī)的時(shí)鐘頻率。RS232電平轉(zhuǎn)換電路采用MAX232A芯片[4]。
3.7 液晶圖形顯示器接口
液晶顯示器采用青云儀器廠生產(chǎn)的LCM320240ZK型帶漢字庫(kù)的液晶模塊,并配以照明電源、對(duì)比度調(diào)整電路等。為了提高控制器的工作效率和降低編程難度,并考慮到現(xiàn)場(chǎng)數(shù)據(jù)傳輸距離的限制,本系統(tǒng)使用一個(gè)專門的微處理器控制LCD。兩塊處理器之間的通訊通過SPI串行通訊接口實(shí)現(xiàn)。
3.8 數(shù)字鍵盤接口
數(shù)字鍵盤接口用于控制系統(tǒng)進(jìn)入不同工作狀態(tài),為簡(jiǎn)化設(shè)計(jì),同時(shí)充分利用單片機(jī)提供的I2C兼容接口,該數(shù)字鍵盤采用ZLG7290芯片進(jìn)行設(shè)計(jì),各功能鍵及狀態(tài)指示均在該芯片控制下。利用好ZLG7290提供的中斷信號(hào),可提高系統(tǒng)響應(yīng)速度,降低編程難度。
3.9 單片機(jī)、數(shù)字輸入輸出接口及計(jì)數(shù)器接口
單片機(jī)采用ATMEL公司的MEGA128芯片,針對(duì)本系統(tǒng)中的應(yīng)用,它有以下優(yōu)點(diǎn):
(1) 采用了先進(jìn)的RISC結(jié)構(gòu),工作于16MHz時(shí)性能高達(dá)16MIPS。
(2) 具有八路10位ADC,最高分辨率時(shí)采樣率高達(dá)15kSPS。
(3) 可提供兩路8位PWM控制信號(hào)和六路分辨率可編程的PWM控制信號(hào)。
(4) 豐富的定時(shí)器資源,具有四個(gè)硬件定時(shí)器。
(5) 提供I2C總線控制模塊、兩個(gè)UART口和SPI串行接口[2]。
在系統(tǒng)設(shè)計(jì)上,考慮了ISP編程接口。在初期設(shè)計(jì)的系統(tǒng)中,為了系統(tǒng)調(diào)試方便,采用了JTAG調(diào)試接口。
數(shù)字輸入輸出接口直接利用單片機(jī)的I/O口實(shí)現(xiàn),計(jì)數(shù)器接口接收安裝在隨鉆細(xì)鋼絲繩滑輪上的霍耳傳感器的脈沖信號(hào),根據(jù)該信號(hào)利用滑輪的轉(zhuǎn)數(shù)來(lái)計(jì)算井深,這里直接利用單片機(jī)的計(jì)數(shù)功能。
4 控制系統(tǒng)軟件
整個(gè)控制器、傳感器和液晶管理控制器所使用的微控制器都是工業(yè)級(jí)的。為開發(fā)方便,使用同一系列不同配置的微控制器,所有程序開發(fā)都使用C語(yǔ)言進(jìn)行,開發(fā)軟件使用ICC AVR C6.28 軟件包,調(diào)試器使用ATMEL公司的JTAGE ICE,調(diào)試環(huán)境使用AVR Studio 4.10。
根據(jù)控制系統(tǒng)及比例方向閥的特點(diǎn)和需求進(jìn)行分析可知,系統(tǒng)軟件需要完成的任務(wù)包括:數(shù)據(jù)檢測(cè)(包括A/D轉(zhuǎn)換、垂直度和位置指令脈寬測(cè)量等)、鍵盤掃描、LCD顯示、控制算法和PWM輸出、參數(shù)設(shè)定等。這些功能的實(shí)現(xiàn)需由mega128的下列資源來(lái)實(shí)現(xiàn):通用I/O、 ADC、T0~T3定時(shí)器、中斷系統(tǒng)等。
由于管理LCD顯示的是單獨(dú)的微控制器,所以只需將液晶顯示模塊所用功能編寫成例程,控制器只發(fā)送控制命令,液晶控制器接收命令后對(duì)顯示模塊進(jìn)行具體控制即可。這里只介紹主控制器的軟件實(shí)現(xiàn)。
4.1 主程序
主程序首先要實(shí)現(xiàn)系統(tǒng)初始化,包括端口初始化、定時(shí)器初始化、中斷設(shè)置等。
主程序處于循環(huán)狀態(tài),主要完成參數(shù)檢測(cè)和向LCD控制器發(fā)送顯示狀態(tài)命令等,直到發(fā)出關(guān)閉指令為止。
4.2 中斷控制
控制軟件要實(shí)現(xiàn)多個(gè)任務(wù)。對(duì)各個(gè)任務(wù)的調(diào)度和管理以及重要任務(wù)的實(shí)時(shí)執(zhí)行,就需要對(duì)各個(gè)中斷精確規(guī)劃和協(xié)調(diào)。
控制軟件中共用到定時(shí)器中斷、外部中斷、UART0中斷、I2C總線中斷、SPI中斷、A/D轉(zhuǎn)換完成中斷等中斷。其功能如下:
(1)T0定時(shí)器溢出中斷用于實(shí)現(xiàn)采樣周期定時(shí)。
(2)T2定時(shí)器溢出中斷用于對(duì)測(cè)量井深的霍耳傳感器進(jìn)行計(jì)數(shù)溢出中斷。
(3)外部中斷用于實(shí)現(xiàn)轉(zhuǎn)向的檢測(cè)和操縱桿鎖定信號(hào)檢測(cè)。
(4)A/D 轉(zhuǎn)換完成中斷用于操縱桿指令和垂直度的轉(zhuǎn)換。
(5)UART0中斷用于控制系統(tǒng),使之通過串口與PC機(jī)進(jìn)行數(shù)據(jù)交換。
(6)I2C總線中斷用于通過中斷實(shí)現(xiàn)總線協(xié)議,掃描鍵盤并完成數(shù)據(jù)傳送。
(7) SPI中斷用于主控制器向LCD控制器發(fā)送顯示命令。
并不是每個(gè)中斷都自始至終發(fā)揮作用,而是在不同階段,有些中斷使能,其余禁止,且同一中斷在旋挖鉆機(jī)工作的不同階段,其優(yōu)先級(jí)也會(huì)有所不同。通過靈活的中斷設(shè)置與協(xié)調(diào),可實(shí)現(xiàn)實(shí)時(shí)任務(wù)和非實(shí)時(shí)任務(wù)的調(diào)度管理。
4.3 控制規(guī)律設(shè)計(jì)
為了迅速、穩(wěn)定、可靠地完成旋挖鉆機(jī)垂直起豎控制,整個(gè)控制過程分為手動(dòng)控制和自動(dòng)搜尋控制。
4.3.1 手動(dòng)控制
手動(dòng)控制采用開環(huán)控制使驅(qū)動(dòng)旋挖鉆機(jī)的兩個(gè)液壓缸在操縱員的控制下滿足如下三種不同工作要求:當(dāng)操縱桿只有俯仰指令而無(wú)滾轉(zhuǎn)指令時(shí),其中一個(gè)液壓缸的運(yùn)動(dòng)跟隨另一個(gè)液壓缸的運(yùn)動(dòng);當(dāng)操縱桿只有滾轉(zhuǎn)指令而無(wú)俯仰指令時(shí),兩個(gè)液壓缸作差動(dòng)運(yùn)動(dòng);當(dāng)操縱桿既有俯仰指令又有滾轉(zhuǎn)指令時(shí),則兩個(gè)液壓缸的運(yùn)動(dòng)是上述兩個(gè)運(yùn)動(dòng)的合成運(yùn)動(dòng)。
4.3.2 自動(dòng)控制
當(dāng)手工操作鉆桅進(jìn)入自動(dòng)搜尋區(qū)域時(shí),則按下操縱桿上的自動(dòng)搜尋按鈕,單片機(jī)系統(tǒng)便斷開操縱桿指令,利用角位置傳感器信號(hào)控制液壓缸運(yùn)動(dòng),并按正交搜索策略搜索。整個(gè)控制在T0的中斷中實(shí)現(xiàn)。程序流程圖見圖6。
4.4 PID 控制算法
為了方便更改PID控制參數(shù),加快調(diào)試參數(shù)的效率,在進(jìn)入閉環(huán)控制后,通過外部按鍵進(jìn)入?yún)?shù)設(shè)定狀態(tài),此時(shí)暫時(shí)退出閉環(huán)控制;然后通過按鍵分別設(shè)置Kp、Ki、Kd等參數(shù),當(dāng)新的參數(shù)投入使用后,重新進(jìn)入閉環(huán)工作狀態(tài)。PID控制算法程序流程圖見圖7。
圖6 T0中斷程序流程圖
圖7 PID控制算法程序流程圖 參考文獻(xiàn)
1黎啟柏.電液比例控制與數(shù)字控制系統(tǒng).北京:機(jī)械工業(yè)出版社,1997
2丁化成,耿德根,力君凱.AVR單片機(jī)應(yīng)用設(shè)計(jì).北京:北京航空航天大學(xué)出版社,2002
3 沈 文, Eagle lee, 詹衛(wèi)前. AVR單片機(jī)C語(yǔ)言開發(fā)入門指導(dǎo).北京:清華大學(xué)出版社,2003
4 求是科技.單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航.北京:人民郵電出版社,2004 (收稿日期:2005-05-20)





