日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導讀]作為一種單主機多從機的總線系統(tǒng),在一條1-Wire總線上可掛接的從器件數(shù)量幾乎不受限制。為了不引起邏輯上的沖突,所有從器件的1-Wire總線接口都是漏極開路的,因此在使用時必須對總線外加上拉電阻(一般取5kΩ左右)。主機對1-Wire總線的基本操作分為復位、讀和寫三種,其中所有的讀寫操作均為低位在前高位在后。復位、讀和寫是1-Wire總線通信的基礎,下面通過具體程序詳細介紹這3種操作的時序要求。(程序中DQ代表1-Wire總線,定義為P1.0,uchar定義為unsigned char)

1-Wire總線的基本通信協(xié)議


作為一種單主機多從機的總線系統(tǒng),在一條1-Wire總線上可掛接的從器件數(shù)量幾乎不受限制。為了不引起邏輯上的沖突,所有從器件的1-Wire總線接口都是漏極開路的,因此在使用時必須對總線外加上拉電阻(一般取5kΩ左右)。主機對1-Wire總線的基本操作分為復位、讀和寫三種,其中所有的讀寫操作均為低位在前高位在后。復位、讀和寫是1-Wire總線通信的基礎,下面通過具體程序詳細介紹這3種操作的時序要求。(程序中DQ代表1-Wire總線,定義為P1.0,uchar定義為unsigned char)


1 1-Wire總線的復位


復位是1-Wire總線通信中最為重要的一種操作,在每次總線通信之前主機必須首先發(fā)送復位信號。如程序1.1所示,產(chǎn)生復位信號時主機首先將總線拉低480~960μs然后釋放,由于上拉電阻的存在,此時總線變?yōu)楦唠娖健?-Wire總線器件在接收到有效跳變的15~60μs內(nèi)會將總線拉低60~240μs,在此期間主機可以通過對DQ采樣來判斷是否有從器件掛接在當前總線上。函數(shù)Reset()的返回值為0表示有器件掛接在總線上,返回值為1表示沒有器件掛接在總線上。


程序1.1 總線復位


uchar Reset(void)

uchar tdq;
DQ=0;  //主機拉低總線
delay480μs(); //等待480μs
DQ=1; //主機釋放總線
delay60μs();  //等待60μs
tdq=DQ;  //主機對總線采樣
delay480μs();  //等待復位結束
return tdq;  //返回采樣值
}


2 1-Wire總線的寫操作


由于只有一條I/O線,主機1-Wire總線的寫操作只能逐位進行,連續(xù)寫8次即可寫入總線一個字節(jié)。如程序1.2所示,當MCS-51單片機的時鐘頻率為12MHz時,程序中的語句_nop_();可以產(chǎn)生1μs的延時,調(diào)用此函數(shù)時需包含頭文件“intrins.h”。向1-Wire總線寫1bit至少需要60μs,同時還要保證兩次連續(xù)的寫操作有1μs以上的間隔。若待寫位wbit為0則主機拉低總線60μs然后釋放,寫0操作完成。若待寫位wbit為1,則主機拉低總線并在1~15μs內(nèi)釋放,然后等待60μs,寫1操作完成。


程序1.2 向總線寫1bit


void Writebit(uchar wbit)

 _nop_(); 
//保證兩次寫操作間隔1μs以上
 DQ=0;
 _nop_(); 
//保證主機拉低總線1μs以上
 if(wbit)
 {             
//向總線寫1
 DQ=1;
delay60μs();
 }
 else
 {             
//向總線寫0
 delay60μs();
 DQ=1;
 }
}


3 1-Wire總線的讀操作


與寫操作類似,主機對1-Wire總線的讀操作也只能逐位進行,連續(xù)讀8次,即可讀入主機一個字節(jié)。從1-Wire總線讀取1bit同樣至少需要60μs,同時也要保證兩次連續(xù)的讀操作間隔1μs以上。如程序1.3所示,從總線讀數(shù)據(jù)時,主機首先拉低總線1μs以上然后釋放,在釋放總線后的1~15μs內(nèi)主機對總線的采樣值即為讀取到的數(shù)據(jù)。

程序1.3 從總線讀1bit


uchar Readbit()

 uchar tdq;
 _nop_(); 
//保證兩次連續(xù)寫操作間隔1μs以上
 DQ=0;
 _nop_();  
//保證拉低總線的時間不少于1μs
 DQ=1;
 _nop_();
 tdq=DQ;  
//主機對總線采樣
 delay60μs();
//等待讀操作結束
 return tdq; 
//返回讀取到的數(shù)據(jù)
}

數(shù)字溫度傳感器DS18B20


1 DS18B20的基本特性


