基于ARM-Linux的數(shù)據(jù)采集和網(wǎng)絡(luò)傳輸系統(tǒng)設(shè)計(jì)
摘要:文中設(shè)計(jì)了一個(gè)基于ARM9處理器和嵌入式Linux OS的多路數(shù)據(jù)采集和網(wǎng)絡(luò)傳輸系統(tǒng)。該系統(tǒng)以三星公司的S3C2440處理器為核心,配以DM9000百兆自適應(yīng)網(wǎng)絡(luò)控制芯片,通過(guò)互聯(lián)網(wǎng)將由FPGA控制的多達(dá)64路AD采集通道采集的數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)終端上,實(shí)現(xiàn)了遠(yuǎn)程數(shù)據(jù)采集的功能。軟件平臺(tái)移植了最新的Linux 2.6.30.4內(nèi)核,并基于Linux OS之上實(shí)現(xiàn)了Socket網(wǎng)絡(luò)應(yīng)用程序。隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,本系統(tǒng)在網(wǎng)絡(luò)時(shí)代有著廣闊的應(yīng)用前景。
本文引用地址:http://www.ex-cimer.com/article/201609/304499.htm數(shù)據(jù)采集是實(shí)現(xiàn)工業(yè)現(xiàn)場(chǎng)控制的首要環(huán)節(jié),實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)傳輸是目前大多數(shù)工業(yè)控制系統(tǒng)的普遍要求。傳統(tǒng)的數(shù)據(jù)采集方式是把各類(lèi)基于ISA總線、PCI總線或USB總線的數(shù)據(jù)采集卡與計(jì)算機(jī)相連接,將傳感器輸出的信號(hào)經(jīng)過(guò)信號(hào)調(diào)理電路的處理后,通過(guò)數(shù)據(jù)采集卡輸入到計(jì)算機(jī)中。這種采集方式在不能安放計(jì)算機(jī)的場(chǎng)所進(jìn)行將會(huì)非常困難,因此開(kāi)發(fā)一套便攜式的現(xiàn)場(chǎng)數(shù)據(jù)采集和網(wǎng)絡(luò)傳輸系統(tǒng)具有十分重要的現(xiàn)實(shí)意義。本文基于ARM9嵌入式硬件平臺(tái)和ARM—Linux OS,設(shè)計(jì)了這套數(shù)據(jù)采集和網(wǎng)絡(luò)傳輸系統(tǒng),可以對(duì)多達(dá)64路的模擬信號(hào)進(jìn)行采集和處理,并將處理后的數(shù)據(jù)傳送到遠(yuǎn)程網(wǎng)絡(luò)終端上,同時(shí)滿足多客戶端請(qǐng)求的需要。
1 系統(tǒng)總體設(shè)計(jì)
本系統(tǒng)從功能上可分為兩大子系統(tǒng):數(shù)據(jù)采集子系統(tǒng)和網(wǎng)絡(luò)傳輸子系統(tǒng)。其中數(shù)據(jù)采集系統(tǒng)有兩個(gè)完全相同的模塊,它們都連接在ARM處理器的系統(tǒng)總線上,如下圖1所示。
1.1 數(shù)據(jù)采集子系統(tǒng)
該系統(tǒng)包含兩個(gè)完全相同的采集板,板上的控制核心為Altera公司的cyclone II系列FPGA。每個(gè)采集板上有4片AD芯片MAX1308,由FPGA統(tǒng)一控制,而MAX1308是一款8通道AD芯片,所以該系統(tǒng)最多可同時(shí)實(shí)現(xiàn)64路獨(dú)立通道的數(shù)據(jù)采集功能。單通道的數(shù)據(jù)吞吐率最高可達(dá)1075ks ps/通道,八通道的數(shù)據(jù)吞吐率最高可達(dá)456ksps/通道。兩個(gè)采集板都掛在ARM的數(shù)據(jù)總線上,F(xiàn)PGA以異步FIFO存儲(chǔ)機(jī)制與ARM數(shù)據(jù)總線進(jìn)行交互。
1.2 網(wǎng)絡(luò)傳輸子系統(tǒng)
該系統(tǒng)以ARM為控制核心,移植嵌入式Linux OS,網(wǎng)絡(luò)芯片選用百兆自適應(yīng)網(wǎng)卡DM9000EP,通過(guò)RJ-45接口接入互聯(lián)網(wǎng)實(shí)現(xiàn)了數(shù)據(jù)的遠(yuǎn)程傳輸。基于TCP/IP協(xié)議實(shí)現(xiàn)了面向連接的數(shù)據(jù)流通信Socket網(wǎng)絡(luò)應(yīng)用程序,采用Linux服務(wù)器常用的C/S架構(gòu),完成了下位機(jī)的服務(wù)器程序和上位機(jī)的數(shù)據(jù)接收程序,并采用多進(jìn)程編程思想解決了服務(wù)器多客戶端問(wèn)題。遠(yuǎn)程客戶端通過(guò)配置服務(wù)器的IP地址和端口號(hào),建立與服務(wù)器的連接后,即可請(qǐng)求數(shù)據(jù),屆時(shí)服務(wù)器啟動(dòng)數(shù)據(jù)采集系統(tǒng)并將采集的數(shù)據(jù)實(shí)時(shí)傳送給遠(yuǎn)程客戶端。
2 硬件設(shè)計(jì)
系統(tǒng)的硬件結(jié)構(gòu)如下圖2所示。以S3C2440芯片為核心,64 MB的SDRAM為系統(tǒng)內(nèi)存,2 MB的NorFlash和512 MB的Nand Flash為系統(tǒng)存儲(chǔ)設(shè)備。兩片F(xiàn)PGA分別連接四片MAX1308芯片作為采集設(shè)備掛在S3C2440的系統(tǒng)總線上;DM9000網(wǎng)絡(luò)芯片也掛在S3C2440的系統(tǒng)總線上,另一端通過(guò)隔離變壓器H1102與RJ-45端口與互聯(lián)網(wǎng)相連。
此外,系統(tǒng)時(shí)鐘源直接采用外部晶振,內(nèi)部PLL電路可以調(diào)整系統(tǒng)時(shí)鐘,使系統(tǒng)運(yùn)行速度更快。為了提供高效的電源監(jiān)控作用,選取了專(zhuān)門(mén)的系統(tǒng)監(jiān)視復(fù)位芯片MAX811S,實(shí)現(xiàn)對(duì)電源電壓的監(jiān)控和手動(dòng)復(fù)位操作。該芯片優(yōu)良,一旦系統(tǒng)電源低于系統(tǒng)復(fù)位的閾值(2.93V),復(fù)位芯片MAX811S將會(huì)對(duì)系統(tǒng)進(jìn)行復(fù)位。S3C2440芯片內(nèi)部有JTAG核,因此可以通過(guò)外部JTAG調(diào)試電纜與系統(tǒng)連接進(jìn)行燒寫(xiě)u—boot。
2.1 AD采集電路
MAX1308是美信公司的一款12位8通道模數(shù)轉(zhuǎn)換器,8個(gè)通道同時(shí)轉(zhuǎn)換時(shí),每個(gè)通道數(shù)據(jù)吞吐率為456ksps。獨(dú)立的采樣保持(T/H)電路為每個(gè)通道提供同時(shí)采樣,提供輸入范圍,輸入故障容限為,其他特性包括20 MHz T/H輸入帶寬、內(nèi)部時(shí)鐘、內(nèi)部(+2.5 V)或外部(+2.0 V至+3.0 V)基準(zhǔn)以及低功耗省電模式。20 MHz、12位雙向并行數(shù)據(jù)總線用來(lái)提供轉(zhuǎn)換結(jié)果,并可接受數(shù)字輸入分別激活每一路通道。該器件
工作在+4.75 V至+5.25 V模擬電源與+2.7 V至+5.25 V數(shù)字電源下,全速運(yùn)行時(shí),總電源電流為57 mA。
為時(shí)鐘模式選擇輸入,選擇內(nèi)部時(shí)鐘時(shí),將該引腳連接到AVDD;選擇外部時(shí)鐘時(shí),將外部時(shí)鐘連接到CLK,將該引腳連接到AGND。該系統(tǒng)選用內(nèi)部信號(hào),所以該引腳連接AVDD,并將CLK引腳連接到DGND。數(shù)字信號(hào)輸出端D0~D11及啟動(dòng)轉(zhuǎn)換輸入CONVST、片選輸入、寫(xiě)輸入、讀輸入、轉(zhuǎn)化結(jié)束輸出、最后轉(zhuǎn)換結(jié)束輸出
等引腳都接FPGA。
AD芯片MAX1308的電路圖如圖3所示。
2.2 CPU及FPGA硬件電路
該系統(tǒng)CPU為三星公司的S3C2440芯片,基于ARM920T內(nèi)核,工作頻率可達(dá)400 MHz,采用新的AMBA總線架構(gòu),是一款低電壓、高性能的處理器芯片,片上集成眾多的功能模塊。S3C2440的存儲(chǔ)器控制器共8個(gè)存儲(chǔ)器banks,具有可編程的訪問(wèn)位寬,bank0(16/32位),其他bank(8/16/32位),所有存儲(chǔ)器bank的訪問(wèn)周期可編程。
評(píng)論