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