<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 設計應用 > TWI總線(xiàn)模塊化設計在智能機器人中的應用

TWI總線(xiàn)模塊化設計在智能機器人中的應用

作者: 時(shí)間:2016-10-10 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:利用AVR單片機的TWI(Two-Wire Serial Interface)總線(xiàn)構建了智能機器人系統的模塊化構架。利用TWI總線(xiàn)實(shí)現了主控模塊與擴展模塊之間的雙向多字節通信,介紹了軟件編程方法,可以將機器人各傳感器模塊采集到的數據實(shí)時(shí)發(fā)送至主控制器進(jìn)行處理。有效提高了程序的運行效率,使得智能機器人整體架構靈活、調試方便、擴展性強。
關(guān)鍵詞:TWI;模塊化;AVR

引言
模塊化設計的機器人系統由主控制模塊和擴展模塊構成,主要用于檢測機器人周?chē)h(huán)境信息和機器人自身運動(dòng)狀態(tài),實(shí)時(shí)獲取各種傳感器信息,并對機器人運動(dòng)進(jìn)行控制。由于要采集的數據信息很多,本系統應用了TWI總線(xiàn)構建模塊化架構,模塊均采用AVR單片機為主控芯
片:1片ATmega128(主控)、10片ATmega16、2片ATmega64和3片ATmega8。主控制器要實(shí)時(shí)地匯總并分析各單片機的信息才能對機器人下一步動(dòng)作作出決策,因此,各單片機之間的通信顯得尤為重要。另外,為了方便對電子羅盤(pán)進(jìn)行標定,需要由主控制器向電子羅盤(pán)模塊發(fā)送相應指令。也就是說(shuō),主控制模塊與擴展模塊之間需要實(shí)現雙向多字節通信,這是一個(gè)通信難點(diǎn)。本系統全部模塊均采用TWI通信接口,成功建立了一個(gè)主機與多個(gè)從機之間的雙向多字節通信,有效提高了程序的運行效率,使得智能機器人整體架構靈活,調試方便,并且擴展性強。

1 TWI總線(xiàn)簡(jiǎn)介
TWI總線(xiàn)是對I2C總線(xiàn)的繼承與發(fā)展,具有I2C總線(xiàn)的特點(diǎn),即接線(xiàn)簡(jiǎn)單。外部硬件只需兩個(gè)上拉電阻,使用兩根雙向傳輸線(xiàn)(一是時(shí)鐘線(xiàn)SCL,一是數據線(xiàn)SDA)就可以將128個(gè)不同的設備互連到一起。TWI對I2C總線(xiàn)的發(fā)展表現在:它定義了自己的功能模塊和寄存器,寄存器各位功能的定義與I2C總線(xiàn)并不相同,且TWI總線(xiàn)引入了狀態(tài)寄存器,從而在操作和使用上比I2C總線(xiàn)更靈活。兩線(xiàn)接口TWI很適合于典型的處理器應用,以及多機間實(shí)時(shí)通信的應用。
TWI通信接口簡(jiǎn)單,但是強大而靈活。支持主機和從機操作,器件可以工作于發(fā)送器模式或接收器模式。數據傳輸率高達400 kHz,且支持多主機仲裁。所有連接到總線(xiàn)上的設備都有自己的地址,TWI協(xié)議解決了總線(xiàn)仲裁的問(wèn)題,7位地址信息允許有128個(gè)從機?;谝陨蟽?yōu)點(diǎn),TWI通信接口非常適合應用于微控制器(俗稱(chēng)單片機)系統。

2 智能機器人系統的模塊化結構
本機器人系統以ATmega128單片機為主控制模塊,擴展模塊包括2個(gè)紅外傳感器模塊、6個(gè)超聲波模塊、2個(gè)視覺(jué)處理模塊、1個(gè)溫度傳感器模塊、2個(gè)里程計模塊、1個(gè)電子羅盤(pán)模塊,以及1個(gè)陀螺儀模塊。擴展模塊負責采集相應的數據信息,由主控制器進(jìn)行處理分析。然后,
及時(shí)地對機器人下一步動(dòng)作進(jìn)行決策與指示。本系統的模塊化結構圖如圖1所示。其中,超聲波模塊、視覺(jué)處理模塊、電子羅盤(pán)模塊和陀螺儀模塊均采用ATmega16單片機,里程計模塊采用ATmega64單片機,紅外傳感器模塊和溫度傳感器模塊采用ATmega8單片機。主控制模塊與各擴展模塊均采用TWI接口。

本文引用地址:http://dyxdggzs.com/article/201610/306493.htm

a.JPG



