亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        用并行方式實(shí)現(xiàn)快速讀寫多只單總線器件

        2010-09-13 02:20:56
        科技傳播 2010年15期
        關(guān)鍵詞:溫度傳感器總線器件

        方 凱

        山東藝術(shù)學(xué)院,山東濟(jì)南 250014

        用并行方式實(shí)現(xiàn)快速讀寫多只單總線器件

        方 凱

        山東藝術(shù)學(xué)院,山東濟(jì)南 250014

        本文簡(jiǎn)單的介紹了單總線串行總線信號(hào)傳輸方式,并提出一種利用MCU的并口進(jìn)行字節(jié)尋址的方式,同時(shí)對(duì)多個(gè)單總線器件進(jìn)行并行讀寫的方法及其具體的算法實(shí)現(xiàn)。

        單片機(jī);MCU;單總線;1-Wire Bus

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

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

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

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

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

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

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

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

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

        以并行方式該讀取數(shù)據(jù)的具體實(shí)現(xiàn)算法如下:

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

        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 內(nèi)存中存儲(chǔ)的數(shù)據(jù)Tdata[]與實(shí)際的8個(gè)溫度讀數(shù)Data0-7之間的關(guān)系

        如表1所示,我們要設(shè)計(jì)一個(gè)將一個(gè)將縱向8位數(shù)據(jù)轉(zhuǎn)換成橫向8位的數(shù)據(jù)程序,便可得到各個(gè)傳感器溫度讀數(shù)的數(shù)據(jù)字節(jié)。

        數(shù)據(jù)轉(zhuǎn)換的算法的實(shí)現(xiàn)如下:

        具體對(duì)于DS18B20溫度傳感器而言,因?yàn)闇囟茸x數(shù)是以高字節(jié)和低字節(jié)兩個(gè)字存儲(chǔ)的,因此上述程序需要運(yùn)行兩次方能得到最終的讀數(shù)。

        同樣,如果需要向各個(gè)單總線器件寫入數(shù)據(jù),也需要先把要寫入各個(gè)單總線器件的數(shù)據(jù)存儲(chǔ)到一個(gè)數(shù)組中,用上述算法進(jìn)行轉(zhuǎn)換,然后在寫入。

        寫入數(shù)據(jù)的具體算法如下:

        這樣,通過上述方法,就可以實(shí)現(xiàn)一次對(duì)連接個(gè)一個(gè)MCU并口的不多于8個(gè)的單總線器件進(jìn)行讀寫。

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

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

        [2]潘勇,孟慶斌.基于DS18B20的多點(diǎn)溫度測(cè)量系統(tǒng)設(shè)計(jì)[J].電子測(cè)量技術(shù),2008(9).

        [3]謝維成,楊加國(guó).單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2006.

        [4]馬忠梅,籍順心.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2003:53-58.

        TP368.1

        A

        1674-6708(2010)24-0200-02

        猜你喜歡
        溫度傳感器總線器件
        溫度傳感器DS18B20在溫度計(jì)設(shè)計(jì)中的應(yīng)用
        電子制作(2019年12期)2019-07-16 08:45:44
        一種高性能CMOS溫度傳感器
        基于PCI Express總線的xHC與FPGA的直接通信
        機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計(jì)
        XTR105電流變送器在溫度傳感器中的應(yīng)用
        電子制作(2018年12期)2018-08-01 00:47:40
        旋涂-蒸鍍工藝制備紅光量子點(diǎn)器件
        面向高速應(yīng)用的GaN基HEMT器件
        溫度傳感器在筆記本電腦散熱系統(tǒng)中的應(yīng)用
        多通道ARINC429總線檢查儀
        一種加載集總器件的可調(diào)三維周期結(jié)構(gòu)
        亚洲中文字幕在线综合| 日韩免费高清视频网站| 日美韩精品一区二区三区| 喷水白浆视频在线观看| 国产亚洲精品精品精品| 自拍偷自拍亚洲精品播放| 熟女少妇av免费观看| 国产国语按摩对白av在线观看 | 国产a级三级三级三级| 国产成人亚洲日韩欧美| 国产av色| 丰满少妇被爽的高潮喷水呻吟| 亚洲av无码专区亚洲av网站| 乱码一二三入区口| 久久久精品国产视频在线| 国产女同舌吻1区2区| 国产精品久久国产精品99| 国产精品无码专区视频| 久久少妇呻吟视频久久久| 日韩精品亚洲一区二区| 国产福利一区二区三区在线观看| 亚洲日产无码中文字幕| 日本高清不卡二区三区| 风韵少妇性饥渴推油按摩视频| 婷婷五月综合缴情在线视频 | 人妻人人澡人人添人人爽人人玩| 久久精品有码中文字幕1| 99在线视频这里只有精品伊人| 国产好大好硬好爽免费不卡| 国产欧美日韩网站| 日韩精品极品免费在线视频| 国产精品免费观看调教网| 国产999精品久久久久久| 国产成人精品一区二免费网站| 男女av免费视频网站| аⅴ资源天堂资源库在线| 久久中文字幕久久久久| 精品亚洲一区二区三洲| 国产一区二区三区免费观看在线 | 亚洲综合偷自成人网第页色| 亚洲最大不卡av网站|