江俊 韓夢 梁小芳 何翔



摘? 要:隨著計算機技術的飛速發(fā)展,嵌入式系統已經廣泛應用于工業(yè)控制、家用電器以及移動通信等各行各業(yè)中。本文主要研究嵌入式系統的數據采集以及處理過程。首先介紹了ARM集成開發(fā)環(huán)境,然后分析了Cortex-A9運行過程,最后闡述了嵌入式系統的數據處理過程,并通過蝶形算法在Cortex-A9微處理器基礎上進行了實現。
關鍵詞:嵌入式;數據處理;傅里葉變換;蝶形算法
Abstract:With the rapid development of computer computing,embedded systems have been widely used in industrial control,household appliances,mobile communications and other industries. This paper mainly studies the data acquisition and processing process of embedded systems. This paper first introduces the integrated development environment of ARM,then analyses the running process of Cortex-A9,and finally describes the data processing process of embedded system,the butterfly algorithm is implemented on the basis of Cortex-A9 microprocessor.
Keywords:embedded;data processing;Fourier transform;butterfly algorithm
0? 引? 言
嵌入式系統是以計算機技術為基礎的應用于某些指定作用設備的專用計算機系統,這些設備一般包括嵌入式微處理器、嵌入式操作系統以及硬件設備,也就是說,是嵌入式系統與系統硬件耦合在一起的緊密計算機系統。事實上,嵌入式系統已經無處不在,小到MP4、手表、智能玩具,大到網絡家電、機頂盒以及車載設備等等,都要應用嵌入式系統。在服務業(yè)以及工業(yè)之中,嵌入式系統主要用于自動化儀表、醫(yī)療儀器以及過控工程之中。嵌入式系統已經融入了服務業(yè)與傳統工業(yè)。
2012年徐春青設計了USB Host系統,該系統能夠在PHILIP LPC2210微處理器上穩(wěn)定運行,并且能夠完成大容量存儲設備的拔插識別、建立目錄和數據讀寫功能,為嵌入型系統發(fā)展做出了重大貢獻[1]。2014年余婷婷研究了嵌入式設備以及文件系統技術,并提出了嵌入式系統文件的體系結構,設計了嵌入式系統文件的外部設備驅動,最后為嵌入式系統發(fā)展指明了方向[2]。2013年王亞剛深入分析了當今已有的嵌入式Linux系統裁剪原理,然后提出了一種新的基于ELF目標層的嵌入式系統裁剪方法,該方法剔除了目標文件中的無用代碼,提高了裁剪粒度以及靈活性,從而提高了ELF目標代碼質量[3]。2013年程廣輝設計實現了二代以及三代內核系統的嵌入式虛擬平臺,使得嵌入式虛擬化平臺在安全方面有了大幅度提升,并以PC步進電機為例實現了一種可靠體系構架[4]。
由于嵌入式系統的廣泛應用,研究基于ARM的嵌入式數據采集與處理方法尤為重要。鑒于ARM的嵌入式數據采集與處理方法眾多,本文在前人研究的基礎上,進行了數據處理的FFT程序實現。
1? ARM集成開發(fā)環(huán)境
ARM公司推出了一款專門針對數據采集與處理的開發(fā)與調試綜合性軟件,其最新版本為ADS1.2,用戶可使用ASD編寫各種基于RISC處理器數據處理程序,編譯程序代碼可采用C、C++以及ARM匯編語言。ADS由圖像界面開發(fā)工具、命令行開發(fā)工具以及各種輔助工具構成。針對數據采集電路的軟件設計主要包括Cortex-A9啟動程序初始化、A/D數據采集與處理、數據I/O程序、LCD波形顯示程序以及觸摸屏控制程序。
Cortex-A9啟動程序主要完成系統復位后的初始工作;A/D數據采集程序主要完成對模擬輸入信號的定時采集以及連續(xù)采集;I/O程序實現對數據的輸出;LCD顯示程序實現參數檢測結果的實時顯示;觸摸屏程序則實現簡單的人機交換。
2? 嵌入式Linux在ARM上的運行
由于Linux操作系統具有高度的靈活性,可滿足不同的用戶需求,Linux不僅繼承了Unix特性,而且成為了嵌入式開發(fā)的市場主流。除此之外,Linux還具備良好的移植性能,適用于多種系統級的處理器。
2.1? 嵌入式Linux的內核結構
Linux內核主要由如下幾個重要的子系統組成,其各個子系統間的層次關系如圖1所示。
由圖1可知,系統調用是由操作系統內核提供的,而普通函數調用則是由函數庫或者應用程序提供的,在用戶空間運行。
2.2? 在QT210上運行嵌入式Linux
嵌入式Linux在ARM上的開發(fā)是一個由上而下的逐步推進流程[5]。本文使用的桌面Linux系統作為宿主機開發(fā)環(huán)境,宿主機的運行模擬程序作為控制臺,然后以虛擬終端在宿主機上面顯示程序運行結果。此時,內核、根文件系統都存放在目標版NAND中。
3? 通信設計
IDACS設計是硬件的主要組成部分。Cortex-A9處理器是該系統的核心。基于嵌入式ARM平臺的在線智能數據采集與控制系統具有很高的通用性,每臺采集與控制裝置都配備了24路采集/控制通道,并相互隔離。每個I/O通道都可以選擇電流、電壓、電阻等多種電信號和非電信號,數字采集由專用的ADC完成。測量數據存儲在外部存儲器中,在Web服務器模式下,存儲器作為數據庫。ARM處理器直接支持以太網業(yè)務和RS485通信。因此,數據通過RS485和以太網被其他一些PC或網絡存儲和控制。ARM處理器具有內部I2C模塊。因此,它能夠與任何其他外圍設備通信。
I2C是通過兩個有線鏈路與其他處理器或外設通信的有線通信協議。該系統采用128*64液晶顯示器,顯示信息和測量參數,便于調試和修改參數。模-數接口模塊獨立于嵌入式系統,有利于系統的維護和升級。嵌入式以太網接口使應用程序之間的遠程數據交換變得非常容易。
使用16位ADC芯片AD7715,這是一種內置I2C模塊的數字芯片。它能夠將轉換后的數字數據傳輸到ARM處理器。它只需要五條線路,分別是DOUT-數據輸出、DRDY-數據就緒、DIN-數據輸入、CS-芯片選擇和SCLK-系統時鐘。轉換后的數字數據將通過芯片的雙針發(fā)送。該ADC芯片由2.4576MHz晶體驅動。它包含單獨的參考信號REF+和REF-以及單獨的模擬輸入通道AIN+和AIN-。在與ARM處理器通信期間,該ADC芯片應與處理器時鐘同步。
RS-485是設備間二進制串行通信的電信標準。需要遵循的協議或規(guī)范允許實現此標準的設備相互通信。這個協議是一個被稱為RS-232的原始串行協議的更新版本。雖然原始的RS-232標準允許通過串行鏈路連接兩個設備,但RS-485允許在聯網系統上的兩個以上設備之間進行串行連接。
RS-485網絡可以被構造成平衡的2線系統或4線系統。如果一個RS-485網絡被構造成一個2線制的系統,那么所有的節(jié)點將具有相同的排名。一個4線制的RS-485網絡,有一個節(jié)點被指定為主節(jié)點,其余的節(jié)點被指定為從節(jié)點。在這樣的系統中,通信只在主設備和從設備之間進行,而不在從設備之間進行。這種方法簡化了需要使用的軟件協議,但代價是稍微增加了布線系統的復雜性。
結合蝶形算法,對合成結果進行依次迭代,將原始輸入數據逆序重排進行FFT計算,其FFT程序共采取三層循環(huán)實現。為提高FFT在ARM上的運行效率,可以對FFT程序采取如下四個措施進行優(yōu)化:
(1)考慮計算點數N值的區(qū)別,選取恰當的數據類型進行變量定義,從而達到節(jié)省儲存空間的目的;
(2)本文提出的算法能夠大大減少計算量,提高運行速度;
(3)輸出32位整型FFT數據值,因為ARM并不支持浮點數運算,需全部采取整數值計算;
(4)考慮 ,第一級進行單獨計算;其余各級考慮蝶形因子,從而省去了許多乘法運算,提高運行速度。
5? 結? 論
本文首先介紹了ARM集成開發(fā)環(huán)境,然后分析了嵌入式Linux在ARM上的運行過程,并將蝶形算法結合到嵌入式系統的數據處理之中,為嵌入式系統的發(fā)展與研制做出了重大貢獻,將算法模型與嵌入式系統相結合,為以后的嵌入式系統發(fā)展提供了一條新的道路。
參考文獻:
[1] 徐春青.基于嵌入式系統的USB開發(fā)與研究 [D].無錫:江南大學,2008.
[2] 余婷婷.嵌入式文件系統的研究與設計 [D].武漢:武漢理工大學,2007.
[3] 王亞剛.嵌入式Linux系統移植與裁剪技術研究 [D].西安:西北大學,2005.
[4] 程廣輝.基于微內核的操作系統設計以及嵌入式虛擬化應用的研究 [D].蘭州:蘭州大學,2013.
[5] 張靜,葉梧,馮穗力.基于ARM920T的嵌入式Linux系統開發(fā) [J].現代電子技術,2005(4):22-24.
作者簡介:江俊(1994.09-),男,漢族,湖北蘄春人,本科,主要研究方向:嵌入式應用設計、物聯網應用。