3 模塊化智能機器人系統的TWI總線(xiàn)結構
TWI可以工作于4種不同的模式:主機發(fā)送器(MT)、主機接收器(MR)、從機發(fā)送器(ST)及從機接收器(SR)。同一應用程序可以使用幾種模式。本機器人系統中,ATmega128為主機,其他單片機均為從機設備。目的是實(shí)現主機與多片從機之間的雙向通信,即主機可以發(fā)送多字節數據給從機設備,從機也可以發(fā)送多字節數據給主機。TWI的兩根線(xiàn)在工作時(shí)必須有上拉電阻,既可以通過(guò)相關(guān)程序使能內部的上拉電阻,也可以在硬件設計時(shí)增加上拉電阻。實(shí)際應用中,最好軟硬件的方法同時(shí)使用,雙重保障。圖2為T(mén)WI總線(xiàn)的硬件結構接線(xiàn)圖。

b.JPG



4 TWI通信的軟件設計
4.1 主機的軟件設計
本系統中,主機ATmega128采用輪詢(xún)TWINT位的方式。主機主程序中的系統初始化主要包括定時(shí)器初始化和TWI總線(xiàn)初始化。主機主程序中寫(xiě)函數TWI_write()的詳細流程如圖3所示,讀函數TWI_read()的詳細流程如圖4所示。一次傳輸過(guò)程包括一個(gè)START信號、一個(gè)SLA+R/W信號、一個(gè)或多個(gè)數據包、一個(gè)STOP信號。每發(fā)送一個(gè)信號或一個(gè)數據包,均要檢驗狀態(tài)寄存器TWSR中的狀態(tài)碼,如果狀態(tài)碼正確,才發(fā)下一個(gè)信號,若不正確則轉出錯處理。通過(guò)軟件編程技巧,可以在一次TWI通信中,實(shí)現主機與從機之間的多字節數據傳輸。同時(shí),在主機主程序流程圖中可以看到,在一個(gè)循環(huán)內,可以實(shí)現主機與從機之間的雙向數據傳輸。

c.JPG


4.2 從機的軟件設計
對于所有從機,均采用中斷方式。采用中斷方式時(shí),當TWINT位置位(硬件置位),則程序會(huì )自動(dòng)跳到中斷向量,執行中斷服務(wù)程序。在等待TWINT置位期間,從機可以執行數據采集工作或執行其他程序,從而有效地提高了程序的運行效率。中斷服務(wù)程序中,只需檢驗TWSR的狀態(tài)碼,讀取或寫(xiě)入數據寄存器TWDR,這樣來(lái)完成與主機的數據通信。從機TWI中斷服務(wù)程序流程圖如圖5所示。

d.JPG


對于不同的從機,硬件方面需要注意的是SCL、SDA兩根線(xiàn)位于單片機的I/O端口不同,例如ATmega16的SCL、SDA分別位于PC0、PC1;ATmega8的SCL、SDA則分別位于PC5、PC4。軟件方面,需要給不同從機的TWAR賦予各自的從機地址。
4.3 TWI總線(xiàn)的部分程序
為了增強程序的可讀性,將各種模式所需的TWI總線(xiàn)狀態(tài)進(jìn)行宏定義。對于主機,省略一些數據處理和其他功能程序,最簡(jiǎn)化的主程序如下:
e.JPG
g.JPG
h.JPG

5 TWI通信的注意問(wèn)題
由于TWI通信存在主機與從機模塊,在單獨對主機程序單步調試時(shí),主機單步運行,而從機處于全速運行,主從機步調不一致,單步調試結果顯示TWINT位不置位或者TWSR狀態(tài)碼不正確,誤認為程序有問(wèn)題。實(shí)際上,程序在全速運行時(shí)是可以實(shí)現通信的。
另外,根據功能要求,在一次TWI通信中,例如要求主機給從機發(fā)送數據的字節數是1字節或2字節,此時(shí),在從機中斷接收中,需增加相應接收標志位flag1、flag2,通過(guò)各自的標志位分清接收的不同字節的數據,避免產(chǎn)生不必要的混淆與錯誤。
編程中,要嚴格按照TWI說(shuō)明手冊中的內容,不同的TWSR狀態(tài)碼時(shí),對TWDR執行相應的操作,對TWCR寫(xiě)入相應的數值。否則,有一點(diǎn)出入,都會(huì )造成TWI通信的失敗。

結語(yǔ)
本智能機器人系統采用TWI總線(xiàn)構建了模塊化架構,優(yōu)點(diǎn)是系統靈活、擴展性強。TWI通信方法是主機ATmega128器件程序采用查詢(xún)方式,其他多片從機器件程序則采用中斷方式。本文介紹了在一次TWI傳輸過(guò)程中,傳送多字節數據的編程方法,并且建立了主機與多從機之間的雙向多字節數據通信,可以將機器人各傳感器模塊采集到的數據實(shí)時(shí)發(fā)送至主控制器進(jìn)行處理,有效地提高了程序的運行效率。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>