999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM 的數(shù)據(jù)采集系統(tǒng)設計

2012-08-06 09:38:06楊志杰石驥碩王財進
鐵路計算機應用 2012年7期
關鍵詞:嵌入式設備系統(tǒng)

楊志杰,石驥碩,徐 寧,王財進

(中國鐵道科學研究院通信信號研究所,北京100081;2.北京交通大學理學院,北京100044)

工業(yè)現(xiàn)場設備通常都會長時間運行,為了對設備的運行狀況進行更好的監(jiān)控,可以利用信號采集系統(tǒng)對這些設備運行狀況以及產(chǎn)生的數(shù)據(jù)進行采集,并發(fā)送給監(jiān)控計算機,運行在監(jiān)控計算機上的分析軟件通過對這些數(shù)據(jù)的分析處理,可以得出設備當前的運行狀況,從而可以針對當前的運行狀況采取相應的措施。目前,常用的信號采集裝置,在其系統(tǒng)軟件設計中多采用單片機、DSP或基于嵌入式計算機的架構(gòu)。然而基于DSP的數(shù)據(jù)采集系統(tǒng), 雖然處理速度快,但成本較高,實現(xiàn)通信接口較困難,過多的中斷會降低CPU 的效率,系統(tǒng)響應速度變差。而單片機的系統(tǒng)則由于單片機本身的局限性,運行速度低,無法執(zhí)行多任務操作。基于嵌入式Linux的數(shù)據(jù)采集系統(tǒng)則很好地完成相應功能,彌補了上面兩種系統(tǒng)的缺陷。

嵌入式Linux操作系統(tǒng)作為整個系統(tǒng)的核心部分,完成對任務進行控制和調(diào)度,并且實現(xiàn)任務間通信與同步、對系統(tǒng)資源以及存儲的管理。

本文以嵌入式Linux操作系統(tǒng)為平臺,以基于ARMv5te、XScale架構(gòu)的PXA270為處理器,設計和實現(xiàn)一種通用的高性能數(shù)據(jù)采集系統(tǒng)。

1 系統(tǒng)硬件設計

數(shù)據(jù)采集系統(tǒng)采用分布式設計,可以使用以太網(wǎng)、485/422串口、CAN總線等多種通信接口實現(xiàn)系統(tǒng)上位機與現(xiàn)場檢測下位機之間的通信。正常運行時,數(shù)據(jù)采集系統(tǒng)可以用來完成數(shù)據(jù)采集、數(shù)據(jù)簡單處理、數(shù)據(jù)在文件中的存儲、數(shù)據(jù)傳輸?shù)榷喾N任務。系統(tǒng)有一定的自動檢測、自動校正能力,可以將檢測出的異常情況發(fā)送給上位機,方便對系統(tǒng)進行維護。為了適應各種自動檢測的需求,采用模塊化結(jié)構(gòu)對整個檢測系統(tǒng)進行設計,這樣可以方便地對模塊進行不同的組合,從而構(gòu)造出不同功能的應用系統(tǒng)。

1.1 系統(tǒng)硬件組成

數(shù)據(jù)采集系統(tǒng)選用PXA270處理器作為整個系統(tǒng)的核心,其系統(tǒng)硬件組成如圖1。從傳感器等信號源接收的模擬信號經(jīng)過調(diào)理電路處理后,由模數(shù)轉(zhuǎn)換器(ADC)轉(zhuǎn)換為數(shù)字信號,輸入到PXA270中。根據(jù)不同的應用,在ARM中進行數(shù)字濾波和其它相應處理,通過通信接口將數(shù)據(jù)傳輸?shù)缴衔粰C,從而進行進一步的分析和處理。圖形界面利用QT技術,利用液晶屏顯示軟件界面以及調(diào)試信息,可以方便地通過圖形界面的提示,利用鼠標和鍵盤進行控制。

圖1 基于PXA270的數(shù)據(jù)采集系統(tǒng)框圖

1.2 信號調(diào)理電路

信號調(diào)理電路主要是為了將信號分量調(diào)整到適當?shù)姆龋⒁种聘蓴_信號。采取的主要措施有:增加衰減器以調(diào)整較大信號電壓到合適ADC輸入的范圍,并增加與前端的傳感器或接收天線的匹配程度。調(diào)理電路中包括LC低通濾波器,濾去干擾信號。

