單片機(jī)與其它智能外設(shè)的通訊單總線_第1頁
單片機(jī)與其它智能外設(shè)的通訊單總線_第2頁
單片機(jī)與其它智能外設(shè)的通訊單總線_第3頁
單片機(jī)與其它智能外設(shè)的通訊單總線_第4頁
單片機(jī)與其它智能外設(shè)的通訊單總線_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

單總線通訊與編程主講人:陳靜常見的智能芯片與智能傳感器比如萬年歷芯片1302、稱重傳感器、超聲波傳感器角度傳感器藍(lán)牙設(shè)備等等單片機(jī)與其它智能芯片的通訊方式分類1、收發(fā)之間僅用1根線(加一根地線)進(jìn)行通信。例如:紅外遙控器、溫度計(jì)18b20等等。2、兩根線的I2C總線。例如:萬年歷芯片13023、四根線的SPI總線(單片機(jī)內(nèi)部自帶)。例如萬年歷芯片:4、串行通訊模式(單片機(jī)內(nèi)部自帶)。部分藍(lán)牙傳輸芯片、聲控芯片等等5、其它時(shí)序圖模式。比如:部分稱重傳感器、音量調(diào)節(jié)芯片等等。單總線原理與編程收發(fā)之間僅用1根線(加一根地線)進(jìn)行通信。在單總線中收發(fā)雙方是通過數(shù)據(jù)線上的高低電平占空比來區(qū)分1和0的。典型應(yīng)用案例有:紅外遙控和溫度傳感器18B20

單總線原理與編程收發(fā)之間僅用1根線(加一根地線)進(jìn)行通信。在單總線中收發(fā)雙方是通過數(shù)據(jù)線上的高低電平占空比來區(qū)分1和0的。典型應(yīng)用案例有:紅外遙控和溫度傳感器18B20它們好比我們打電話的過程類似,有這樣幾個(gè)流程:主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束單總線原理與編程收發(fā)之間僅用1根線(加一根地線)進(jìn)行通信。在單總線中收發(fā)雙方是通過數(shù)據(jù)線上的高低電平占空比來區(qū)分1和0的。典型應(yīng)用案例有:紅外遙控和溫度傳感器18B20它們好比我們打電話的過程類似,有這樣幾個(gè)流程:主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束所有環(huán)節(jié)有固定的時(shí)序,以溫度傳感器18B20與單片機(jī)的通訊為例說明。單總線原理與編程相當(dāng)于單總線上主叫方的復(fù)位:

把總線拉低480~960微秒后拉高數(shù)據(jù)線為高電平。數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束單總線原理與編程相當(dāng)于單總線上主叫方的復(fù)位:

