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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

把總線拉低480~960微秒后拉高數據線為高電平。數據線空閑時為高電平,誰發(fā)數據誰控制總線。主叫撥號被叫應答主叫發(fā)命令或數據被叫應答主叫收數據結束單總線原理與編程被叫方也叫從機,檢測到480~960微秒的低電平,會主動把總線拉低。主機檢測到總線為低電平后,認為從機的應答結束。主機準備發(fā)數據。數據線空閑時為高電平,誰發(fā)數據誰控制總線。主叫撥號被叫應答主叫發(fā)命令或數據被叫應答主叫收數據結束bitResetDS18B20(){ unsignedcharanswerflag; DQ=1; //拉高總線

Delay2us();

DQ=0; //拉低總線

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

Delay40us(); answerflag=DQ; //采集應答信號

Delay200us(); Delay375us(); returnanswerflag;}單總線原理與編程被叫方也叫從機,檢測到480~960微秒的低電平,會主動把總線拉低。主機檢測到總線為低電平后,認為從機的應答結束。主機準備發(fā)數據。數據線空閑時為高電平,誰發(fā)數據誰控制總線。主叫撥號被叫應答主叫發(fā)命令或數據被叫應答主叫收數據結束bitResetDS18B20(){ unsignedcharanswerflag; DQ=1; //拉高總線

Delay2us();

DQ=0; //拉低總線

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

Delay40us(); answerflag=DQ; //采集應答信號

Delay200us(); Delay375us(); returnanswerflag;}單總線原理與編程被叫方也叫從機,檢測到480~960微秒的低電平,會主動把總線拉低。主機檢測到總線為低電平后,認為從機的應答結束。主機準備發(fā)數據。數據線空閑時為高電平,誰發(fā)數據誰控制總線。主叫撥號被叫應答主叫發(fā)命令或數據被叫應答主叫收數據結束bitResetDS18B20(){ unsignedcharanswerflag; DQ=1; //拉高總線

Delay2us();

DQ=0; //拉低總線

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

Delay40us(); answerflag=DQ; //采集應答信號

Delay200us(); Delay375us(); returnanswerflag;}單總線原理與編程被叫方也叫從機,檢測到480~960微秒的低電平,會主動把總線拉低。主機檢測到總線為低電平后,認為從機的應答結束。主機準備發(fā)數據。數據線空閑時為高電平,誰發(fā)數據誰控制總線。主叫撥號被叫應答主叫發(fā)命令或數據被叫應答主叫收數據結束bitResetDS18B20(){ unsignedcharanswerflag; DQ=1; //拉高總線

Delay2us();

DQ=0; //拉低總線

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

Delay40us(); answerflag=DQ; //采集應答信號

Delay200us(); Delay375us(); returnanswerflag;}單總線原理與編程被叫方也叫從機,檢測到480~960微秒的低電平,會主動把總線拉低。主機檢測到總線為低電平后,認為從機的應答結束。主機準備發(fā)數據。數據線空閑時為高電平,誰發(fā)數據誰控制總線。主叫撥號被叫應答主叫發(fā)命令或數據被叫應答主叫收數據結束bitResetDS18B20(){ unsignedcharanswerflag; DQ=1; //拉高總線

Delay2us();

DQ=0; //拉低總線

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

Delay40us(); answerflag=DQ; //采集應答信號

Delay200us(); Delay375us(); returnanswerflag;}單總線原理與編程被叫方也叫從機,檢測到480~960微秒的低電平,會主動把總線拉低。主機檢測到總線為低電平后,認為從機的應答結束。主機準備發(fā)數據。數據線空閑時為高電平,誰發(fā)數據誰控制總線。主叫撥號被叫應答主叫發(fā)命令或數據被叫應答主叫收數據結束bitResetDS18B20(){ unsignedcharanswerflag; DQ=1; //拉高總線

Delay2us();

DQ=0; //拉低總線

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

Delay40us(); answerflag=DQ; //采集應答信號

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

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

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

Delay2us();Delay2us();Delay2us(); dat=DQ; //讀回數據線上面的狀態(tài)

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

溫馨提示

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

評論

0/150

提交評論