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的單片機控制系統的仿真設計
主站蜘蛛池模板: 欧美在线中文字幕| 免费视频在线2021入口| 国产成人h在线观看网站站| 欧美国产综合色视频| 99久久这里只精品麻豆| 欧美97欧美综合色伦图 | 欧美午夜在线视频| 欧美一区中文字幕| 国产日韩精品一区在线不卡| 国产成人综合网在线观看| 熟妇丰满人妻| 最新亚洲人成网站在线观看| 蜜臀AV在线播放| 欧美天堂在线| 免费毛片视频| 欧美天堂在线| 国产午夜无码片在线观看网站| 在线精品亚洲一区二区古装| 嫩草在线视频| av尤物免费在线观看| 国产精品久久精品| 色亚洲成人| 国产美女免费| 亚洲一级毛片免费看| 亚洲国产成人自拍| 韩日午夜在线资源一区二区| 国产精品亚欧美一区二区三区| 国产麻豆福利av在线播放| 91国语视频| 1769国产精品视频免费观看| 精品撒尿视频一区二区三区| 天天干天天色综合网| 91 九色视频丝袜| 国产97视频在线| 真人高潮娇喘嗯啊在线观看| 日韩国产无码一区| 少妇精品在线| 999国产精品永久免费视频精品久久| 乱人伦视频中文字幕在线| 在线精品亚洲国产| 国产熟睡乱子伦视频网站| 免费大黄网站在线观看| 日本手机在线视频| 免费观看男人免费桶女人视频| 欧美成人一级| 找国产毛片看| 中国精品久久| 在线无码私拍| 亚洲中文久久精品无玛| 91国内外精品自在线播放| AV不卡在线永久免费观看| 亚洲日韩AV无码一区二区三区人| 免费国产福利| 国产乱码精品一区二区三区中文| 亚洲h视频在线| 亚洲av无码久久无遮挡| 91成人在线免费观看| 欧美国产日产一区二区| 国产午夜人做人免费视频中文| 午夜精品福利影院| 在线观看免费国产| 青青操视频在线| 国产精品999在线| 亚洲开心婷婷中文字幕| 国产欧美亚洲精品第3页在线| 日本一本正道综合久久dvd | 久久精品最新免费国产成人| 欧亚日韩Av| 久久黄色毛片| 无码精品国产VA在线观看DVD| 亚洲高清免费在线观看| 在线精品视频成人网| 久草热视频在线| 中文精品久久久久国产网址| 天天视频在线91频| 久久精品人人做人人综合试看| 韩日无码在线不卡| 亚洲欧美日韩视频一区| 亚洲成综合人影院在院播放| 成人午夜视频网站| 三级毛片在线播放| 国产精品精品视频|