昆山科爾源儀器儀表有限公司
閱讀:7發布時間:2025-7-13
引言
隨著工業生產和技術的不斷發展,流量測量的對象越來越多,精度要求也越來越高,新的測量方法和測試儀器也不斷涌現。但依據信號輸出類型,各種流量計總是可分為開方式模擬量輸出流量計、線性模擬量輸出流量計、脈沖式輸出流量計。例如,差壓式流量計屬于開方式模擬量輸出流量計,流量同輸出信號的開方成線性關系;線性模擬量輸出流量計有電磁流量計、質量流量計、旋進漩渦式流量計等,這些流量計的輸出信號與流量成線性關系;脈沖式輸出流量計包括容積式流量計、渦輪流量計、渦街流量計、插入式流量計等,這些流量計的發信器輸出脈沖信號,一個脈沖代表一定體積的流量。
對于不同信號類型輸出的流量計,二次顯示儀表的測量原理都是不一樣的。例如:線性模擬量輸出流量計,二次儀表測量模擬量(如4-20mA)信號,經過線性轉換之后就得到瞬時流量,然后根據瞬時流量進行累積運算;對于開方式模擬量輸出流量計的測量,需要在模擬量的測量后增加開方運算,開方后經過線性轉換得到瞬時流量,再根據瞬時流量進行累積運算。從這兩種流量計的測量方法可以看出,二次顯示儀表從一次表獲得的參數只有瞬時流量,而累積流量是二次表內部對瞬時流量的積分運算后得到的,即M=ƒ Ftdt,式中:M為累積流量;Ft為瞬時流量。對于脈沖式輸出流量計,二次表通過測量脈沖頻率,經過線性轉換后得到瞬時流量,而對于累積流量的測量,也可以通過對瞬時流量的積分運算獲得。
本文針對脈沖式輸出流量計的特點,提出一種以LPC2119處理器為核心,以uC/OS-II嵌入式操作系統為軟件平臺,可以自動調零,線性化,補償環境因素變化,并配以LED顯示并具有超量程報警輸出,具有CAN總線輸出接口的智能型脈沖式輸出流量計專用二次儀表。
1 頻率測量方法
脈沖式輸出流量計的脈沖頻率一般在10KHz以內,如渦街流量計輸出頻率為0~5KHz,容積式流量計更小,一般只有幾百Hz,甚至幾十Hz。流量計輸出脈沖一般不是很均勻的脈沖,例如容積式流量計(又稱定排量流量計,簡稱PD流量計),利用機械測量元件將流體連續不斷地分割成單個已知的體積部分,根據測量室逐次重復地充滿和排放該體積部分流體的次數來測量流體體積總量,其內部測量元件的轉動通過磁性密封聯軸器及傳動齒輪減速機構傳遞給計數器,并附加發信裝置輸出脈沖信號,由于機械傳動部分不可避免地存在輸出脈動和噪音,在一個轉動周期內,脈沖的分布不均勻。對于這樣的脈沖信號,就需要有一種合適的頻率測量方法來提高測量精度和響應速度,并解決瞬時流量的跳動和抗干擾問題。
通常采用的頻率測量方法有兩種:測頻法,就是在一定的時間間隔T內,對輸入的周期信號脈沖計數為N,則信號的頻率為f=N/T,這種方法適合于高頻信號的檢測;測周法,通過計數器計量輸入信號n個周期內所用的時間為T,則信號的頻率為f=n/T,這種方法適合于低頻信號的測量。兩種方法各有優缺點,測頻法適合于高頻信號的測量,但對于像容積式流量計輸出的低頻信號,測量精度低,不宜采用;測周法適合于低頻信號的測量,為了提高精度,一般在多個被測信號周期內計量標準信號的脈沖數,但這樣會增加采樣時間,降低響應速度。
本文所設計的二次儀表在測量頻率時將測頻法和測周法二者有機地結合起來,充分利用它們的優點,以達到在較寬的頻率范圍內有較好的精度和響應速度。初始情況下以時間T1為計時時間,首先采用測頻法對輸人頻率脈沖進行計數N1,若計時時間中止時N1為零,則表明輸入脈沖頻率低于該計時時間所能測到的頻率1/T1,應改用測周法重新對該輸入脈沖進行測量。每次測周法測量完畢后,還要將當次測量結果與臨界頻率1/T1X110%相比較,若fx>1/T1×110%則下次計算頻率時改用測頻法對脈沖進行測量。在此設定臨界頻率為1/T1×110%,主要為消除輸入脈沖頻率剛好位于1/T1附近,而帶來兩種測量方法的頻繁切換影響頻率測量的相應速度。
2 系統硬件組成
在實際工程環境下,流量計傳送的流量脈沖信號較微弱,同時受外界環境影響,信號攜帶大量噪聲,故電路配置了光耦隔離電路和運放電路進行信號整形,然后送入LPC2119單片機的定時器/計數器1;在液壓系統的流量測量中,為保證測量的精度,需要實時采集液壓油的溫度作為補償信號,電路中設置了溫度信號輸入接口,可直接將管路上的溫度傳感器信號直接接入儀表,經有源濾波和調理電路后,送入LPC2119單片機;在通訊方面,采用LPC2119內部所帶有的串口和CAN總線收發單元,直接完成向上位機傳送數據的任務;人機界面采用6位8段數碼管和三個按鍵。
LPC2119單片機
LPC2119單片機是飛利浦半導體公司推出的一款基于支持實時仿真和跟蹤的16/32位ARM7TDMI-S CPU的微控制器,并帶有128k字節嵌入的高速Flash存儲器,通過片內PLL可實現為60MHz的CPU操作頻率。由于LPC2119較小的64腳封裝、極低的功耗、2個32位定時器、4路10位ADC、1路CAN以及多達9個外部中斷使它特別適用于各種儀器儀表,測試單元,工業控制單元中。本設計選用LPC2119單片機作為儀表的核心,由于本身集成了較多的功能模塊,這樣無需其他過多外圍器件支持,使得整個儀表的可靠性和整體成本大大降低。
E2PROM存貯電路
CAT24WC01是一個1K位串行CMOS E2PROM,內部含有128個8位字節,CATALYST公司的CMOS技術實質上減少了器件的功耗,CAT24WC01有一個8字節頁寫緩沖器,I2C總線接口進行操作,并有一個專門的寫保護功能。儀表中用戶所設值的高低報警值,量程范圍的值,通訊方式都存放在這里,以方便掉電后可以重新讀取。
通訊電路
CAN-bus是一種多主方式的串行通訊總線,有高的位速率,高抗電磁干擾性,而且能夠檢測出產生的任何錯誤。CAN總線還具有傳輸距離遠,多主機,時間同步多點接受等特性。作為一種技術、可靠性高、功能完善、成本合理的遠程網絡通訊控制方式,CAN-bus已被廣泛應用到各個自動化控制系統中。由于LPC2119內置了CAN總線控制器,故只需在外圍添加一個CAN收發器TJA1050即可實現CAN總線的通訊。本儀表還提供串口通訊方式和上位機傳輸數據。
數碼管顯示和按鍵電路
數碼管和按鍵均由LPC2119的普通I/O驅動。面板6位8段數碼管動態顯示當前流量值,依據用戶所設量程小數點的位置會浮動顯示。當流量超過設定界,高報警燈HI或低報警燈LO點亮,繼電器同時吸合,從儀表后面板輸出相應的信號。按鍵功能依次為保存切換鍵,光標左移鍵,數值加一鍵,用戶通過面板按鍵可以設定采用CAN總線或UART來實現通訊,并可以設定脈沖當量數,用戶量程,高低報警界限等參數。
3 軟件設計
uC/OS-II是源代碼公開的實時嵌入式操作系統,它具有可移植性強、可裁減、搶占式多任務的實時內核、任務棧、系統服務、可固化、穩定性、中斷管理等特點,包含了任務管理、時間管理、任務間通信同步(信號量,郵箱,消息隊列等)和內存管理等功能。它是面向中小型嵌入式系統的,包含全部功能模塊的內核大約為10KB,如果經過裁減只保留核心代碼,則可壓縮到2KB左右。由于結構簡單,源代碼量少,對處理器及外圍電路的要求不高,因此非常適合于應用在儀器儀表的內嵌微控制器。
儀表采用uC/OS-II操作系統做為軟件開發的平臺,并在上面開發數據隊列、I2C總線驅動,CAN總線驅動,串口驅動等中間件,uC/OS-II上創建任務時只需調用這些中間件就可以完成對實際硬件的操作。左圖4說明了uC/OS-II的軟硬件體系結構。應用程序處于整個系統的頂層,每個任務都可以認為自己獨占CPU,因而可以設計成為一個無限循環。uC/OS-II處理器無關的代碼提供了uC/OS-II的系統服務,應用程序可以使用這些API函數進行內存管理、任務間通信以及創建、刪除任務等。由于設計uC/OS-II時就考慮到了在不同處理器上移植,因而移植uC/OS-II實際上需要修改的代碼量很小,其中需要修改的部分只是與處理器相關部分的文件。在uC/OS-II的網站www.uC/OS-II.org提供了uC/OS-II在一百多種處理器上的移植代碼,其中也包括針對LPC2119處理器的移植源代碼,故具體移植過程和方法再此就不多敘述。
任務建立
根據儀表的功能要求,系統設計了頻率測量,數據傳輸,A/D采集,數碼管顯示,儀表參數設置5個任務具體程序流程圖詳見圖。每個任務都有自己的名稱、內存空間和優先級。不同的任務必須有不同的優先級,它們可以是0~62之間的任意值,數值越小優先級越高。優先級的設置有不同的依據,以本儀表為例,頻率測量的任務對時間要求,該任務的實現頻率直接關系到儀表的精度和響應速度,優先級設為;串口通訊或CAN總線通訊要及時將所測流量值傳送給上位機,優先級設置為高;顯示任務只是通過LED顯示瞬時流量值提供給用戶參考,優先級設為次高;提供AD采集任務運行使用來采集油溫,為測量實際流量提供補償量,由于改量緩慢變化特性,對其采樣頻率不必太快,優先級設為低;參數設置任務只實現人機交互,顯示狀態和參數對控制器性能沒有直接影響,優先級設為。uC/OS-II要求為每個任務分配OS_STK類型的堆棧空間,并且它們占用的RAM存儲空間必須是連續的。任務延時是指任務執行完畢處于掛起等待狀態到下一次重新運行之間的時間間隔,它的單位是時鐘中斷節拍。由于OS_TICKS_PER_SEC為100,每一拍為10ms。每個任務的調用間隔不能小于一個節拍,否則它將影響模擬量的采樣頻率。各個任務的屬性定義如表1所示。
表1 任務屬性定義
任務名稱 | 優先級 | 內存空間 | 延時(節拍) | 主要功能 |
Task_Measure | 8 | 40 | 2 | 計算當前流量 |
Task_Uart | 9 | 80 | 2 | 串口發送數據 |
Task_Can | 10 | 80 | 2 | CAN發送數據 |
Task_Show | 11 | 100 | 5 | LED顯示流量 |
Task_A/D | 12 | 40 | 5 | 采集油溫 |
Task_Set | 13 | 100 | 5 | 設置儀表參數 |
各個任務是通過搶占CPU的使用權來運行的,它們之間存在一定的邏輯關系,彼此互相聯系又互相制約。信號量、郵箱、消息隊列等功能為實現任務間通信提供了有力工具,它們的使用方法靈活多變,如用信號量設置事件標志,喚醒任務、用郵箱在任務間傳遞參數、用消息隊列的循環尋址功能進行模擬通道的數據采集等。本儀表采用一個信號量SemSet,在出現按鍵中斷后該信號量置位,用來喚醒主程序中儀表參數設定任務。數據隊列Trans_Que,用來在頻率測量任務和通訊任務之間傳遞實際需要發送的參數。郵箱ADCMbox,郵箱PARAMboX和郵箱LEDMboX是分別用來在AD采集任務、參數設定任務、數據顯示任務與頻率測量任務之間建立聯系的紐帶。
4 結論
本儀表采用LPC2119處理器和uC/OS-II操作系統設計了一個針對脈沖輸出型流量計二次儀表,硬件結構簡單成本低廉,軟件借助于操作系統的多任務管理,任務間同步與通信特點,提高了系統的可靠性和實時性。經標準信號發生器輸出頻率范圍0-500KHz的方波信號,經該儀表測量誤差均不超過0.5%。
本設計創新之處在于大大降低了生產成本,約為國外同等產品的二十分之一,同時又實現了高精度,高可靠,安裝方便,使用簡單的要求。該儀表在實際工程項目中已大量使用。
參考文獻:
[1] Jean J.Labrosse著.邵貝貝譯.嵌入式操作系統uC/OS-II.北京航空航天大學出版社
[2] 宋寅卯 張青波.基于uC/OS-II的旋轉體非接觸測溫系統[J].微計算機信息2005,10-2
儀表網 設計制作,未經允許翻錄必究 .? ? ?
請輸入賬號
請輸入密碼
請輸驗證碼
請輸入你感興趣的產品
請簡單描述您的需求
請選擇省份