把總線拉低480~960微秒后拉高數(shù)據(jù)線為高電平。數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束單總線原理與編程被叫方也叫從機(jī),檢測(cè)到480~960微秒的低電平,會(huì)主動(dòng)把總線拉低。主機(jī)檢測(cè)到總線為低電平后,認(rèn)為從機(jī)的應(yīng)答結(jié)束。主機(jī)準(zhǔn)備發(fā)數(shù)據(jù)。數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束bitResetDS18B20(){ unsignedcharanswerflag; DQ=1; //拉高總線

Delay2us();

DQ=0; //拉低總線

Delay600us();//延時(shí)480-960us DQ=1; //拉高總線延時(shí)15-60us后等待響應(yīng)

Delay40us(); answerflag=DQ; //采集應(yīng)答信號(hào)

Delay200us(); Delay375us(); returnanswerflag;}單總線原理與編程被叫方也叫從機(jī),檢測(cè)到480~960微秒的低電平,會(huì)主動(dòng)把總線拉低。主機(jī)檢測(cè)到總線為低電平后,認(rèn)為從機(jī)的應(yīng)答結(jié)束。主機(jī)準(zhǔn)備發(fā)數(shù)據(jù)。數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束bitResetDS18B20(){ unsignedcharanswerflag; DQ=1; //拉高總線

Delay2us();

DQ=0; //拉低總線

Delay600us();//延時(shí)480-960us DQ=1; //拉高總線延時(shí)15-60us后等待響應(yīng)

Delay40us(); answerflag=DQ; //采集應(yīng)答信號(hào)

Delay200us(); Delay375us(); returnanswerflag;}單總線原理與編程被叫方也叫從機(jī),檢測(cè)到480~960微秒的低電平,會(huì)主動(dòng)把總線拉低。主機(jī)檢測(cè)到總線為低電平后,認(rèn)為從機(jī)的應(yīng)答結(jié)束。主機(jī)準(zhǔn)備發(fā)數(shù)據(jù)。數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束bitResetDS18B20(){ unsignedcharanswerflag; DQ=1; //拉高總線

Delay2us();

DQ=0; //拉低總線

Delay600us();//延時(shí)480-960us DQ=1; //拉高總線延時(shí)15-60us后等待響應(yīng)

Delay40us(); answerflag=DQ; //采集應(yīng)答信號(hào)

Delay200us(); Delay375us(); returnanswerflag;}單總線原理與編程被叫方也叫從機(jī),檢測(cè)到480~960微秒的低電平,會(huì)主動(dòng)把總線拉低。主機(jī)檢測(cè)到總線為低電平后,認(rèn)為從機(jī)的應(yīng)答結(jié)束。主機(jī)準(zhǔn)備發(fā)數(shù)據(jù)。數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束bitResetDS18B20(){ unsignedcharanswerflag; DQ=1; //拉高總線

Delay2us();

DQ=0; //拉低總線

Delay600us();//延時(shí)480-960us DQ=1; //拉高總線延時(shí)15-60us后等待響應(yīng)

Delay40us(); answerflag=DQ; //采集應(yīng)答信號(hào)

Delay200us(); Delay375us(); returnanswerflag;}單總線原理與編程被叫方也叫從機(jī),檢測(cè)到480~960微秒的低電平,會(huì)主動(dòng)把總線拉低。主機(jī)檢測(cè)到總線為低電平后,認(rèn)為從機(jī)的應(yīng)答結(jié)束。主機(jī)準(zhǔn)備發(fā)數(shù)據(jù)。數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束bitResetDS18B20(){ unsignedcharanswerflag; DQ=1; //拉高總線

Delay2us();

DQ=0; //拉低總線

Delay600us();//延時(shí)480-960us DQ=1; //拉高總線延時(shí)15-60us后等待響應(yīng)

Delay40us(); answerflag=DQ; //采集應(yīng)答信號(hào)

Delay200us(); Delay375us(); returnanswerflag;}單總線原理與編程被叫方也叫從機(jī),檢測(cè)到480~960微秒的低電平,會(huì)主動(dòng)把總線拉低。主機(jī)檢測(cè)到總線為低電平后,認(rèn)為從機(jī)的應(yīng)答結(jié)束。主機(jī)準(zhǔn)備發(fā)數(shù)據(jù)。數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束bitResetDS18B20(){ unsignedcharanswerflag; DQ=1; //拉高總線

Delay2us();

DQ=0; //拉低總線

Delay600us();//延時(shí)480-960us DQ=1; //拉高總線延時(shí)15-60us后等待響應(yīng)

Delay40us(); answerflag=DQ; //采集應(yīng)答信號(hào)

Delay200us(); Delay375us(); returnanswerflag;}單總線原理與編程發(fā)送數(shù)據(jù)“0”的時(shí)序圖數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束單總線原理與編程發(fā)送數(shù)據(jù)“0”的時(shí)序圖數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束DQ=0;//寫0Delay40us();DQ=1;Delay15us();單總線原理與編程發(fā)送數(shù)據(jù)“0”的時(shí)序圖數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束DQ=0;//寫0Delay40us();DQ=1;Delay15us();單總線原理與編程發(fā)送數(shù)據(jù)“1”的時(shí)序圖數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束單總線原理與編程發(fā)送數(shù)據(jù)“1”的時(shí)序圖數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束DQ=0;Delay2us();Delay2us();Delay2us(); DQ=1;Delay60us();單總線原理與編程發(fā)送數(shù)據(jù)“1”的時(shí)序圖數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束DQ=0;Delay2us();Delay2us();Delay2us(); DQ=1;Delay40us();單總線原理與編程發(fā)送數(shù)據(jù)“1”的時(shí)序圖數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。發(fā)送數(shù)據(jù)“0”的時(shí)序圖區(qū)別主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束單總線原理與編程讀數(shù)據(jù)時(shí)序圖數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。主叫撥號(hào)被叫應(yīng)答主叫發(fā)命令或數(shù)據(jù)被叫應(yīng)答主叫收數(shù)據(jù)結(jié)束DQ=1; //將數(shù)據(jù)線拉高

Delay2us();DQ=0; //將數(shù)據(jù)線拉低

Delay2us();Delay2us();Delay2us();DQ=1; //數(shù)據(jù)線拉高

Delay2us();Delay2us();Delay2us(); dat=DQ; //讀回?cái)?shù)據(jù)線上面的狀態(tài)

Delay30us(); //延時(shí)30usreturn(dat);單總線原理與編程數(shù)據(jù)線空閑時(shí)為高電平,誰發(fā)數(shù)據(jù)誰控制總線。如果主從關(guān)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論