基于渦街流量計(jì)的人機(jī)界面設(shè)計(jì)與研究
人機(jī)界面介于用戶和產(chǎn)品系統(tǒng)之間,作為人與產(chǎn)品之間傳遞、交換信息的媒介,在整個(gè)工業(yè)儀表的設(shè)計(jì)里都起到了很大的作用。以渦街流量計(jì)為基礎(chǔ),設(shè)計(jì)出了一種低功耗、簡(jiǎn)便靈活的人機(jī)界面系統(tǒng),主要涉及液晶數(shù)據(jù)顯示和按鍵操作控制,并通過(guò)實(shí)驗(yàn)驗(yàn)證了該系統(tǒng)的實(shí)用性。
對(duì)于渦街流量計(jì),其振動(dòng)頻率與流體流速之間的關(guān)系為:
f=(St ×ν) / d (1)
其中:St 為斯特勞哈爾數(shù),f 為振動(dòng)頻率,v 為流體流速,d 為漩渦發(fā)生體寬度。 渦街流量信號(hào)的輸出幅度由渦街流量計(jì)的管道直徑、流體密度和流速所決定。 對(duì)于應(yīng)力式測(cè)量方式,在一定的管徑下,渦街正弦信號(hào)的幅值 A、密度 ρ 和平均流速 ν 存在下述關(guān)系:
A∝ρν2 (2)
因此,可以得出結(jié)論,當(dāng)流體密度不變時(shí),信號(hào)幅值則正比于流速的平方,即正比于頻率的平方。 渦街流量計(jì)的信號(hào)處理也常運(yùn)用此規(guī)律。
1.人機(jī)界面硬件設(shè)計(jì)
針對(duì)以上信號(hào)特點(diǎn), 人機(jī)界面的設(shè)計(jì)需要考慮基于包括功耗問(wèn)題、處理器接口是否豐富、所選用芯片的相關(guān)性能參數(shù)是否達(dá)到設(shè)計(jì)要求等等。
本文設(shè)計(jì)的渦街流量計(jì)人機(jī)界面的硬件系統(tǒng)結(jié)構(gòu)如圖 1所示,其中采用了以美國(guó) TI 公司的 MSP430 系列為核心的信號(hào)控制處理單元。 考慮到渦街流量計(jì)的液晶顯示功能并不十分復(fù)雜, 而且要實(shí)現(xiàn)該流量計(jì)整體的低功耗, 因此選用段碼顯示的低功耗液晶顯示模塊LCM141。 該液晶顯示模塊集液晶顯示屏,驅(qū)動(dòng)電路和控制電路于一體,大大簡(jiǎn)化了應(yīng)用電路的設(shè)計(jì),節(jié)省硬件資源和空間。 此外,由于其微功耗特性,用于簡(jiǎn)單的流量、溫度和壓力等儀表的顯示是十分方便和有效的。 LCM141 使用時(shí)只需連接 6 個(gè)引腳。在硬件設(shè)計(jì)中,MSP430F2272 接 LCM141 模塊的 CS 腳作片選信號(hào),DATA 腳作為數(shù)據(jù)位,WR 腳作為寫入控制信號(hào)。
根據(jù)流量計(jì)的功能要求, 設(shè)計(jì)了由 4 個(gè)獨(dú)立按鍵組成的鍵盤,分別為:“功能鍵”、“移位鍵”、“增加鍵”和“退出鍵”。 四個(gè)按鍵的電路設(shè)計(jì)相同,采用一鍵多用使其能完成顯示內(nèi)容選擇、儀表參數(shù)設(shè)置、各界面相關(guān)切換等多種操作。 4 個(gè)按鍵分別與具有中斷輸入功能的 I / O 口相連,按鍵按下時(shí),相應(yīng)的 I / O 口觸發(fā)中斷,在中斷服務(wù)程序中完成按鍵消抖、鍵碼識(shí)別、置標(biāo)志位等操作。 這種中斷方式,提高了按鍵的響應(yīng)速度,無(wú)需 CPU 查詢,降低功耗。 人機(jī)界面的通訊采用異步串行通信接口模式 UART。 Pin 口接收前端傳送的頻率信號(hào) ,RXD、TXD 負(fù)責(zé)接收和發(fā)送傳輸數(shù)據(jù)。 如圖 2 所示,其他端口備用。
2.人機(jī)界面軟件設(shè)計(jì)
考慮到渦街流量計(jì)的人機(jī)界面系統(tǒng)需實(shí)現(xiàn)測(cè)頻、顯示、按鍵捕捉和通信等功能。 為了充分利用單片機(jī)的性能,提高測(cè)頻精度以及考慮系統(tǒng)實(shí)時(shí)性的要求,需要合理分配單片機(jī)的資源。 頻率測(cè)量功能通過(guò)定時(shí)和捕捉中斷實(shí)現(xiàn),以滿足其精度要求。 按鍵捕捉和通信功能也通過(guò)中斷實(shí)現(xiàn),避免反復(fù)查詢消耗單片機(jī)資源。
顯示功能需反復(fù)更新,且實(shí)時(shí)性要求低,因此在主程序中實(shí)現(xiàn)。單片機(jī)各中斷程序負(fù)責(zé)必要的數(shù)據(jù)接收、處理以及標(biāo)志位的置、清位,而主程序則實(shí)現(xiàn)較為復(fù)雜的數(shù)值運(yùn)算和顯示的更新。 采用上述方法可以提高系統(tǒng)的實(shí)時(shí)性和運(yùn)行效率。
主程序首先進(jìn)行初始化,然后循環(huán)反復(fù)判斷液晶顯示模式變MODE,根據(jù) MODE 的數(shù)值進(jìn)行相應(yīng)的液晶顯示。 當(dāng) MODE1 時(shí),液晶進(jìn)行頻率的計(jì)算 、數(shù)值轉(zhuǎn)換和顯示工作 ;當(dāng) MODE2 時(shí),進(jìn)入預(yù)留的 DEBUG 模式;當(dāng) MODE 為 3 時(shí),顯示當(dāng)前口徑值, 當(dāng)相應(yīng)的按鍵按下, 標(biāo)志位置位后, 可修改口徑值;當(dāng)MODE 為 4 時(shí),顯示當(dāng)前介質(zhì)值,當(dāng)相應(yīng)的按鍵按下,標(biāo)志位置位后,可修改介質(zhì)值;當(dāng) MODE 為 5 時(shí),進(jìn)入小流量切除模式。
應(yīng)力式渦街流量計(jì)在可測(cè)流量段內(nèi)的輸出頻率大體分布在0.1~4000Hz,因此,設(shè)計(jì)方案應(yīng)滿足這一頻率范圍。 渦街流量計(jì)的一般精度為 0.5%,因此計(jì)量所要求的測(cè)頻精度需達(dá)到 0.2%,這就對(duì)測(cè)頻系統(tǒng)提出了很高的要求。 目前常用的數(shù)字測(cè)頻方法有 M 法、T 法、M/T 法。 其中 M 法在測(cè)量高頻信號(hào)時(shí)精度較高,T 法在測(cè)量低頻信號(hào)時(shí)精度較高,而 M/T 法綜合了 M 法和 T 法兩種測(cè)頻方法的優(yōu)點(diǎn),在高頻和低頻時(shí)都有較高的精度,所以采用 M/T 法測(cè)頻。
本文采用片內(nèi)定時(shí)器的捕獲模塊和定時(shí)功能, 在 4000Hz以下,無(wú)論低頻還是高頻均可達(dá)到 0.2%的測(cè)量精度。 如圖 4 所示,M / T 法測(cè)頻一方面檢測(cè) Tc 時(shí)間內(nèi)定時(shí)器捕獲的脈沖個(gè)數(shù)M1, 另一方面也檢測(cè)同一時(shí)間間隔的定時(shí)器產(chǎn)生的高頻時(shí)鐘脈沖個(gè)數(shù) M2。 測(cè)頻公式如下,其中 f0 為高頻時(shí)鐘脈沖的頻率。
采用 M / T 法測(cè)頻時(shí), 被測(cè)信號(hào)的周期數(shù)可以認(rèn)為是準(zhǔn)確的,而測(cè)量周期是通過(guò)高頻時(shí)鐘脈沖的個(gè)數(shù)計(jì)算得到,測(cè)量周期會(huì)存在 1 個(gè)高頻時(shí)鐘脈沖周期的誤差。 當(dāng)高頻脈沖多計(jì) 1 次時(shí),測(cè)頻的理論誤差計(jì)算如公式(4);當(dāng)高頻脈沖多計(jì) 1 次時(shí),測(cè)頻的理論誤差計(jì)算如公式(5)。
當(dāng) N 大于 200 時(shí)就能滿足測(cè)頻 0.2%的精度要求,而采用單片機(jī) 16 位定時(shí)器作為高頻時(shí)鐘脈沖信號(hào)時(shí) N 值約為 65536,因此 M / T 法的理論誤差約為 1 / 65536。 采用 MSP430 的 16 位Timer_B 定時(shí)器作為高頻時(shí)鐘信號(hào), 由于被測(cè)頻率范圍為 0.1~4000Hz,測(cè)量基準(zhǔn)周期選取 2s。 具體測(cè)量方法如圖 5 所示。
啟動(dòng)測(cè)頻后, 捕獲模塊會(huì)在時(shí)間閥值內(nèi)捕捉每個(gè)脈沖的上升沿,并自動(dòng)將 16 位計(jì)數(shù)器 TBR 賦值至 TBCCR0 寄存器供程序使用。 計(jì)算時(shí)間閥值內(nèi)***后一個(gè)上升沿 TBR 與個(gè)上升沿 TBR 的差值 ,便可得到 N 個(gè)脈沖的周期 T。 在程序中 , 采用Timer_B 的周期中斷和 TBCCR0 的捕捉中斷實(shí)現(xiàn)測(cè)頻功能。
Timer_B 周期中斷服務(wù)程序的流程圖如 6 所示。 進(jìn)入中斷后,首先判斷捕獲脈沖個(gè)數(shù)。 如果脈沖個(gè)數(shù)小于 2, 則判斷溢出次數(shù)
TB_OVCOUNT 是否等于 10。 若等于 10,則表示 20s 內(nèi)無(wú)信號(hào)輸入,清零脈沖計(jì)數(shù) PULSE。 否則溢出次數(shù)加 1,繼續(xù)等待并判斷;當(dāng)捕獲脈沖個(gè)數(shù)大于等于 2 時(shí),PULSE 首先減 1,并將***后一個(gè)上升沿 TBR 與個(gè)上升沿 TBR 的差值賦給周期值的低位 TIME_L、TB_OVCOUNT 賦給 TIME_H,***后清周期中斷標(biāo)志并退出中斷。
進(jìn)入 TBCCR0 的捕捉中斷服務(wù)程序中斷后先判斷捕獲脈沖是否為零, 為零則清 TB_OVCOUNT, 并將此次捕獲值存入CAP_FIRST,捕獲脈沖加 1;不為零則此次捕獲值存入 CAP_LAST,
然后捕捉脈沖加 1,***后清捕捉脈沖中斷標(biāo)志并退出中斷。
頻率值的計(jì)算和顯示在主程序中運(yùn)行。 在液晶顯示模塊的設(shè)計(jì)中,我們制定了一套多層次的調(diào)用函數(shù),便于在使用時(shí)根據(jù)不同的要求靈活調(diào)用和擴(kuò)展,做到了分層化、模塊化,提高了代碼重用性和擴(kuò)展性。 為了盡可能提高頻率的顯示精度,根據(jù)渦街流量計(jì)的精度要求, 對(duì)于不同頻率段, 頻率顯示的小數(shù)位數(shù)不同,采用 0.1~2.5Hz 顯示 4 位小數(shù),2.5~25Hz 顯示 3 位小數(shù),25 ~250Hz 顯 示 2 位 小 數(shù) ,250~2500Hz 顯示 1 位小數(shù) ,2500Hz 以上不顯示小數(shù) 。 此外, 對(duì)于***后一個(gè)有效數(shù)字進(jìn)行了四舍五入修正, 進(jìn)一步提高測(cè)頻精度。
按鍵程序設(shè)計(jì)遵循以下原則:①采用中斷方式接入,盡量不要將 CPU 從低功耗休眠態(tài)中喚醒來(lái)掃描按鍵端口; ②按鍵消抖采用軟件延時(shí)方法;③由于按鍵數(shù)量很少, 利用狀態(tài)組合法實(shí)現(xiàn)按鍵復(fù)用功能。 因此采用置標(biāo)志位的方法, 使程序簡(jiǎn)化。 具體的按鍵中斷程序流程圖如下。 MODE 為界面標(biāo)志,1 為運(yùn)行狀態(tài),2 為調(diào)試狀態(tài),3~5 為設(shè)置狀態(tài)。
四個(gè)按鍵分別定義如表 1 功能便于系統(tǒng)操作。
3.實(shí)驗(yàn)結(jié)果分析
在實(shí)驗(yàn)測(cè)試中, 主要針對(duì)渦街流量計(jì)進(jìn)行了人機(jī)界面的軟硬件聯(lián)調(diào),并對(duì)軟、硬件設(shè)計(jì)進(jìn)行了驗(yàn)證。 在頻率精度測(cè)試過(guò)程中,選取了不同頻率段的共計(jì) 18 個(gè)頻率測(cè)試點(diǎn)。 表 2 為 18 個(gè)頻率測(cè)試數(shù)據(jù),并計(jì)算了顯示頻率與實(shí)際頻率的誤差。
測(cè)試結(jié)果表明, 頻率測(cè)量模塊完全達(dá)到原先設(shè)計(jì)設(shè)想和0.2%的精度要求,且測(cè)頻方案的測(cè)頻精度很高,達(dá)到了 0.05%。
4.結(jié)束語(yǔ)
通過(guò)實(shí)驗(yàn)驗(yàn)證了所設(shè)計(jì)人機(jī)界面的實(shí)用性, 后續(xù)也可以增加新的參數(shù)與功能,使得人機(jī)界面更為多樣化。