基于單片機的液位控制系統的設計 摘要 液位測量廣泛應用于工業、經濟、生活等領域。本設計以水箱供水為模型,用于對水箱液位信號進行測量監控記錄。 基于單片機的液位測量裝置具有測量準確、重復性好、功耗低、使用壽命長的特點,是廣泛采用的技術。在深入學習科學發展觀的同時,電子設備的設計也需融入可持續發展的設計理念。故此,在基于單片機的液位測量裝置基礎上,擴展實時監控、數據采集、計算機串行通信等功能,從而能夠通過科學的方法將液位測量與統計科學結合,合理調度水資源,降低能源消耗。 本文從系統方案選擇與論證,硬件電路設計,系統軟件與上位機軟件設計等幾個方面介紹了基于單片機的液位測量監控系統的設計過程,最終實現了液位的實時測量與監控。最后,本文總結了設計過程中出現的問題及解決方法,簡要敘述了所獲數據的處理方法,引出了進一步設計開發的思路。
目錄 引言 第1章 緒論 1.1 課題背景與研究意義 1.2 國內外研究現狀及發展 1.3 本課題主要研究內容 第2章 系統總體方案 2.1 系統設計要求 2.2 系統框圖 2.3 硬件設計方案 2.3.1 主控模塊設計方案 2.3.2 鍵盤模塊設計方案 2.3.3 顯示模塊設計方案 2.3.4 數據存儲模塊設計方案 2.3.5 時間模塊設計方案 2.3.6 A/D轉換模塊設計方案 2.3.7 通信模塊設計方案 2.3.8 電機控制模塊設計方案 第3章 硬件電路設計 3.1 AT89S52硬件設計 3.2 按鍵設計 3.3 顯示單元硬件設計 3.4 存儲單元硬件設計 3.5 時間單元硬件設計 3.6 A/D轉換單元硬件設計 3.7 通信單元硬件設計 3.8 其他外圍電路的設計 第4章 系統軟件設計 4.1 系統軟件 4.1.1 系統軟件編譯開發環境 4.1.2 系統主程序流程圖 4.1.3 系統初始化 4.1.4 顯示與A/D轉換的數據處理 4.1.5 按鍵部分軟件設計 4.1.6 顯示模塊的軟件設計 4.1.7 A/D轉換模塊軟件設計 4.1.8 電機控制模塊軟件設計 4.1.9 通信協議及通信模塊軟件設計 4.1.10 時間模塊軟件設計 4.2 上位機軟件設計 4.2.1 上位機軟件開發編譯環境 4.2.2 上位機軟件的界面設計 4.2.3 上位機串口通信功能的實現 4.2.4 上位機軟件中的數據處理 結論與展望 致謝 參考文獻 附錄A 系統電路原理圖 附錄B 外文文獻及譯文 附錄C 主要參考文獻的題錄及摘要 附錄D 系統軟件源代碼
插圖清單
引言
上世紀40年代,電子計算機的誕生,標志著人類電子技術進入了一個新的階段。1976年單片機的推出為電子電路設計提供了新的思路,也促進了模擬電路向數字電路發展的歷程。它在一片芯片上集成了完整的計算機系統。從它的發展來看,低功耗CMOS化、微型單片化、主流與多品種共存的發展趨勢更進一步促使了單片機在各個行業的應用。這些應用,很大一方面體現在工業控制中。在工業上,使用單片機可以構成形式多樣的控制系統和數據采集系統。 單片機應用發展迅速而廣泛。在過程控制中,單片機既可作為主計算機,又可作為分布式計算機控制系統中的前端機,完成模擬量的采集和開關量的輸入、處理和控制計算,然后輸出控制信號。單片機廣泛用于儀器儀表中,與不同類型的傳感器相結合,實現諸如電壓、功率、頻率、濕度、流量、速度、厚度、壓力、溫度等物理量的測量;在家用電器設備中,單片機已廣泛用于電視機、錄音機、電冰箱、電飯鍋、微波爐、洗衣、高級電子玩具、家用防盜報警等各種家電設備中。在計算機網絡和通信、醫用設備、工商、金融、科研、教育、國防、航空航天等領域都有著十分廣泛的應用。 工程應用中液位的測量常用方法主要有超聲波、激光紅外測距、機械浮子、壓力傳感器測距等幾種。這些測量方式對一般液位的測量來說各有各的優點,可根據不同的應用場合和要求進行選擇。比如,常見的液位控制系統多采用浮標、電極等,這種控制形式結構簡單成本低廉,但是控制精度不高,不能進行數值顯示;另外容易引起誤操作,與上位機進行信息交互比較困難。 隨著科技的發展,液位測量技術趨于智能化、微型化、可視化。本設計思想是用單片機做下位機,PC機做上位機,單片機和PC機相結合對水箱液位進行測量和監控。該設計要求具有一定的智能化,可操作性和穩定性好。
第1章 緒論
在工農業生產中,常常需要測量液體液位。隨著國家工業的迅速發展,液位測量技術被廣泛應用到石油、化工、醫藥、食品等各行各業中。低溫液體(液氧、液氮、液氬、液化天然氣及液體二氧化碳等)得到廣泛的應用,作為貯存低溫液體的容器要保證能承受其載荷;在發電廠、煉鋼廠中,保持正常的鍋爐汽包水位、除氧器水位、汽輪機凝氣器水位、高、低壓加熱器水位等,是設備安全運行的保證;在教學與科學研究中,也經常碰到需要進行液位控制的實驗裝置。
液位測量的方法比較多,依據測量方式的不同可分為接觸式與非接觸式兩種類型。 ●接觸式測量法 接觸式測量法是指測量用傳感器直接與容器內存儲液體相接觸,從而獲得測量參數的方法。 1.人工檢尺法 人工檢尺法可用于測量油罐液位,其歷史十分悠久。它利用浸入式刻度鋼皮尺測量液位,這種方法具有測量簡單、可靠性高、直觀、成本低的優點,但人為讀數誤差大、無法實現自動檢測和操作。 2.電參數測量法 常見的有電阻法、光電法、測重法、電容法、浮標法及聲光電的反射回波法等。無論怎樣,這些方法的關鍵是利用液位傳感器將液位的相對位移量轉換成為電壓、電流、阻抗等便于進行電處理的物理量。限于篇幅,下面僅簡單介紹電容測量法的基本原理。 本方法所使用的電容通常由兩塊圓柱形極板或一個探極與罐壁構成。當液位不同時,電容器的介電常數就不同,故電容量也不同。在此基礎上可以把電容量轉化為電壓、相移、頻率、脈寬等物理量,再進行測量。 電容式液位測量裝置通常結構簡單、靈敏度高、穩定性好、動態響應快,適合于惡劣的工作環境,生產成本也不高;但電容液位測量器需要考慮溫度補償,且介質的成分、水分、溫度、密度等不確定變化因素直接影響測量結果的準確性,另外檢測電路比較復雜,尤其是檢測微小電容量的變化。 ●非接觸式測量法 非接觸式測量法包括超聲波法、調制型光學法、微波法等。其特點是測量手段并不采用浮子之類的固態物,而是利用聲、光、射線、磁場等的能量。液位傳感器不和被測介質接觸,不受被測介質影響,也不影響被測介質,故適用范圍廣泛。特別是接觸式測量裝置不能適用的特殊場合,如高粘度、強腐蝕性、污染性強,易結晶的介質。下面簡單介紹超聲波法和微波法的測量原理。 超聲波法:換能裝置將電功率脈沖轉換為超聲波,射向液面,經液面反射后再由換能器將該超聲波轉換為電信號,超聲波法可用于多液面的測量。 超聲波是機械波,傳播衰減小,界面反射信號強,且發射和接收電路簡單,因而應用較為廣泛;但超聲波的傳播速度受介質的密度、濃度、溫度、壓力等因素影響,其測量精度往往較低。 微波法:微波通過天線輻射出去,經液面反射后被天線接收,然后由二次電路計算發射信號與接收信號的時間差得出液位。 微波速度受傳播介質、溫度、壓力、液體介電常數的影響很小,但液體界面的波動、液體表面的泡沫、液體介質的介電常數對微波反射信號強弱有很大影響。當壓力超過規定數值時,壓力對液位測量精度將產生顯著影響。對波導管的銹蝕、彎曲和傾斜都會影響測量精度。 ●光纖測量法 光纖液位檢測是近年來出現的一種新技術。根據光導纖維中光在不同介質中傳輸特性的改變對液位進行測量。 光纖液位測量有以下優點:精度高、靈敏度好、抗電磁干擾、耐腐蝕、電絕緣性好、檢測現場無電、光路有抗擾性以及便于與計算機連接,便于與光纖傳輸系統組成網絡等。 目前,市面上進行液位測量的儀表種類繁多,但是同時具有測量、監控、數據記錄及處理的液位測量裝置并不多。在某些工業控制系統中,數據的測量這一基本功能已不能滿足現代工業的要求,往往需要對大批數據進行記錄,對其進行后期處理分析,實現差錯控制、工藝改善、資源優化等一系列工作。為了獲得大批量的數據,得到可靠的分析資料,往往需要長期、多網點的監控記錄。在液位測量這一領域中,如江河湖海、城市用水等方面,大量數據長時間,多網點的采集記錄分析具有普遍的意義。液位的變化分析,有助于人們進一步對自然環境、天氣變化甚至是災害預警提供可靠的支持。
本設計以水箱供水為模型,鑒于單片機液位測量裝置的測量準確、重復性能好、功耗低、使用壽命長等特點,設計以單片機為基礎的液位測量監控記錄系統。具有實時液位測量監控數據處理等功能。 設計具體內容分為以下幾個方面: - 系統硬件電路設計以及單片機選型;
- 系統軟件設計;
- 上位機軟件設計以及上位機與下位機通信設計。
第2章 系統總體方案
2.1 系統設計要求
本設計以水箱供水為模型,鑒于單片機液位測量裝置的測量準確、重復性能好、功耗低、使用壽命長等特點,設計以單片機為基礎的液位測量監控記錄系統。它具有實時測量監控水箱液位高度并顯示的功能,并根據實時水量與設置的上、下液位參數的比較,啟動電機供水或停止水泵。在啟動電機與停止水泵時,實時記錄時間點與電機狀態。液位測量高度≤5米,測量精度10%,AC220V供電。 可通過上位機軟件,可與監控記錄系統進行通信,能夠從PC機獲取當前液位高度、電機狀態、設備系統時間、上下液位高度等數據,并可根據需要改變系統默認的參數。同時可以獲取設備運行時記錄的數據,并能夠對數據保存。能夠根據一定的算法,計算分析單位時間水箱消耗水量,繪制圖形,通過計算分析的結果,可以進行區域用水統籌,降低能源的消耗。
2.2 系統框圖
根據系統的設計要求,采用單片機為主控芯片,通過單片機數據地址總線及I/O端口,擴展數據存儲模塊、A/D轉換模塊、顯示模塊、時間模塊、串口通信模塊以及A/D轉換、電機控制等外圍電路,從而實現系統所需的設計功能。系統總體方案框圖如圖2-1: 圖2-1 系統總體框圖 圖中,信號流向僅指示了通過數據地址總線或I/O口上發生的數據信號,不包括控制信號。
2.3 硬件設計方案 2.3.1 主控模塊設計方案
單片機作為主控模塊,使得在對單片機選型上有了較大的空間。單片機在30多年的發展歷程中,形成了多公司、多系列、多型號“百家爭鳴”的局面。因而,選擇一個合適的單片機有時真的不太容易,要考慮的方面太多。大致總結出以下幾點: 1) 單片機的基本參數。例如速度、程序存儲器容量、I/O引腳數量等。 2) 單片機的增強功能。例如看門狗、雙指針、雙串口、RTC(實時時鐘)、EEPROM、擴展RAM、CAN接口、I2C接口、SPI接口、USB接口。 3) Flash和OTP(一次性可編程)。 4) 封裝:DIP(雙列直插),PLCC(PLCC有對應插座)還是貼片。 5) 工作溫度范圍,工業級還是商業機。 6) 功耗。 7) 工作電壓范圍。例如設計電視機遙控器,2節干電池供電,至少應該能在1.8~3.6V電壓范圍內工作。 8) 供貨渠道暢通。 9) 價格。 10) 燒錄器價格,能否ISP(在線系統編程)。 11) 仿真器。 12) 單片機匯編語言支持。 13) 資料盡量豐富。 14) 抗干擾性能好。 15) 和其他外設芯片放在一起的綜合考慮。 根據以上因素:系統的實時性要求不高,因而運算速度無需很快,且系統規模不大,采用分時復用的方式使用總線,對I/O口的數量可以要求進一步降低。使用4路8位I/O接口即可滿足設計要求;系統中需要擴展外部存儲器對數據進行存儲,數據存儲量為32KB已滿足要求,因此采用16位或準16位地址總線的單片機即可滿足設計需要;由于是實驗階段,采用DIP(雙列直插)封裝的芯片便于實驗,暫不考慮實際工業控制中的對外界環境的具體要求;系統采用AC220V供電,且對功耗沒有具體要求,使用DC5V為芯片供電,便于系統外圍電路的設計;芯片支持ISP可節省仿真器的投入。 綜上所述,采用與MCS-51兼容的AT89S52單片機滿足設計要求。 AT89S52是一種低功耗、高性能CMOS工藝的8位微控制器,具有8K在線系統可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術制造,與工業80C51產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器,使得AT89S52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。 AT89S52具有以下標準功能:8k字節Flash,256字節RAM,32位I/O口線,看門狗定時器,2個數據指針,三個16位定時器/計數器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,AT89S52可降至0Hz靜態邏輯操作,支持2種軟件可選擇節電模式?臻e模式下,CPU停止工作,允許RAM、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。
2.3.2 鍵盤模塊設計方案
鍵盤在單片機應用系統中是一個很關鍵的部件,它能實現向單片機輸入數據、發送命令等功能,是人工干預單片機系統的主要手段?紤]到本設計實際需要的按鍵較少,故采用獨立式鍵盤接口電路即可。
2.3.3 顯示模塊設計方案
顯示器是計算機的主要輸出設備,在簡單的工業控制系統中,常用的顯示器有數碼管顯示器(LED),液晶顯示器(LCD)等,該系統僅需顯示液位高度,即數字量,采用LED顯示器已能滿足系統要求。 系統中,要求測量范圍≤5m,測量精度為10%,假設測量范圍為5m,在10%精度的要求下,其測量的有效值為5*10%=0.5m。因而采用2位LED顯示器便能滿足設計要求。 在單片機應用系統中,LED顯示器的現實方法有兩種:靜態顯示法和動態顯示法。靜態顯示法的優點是顯示程序十分簡單,顯示亮度大,由于CPU不必經常掃描顯示器,所以節約了CPU的工作時間。但靜態顯示也有其缺點,主要是占用I/O口資源較多,硬件成本較高。所以靜態顯示法常用在顯示器數目較少的應用系統中。為了解決靜態顯示占用I/O口資源的缺點,在軟件上采用壓縮BCD碼輸出顯示數據,硬件上使用一個8位鎖存器74LS273與兩個BCD數碼顯示譯碼驅動芯片74LS47連接,減少對系統資源的占用時間。由于74LS47譯碼為共陽極數碼管的碼表,因而選用8段(帶小數點)共陽極LED用于數據顯示。高位顯示米單位,低位顯示分米單位,且高位小數點常亮。單片機使用1位I/O口控制數據的鎖存。
2.3.4 數據存儲模塊設計方案
使用AT89S52內部256字節的數據存儲器記錄數據是遠遠不夠的,因而需要擴展數據存儲器進行數據存儲。 數據存儲器可選擇的種類繁多,常用的有隨機存取存儲器(RAM)、只讀存儲器(ROM)與閃存(FLASH)。 RAM是存儲單元的內容可按需隨意取出或存入,且存取的速度與存儲單元的位置無關的存儲器。這種存儲器在斷電時將丟失其存儲內容,故主要用于存儲短時間使用的程序。 ROM通常指固化存儲器(一次寫入,反復讀。,它的特點與RAM相反。ROM又分一次性固化、光擦除和電擦除重寫兩種類型。 閃存則是一種不揮發性(Non-Volatile)內存,在沒有電流供應的條件下也能夠長久地保持數據,其存儲特性相當于硬盤,這項特性正是閃存得以成為各類便攜型數字設備的存儲介質的基礎。 NOR和NAND是現在市場上兩種主要的非易失閃存技術。 NAND閃存的存儲單元則采用串行結構,存儲單元的讀寫是以頁和塊為單位來進行(一頁包含若干字節,若干頁則組成儲存塊,NAND的存儲塊大小為8到32KB),這種結構最大的優點在于容量可以做得很大,超過512MB容量的NAND產品相當普遍, NAND閃存的成本較低,有利于大規模普及。 NAND閃存的缺點在于讀速度較慢,它的I/O端口只有8個,比NOR要少多了。這區區8個I/O端口只能以信號輪流傳送的方式完成數據的傳送,速度要比NOR閃存的并行傳輸模式慢得多。再加上NAND閃存的邏輯為電子盤模塊結構,內部不存在專門的存儲控制器,一旦出現數據壞塊將無法修,可靠性較NOR閃存要差。 NOR的特點是芯片內執行(XIP, eXecute In Place),這樣應用程序可以直接在flash閃存內運行,不必再把代碼讀到系統RAM中。NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。 NAND結構能提供極高的單元密度,可以達到高存儲密度,并且寫入和擦除的速度也很快。應用NAND的困難在于FLASH的管理和需要特殊的。 可以看出ROM的存儲復雜,不適宜實時系統的數據存儲。 FLASH是一個不錯的解決方案。鑒于系統的復雜程度,暫時不考慮使用FLASH作為存儲單元。 根據設計要求,記錄某一記錄點(電機狀態改變時刻)的狀態與時間需要6字節數據,即年(2000-2099年)、月(1-12月)、日(1-31日)、時(0-23時)、分(0-59分)、狀態(0或1)這些數據,如果系統長時間的工作,將會有大批量的數據產生,假若數據存儲空間不夠大,將會產生數據的覆蓋,從而降低了對數據分析的準確性。因此選用32K字節的數據存儲器,可以記錄大于5000項記錄點數據,考慮到水箱上水與耗水的頻繁程度不高,5000項數據已基本滿足后期數據處理的需求。在實際應用中,系統設計在不掉電的工作環境下;軟件上,上位機軟件對數據提取后即可保存在PC機中,5000項數據進行時間上的緩沖是充足的。為節省CPU的工作時間,且由于RAM存儲速度快、使用方便等特點,從而可以忽略了RAM掉電數據丟失的缺點。
2.3.5 時間模塊設計方案
通過單片機的定時器,可以設計時間功能,然而單片機自身的產生時間數據大大占用了系統的資源,降低了工作效率,甚至影響了其他功能的實現,因此在本設計方案中,采用了外部芯片提供時間信號,用以系統記錄時間信息。 目前市場上的時鐘芯片很多,如DS1302/DS1307/HT1380/HT1381/PCF8563等。 DS1302是DALLAS公司推出的涓流充電時鐘芯片,內含有一個實時時鐘/日歷和31字節靜態RAM,通過簡單的串行接口與單片機進行通信。實時時鐘/日歷電路提供秒、分、時、日期、日、月、年的信息,每月的天數和閏年的天數可自動調整,時鐘操作可通過AM/PM指示決定采用24或12小時格式。DS1302與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到三個口線(1) RES(復位),(2) I/O(數據線),(3) SCLK(串行時鐘)。時鐘/RAM的讀、寫數據以一個字節或多達31個字節的字符組方式通信。DS1302工作時功耗很低,保持數據和時鐘信息時功率小于1mW。 DS1302是由DS1202改進而來,增加了以下的特性雙電源管腳用于主電源和備份電源供應,Vcc1為可編程涓流充電電源,附加七個字節存儲器。它廣泛應用于電話、傳真、便攜式儀器以及電池供電的儀器儀表等產品領域。下面將主要的性能指標作一綜合: - 實時時鐘具有能計算2100年之前的秒、分、時、日期、星期、月、年的能力,還有閏年調整的能力。
- 31*8位暫存數據存儲RAM。
- 串行I/O口方式使得管腳數量最少。
- 寬范圍工作電壓2.0~5.5V。
- 工作電流2.0V時,小于300nA。
- 讀/寫時鐘或RAM數據時有兩種傳送方式單字節傳送和多字節傳送字符組方式。
- 8腳DIP封裝或可選的8腳SOIC封裝。
- 簡單3線接口。
- 與TTL兼容Vcc=5V。
- 可選工業級溫度范圍-40至+85攝氏度。
- 與DS1202兼容。
- 在DS1202基礎上增加的特性:
對Vcc1有可選的涓流充電能力; 雙電源管用于主電源和備份電源供應; 備份電源管腳可由電池或大容量電容輸入; 附加的7字節暫存存儲器。 綜上所述,選用DS1302時間芯片完全滿足設計的需求。
2.3.6 A/D轉換模塊設計方案
A/D器件和芯片是實現單片機數據采集的常用外圍器件。A/D轉換器的品種繁多、性能各異,在設計數據采集系統時,首先碰到的就是如何選擇合適的A/D轉換器以滿足系統設計要求的問題。選擇A/D轉換器件需要考慮器件本身的品質和應用的場合要求;旧,可以根據以下幾個方面的指標選擇一個A/D器件。 1) A/D轉換器位數 A/D轉換器位數的確定,應該從數據采集系統的靜態精度和動態平滑性這兩個方面進行考慮。從靜態精度方面來說,要考慮輸入信號的原始誤差傳遞到輸出所產生的誤差,它是模擬信號數字化時產生誤差的主要部分。量化誤差與A/D轉換器位數有關。一般把8位以下的A/D轉換器歸為低分辨率A/D轉換器,9~12位的稱為中分辨率轉換器,13位以上的稱為高分辨率轉換器。10位以下的A/D芯片誤差較大,11位以上對減小誤差并無太大貢獻,但對A/D轉換器的要求卻提得過高。因此,取10位或11位是合適的。由于模擬信號先經過測量裝置,再經A/D轉換器轉換后才進行處理,因此,總的誤差是由測量誤差和量化誤差共同構成的。A/D轉換器的精度應與測量裝置的精度相匹配。也就是說,一方面要求量化誤差在總誤差中所占的比重要小,使它不顯著地擴大測量誤差;另一方面必須根據目前測量裝置的精度水平,對A/D轉換器的位數提出恰當的要求。 目前,大多數測量裝置的精度值不小于0.1%~0.5%,故A/D轉換器的精度取0.05% ~ 0.1%即可,相應的二進制碼為10~11位,加上符號位,即為11~12位。當有特殊的應用時,A/D轉換器要求更多的位數,這時往往可采用雙精度的轉換方案。 2) A/D轉換器的轉換速率 A/D轉換器從啟動轉換到轉換結束,輸出穩定的數字量,需要一定的轉換時間。轉換時間的倒數就是每秒鐘能完成的轉換次數,稱為轉換速率。 確定A/D轉換器的轉換速率時,應考慮系統的采樣速率。例如,如果用轉換時間為100us的A/D轉換器,則其轉換速率為10KHz。根據采樣定理和實際需要,一個周期的波形需采10個樣點,那么這樣的A/D轉換器最高也只有處理頻率為1KHz的模擬信號。把轉換時間減小,信號頻率可提高。對一般的單片機而言,要在采樣時間內完成A/D轉換以外的工作,如讀數據、再啟動、存數據、循環計數等已經比較困難了。 3) 采樣/保持器 采集直流和變化非常緩慢的模擬信號時可不用采樣保持器。對于其他模擬信號一般都要加采樣保持器。如果信號頻率不高,A/D轉換器的轉換時間短,即采樣高速A/D時,也可不用采樣/保持器。 4) A/D轉換器量程 A/D轉換時需要的是雙極性的,有時是單極性的。輸入信號最小值有的從零開始,也有從非零開始的。有的轉換器提供了不同量程的引腳,只有正確使用,才能保證轉換精度。在使用中,影響A/D轉換器量程的因素有:量程變換和雙極性偏置;雙基準電壓;A/D轉換器內部比較器輸入端的正確使用。 5) 滿刻度誤差 滿度輸出時對應的輸入信號與理想輸入信號值之差。 6) 線性度 實際轉換器的轉移函數與理想直線的最大偏移。 ADC0804是單路8位逐次比較型雙極性輸入A/D轉換器,轉換時間小于  。量化間隔:  (2-1) 絕對量化誤差:  (2-2) 相對量化誤差:  (2-3) 在液位傳感器誤差與參考電壓誤差不大的情況下,ADC0804是完全滿足設計誤差要求的。
2.3.7 通信模塊設計方案
AT89S52單片機內部有一個全雙工異步串行I/O接口,占用P3.0和P3.1兩個引腳。利用該接口,可實現系統與上位機的通信。 不同設備間串口通信的過程中,需要采用相同的的接口標準才能通信。 典型的串行通訊標準是RS232和RS485,它們定義了電壓,阻抗等,但不對軟件協議給予定義。 RS-232C標準(協議)的全稱是EIA-RS-232C標準,其中EIA(Electronic Industry Association)代表美國電子工業協會,RS(EcommededStandard)代表推薦標準,232是標識號,C代表RS232的最新一次修改(1969),在這之前,有RS232B、RS232A。。它規定連接電纜和機械、電氣特性、信號功能及傳送過程。 區別于RS232,RS485的特性包括: 1) RS-485的電氣特性:邏輯“1”以兩線間的電壓差為+(2~6)V表示;邏輯“0”以兩線間的電壓差為-(2~6)V表示。接口信號電平比RS-232-C降低了,就不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL電路連接。 2) RS-485的數據最高傳輸速率為10Mbps。 3) RS-485接口是采用平衡驅動器和差分接收器的組合,抗共模干擾能力增強,即抗噪聲干擾性好。 4) RS-485接口的最大傳輸距離標準值為4000英尺,實際上可達3000米,另外RS-232-C接口在總線上只允許連接1個收發器,即單站能力。而RS-485接口在總線上是允許連接多達128個收發器。即具有多站能力,這樣用戶可以利用單一的RS-485接口方便地建立起設備網絡。 因RS-485接口具有良好的抗噪聲干擾性,長的傳輸距離和多站能力等上述優點就使其成為首選的串行接口。 PC機作為上位機,一般情況下帶有RS-232C通信接口,鑒于RS-485接口的優點與系統實際工作環境的需要,系統采用RS-485接口標準,使用RS-232/RS-485轉換器與PC機連接進行通信。 MAX485接口芯片是Maxim公司的一種RS-485芯片。采用單一電源+5V工作,額定電流為300μA,采用半雙工通訊方式。它完成將TTL電平轉換為RS-485電平的功能。
2.3.8 電機控制模塊設計方案
由于設計中沒有規定水泵電機的參數規格,而且不同型號的水泵參數不盡相同,電氣參數的不同使得在電路上的設計差異較大,因此在此僅作理論演示。 選用繼電器作為電機控制的元件。 繼電器是一種電子控制器件,它具有控制系統(又稱輸入回路)和被控制系統(又稱輸出回路),通常應用于自動控制電路中,它實際上是用較小的電流去控制較大電流的一種“自動開關”。故在電路中起著自動調節、安全保護、轉換電路等作用。 繼電器主要產品技術參數: 1) 額定工作電壓。是指繼電器正常工作時線圈所需要的電壓。根據繼電器的型號不同,可以是交流電壓,也可以是直流電壓。 2) 直流電阻。是指繼電器中線圈的直流電阻,可以通過萬能表測量。 3) 吸合電流。是指繼電器能夠產生吸合動作的最小電流。在正常使用時,給定的電流必須略大于吸合電流,這樣繼電器才能穩定地工作。而對于線圈所加的工作電壓,一般不要超過額定工作電壓的1.5倍,否則會產生較大的電流而把線圈燒毀。 4) 釋放電流。是指繼電器產生釋放動作的最大電流。當繼電器吸合狀態的電流減小到一定程度時,繼電器就會恢復到未通電的釋放狀態。這時的電流遠遠小于吸合電流。 5) 觸點切換電壓和電流。是指繼電器允許加載的電壓和電流。它決定了繼電器能控制電壓和電流的大小,使用時不能超過此值,否則很容易損壞繼電器的觸點。 根據以上的參數,結合設計的演示性,選用額定工作電壓120VAC/24VDC,工作電流3A,控制電壓5VDC的小型繼電器。
第3章 硬件電路設計
3.1 AT89S52硬件設計
AT89S52引腳定義及功能介紹如圖3-1。
P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0具有內部上拉電阻。在FLASH編程時,P0口也用來接收指令字節;在程序校驗時,輸出指令字節。程序校驗時,需要外部上拉電阻。 P1口:P1口是一個具有內部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅動4個TTL邏輯電平。對P1端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和定時器/計數器2的觸發輸入(P1.1/T2EX),具體如下所示: - 在FLASH編程和校驗時,P1口接收低8位地址字節。
- 引腳號第二功能:
P1.0/T2 (定時器/計數器T2的外部計數輸入),時鐘輸出 P1.1/T2EX (定時器/計數器T2的捕捉/重載觸發信號和方向控制) P1.5 MOSI (在系統編程用) P1.6 MISO (在系統編程用) P1.7 SCK (在系統編程用) P2口:P2口是一個具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P2端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執行MOVX @DPTR)時,P2口送出高八位地址。在這種應用中,P2口使用很強的內部上拉發送1。在使用8位地址(如MOVX @RI)訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。在FLASH編程和校驗時,P2口也接收高8位地址字節和一些控制信號。 P3口:P3口是一個具有內部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅動4個TTL邏輯電平。對P3端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。
表3-1 端口引腳第二功能
此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。 RST——復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將使單片機復位。 ALE/PROG——當訪問外部程序存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執行外部程序時,應設置ALE禁止位無效。 PSEN——程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89S52由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數據存儲器,將跳過兩次PSEN信號。 EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H~FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態。如EA端為高電平(接Vcc端),CPU則執行內部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。 XTAL1:振蕩器反相放大器和內部時鐘發生電路的輸入端。 XTAL2:振蕩器反相放大器的輸出端。 為了便于接下來的說明,單片機各管腳網絡標號定義如圖3-1。 要使單片機按照設計要求正常工作,完整單片機最基本的工作要求,考慮到系統無需精確地定時功能,且為了方便串口通信波特率的計算,采用11.0592MHz的晶振提供系統時鐘。并附加復位電路,組成單片機最小系統。根據電路設計規范和AT89S52芯片手冊,設計時鐘電路與復位電路如圖3-2: 圖3-2 復位電路及時鐘電路 圖中網絡標號RST連接單片機RST引腳,具有上電復位與手動復位的功能;XTAL1與XTAL2連接單片機XTAL1和XTAL2引腳,且并聯兩個30pF匹配電容使晶振起振。 由于單片機P0口作普通I/O口時不能輸出高電平,因此需接上拉電阻,實際電路中,使用8*10KΩ電阻作為上拉電阻。
3.2 按鍵設計
鍵盤在單片機應用系統中是一個很關鍵的部件,它能實現向單片機系統輸入數據、發送命令等功能,是人工干預單片機的主要手段?紤]到本設計實際需要的按鍵較少,故采用獨立式鍵盤接口電路。它是將每個獨立按鍵按一對一的方式直接接到單片機的I/O口上,通過程序掃描查詢方式實現與單片機系統交互的。在程序查詢方式下,通過I/O端口讀入按鍵狀態,當有按鍵按下時,相應的I/O端口變為低電平,而未被按下的按鍵在上拉電阻作用下為高電平,這樣通過讀I/O口的狀態判斷是否有按鍵按下。系統按鍵電路如圖3-3所示。 下圖中,S2~S5便是控制顯示用的按鍵。其作用就是通過按動它們實現對高低警戒液位的設置。具體來說,S3、S4分別實現數字的增一與減一,S2、S5則作為高低警戒液位的模式選擇和確認鍵。 圖3-3 系統按鍵電路
3.3 顯示單元硬件設計
在顯示單元上,使用了74LS273帶公共時鐘復位八位觸發器與74LS47共陽極BCD顯示譯碼驅動芯片。兩個芯片的管腳圖如圖3-4:
74LS273與74LS47引腳功能說明: 74LS273:1腳是復位CLR,低電平有效,當1腳是低電平時,輸出腳2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部輸出0,即全部復位; 當1腳為高電平時,11(CLK)腳是鎖存控制端,并且是上升沿觸發鎖存,當11腳有一個上升沿,立即鎖存輸入腳3、4、7、8、13、14、17、18的電平狀態,并且立即呈現在在輸出腳2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上。 74LS47上BI/ROB,LI,RBI引腳為控制引腳,主要用于測試和脈沖控制,均為低電平有效,設計上不適用此項功能,因此均接高電平。A0~A3是BCD輸入,分解74LS273輸出的高、低四位。a~g用于共陽極數碼管的相應管腳的連接。 為了保護LED數碼管,在74LS47與LED之間添加限流電阻,以滿足數碼管的工作需要。 根據以上的設計思路,設計電路圖如圖3-5:
3.4 存儲單元硬件設計
存儲模塊的硬件設計比較簡單,由于AT89S52單片機為數據線與低8位地址線復用,需要使用地址鎖存芯片74LS373。上文中已敘述,使用32KRAM作為存儲芯片,因此選用與51系列兼容的62256隨機數據存儲器。 該模塊中使用的兩個芯片管腳功如圖3-6: 在62256中,A0~A14管腳為地址總線,共15位,尋址范圍可達到32kB;I/O0~I/O7為8位三態雙向數據接口;Vcc,Vss為電源和地;CS是片選接口,低電平有效;OE/WE分別是讀選通和寫選通數據輸入輸入線,低電平有效。
圖3-7 存儲的單元電路
74LS373引腳位置和功能與74LS273差異不大,區別在于其1腳是輸出使能(OE),是低電平有效,當1腳是高電平時,不管輸入3、4、7、8、13、14、17、18如何,也不管11腳(鎖存控制端,G)如何,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈現高阻狀態(或者叫浮空狀態);當1腳是低電平時,只要11腳(鎖存控制端,G)上出現一個下降沿,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈現輸入腳3、4、7、8、13、14、17、18的狀態。74LS273也可以作為地址鎖存器來用,作鎖存器時,對273來說,1(CLR)腳必須接高電平,ALE信號經過反相后接11腳(因為單片機的ALE信號是以下降沿方式出現)對373來說,1腳接低電平,保證使能,11腳直接接單片機的ALE信號。 按照常規的連接方法設計電路圖3-7如示。
3.5 時間單元硬件設計
DS1302因其較小的體積,占用I/O口資源少等特點,是常用的時間芯片。此次設計采用DIP-8封裝,管腳功能如圖3-8: 圖3-8 DS1302引腳圖

