日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]基于Linux的嵌入式數(shù)據(jù)采集系統(tǒng)

1 嵌入式系統(tǒng)概述

嵌入式系統(tǒng)是以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統(tǒng),對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng),它將操作系統(tǒng)和功能軟件集成于計算機硬件系統(tǒng)之中,簡而言之就是系統(tǒng)的應用軟件與系統(tǒng)的硬件一體化,類似于BIOS的工作方式,具有軟件代碼小,高度自動化,響應速度快等特點。特別適合于要求實時和多任務的體系。嵌入式系統(tǒng)是將先進的計算機技術、半導體技術、電子技術和各個行業(yè)實際應用相結合的產(chǎn)物。嵌入式系統(tǒng)的結構由兩大模塊組成:硬件平臺和軟件平臺,其結構如圖1所示。

圖1  嵌入式系統(tǒng)結構圖

2 系統(tǒng)設計

數(shù)據(jù)采集系統(tǒng)的采集任務在現(xiàn)場完成。采集系統(tǒng)設計為分布式的控制系統(tǒng),系統(tǒng)上位機與現(xiàn)場檢測下位機之間的通信基于串口。正常運行時,現(xiàn)場下位檢測控制器完成數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)存儲、數(shù)據(jù)發(fā)送等多種任務。系統(tǒng)具有一定的自檢測、自校正能力,能將異常情況傳給PC機,以便維護。為了適應各種不同情況對焊縫自動檢測的要求,整個檢測系統(tǒng)采用模塊化結構設計,可應用不同的模塊組合成不同的應用系統(tǒng)。數(shù)據(jù)采集系統(tǒng)的基本組成如圖2所示。

圖2  數(shù)據(jù)采集系統(tǒng)的組成

2.1 系統(tǒng)的硬件

數(shù)據(jù)采集系統(tǒng)主要完成實時數(shù)據(jù)采樣、保持、并送入A/D 轉換器變成數(shù)字信號,然后再對數(shù)據(jù)進行計算處理、保存,再通過通信接口將實時數(shù)據(jù)發(fā)送到監(jiān)控中心,同時接收監(jiān)控中心下發(fā)的各種命令。其硬件結構如圖3所示。

圖3  數(shù)據(jù)采集系統(tǒng)的硬件結構

該系統(tǒng)采用了Cirrus Logic公司的EP9302作為主CPU,并移植Linux操作系統(tǒng)來對任務進行管理和調(diào)度。

交流采樣電路主要由采樣保持、多路開關和A/D轉換組成,用來保證在模數(shù)轉換過程中電壓、電流的同時性,以滿足功率測量要求。本系統(tǒng)采集四相電壓及四相電流,通過多路開關分時將采樣量送入A/D轉換器。14位A/D轉換電路采用Analog Devices的AD7865,AD7865 是四通道高速A/D轉換器,其電路輸出具有三態(tài)鎖存功能。

通信電路由SJA1000芯片、光耦電路和總線驅動器組成。SJA1000的AD0∼AD7連接到系統(tǒng)數(shù)據(jù)總線上,為了增強CAN總線節(jié)點的抗干擾能力,SJA1000的TX0和RX0并不是直接82C250 的TXD和RXD相連,而是通過高速光耦合器6N137與82C250相連,這樣就很好地實現(xiàn)了總線上各CAN 節(jié)點間的電氣隔離。光耦部分電路所采用的2個電源Vcc和Vdd必須完全隔離,可采用小功率電源隔離模塊或帶多個5V隔離輸出的開關電源模塊實現(xiàn)。這部分增加了接口電路的復雜性,但卻提高了節(jié)點的穩(wěn)定性和安全性。

2.2 系統(tǒng)的軟件

軟件的設計是在操作系統(tǒng)上實現(xiàn)的,嵌入式操作系統(tǒng)是整個系統(tǒng)的核心。針對本系統(tǒng)的特點,軟件平臺采用多任務嵌入式操作系統(tǒng)Linux來實現(xiàn),改變了傳統(tǒng)的在類似硬件平臺下采用MSDOS單用戶、單任務操作系統(tǒng)難以完成較為復雜的分布式多任務應用的缺點。在數(shù)據(jù)采集系統(tǒng)中,Linux系統(tǒng)可以同時處理多個傳感器發(fā)送來的較為復雜的控制任務,從而提高系統(tǒng)的

整體響應速度及并發(fā)處理能力。構成嵌入式Linux系統(tǒng)至少需要下面3個基本元素:引導程序、Linux微內(nèi)核和初始化進程。如果要讓它有更多的功能, 還可加上文件系統(tǒng)、GUI和設計精簡的應用程序,并將其放在diskonchip中啟動。

2.2.1 內(nèi)核的裁減編譯與啟動[!--empirenews.page--]

