亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        電磁探測裝備無線通信傳輸技術(shù)研究

        2014-02-27 13:16:34王慶吉
        關(guān)鍵詞:嵌入式設(shè)備

        王慶吉

        (吉林大學(xué)儀器科學(xué)與電氣工程學(xué)院 吉林 130061)

        0 引言

        隨著現(xiàn)代電子技術(shù)、數(shù)據(jù)處理解釋和計算機(jī)處理技術(shù)的發(fā)展,電法探測儀器逐漸成型,并且發(fā)展成為地下資源勘探中十分有效的方式之一,對探測儀器功能的完善意義重大。

        可控源電磁探測系統(tǒng)網(wǎng)絡(luò)通信技術(shù)的實現(xiàn),不但豐富了可控源電磁探測系統(tǒng)的數(shù)據(jù)保存,還為可控源電磁探測系統(tǒng)通信技術(shù)提供了技術(shù)保證。完成無線通信設(shè)備驅(qū)動程序的編寫,并調(diào)試驅(qū)動軟件模塊,將其加載到硬件平臺上工作的內(nèi)核中,調(diào)試并修改程序。系統(tǒng)整體功能框架如圖1所示包括系統(tǒng)移植以及bootloader啟動分析;數(shù)據(jù)模塊和網(wǎng)絡(luò)模塊。

        圖1 系統(tǒng)功能框

        1 嵌入式系統(tǒng)平臺以及設(shè)備驅(qū)動程序

        1.1 嵌入式系統(tǒng)簡介

        嵌入式系統(tǒng)是專用的計算機(jī)系統(tǒng),在使用嵌入式系統(tǒng)之前,必須搭建嵌入式系統(tǒng)平臺。嵌入式系統(tǒng)平臺的構(gòu)建主要是系統(tǒng)移植。本文用到的嵌入式系統(tǒng)的軟件操作系統(tǒng)是Linux,并在此操作系統(tǒng)下編寫了相應(yīng)的設(shè)備驅(qū)動程序。Linux是從Unix操作系統(tǒng)發(fā)展而來的,Unix操作系統(tǒng)是由貝爾實驗室開發(fā)的。Linux已經(jīng)成為一個備受歡迎的多線程,多任務(wù)的操作系統(tǒng)。廣泛用于多種硬件平臺,操作系統(tǒng)本身僅是由高效的可開發(fā)系統(tǒng)核構(gòu)成。由于用戶間的免費共享以及系統(tǒng)源文件的開放,使得這個系統(tǒng)具有很好的流傳。Linux應(yīng)用程序主要是由兩種特殊類型的文件:可執(zhí)行文件excutables和腳本scripts??蓤?zhí)行文件直接被計算機(jī)運行,它們可以生成窗口文件Windows.exe files。腳本文件是另一個程序的指令集,按照腳本可以完成程序的解釋。

        1.2 LINUX文件系統(tǒng)

        文件在系統(tǒng)環(huán)境中發(fā)揮著重要的作用,它為操作系統(tǒng)和設(shè)備提供了高效簡單的訪問接口。除了一般文件,程序可以調(diào)用硬盤文件、串口文件、打印機(jī)文件和其他設(shè)備文件。文件目錄也是一種極特殊的文件,目錄文件具有節(jié)點號和其包含文件的文件名,每一個目錄入口點就是文件節(jié)點。每個文件夾下還包括一個Makefile文件,文件包含了程序的編譯規(guī)則。庫文件為設(shè)備和硬盤文件提供了一種高級接口,使系統(tǒng)更智能。設(shè)備能夠被使用,也必須借助驅(qū)動被內(nèi)核使用。

        1.3 BOOTLOADER啟動過程步驟

        (1)硬件初始化 CFG_HW_INIT

        (2)從nandflash加載鏡像到動態(tài)內(nèi)存ram,load_nandflash(IMG_ADDRESS,IMG_SIZE,JUMP_ADDR)

        (3)處理鏡像文件,decompress_image((void*)IMG_ADDRESS,(void*)JUMP_A DDR,IMG_SIZE)

        (4)開始應(yīng)用程序,設(shè)置偏移量

        Crt0_gnu.S文件由匯編語言構(gòu)成的初始文件。它是首先被執(zhí)行的指令集,啟動程序乃至整個軟件操作系統(tǒng)運行的第一個文件。應(yīng)用程序開始的入口點,設(shè)置了中斷向量并初始化堆棧等,最后進(jìn)入main主函數(shù)中和跳到應(yīng)用程序入口。

        2 設(shè)備驅(qū)動程序

        2.1 設(shè)備驅(qū)動程序基本概念

        設(shè)備驅(qū)動在操作系統(tǒng)Linux內(nèi)核發(fā)揮重要作用,使得硬件成為對某些特定程序作出相應(yīng)反應(yīng)的內(nèi)部可編程程序接口,在執(zhí)行過程中完全隱藏了設(shè)備工作的具體細(xì)節(jié)。通過一系列依賴特定驅(qū)動程序的標(biāo)準(zhǔn)指令來實現(xiàn)用戶要完成的行為功能,將這些標(biāo)準(zhǔn)指令組織起來,讓實際硬件根據(jù)指令發(fā)揮相應(yīng)的作用,這就是設(shè)備驅(qū)動要完成的。這個所謂的可編程的接口驅(qū)動能夠獨立于內(nèi)核存在,也可以在內(nèi)核運行需要時進(jìn)行加載。事實上許多設(shè)備驅(qū)動和用戶程序一起發(fā)行用來幫助構(gòu)造和使用目標(biāo)設(shè)備。這些程序包含很多種,從簡單公用程序到完全的圖形化應(yīng)用程序。

        2.2 設(shè)備驅(qū)動程序分類和模塊化

        Linux將設(shè)備驅(qū)動分為 3種,每個模塊至少完成其中的一種設(shè)備驅(qū)動類型。這三種設(shè)備驅(qū)動的類型分別是:字符型設(shè)備模塊、塊設(shè)備模塊、網(wǎng)絡(luò)設(shè)備模塊。設(shè)備驅(qū)動的模塊化使得設(shè)備驅(qū)動劃分成不同的類型,不同類型之間并不是孤立的,可以用一系列的代碼將不同的設(shè)備驅(qū)動整合成一個大的模塊具備更強(qiáng)大的功能。通過insmod和rmmod可以對模塊進(jìn)行加載和卸載,而且只有超級用戶才有權(quán)限加載和卸載模塊。通過insmod命令調(diào)用模塊中的init_module函數(shù)通知內(nèi)核有模塊進(jìn)行注冊,然后直接引用內(nèi)核函數(shù)register_capability( ),一旦內(nèi)核有空閑就發(fā)送響應(yīng)請求執(zhí)行模塊程序。此時,模塊程序中可以直接調(diào)用內(nèi)核函數(shù)進(jìn)行內(nèi)核操作。模塊注銷時,不用申請響應(yīng)而是直接通過unregister_capability( )注銷。鏈接模塊到內(nèi)核過程如圖2。

        圖2 鏈接模塊到內(nèi)核圖

        2.3 MAKEFILE文件編譯規(guī)則

        Makefile文件是一種腳本文件,把各級目錄下的文件有規(guī)則的組織在一起;它是一種程序編譯規(guī)則。它的獨特優(yōu)勢在于“自動化編譯”,就是腳本代碼寫好后,執(zhí)行命令就會按照腳本進(jìn)行編譯。在腳本語言中,我們首先要把源文件編譯成中間代碼文件也就是.o文件,然后把.o文件鏈接成可執(zhí)行文件。書寫規(guī)則如下:

        (1)如果工程沒有編譯過,所有源文件都要編譯并鏈接。

        (2)如果工程中有文件被修改,只編譯和鏈接被修改的文件。

        (3)如果工程中頭文件被修改,只編譯引用頭文件的源文件。

        3 網(wǎng)絡(luò)通信硬件結(jié)構(gòu)以及驅(qū)動軟

        3.1 網(wǎng)絡(luò)設(shè)備工作原理

        網(wǎng)絡(luò)通信的發(fā)展方便了我們的生活,因為地形復(fù)雜的山地不方便儀器的架設(shè)。而通過網(wǎng)絡(luò)通信大大豐富了系統(tǒng)的功能。設(shè)備發(fā)送隊列dev_queue_xmit( )申請傳輸數(shù)據(jù),在設(shè)備結(jié)構(gòu)描述中找到相應(yīng)的設(shè)備發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包函數(shù)和設(shè)備名,發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包函數(shù)hard_start_xmit( )通過物理設(shè)備發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包。和前兩種驅(qū)動類型不同,網(wǎng)絡(luò)驅(qū)動能夠異步接收和發(fā)送數(shù)據(jù)包文件。它還要完成發(fā)地址,修改傳輸參數(shù),阻塞處理和錯誤統(tǒng)計等任務(wù)。內(nèi)核網(wǎng)絡(luò)子系統(tǒng)完全依賴網(wǎng)絡(luò)協(xié)議和硬件協(xié)議。網(wǎng)絡(luò)協(xié)議是實現(xiàn)網(wǎng)絡(luò)傳輸?shù)母鞣N協(xié)議;硬件協(xié)議是網(wǎng)絡(luò)設(shè)備硬件驅(qū)動程序,負(fù)責(zé)與硬件設(shè)備通信與數(shù)據(jù)傳輸驅(qū)動接口都被結(jié)構(gòu)體struct net_device表示:

        初始化的主要作用是為網(wǎng)絡(luò)設(shè)備提供一個設(shè)備結(jié)構(gòu)文件;網(wǎng)絡(luò)設(shè)備和結(jié)構(gòu)文件緊密連接,相互依賴。結(jié)構(gòu)包含:打開設(shè)備,關(guān)閉設(shè)備,設(shè)備配置,硬件傳輸,I/O控制,設(shè)備狀態(tài),重建文件頭,網(wǎng)絡(luò)硬件結(jié)構(gòu)件頭,傳輸超時,看門狗超時,地址解析協(xié)議禁用標(biāo)志,設(shè)置模塊所有者等參數(shù)。網(wǎng)絡(luò)硬件結(jié)構(gòu)件頭包含:設(shè)備名,設(shè)備內(nèi)存信息,網(wǎng)絡(luò)接口的I/O地址,中斷號,接口選擇,DMA通道,設(shè)備狀態(tài),指向下一個設(shè)備的指針,初始化。網(wǎng)絡(luò)硬件結(jié)構(gòu)文件的很多參數(shù)都可以在ifconfig中看到。除了以上網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)文件可見的參數(shù)外,網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)文件中還有很多不可見的參數(shù),這些參數(shù)在結(jié)構(gòu)中也都發(fā)揮著重要作用。內(nèi)核網(wǎng)絡(luò)子系統(tǒng)即網(wǎng)絡(luò)接口是系統(tǒng)初始化時實時自動生成的,內(nèi)核支持而實際不存在的網(wǎng)絡(luò)物理設(shè)備。而對于字符設(shè)備和塊設(shè)備,無論有沒有實際的物理設(shè)備,內(nèi)核都生成其接。當(dāng)驅(qū)動鏈接到內(nèi)核時,網(wǎng)絡(luò)驅(qū)動不在內(nèi)核里聲明此網(wǎng)絡(luò)設(shè)備結(jié)構(gòu);而是在drivers/net/space.c里聲明設(shè)備結(jié)構(gòu)文件,這個文件的下有很多網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)的聲明。系統(tǒng)啟動時,網(wǎng)絡(luò)初始化代碼把所有的網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)都初始化,初始化時僅僅是給設(shè)備本身一個指針。另外,網(wǎng)絡(luò)設(shè)備驅(qū)動的注冊也不需要創(chuàng)建設(shè)備文件,而是直接通過設(shè)備名從設(shè)備描述結(jié)構(gòu)鏈表中找到對應(yīng)的struct net_device結(jié)構(gòu),可以直接用此結(jié)構(gòu)對應(yīng)的操作函數(shù)進(jìn)行注冊。

        3.2 網(wǎng)絡(luò)通信硬件電路

        以太網(wǎng)MAC模塊兼容IEEE802.3標(biāo)準(zhǔn),包含地址檢測,統(tǒng)計和控制寄存器,收發(fā)塊,DMA接口。地址檢測辨認(rèn)4個標(biāo)準(zhǔn)的48位地址,它還包含一個64位應(yīng)急寄存器來匹配廣播和單發(fā)地址。統(tǒng)計寄存器塊對收發(fā)操作相關(guān)的各種類型事件計數(shù),能讓軟件產(chǎn)生網(wǎng)絡(luò)管理統(tǒng)計兼容 IEEE802.3,它和狀態(tài)字被存在接收緩存表中。DM 9161A是具有網(wǎng)絡(luò)功能,工作在物理層,低功率收發(fā)芯片。從而決定物理層設(shè)備的職能,但這些功能依然由協(xié)議完成。串口管理接口包括管理數(shù)據(jù)時鐘和管理數(shù)據(jù)輸入輸出信號。自動識別媒體功能能夠讓它自動識別是直連還是交叉雙絞線,通過置位某特定寄存器的設(shè)置位即可。圖3網(wǎng)絡(luò)芯片硬件電路9161原理圖。

        圖3 網(wǎng)絡(luò)芯片9161原理圖

        3.3 網(wǎng)絡(luò)通信軟件實現(xiàn)

        進(jìn)行網(wǎng)絡(luò)編程,套接字是至關(guān)重要的;套接字代表通信的端口,通過套接字建立通信的橋梁。套接字有描述符,應(yīng)用程序可以通過描述符操作套接字。通過 socket( )創(chuàng)建套接字;同時套接字只有和地址綁定之后才有意義,通過bind( )進(jìn)行地址綁定。函數(shù) socket( )有四個參數(shù),分別表示通信域,套接字類型,制定協(xié)議。通過套接字和connect( )函數(shù)建立一個連接,建立連接之后,我們就可以通過send( )和recv( )發(fā)送和接收數(shù)據(jù)了。函數(shù)send( )有四個參數(shù):第一個表示通信,連接套接字;第二個是設(shè)置發(fā)送緩沖區(qū);第三個表示發(fā)送內(nèi)容字節(jié)數(shù);第四個是傳輸數(shù)據(jù)標(biāo)志。發(fā)送成功則返回已發(fā)送數(shù)據(jù)的字節(jié)數(shù),否則返回-1。函數(shù) recv( )也有四個參數(shù):第一個用來通信的套接字;第二個讀緩沖區(qū)設(shè)置;第三個讀最大字節(jié)數(shù);第四個接收數(shù)據(jù)標(biāo)志。而返回值有三種情況:大于零表示成功接收數(shù)據(jù)返回已接收字節(jié)數(shù)目;等于零表示無數(shù)據(jù)接收;小于零表示接收數(shù)據(jù)出錯。網(wǎng)絡(luò)驅(qū)動程序客戶端仔程序流程如圖4。

        圖4 網(wǎng)絡(luò)通信客戶端流

        [1]楊建華.嵌入式 Linux設(shè)備驅(qū)動程序開發(fā)[D].華南理工大學(xué)碩士論文,2010.

        [2]王巖,王子牛.嵌入式Linux設(shè)備驅(qū)動的研究與開發(fā)[J].貴州工業(yè)大學(xué)學(xué)報(自然科學(xué)版),2006,32(19):283-285.

        [3]張靜.嵌入式ARM 9200與MCP2510的通信研究[D].太原科技大學(xué)碩士論文,2008.

        [4]吳岳.Linux c程序設(shè)計大全.清華大學(xué)出版社[M].北京:2009年3月第一版.

        猜你喜歡
        嵌入式設(shè)備
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
        電子制作(2019年7期)2019-04-25 13:17:14
        基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
        嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
        電子制作(2018年18期)2018-11-14 01:48:16
        基于MPU6050簡單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        搭建基于Qt的嵌入式開發(fā)平臺
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        500kV輸變電設(shè)備運行維護(hù)探討
        如何在設(shè)備采購中節(jié)省成本
        原來他們都是可穿戴設(shè)備
        消費者報道(2014年7期)2014-07-31 11:23:57
        精品福利视频一区二区三区| 国产实拍日韩精品av在线| 精品国产免费Av无码久久久| 日韩欧美亚洲国产一区二区三区 | 久久久久久av无码免费看大片| 久久久久久久久久免免费精品| 亚洲综合色婷婷七月丁香| 久久精品免费视频亚洲| 国产69精品久久久久app下载| 国产午夜三级一区二区三| 亚洲中文欧美日韩在线| 99麻豆久久精品一区二区| 强开小婷嫩苞又嫩又紧视频韩国| 军人粗大的内捧猛烈进出视频| 中文字幕在线观看国产双飞高清| 精品国产一区二区三广区| 黄片视频免费在线播放观看| 成人免费无码大片a毛片软件| 免费a级毛片在线观看| 久久精品成人免费观看97| 中文字幕精品永久在线| 亚洲不卡一区二区视频| 亚洲国产av无码专区亚洲av| 亚洲免费观看| 91青青草在线观看视频| 手机看片久久第一人妻| 手机看片福利一区二区三区| 伊人色综合九久久天天蜜桃| 2021最新久久久视精品爱| 日本免费看片一区二区三区| 99精品久久精品一区二区| 99精品视频免费热播| 亚洲成av人片在线天堂无| 精品极品视频在线观看| 欧美成人精品a∨在线观看| 人妻无码αv中文字幕久久琪琪布| 久久精品免费无码区| 亚洲av中文字字幕乱码软件| 日韩在线观看入口一二三四 | 蜜桃91精品一区二区三区| 国产又黄又爽又色的免费|