1.3 模擬信號采樣

模數(shù)轉(zhuǎn)換器采用12 bit雙通道、采樣速率為65 Msp/s的AD9238。該芯片采用3.3 V供電,與單通道A/D轉(zhuǎn)換器相比,AD9238具有與A/D轉(zhuǎn)換器同樣優(yōu)異的動態(tài)性能,但是與兩個單通道A/D轉(zhuǎn)換器相比,AD9238可以實現(xiàn)比A/D轉(zhuǎn)換器更好的抗串擾性能。

1.4 外部設備

根據(jù)系統(tǒng)需求,外部可擴展相應大小的FLASH,供緩存數(shù)據(jù)和存貯程序。PXA270處理器集成了存儲單元控制器,其外部的存儲總線接口支持為:SDRAM、FLASH、ROM、SRAM、PC卡等。SDRAM具有單位空間存儲容量大和價格便宜的優(yōu)點,主要被用作程序的運行空間以及數(shù)據(jù)集堆棧區(qū)。系統(tǒng)上電啟動時,CPU首先會讀取地址0x0處的代碼,在這段代碼完成相應硬件初始化后,會將其他相應的程序代碼傳送到SDRAM中運行。系統(tǒng)設計中,使用4片HY57V561620FTP-H芯片構(gòu)成128 Mbit的大容量存儲空間。HY57V-561620是4 Mbit×4 banks×16 bit的SDRAM,單片容量為32 Mbit,這里,使用位擴展的方式擴展成32 bit的接口。

與上位機通信接口包括:以太網(wǎng),帶光電隔離的3路422/485串口,CAN總線。

2 系統(tǒng)軟件設計

針對該系統(tǒng)的特點,將軟件平臺在嵌入式Linux上實現(xiàn)。

圖2 嵌入式Linux的分層體系結(jié)構(gòu)

如圖2,嵌入式Linux具有分層的體系結(jié)構(gòu),每一層都屏蔽了它以下各層具體的實現(xiàn)細節(jié),為上層提供相應的功能接口,上層模塊不需要知道下面各層的具體實現(xiàn)細節(jié),只需要利用下層提供的接口來完成相應功能。正因分層的體系結(jié)構(gòu),提高了嵌入式Linux的安全性、穩(wěn)定性以及便利性。

2.1 內(nèi)核的裁減編譯與啟動

由于基于PXA270的系統(tǒng)資源受限,真正標準的Linux操作系統(tǒng)是面向PC的,這就需要裁減Linux內(nèi)核,只保留所需要的功能使之適應受限的系統(tǒng)資源。對于一些可獨立加載或者可以卸載的功能塊,可以在配置內(nèi)核時僅保留嵌入式系統(tǒng)功能真正實現(xiàn)所需要的模塊,卸載那些不需要的功能模塊。系統(tǒng)對數(shù)據(jù)采集的實時性有一定要求,而內(nèi)核中的虛擬內(nèi)存管理機制對實時性有所影響,可以將其屏蔽從而增強Linux的實時性。

數(shù)據(jù)采集系統(tǒng)中,PXA270屬于X86體系結(jié)構(gòu),與一般PC使用的Linux操作系統(tǒng)兼容。因此,可以使用X86體系下Linux系統(tǒng)的gcc編譯器,對裁剪過的Linux 內(nèi)核源代碼進行編譯。本系統(tǒng)增加了對文件系統(tǒng)和GUI的支持,其中所實現(xiàn)的文件系統(tǒng)包括:基本文件的系統(tǒng)體系結(jié)構(gòu),基本可執(zhí)行程序,配置文件,設備/dev/hd* 和/dev/tty*,程序運行所需的庫文件。GUI是實現(xiàn)軟件可視化設計需求所必需的,用其所實現(xiàn)的圖形界面也為將來的現(xiàn)場檢修維護提供便于操作的圖形界面。

2.2 啟動設備驅(qū)動程序

BootLoader是一段小程序,用于引導操作系統(tǒng)或者用戶應用程序。BootLoader用于對必要的硬件設備進行初始化、建立內(nèi)存映射,為最終內(nèi)核或用戶應用程序的啟用準備好正確的軟硬件環(huán)境。

