基于ARM嵌入式智能控制器的設(shè)計與實(shí)現(xiàn)
良好的人機(jī)交互設(shè)計給系統(tǒng)的操作帶來方便。嵌入式系統(tǒng)中的GUI設(shè)計應(yīng)綜合考慮代
碼占用的資源、GUI響應(yīng)的速度和易于使用三個因素。若移植成熟的GUI源碼,占用資源太大,響應(yīng)速度相對較慢,本設(shè)計采用面向?qū)ο蟮脑O(shè)計方法,合理的定義了一些數(shù)據(jù)結(jié)構(gòu),使得圖形化顯示既滿足要求,又具有良好的擴(kuò)展性。
依據(jù)人機(jī)界面設(shè)計的具體要求,分析顯示數(shù)據(jù)的特點(diǎn),為方便參數(shù)的顯示和處理我們定義了一系列的數(shù)據(jù)結(jié)構(gòu),從而使得系統(tǒng)的顯示和修改異常方便。首先確定系統(tǒng)需要多少個窗口,每個窗口有多少個菜單,畫出窗口之間的變遷圖,可以知道所有的窗口應(yīng)當(dāng)組成一個樹形結(jié)構(gòu)。主要的數(shù)據(jù)結(jié)構(gòu)如圖2-5所示。
軟件設(shè)計時,首先按照定義的數(shù)據(jù)結(jié)構(gòu)定義每屏的顯示數(shù)據(jù)和窗口處理函數(shù),當(dāng)有鍵按下時,系統(tǒng)依據(jù)當(dāng)前鍵值、當(dāng)前窗口號和當(dāng)前光標(biāo)確定系統(tǒng)按鍵后的新窗口號和當(dāng)前光標(biāo),然后根據(jù)窗口號和光標(biāo)從該窗口的數(shù)據(jù)區(qū)中取出將要顯示的數(shù)據(jù)給窗口緩沖區(qū),液晶顯示的界面就是從窗口緩沖區(qū)中將數(shù)據(jù)直接取出并顯示。
依據(jù)顯示窗口中數(shù)據(jù)處理的行為,可把顯示方法分為兩種。一種是利用上述的顯示方法,具有良好的統(tǒng)一性,另一種的單獨(dú)處理。因?yàn)樵陲@示的各個界面中,有些界面數(shù)據(jù)處理特別少,有些處理特別多,比如參數(shù)修改窗口界面,此時需要把這些窗口獨(dú)立出來單獨(dú)處理。當(dāng)按鍵調(diào)用此窗口時,系統(tǒng)調(diào)用此窗口的專用窗口處理函數(shù)來處理,直到檢測到退出此窗口的消息時,才結(jié)束此操作,調(diào)用另外模塊。在實(shí)際工程中,合理利用這兩種顯示方法對于復(fù)雜行為的人機(jī)交互的處理帶來方便。一般是系統(tǒng)的主要頂級窗口顯示使用統(tǒng)一顯示,而葉子窗口使用單獨(dú)處理較好。
3.3 數(shù)據(jù)采集及控制
模擬量數(shù)據(jù)采集主要含有采集算法和數(shù)據(jù)處理兩部分。為了確保采集的正確性,本文
采用中位值平均濾波方法。采集的數(shù)據(jù)多達(dá)32路,而且被系統(tǒng)頻繁執(zhí)行,因此好的設(shè)計結(jié)構(gòu)至關(guān)重要。在綜合權(quán)衡多路開關(guān)切換時間、啟動轉(zhuǎn)換切換時間和數(shù)據(jù)轉(zhuǎn)換時間后,采用一路采集多次方法。采集模塊在啟動當(dāng)前路模數(shù)轉(zhuǎn)換的同時,對前一路的采集進(jìn)行濾波處理并保存顯示,這樣節(jié)約了采集模塊所用的時間。
3.4 網(wǎng)絡(luò)通信模塊
網(wǎng)絡(luò)通信主要完成網(wǎng)卡芯片的初始化、數(shù)據(jù)的收發(fā)以及網(wǎng)絡(luò)協(xié)議棧的移植。本系統(tǒng)網(wǎng)
卡芯片RTL8019AS內(nèi)含16KRAM,用作發(fā)送和接收緩沖區(qū)。當(dāng)有數(shù)據(jù)過來,通過本地DMA將數(shù)據(jù)從網(wǎng)線拷貝到網(wǎng)卡接收緩沖區(qū),當(dāng)緩沖區(qū)滿時,再通過遠(yuǎn)程DMA將數(shù)據(jù)拷貝到內(nèi)存供處理器處理。
網(wǎng)卡芯片的驅(qū)動程序主要通過對網(wǎng)卡芯片內(nèi)部一系列寄存器的配置來實(shí)現(xiàn)網(wǎng)卡的復(fù)位、物理地址配置、讀寫緩沖區(qū)指針的配置和數(shù)據(jù)收發(fā)配置等。編寫程序過程中應(yīng)熟悉網(wǎng)卡芯片前32個地址空間的所完成的功能和操作方法,從而使網(wǎng)卡能正常工作。當(dāng)完成了驅(qū)動程序后,就需要移植TCP/IP協(xié)議棧。在熟悉ARP、IP、ICMP、TCP、UDP、TELNET等協(xié)議以及各種公開源碼的協(xié)議棧的基礎(chǔ)上,本文選用代碼小、效率高的uIP協(xié)議棧。在調(diào)試的過程中,依據(jù)網(wǎng)絡(luò)原理的分層結(jié)構(gòu)以及網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)拇虬徒獍^程,一層一層的調(diào)試,并用VC編寫一些網(wǎng)絡(luò)截包程序和收發(fā)程序來聯(lián)合調(diào)試,確保數(shù)據(jù)在傳輸過程中收發(fā)正常并按正確的方式流動。此外,調(diào)試過程應(yīng)注意數(shù)據(jù)寬度以及邊界對齊問題,否則數(shù)據(jù)將不能正確收發(fā)。
4 小結(jié)
本智能控制器的設(shè)計不僅完成了基本的人機(jī)界面和輸入輸出操作,而且具有良好的通
信、數(shù)據(jù)查詢、自動升級、自動開關(guān)機(jī)、數(shù)據(jù)自動記錄、故障自動記錄到片內(nèi)FLASH以及故障數(shù)據(jù)向上位機(jī)傳輸?shù)裙δ?。?jīng)過反復(fù)測試與實(shí)驗(yàn),各項性能均滿足要求。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論