《電子技術應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 彩色小長圖無紙記錄儀的設計與開發(fā)

彩色小長圖無紙記錄儀的設計與開發(fā)

2008-10-29
作者:謝 鋒 陳 引 吳明光

  摘? 要: 介紹了在保持與中長圖無紙記錄儀" title="無紙記錄儀">無紙記錄儀通用的基礎上開發(fā)的小長圖無紙記錄儀。該記錄儀可全中文圖形界面顯示、萬能輸入、功能完備,運用了數(shù)據(jù)空間擴展分頁訪問管理和代碼空間擴展切換等新技術。從硬件以及軟件兩方面詳細論述了這些新技術的實現(xiàn)。

  關鍵詞: 分頁訪問? 代碼切換? 無紙記錄儀

?

  記錄儀是工業(yè)生產(chǎn)自動化系統(tǒng)中常見的二次儀表。傳統(tǒng)的記錄儀功能單一,機械結構易發(fā)故障,日常維護工作繁瑣,已經(jīng)無法滿足生產(chǎn)過程綜合自動化的要求。筆者于1998年研制的彩色中長圖無紙記錄儀,已經(jīng)實現(xiàn)了產(chǎn)品化,并廣泛應用于化工、鋼鐵行業(yè)的過程監(jiān)控,獲得用戶的好評。在此基礎上,根據(jù)用戶的實際需求以及使用意見,筆者又開發(fā)了新一代的彩色小長圖無紙記錄儀。該記錄儀具有5″DSTN彩色液晶顯示,1~8通道萬能輸入、16點報警、2點PID輸出,尺寸小、功能全、可滿足大多數(shù)行業(yè)的需求。

1 主要功能

  (1)信號采樣:模擬輸入通道1~8路。全隔離萬能輸入,可輸入0~10V、0~5V、1~5V、0~10mA、4~20mA標準信號和PT100、Cu50熱電阻信號以及K、S、B、N、T、E、J、R熱電偶信號。用戶直接在組態(tài)畫面選擇,無需更換輸入通道板。記錄間隔可設置為1/2/4/8/20/40/60/120/240等。

  (2)組態(tài)功能:該記錄儀具有強大的組態(tài)功能,用戶可對通道信號類型、單位、量程、顯示范圍、記錄間隔、報警上下限以及顯示畫面、歷史追憶、流量累計、PID參數(shù)等進行設置。圖形化的組態(tài)界面,操作簡單。

  (3)顯示功能:全中文圖形界面,菜單驅(qū)動,信息直觀豐富,操作簡單。主要顯示畫面:水平趨勢畫面、垂直趨勢畫面、棒圖畫面、數(shù)字畫面(以上畫面均可1~8通道選擇)、歷史數(shù)據(jù)趨勢追憶畫面(單通道或多通道同時)、多通道流量累計畫面、組態(tài)畫面(包括通道設置、顯示設置、流量累計設置、PID參數(shù)設置、歷史追憶設置等畫面)。

  (4)存儲功能:采用大容量" title="大容量">大容量Flash作為主要存儲設備(用戶可選1/2/4/6M)。軟盤作為輔助,用戶可將任意時間段內(nèi)的數(shù)據(jù)轉存到軟盤,然后在PC機上進行顯示、分析、打印。

  (5)通訊功能:提供RS-232/RS-485通訊接口。可遠距離通訊,多臺儀表組網(wǎng)。配合上位PC機軟件可實現(xiàn)遠程監(jiān)控。

  (6)打印功能:提供常用微型打印機接口,打印任意時間段內(nèi)數(shù)據(jù)、趨勢曲線、流量累計值等。

  (7)報警功能:配有16點開關量輸出通道(可選長開/長閉),根據(jù)各通道設置的上下限,在顯示畫面實時顯示報警信息的同時輸出報警信號。

  (8)簡單PID調(diào)節(jié)功能:具有兩路PID輸出通道,信號類型為1~5V/4~20mA。