為了完成系統(tǒng)的功能,實現(xiàn)應用程序?qū)τ布目刂疲枰獙Υ谝约癐/O口編寫相應的設備驅(qū)動程序。設備驅(qū)動程序運行在內(nèi)核空間,是內(nèi)核的一部分,用于完成內(nèi)核與硬件之間的交互。設備驅(qū)動程序的主要功能包含:對設備初始化、設備使用完成后對設備以及其使用相關資源的釋放、驅(qū)動程序與硬件之間數(shù)據(jù)的交互、應用程序與驅(qū)動程序之間的數(shù)據(jù)交流、對設備出現(xiàn)的異常情況的監(jiān)測和處理。

設備驅(qū)動程序的功能主要通過對中斷處理實現(xiàn)。為了使系統(tǒng)更好地工作,完成中斷的功能,一般把中斷處理程序分為上半部和下半部。上半部也就是在關中斷方式先被硬件中斷觸發(fā)的一般意義上的中斷服務程序,所以要求運行時間應當盡可能短,處理盡可能快,否則影響系統(tǒng)性能;下半部適合處理占用時間較長,甚至有休眠的任務,可以在開中斷以及任務串行化的環(huán)境下運行。實時性很強的任務被驅(qū)動程序上半部處理完成后會調(diào)用queue_task函數(shù),這樣就會把下半部處理函數(shù)掛入到立即隊列中,并激活立即隊列,再通過調(diào)用mark_bh函數(shù),下半部就可以以最高最優(yōu)級被先執(zhí)行。

由于中斷信號線數(shù)目極其有限,當數(shù)據(jù)采集系統(tǒng)面對多個數(shù)據(jù)源,如果對每個信號源都獨占一根中斷信號線時,顯然中斷信號線的數(shù)目無法滿足要求。為了解決上面的問題,使系統(tǒng)具有更好的靈活性,則應使用數(shù)據(jù)源共享某根中斷信號線的方式來實現(xiàn)中斷。中斷信號線共享的實現(xiàn)只需要在申請中斷信號線時把request_irq函數(shù)的flags參數(shù)設置為SA_SHIRQ即可。此時的中斷處理例程需要通過inb函數(shù)查看AD9238相應的寄存器來判斷中斷是否是這個芯片發(fā)出,如果不是則繼續(xù)查找中斷源。如果找到中斷源,則讀取相應的數(shù)據(jù)寄存器中的相關數(shù)據(jù),放到驅(qū)動程序的緩存區(qū)AD_Data中,等待進程通過調(diào)用read函數(shù)來調(diào)用驅(qū)動程序中實現(xiàn)的read函數(shù),并通過copy_to_user將數(shù)據(jù)拷貝到用戶空間中。

在接收中斷的過程中,為了防止由于丟失中斷導致驅(qū)動程序沒有讀取AD9238中的數(shù)據(jù)并對其進行設置,使其不能發(fā)送中斷導致整個驅(qū)動卡死的這種情況發(fā)生,這里需要使用內(nèi)核定時器,如果在100個時鐘滴答內(nèi)沒有收到中斷,會自行調(diào)動中斷處理例程,檢測是否芯片已經(jīng)發(fā)出了中斷卻沒有收到。

用戶進程是通過/dev目錄下的相關設備文件來與硬件打交道的,通過調(diào)用對設備文件相關操作的系統(tǒng)調(diào)用從而對設備或接口進行操作。需要使用file_operations結(jié)構(gòu)來實現(xiàn)設備驅(qū)動程序要實現(xiàn)的系統(tǒng)調(diào)用,file_operations結(jié)構(gòu)中每一個成員都對應著一個系統(tǒng)調(diào)用。用戶進程通過對/dev下設備文件的操作找到相應設備驅(qū)動程序的相關調(diào)用,通過讀取這個設備對應file_operations結(jié)構(gòu)中的函數(shù)指針,最終把控制權(quán)交給該函數(shù)。對設備驅(qū)動程序的編寫主要是要實現(xiàn)與該設備相關的系統(tǒng)調(diào)用,也就是填充file_operations的各個域并編寫相對應的函數(shù)。

