簡介:介紹一種利用PIC單片機和DS18B20構造單總線測溫網絡的方法,文章給出了系統硬件結構和軟件流程圖。
本測溫網絡應用在磁致伸縮液位傳感器上,利用附在不銹鋼管內壁的不同位置上的三個DS18B20,測量不同液位層的溫度 。
1硬件設計
整個系統由上位機和下位機組成。上位機用PC機,下位機用PIC16C63(原理框圖見圖1)。系統硬件部分主要有PIC16C63、AT24C01、DS18B20、顯示電路、電源電路、時鐘電路和通信電路。用戶需要時可通過上位機下達測量命令,下位機進行測量并把結果送給上位機或顯示在液晶顯示模塊上。三個溫度點任何一路發生故障,都會傳給上位機一個默認值,用戶可以據此在線更換新的溫度傳感器,系統能夠自動找到并啟用它。用戶每次開機都通過上位機給下位機下達命令,對通信、AT24C01、DS18B20進行自檢,自檢失敗會給上位機返回警告信號。系統具有掉電保護功能,當掉電時,參數的設定值可以保存在AT24C01中。上下位機之間采用RS-485串行總線進行通信。
1.1微處理器電路
PIC16C63A單片機有可編程編碼(加密)保護功能,采用寬字單周期指令、哈佛雙總線和RISC結構,其數據吞吐率最高可達6MIPS。數據輸入線允許有25mA的倒灌電流,可以直接驅動LED。片內有可直接尋址的4K個字的程序存貯器、192個8位數據寄存器、3個8位I/O口、2個8位和1個16位的定時器/計數器、2個捕捉/比較/脈寬調制(CCP)部件、同步串行口(SSP)部件、串行通信接口(SCI)部件。可選擇振蕩器類別:RC型、XT型、HS型和LP型。有多級中斷功能,可編程ID標識碼,在線串行編程。
PIC單片機主要完成掉電保護電路、溫度測量電路的操作控制,并對信號進行加工處理和最終輸出。
1.2溫度測量電路
DS18B20是可組網數字式溫度傳感器,測量范圍為-55℃~125℃,精度達到0.0625℃。DS18B20有3個引腳分別接地、電源和信號。每個DS18B20包括一個唯一的64位長的ROM編碼(表1),因此多個DS18B20和一個主控單元可以組成1-WIRE網絡。圖2為DS18B20內部存儲器結構,它包括一個暫存RAM和一個非易失性電可擦除EERAM。暫存存儲器作用是在單線通信時確保數據的完整性,它包括9個字節,頭兩個字節表示測得的溫度數,溫度/數據對應關系為+125℃→7D0H,0℃→000H,-55℃→FC90H。用戶可自設定非易失性溫度報警上下限值TH和TL(掉電后依然存在),DS18B20在完成溫度變換后,所測溫度值將自動與貯存在TH和TL內的報警值相比較,如果高于TH或低于TL,DS18B20內部的告警標志就會被置位。DS18B20內部暫存存儲器的第5個字節是結構寄存器,它的第5位R0和第6位R1主要用于確定溫度值的數字轉換分辨率。
1.3掉電保護電路
AT24C01是電可擦除的串口存儲器,其內部組合為128*8位,并有多種工作電壓可供不同用戶選擇。只要把它的地線、電源線、數據線和時鐘線分別接主控單元的地、電源和兩個I/O引腳,主控單元就可以通過兩條I/O線采用I2C總線的操作時序來操作它。
2軟件設計
2.11-WIRE的操作時序及軟件實現
1-WIRE網絡是一種具有一個總線主機和一個或若干個從機的系統。從機采用類似集電極開路的形式輸出,因此要求上拉電阻。1-WARE網絡的通訊協議有三種類型:初始化、讀時間片和寫時間片。
初始化時序:主機向總線發一復位脈沖(至少480μs的低電平),然后釋放總線并進入接收狀態,這時總線被上拉電阻拉高,從機在檢測到信號線上的上升沿之后,等待15~60μs,然后發出存在脈沖(60~240μs的低電平)(圖3)。
寫時序:主機將數據線從高電平拉至低電平,在15μs之內將所需寫的位送到數據線上,從機在15~60μs之間對數據線進行采樣,整個過程持續60~120μs,再延時至少1μs之后,開始一輪新的過程(圖4)。
讀時序:主機把數據線從高電平拉至低電平時,必須保持在低電平至少1μs,然后釋放總線,從機將在15μs之內輸出數據,整個過程最短持續期限為60μs,再延時至少1μs之后,開始一輪新的過程(圖4)。
1-WIRE網絡可保證在100米內數據通信正常,可掛接150個從機。為了更遠距離傳輸或重載,可以利用一段網絡作為主干,其余為網絡分支,根據需要用耦合器DS2409添加或去除分支,同時可以利用其他耦合器來作為接點控制,以在分支上添加或去除其他網絡。
2.2I2C總線操作時序及軟件實現
I2C是兩線制(只用串行時鐘線SCK和串行數據線SDA)串行通信接口。為了實現總線的“線與”功能,SDA(數據)線在輸出時采用開漏極,所以一般需要加上拉電阻,以保證總線在沒有器件把其拉成低電平時為高電平。由總線時序知,當SCL保持高而SDA由高變低時,為啟動信號:當SCL保持高而SDA由低變高時,為停止信號。數據傳輸過程中,數據線SDA只能在SCL為低電平時產生高低電平的變化。I2C總線的操作由四個基本的時間片組成:寫時間片、讀時間片、開始和停止。
2.3DS18B20工作過程的軟件實現
系統對DS18B20的操作以ROM命令和存儲器命令形式出現,DS18B20的工作遵循嚴格的單總線協議:
(1)主機首先發一復位脈沖,使信號線上所有的DS18B20芯片復位,并等待接收存在脈沖。
(2)接著發送ROM操作命令,包括讀取(33H)、匹配(55H)、搜索(F0H)、跳過(CCH)序列號操作等工作,使序列號匹配的DS18B20被激活。
(3)準備接收下面的存儲器操作命令;存儲器操作命令控制被激活的DS18B20的工作狀態,包括寫報警值、寫結構寄存器、溫度轉換、讀取溫度等工作。
本系統對DS18B20進行的操作主要包括三個子過程:1.自動搜索3個DS18B20的序列號(程序流程略),主機首先發一復位脈沖,等收到返回的存在脈沖后,發出搜索器件的序列號命令(F0H),讀取DS18B20的序列號;2.寫暫存存儲器(程序流程如圖5),主機在收到返回的存在脈沖后,發出匹配器件的序列號命令(55H),跟著發送一DS18B20的序列號,再發送寫暫存器命令(4EH),寫數據;3.啟動DS18B20作溫度轉換并讀取溫度值(程序流程如圖6),主機在收到返回的存在脈沖后,發出跳過器件的序列號命令(CCH),跟著發出溫度轉換命令(44H),再次復位并收到返回的存在脈沖后,發出匹配器件的序列號命令(55H),跟著發送一DS18B20的序列號,再發送讀暫存器命令(BEH),讀出數據。
2.4AT24C01工作過程的軟件實現
AT24C01的讀寫操作過程都由上面介紹的I2C總線的四種操作時間片組成。AT24C01的寫操作分為寫字節和寫頁面兩種方式。在本系統中采用了寫字節的方式,寫字節操作分為5個階段:
(1)主機啟動開始。
(2)主機通過SDA輸入一個寫器件命令(10100000B)。如果寫入成功,AT24C01在第9個周期輸出“0”表示確認((3)、(4)同)。
(3)主機通過SDA輸入8位數據地址。
(4)主機通過SDA輸入8位數據。
(5)停止信號。
AT24C01的讀操作分為立即讀取、隨機尋址讀取和順序讀取3種方式。在本系統中采用了隨機尋址讀取的方式,具體讀取過程分為7個階段:
(1)主機啟動開始。
(2)主機通過SDA輸入一個寫器件命令(10100000B)。如果寫入成功,AT24C01在第9個周期輸出“0”表示確認((3)、(5)同)。
(3)主機通過SDA輸入8位數據地址。
(4)主機啟動開始。
(5)主機通過SDA輸入一個讀器件命令(10100001B)。
(6)AT24C01通過SDA輸出8位數據。
(7)停止信號。
3硬件和軟件調試
硬件調試上需要注意接口問題。DS18B20的工作電流高達1mA,當溫度變換時信號線上必須提供足夠的功率,因此選用了4.7k的上拉電阻。AT24C01數據線上的上拉電阻不能太大,否則AT24C01輸出數據時不能獲得足夠的電流;也不能太小,否則AT24C01工作不穩定,必須經過調試選擇一定阻值的上拉電阻。
本系統的主要調試任務集中在軟件調試上,需要注意時間的把握,因為DS18B20和AT24C01的操作時序對時間要求比較嚴格。PIC單片機除分支指令是雙周期外,其他所有指令都是單周期指令,本系統選用的晶振為4MHz,執行一條單周期指令需要250ns,執行一條分支指令需要500ns。
4總結
本套系統為廣東康宇測控儀器儀表工程有限公司設計,已經進入試運行階段。從目前的情況來看,它能夠精確、及時地反映所測液體及周圍環境的溫度,而且現場調整方便靈活,反映良好。
參考文獻:
[1]呂瑜,等.基于單片機和TDC的磁尺數字化技術研究[J].儀表技術,2003,(4).
[2]DS18B20 Programmable Resolution One-Wire Digital Thermometer[Z].Dallas Corp.
上一篇:PC機與PIC單片機主從式多機通訊及其在數據檢測系統
下一篇:PIC數據采集系統接口電路設計圖
推薦閱讀
史海拾趣
Fischer Connectors公司在電子行業中的五個發展故事
故事一:創立與初期發展
Fischer Connectors的故事始于1954年,由真空技術專家Walter Werner Fischer在瑞士沃州的莫爾日創立。他憑借對技術的熱愛和執著,開發出了世界上第一個高品質密封連接器,專為工業應用而設計。這一創新產品迅速贏得了市場的認可,為公司的發展奠定了堅實的基礎。在隨后的幾年里,Fischer Connectors不斷優化產品,并于1962年注冊了推拉鎖定系統的國際專利,進一步鞏固了其在連接器行業的領先地位。
故事二:全球擴張與國際合作
隨著業務的不斷增長,Fischer Connectors開始積極尋求全球擴張的機會。1988年,公司在英國成立了第一家子公司,標志著其國際商業活動的正式開始。此后,Fischer Connectors相繼在歐洲的德國、意大利、法國以及美國等地開設了子公司,形成了全球性的生產和服務網絡。這些子公司不僅為當地市場提供了高質量的連接器產品,還促進了Fischer Connectors在全球范圍內的技術創新和市場拓展。
故事三:技術創新與產品線擴展
Fischer Connectors始終將技術創新作為企業發展的核心驅動力。進入21世紀后,公司推出了一系列具有創新性的連接器產品,如Fischer Core系列塑料連接器、AluLite?超輕鋁連接器以及Fischer UltiMate?系列超堅固連接器等。這些產品不僅滿足了不同行業對連接器性能的多樣化需求,還推動了整個電子行業的技術進步。同時,Fischer Connectors還不斷擴展其產品線,涵蓋了多極低電壓連接器、同軸高電壓連接器等多個領域,進一步鞏固了其在連接器市場的領先地位。
故事四:應對行業挑戰與定制化解決方案
隨著電子行業的快速發展,連接器和線纜系統的應用環境越來越復雜多樣。Fischer Connectors憑借其在技術、質量和服務方面的優勢,積極應對行業挑戰,為客戶提供定制化的解決方案。公司擁有一支專業的研發團隊和客戶服務團隊,能夠深入了解客戶的實際需求,量身定制出最適合客戶應用方案的連接器與線纜系統。這種以客戶為中心的服務理念贏得了廣大客戶的信賴和支持。
故事五:數字化轉型與可持續發展
近年來,Fischer Connectors積極響應數字化轉型的浪潮,利用先進的技術手段提升生產效率和產品質量。公司投入大量資源建設智能化生產線和數字化管理系統,實現了從原材料采購、生產加工到成品出庫的全流程信息化管理。同時,Fischer Connectors還注重可持續發展,致力于開發環保型連接器和線纜系統,減少對環境的影響。這些努力不僅提升了公司的競爭力,還為公司贏得了更多的社會認可和贊譽。
EIC公司一直秉持著環保責任和社會責任感。公司在生產過程中積極采用環保材料和工藝,減少廢棄物排放和能源消耗。同時,EIC還積極參與社會公益活動,為社會做出了積極貢獻。這些舉措不僅提升了公司的社會形象,也為公司的可持續發展奠定了堅實的基礎。
在競爭激烈的電子行業中,EIC公司深知供應鏈管理和成本控制的重要性。公司建立了完善的供應鏈管理體系,與供應商建立了長期穩定的合作關系,確保了原材料的穩定供應和質量的可靠性。同時,EIC還通過優化生產流程、提高生產效率等措施,不斷降低生產成本,提升產品的競爭力。
在電子行業中,質量始終是客戶最關心的問題之一。Ferroxcube公司深知這一點,因此在生產過程中嚴格控制產品質量,確保每一個出廠的產品都符合甚至超過客戶的期望。
有一次,一個大型電子設備制造商向Ferroxcube下了一筆大額訂單,要求提供一批高性能的磁環。然而,在生產過程中,質檢部門發現其中一部分磁環的性能指標略低于標準要求。雖然這批產品仍然符合市場上的大部分需求,但Ferroxcube公司決定全部返工,確保每一件產品都達到最高標準。
這一舉動雖然增加了公司的生產成本,但卻贏得了客戶的極高評價。那家大型電子設備制造商對Ferroxcube的嚴謹態度和專業精神表示贊賞,并將Ferroxcube列為了其首選供應商之一。此后,雙方的合作更加緊密,共同開發了許多創新的電子產品。
在電子行業中,質量始終是客戶最關心的問題之一。Ferroxcube公司深知這一點,因此在生產過程中嚴格控制產品質量,確保每一個出廠的產品都符合甚至超過客戶的期望。
有一次,一個大型電子設備制造商向Ferroxcube下了一筆大額訂單,要求提供一批高性能的磁環。然而,在生產過程中,質檢部門發現其中一部分磁環的性能指標略低于標準要求。雖然這批產品仍然符合市場上的大部分需求,但Ferroxcube公司決定全部返工,確保每一件產品都達到最高標準。
這一舉動雖然增加了公司的生產成本,但卻贏得了客戶的極高評價。那家大型電子設備制造商對Ferroxcube的嚴謹態度和專業精神表示贊賞,并將Ferroxcube列為了其首選供應商之一。此后,雙方的合作更加緊密,共同開發了許多創新的電子產品。
市面上流行過的這東西大家估計都看過了,說起來很簡單,就是一個太陽能小電池,大約提供最高1.2v電壓,然后通過ic周期性地控制驅動線圈的導通,使其搖擺. 本來只是一時無聊,打算自己做一個玩玩,但真正動手后讓我不得不回頭 ...… 查看全部問答∨ |
|
摘 要:Proteus是一款功能強大的 EDA仿真軟件。它擁有豐富的庫元件,尤其是動態外設 的仿真極大地補充了其他仿真軟件的不足;虛擬工具箱的引入為仿真測試提供了方便。本文 以 AVR單片機為例具體分析了該軟件在仿真微處理器方面的獨到 ...… 查看全部問答∨ |
混頻器輸出fout=(fin+flo)+(fin-flo),如果(fin-flo)為負值,fout將如何輸出?例如,輸入頻率fin=100M,本振flo=200M,混頻器是否只輸出和頻300M?現在有信號500M-1G,如果本振是750M,比如說600M和900M的頻率差頻后是否會混疊在一起?… 查看全部問答∨ |
上海誠聘vxworks開發人員 工作地點上海 通信行業的底層嵌入式研發 要求:2年左右工作經驗,大專以上學歷,英語讀寫 聯系方式:36673167 EMAIL:wangjx912@163.com… 查看全部問答∨ |
|
大家好,有誰用過CMX868的高手來幫我解決幾個問題,謝謝! 這個接口文檔上說是用C-BUS總線,請問這個是和單片機的SPI口相連嗎?文檔里大量提到了USART 還有這芯片上電后是不是處于休眠狀態?需要復位才能喚醒?我在上電后測不到晶振起振,郁悶 ...… 查看全部問答∨ |
發現STVisualDevelop+STM832KCompiler4.3.4一個問題,提個醒! 直接寫一條指令: TMP==0; 編譯后竟然沒有任何警告!編譯結果如下: (錯誤警告選項已經打開!CVAVR如果這樣寫會出現警告!不知道標準C語言是否可以這樣寫?) main.c:128 __sram_wall_xc_safe == 0; 0x90d3 ...… 查看全部問答∨ |
12MByte/s的采樣速率通過MCBSP傳輸給 tms320c6416T可以嗎? 6416T 1G的主頻,mcbsp的速率是可以支持到12MByte/s的速率(96Mbps), 但是不知道做是不是會不穩定。 [ 本帖最后由 dsp_comm 于 2011-5-15 19:23 編輯 ]… 查看全部問答∨ |
好像在哪里看到過,如果IO是輸入狀態,其接入的電平對功耗有影響?哪位能詳細說說原理和參數?例如接入電平為Vcc/2 另外,對于輸出狀態,msp430的IO口的內部比較詳細的電路在哪里可以看到的?是否也會像其它一些單片機一樣置高和置低不一樣?… 查看全部問答∨ |