● 采用1-Wire總線接口,可以方便實現(xiàn)多點測溫。
● 與主機連接方便,除5kΩ的總線上拉電阻外無須其他額外器件。
● 電源電壓范圍為3.0~5.5V,與3.3V和5V數(shù)字系統(tǒng)均可很好地兼容。
● 測量范圍為-55~+125℃,分辨率為9~12位可編程。
● 通過編程可設置溫度報警上下限,設置值掉電不丟失。
● 內(nèi)部集成了用于器件尋址的64bit光刻ROM編碼。


2 DS18B20中的存儲器


在DS18B20中共有三種存儲器,分別是ROM、RAM、EEPROM,每種存儲器都有其特定的功能,可查閱相關資料。


3 1-Wire總線ROM功能命令


在DS18B20內(nèi)部光刻了一個長度為64bit的ROM編碼,這個編碼是器件的身份識別標志。當總線上掛接著多個DS18B20時可以通過ROM編碼對特定器件進行操作。ROM功能命令是針對器件的ROM編碼進行操作的命令,共有5個,長度均為8bit(1Byte)。


①讀ROM(33H)


當掛接在總線上的1-Wire總線器件接收到此命令時,會在主機讀操作的配合下將自身的ROM編碼按由低位到高位的順序依次發(fā)送給主機??偩€上掛接有多個DS18B20時,此命令會使所有器件同時向主機傳送自身的ROM編碼,這將導致數(shù)據(jù)的沖突。


②匹配ROM(55H)


主機在發(fā)送完此命令后,必須緊接著發(fā)送一個64bit的ROM編碼,與此ROM編碼匹配的從器件會響應主機的后續(xù)命令,而其他從器件則處于等待狀態(tài)。該命令主要用于選擇總線上的特定器件進行訪問。


③跳過ROM(CCH)


發(fā)送此命令后,主機不必提供ROM編碼即可對從器件進行訪問。與讀ROM命令類似,該命令同樣只適用于單節(jié)點的1-Wire總線系統(tǒng),當總線上有多個器件掛接時會引起數(shù)據(jù)的沖突。


④查找ROM(F0H)


當主機不知道總線上器件的ROM編碼時,可以使用此命令并配合特定的算法查找出總線上從器件的數(shù)量和各個從器件的ROM編碼。


⑤報警查找(ECH)


此命令用于查找總線上滿足報警條件的DS18B20,通過報警查找命令并配合特定的查找算法,可以查找出總線上滿足報警條件的器件數(shù)目和各個器件的ROM編碼。


4 DS18B20器件功能命令


與1-Wire總線相關的命令分為ROM功能命令和器件功能命令兩種,ROM功能命令具有通用性,不僅適用于DS18B20也適用于其他具有1-Wire總線接口的器件,主要用于器件的識別與尋址;器件功能命令具有專用性,它們與器件的具體功能緊密相關。下面是DS18B20的器件功能命令。


①啟動溫度轉換(44H)


該命令發(fā)送完成后,主機可以通過調(diào)用Readbit()函數(shù)判斷溫度轉換是否完成,若Readbit()的返回值為0則表示轉換正在進行,若Readbit()的返回值為1則表示轉換完成。


②讀RAM(BEH)


該命令發(fā)送完成后,主機可以通過調(diào)用Readbit()函數(shù)將DS18B20中RAM的內(nèi)容從低位到高位依次讀出。


③寫RAM(4EH)


該命令發(fā)出后,主機隨后寫入1-Wire總線的3字節(jié)將依次被存儲到DS18B20的報警上限、報警下限和配置寄存器中。


④復制RAM(48H)


該命令會將DS18B20的報警上限、報警下限和配置寄存器中的內(nèi)容復制到EEPROM中。該命令發(fā)出后,主機可以通過調(diào)用Readbit()函數(shù)判斷復制操作是否完成,若Readbit()的返回值為1,則表示復制操作完成。


⑤回讀EEPROM(B8H)


該命令會將存儲在EEPROM中的報警上限、報警下限和配置寄器的內(nèi)容回讀到RAM中,主機可以通過調(diào)用Readbit()函數(shù)判斷回讀操作是否完成,若Readbit()的返回值為1則表示回讀操作完成。DS18B20在上電時會自動進行一次回讀操作。

 

圖1 主機與DS18B20的通信流程圖


5 主機與DS18B20的通信流程


如圖1所示,主機通過1-Wire總線接口對DS18B20的每次訪問都以復位信號和ROM功能命令開始,訪問的結束位置是不確定的,這與具體的功能命令相關。圖中圓角矩形中的操作與主機發(fā)送的功能命令相對應,隨著功能命令的不同圓角矩形中的操作有時可以被省略。對總線上的DS18B20來說,復位信號意味著又一次通信的開始,器件對此的響應是拉低總線以告知主機自身的存在,然后準備接收ROM功能命令。

