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

用并行方式實現快速讀寫多只單總線器件

2010-09-13 02:20:56
科技傳播 2010年15期
關鍵詞:單片機

方 凱

山東藝術學院,山東濟南 250014

用并行方式實現快速讀寫多只單總線器件

方 凱

山東藝術學院,山東濟南 250014

本文簡單的介紹了單總線串行總線信號傳輸方式,并提出一種利用MCU的并口進行字節尋址的方式,同時對多個單總線器件進行并行讀寫的方法及其具體的算法實現。

單片機;MCU;單總線;1-Wire Bus

目前,常用的MCU與外接的元器件進行數據通信的串行總線主要有I2C總線、SPI總線和SCI總線。其中I2C總線以2線連接(一條時鐘線,一條數據線)進行同步串行通信;SPI總線則以3線連接(一條時鐘線,一條數據輸入線,一條數據輸出線)進行同步通信;SCI總線是以兩線連接(一條數據輸入線,一條數據輸出線)進行異步串行進行通信的。這些總線至少需要兩條或兩條以上的信號線。而美國的DALLASS半導體公司推出的單總線(1-Wire Bus)技術采用了單根信號線,既可傳輸時鐘,又能傳輸數據,而且數據傳輸是雙向的,因而這種單總線技術具有線路簡單,硬件開銷少,成本低廉,便于總線擴展和維護等優點。 目前,常見的單總線器件主要有數字溫度傳感器DS18B20、A/D轉換器如DS2450、電源管理芯片DS2438等。

對于單總線器件,每一個器件內都有一個64位的ROM,包含有8位的產品系列編碼和48位的ID號。這些ID號對每個單總線器件都是唯一的,因此我們可以在一條單總線上掛接多個單總線器件,然后使用單總線傳輸協議規定的ReadROM和SearchROM的操作命令來搜索這些器件的ID號,并用MatchROM命令選擇各個特定ID號的單總線器件分別對其進行讀寫。

但是,在實際應用中,尤其是在一個MCU上連接有多個同類型的單總線器件的情況下,這種通過搜索和指定ID號來讀寫單總線器件的方式并不方便。我們雖然可以用ID號來區分各個器件并且分別對其讀寫而互不干擾,但是沒有很簡單的辦法把每一個ID號和某個具體的單總線器件對應起來,因為每個單總線器件的ID號都是隨機的,而且這個ID號并沒有標示在元件上面。比方說,要在一條單總線上連接兩個DS18B20溫度傳感器,分別測量室內和室外的溫度,可以用程序搜索到兩個不同的ID號,得到兩個溫度值,但是我們并不知道讀出來的兩個值哪個是室內的,哪個是室外的。雖然,對于上面的實例我們可以通過手動屏蔽掉一個器件的方式確認哪個ID對應哪個器件,并修改MCU的程序使之分別顯示室內外溫度,但是如果用于大批量生產的實際產品時,我們不可能對每一個產品的ID號和實際所在的位置進行手動對應。

因此,可以考慮換一種方式來對多個單總線進行操作:利用MCU的并口同時對多個單總線器件進行讀寫。我們將多個單總線器件分別掛到MCU一個并口的多個IO端上,這樣對于常用的如51系列PIC系列或者AVR系列等8位MCU,一個單總線讀寫周期內就能同時讀寫8個單總線器件,而且每個單總線器件的位置和MCU并口IO端的位置都是對應的。

本文以最常用的單總線器件溫度傳感器DS18B20和最常用的51系列MCU為例,闡述了這種操作方式的實現。

電路的連接如下:將8只DS18B20溫度傳感器各自的DQ端分別與89C51單片機的并口P1的8個IO端相連,然后各傳感器的VCC和GND腳分別接電源和地。

根據單總線通信協議規定,在每一個單總線讀寫時序中,一條總線只能傳輸一位數據。MCU向單總線器件寫數據時,MCU在拉低總線10~15uS后釋放總線,即向單總線器件寫1;若MCU拉低總線后保持60uS的低電平,則向單總線器件寫0。

MCU從單總線單總線器件讀取數據時,MCU將總線下拉為低電平1uS左右后釋放總線,單總線器件在檢測到總線電平被拉低后15uS后向MCU傳輸數據,若單總線器件發送1,則總線保持高電平,若發送0,則拉低總線。

具體對于一個DS18B20,我們要輸出或輸入各類數據時,可以采用位尋址方式,直接對連接單總線器件的IO端口進行位操作,產生上述時序以對單總線器件進行讀寫。但是,對于并行連接的多個DS18B20,如果還采用上述方法,程序就會變得比較復雜,而且速度也會很大的減慢,所以我們換一種方式,用字節尋址的方式來同時讀寫連接于一個并口上的一組DS18B20,這樣就可以一次讀入或寫出8個位的數據,從而達到簡化程序并提高讀寫效率的目的。

以并行方式該讀取數據的具體實現算法如下:

使用這樣的方法,我們就可以并行的方式一次讀取不超過8個的DS18B20單總線溫度傳感器的溫度值到一個8字節內存數組TData[]中,而所耗用的時間和讀取一個DS18B20單總線溫度傳感器的時間幾乎是相同的。不過,這種方式讀取的各個數據位在內存中不是順序排列的,而是如表1所示的那樣的交叉排列的。我們必須再用一段程序處理一下,才能得到所需的各個溫度值。