設備驅(qū)動程序可以以模塊的方式加入內(nèi)核。init_module函數(shù)首先要檢測設備是否存在;然后對系統(tǒng)中未使用的空閑中斷進行申請;設備驅(qū)動申請輸入輸出緩存隊列空間對提高系統(tǒng)的性能有很大幫助,可以通過調(diào)用kmalloc函數(shù)進行申請;以上工作完成后,對 register_chrdev函數(shù)進行調(diào)用就可以完成系統(tǒng)對設備驅(qū)動程序的加載。在clearup_module時,先通過調(diào)用free_irq函數(shù)釋放掉申請到的中斷資源,然后調(diào)用kfree函數(shù)釋放初始化時申請到的內(nèi)存空間,最后通過調(diào)用unregister_chrdev函數(shù)來完成對這個已經(jīng)注冊的字符設備驅(qū)動程序的釋放。

2.3 應用程序設計

系統(tǒng)的應用程序由多個功能模塊構(gòu)成,包括數(shù)據(jù)采集、數(shù)據(jù)處理和數(shù)據(jù)通信等模塊。

(1)數(shù)據(jù)采集模塊通過對I/O接口的操作,實現(xiàn)對數(shù)據(jù)的采集,系統(tǒng)中利用inb、inb_p、outb、outb_p這4個函數(shù)實現(xiàn)設備中數(shù)據(jù)的讀取和寫入。inb_p、outb_p相對于inb、outb,需要在存取I/O時有等待(pause),可適應響應較慢的I/O設備。Linux內(nèi)核提供對端口使用狀況的控制及查詢功能,合理利用這些功能就可以防止I/O讀寫時發(fā)生沖突。端口使用之前,檢查相應的I/O端口是否正在被使用,如果當前狀態(tài)為空閑,就把相應端口標記為正在使用,在使用完后進行釋放。

(2)數(shù)據(jù)處理模塊完成數(shù)據(jù)的數(shù)字濾波以及其它處理功能,并將數(shù)據(jù)導出存到相應文件中。最終要將處理后的數(shù)據(jù)經(jīng)過適當接口傳到上位機。

(3)數(shù)據(jù)通信模塊負責從緩沖區(qū)讀取數(shù)據(jù),并發(fā)送給上位機。

應用程序的工作流程如圖3。

圖3 應用程序工作流程圖

從圖3可以看出,應用程序完成了以下工作:(1)初始化操作,開辟一塊共享緩沖區(qū),并為該緩沖區(qū)加一個互斥鎖。(2)創(chuàng)建3個線程,分別對應3種數(shù)據(jù)通信方式:socket網(wǎng)絡通信,485串口通信,CAN總線通信。這3種數(shù)據(jù)通信方式負責把數(shù)據(jù)傳送給上位機。

在主線程中,打開驅(qū)動程序設備文件,并從這個設備中讀取數(shù)據(jù)。由于設備read()函數(shù)是阻塞函數(shù),所以使用了select()函數(shù)設置了一個等待時間,使得讀取操作為非阻塞操作。當有數(shù)據(jù)可讀時,就調(diào)用read()函數(shù),把驅(qū)動程序處于內(nèi)核區(qū)的數(shù)據(jù)傳遞給用戶區(qū)的數(shù)據(jù)緩存,也就是主線程把數(shù)據(jù)寫入了共享緩沖區(qū)中。

在socket網(wǎng)絡通信線程中,先要創(chuàng)建一個用于通信的socket文件描述符,并使用bind()函數(shù)綁定本地的網(wǎng)絡地址(IP)、端口號(Port);然后循環(huán)檢測緩沖區(qū)是否有數(shù)據(jù)可讀,如果有,就讀取出來并調(diào)用sendTo()函數(shù)把數(shù)據(jù)發(fā)送給對方。

在485通信線程中,先要打開串口設備,并設置串口的相關數(shù)據(jù),如波特率,數(shù)據(jù)位,停止位等,然后也是到共享緩沖區(qū)讀取數(shù)據(jù),并通過write函數(shù)將數(shù)據(jù)發(fā)送給上位機。

在CAN總線通信線程中,首先打開CAN總線設備文件,進行一系列的初始化操作,然后判斷共享緩沖區(qū)的數(shù)據(jù)是否可以讀取,如果可以就讀取下來,通過CAN總線給上位機傳輸數(shù)據(jù)。

3 結(jié)束語

