智能電磁流量計系統智能化軟件設計
在本項目的設計中,我們采用C196作為單片機系統的開發語言149,52,s3】。使用c語言進行流量計單片機系統的開發,有著匯編語言編程所不可比擬的優勢,介紹如下:
1.編程調試靈活方便
C語言編程靈活,同時,當前幾乎所有嵌入式系統都有相應的C語言級別的仿真調試系統,調試十分方便。
2.生成的代碼編譯效率高
當前較好的c語言編譯系統編譯出來的代碼效率只比直接使用匯編低20% 左右,如果使用優化編譯選項甚至可以更低。
3.模塊化開發
目前的軟硬件開發都向模塊化、可復用性的目標集中。不管是硬件還是軟件, 都希望其有比較通用的接口,在以后的開發中如果需要實現相同或者相近的功能, 就可以直接使用以前開發過的模塊,盡量不做或者少做改動,以減少重復勞動。如果使用C語言開發,數據交換可方便地通過約定實現,有利于多人協同進行人項目的合作開發。同時,C語言的模塊化開發方式使開發出來的程序模塊可不經修改.直接被其他項目所用,這樣就可以很好地利用已有的大量C程序資源與豐富的庫函數,從而地實現資源共享。
4.可移植性好
由于不同系列的嵌入式系統的c語言編譯工具都是以ANSI-C作為基礎進行開發的,因此,一種C語言環境下所編寫的C語言程序,只需將部分與硬件相關的地方和編譯連接的參數進行適當修改,就可方便移植到另外一種系列上.
5.便于項目維護管理
用c語言開發的代碼便于開發小組計劃項目、靈活管理、分工合作以及后期維護,基本上可以杜絕因開發人員變化而給項目進度、后期維護或升級所帶來的影響。從而保證整個系統的品質、可靠性以及可升級性。
4.1智能電磁流量計功能模塊的劃分
智能電磁流量計轉換器的工作過程,不僅要求CPU對來自傳感器的流量信號進行采集、處理、運算、顯示,完成流量、流速的檢測,同時還要控制產生低頻矩形波勵磁電流、輸出流量的積算總量值和輸出模擬電流、頻率以及數字通訊信等等,所以本系統智能電磁流量計的軟件部分設計是比較復雜的,根據上面提到的各個功能,主要功能可以劃分為:
1、單片機看門狗保護:
3、鍵盤管理:
5、寄存器管理;
7、輸入信號數字預處理;
9、網絡通信。
11、報警;
2、數據采集部分控制;
4、LCD顯示控制;
6、勵磁控制;
8、流量計算;
10、正反向流量檢測;
在這里要說明的是,這些任務的操作并不總是順序執行的,在很多時候需要并行地操作。如通信、鍵盤管理等在任何時候都有可能發生,流量計算可能消耗比較多的時間,數據采集需要定時進行等等。當然從指令層來看其程序仍是一條指令接一條指令順序執行,但從宏觀上來說,這些任務的處理是并行的。
4.2系統主程序
系統的主程序主要由主循環和初試化程序構成,其流程見圖4.1所示。裝置圖4.1主程序流程圖上電復位或手動、硬件復位后,微處理器80C196Kc就要響應復位信號,然后程序從地址0x2080開始執行。程序入口的個模塊是程序初始化模塊,包括對相關硬件的初始化和相應參數的初始化。硬件初始化主要是完成開關量輸出初始化, 顯示芯片初始化,微控制器的中斷,串行口、定時器等硬件資源的初始化,主要是對特殊寄存器的復制賦值;相應參數的初始化包括對程序中各個變量的初始賦值,比如對鍵值的初始賦值等;而主程序框圖中的各個子程序的執行,指的是對一些功能模塊的初始設置,這里主要指LCD顯示模塊的初始工作設置,在系統開始上電或復位工作以后,應在LCD上顯示一些特殊意義的信息,如儀表型號、生產廠家名稱、商標等文字圖案信息。還有其他的子程序初始化包括數據采集初始化子程序在系統開始工作之前,應對采集所存儲的地址指針清零等工作。在程序的主循環中,我們采用了檢測標志位的方法,運用中斷服務程序產生各執行的標志位,通過對其標志為的判定,來執行相應的子程序。
4.3看門狗程序
WATCHDOG(俗稱“看門狗”)是單片機抗干擾的軟件措施p”43,48】,它具有的特點是本身能獨立工作,基本不依賴于CPU,CPU只在一個固定的時間間隔內與其打一次交道,表明整個系統“目前尚屬正常”;另一個一個特點是當CPU 落入死循環后,能及時發現并使整個系統復位。我們這里采用的是WATCHDOG 硬件電路配合的措施,并不是純軟件的WATCHDOG系統。一般的。WATCHDOG 硬件電路為一獨立于CPU之外的單穩部件,可用單穩電路構成,也可用自帶脈沖源的計數器構成。CPU正常工作時每隔一段時間就輸出一個脈沖,將單穩系統觸發到暫穩態。當CPU陷入死循環后,再也不去觸發單穩系統了,單穩系統就可順利返回穩態。利用它返回穩態時輸出的信號作為復位信號,就可以使CPU退出死循環。這其中對于“喂狗”時機的考慮,也就是指復位“看門狗”,一般安排在等待查詢的循環體內部、耗時很大的函數體內部或主程序任務隊列中,下面就是一個“喂狗”的程序: void ClrRst(void) { unsigned char temp; if(RelyConFlag一0x劬{ tcmp 2iaportl; tcmp---temp&Oxef ioportl=temp; } }
免責聲明
客服熱線: 15267989561
加盟熱線: 15267989561
媒體合作: 0571-87759945
投訴熱線: 0571-87759942
下載儀表站APP
Ybzhan手機版
Ybzhan公眾號
Ybzhan小程序