www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術(shù)》雜志
[導讀]摘 要 :以 I2C 通信主控方的要求為基礎,討論 I2C 通信從動方的程序編寫。內(nèi)容包括 I2C 通信的起始部分(握手部分)、數(shù)據(jù)傳送部分以及停止部分的程序編寫,以三部分通信波形要求為準,總結(jié)軟件編寫流程。I2C 通信的數(shù)據(jù)格式靈活多樣,可以一次傳送 8 位二進制數(shù)據(jù),也可以一次傳送 8 的倍數(shù)的二進制數(shù)據(jù),從機在通信中必須按照主機的要求進行數(shù)據(jù)傳送。總結(jié)從機的數(shù)據(jù)傳送程序流程,以期滿足主機的通信要求,從而得出 I2C 通信從動模式的詳細總結(jié)。



引 言


在嵌入式系統(tǒng)設計中存在著大量的 IC 間通信,目前使用較多的為 I2C 通信。當前大部分單片機均可采用硬件方式的 I2C 模式進行通信,但也有少部分單片機為降低成本,并未設計硬件方式的 I2C 通信,因此只能采用軟件方式來實現(xiàn)芯片間通信。目前已有大量文獻討論了 I2C 通信時主控方的軟件編寫,但作為通信的另一方,從控方的程序編寫很少有相關(guān)資料涉及,特別是從控方的程序相較于主控方的程序更為復雜。因此從主機通信要求出發(fā),總結(jié)了一套從機的通信軟件編寫流程[1-3]。

通過主機發(fā)出的信號請求,要求從控機采取相應應答信號。為了實現(xiàn)從機的實時性,要求從機的 SCL 線輸入采用外部中斷方式進行,可將中斷方式設置為上升沿觸發(fā)方式。


1 起始信號


圖 1 所示為主控機發(fā)送I2C 起始信號的波形圖。I2C 總線通過上拉電阻連接電源的正極,當總線空閑時,兩根線均為高電平。連到總線上的任一器件輸出的低電平都將使總線的信號變低,即各器件的 SDA及 SCL均為線“與”關(guān)系。進行 I2C通信時,首先要確認總線是否空閑。圖 1中,主機先將數(shù)據(jù)線拉高,再將時鐘線拉高,但需注意在拉高時鐘線時從機的響應,其中時間 t1為從機響應時間。從機應立即釋放時鐘線,轉(zhuǎn)為輸入狀態(tài)。主機只有檢測到從機釋放時鐘線控制權(quán)時才能進行下一步操作。主機在拉高時鐘線后,檢測時鐘線的狀態(tài),只有從機為輸入,時鐘線變高后,主機才可以發(fā)出起始命令 [4]。

圖 1 主機發(fā)送起始信號波形

時鐘信號線為高電平時,主機將數(shù)據(jù)線拉低以發(fā)送起始命令,此時從機檢測到數(shù)據(jù)信號線產(chǎn)生由高到低的信號變化后,從機立即檢測時鐘信號線是否產(chǎn)生由高到低的變化, 如若產(chǎn)生,則說明通信起始信號已發(fā)出,主機準備與從機通信 [5]。從機控制流程如圖 2 所示。

圖 2 從機接收起始信號時的程序流程


2 停止信號


停止信號的產(chǎn)生比起始信號簡單,從機對停止信號的要求也比起始信號簡單。

圖 3所示為主機停止信號波形圖,對應從機在主機時鐘信號進入中斷服務程序后,通過檢測主機在數(shù)據(jù)線上發(fā)出的由低到高的電平變化來確認通信結(jié)束。

圖 3 停止信號波形


3 應答信號


主機發(fā)送 1 B 數(shù)據(jù)后,在第九個時鐘(CLOCK)脈沖時必須釋放數(shù)據(jù)線,由從機產(chǎn)生一個應答信號。從機回復低電平為有效應答(ACK),表示從機已成功接收到該字節(jié) ;從機回復高電平為非應答信號(NACK),表示從機未成功接收該字節(jié)。如果是有效的應答信號位,要求從機在第九個時鐘脈沖之前的低電平時間將數(shù)據(jù)線拉低,并確保在第九個時鐘的高電平期間為穩(wěn)定的低電平。如果主機從從機讀取信息, 則在讀完 1 B 數(shù)據(jù)后,主機向從機發(fā)送一個應答信號 ACK, 讀完最后一個數(shù)據(jù)后,主機向從機發(fā)送一個 NACK 信號,通知從機結(jié)束數(shù)據(jù)發(fā)送,并在最后發(fā)送一個停止信號給從機。應答信號波形如圖 4 所示。在每 8 位數(shù)據(jù)傳送完成后,第九個時鐘脈沖傳送一個應答信號。向從機中寫信息即由從機發(fā)出應答信號 ;從從機中讀信息,即由主機發(fā)出應答信號。應答信號為低即為成功,為高則為失敗。

