• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2021-11-12 04:41:02高學(xué)群
      中國軍轉(zhuǎn)民 2021年10期

      高學(xué)群

      摘要:嵌入式 Linux是以Linux系統(tǒng)為基礎(chǔ)的嵌入式操作系統(tǒng),將Linux操作系統(tǒng)定制成能夠運(yùn)行的嵌入式操作系統(tǒng)。嵌入式Linux不僅具有嵌入式操作系統(tǒng)的特點(diǎn)還有著大量的開放源碼資源和免費(fèi)的版權(quán),最重要的是有著優(yōu)異的性能和許多應(yīng)用軟件的支持。憑借著產(chǎn)品應(yīng)用開發(fā)周期短,可參考和移植實(shí)時(shí)開放代碼,被開發(fā)人員廣泛關(guān)注。

      關(guān)鍵詞: Linux;設(shè)備驅(qū)動(dòng);軟件平臺(tái)

      Linux系統(tǒng)作為嵌入式操作系統(tǒng)有著明顯的優(yōu)勢,首先,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)勢,能夠完備的支持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)的對象不是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í)一條總線上最多可連接32個(gè)接收器。由于它們的時(shí)序完全一樣,只是在電氣特性上有所區(qū)別,所以它們之間也很容易實(shí)現(xiàn)轉(zhuǎn)換。

      串口驅(qū)動(dòng)位于tty子系統(tǒng)。對于用戶來說,訪問串口與訪問其它字符設(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)包含以下部分:

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

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

      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所示

      網(wǎng)絡(luò)設(shè)備接口及以上層次的源碼都可以通過Linux內(nèi)核中找到,因此對于特定網(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)核源碼完成對網(wǎng)口驅(qū)動(dòng)程序的開發(fā)。其主要代碼在linux-2.6.39\drivers\net\fec.c中實(shí)現(xiàn)。其中部分功能如下:

      连山| 通榆县| 呼伦贝尔市| 岱山县| 信宜市| 成武县| 友谊县| 涞水县| 图木舒克市| 万载县| 石屏县| 玛沁县| 平安县| 乡宁县| 高邮市| 景东| 綦江县| 江津市| 抚顺市| 沙坪坝区| 抚远县| 荆门市| 长子县| 沭阳县| 江都市| 那坡县| 丹东市| 涡阳县| 亳州市| 乐山市| 灵寿县| 丹巴县| 萝北县| 环江| 南阳市| 星座| 泉州市| 铜陵市| 濉溪县| 文成县| 新巴尔虎右旗|