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

        ?

        物聯(lián)網(wǎng)數(shù)據(jù)采集器硬件設(shè)計(jì)

        2021-11-11 05:18:08高學(xué)群
        中國(guó)軍轉(zhuǎn)民 2021年19期
        關(guān)鍵詞:源碼網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序

        ■ 高學(xué)群

        Linux 系統(tǒng)作為嵌入式操作系統(tǒng)有著明顯的優(yōu)勢(shì),首先,Linux源代碼是開放的,全球的Linux 愛好者都是在不斷地開發(fā)完善Linux內(nèi)核;其次,Linux 系統(tǒng)內(nèi)核很小,最小可達(dá)約134KB。同時(shí)Linux 內(nèi)核的更新速度很快并且可以定制。Linux 一大亮點(diǎn)就是免費(fèi)。Linux 適應(yīng)多種CPU 硬件平臺(tái)表現(xiàn)了嵌入式操作系統(tǒng)必須的特色。如今,Linux 操作系統(tǒng)不僅支持二三十種CPU,而且容易開發(fā)、使用和性能良好。Linux的平臺(tái)移植成為CPU 芯片行業(yè)的熱門項(xiàng)目,移植速度更是超過了Java。在網(wǎng)絡(luò)方面,Linux 內(nèi)核的結(jié)構(gòu)更有優(yōu)勢(shì),能夠完備的支持TCP/IP 協(xié)議并且能夠提供了最高千兆的以太網(wǎng)以及無線等網(wǎng)絡(luò)支持。

        本設(shè)計(jì)選用Linux作為軟件平臺(tái)進(jìn)行開發(fā),內(nèi)核版本2.6.39。

        1 基于Linux 的設(shè)備驅(qū)動(dòng)介紹

        設(shè)備驅(qū)動(dòng)在字面可以清楚的理解為“驅(qū)使硬件設(shè)備行動(dòng)”。驅(qū)動(dòng)是與底層硬件接觸,而不同硬件設(shè)備具有不同的工作方式,所以驅(qū)動(dòng)要按照具體的工作方式讀寫硬件設(shè)備寄存器,完成中斷處理、物理內(nèi)存向虛擬內(nèi)存的映射等,使設(shè)備各功能能夠正常工作,如能夠收發(fā)數(shù)據(jù)的通信設(shè)備,能顯示文字的顯示設(shè)備等。

        驅(qū)動(dòng)的對(duì)象不是CPU 內(nèi)核而是存儲(chǔ)器和外設(shè)。Linux把存儲(chǔ)器和外設(shè)分為字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備。字符設(shè)備是像觸摸屏、鼠標(biāo)之類的以串行順序依次進(jìn)行訪問的設(shè)備。塊設(shè)備是可以用任意順序進(jìn)行訪問并經(jīng)過系統(tǒng)的快速緩沖的設(shè)備。雖然字符設(shè)備不經(jīng)過系統(tǒng)的快速緩沖,但是它們之間并沒有明顯的界限,就像有塊設(shè)備特點(diǎn)的Flash 設(shè)備,也可以把它看成一個(gè)字符設(shè)備來訪問。網(wǎng)絡(luò)設(shè)備主要是接收和發(fā)送數(shù)據(jù)包。

        2 設(shè)計(jì)的嵌入式Linux 驅(qū)動(dòng)程序設(shè)計(jì)

        2.1 串口底層驅(qū)動(dòng)程序

        異步串口是通信最常用的資源。RS-232 和RS-485都是串行數(shù)據(jù)接口標(biāo)準(zhǔn)。RS-485比RS-232在傳輸速度、距離等方面都有著明顯優(yōu)勢(shì),同時(shí)一條總線上最多可連接32 個(gè)接收器。由于它們的時(shí)序完全一樣,只是在電氣特性上有所區(qū)別,所以它們之間也很容易實(shí)現(xiàn)轉(zhuǎn)換。

        串口驅(qū)動(dòng)位于tty 子系統(tǒng)。對(duì)于用戶來說,訪問串口與訪問其它字符設(shè)備的方法一樣,都是通過系統(tǒng)調(diào)用訪問設(shè)備文件從而訪問設(shè)備。串口主要有open 函數(shù),read函數(shù),write函數(shù)。因此驅(qū)動(dòng)程序中也要實(shí)現(xiàn)這三個(gè)實(shí)現(xiàn)函數(shù),如圖1 串口驅(qū)動(dòng)包含以下部分:

        圖1 串口驅(qū)動(dòng)程序結(jié)構(gòu)

        本設(shè)計(jì)基于Linux-2..639內(nèi)核源碼完成對(duì)串口驅(qū)動(dòng)程序的開發(fā)。其主要代碼在linux-2.6.39drivers tyserialatmel_serial.c 中實(shí)現(xiàn)。其中部分函數(shù)如下:

        (1)驅(qū)動(dòng)加載與卸載函數(shù)

        (2)開始發(fā)送數(shù)據(jù)

        本設(shè)計(jì)基于Linux-2..639內(nèi)核源碼完成對(duì)串口驅(qū)動(dòng)程序的開發(fā)。其主要代碼在linux-2.6.39drivers tyserialatmel_serial.c 中實(shí)現(xiàn)。其中部分函數(shù)如下:

        (1)驅(qū)動(dòng)加載與卸載函數(shù)

        (2)開始發(fā)送數(shù)據(jù)

        2.2 以太網(wǎng)口底層驅(qū)動(dòng)程序

        在物聯(lián)網(wǎng)發(fā)展的今天,嵌入式系統(tǒng)都會(huì)擁有網(wǎng)絡(luò)模塊。以太網(wǎng)作為通信接口有著傳輸速度快、穩(wěn)定等優(yōu)點(diǎn)。它也可以作為嵌入式系統(tǒng)開發(fā)的調(diào)試的接口。Linux網(wǎng)絡(luò)驅(qū)動(dòng)程序的體系結(jié)構(gòu)如圖2 所示

        圖2 Linux 網(wǎng)絡(luò)驅(qū)動(dòng)程序的體系結(jié)構(gòu)

        網(wǎng)絡(luò)設(shè)備接口及以上層次的源碼都可以通過Linux 內(nèi)核中找到,因此對(duì)于特定網(wǎng)絡(luò)硬件驅(qū)動(dòng)程序的移植關(guān)鍵在于設(shè)備驅(qū)動(dòng)功能層,包含接收數(shù)據(jù)、發(fā)送數(shù)據(jù)等控制。所有網(wǎng)絡(luò)設(shè)備在Linux 中都可以抽象為一個(gè)接口,網(wǎng)絡(luò)設(shè)備在內(nèi)核中的運(yùn)行情況由網(wǎng)絡(luò)設(shè)備接口(結(jié)構(gòu)體struct net_device)來表示。以dev_base 為頭指針的設(shè)備鏈表(每個(gè)元素代表一個(gè)網(wǎng)絡(luò)設(shè)備接口)管理著所有網(wǎng)絡(luò)設(shè)備。大部分供系統(tǒng)訪問和協(xié)議層調(diào)用的設(shè)備方法都在結(jié)構(gòu)體net_device 中,有init 函數(shù)(初始化)、open 和stop 函數(shù)(設(shè)備打開關(guān)閉)、hard_start_xmit 函數(shù)(數(shù)據(jù)包發(fā)送)以及中斷處理函數(shù)等。

        本設(shè)計(jì)基于Linux-2.6.39內(nèi)核源碼完成對(duì)網(wǎng)口驅(qū)動(dòng)程序的開發(fā)。其主要代碼在linux-2.6.39drivers etfec.c中實(shí)現(xiàn)。其中部分功能如下:

        (1)網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的模塊加載與卸載函數(shù)

        (2)網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)的初始化

        (3)網(wǎng)絡(luò)設(shè)備打開與釋放

        (4)數(shù)據(jù)包發(fā)送函數(shù)

        2.3 液晶顯示底層驅(qū)動(dòng)程序

        嵌入式處理器能夠提供一個(gè)良好的人機(jī)交互平臺(tái),屏幕主要有LCD,液晶等。幀緩沖存儲(chǔ)器是Linux 操作系統(tǒng)提供一個(gè)接口,以便連接顯示設(shè)備,并且能夠讓上層應(yīng)用程序直接進(jìn)行讀寫顯示緩沖區(qū),方便用戶使用。

        fbmem.c 中的file_operations 結(jié)構(gòu)體是幀緩沖設(shè)備提供給用戶空間的,對(duì)應(yīng)的xxxfb.c 文件實(shí)現(xiàn)對(duì)于特定幀緩沖設(shè)備關(guān)于fb_info結(jié)構(gòu)體的注冊(cè)與注銷等,以及fb_ops中成員函數(shù),LCD 控制器硬件寄存器由fb_ops 中成員函數(shù)操作。Linux 幀緩沖設(shè)備驅(qū)動(dòng)程序結(jié)構(gòu)見圖3。

        圖3 幀緩沖設(shè)備驅(qū)動(dòng)的程序結(jié)構(gòu)

        本設(shè)計(jì)基于Linux-2.6.39內(nèi)核源碼完成對(duì)顯示屏驅(qū)動(dòng)程序的開發(fā)。其主要代碼在linux-2.6.39driversvideoatmel_lcdfb.c 中實(shí)現(xiàn)。其中部分函數(shù)如下:

        (1)幀緩沖設(shè)備驅(qū)動(dòng)的模塊加載與卸載函數(shù)

        (2)平臺(tái)驅(qū)動(dòng)的探測(cè)與移除函數(shù)

        (3)幀緩沖設(shè)備驅(qū)動(dòng)的讀寫函數(shù)

        2.4 按鍵輸入底層驅(qū)動(dòng)程序

        在嵌入式系統(tǒng)中,有許多輸入設(shè)備,如觸摸屏、按鍵、鼠標(biāo)等。本設(shè)計(jì)采用了6 個(gè)按鍵完成輸入功能,其底層驅(qū)動(dòng)的結(jié)構(gòu)如圖4。

        圖4 按鍵驅(qū)動(dòng)程序結(jié)構(gòu)

        (1)按鍵驅(qū)動(dòng)模塊的加載和卸載函數(shù)

        (2)實(shí)現(xiàn)設(shè)備操作函數(shù)

        猜你喜歡
        源碼網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序
        基于網(wǎng)頁(yè)源碼結(jié)構(gòu)理解的自適應(yīng)爬蟲代碼生成方法
        基于圖神經(jīng)網(wǎng)絡(luò)的軟件源碼漏洞檢測(cè)方法
        企業(yè)如何保護(hù)源碼
        一種基于C# 的網(wǎng)絡(luò)設(shè)備自動(dòng)化登錄工具的研制
        基于數(shù)據(jù)結(jié)構(gòu)教輔系統(tǒng)的實(shí)驗(yàn)課程改革
        數(shù)據(jù)中心唯“快”不破
        基于列車監(jiān)測(cè)網(wǎng)絡(luò)設(shè)備的射頻功放模塊設(shè)計(jì)
        基于三層交換技術(shù)架構(gòu)數(shù)字化校園網(wǎng)絡(luò)設(shè)備的配置與管理
        驅(qū)動(dòng)程序更新與推薦
        驅(qū)動(dòng)程序更新與推薦
        人妻av在线一区二区三区| 午夜无码片在线观看影院| 久久这里只有精品9| 经典女同一区二区三区| 久久精品国产亚洲av一般男女| 久久理论片午夜琪琪电影网| 全部孕妇毛片| 亚洲成在人线电影天堂色| 亚洲黄色大片在线观看| 人妻少妇哀求别拔出来| 久精品国产欧美亚洲色aⅴ大片| 欧美一区波多野结衣第一页| 亚洲人成伊人成综合网中文 | 在线播放草猛免费视频| 国产福利视频一区二区| 人人妻人人澡人人爽人人精品电影| 激,情四虎欧美视频图片| 美女免费观看一区二区三区| 人妻丰满熟妇岳av无码区hd| 久久精品国产亚洲av高清色欲| 亚洲精品乱码久久久久久按摩高清| 国产精品麻豆成人av电影艾秋| 久久久久亚洲av无码专区导航| 精品少妇人妻成人一区二区| 日本在线观看三级视频| 综合五月激情二区视频| 小sao货水好多真紧h视频| 一区二区三区国产美女在线播放 | 久久99精品久久久久九色| 一区二区亚洲精品国产精| 久久久噜噜噜久久中文福利| aaaaa级少妇高潮大片免费看 | 免费人成黄页在线观看国产| 每日更新在线观看av| 国产性一交一乱一伦一色一情| 99热在线播放精品6| 一区二区视频在线国产| 成人aaa片一区国产精品| 亚洲人成网站在线播放观看| 亚洲精品乱码久久麻豆| 国产成人无码a在线观看不卡|