多點測溫系統(tǒng)仿真實例


DS18B20是一種比較廉價的溫度傳感器,其封封裝形式如圖2所示。在Proteus中包含有DS18B20的仿真模型,這使得相關程序的調(diào)試變得簡單方便。下面以一個實例介紹用Proteus仿真多點測溫系統(tǒng)的步驟。

 

圖2 DS18B20封裝形式


① 繪制仿真原理圖


如圖3所示,在本實例中以單片機AT89C52和8個DS18B20構成了一個多點測溫系統(tǒng)。為了有足夠的空間存儲各個DS18B20的ROM編碼和溫度值,在實例中用一片8KB的SRAM芯片6116對單片機的RAM進行了擴展。


②設置DS18B20仿真模型的屬性


首先右擊選中protues編輯區(qū)中的DS18B20仿真模型然后再左擊,此時彈出如圖4所示的屬性設置對話框。其中,F(xiàn)amily Code是器件的家族碼,對于DS18B20來說是28H。ROM Serial Number對應于器件的48bit序列號,格式為十六進制,在填寫過程中要保證同一條1-Wire總線上所有仿真模型的ROM Serial Number都不相同。Automatic Serialization設置為No時仿真模型將使用ROM Serial Number中的序列號,設置為Yes時模型的序列號將由仿真環(huán)境自動生成,在此設置為Yes,這樣可以免去手動修改ROM Serial Number的麻煩。Current Value中是仿真模型當前的溫度值。Cranularity中是單擊仿真模型的溫度值增減按鈕時溫度值的改變量,在此設置為1.1。其他選項保持默認即可。單擊OK按鈕,設置完成。

 

圖3 多點測溫系統(tǒng)仿真原理圖


③編制源程序


主機是通過Reset()、Readbit()、Writebit()三種基本操作與1-Wire總線進行通信的,只要這三個函數(shù)的時序準確,那么對于有一定C語言編程基礎的用戶來說程序其他部分的編寫將不是難事,按照前面介紹的流程向總線發(fā)送功能命令并進行相應讀寫操作即可。多點測溫系統(tǒng)編程的難點在于器件的查找,系統(tǒng)上電時主機首先要查找總線上掛接著多少個1-Wire器件并將各個器件的ROM編碼讀入單片機的RAM中,這需要一套復雜的算法,限于篇幅關于此算法在此不再詳述。本仿真實例大體工作過程如圖3右下角注釋部分所示,“查找總線上所有器件的ROM編碼并存儲”這一步可以由uchar B20ReadROM(uchar B20ROM[]函數(shù)完成,該函數(shù)的返回值是查找到的器件數(shù)目,各個器件的ROM編碼將存儲在二維數(shù)組B20ROM[]中。

 

圖4 DS18B20仿真模型屬性設置


“統(tǒng)一開始溫度轉換”的通信流程為:發(fā)送復位信號;發(fā)送跳過ROM(CCH)命令;發(fā)送啟動溫度轉換(44H)命令。


“逐器件讀取溫度值”的通信流程為:發(fā)送復位信號;發(fā)送匹配ROM(55H)命令;發(fā)送第i(i=0~7)個器件的ROM編碼;發(fā)送讀RAM(BEH)命令;讀取2字節(jié),其中低字節(jié)在前,高字節(jié)在后,讀取到的值符合溫度值數(shù)據(jù)格式。


④在Proteus中添加監(jiān)視變量


為了檢驗程序運行的正確與否,通常的做法是將運行結果通過單片機的UART接口輸出到虛擬終端上,這種方法的缺點是會占用一定的單片機資源,在此介紹另外一種程序調(diào)試技巧——監(jiān)視變量。在Proteus的運行狀態(tài)下點擊Debug→Watch Window會彈出監(jiān)視窗口(Watch Window),然后按下Alt+A鍵會彈出如圖5所示的添加存儲器條目對話框(Add Memory Item)。所謂監(jiān)視變量也就是監(jiān)視相應存儲單元中的內(nèi)容,圖5中

 

圖5 添加存儲器條目對話框

 

Memory用于選擇待監(jiān)視變量所在的存儲器;Name用于填寫變量名稱,為了含義清晰該名稱最好與源程序中定義的變量名稱一致;Address用于填寫待監(jiān)視變量的地址;Data Type和Display Fomat用于設置數(shù)據(jù)格式和顯示格式。設置完成后單擊Add按鈕即可添加一個監(jiān)視變量。在本實例中將測量到的溫度值轉化成ACSLL碼字符串的格式存儲在二維數(shù)組TempBuffer中,因此Data Type選擇為ASCLLZ String,Watch Window的最終結果如圖6所示。Value一欄中顯示的即為8個DS18B20測量到的溫度值,單擊仿真模型的溫度增減按鈕溫度值的改變會自動映射在Watch Window中。

 

圖6 監(jiān)視窗口


圖6中TempBuffer[i](i=0~7)的地址在Keil中可以按以下步驟得到:


● 單擊Keil工具欄中的按鈕,進入調(diào)試狀態(tài)。
● 通過View→Output Window菜單調(diào)出Keil的Output Window,并選中Command標簽。
● 在Output Window的命令輸入?yún)^(qū)輸入TempBuffer[i]然后回車即可得到TempBuffer[i]的地址,在本實例中i=0~7。對于非數(shù)組類型的變量在輸入時需要在變量名前加取地址符號&,如圖7所示。 

