《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于I2C總線多步進電機實驗平臺的開發
基于I2C總線多步進電機實驗平臺的開發
2015年微型機與應用第12期
晏 亮,潘貞汝,常 華
(中國農業大學 信息與電氣工程學院,北京 100083)
摘要: 描述了基于I2C總線多步進電機平臺的設計,介紹了I2C總線通信協議的特點,給出了I2C總線在1片主MSP430G2553和8片從MSP430G2553之間數據傳輸程序流程圖和整個平臺的硬件結構框架,完成了基于I2C總線的單主多從通信,最終實現了對多路步進電機的控制。
Abstract:
Key words :

  摘  要: 描述了基于I2C總線步進電機平臺的設計,介紹了I2C總線通信協議的特點,給出了I2C總線在1片主MSP430G2553和8片從MSP430G2553之間數據傳輸程序流程圖和整個平臺的硬件結構框架,完成了基于I2C總線的單主多從通信,最終實現了對多路步進電機的控制。

  關鍵詞: I2C總線;MSP430G2553;單主多從;步進電機

0 引言

  I2C總線是兩線式串行總線,用于連接微控制器及其外圍設備,是微電子通信控制領域廣泛采用的一種總線標準。它是同步通信的一種特殊形式,具有接口線少、控制方式簡單、器件封裝形式小、通信速率較高等優點。本文介紹一種利用I2C總線協議,通過單主多從模式,利用1段音頻信號控制8個單片機實現不同方向、速率的轉動。

1 I2C總線技術

  1.1 I2C總線接口

  本文所用的芯片主要為TI公司的MSP430G2553芯片,其中的I2C模式是通過USCI_Bx模塊來進行配置的,本文主要應用了USCI_B0模塊[1]。在I2C模式中,USCI通過兩線式I2C串行總線提供了MSP430與I2C兼容器件的連接。外部器件串行依附在I2C總線上,通過2-線I2C接口為USCI模塊發送數據或從USCI接收數據。如圖1所示,I2C總線由時鐘線SCL和數據線SDA構成,在時鐘線SCL保持高電平期間,數據線SDA上的電平被拉低(即負跳變),為I2C的開始信號[2]。在時鐘線SCL保持高電平期間,數據線SDA被釋放,是I2C的終止信號。

  如圖2所示,進行數據傳送時,在SCL呈現高電平期間,SDA上的電平必須保持穩定,只有在SCL為低電平期間,才允許SDA上的電平改變狀態。

  關于傳輸速度,I2C總線在標準模式最高為100 kb/s,高速模式最高為400 kb/s。

  1.2 I2C總線數據傳輸

  I2C總線傳輸數據必須遵循規定的數據傳輸格式[2],主機給每個數據傳輸位產生一個時鐘脈沖,I2C模式對數據位進行操作。在主機設置好I2C為發送模式后,USCI模塊會檢測總線是否可用,產生START條件。本文中將音頻信號依據頻率分為8段,并且每段對應不同的從機地址,如此便可依據不同頻率將音頻信號發送給不同的從機。I2C模式支持7位和10位尋址模式[3],本文運用了7位尋址模式。如圖3所示,在7位尋址模式中,第一個字節是7位從機地址和R/W位。接收器在每個字節結束后發送ACK位。

003.jpg

  所有掛到I2C總線的外圍器件各自都有一個唯一確定的地址[2]。任何時刻總線上只有一個主控器件對總線實行控制權,分時實現點對點的數據傳送。I2C總線上所有外圍器件都有規范的器件地址,器件地址由7位組成,它和1位方向位(R/W)構成了I2C總線器件的尋址字節SLA,格式如圖4所示。

004.jpg

  其中高4位(A6、A5、A4、A3)是I2C總線外圍接口器件固有地址編碼,器件出廠時已固化好。A0~A2是對從機分配的不同地址,本文中MSP430G2553的高4位為0100[1],一共可以掛接8個單片機。而最低位R/W為數據方向位,當R/W為0時,主機發送數據,當R/W為1時,主機接收數據。本文中主機只用于發送數據,故R/W位一直為0。本文中的8個從機地址分別為:40H、42H、44H、46H、48H、4AH、4CH和4EH。

  故總線上的數據傳輸過程[4]是:(1)主控制器發送開始信號S;(2)主控制器發送芯片尋址字節;(3)從器件發出應答信號ACK;(4)主控制器發送數據尋址字節;(5)發送者發送數據,接受者接收數據;(6)主控制器發送停止信號P終止數據傳輸。其流程圖如圖5所示。

005.jpg

2 I2C的系統硬件結構

006.jpg

  圖6是本文所研究平臺的整體框圖,在此系統中8個從機對應8種不同音符頻段,分別控制8個電機的轉速。系統的主要功能是通過PC由MATLAB對給定音頻進行編碼[5],產生單片機可用的曲譜編碼,然后通過串口將所產生的編碼發送給主MSP430G2553,主機在尋址時先判斷編碼范圍,然后通過I2C總線尋址相應的從機,并向被尋址的MSP430G2553發送相應的音頻編碼。從機將所接收到的音頻編碼作為定時器的定時周期,利用定時器產生相應的脈沖信號,從而驅動電機轉動。

