999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于主控模式下的I2C通信從動(dòng)模式軟件設(shè)計(jì)

2019-12-11 10:00:03周首杰
物聯(lián)網(wǎng)技術(shù) 2019年11期

周首杰

摘 要:以I2C通信主控方的要求為基礎(chǔ),討論I2C通信從動(dòng)方的程序編寫。內(nèi)容包括I2C通信的起始部分(握手部分)、數(shù)據(jù)傳送部分以及停止部分的程序編寫,以三部分通信波形要求為準(zhǔn),總結(jié)軟件編寫流程。I2C通信的數(shù)據(jù)格式靈活多樣,可以一次傳送8位二進(jìn)制數(shù)據(jù),也可以一次傳送8的倍數(shù)的二進(jìn)制數(shù)據(jù),從機(jī)在通信中必須按照主機(jī)的要求進(jìn)行數(shù)據(jù)傳送。總結(jié)從機(jī)的數(shù)據(jù)傳送程序流程,以期滿足主機(jī)的通信要求,從而得出I2C通信從動(dòng)模式的詳細(xì)總結(jié)。

關(guān)鍵詞:I2C通信;主控模式;從動(dòng)模式;起始信號;停止信號;數(shù)據(jù)格式;數(shù)據(jù)傳送

中圖分類號:TP39文獻(xiàn)標(biāo)識碼:A文章編號:2095-1302(2019)11-00-02

0 引 言

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

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

1 起始信號

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

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

2 停止信號

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

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

3 應(yīng)答信號

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

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

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

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

數(shù)據(jù)傳送時(shí)先高位后低位,9位為一幀。如果從機(jī)未應(yīng)答主機(jī)信號,如從機(jī)正在進(jìn)行其他工作而無法接收總線上的數(shù)據(jù),則此時(shí)從機(jī)在應(yīng)答時(shí)必須將數(shù)據(jù)線置于高電平,產(chǎn)生一個(gè)非應(yīng)答信號,主機(jī)產(chǎn)生一個(gè)終止信號以結(jié)束總線的數(shù)據(jù)傳送。每傳送完一個(gè)8位數(shù)據(jù),主機(jī)都要與從機(jī)通過應(yīng)答與非應(yīng)答信號進(jìn)行溝通以確定是否繼續(xù)進(jìn)行數(shù)據(jù)傳送。

在主機(jī)從從機(jī)中讀取數(shù)據(jù)時(shí),主機(jī)收到最后一個(gè)數(shù)據(jù)字節(jié)后,必須向從機(jī)發(fā)出一個(gè)非應(yīng)答信號(此時(shí)的應(yīng)答信號由主機(jī)發(fā)出)作為線束標(biāo)志。從機(jī)釋放SDA線,允許主機(jī)產(chǎn)生終止信號。

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

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

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

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

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

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

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

5 結(jié) 語

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

參 考 文 獻(xiàn)

[1]賴麒文. 8051單片機(jī)C語言徹底應(yīng)用[M].北京:科學(xué)技術(shù)出版社,2002:289-311.

[2]張毅剛.單片機(jī)原理及接口技術(shù)(C51編程)[M].北京:人民郵電出版社,2011.

[3]鄒益民.單片機(jī)C語言教程[M].北京:中國石化出版社,2010.

[4]孫余凱,吳鳴山.I2C總線數(shù)控彩色電視機(jī)維修技能與數(shù)據(jù)大全[M].北京:電子工業(yè)出版社,2010.

[5]張軍才,茹偉,趙臘才,等. I2C總線測試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].儀表技術(shù)與傳感器,2016(12):118-120.

[6]桑任仲,蔡艷波,徐萌,等. I2C總線在強(qiáng)干擾環(huán)境下的應(yīng)用[C]// 2018中國汽車工程學(xué)會(huì)年會(huì),2018-11.

[7]李蔭瓏,丘珊珊. I2C總線設(shè)計(jì)技術(shù)及其死鎖的探討[J].家電科技,2018(7):65-67.

[8]黃淑蓉.通過I2C總線接口的MCU固件升級方法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2018(7):20-24.

[9]陳春行,林春生,翟國君.基于MSP430的模擬I2C串口通信的實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2018(5):1029-1032.

[10]林倩. I2C協(xié)議解析及實(shí)測波形[J].數(shù)字技術(shù)與應(yīng)用,2016(11):57-58.

主站蜘蛛池模板: 国产成人夜色91| 中文字幕色在线| 国产欧美日韩va另类在线播放 | 99在线观看国产| 午夜视频日本| 自拍偷拍一区| 亚洲男人天堂2020| 国产精品无码AⅤ在线观看播放| 婷婷六月激情综合一区| 人妻中文字幕无码久久一区| 午夜视频在线观看免费网站| 亚洲精品不卡午夜精品| 乱系列中文字幕在线视频| 99热精品久久| 九九这里只有精品视频| 久久久噜噜噜| 美女一级免费毛片| 国产天天色| 国产成人乱无码视频| 高清不卡一区二区三区香蕉| 亚洲自拍另类| 二级特黄绝大片免费视频大片| 色悠久久久久久久综合网伊人| 日韩在线中文| 黄色不卡视频| 亚洲天堂久久| 久久久精品国产SM调教网站| 18禁影院亚洲专区| 国产91视频观看| 国产精品免费久久久久影院无码| 中文字幕永久视频| 亚洲精品男人天堂| 亚洲女同欧美在线| 色婷婷亚洲综合五月| 伊人色在线视频| 婷婷综合在线观看丁香| 超碰精品无码一区二区| AV在线天堂进入| 无码在线激情片| 亚洲制服中文字幕一区二区 | 国产一级在线观看www色| 久久伊伊香蕉综合精品| 久久99这里精品8国产| 欧类av怡春院| 无码专区国产精品第一页| 久久精品午夜视频| 99偷拍视频精品一区二区| 婷婷五月在线视频| 看你懂的巨臀中文字幕一区二区 | 中文字幕无码制服中字| 2021亚洲精品不卡a| 天堂av综合网| 女人18一级毛片免费观看| 亚洲av无码牛牛影视在线二区| 久久这里只有精品23| 午夜性爽视频男人的天堂| 福利姬国产精品一区在线| 蜜芽国产尤物av尤物在线看| 熟妇人妻无乱码中文字幕真矢织江 | 五月婷婷综合网| 国产亚洲欧美在线人成aaaa| 国产精品人人做人人爽人人添| 伊人久久婷婷五月综合97色| 九九九国产| 99在线视频免费| 国产精品久久自在自线观看| 国产精品亚洲а∨天堂免下载| 在线视频精品一区| 日韩欧美国产综合| 中国丰满人妻无码束缚啪啪| 亚洲中文字幕手机在线第一页| 国产成人福利在线| 国产成人高清精品免费| AV无码一区二区三区四区| 久久国产精品国产自线拍| 久久这里只精品国产99热8| 高清码无在线看| 国产精品hd在线播放| 538精品在线观看| 精品人妻系列无码专区久久| 911亚洲精品| 国产一区三区二区中文在线|