圖 4 應答信號波形

從機必須配合主機工作,從機在第九個時鐘脈沖上升沿產(chǎn)生中斷時,將根據(jù)自己的接收情況產(chǎn)生應答信號。從機工作程序流程如圖 5 所示。

基于主控模式下的 I2C 通信從動模式軟件設計


4 數(shù)據(jù)傳送

4.1 字節(jié)傳送與應答格式

數(shù)據(jù)傳送時先高位后低位,9 位為一幀。如果從機未應答主機信號,如從機正在進行其他工作而無法接收總線上的數(shù)據(jù),則此時從機在應答時必須將數(shù)據(jù)線置于高電平,產(chǎn)生一個非應答信號,主機產(chǎn)生一個終止信號以結(jié)束總線的數(shù)據(jù)傳送。每傳送完一個 8 位數(shù)據(jù),主機都要與從機通過應答與非應答信號進行溝通以確定是否繼續(xù)進行數(shù)據(jù)傳送。在主機從從機中讀取數(shù)據(jù)時,主機收到最后一個數(shù)據(jù)字節(jié)后,必須向從機發(fā)出一個非應答信號(此時的應答信號由主機發(fā)出)作為線束標志。從機釋放 SDA 線,允許主機產(chǎn)生終止信號。

4.2 數(shù)據(jù)幀格式

從機地址為 7 位,分別占據(jù)一個字節(jié)的 D7 ~ D1 位。D0 位為讀寫標志位,D0=0 為寫入從機操作 ;D0=1,為從從機讀取數(shù)據(jù)操作。從機地址格式與讀寫格式如圖 6 所示。

基于主控模式下的 I2C 通信從動模式軟件設計


(1)主機向從機寫數(shù)據(jù),以 8 位數(shù)據(jù)加一位應答為一幀, 從機負責應答。主機先寫入從機地址,再寫入從機存儲器地址,后面為要寫入的數(shù)據(jù),以一個字節(jié)加一個應答位(非應答位)為一幀寫入。如果只寫一個字節(jié),寫完后主機可發(fā)停止信號,如果繼續(xù)寫入數(shù)據(jù),則主機繼續(xù)寫入數(shù)據(jù)即可,不必再次輸入存儲器地址,從機會在上一地址上自動加 1 進行數(shù)據(jù)存儲。此時要特別注意的是 :從機一定要有應答信號(ACK),否則主機將終止數(shù)據(jù)的繼續(xù)傳送。從機無論是產(chǎn)生非應答信號還是在規(guī)定時間內(nèi)未產(chǎn)生應答信號,主機都視為無應答,將終止數(shù)據(jù)傳送。寫數(shù)據(jù)格式如圖 7 所示。


基于主控模式下的 I2C 通信從動模式軟件設計


從機接收數(shù)據(jù)時程序較簡單,只要在 CLOCK 時鐘線上升沿產(chǎn)生的中斷中依次接收數(shù)據(jù),并在接收完 8 位數(shù)據(jù)后產(chǎn)生應答信號即可。然后對數(shù)據(jù)進行判斷,如果為從機地址數(shù)據(jù),則判斷此數(shù)據(jù)是否與己方地址相同,相同則繼續(xù)接收,不同則放棄接收。然后接收存儲器地址,并接收數(shù)據(jù),在接收數(shù)據(jù)時將所接收的數(shù)據(jù)依次存儲。從機程序流程如圖8所示。


圖 8 從機讀寫數(shù)據(jù)程序流程

(2)主機從從機讀數(shù)據(jù)

讀取數(shù)據(jù)與寫入數(shù)據(jù)時的格式存在一定區(qū)別,從機地址信息需寫 2 次,且需發(fā) 2 次起始信息。數(shù)據(jù)框圖如圖 9所示。

由于接收數(shù)據(jù)時從機程序比較簡單,在此不再討論。

5 結(jié) 語 

I2C 通信是單片機與單片機之間,或單片機與存儲器之間的通信,對于經(jīng)濟型單片機而言,能有效節(jié)省單片機的I/O 口,因此 I2C 通信也在通信領(lǐng)域得到廣泛應用。本文是長期編程過程中的經(jīng)驗總結(jié),希望能給讀者提供一定參考。

