中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于嵌入式Linux的ARM/DSP多機I2C通信

        基于嵌入式Linux的ARM/DSP多機I2C通信

        作者: 時間:2012-05-08 來源:網(wǎng)絡(luò) 收藏


        2 軟件設(shè)計
        運行操作系統(tǒng)的微控制器作為主控制器,在數(shù)據(jù)管理及多任務(wù)調(diào)度等方面有顯著優(yōu)勢,可以很好地組織外圍器件采集的數(shù)據(jù);主要實現(xiàn)對系統(tǒng)的整體控制,并通過總線設(shè)備驅(qū)動程序控制總線模塊,通過主機尋址實現(xiàn)向總線上掛載的下層的數(shù)據(jù)收發(fā)。為保證數(shù)據(jù)的實時性,F(xiàn)28015通過中斷響應(yīng)的方式實現(xiàn)數(shù)據(jù)接收和發(fā)送。
        2.1 9平臺的總線驅(qū)動設(shè)計
        2.1.1 I2C總線讀寫時序
        ARM9微控制器作為主機向從機寫數(shù)據(jù),首先向從機發(fā)送啟動信號,然后發(fā)送7位從機地址和1位寫標志位,再等待從機的應(yīng)答信號。在收到應(yīng)答信號后,主機發(fā)送數(shù)據(jù)給從機,再次等待應(yīng)答信號。當主機收到應(yīng)答信號之后再次發(fā)送數(shù)據(jù)。之后,主機等待從機的應(yīng)答信號,如此直到數(shù)據(jù)發(fā)送完成,主機發(fā)送停止信號。I2C總線寫數(shù)據(jù)幀格式如圖3所示。

        本文引用地址:http://www.antipu.com.cn/article/149119.htm

        c.jpg


        主模式下讀數(shù)據(jù),是指每次從指定的位置讀取一個或多個字節(jié)數(shù)據(jù)。主機首先向從機發(fā)送啟動信號,然后發(fā)送7位從機地址和1位讀標志位,等待從機應(yīng)答。當收到從機的應(yīng)答信號后,主機準備接收從機發(fā)送的數(shù)據(jù),接收完成后發(fā)送一個應(yīng)答信號,如此直到數(shù)據(jù)接收完成,主機發(fā)送一個停止信號。圖4為I2C總線讀數(shù)據(jù)幀格式。

        d.jpg


        2.1.2 下I2C總線驅(qū)動程序概述
        Linux系統(tǒng)的I2C總線驅(qū)動采用體系化結(jié)構(gòu)設(shè)計,包括I2C總線適配器驅(qū)動和I2C總線設(shè)備驅(qū)動??偩€驅(qū)動實現(xiàn)對I2C總線適配器(S3C2440的I2C總線模塊)的控制,設(shè)備驅(qū)動實現(xiàn)對具體設(shè)備(F28015的I2C總線模塊)的讀寫控制。圖5為總體驅(qū)動框架,可以分為三個層次:

        e.jpg


        ①I2C框架。內(nèi)核中i2c.h和i2c-core.c為I2C總線框架的主體,提供了核心數(shù)據(jù)結(jié)構(gòu)的定義、I2C總線適配器驅(qū)動和設(shè)備驅(qū)動的注冊、注銷管理、I2C總線方法上層的、與具體適配器無關(guān)的代碼、檢測設(shè)備地址的上層代碼等。i2c-dev.c用于創(chuàng)建I2C總線適配器的設(shè)備節(jié)點,提供I2C總線設(shè)備訪問方法等。
        ②I2C總線適配器驅(qū)動。定義描述具體I2C總線適配器的數(shù)據(jù)結(jié)構(gòu),實現(xiàn)在具體I2C總線適配器上的I2C總線通信方法。
        ③I2C總線設(shè)備驅(qū)動。定義描述具體設(shè)備的數(shù)據(jù)結(jié)構(gòu),借助I2C總線框架的相關(guān)函數(shù)實現(xiàn)設(shè)備的注冊,并為用戶提供上層應(yīng)用程序編程接口。
        Linux的I2C總線驅(qū)動框架中的主要數(shù)據(jù)結(jié)構(gòu)包括:i2c_driver、i2c_client、i2c_adapter和i2c_algorithm,它們被定義在內(nèi)核中的i2c.h頭文件中。i2c_adapter對應(yīng)于物理上的一個適配器,而i2c_algorithm對應(yīng)一套通信方法,用來為適配器提供通信函數(shù)。i2c_algori thm中的關(guān)鍵函數(shù)master_xfei()用于產(chǎn)生I2C總線訪問周期需要的信號,以i2c_msg(即I2C總線消息)為單位。該結(jié)構(gòu)體原型如下:
        f.jpg
        i2c_driver對應(yīng)一套驅(qū)動方法,是用于輔助作用的數(shù)據(jù)結(jié)構(gòu)。i2c_client對應(yīng)于真實的物理設(shè)備,每個I2C總線設(shè)備都需要一個i2c_clie nt來描述。i2c_adapter和i2c_client的關(guān)系與I2C總線硬件體系中適配器和設(shè)備關(guān)系一致,即i2c_client依附于i2c_adapter。

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

        linux相關(guān)文章:linux教程




        關(guān)鍵詞: 多機 I2C 通信 DSP ARM 嵌入式 Linux 基于

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