微型計算機的存儲空間較小, 而標準Linux是面向PC 的,需要對Linux 內(nèi)核進行裁減。對一些可獨立加上或卸下的功能塊,可在編譯內(nèi)核時僅保留嵌入式系統(tǒng)所需的功能支持模塊, 刪除不需要的功能。為了滿足一定的實時性要求,需屏蔽內(nèi)核的虛擬內(nèi)存管理機制來增強的Linux實時性。系統(tǒng)中微機主板屬于X86體系結構,兼容一般桌面PC的Linuxi386版本。這樣,我們可以直接使用X86體系的編譯器對Linux核心源代碼直接進行編譯及裁剪,并避免了對Linux 核心源代碼中涉及CPU的部分模塊以及內(nèi)存管理模式模塊的修改。增加了文件系統(tǒng)和GUI根據(jù)系統(tǒng)需要,文件系統(tǒng)應包括: 基本文件系統(tǒng)結構、基本應用程序、基本配置文件、基本設備/dev/hd* 和/dev/tty*、基本程序運行所需的函數(shù)庫。GUI 是軟件可視化設計不可

缺少的,也為將來的現(xiàn)場檢修維護提供可視化的界面。編寫Linux的引導代碼, 將diskonchip作為系統(tǒng)的啟動設備,引導代碼放在diskonchip上。系統(tǒng)加電后,由引導代碼進行基本的硬件初始化,然后把內(nèi)核經(jīng)映像裝入內(nèi)存運行。

2.2.2 設備驅動程序

系統(tǒng)需要對I/O口、串口編寫設備驅動程序。設備驅動程序是操作系統(tǒng)內(nèi)核與硬件之間的接口,屬于內(nèi)核的一部分,主要功能應包含:對設備初始化或釋放、把數(shù)據(jù)從內(nèi)核傳送到硬件及從硬件讀取數(shù)據(jù)、讀取應用程序傳送給設備的數(shù)據(jù)和回送應用程序請求的數(shù)據(jù)、監(jiān)測和處理設備出現(xiàn)的異常。

設備驅動程序的實質(zhì)就是中斷處理。Linux中斷處理程序分為上半部和下半部。上半部即一般的中斷服務程序, 由硬件中斷觸發(fā),一般運行在關中斷的方式下,應當盡可能短小,處理盡可能快;下半部運行在開中斷和任務串行化的環(huán)境下,處理需較長時間的任務。驅動程序上半部在處理完實時性很強的任務后,用queue_task函數(shù)將下半部處理函數(shù)掛入立即隊列, 并用mark_bh函數(shù)來激活立即隊列,下半部就可以最優(yōu)先地被執(zhí)行。

用戶進程是通過設備文件與硬件打交道,對設備文件的操作方式是系統(tǒng)調(diào)用,由file_operations結構實現(xiàn)系統(tǒng)調(diào)用。這個結構的每一個成員的名字都對應著一個系統(tǒng)調(diào)用。用戶進程對設備文件進行操作時,系統(tǒng)調(diào)用通過設備文件的主設備號找到相應的設備驅動程序,然后讀取這個數(shù)據(jù)結構相應的函數(shù)指針,接著把控制權交給該函數(shù)。這就是Linux 設備驅動程序工作的基本原理。編寫設備驅動程序的主要工作就是編寫子函數(shù),并填充file_operations的各個域。

設備驅動程序以模塊方式加入內(nèi)核,在init_module模塊中,當檢查設備存在后,用request_irq函數(shù)為設備申請系統(tǒng)中空閑的中斷,用kmalloc為設備驅動程序申請輸入輸出緩存隊列, 如果申請成功, 用regis2ter_chrdev函數(shù)將設備驅動程序注冊到系統(tǒng)中,加載完成。在clearup_module模塊中,先用free_irq函數(shù)釋放申請到的中斷,然后用kfree函數(shù)釋放申請到的內(nèi)存空間,最后用unregister_chrdev函數(shù)釋放注冊的設備驅動程序。

2.2.3 應用程序設計

在基于嵌入式Linux系統(tǒng)的微機中,應用程序的主要模塊有數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、數(shù)據(jù)通信模塊和數(shù)據(jù)診斷模塊。應用程序流程圖見圖4。

圖4  應用程序流程圖

數(shù)據(jù)采集模塊是通過對I / O 口操作實現(xiàn)的。利用inb、inb_p、outb、outb_p 等4 個函數(shù)編寫讀取和寫入程序。inb_p 、outb_p與inb、outb 的區(qū)別在于前者在存取I/O時有等待(pause),可適應慢速的I/O設備。為了防止存取I/O 時發(fā)生沖突,Linux提供對端口使用情況的控制。在使用端口之前,可以檢查需要的I/O是否正在被使用,如果沒有,便把端口標記為正在使用,使用完后再釋放。

數(shù)據(jù)處理模塊實現(xiàn)數(shù)據(jù)的均值與極值計算, 以文件的方式存儲數(shù)據(jù)。歷史數(shù)據(jù)對焊縫數(shù)據(jù)采集系統(tǒng)很重要,可上傳到服務器以便預報系統(tǒng)根據(jù)設置的模型進行預測,還可不斷修正數(shù)據(jù)診斷模塊所需的模型。