2 硬件設計

  作者先前開發(fā)的彩色中長圖無紙記錄儀內(nèi)部采用了上下位機" title="下位機">下位機的結構。上位機采用ALL-IN-ONE型PC104嵌入式模板作為硬件平臺,直接接入GB級硬盤和1.44MB軟盤、640×480的10″彩色TFT液晶顯示屏、6鍵數(shù)字鍵盤。下位機采用以PHILIPS公司80C552為控制核心的采集模塊。上位機負責畫面顯示、用戶組態(tài)、數(shù)據(jù)管理、打印以及遠程通訊(RS232或485)。下位機負責信號調(diào)理、數(shù)據(jù)計算、報警以及PID輸出。上下位機間通過RS232接口連接,傳遞通道組態(tài)信息和通道數(shù)據(jù)值。結構框圖見圖1。采用該種結構的優(yōu)點是模塊化設計,上下位機各司其職,分工合作;應用靈活,兼容性好;故障定位容易。該系統(tǒng)的易用性和可靠性已經(jīng)在工廠應用中得到了證明。但也要看到,在該系統(tǒng)中,PC104模板的功能并沒有被充分使用,硬盤空間浪費嚴重(目前市場上已買不到4G以下容量的硬盤了),液晶顯示屏價格昂貴,從而導致了記錄儀價格偏高。

?

?

  在總結了中長圖無紙記錄儀的研發(fā)之后,在小長圖無紙記錄儀的設計中仍然采用了上下位機的結構。其中下位機數(shù)據(jù)采集模塊與中長圖無紙記錄儀通用,這樣避免了重復開發(fā),并使小長圖、中長圖無紙記錄儀成為一個體系。全新開發(fā)了以Dallas公司80C320為核心的上位機。結構框圖見圖2。采用了320×240的5″DSTN彩色液晶顯示屏。數(shù)據(jù)存儲主要采用大容量的Flash,輔助設備采用1.44M軟盤,由GM82C765負責控制。使用80C320主要基于兩點考慮:一是80C320具有兩個UART,能滿足記錄儀內(nèi)部上下位機通訊以及與外部的遠程通訊,軟件編制的復雜程度也大大降低;二是軟驅(qū)控制器GM82C765的實時性要求比較高,而80C320的4周期技術可使其在與其它51芯片采用相同晶振的條件下,指令執(zhí)行速度快三倍;加上雙DPTR的結構,能提高程序執(zhí)行效率,從而更好地與GM82C765配合。

?

?

  由于液晶屏采用RAM方式驅(qū)動,并且大容量的并行Flash存儲器遠遠超出了51單片機64K的數(shù)據(jù)尋址空間,因此,我們對80C320進行了數(shù)據(jù)空間擴展,增加了8根地址線。對增加的地址空間我們進行了分頁管理(每個頁面大小為32K),利用51原有的高端32K數(shù)據(jù)空間進行換頁訪問。在增加的數(shù)據(jù)空間內(nèi),我們安排了32K的I/O空間、64K的液晶顯示空間以及Flash存儲器空間,擴充的數(shù)據(jù)空間達到8M。原理圖見圖3。

?

?

  對編程而言,數(shù)據(jù)空間就是原有的64K空間。當程序要訪問擴充的數(shù)據(jù)空間時,先向地址0x7FFF寫入高8位地址進行頁面選擇,由硬件片選電路將被選擇的頁面映射到原51的高端32K數(shù)據(jù)空間。此后對高端32K數(shù)據(jù)空間的訪問就是對所選擴展數(shù)據(jù)空間頁面的訪問。擴充數(shù)據(jù)空間總共有分為256個頁面。低端32K數(shù)據(jù)空間的訪問不受頁面選擇的影響。

  由于51系列單片機體系結構上的限制,其代碼空間只有64K。小長圖無紙記錄儀軟件采用C語言編寫,菜單驅(qū)動全中文圖形界面顯示,并且功能完備,軟件代碼的長度超出了64K。為了解決這個問題,我們開創(chuàng)性地使用了擴充代碼空間并自行控制片選從而切換代碼空間的方法,可以說這是小長圖無紙記錄儀在技術上的一個創(chuàng)新。其硬件原理見圖4。而在軟件設計" title="軟件設計">軟件設計上,為了保證程序能在兩塊代碼空間自由切換且保證運行正常,在軟件編寫以及編譯連接定位上均有較高的要求,這在下面的軟件設計一節(jié)中詳細說明。

?

?

