閆保中 孟慶丹 鄒銀紅
(哈爾濱工程大學(xué)自動化學(xué)院,哈爾濱 150001)
隨著信息技術(shù)的發(fā)展以及現(xiàn)代探測技術(shù)的不斷進(jìn)步,帶有平板顯示器的智能終端逐步取代了傳統(tǒng)的儀表方式,這對于工作人員處理大量的信息提供了極大的便利[1~3]?;谏鲜鲈颍P者提出了一種無損信號檢測儀人機(jī)界面的設(shè)計(jì)方案,該方案采用ARM11處理器作為硬件平臺,以嵌入式Linux系統(tǒng)為軟件平臺,在此基礎(chǔ)上采用開源的圖形界面庫Qt開發(fā)上層應(yīng)用程序并把應(yīng)用程序中所需要的庫文件進(jìn)行了移植,最后對設(shè)計(jì)完成的儀器進(jìn)行了調(diào)試,根據(jù)調(diào)試結(jié)果給出問題相應(yīng)的解決方案。該人機(jī)界面在可移植性、可維護(hù)性和成本方面都得到了良好的改善。
Linux操作系統(tǒng)完全沿襲了Unix系統(tǒng)的架構(gòu),因此它具有成熟穩(wěn)定的特點(diǎn),在網(wǎng)絡(luò)通信方面的效率和功能都很突出[4]。Linux是開源的操作系統(tǒng),系統(tǒng)的設(shè)計(jì)者可以對嵌入式Linux進(jìn)行二次開發(fā),只保留必須的操作系統(tǒng)功能即可,并可以根據(jù)實(shí)際應(yīng)用的需要優(yōu)化操作系統(tǒng)的代碼。此外,Linux還有出色的速度性能[5]。信號檢測儀可使用的硬件資源相對較少并且要求上電時間短,綜合上述因素操作系統(tǒng)選擇嵌入式Linux。
與X86架構(gòu)的處理器硬件平臺相比,ARM級別的處理器具有低功耗優(yōu)勢,且在硬件資源(處理器性能及存儲容量等)方面,ARM架構(gòu)的硬件平臺有時更加滿足系統(tǒng)的需要,因此選擇主處理器為S5PV210的ARM11架構(gòu)作為檢測儀人機(jī)界面開發(fā)的硬件平臺[6]。
Qt是一個跨平臺的C++圖形用戶界面庫,由挪威TrollTech公司出品,目前包括基于Frame-Buffer的 Qtopia Core快速開發(fā)工具Qt Designer及國際化工具Qt Linguist等。Qt支持所有的Unix系統(tǒng),當(dāng)然也包括Linux系統(tǒng),還支持WinNT、Win2k、Windows 95/98平臺。Qt基本上同X-Window上的Motif OpenwinGTK等圖形界面庫和Windows平臺上的MFC OWLVCL ATL是同類型的[7]。筆者結(jié)合探測儀實(shí)際的運(yùn)行環(huán)境、嵌入式Linux系統(tǒng)及嵌入式GUI等,實(shí)現(xiàn)了適合探測儀的人機(jī)界面(HMI)特定波形顯示。
硬件平臺選擇arm11-tiny210,10寸液晶顯示屏,操作系統(tǒng)選擇為Linux,版本為Fedora 9,其內(nèi)核為Linux-kernel 2. 6.25-14。為了便于應(yīng)用程序的開發(fā),根據(jù)用戶的需求描述和硬件系統(tǒng)本身的條件,筆者采用VMware WorkStation7.0虛擬機(jī)和Fedora 9操作系統(tǒng)作為開發(fā)環(huán)境[8]。
VMware WorkStation7.0虛擬機(jī)和Fedora 9操作系統(tǒng)安裝在上位機(jī)上[9],然后在此環(huán)境中安裝交叉編譯工具linux-gcc-arm-4.5.1-v6-vtf以完成Qt庫的驅(qū)動和應(yīng)用程序的編譯[10]。編譯安裝 Qt/Embedded庫,用來支持人機(jī)交互界面程序的開發(fā)。在Fedora 9系統(tǒng)中安裝Qt Creator集成開發(fā)環(huán)境,用于完成檢測儀HMI應(yīng)用程序的開發(fā),加載硬件平臺相關(guān)驅(qū)動。開發(fā)的應(yīng)用程序經(jīng)過交叉編譯生成可執(zhí)行文件后,利用網(wǎng)絡(luò)傳輸NFS傳到ARM板中,在ARM板中運(yùn)行可執(zhí)行文件。
系統(tǒng)的總體設(shè)計(jì)框架如圖1所示,主要由中央處理電路、顯示和擴(kuò)展電路3部分組成。中央處理電路部分包括電源模塊、信號預(yù)處理模塊和Arm11模塊,這幾個模塊封裝在一個小的箱體內(nèi)。顯示部分主要是一個10寸的LCD信號顯示屏,操作者可以很方便地通過顯示屏進(jìn)行人機(jī)交流。所有的接線口都裝在擴(kuò)展電路板上,探頭采集的信號通過一根電纜輸入信號線接口,擴(kuò)展板上還有鼠標(biāo)、鍵盤和USB接口,現(xiàn)場采集的數(shù)據(jù)存入系統(tǒng)后,可通過這些接口實(shí)現(xiàn)數(shù)據(jù)交換,便于以后分析。電源既能給采集系統(tǒng)提供低壓直流電,又能通過充電接口充電。所有模塊之間的連接線都在內(nèi)部,現(xiàn)場使用時,只需要通過一根信號線與檢測探頭連接起來即可。
圖1 檢測系統(tǒng)的總體設(shè)計(jì)框架
檢測儀的軟件采用的是多級界面, 主界面是整個人機(jī)界面的中心,主要功能是各參數(shù)的設(shè)置,通信連接,特定波形的實(shí)時顯示,查詢已檢測管子的數(shù)量以及合格數(shù)量與不合格的數(shù)量。大多數(shù)界面可以直接跳轉(zhuǎn)到主界面。主界面下是主要子系統(tǒng)界面, 通過這些界面可以查看各子界面的狀態(tài),歷史查詢界面可以通過相應(yīng)的文件索引查找所需要的歷史數(shù)據(jù),還可以通過維護(hù)界面設(shè)置系統(tǒng)時間并查看各子系統(tǒng)的軟件版本等信息。
應(yīng)用程序采用模塊化設(shè)計(jì),主要包括無線傳輸模塊、信號采集模塊、波形顯示模塊、SD卡存儲模塊和數(shù)據(jù)打印模塊。系統(tǒng)軟件整體框圖如圖2所示。
圖2 檢測系統(tǒng)軟件整體設(shè)計(jì)框圖
3.2.1圖形顯示的設(shè)計(jì)
特征波形顯示界面模塊包括A/D采集、波形顯示和數(shù)據(jù)保存3個部分(圖3)。
圖3 波形顯示界面
點(diǎn)擊界面中的啟動按鍵開始A/D采集,當(dāng)采集結(jié)束后兩組波形就顯示在兩個坐標(biāo)框內(nèi),同時波形數(shù)據(jù)將保存至SD卡中新創(chuàng)建的文件中。波形顯示模塊流程如圖4所示。
波形顯示部分采用Qt的基礎(chǔ)類 QPainter開發(fā),QPainter具有豐富的圖形圖像繪制函數(shù),并支持像素混合漸變填充反走樣及線性變換等特性,利用這些函數(shù)完成相應(yīng)的波形顯示(圖5),其部分程序代碼如下:
QPainter painter(this);
painter.fillRect(0,0,w,h,QColor(0,0,0) );
painter.translate(5*dx,6*dy);
painter.setPen(QPen(Qt::red, 2));
….
QPointF curve[num];
for(int j=0;j { curve[j].setX(j*dx/10); curve[j].setY(m_list2.at(j)*-5*dy/3.3+50); } painter.drawPolyline(curve,num); 圖4 波形顯示模塊程序流程 圖5 A/D采集數(shù)據(jù)的波形顯示 3.2.2文件系統(tǒng)的設(shè)計(jì) 文件系統(tǒng)的設(shè)計(jì)代碼如下: QString strDate = QDate::currentDate().toString("yyyyMMdd");//用當(dāng)前的時間創(chuàng)建一個文件夾 QString date1=strDate; int hour= QTime::currentTime().hour();//以當(dāng)前小時創(chuàng)建一個文件夾 QString hour1= QString("%1").arg(hour); QString path=QString("/sdcard/%1/%2/").arg(date1).arg(hour1); 在實(shí)地調(diào)試過程中,將整個系統(tǒng)安裝完成后,通過傳感器進(jìn)行數(shù)據(jù)采集,將采集到的數(shù)據(jù)通過無線通信傳送至HMI界面,測試軟件部分是否存在Bug,如存在則進(jìn)行改進(jìn)。經(jīng)過多次反復(fù)的改進(jìn)后,整個系統(tǒng)運(yùn)行正常并且準(zhǔn)確率很高,系統(tǒng)實(shí)際工作后波形結(jié)果如圖6所示。 圖6 HMI實(shí)際運(yùn)行波形 結(jié)合實(shí)際項(xiàng)目,設(shè)計(jì)了一種基于Linux Qt的無損信號探測儀軟件的方案,從硬件和軟件的選型、平臺搭建及詳細(xì)設(shè)計(jì)等方面進(jìn)行了闡述,并且著重描述了軟件系統(tǒng)圖形顯示模塊的設(shè)計(jì)過程、工作流程和系統(tǒng)測試過程。以性能優(yōu)異的ARM平臺和穩(wěn)定性良好的Linux操作系統(tǒng)為基礎(chǔ),利用功能強(qiáng)大的開源圖形庫Qt 進(jìn)行系統(tǒng)開發(fā)設(shè)計(jì),最終實(shí)現(xiàn)了信號探測儀的軟件系統(tǒng)設(shè)計(jì)。通過現(xiàn)場實(shí)際應(yīng)用,證明該系統(tǒng)完全符合要求,并且具有較高的實(shí)時性、可靠性和穩(wěn)定性。3.3 系統(tǒng)測試與結(jié)果分析
4 結(jié)束語