其中Vcc1為后備電源,Vcc2為主電源。在主電源關閉的情況下,也能保持時鐘的連續運行。DS1302由Vcc1或Vcc2兩者中電壓較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2供電,當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源接口,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數據傳輸。RST輸入有兩種功能:首先RST接通控制邏輯,允許地址/命令序列送入移位寄存存器;其次,RST提供終止單字節或多字節數據的傳送手段。當RST為高電平時,所有的數據傳送被初始化,允許對DS1302進行操作。如果傳送過程中RST置為低電平,則會終止此次傳輸,I/O引腳變為高阻態。上電運行時,在Vcc≥2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數據輸入輸出端。SCLK始終是輸入端,用來輸入串行時鐘信號。根據DS1302的特點,設計電路如圖3-9: 圖3-9 時間單元電路
在實際應用中,起控制、輸入輸出的三個端口上拉較弱,容因產生信號串擾,因此加上了上拉電阻與單片機P1口相連,加強信號的穩定性;為了保證時鐘的可靠性,在Vcc1上使用了CR2032紐扣電池作為備用電源,輸出電壓為3V,從而保證了系統掉電狀態下,時鐘能夠繼續保持運行。 3.6 A/D轉換單元硬件設計
A/D轉換模塊是系統中較為重要的一部分,由于涉及到模擬部分,A/D轉換器的結構較為復雜。
以下是ADC0804管腳及功能的介紹: /CS 芯片選擇信號。 /RD 外部讀取轉換結果的控制輸出信號。/RD為高電平時,DB0~DB7處于高阻抗:/RD為低電平時,數據才會輸出。 /WR 用來啟動轉換的控制輸入,相當于ADC的轉換開始(/CS=0時),當/WR由高電平變為低電平時,轉換器被清除;當/WR回到高電平時,轉換正式開始。 CLK IN,CLK R 時鐘輸入或接振蕩元件(R,C)頻率約限制在100kHZ~1460kHZ,如果使用RC電路則其振蕩頻率為1/(1.1RC)。 /INTR 中斷請求信號輸出,低地平動作。 VIN(+) VIN(-) 差動模擬電壓輸入。輸入單端正電壓時,VIN(-)接地;而差動輸入時,直接加入VIN(+) VIN(-)。 AGND,DGND 模擬信號以及數字信號的接地。 VREF 輔助參考電壓。 DB0~DB7 8位的數字輸出。 VCC 電源供應以及作為電路的參考電壓。 設計滿偏電壓為5V,則VREF輔助參考電壓為5V/2=2.5V,在10%的誤差范圍內,無需過分苛刻參考電壓的電壓源,由于系統中DC5V供電,采用兩只相同阻值電阻分壓,便能近似得到2.5V的參考電壓。 系統中使用10K電阻與150pF電容組成RC振蕩電路,根據技術手冊計算公式:  (3-1) 其振蕩頻率約為606kHz,滿足芯片要求。 另外,以阻抗型液位傳感器為模型,液位傳感器阻值變化與液位的高度是成正比的,因此需要將電阻值轉換為電壓值匹配A/D轉換器。常用的阻抗-電壓轉換法如歐姆法。由于被測阻抗兩端電壓正比于被測電阻,可把被測阻抗轉換為電壓測量。即  (3-2) 式中,  是轉化電壓,  恒定電流,  為被測電阻,  為比例系數。因此,液位高度的變化同樣正比于輸入電壓,故而A/D轉換器輸出的數據正比于液位高度。為了簡化設計調試過程,使用系統內部5V電壓作為模擬輸入,VIN(-)直接接地,通過接入傳感器分壓將阻抗轉換為電壓信號,接入電位器可實現模擬輸入。 根據以上參數分析,設計電路如圖3-11:
圖3-11 A/D轉換單元電路圖 3.7 通信單元硬件設計
MAX485僅有8個管腳,電路設計比較簡單。
RO引腳接到單片機串口接收引腳RXD(P3.0),DI引腳接到單片機串口發送引腳TXD(P3.1)。由于MAX485為半雙工通信方式,不能同時發送和接收數據,只能通過控制RE和DE引腳的狀態來進行發送數據和接收數據的轉換。為了節省單片機I/O口資源,將RE和DE引腳連在一起,輸入低電平時,MAX485處于接收狀態;輸入高電平時,其處于發送數據狀態。定義RE和DE連接在一起的網絡標號為E,接入單片機P1口,用于發送與接收的轉換。A,B端為發送接收差分信號端,一般需在A,B端之間加匹配電阻,匹配電阻為120Ω。 硬件電路如圖3-13: 圖3-13 串行通信模塊電路圖 3.8 其他外圍電路的設計
繼電器電路設計。由于使用單片機I/O口的驅動電流較弱,不滿足繼電器吸合電流參數的要求,所以需使用三極管驅動繼電器吸合。設計電路如圖3-14。 為了防止電源尖峰脈沖引發的噪聲干擾以及高頻信號線間的耦合干擾,在電源入口處及芯片頂端或底端,接入去耦電容,以增強系統的穩定性。 電源指示燈設計如圖3-15。 圖3-14 繼電器部分電路圖 圖3-15 電源指示燈電路圖
第4章系統軟件設計
4.1 系統軟件
4.1.1 系統軟件編譯開發環境
8051系類單片機共擁有111條系統指令,可實現51種基本操作。然而匯編語言指令卻有程序的可讀性低,程序開發人員的開發時間長與開發難度大,程序移植性差等缺點。 C語言是一種編譯型程序設計語言。它兼顧了多種高級語言的特點,并具備匯編語言的功能。用C語言來編寫目標系統軟件,會大大縮短開發周期,增加軟件的可讀性,便于改進和擴充。用C語言進行51系列單片機程序設計是單片機開發與應用的必然趨勢。 KEIL C51開發工具套件可用于匯編C語言程序、匯編源程序,鏈接和定位目標文件和庫,創建HEX文件以及調試目標程序。 本設計使用KEIL C51 μVision3為開發編譯環境,使用C語言編寫程序,實現各模塊功能設計。
4.1.2 系統主程序流程圖
系統主程序的功能主要是完成對單片機的初始化,設置警戒液位的上下限,實時顯示液位值以及鍵盤掃描等工作。主程序流程圖如圖4-1所示。
4.1.3 系統初始化
該模塊在系統上電開機時將系統端口、數據存儲區、標志位、指針、地址等賦予有含義的值。具體分為以下幾個模塊列表描述。
表4-1 初始化參數及含義 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 初始化系統時間為2011年1月1日 0時0分0秒星期六 其中sec,min,hr,date,mon,day,year 依次為秒、分、時、日、月、星期、年 | | | | | | | | | | | | | | | | | | | | | | | | | | 初始化過程中,調用A/D轉換模塊獲得首次液位數據,同時將其顯示,完成初始化工作 |
圖4-1 主程序流程圖 4.1.4 顯示與A/D轉換的數據處理
系統中,顯示輸出的要求為壓縮BCD碼,而A/D轉換輸入的數據是8位16進制碼,因此在實現顯示之前需要編碼的轉換。對8位A/D轉換器而言,其十六進制、相對滿偏電壓比率、相對電壓幅值的關系對應如表4-2:
表4-2 A/D轉換幅值數據關系對照表
綜上,電壓幅值與液位高度在數值上是相等的。為了通過LED直觀顯示液位高度,進行轉換的思路如下: 設輸入8位二進制數據為  ,  的商即為以分米為單位的液位高度數據,余數為以厘米為單位的數據,由于顯示位數僅為2位,最低位為分米,固使用“二舍三入”的辦法保留分米單位的整數倍數據  。為了將這個數據轉換為為壓縮BCD碼,再將  ,得到的商左移四位(相當于乘以16)為壓縮BCD碼高四位,余數為壓縮BCD碼低四位,二者相加,就是最終的結果。 顯示轉換部分程序簡略如下: uchar dis_transform(uchar num) { uchar ac, quotient, play, mid ; ac = num%5; quotient = (num-ac)/5; if(ac>2) quotient++; ac=quotient%10; mid=(quotient-ac)/10; play=ac+mid*16; return play; }
4.1.5 按鍵部分軟件設計
由于使用的按鍵較少,所以本文采用了獨立式鍵盤,即每個按鍵單獨占用一根口線。在程序查詢方式下,通過I/O端口讀入按鍵狀態,當有按鍵按下時,相應的端口變為低電平,這樣通過讀入I/O口狀態判斷是否有按鍵按下。查詢式鍵盤的程序流程圖如下:
下面給出鍵盤掃描的主程序,其分支程序省略。 void judge_key(void) {uchar Key_value=0; Key_value=P3&0x3c; /*讀取鍵值*/ switch(Key_value) { case 0x38:delay(30000); /*調用延時子程序*/ if(Key_value==(P3&0x3c)) /*進行判斷按鍵是否為干擾*/ {manage_key2();break;} /*調用子函數*/ else break; ……
case 0x1c:delay(30000); if(Key_value==(P3&0x3c)) {manage_key5();break;} else break; default:break; } }
4.1.6 顯示模塊的軟件設計
由于使用了靜態鎖存顯示,需要對顯示數據進行處理后進行鎖存控制。硬件設計中使用了74LS273鎖存數據。它的特點是在ALE輸入信號的下降沿到來時鎖存信號,因此首先置控制引腳高電平,延遲幾個時鐘周期待信號穩定,P0口輸出處理后的數據,同樣延遲幾個時鐘周期待信號穩定,控制引腳置低電平,數據鎖存,顯示輸出。 液位顯示部分程序簡略如下: display() { DIS=0; _nop_(); _nop_(); _nop_(); P0=dis_transform(prelq); _nop_(); _nop_(); _nop_(); DIS=1; }
4.1.7 A/D轉換模塊軟件設計
A/D轉換的控制變量有兩個,即adWR與adRD;上文中已說明了它的功能,故不再重復。該模塊分為兩個階段,第一階段是為A/D轉換啟動控制,通過adWR復位→延遲→置位完成。第二階段是數據的提取過程,由于P0口做輸入時的特性,首先軟件上將P0口寄存器置為0xFF,延遲適當時間后adRD復位,輸出A/D轉換結果,隨之通過P0口讀入數據,還原adRD為高,該階段結束。兩個階段中可加如適當的延遲,以滿足ADC0804 100ns的轉換時間。
4.1.8 電機控制模塊軟件設計
本設計采用單片機主控芯片控制繼電器外圍電路,用于驅動電機的啟動與關停。其程序流程圖如圖4-3所示。以下是液位檢測與電機控制部分源程序代碼: check_lq() { ad_start(); _nop_(); _nop_(); _nop_(); ad_read(); if(prelq>=uplq && key==1) { RELAY=1; key=0; makemark(1); } else if(prelq<=downlq && key==0) { RELAY=0; key=1; makemark(0); } }
4.1.9 通信協議及通信模塊軟件設計
1) 通信協議 為了使PC上位機與設備實現有意義的通信,設計了簡單的通信協議。 通信波特率設計為4800bps,過高的波特率在沒有檢糾錯方式的情況下易發生數據的丟失,過低的波特率會使傳輸變慢;8位有效數據位;無奇偶校驗位;1位停止位。傳送以字節為單位,發送命令與數據。通信協議命令控制字如表4-3。 軟件設計上,系統以查詢的方式檢測上位機的命令控制字,并及時進入各響應函數予以響應。通信檢測流程如圖4-4所示。
表4-3 通信協議 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 響應讀當前液位及電機狀態指令,發送2字節液位數據及電機狀態 |
圖4-4 通信檢測流程圖
2)通信模塊的控制 該模塊在控制上設計兩個函數,一個是發送函數,另一個是接收函數。由于采用半雙工的通信方式,需要控制變量E的置位與復位轉換發送與接收的狀態。 發送的過程:置E為1,使系統處于發送數據狀態;將數據寫入串行通信緩沖區SBUF; 等待,直到發送完畢,將E清0,返回接收狀態。 接收過程:清零E,使系統處于接收狀態;等待,直到接收完畢,讀串行通信緩沖區SBUF;繼續保持接收狀態。 這兩個子程序在其他函數需要進行串口通信時調用即可實現與上位機的串行通信。
4.1.10 時間模塊軟件設計
DS1302內部寄存器的定義直接影響著軟件的設計,大概可分為時間控制寄存器和內部RAM寄存器。其中: - CH: 時鐘停止位寄存器2的第7位12/24小時標志
CH=0 振蕩器工作允許bit7=1,12小時模式 CH=1 振蕩器停止bit7=0,24小時模式 WP=0 寄存器數據能夠寫入 AP=1 下午模式 WP=1 寄存器數據不能寫入 AP=0 上午模式 TCS=1010 使能涓流充電 DS=01 選擇一個二極管 TCS=其它 禁止涓流充電 DS=10 選擇兩個二極管 DS=00 或11, 即使TCS=1010, 充電功能也被禁止
表4-4 RS狀態標志及含義
由于DS1302數據傳輸方式為串行移位輸入輸出。地址、數據的寫操作流程是相同的。地址沒有讀操作。無論是讀還是寫,二者結構類似。讀寫的核心是產生SCLK移位信號與移位,讀操作是將數據從DS1302的I/O口移入單片機,寫操作是將數據從單片機移入DS1302時鐘芯片。我們最終處理的對象是時間數據或狀態數據,在獲取數據時,首先寫入地址,然后讀取數據;寫入數據時,先寫入地址,再輸出數據。完成時間的模塊軟件的設計。DS1302讀寫程序如下: ds_read() { uchar j; iodat=0x00; for(j=8;j>0;j--) { iodat=iodat>>1; odat7=IO_DATA; _nop_(); SCLK=1; _nop_(); SCLK=0; } }
ds_write(uchar ad) { uchar i; ddat=ad; for(i=8;i>0;i--) { IO_DATA=ddat0; _nop_(); SCLK=1; _nop_(); ddat=ddat>>1; SCLK=0; } }
51系列單片機中有片外存儲器讀寫的指令MOVX,無需用戶復雜的控制、輸入出處操作,故不再陳述。
4.2 上位機軟件設計
4.2.1 上位機軟件開發編譯環境
VC++是Microsoft(微軟)開發的在Windows平臺下構建32位應用程序的強大而又復雜的可視化開發平臺,它是世界上使用最多的開發工具之一。VC++的應用非常廣泛,從桌面應用程序到服務器端軟件,從系統軟件到應用軟件,從單擊程序到分布式應用程序,從圖形圖像處理到游戲的開發,VC++無處不在。 目前,在VC++發展歷程下已有了產生了多個版本。版本的更新帶來了更美觀的操作界面,更人性化的操作方式,增強了某些模塊的功能。同時,面向不同開發對象推出了多項產品。VC++6.0是Microsoft早期推出的產品,但是其以界面簡潔、占用資源少、操作方便、相關資料豐富等優點,仍為廣大程序開發人員使用。 本系統上位機軟件使用VC++ 6.0開發Windows平臺下的應用軟件。 上位機軟件設計要求: 上位機軟件是操作人員與設計系統交互的一個平臺。系統的大多數輔助功能通過上位機軟件與系統設備通信控制完成。上位機軟件在已有的系統軟硬件基礎上有較大的開發空間,強大功能的上位機軟件是整個系統不可缺少的一部分。因此,此次設計的上位機軟件具有如下功能: - 能夠與系統設備進行建立通信連接。
- 能夠實時監控系統設備獲取的液位、電機狀態等參數。
- 能夠獲取系統設備當前液位、系統時間、高低液位警戒線等參數。
- 能夠設置系統設備液位、系統時間、高低液位警戒線等參數。
- 能夠讀取系統設備記錄的數據。
- 能夠對已經獲取的數據進行顯示、保存、數據處理(包括數值分析及繪圖)。
4.2.2 上位機軟件的界面設計
直觀、人性的界面設計能夠為軟件使用者帶來很多的方便,同時也能夠為其留下深刻的印象。界面的設計與軟件的功能息息相關,具有良好的層次結構,使軟件使用者更容易上手。 在滿足上文上位機軟件的要求下,設計了一個主窗口,四頁標簽子窗口的設計。主窗口與各個標簽頁的子窗口的相關功能見表4-5:
表4-5 界面功能描述 | | | | | | | | | | | 啟動實時監控,初始時不可用,待串口打開成功且聯機成功后變為可用狀態。 | | | | | 在串口號選擇后,使用此按鈕串口硬件建立連接;在串口打開時,該按鈕顯示為 關閉串口,用來斷開串口的連接。 | | 該按鈕初始時不可用,在打開串口后為可用狀態,用來與系統設備進行連接,并顯示聯機狀態。 | | | 該按鈕初始時不可用,在打開串口且聯機成功后變為可用。用來讀取系統設備時間并顯示。 | | 該按鈕初始時不可用,在打開串口且聯機成功后為可用狀態。用來向系統設備寫入PC機當前時間。 | | 該按鈕初始時不可用,在打開串口且聯機成功后為可用。用來向系統寫入日期時間系列組合框選定時間。 | | 選定時間日期,用以設定指定時間按鈕時間的寫入。設定范圍為2000年1月1日0時0分至2099年12月31日23時59分之間。 | | | 該按鈕初始時不可用,在打開串口且聯機成功后為可用狀態。讀取系統設備當前液位及顯示。 | | 該按鈕初始時不可用,在打開串口且聯機成功后為可用狀態。讀取系統設備當前高低液位警戒線及顯示。 | | 該按鈕初始時不可用,在打開串口且聯機成功后為可用狀態。設置系統設備高低液位警戒線,設置數據由上下液位滑塊提供。 | | 確定上液位參數,設置范圍:大于當前下液位滑塊參數值,小于5米。 | | 確定下液位參數,設置范圍:小于當前上液位滑塊參數,大于0米。 | | | 該按鈕初始時不可用,在打開串口且聯機成功后為可用狀態。讀取系統設備記錄數據。完成后顯示接收記錄數據項目數。 | | 保存接收數據為文本文件,默認文件名為Rec**.txt。(**為數字,可自行增加) | | 變更文件保存路徑,默認路徑為C:\COMDATA\ | | | | | | |
界面設計效果如圖4-5所示。 圖4-5 上位機軟件界面效果圖
4.2.3 上位機串口通信功能的實現
在VC++中,最基本的串口操作是使用Windows API(Application Programming Interface)完成的。Windows 這個多作業系統除了協調應用程序的執行、分配內存、管理資源之外,它同時也是一個很大的服務中心,調用這個服務中心的各種服務(每一種服務就是一個函數),可以幫應用程式達到開啟視窗、描繪圖形、使用周邊設備等目的,由于這些函數服務的對象是應用程序(Application),簡稱API。通過使用API函數控制實現串口通信要復雜一些,但是可以進行深層次的使用。 微軟沒有為串口操作提供相應直接的MFC(Microsoft Foundation Classes)類。然而微軟提供了串口編程控件MSComm(Microsoft Communications Control)。MSComm是微軟公司提供的簡化Windows下串行通信編程的ActiveX控件,為應用程序提供了通過串行口收發數據的簡便方法。MSComm控件在編程時比較方便,程序員不必去花時間了解較為復雜的API函數。它提供一系列標準通信命令的使用接口,利用它可以建立與串口的連接,并可以通過串口連接到其他通信設備,發送命令,交換數據以及監視和響應串行連接中發生的事件和錯誤。 在本設計中,便使用了MSComm控件進行串口編程。 下面就程序中使用的MSComm控件的主要屬性作以說明。 功能:設置并返回端口號 說明:串口號設置返回范圍從1到16。 功能:在MSComm控件設置CommEvent屬性為ComEvRecevie并產生OnComm事件之前,設置并返回要接受的字符數。 說明:接收緩沖區接收到指定字符時差生OnComm事件。當指定字符設置為零,不產生OnComm事件。 功能:設置返回波特率、奇偶校驗、數據位、停止位參數。 說明:設置時以字符串常量或字符串指針傳遞參數。格式為“BBB,P,D,S” BBBB為波特率,P為奇偶校驗,D為數據位數,S為停止位數。 功能:從接受區內讀取數據。 說明:返回數據類型為VARIANT型變量,該屬性在串口沒有打開時不能用,在運行時只讀。 當InputMode屬性為0時,變量中含有String型數據; 當InputMode屬性為1時,變量中含有Byte型數據; 功能:想緩沖區寫數據,發送緩沖區當前數據。 說明:寫入緩沖區變量類型為VARIANT。發送二進制數據時,將Byte型數據放入VARIANT型變量中。 功能:打開或關閉串口,或者返回串口開、關狀態 說明:傳入參數為BOOL行,為TRUE時,打開串口;為FALSE時關閉串口。 串口的使用需要初始化,一般初始化需要以下幾個步驟: - 選擇串口號
- 選擇輸入方式
- 設置輸入輸出緩沖區大小
- 設置波特率、奇偶校驗、數據位數、停止位數參數
- 打開串口
- 設置接收緩沖區接收多少數據響應OnComm事件
- 設置當前接受區長度
- 先預讀緩沖區以清除殘留數據
在串口初始化完成根據設置響應OnComm事件,在OnComm事件處理函數中對數據進行相應的處理。 在此次上位機軟件中OnComm事件處理的思路是這樣的:由于采用的是主從式通信方式,在某個功能按鈕按下后,上位機使用SetOutPut函數發送指令,等待系統設備的響應,待接收到設備響應時,響應OnComm事件,根據返回的指令設置下一次響應OnComm事件的字符數或發送相應的數據。這樣設計的優點是結合系統軟件的設計,在沒有奇偶校驗等差錯控制的情況下,盡量保證發送、接收數據的完整性。避免因系統在數據處理時的數據丟失。經實踐證明,這樣的辦法是可行的。
4.2.4 上位機軟件中的數據處理
由于MFC下的編程設計許多不同的類,不同類中的成員變量與成員函數參數的類型不盡相同,因此在實現某些參數傳遞的過程中不免需要參數類型的轉換。這也是此次上位機軟件設計的難點之一。 在軟件的編寫過程中設計了以下幾個類或參數類型: CString類:CString是一種很有用的數據類型。它們很大程度上簡化了MFC中的許多操作,使得MFC在做字符串操作的時候方便了很多。在軟件中,CString主要用來可視化輸出。 Byte類型:Byte是字節類型,由于通信過程中有大量的二進制數據傳輸,因此Byte類型是必不可少的。 VARIANT類型:使用MSComm控件,在發送和接收數據時,都要用到VARIANT數據類型,VARIANT實際上是一種共用體,它由各種類型的的數據成員構成。 Byte轉CString:CString中保存的是字符的ASKII碼,如果直接將Byte強制轉換為CString是不行的,因為Byte保存的是二進制數據。強制轉換的結果在顯示時將出現亂碼。因此需要自行構造轉換函數。由于設備系統軟件中處理傳輸的數據為壓縮BCD碼,因此,采用移位+48地方法將Byte轉換為CString。 Byte轉VARIANT:Byte不能直接轉換為VARIANT以字符串形式發送數據。這里引入CbyteArray類與COleVariant類間接進行轉換,首先使用CbyteArry的成員函數Add()將Byte依次連接成CbyteArray字符串,使用ColeVariant類將CbyteArray強制轉換為VARIANT,進行串行發送。 VARIANT轉Byte:同樣,二者之間不能直接轉換,需要引入COleSafeArray類間接進行轉換。現將VARIANT強制轉換為COleSafeArray,再使用COleSafeArray的GetElement成員函數將數據轉換為Byte類型。這種轉換在接收數據時出現。 解決了類型的轉換問題,在發送、接收、數據顯示、數據運算等方面便可根據需要使用相應的數據類型了。
結論與展望
此次歷時一學期的設計研究工作,我受益匪淺。查閱了大量的中英文資料,做了許多驗證性試驗,為最終設計的完成打下了堅實的基礎。設計研究的過程也是一個學習的過程,其中使用的許多知識、技術是大學中未涉及的,這就需要在短時間內將這些知識、技術學以致用。在這里,我將此次設計中值得注意的地方加以總結。 以單片機為基礎的應用系統的開發是一個有序的過程,同時也是一個經驗積累的過程。一個有豐富開發經驗的開發人員在硬件方案討論,電路設計,軟件設計及調試的過程中能夠合理有效的開展各個階段的工作,減少錯誤的發生,縮短研發周期。因此,多看、多做能夠積累工程人員的經驗,提高技能,在產品研發的過程中能夠有所突破,有所創新。 電子技術應用廣,設計領域多。在熟悉本職的技術工作外,開發設計人員還需對其他各個行業有所了解,這樣才能使產品的功能更貼近實際,更合理,更行之有效。 技術的革新日新月異,為了保證開發產品成本更低、性能更強,開發更容易,周期更短,電子電路設計開發人員需要不斷地學習掌握新技術,與時俱進。 液位測量監控系統的設計的基本功能的實現,說明設計思路的可行性。然而,在本次設計中仍有許多不足。 由于時間和精力有限,在上位機軟件設計上,未對數據處理模塊進行進一步的實現與討論。由于專業知識有限,在此僅提出自己一些淺薄的看法。 先假設已有5項接收的數據,如:  設水箱上下液位間容積為V,水泵單位時間供水量恒定為m。設5項數據相鄰兩項間間隔時間為  ,  ,  ,  ,第一項至第五項總時間為T。m,V為已知量,t1~t4以及T可通過獲得的數據計算得到。設某段時間內平均耗水量為  ,  水泵啟動期間時平均耗水量為  ,  水泵停止期間平均耗水量為  。 通過記錄的數據,經過計算,便可獲得單位時間內平均耗水量。大量的數據,結合相應的理論算法,重中可以提取出有價值的分析與推測。 與此同時,根據以上舉例數據使用Matlab繪制圖形(這個工作使用VC++編程繪制亦可以完整)如圖5-1: 
圖5-1 Matlab繪制圖形 通過圖形,我們可以觀察直線的斜率,直觀的觀察出某一時間段耗水的快慢程度。 當然,這僅僅是一個十分簡單的舉例,計算、繪圖方法不一定科學有效,僅起啟發思維的作用。 在復雜的計算分析中,僅在水泵狀態變化時記錄數據往往是不夠的,一項數據的內容也不夠豐富。我們可在系統程序中,多增加若干個數據記錄點記錄數據。同時可增加實時高低液位間容積數據等內容,完善數據結構。 盡管系統設計在始終工作地情況下,沒有考慮現實中萬一掉電的數據保護問題,解決這個方法可以擴展大容量FLASH存儲器,即使掉電,已經保存的數據也不會丟失。 本設計中沒有加入系統冗余設計,結合實際情況,可增加看門狗電路,或使用單片機內部看門狗,防止程序跑飛。 人多水少,水資源時空分布不均,水土資源與經濟社會發展布局不相匹配,是我國的基本水情。宏觀上講,通過對液位變化的分析,統計某一地區用水量,對水資源的統籌調配是有意義的。微觀上說,根據統計出數據計算某一水箱在一定得統計規律中最佳的高低警戒線位置,從而減少水泵啟動次數,降低能源消耗,延長水泵受用壽命。 在“十二五”期間,水利政策正在進一步完善,水利基礎建設正在逐步走向現代化。在我黨科學發展觀的指導下,新型、環保、具有可持續發展設計思想的設備儀器正逐步被人們重視。
致 謝
本文檔是在高文根老師的悉心指導下完成的。導師淵博的專業知識,嚴謹的治學態度,精益求精的工作作風,誨人不倦的高尚師德,嚴以律己、寬以待人的崇高風范,樸實無華、平易近人的人格魅力對我影響深遠。本文檔從選題到完成,每一步都是在導師的指導下完成的,傾注了導師大量的心血。在此,謹向導師表示崇高的敬意和衷心的感謝!本文檔的順利完成,離不開各位老師、同學和朋友的關心和幫助。在此表示深深的感謝!
作者: 2011 年 06 月 15 日
參考文獻
[1]張毅剛,彭喜元,董繼成.單片機原理及應用[M].北京:高等教育出版社,2003. [2]李書旗,沈金榮.液位測量傳感器系統的設計與實現[J].計算機測量與控制,2009,17(11):2131-2133. [3]鄭偉建,夏揚,夏晴.自抗擾控制器在液位控制中的研究[J].計算機仿真,2009,26(10):190-193. [4]鐘曉強.基于單片機實現的液位控制器設計[J].現代電子技術,2009,32(2):51-53. [5]蔡黎.一種基于單片機的水位控制系統設計[J].儀器儀表用戶,2007,14(4):44-45. [6]陳霞,白小軍.基于單片機的液位監控系統[J].武漢理工大學學報,2007,29(3):3-5. [7]陳新昌,王萬章,李祥付.單片機在水位控制中的應用[J].中國科技信息,2006,(24):89-90,94. [8]蘇曉龍,王香婷.基于RS-485總線的數據采集系統[J].儀表技術與傳感器,2007,(12). [9]張寶偉.基于Lab VIEW的液位監控系統[D].哈爾濱:哈爾濱工業大學,2007. [10]張鳳蘭.液位測量與監控系統設計[D].北京:北方工業大學,2010. [11]任開春,涂亞慶.20余種液位測量方法分析[J].工業儀表與自動化裝置,2003,(5):12-16. [12]柳軍,等.基于AVR單片機的液面測量監控系統的設計[J].中國醫療設備,2009,24(12):27-30. [13]丁希順.單片微型計算機液位測量系統設計[J].安陽師范學院學報,2005(2):71-73. [14]老虎工作室編著.電路設計與制版:Protel 99SE入門與提高[M].北京:人民郵電出版社,2007. [15]彭軍.傳感器與檢測技術[M].西安:西安電子科技大學出版社,2003. [16]余永權.單片機在控制系統中應用[M].北京:電子工業出版社,2003. [17]劉鯤,孫春亮.單片機C語言入門[M].北京:人民郵電出版社,2008. [18]姚振東,朱勇.電容傳感器在液位測量中的應用[J].傳感器世界,2000,(9):4-7. [19] Maurice Wilkes. Progress in Computers [J]. IEEE Trans on PE, Feb 2004,Vol.3(NO.6):470-472. [20] Jae Hyeong Seo, Cang Ho Choi. A new simplified Space-Vector PWM Method for Three-level-Inverters [J].IEEE Trans on PE, July 2001,Vol.16(NO.4):545-550.
附 錄A系統電路原理圖
附 錄 B外文文獻及譯文
Progress in Computers Prestige Lecture delivered to IEE, Cambridge, on 5 February 2004 Maurice Wilkes Computer Laboratory University of Cambridge The first stored program computers began to work around 1950. The one we built in Cambridge, the EDSAC was first used in the summer of 1949. These early experimental computers were built by people like myself with varying backgrounds. We all had extensive experience in electronic engineering and were confident that that experience would stand us in good stead. This proved true, although we had some new things to learn. The most important of these was that transients must be treated correctly; what would cause a harmless flash on the screen of a television set could lead to a serious error in a computer. As far as computing circuits were concerned, we found ourselves with an embarass de richess. For example, we could use vacuum tube diodes for gates as we did in the EDSAC or pentodes with control signals on both grids, a system widely used elsewhere. This sort of choice persisted and the term families of logic came into use. Those who have worked in the computer field will remember TTL, ECL and CMOS. Of these, CMOS has now become dominant. In those early years, the IEE was still dominated by power engineering and we had to fight a number of major battles in order to get radio engineering along with the rapidly developing subject of electronics.dubbed in the IEE light current electrical engineering.properly recognised as an activity in its own right. I remember that we had some difficulty in organising a conference because the power engineers’ ways of doing things were not our ways. A minor source of irritation was that all IEE published papers were expected to start with a lengthy statement of earlier practice, something difficult to do when there was no earlier practice Consolidation in the 1960s By the late 50s or early 1960s, the heroic pioneering stage was over and the computer field was starting up in real earnest. The number of computers in the world had increased and they were much more reliable than the very early ones . To those years we can ascribe the first steps in high level languages and the first operating systems. Experimental time-sharing was beginning, and ultimately computer graphics was to come along. Above all, transistors began to replace vacuum tubes. This change presented a formidable challenge to the engineers of the day. They had to forget what they knew about circuits and start again. It can only be said that they measured up superbly well to the challenge and that the change could not have gone more smoothly. Soon it was found possible to put more than one transistor on the same bit of silicon, and this was the beginning of integrated circuits. As time went on, a sufficient level of integration was reached for one chip to accommodate enough transistors for a small number of gates or flip flops. This led to a range of chips known as the 7400 series. The gates and flip flops were independent of one another and each had its own pins. They could be connected by off-chip wiring to make a computer or anything else. These chips made a new kind of computer possible. It was called a minicomputer. It was something less that a mainframe, but still very powerful, and much more affordable. Instead of having one expensive mainframe for the whole organisation, a business or a university was able to have a minicomputer for each major department. Before long minicomputers began to spread and become more powerful. The world was hungry for computing power and it had been very frustrating for industry not to be able to supply it on the scale required and at a reasonable cost. Minicomputers transformed the situation. The single-chip computer At each shrinkage the number of chips was reduced and there were fewer wires going from one chip to another. This led to an additional increment in overall speed, since the transmission of signals from one chip to another takes a long time. Eventually, shrinkage proceeded to the point at which the whole processor except for the caches could be put on one chip. This enabled a workstation to be built that out-performed the fastest minicomputer of the day, and the result was to kill the minicomputer stone dead. As we all know, this had severe consequences for the computer industry and for the people working in it. From the above time the high density CMOS silicon chip was Cock of the Roost. Shrinkage went on until millions of transistors could be put on a single chip and the speed went up in proportion. Processor designers began to experiment with new architectural features designed to give extra speed. One very successful experiment concerned methods for predicting the way program branches would go. It was a surprise to me how successful this was. It led to a significant speeding up of program execution and other forms of prediction followed Equally surprising is what it has been found possible to put on a single chip computer by way of advanced features. For example, features that had been developed for the IBM Model 91.the giant computer at the top of the System 360 range.are now to be found on microcomputers Murphy’s Law remained in a state of suspension. No longer did it make sense to build experimental computers out of chips with a small scale of integration, such as that provided by the 7400 series. People who wanted to do hardware research at the circuit level had no option but to design chips and seek for ways to get them made. For a time, this was possible, if not easy Unfortunately, there has since been a dramatic increase in the cost of making chips, mainly because of the increased cost of making masks for lithography, a photographic process used in the manufacture of chips. It has, in consequence, again become very difficult to finance the making of research chips, and this is a currently cause for some concern. The Semiconductor Road Map The extensive research and development work underlying the above advances has been made possible by a remarkable cooperative effort on the part of the international semiconductor industry. At one time US monopoly laws would probably have made it illegal for US companies to participate in such an effort. However about 1980 significant and far reaching changes took place in the laws. The concept of pre-competitive research was introduced. Companies can now collaborate at the pre-competitive stage and later go on to develop products of their own in the regular competitive manner. The agent by which the pre-competitive research in the semi-conductor industry is managed is known as the Semiconductor Industry Association (SIA). This has been active as a US organisation since 1992 and it became international in 1998. Membership is open to any organisation that can contribute to the research effort. Every two years SIA produces a new version of a document known as the International Technological Roadmap for Semiconductors (ITRS), with an update in the intermediate years. The first volume bearing the title ‘Roadmap’ was issued in 1994 but two reports, written in 1992 and distributed in 1993, are regarded as the true beginning of the series. Successive roadmaps aim at providing the best available industrial consensus on the way that the industry should move forward. They set out in great detail.over a 15 year horizon. the targets that must be achieved if the number of components on a chip is to be doubled every eighteen months.that is, if Moore’s law is to be maintained.-and if the cost per chip is to fall. In the case of some items, the way ahead is clear. In others, manufacturing problems are foreseen and solutions to them are known, although not yet fully worked out; these areas are coloured yellow in the tables. Areas for which problems are foreseen, but for which no manufacturable solutions are known, are coloured red. Red areas are referred to as Red Brick Walls. The targets set out in the Roadmaps have proved realistic as well as challenging, and the progress of the industry as a whole has followed the Roadmaps closely. This is a remarkable achievement and it may be said that the merits of cooperation and competition have been combined in an admirable manner. It is to be noted that the major strategic decisions affecting the progress of the industry have been taken at the pre-competitive level in relative openness, rather than behind closed doors. These include the progression to larger wafers. By 1995, I had begun to wonder exactly what would happen when the inevitable point was reached at which it became impossible to make transistors any smaller. My enquiries led me to visit ARPA headquarters in Washington DC, where I was given a copy of the recently produced Roadmap for 1994. This made it plain that serious problems would arise when a feature size of 100 nm was reached, an event projected to happen in 2007, with 70 nm following in 2010. The year for which the coming of 100 nm (or rather 90 nm) was projected was in later Roadmaps moved forward to 2004 and in the event the industry got there a little sooner. I presented the above information from the 1994 Roadmap, along with such other information that I could obtain, in a lecture to the IEE in London, entitled The CMOS end-point and related topics in Computing and delivered on 8 February 1996. The idea that I then had was that the end would be a direct consequence of the number of electrons available to represent a one being reduced from thousands to a few hundred. At this point statistical fluctuations would become troublesome, and thereafter the circuits would either fail to work, or if they did work would not be any faster. In fact the physical limitations that are now beginning to make themselves felt do not arise through shortage of electrons, but because the insulating layers on the chip have become so thin that leakage due to quantum mechanical tunnelling has become troublesome. There are many problems facing the chip manufacturer other than those that arise from fundamental physics, especially problems with lithography. In an update to the 2001 Roadmap published in 2002, it was stated that the continuation of progress at present rate will be at risk as we approach 2005 when the roadmap projects that progress will stall without research break-throughs in most technical areas “. This was the most specific statement about the Red Brick Wall, that had so far come from the SIA and it was a strong one. The 2003 Roadmap reinforces this statement by showing many areas marked red, indicating the existence of problems for which no manufacturable solutions are known. It is satisfactory to report that, so far, timely solutions have been found to all the problems encountered. The Roadmap is a remarkable document and, for all its frankness about the problems looming above, it radiates immense confidence. Prevailing opinion reflects that confidence and there is a general expectation that, by one means or another, shrinkage will continue, perhaps down to 45 nm or even less. However, costs will rise steeply and at an increasing rate. It is cost that will ultimately be seen as the reason for calling a halt. The exact point at which an industrial consensus is reached that the escalating costs can no longer be met will depend on the general economic climate as well as on the financial strength of the semiconductor industry itself.。 Insulating layers in the most advanced chips are now approaching a thickness equal to that of 5 atoms. Beyond finding better insulating materials, and that cannot take us very far, there is nothing we can do about this. We may also expect to face problems with on-chip wiring as wire cross sections get smaller. These will concern heat dissipation and atom migration. The above problems are very fundamental. If we cannot make wires and insulators, we cannot make a computer, whatever improvements there may be in the CMOS process or improvements in semiconductor materials. It is no good hoping that some new process or material might restart the merry-go-round of the density of transistors doubling every eighteen months. I said above that there is a general expectation that shrinkage would continue by one means or another to 45 nm or even less. What I had in mind was that at some point further scaling of CMOS as we know it will become impracticable, and the industry will need to look beyond it. Since 2001 the Roadmap has had a section entitled emerging research devices on non-conventional forms of CMOS and the like. Vigorous and opportunist exploitation of these possibilities will undoubtedly take us a useful way further along the road, but the Roadmap rightly distinguishes such progress from the traditional scaling of conventional CMOS that we have been used to. Advances in Memory Technology Unconventional CMOS could revolutionalize memory technology. Up to now, we have relied on DRAMs for main memory. Unfortunately, these are only increasing in speed marginally as shrinkage continues, whereas processor chips and their associated cache memory continue to double in speed every two years. The result is a growing gap in speed between the processor and the main memory. This is the memory gap and is a current source of anxiety. A breakthrough in memory technology, possibly using some form of unconventional CMOS, could lead to a major advance in overall performance on problems with large memory requirements, that is, problems which fail to fit into the cache. Perhaps this, rather than attaining marginally higher basis processor speed will be the ultimate role for non-conventional CMOS. Shortage of Electrons Although shortage of electrons has not so far appeared as an obvious limitation, in the long term it may become so. Perhaps this is where the exploitation of non-conventional CMOS will lead us. However, some interesting work has been done.notably by Haroon Amed and his team working in the Cavendish Laboratory.on the direct development of structures in which a single electron more or less makes the difference between a zero and a one. However very little progress has been made towards practical devices that could lead to the construction of a computer. Even with exceptionally good luck, many tens of years must inevitably elapse before a working computer based on single electron effects can be contemplated.
微機發展簡史 IEEE的文檔 劍橋大學,2004/2/5 莫里斯 威爾克斯 計算機實驗室 劍橋大學
第一臺存儲程序的計算開始出現于1950前后,它就是1949年夏天在劍橋大學,我們創造的延遲存儲自動電子計算機(EDSAC)。 最初實驗用的計算機是由象我一樣有著廣博知識的人構造的。我們在電子工程方面都有著豐富的經驗,并且我們深信這些經驗對我們大有裨益。后來,被證明是正確的,盡管我們也要學習很多新東西。最重要的是瞬態一定要小心應付,雖然它只會在電視機的熒幕上一起一個無害的閃光,但是在計算機上這將導致一系列的錯誤。 在電路的設計過程中,我們經常陷入兩難的境地。舉例來說,我可以使用真空二級管做為門電路,就象在EDSAC中一樣,或者在兩個柵格之間用帶控制信號的五級管,這被廣泛用于其他系統設計,這類的選擇一直在持續著直到邏輯門電路開始應用。在計算機領域工作的人都應該記得TTL,ECL和CMOS,到目前為止,CMOS已經占據了主導地位。 在最初的幾年,IEE(電子工程師協會)仍然由動力工程占據主導地位。為了讓IEE 認識到無線工程和快速發展的電子工程并行發展是它自己的一項權利,我們不得不面對一些障礙。由于動力工程師們做事的方式與我們不同,我們也遇到了許多困難。讓人有些憤怒的是,所有的IEE出版的文檔都被期望以冗長的早期研究的陳述開頭,無非是些在早期階段由于沒有太多經驗而遇到的困難之類的陳述。 60年代的鞏固階段 60年代初,個人英雄時代結束了,計算機真正引起了重視。世界上的計算機數量已經增加了許多,并且性能比以前更加可靠。這些我認為歸因與高級語言的起步和第一個操作系統的誕生。分時系統開始起步,并且計算機圖形學隨之而來。 綜上所述,晶體管開始代替正空管。這個變化對當時的工程師們是個不可回避的挑戰。他們必須忘記他們熟悉的電路重新開始。只能說他們鼓起勇氣接受了挑戰,盡管這個轉變并不會一帆風順。 小規模集成電路和小型機 很快,在一個硅片上可以放不止一個晶體管,由此集成電路誕生了。隨著時間的推移,一個片子能夠容納的最大數量的晶體管或稍微少些的邏輯門和翻轉門集成度達到了一個最大限度。由此出現了我們所知道7400系列微機。每個門電路或翻轉電路是相互獨立的并且有自己的引腳。他們可通過導線連接在一起,作成一個計算機或其他的東西。 這些芯片為制造一種新的計算機提供了可能。它被稱為小型機。他比大型機稍遜,但功能強大,并且更能讓人負擔的起。一個商業部門或大學有能力擁有一臺小型機而不是得到一臺大型組織所需昂貴的大型機。 隨著微機的開始流行并且功能的完善,世界急切獲得它的計算能力但總是由于工業上不能規模供應和它可觀的價格而受到挫折。微機的出現解決了這個局面。 單片機 芯片每次的縮小,芯片數量將減少;并且芯片間的導線也隨之減少。這導致了整體速度的下降,因為信號在各個芯片間的傳輸時間變長了。 漸漸地,芯片的收縮到只剩下處理器部分,緩存都被放在了一個單獨的片子上。這使得工作站被建成擁有當代小型機一樣的性能,結果搬倒了小型機絕對的基石。正如我們所知道的,這對于計算機工業和從事計算機事業的人產生了深遠的影響 自從上述時代的開始,高密度CMOS硅芯片成為主導。隨著芯片的縮小技術的發展,數百萬的晶體管可以放在一個單獨的片子上,相應的速度也成比例的增加。 為了得到額外的速度。處理器設計者開始對新的體系構架進行實驗。一次成功的實驗都預言了一種新的編程方式的分支的誕生。我對此取得的成功感到非常驚奇。它導致了程序執行速度的增加并且其相應的框架。 同樣令人驚奇的是,通過更高級的特性建立一種單片機是有可能的。例如,為IBM Model 91開發的新特性,現在在單片機上也出現了。 Murphy定律仍然在中止的狀態。它不再適用于使用小規模集成芯片設計實驗用的計算機,例如7400系列。想在電路級上做硬件研究的人們沒有別的選擇除了設計芯片并且找到實現它的辦法。一段時間內,這樣是可能的,但是并不容易。 不幸的是,制造芯片的花費有了戲劇性的增長,主要原因是制造芯片過程中電路印刷版制作成本的增加。因此,為制作芯片技術追加資金變的十分困難,這是當前引起人們關注的原因。 半導體前景規劃 對于以上提到的各個方面,在部分國際半導體工業部門的精誠合作下,廣泛的研究與開發工作是可行的。 在以前美國反壟斷法禁止這種行為。但是在1980年,該法律發生了很大變化。預競爭概念被引進了該法律。各個公司現在可以在預言競爭階段展開合作,然后在規則允許的情況下繼續開發各自的產品。 在半導體工業中,預競爭研究的管理機構是半導體工業協會。1972年作為美國國內的組織,1998年成為一個世界性的組織。任何一個研究組織都可加入該協會。 每兩年,SIA修訂一次ITRS(國際半導體科學規劃),并且逐年更新。1994年在第一卷中引入了“前景規劃”一詞,該卷由兩個文檔組成,先于1992年,在1993年提交。它被認為是該規劃的真正開始。 為了推動半導體工業的向前發展,后續的規劃提供最好的可利用的工業標準。它們對于15年內的發展做出了詳細的規劃。要達到的目標是每18個月晶體管的集成度增加一倍,同時每塊芯片的價格下降一半,即Moore定律。 對于某些方面,前面的道路是清楚的。在另一方面,制造業的問題是可以預見的并且解決的辦法也是可以知道的,盡管不是所有的問題都能夠解決。這樣的領域在表格中由藍色表示,同時沒有解決辦法的,加以紅色。紅色區域往往稱為紅色磚墻。 規劃建立的目標是現實的,同時也是充滿挑戰的。半導體工業整體上的進步于該規劃密不可分。這是個令人驚訝的成就,它可以說是合作和競爭共同的價值。 值得注意的是,促進半導體工業向前發展的主要的戰略決策是相對開放的預競爭機制,而不是閉關鎖國。這也包括大規模圓晶片取得進展的原因。 1995年前,我開始感覺到,如果達到了不可能使得晶體管體積更小的臨界點時,將發生什么。懷著這樣的疑惑,我訪問了位于華盛頓的ARPA(美國國防部)指揮總部,在那,我看到1994年規劃的復本。我恍然大悟,當圓晶片尺寸在2007年達到100納米時,將出現嚴重的問題,在2010年達到70納米時也如此。在隨后的2004年的規劃中,當圓晶片尺寸達到100納米時,也做了相應的規劃。不久半導體工業將發展到那一步。 從1994年的規劃中我引用了以上的信息,還有就是一篇提交到IEE的項目為CMOS終結點的文檔和在1996年2月8號的Computing上討論的一些項目。 我現在的想法是,最終的結果是表示一個存在可用的電子數目從數千減少到數百。在這樣的情況下,統計波動將成為問題。最后,電路或者不再工作,或者達到了速度的極限。事實上,物理限制將開始讓他們感覺到不能突破電子最終的不足,原因是芯片上絕緣層越來越薄,以致量子理論中隧道效應引起了麻煩,導致了滲漏。 相對基礎物理學,芯片制造者面對的問題要多出許多,尤其是電路印刷術遇到的困難。2001年更新2002年出版的規劃中,陳述了這樣一種情況,照目前的發展速度,如果在2005年前在關鍵技術領域沒有取得大的突破的話,半導體業將停止不前。這是對“紅色磚墻”最準確的描述。到目前為止是SIA遇到的最麻煩的問題。2003年的規劃書強調了這一點,通過在許多地方加上了紅色,指示在這些領域仍存在人們沒有解決的制造方法問題。 到目前為止,可以很滿意的報道,所遇到的問題到及時找到了解決之道。規劃書是個非凡的文檔,并且它坦白了以上提到的問題,并表示出了無限的信心。主要的見解反映出了這種信心并且有一個大致的期望,通過某種方式,圓晶體將變的更小,也許到45納米或更小。 然而,花費將以很大的速率增長。也許將成為半導體停滯不前的最終原因。對于逐步增加的花費直到不能滿足,這個精確的工業上達到一致意見的平衡點,依賴于經濟的整體形勢和半導體工業自身的財政狀況。 最高級芯片的絕緣層厚度僅有5個原子的大小。除了找到更好的絕緣材料外,我們將寸步難行。對于此,我們沒有任何辦法。我們也不得不面對芯片的布線問題,線越來越細小了。還有散熱問題和原子遷移問題。這些問題是相當基礎性的。如果我們不能制作導線和絕緣層,我們就不能制造一臺計算機。不論在CMOS加工工藝上和半導體材料上取得多么大的進步。更別指望有什么新的工藝或材料可以使得半導體集成度每18個月翻一番的美好時光了。 我在上文中說到,圓晶體繼續縮小直到45納米或更小是個大致的期望。在我的頭腦中,從某點上來說,我們所知道的繼續縮小CMOS是不可行的,但工業上需要超越它。 2001年以來,規劃書中有一部分陳述了非傳統形式CMOS的新興研究設備。一些精力旺盛的人和一些投機者的探索無疑給了我們一些有益的途徑,并且規劃書明確分辨出了這些進步,在那些我們曾經使用的傳統CMOS方面。 內存技術的進步 非傳統的CMOS變革了存儲器技術。直到現在,我們仍然依靠DRAM作為主要的存儲體。不幸的是,隨著芯片的縮小,只有芯片外圍速度上的增長——處理器芯片和它相關的緩存速度每兩年增加一倍。這就是存儲器代溝并且是人們焦慮的根源。存儲技術的一個可能突破是,使用一種非傳統的CMOS管,在計算機整體性能上將導致一個很大的進步,將解決大存儲器的需求,即緩存不能解決的問題。 也許這個,而不是外圍電路達到基本處理器的速度將成為非傳統CMOS.的最終角色。 電子的不足 盡管目前為止,電子每表現出明顯的不足,然而從長遠看來,它最終會不能滿足要求。也許這是我們開發非傳統CMOS管的原因。在Cavendish實驗室里,Haroon Amed已經作了很多有意義的工作,他們想通過一個單獨電子或多或少的表現出0和1的區別。然而對于構造實用的計算機設備只取得了一點點進展。也許由于偶然的好運氣,數十年后一臺基于一個單獨電子的計算機也許是可以實現的。
以上圖文的Word格式文檔下載(內容和本網頁上的一模一樣,方便大家保存):
基于單片機的液位控制系統設計-精品.doc
(1.02 MB, 下載次數: 56)
2018-5-19 18:13 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|