007.jpg

  為實現單主多從單片機MSP430G2553之間的通信,將主機I2C總線上的SCL(P1.6)和SDA(P1.7)分別與從機的SCL(P1.6)和SDA(P1.7)相連接,并且在VCC與SCL、SDA兩個信號之間分別接上10 k?贅的上拉電阻,如圖7所示。由此從機的P1.6就成了時鐘接收端,P1.7為數據接收端。通過編程將主機發送的數據送入Buff,從機通過讀Buff中的數據將其實時轉換為頻率改變的方波,并通過P1.5口將其發送給電機驅動器,從而實現控制步進電機的功能。

3 I2C單主多從通信

  首先將USCI模塊初始化,使主機/從機可以進行接收/發送操作,初始化過程如下[6]:將USCI中軟件復位位UCSWRST置位來初始化所有的USCI寄存器,配置P1.6和P1.7分別為I2C的SCL端口和SDA端口,通過UCMST和UCMODEx選擇I2C模式和主機或從機模式。然后通過置位UCSEEL_2來選擇主機時鐘為SMCLK  (1 MHz),并將主時鐘12分頻為100 kHz作為主機中的SCL時鐘[1]。上述模塊初始化完成后,清除UCSWRST,釋放USCI,使能發送中斷。

  對于主發送模塊,初始化之后需要把從地址設置為7 bit,再將目標從地址寫入寄存器UCB0I2CSA中。本系統將所給的音頻信號按照頻率分為8段,每段對應不同的從機地址,使主機通過判斷與不同的從機地址相匹配。初始化完成后通過置位UCRT和UCTXSTT,使主機工作在發送模式并產生一個起始條件。當地址讀入UCB0I2CSA中后,硬件會自動識別并找到與之相對應的從機,一旦地址匹配則UCSTTIFG置位,主機進入LPM0模式并且觸發中斷,將要發送的數據寫入UCB0TXBUF中,當從機地址被應答時UCTXSTT位即刻清零。本文中將音頻信號裝入數組中,當所有數據發送完畢后產生一個STOP條件,并將UCB0TXIFG清零同時退出低功耗模式。圖8為主機發送模式流程圖。

008.jpg

  對于從接收模塊,由于要對主機中讀取的數據進行處理,本文中選用定時器A將其數據轉換為對應的脈沖波,從而達到控制電機的目的。因此需要先將定時器A初始化[7],為了不影響主機中SMCLK,本文使定時器A工作在ACLK時鐘下。隨后將其USCI模塊設置為I2C接收模式,并且無需設置USCI時鐘。一旦從設備中UCB0RXBUF接收到的新數據被讀走,從設備即發送一個應答信號給主設備,然后開始下一個數據的接收。定時器A將接收到的數據通過定時器中斷產生頻率改變的方波,并通過P1.5口輸出,從而控制步進電機依據音頻信號的不同頻率來變速轉動。圖9為從機接收模式流程圖。

009.jpg

4 結論

  本文介紹的I2C總線單主多從通信系統占用I/O資源少,功耗低,傳輸速率高,能夠以較高性能控制步進電機隨音樂轉動。從實驗結果來看,主從單片機可以通過該總線系統進行非常可靠的通信,進而可在各個領域取得廣泛應用。

參考文獻

  [1] MSP430x2xx Users′ guide[Z].2004.

  [2] 沈建華,楊艷琴,翟驍曙.MSP430系列16位超低功耗單片機原理與應用[M].北京:清華大學出版社,2004.

  [3] 賈朱紅,張曉冬.基于I2C總線的單主多從單片機之間的通信[J].微計算機信息,2009(8):101-102.

  [4] 鄧忠華,李霞,陳浩.I2C總線技術在單片機串行擴展中的應用[J].武漢理工大學學報(交通科學與工程版),2005(2):227-229,247.

  [5] 孫金中,馮炳軍.基于I2C總線控制的音頻處理電路設計[J].現代電子技術,2009(18):85-88.

  [6] 吳小平,李莉,何鑫,等.I2C總線及其數據通信編程[J].微計算機信息,2000(2):11-13.

  [7] 陳光建,賈金玲.基于單片機的I2C總線系統設計[J].儀器儀表學報,2006(S3):2465-2466,2472.


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久久久精品麻豆 | 国产综合视频在线观看 | 精品视频 九九九 | 2022国产精品自拍 | 99在线精品免费视频 | 久久久久久97 | 精品国产一区二区三区2021 | 亚洲婷婷综合中文字幕第一页 | 精品一区二区三区免费 | 不卡中文一二三区 | 婷婷六月久久综合丁香可观看 | 99精品视频一区在线视频免费观看 | 五月花成人网 | 国产成人精品日本亚洲网址 | 欧美午夜精品一区二区三区 | 国产精品福利在线观看 | 国产精品亚洲欧美日韩久久 | 日韩欧美一区二区三区不卡视频 | 精品福利视频一区二区三区 | 成人免费视频一区二区 | 97影院午夜在线观看视频 | 毛片免费播放 | 欧美高清不卡视频 | 国产美女精品久久久久中文 | 免费一级毛片在播放视频 | 欧美视频一二三区 | 国产片在线 | 美女国产在线观看 | 五月婷婷六月合 | 精品一区二区三区在线播放 | 久久久久久夜精品精品免费啦 | 婷婷开心色| 国产高清视频免费 | 在线精品视频免费观看 | 婷婷网五月天天综合天天爱 | 两性视频久久 | 国内精品区一区二区三 | 欧美中文字幕在线视频 | 婷婷四房综合激情五月在线 | 久久久久九九精品影院 | 国产成人亚洲综合 |