本文設計了一種通用的高性能信號采集系統(tǒng),可以通過加載不同的應用程序使用在不同的應用場合,具有集成度高、低成本、高性能、多用途的特點。數(shù)據(jù)采集系統(tǒng)調(diào)試非常方便,可靠性高,擴展方便,組合容易,可以根據(jù)現(xiàn)場提供的通信條件如422/485串口、以太網(wǎng),或者CAN總線與上位機通信,便于將現(xiàn)場采集到的數(shù)據(jù)可靠地上傳。本系統(tǒng)現(xiàn)在已經(jīng)應用于400 km/h高速綜合檢測列車上應答器的數(shù)據(jù)采集,高速列車上多處現(xiàn)場監(jiān)控和數(shù)據(jù)采集設備也采用了本系統(tǒng)。

[1] 孫天澤,袁文菊,張海峰. 嵌入式設計及Linux驅(qū)動開發(fā)指南[M] . 北京:電子工業(yè)出版社,2005.

[2] 石秀民,魏洪興. 嵌入式系統(tǒng)原理與應用—基于Xscale與Linux[M] . 北京:北京航空航天大學出版社,2007.

[3] 朱利利,陳斌,何運桃. 基于PXA270的電源管理[J] . 電腦知識與技術,2009(17).

[4] Marvell Technology Group Ltd. Marvell PXA27x Processor Family Design Guide[Z] . 2007.

猜你喜歡
嵌入式設備系統(tǒng)
諧響應分析在設備減振中的應用
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
搭建基于Qt的嵌入式開發(fā)平臺
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
500kV輸變電設備運行維護探討
原來他們都是可穿戴設備
消費者報道(2014年7期)2014-07-31 11:23:57
主站蜘蛛池模板: 国产老女人精品免费视频| 四虎永久免费在线| 久久大香香蕉国产免费网站| 亚洲中文字幕日产无码2021| 茄子视频毛片免费观看| 日本人又色又爽的视频| 日韩欧美一区在线观看| 成人综合久久综合| 小说区 亚洲 自拍 另类| 国产欧美中文字幕| 国产凹凸视频在线观看| 亚洲日韩第九十九页| 久久久精品久久久久三级| 国产毛片高清一级国语| 国产黄网站在线观看| 99久久性生片| 精品成人一区二区三区电影| 亚洲精品国产综合99| 毛片在线播放a| 日韩大片免费观看视频播放| 亚洲中文字幕无码爆乳| 成人午夜视频网站| 亚洲无码A视频在线| 无码专区在线观看| 一边摸一边做爽的视频17国产 | 亚洲免费成人网| 精品国产www| 热99精品视频| 亚洲欧州色色免费AV| 亚洲美女一区二区三区| 精品第一国产综合精品Aⅴ| 久久国产拍爱| 人妻精品全国免费视频| 毛片网站观看| 中文字幕一区二区人妻电影| 国产精品尤物铁牛tv| 在线国产三级| 国产视频 第一页| 99精品视频九九精品| 亚洲精品国产成人7777| 亚洲色图综合在线| 中文无码伦av中文字幕| 99视频全部免费| 精品视频一区在线观看| 日韩精品一区二区三区swag| 亚洲无码A视频在线| 99热国产这里只有精品无卡顿"| 99精品视频在线观看免费播放| AV在线天堂进入| 成人在线亚洲| 国产激情在线视频| 久青草免费视频| 伊人色在线视频| 91成人精品视频| 午夜视频日本| 国产精品久久精品| 国产成人91精品| 四虎国产在线观看| 精品视频一区二区观看| 极品尤物av美乳在线观看| 欧美成人免费午夜全| 国产精品久久久久久久伊一| 欧美人人干| 青草精品视频| 亚洲精品麻豆| 2021国产精品自拍| 国产成人精品视频一区二区电影 | 成人在线观看一区| 欧美一级色视频| 国产激情影院| 91小视频在线| 国产九九精品视频| 亚洲国产第一区二区香蕉| 亚洲品质国产精品无码| 爆操波多野结衣| 国产一级做美女做受视频| 国产欧美日韩精品第二区| 尤物亚洲最大AV无码网站| 99在线观看国产| 亚洲性影院| 国产亚洲精品97在线观看| 国产手机在线小视频免费观看 |