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





