當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]摘要:利用AVR單片機(jī)的TWI(Two-Wire Serial Interface)總線構(gòu)建了智能機(jī)器人系統(tǒng)的模塊化構(gòu)架。利用TWI總線實(shí)現(xiàn)了主控模塊與擴(kuò)展模塊之間的雙向多字節(jié)通信,介紹了軟件編程方法,可以將機(jī)器人各傳感器模塊采集到的數(shù)

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

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

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

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



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



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


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


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

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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