基于主控模式下的 I2C 通信從動模式軟件設計


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

在接下來的5G時代當中,華為也將會憑借著自身的優(yōu)勢,從而處于遙遙領(lǐng)先的地位,但其實厲害的又不僅僅是華為企業(yè),如今,作為國際巨頭的三星開始了在6G當中的研發(fā),6G接下來的網(wǎng)速,將會是5G的50倍,對于三星的這一個大動作,華...

關(guān)鍵字: 5G 6G 三星

隨著人工智能概念的爆發(fā),越來越多的企業(yè)開始關(guān)注并布局智能家居領(lǐng)域。有研究機構(gòu)預測預測,2022年中國智能家居的整體產(chǎn)值將突破萬億元,前景一片向榮。

關(guān)鍵字: 全屋智能 智慧生活 小愛同學

博鰲亞洲論壇國際科技與創(chuàng)新論壇第二屆大會在廣州舉行。期間舉行的5G科技應用與6G展望分論壇備受矚目。六位通信領(lǐng)域的頭部企業(yè)、高校和科研院所的專家通過線上線下聯(lián)動方式,共同研討5G軟硬件關(guān)鍵技術(shù)研發(fā)現(xiàn)狀與未來6G發(fā)展前景展...

關(guān)鍵字: 5G 6G 通信算法

智能家居作為住宅家居現(xiàn)代生活場景方式,當下已經(jīng)不再只是一個概念,而是基于家居家裝軟硬件產(chǎn)品為載體的生活方式實景呈現(xiàn),越來越多的人在家裝時選擇智能家居。需求助推行業(yè)持續(xù)火熱,大小資本都以狂風席卷之勢進駐這個行業(yè),根據(jù)企查查...

關(guān)鍵字: 全屋智能 智能家居 智能門鎖

5G領(lǐng)先讓我們信心大增,但是這不能成為我們高枕無憂的理由。隨著我們認識到通訊技術(shù)在科技領(lǐng)域的重要性之后,競爭必然會更加激烈起來。在5G還未成熟的年代,通訊商們就已經(jīng)開始將目光瞄準了6G,并開始相關(guān)的研發(fā)和布局。

關(guān)鍵字: 5G 6G 虛擬數(shù)字世界

小米智能家居現(xiàn)在已經(jīng)能實現(xiàn)聯(lián)動和自動化了,比如指紋鎖進屋就打開窗簾電視,播放天氣預報,根據(jù)設定溫度決定是否打開空調(diào),根據(jù)空氣質(zhì)量檢測儀決定是否打開新風機~結(jié)合人體移動和光線傳感器開燈就更是不用說了~最近也在搞全屋智能化,...

關(guān)鍵字: 全屋智能 溫度感應 小米

根據(jù)5G設備市場的調(diào)研數(shù)據(jù)當中來看,三星所拿下的5G設備市場份額就達到了10.4%,也就是說,排在了第四名的位置。

關(guān)鍵字: 6G 三星 華為

擁有 5G、人工智能、物聯(lián)網(wǎng)等新技術(shù)的支撐,智能家居行業(yè)逐漸從單品智能邁入全屋智能階段 。其由于全屋智能產(chǎn)品特殊性,落地安裝涉及到方案場景設計、布線,安裝,施工、后期維護更新等多個環(huán)節(jié),整體最好的實施路徑是通過房屋整體裝...

關(guān)鍵字: 全屋智能 5G 物聯(lián)網(wǎng)

5G時代,我們實現(xiàn)了彎道超車,一躍超越高通,愛立信,領(lǐng)先于世界。現(xiàn)如今,5G正在全世界加速普及和應用。通訊和實業(yè)的結(jié)合,已助力生產(chǎn)效率進一步提高,讓我們的生活變得更加美好。

關(guān)鍵字: 5G 6G 中國移動

自從2020年作為建設主體納入大灣區(qū)綜合性國家科學中心先行啟動區(qū),躋身科創(chuàng)國家隊以來,松山湖科學城圍繞科研創(chuàng)新人才的需求,全面提升城市服務能級和城市品質(zhì),讓松山湖成為近悅遠來、宜居宜業(yè)宜研宜創(chuàng)的科學家園。

關(guān)鍵字: 智慧城市 科學家園 人工智能

《物聯(lián)網(wǎng)技術(shù)》雜志

2510 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