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