圖7 變量地址的獲取

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

摘要:為解決傳統(tǒng)自動化生產(chǎn)線生產(chǎn)效率低、自動化程度低、生產(chǎn)線復雜等問題,設計了一種自動化程度高且簡單的自動化機械手臂,并根據(jù)設計進行仿真實驗。實驗結果表明,該設計在自動化生產(chǎn)實踐中取得了較好的效果,提高了生產(chǎn)效率,達到了...

關鍵字: 機械手臂 設計 仿真

摘要:基于數(shù)字孿生技術,依托Unity引擎開發(fā)虛擬調(diào)試應用。通過機器人工作站實例進行虛擬調(diào)試仿真,基于socket通信,通過三菱PLC對虛擬機器人工作站進行虛擬調(diào)試,檢測工作站結構設計的合理性、信號配置和邏輯設計的正確性...

關鍵字: 數(shù)字孿生 虛擬調(diào)試 仿真

麥格納(MAGNA)正在進行一項1.2億美元的投資,在印度班加羅爾建立和運營一座全新工程中心,旨在為出行電動化提供支持。該設施占地約2.2萬平方米,預計將于2023年第一季度開業(yè),屆時該中心將聘請眾多經(jīng)驗豐富的工程師和技...

關鍵字: 工程師 仿真 電動汽車 軟件

客戶可以針對圖形和仿真基礎部署Supermicro服務器,以大規(guī)模建構及運行元宇宙應用——系統(tǒng)將支持多達8個NVIDIA L40 GPU、ConnectX-7 SmartNI...

關鍵字: NVIDIA MICRO SUPER 仿真

摘 要:單螺桿空氣壓縮機的轉子嚙合副對間隙控制的精度要求很高 ,星輪軸系是嚙合副的核心元件 ,作用在星輪軸系上的各力 會引起軸系變形 ,變形集中于星輪齒嚙入螺槽部分及星輪軸軸承安裝處 ,運用ANSYS/workben...

關鍵字: ANSYS 應變 仿真

據(jù)業(yè)內(nèi)消息,華大九天昨天披露了投資者關系活動記錄表,華大九天表示在電路的仿真工具相關領域突破核心技術,精度和性能得到了雙維度提升,適用于仿真精度和性能要求較高的模擬芯片設計。

關鍵字: EDA 仿真

摘 要:通過對智能移動平臺和六自由度機器人的調(diào)研分析 ,提出了新型智能片盒搬運小車的概念 ,并進行了設計研究。結合激光 導航AGV ,配合六軸協(xié)作機械臂 ,可在機臺、stocker、e-Rack之間進行FOUP搬運。

關鍵字: 智能移動平臺 六自由度機器人 仿真

摘要:基于10臺計算機數(shù)控機床(CNC)和1輛軌道式自動引導車(RGV)組成的智能加工系統(tǒng),設計了RGV動態(tài)調(diào)度策略,包括CNC工序分配、CNC編號奇偶優(yōu)先和RGV任務分派策略,建立了以系統(tǒng)作業(yè)效率最大化和RGV移動時間...

關鍵字: 調(diào)度策略 仿真 粒子群算法

北京2022年9月7日 /美通社/ -- 近日,由南京市工業(yè)和信息化局、江寧區(qū)政府等單位共同主辦,江寧高新區(qū)管委會等單位承辦,主題為"擁抱元宇宙  一起向未來"的中國江寧首屆元宇宙產(chǎn)業(yè)發(fā)展高...

關鍵字: 仿真 數(shù)字化 工業(yè)互聯(lián)網(wǎng) BSP

摘要:針對變電站內(nèi)部環(huán)境特點及作業(yè)任務需求,提出了一種平穩(wěn)性高、越障能力強及環(huán)境適應性好的新型帶電水沖洗機器人機構。介紹了包含履腿復合機構的履帶式移動底盤機構構型,分析了移動底盤的工作機理、行走模式及越障流程。利用DH法...

關鍵字: 履腿式 移動車體 仿真

工業(yè)控制

13704 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