TData[7] TData[6] TData[5] TData[4] TData[3] TData[2] TData[1] TData[0] Data[0] Bit7.0 Bit6.0 Bit5.0 Bit4.0 Bit3.0 Bit2.0 Bit1.0 Bit0.0 Data[1] Bit7.1 Bit6.1 Bit5.1 Bit4.1 Bit3.1 Bit2.1 Bit1.1 Bit0.1 Data[2] Bit7.2 Bit6.2 Bit5.2 Bit4.2 Bit3.2 Bit22. Bit1.2 Bit0.2 Data[3] Bit7.3 Bit6.3 Bit5.3 Bit4.3 Bit3.3 Bit2.3 Bit1.3 Bit0.3 Data[4] Bit7.4 Bit6.4 Bit5.4 Bit4.4 Bit3.4 Bit2.4 Bit1.4 Bit0.4 Data[5] Bit7.5 Bit6.5 Bit5.5 Bit4.5 Bit3.5 Bit2.5 Bit1.5 Bit0.5 Data[6] Bit7.6 Bit6.6 Bit5.6 Bit4.6 Bit3.6 Bit2.6 Bit1.6 Bit0.6 Data[7] Bit7.7 Bit6.7 Bit5.7 Bit4.7 Bit3.7 Bit2.7 Bit1.7 Bit0.7

表1 內存中存儲的數據Tdata[]與實際的8個溫度讀數Data0-7之間的關系

如表1所示,我們要設計一個將一個將縱向8位數據轉換成橫向8位的數據程序,便可得到各個傳感器溫度讀數的數據字節。

數據轉換的算法的實現如下:

具體對于DS18B20溫度傳感器而言,因為溫度讀數是以高字節和低字節兩個字存儲的,因此上述程序需要運行兩次方能得到最終的讀數。

同樣,如果需要向各個單總線器件寫入數據,也需要先把要寫入各個單總線器件的數據存儲到一個數組中,用上述算法進行轉換,然后在寫入。

寫入數據的具體算法如下:

這樣,通過上述方法,就可以實現一次對連接個一個MCU并口的不多于8個的單總線器件進行讀寫。

這種對多個單總線并行讀寫的方式雖然比傳統的單線串接的方式使用了更多的MCU的IO端口,線路連接也使用了更多的連線,但是這樣可以繞過對單總線器件的ROM ID的搜索和匹配操作,節省了每次數據讀寫操作時間;而且一次可以讀寫8組數據而所耗費的時間與讀寫一個單總線器件的時間基本相同,很大程度的提高了工作效率。另外,每個器件的讀寫都和MCU的一個IO端口對應,這樣就可以很方便的應用在批量生產的工業產品上。所以,這種對并行讀寫的方式還是有一定的實際應用價值的。

[1]陳志英,李光輝.單總線(1-Wire Bus)技術及其應用[J].國外電子元器件,2003(8).

[2]潘勇,孟慶斌.基于DS18B20的多點溫度測量系統設計[J].電子測量技術,2008(9).

[3]謝維成,楊加國.單片機原理與應用及C51程序設計[M].北京:清華大學出版社,2006.

[4]馬忠梅,籍順心.單片機的C語言應用程序設計[M].北京:北京航空航天大學出版社,2003:53-58.

TP368.1

A

1674-6708(2010)24-0200-02

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 欧美日韩一区二区三区在线视频| 国产欧美视频在线观看| 国产拍在线| 狠狠色香婷婷久久亚洲精品| 一级全免费视频播放| 欧美亚洲欧美区| 国产一区二区视频在线| 特级毛片8级毛片免费观看| 久久精品丝袜| 亚洲第一香蕉视频| 一级毛片免费播放视频| 色精品视频| 成人av专区精品无码国产| 亚洲综合色婷婷| 国产成人三级在线观看视频| 人人妻人人澡人人爽欧美一区 | 国产嫩草在线观看| 国产亚洲高清在线精品99| 亚洲熟女中文字幕男人总站| 成年av福利永久免费观看| 日本欧美在线观看| 黄色网站不卡无码| 青青青视频蜜桃一区二区| 国产成熟女人性满足视频| 久久综合色88| 欧美日韩在线亚洲国产人| 国产高清自拍视频| 最新国产你懂的在线网址| 成人一级免费视频| 在线无码私拍| 成人在线亚洲| 亚洲国产精品一区二区第一页免 | 中文字幕欧美成人免费| 欧美精品在线免费| 亚洲三级a| 亚洲免费福利视频| 蝴蝶伊人久久中文娱乐网| 国产精品视频白浆免费视频| 午夜成人在线视频| 国产av色站网站| 国产精品偷伦视频免费观看国产| 在线色国产| 婷婷五月在线视频| 国产成人三级| 久久久黄色片| 国产视频只有无码精品| 伊人久久福利中文字幕| 制服丝袜在线视频香蕉| 亚洲欧洲日韩综合色天使| 午夜福利视频一区| 69精品在线观看| 中文字幕无码制服中字| 在线观看无码av免费不卡网站| 99精品国产自在现线观看| 亚洲人成色在线观看| 亚洲成人网在线播放| 2020最新国产精品视频| 免费啪啪网址| 激情综合网址| 国产欧美日韩在线在线不卡视频| 亚洲视频二| 国产精品网曝门免费视频| jizz国产在线| 91蜜芽尤物福利在线观看| 亚洲欧美日韩动漫| 国产精品3p视频| 日韩在线成年视频人网站观看| 亚洲Va中文字幕久久一区| 欧美日韩一区二区在线播放| 亚洲成aⅴ人在线观看| 国产一二三区视频| 国产激情无码一区二区APP| 成人在线不卡视频| 狠狠色香婷婷久久亚洲精品| 日本免费a视频| 欧美三級片黃色三級片黃色1| 日韩免费毛片| 亚洲第一视频免费在线| 亚洲国产91人成在线| 日本a∨在线观看| 亚洲天堂精品在线| 国产AV毛片|