3 軟件設計

  小長圖無紙記錄儀軟件采用C語言和匯編語言" title="匯編語言">匯編語言混合編寫。用C語言進行編程能提高開發(fā)的效率以及代碼的質(zhì)量,但在實時性要求較高的場合,目前的C51編譯器仍有其局限性。因此,軟件的主體部分采用C語言編寫;而對實時性要求嚴格的GM82C765軟驅(qū)控制器的訪問、液晶屏的驅(qū)動等底層函數(shù)均采用51匯編語言編寫。C程序和匯編語言模塊之間的連接主要解決變量傳遞、共享及代碼調(diào)用等問題。限于篇幅,在此就不多論述了,有興趣的讀者請參閱參考文獻3。

軟件設計中要解決的關鍵問題是代碼切換。其原理圖見圖5。

?

  原理圖中Function1與Funciton2代碼很大,當它們放在一個工程中編譯時,代碼超出了64K的限制。因此將它們分置于兩個代碼空間中。相應的程序必須分成兩個工程來編寫。其中Function1放在ROM1中,Function2放在ROM2中,MainLoop(主循環(huán))與SwitchChip(空間切換函數(shù))為公共函數(shù);同時為了工程能被正確編譯連接,在ROM1和ROM2中分別加入了Function2與Function1的空函數(shù)。

  代碼空間切換的流程是這樣的:假定上電后,程序開始運行于ROM1空間,進入MainLoop循環(huán)等待事件發(fā)生。當某一時刻,event2事件發(fā)生,程序調(diào)用SwitchChip,參數(shù)為2(見圖中①)。進入SwitchChip函數(shù)后,根據(jù)參數(shù)設置片選,選中ROM2,此后程序在ROM2空間運行(見圖中②)。SwitchChip函數(shù)返回,開始調(diào)用ROM2中真正的Function2函數(shù)(見圖中③)。完畢后程序在ROM2空間中的MainLoop循環(huán),等待新事件發(fā)生。

  當程序運行在ROM2中的MainLoop時,event1事件發(fā)生,程序調(diào)用SwitchChip,參數(shù)為1(見圖中④)。進入SwitchChip函數(shù)后,根據(jù)參數(shù)設置片選,選中ROM1,從而程序回到ROM1空間運行(見圖中⑤)。SwitchChip函數(shù)返回,開始調(diào)用ROM1中真正的Function1函數(shù)(見圖中⑥)。執(zhí)行完畢后程序在ROM1空間中的MainLoop循環(huán)。

  而當程序運行在ROM1中發(fā)生event1事件時,調(diào)用SwitchChip不會切換ROM空間,從而能正確調(diào)用Function1函數(shù)。同理在ROM2中發(fā)生event2事件也是一樣。

  從原理圖以及上述流程可以看出,使兩塊ROM空間進行正確切換的必要條件是:

  ·兩塊ROM中MainLoop函數(shù)的起始地址必須相同,并且語句必須完全一樣,從而保證每條語句的地址是相同的。在ROM切換后,函數(shù)調(diào)用的返回地址是相同的。程序能正常運行而不跑飛。

  ·同理,兩塊ROM中SwitchChip函數(shù)體必須完全相同并定位在相同的地址。

  ·兩個工程中的全局變量在RAM中的定位必須完全一致,否則將出現(xiàn)不可預期的后果。

  ·ROM片選線的切換速度必須足夠快,使得CPU在讀取下一條指令前片選信號就已穩(wěn)定下來。

  程序中函數(shù)以及變量的定位可參考C51編譯器以及連接器的定位開關,這里就不展開了。

  彩色小長圖無紙記錄儀的設計與開發(fā)保持了與彩色中長圖無紙記錄儀的通用性。基本功能一致,體積減小,成本降低。并且使用了數(shù)據(jù)空間(RAM)擴展分頁訪問管理、代碼空間(ROM)擴展切換等新技術。

?

參考文獻

1 Dallas80C320 Data Sheet. Dallas Semiconductor, 1998

2 GM82C765 Data Sheet. LG Semicon.Co. LTD, 1996

3 徐愛鈞,彭秀華.單片機高級語言C51應用程序設計.北京:電子工業(yè)出版社,1998

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。