數(shù)據(jù)診斷模塊實現(xiàn)實時分析診斷,根據(jù)已設置的模型,在系統(tǒng)工作期間對系統(tǒng)數(shù)據(jù)進行測試分析。診斷程序設置為嵌入式系統(tǒng)中中斷級別最低的中斷服務程序,在不影響系統(tǒng)工作的前提下實現(xiàn)實時診斷,并上傳給上位機,以便跟蹤診斷校準,保證系統(tǒng)的可靠性。

數(shù)據(jù)通信模塊主要任務是通過串口與上位PC機實現(xiàn)數(shù)據(jù)傳輸。在Linux系統(tǒng)中,串口是用做字符設備處理的。使用文件操作函數(shù)對串口進行處理,利用open函數(shù)打開串口,利用termios結構設定串口通信參數(shù)。

2.2.4 系統(tǒng)執(zhí)行

經(jīng)過以上步驟,在嵌入式Linux系統(tǒng)上實現(xiàn)數(shù)據(jù)采集系統(tǒng)已基本構成。系統(tǒng)執(zhí)行流程見圖5。

圖5  系統(tǒng)執(zhí)行流程圖

3 小結:

本文作者創(chuàng)新點是基于嵌入式Linux的數(shù)據(jù)采集系統(tǒng)具有數(shù)據(jù)檢測的實時性、檢測精度高、自動化程度高、具有良好的可靠性、穩(wěn)定性和抗干擾性等特點。實際運行證明高性能的AMR9微處理器和Linux操作系統(tǒng)的運用提高了系統(tǒng)的實時響應性能和多任務處理能力,使系統(tǒng)的可靠性和可擴展性得以明顯提高。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

學習Linux動態(tài)鏈接庫是一個繞不開的話題,我們今天就一起來看一下什么是動態(tài)鏈接庫、動態(tài)鏈接庫有什么好處、如何編譯出一個動態(tài)鏈接庫等幾個關于動態(tài)鏈接庫的幾個基本概念,廢話少說咱們直接開始

關鍵字: Linux 靜態(tài)鏈接庫 動態(tài)鏈接庫

在Linux內(nèi)核中,提供了一個用來創(chuàng)建雙向循環(huán)鏈表的結構 list_head。雖然linux內(nèi)核是用C語言寫的,但是list_head的引入,使得內(nèi)核數(shù)據(jù)結構也可以擁有面向對象的特性,通過使用操作list_head 的通...

關鍵字: Linux 內(nèi)核鏈表

(全球TMT2022年9月15日訊)IBM于美國東部時間9月13日發(fā)布其下一代LinuxONE服務器,這是一個具有高度擴展性的基于Linux和Kubernetes的平臺,旨在為企業(yè)提供所需的可擴展性,使其能用一個單一系...

關鍵字: IBM Linux NET 可擴展性

下一代LinuxONE服務器擴展了IBM幫助行業(yè)客戶實現(xiàn)可持續(xù)目標的能力,花旗銀行就是很好的例子 北京2022年9月14日 /美通社/ -- IBM(紐約證券交易所:IBM)于美國東部時間9月13日發(fā)布其下一...

關鍵字: IBM Linux X86 數(shù)據(jù)中心

(全球TMT2022年9月15日訊)IBM發(fā)布其下一代LinuxONE服務器,這是一個具有高度擴展性的基于Linux和Kubernetes的平臺,旨在為企業(yè)提供所需的可擴展性,使其用一個單一系統(tǒng)就能支持成千上萬的工作負...

關鍵字: GROUND IBM Linux 亞馬遜

為了使得多種設備能通過網(wǎng)絡相互通信,和為了解決各種不同設備在網(wǎng)絡互聯(lián)中的兼容性問題。

關鍵字: Linux 網(wǎng)絡包

北京2022年8月26日 /美通社/ -- 雙碳目標的實現(xiàn)或許任重道遠,但是低碳、可持續(xù)的理念已經(jīng)滲透到我們生活工作的方方面面。持續(xù)整個夏季的異常高溫,以及四川等地限電,讓許...

關鍵字: IBM 可持續(xù)發(fā)展 AI Linux

摩爾線程MTT S系列GPU與浩辰CAD Linux 版V2022軟件產(chǎn)品近日完成兼容性適配。在雙方工程師的通力協(xié)作下,摩爾線程MTT S系列GPU能夠為浩辰CAD Linux軟件提供快速運行所需的性能,并在持久的高負載...

關鍵字: 摩爾線程 GPU Linux

近日,摩爾線程MTT S系列GPU與中望二三維CAD Linux版產(chǎn)品完成產(chǎn)品兼容性認證。經(jīng)摩爾線程和中望軟件雙方團隊的共同嚴格測試,中望CAD Linux、中望3D Linux、中望CAD機械版Linux、中望CAD建...

關鍵字: 摩爾線程 GPU Linux

(全球TMT2022年6月7日訊)近日,上海安勢信息技術有限公司(安勢信息)對外宣布正式成為DevSecOps領域中國首家OpenChain項目會員。安勢信息將同高通、谷歌、微軟等其他全球企業(yè)共建可信、安全的軟件供應鏈...

關鍵字: Linux PEN AI 供應鏈

嵌入式軟件

15715 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