房間電器綜合控制系統
Control system of the electrisic in the room
摘 要
本設計的目的是尋找一種方法來實現房間內多種電器的綜合控制,采用了單片機與紅外遙控相結合的方式,制作出一種房間電器綜合控制系統。系統的核心由AT89S52單片機和紅外收發裝置構成,整個系統包括發射部分和接收部分。發射部分以AT89S52單片機為中心控制芯片,外圍擴展了矩陣鍵盤,紅外發射電路以及電源電路;接收部分則以AT89S52單片機為核心,外圍擴展了紅外接收電路,按鍵顯示電路,電源電路以及與按鍵相應的繼電器控制家用電器電路。紅外信號的發射采用脈沖個數編碼的方式,根據不同的按鍵設定不同的編碼,通過軟件實現解碼,從而控制相應電器的開和關。通過硬件和軟件相結合的方式,此設計實現了手持遙控器,按下一個按鍵,相應的電器接通電源開始工作,并顯示按鍵號碼,再按一下,該電器切斷電源停止工作。此設計具有操作碼個數可隨意設定,編程靈活多樣等優點。
關鍵詞:單片機;紅外;編碼解碼
ABSTRACT
The aid of this ariticle is to search a way to
Key Words:MCU;Inframed;
目 錄
1 引言 1
1.1智能家居的發展 1
1.2微處理器的功能及其應用 1
1.3通信技術的發展及其前景 1
2 系統原理和部分方案比較 3
2.1系統原理綜述 3
2.2課題總體要求 5
2.3 系統各部分方案比較 6
2.3.1控制方式比較 6
2.3.2 信號處理方案 7
2.3.3 微處理器的選擇 8
3 系統硬件設計方案 9
3.1 系統工作原理流程 9
3.2 系統主控制器選擇 12
3.2.1 單片機(MCU)概述 12
3.2.2 MCU芯片簡介及器件選擇 14
3.2.3 AT89S52簡單介紹說明 15
3.3 信號的發射接收電路 9
3.3.1 紅外發射電路設計 9
3.3.2 紅外接收電路設計 9
3.4 遙控鍵盤電路 10
3.4.1 按鍵安裝方法 9
3.4.2 矩陣掃描 9
3.4.3 健功能 9
3.5數碼顯示電路 10
3.5.1 驅動電路 9
3.5.2 數字顯示電路 9
3.6 繼電器控制家電輸出電路 9
3.6.1 繼電器原理 9
3.6.2 控制電路 9
4 程序控制 11
4.1系統軟件介紹 11
4.2總程序流程 11
4.3程序 11
4.4系統整體電路圖 11
5 開發環境及程序下載 3
5.1 開發環境 3
5.2 程序下載 5
5.2.1系統下載 6
5.2.2 外加軟件下載 7
6 系統測試及數據記錄 9
6.1 軟件測試 9
6.1.1 功能仿真 12
6.2.2 14
6.2 硬件測試及仿真 12
6.3 系統數據記錄 12
7 課題相關技術發展前景 3
結 論 12
參考文獻 13
附錄1: 程序 14
附錄2: 系統電路圖 14
附錄3: 系統PCB圖 14
致 謝 15
1 引言
當今社會是數字化的社會,也是數字集成電路廣泛應用的社會。而數字集成電路本身也在不斷地進行更新換代,不斷的進步創新。它由早期的電子管、晶體管、小中規模集成電路,發展到超大規模集成電路(VLSIC,幾萬門以上)以及具有許多特定功能的專用集成電路(ASIC)。并且在現代高新電子產品的設計和生產中,數字集成電路技術和現代電子設計技術是相互促進、相互推動又相互制約的兩個技術環節。前者的進步就表現在大規模集成電路加工技術,即半導體工藝技術的發展上;而后者的核心則是EDA(電子設計自動化)技術,它使得設計者的工作僅限于軟件的方式,即利用硬件描述語言(本文只涉及到VHDL硬件描述語言)和EDA軟件來完成對系統硬件功能的實現,避免了硬件電路在搭接時所出現的問題。
1.1 ASIC技術促使可編程邏輯器件發展
隨著微電子技術的發展,設計與制造集成電路的任務已經不再由某個大規模的生產廠商來獨自承擔了,更甚至于系統設計師們都愿意自己設計專用集成電路(ASIC)芯片,而且希望ASIC的設計周期盡可能短,最好是在實驗室里就能設計出合適的ASIC芯片,并且立即投入實際應用之中。也就是這種現場可用的思想促成了現場可編程邏輯器件(FPLD)的出現,其中應用最廣泛的當屬現場可編程門陣列(FPGA)和復雜可編程邏輯器件(CPLD)了[1]~[2]。
對于電子系統設計來說,在以前的很長一段時間里,設計某個電子控制系統大多數情況下是用指令少、功能單一的單片機,但是用其開發出來的硬件系統及其電路結構龐大而復雜、成本高、經常容易發生電路方面的故障,并且由于系統是針對某一個特定的功能而設計的,對今后系統的升級和功能擴展都非常困難。顯然這樣的單片機在某種程度上已經不能再滿足設計要求了。而CPLD(或FPGA)芯片作為一種新興的設計器件,在技術上與單片機相比有很多優勢,光說其實現的工藝就有反熔絲技術、EPROM技術和EEPROM技術等。實現了電可擦除、電可改寫和紫外線擦除,其輸出結構是可編程的邏輯宏單元,因而它的設計具有很強的靈活性。這些PLD器件的一個共同特點,就是可以實現速度特性較好的邏輯功能,可見用這種CPLD芯片進行開發設計時,只需要增加少量的外圍電路,并結合可控制它的豐富的指令集合,就可以獲得功能強大的控制系統。又由于這種芯片內含有可下載程序固定接口和EEPROM、Flash。因此,開發出來的系統具有可升級性(內部程序可擦除,進行重新燒寫),用戶可以根據需要對其進行功能擴展,既可以縮短系統開發周期,又可以減少開資。
利用EDA技術(CPLD/FPGA)進行電子系統設計的最終目標,是完成專用集成電路ASIC的設計和實現,而在電子科技高速發展的當今,再加上上述CPLD/FPGA(復雜可編程邏輯器件/現場可編程門陣列)的各種優點,它以成為實現這一途徑的主流器件。其特點是直接面向用戶,具有極大的靈活性和通用性,使用方便,硬件測試和實現快捷,開發效率高,成本低,上市時間短,技術維護簡單,工作可靠性能好。例如Altera公司最新生產的MAXII系列PLD ,這是一種基于FPGA(LUT)結構,集成配置芯片的PLD,在本質上它就是一種在內部集成了配置芯片的FPGA,但由于配置時間極短,上電就可以工作,所以對用戶來說,感覺不到配置過程,可以與傳統的PLD一樣使用,加上容量和傳統PLD類似,所以Altera公司把它歸作PLD。 還有像Lattice公司的XP系列FPGA,也是使用了同樣的原理,將外部配置芯片集成到內部,在使用方法上和PLD類似,但是因為容量大,性能和傳統與FPGA相同,也是LUT架構,所以Lattice仍把它歸為FPGA之列。總之,由于以上的各種突出優點,CPLD或FPGA芯片已成為大多數電子設計工程師進行電子設計的首選器件。
1.2 CPLD(FPGA)實現系統控制
把以CPLD(或FPGA)芯片為核心,作為主控制器開發出來的各種測量及控制系統,作為家用電子產品的一個組成部分嵌入某個系統中,使其更具智能化、擁有更多功能,便于人們操作和使用,從而更具時代感,這也是家用電子產品的發展方向和趨勢所在。有的家用電器領域要求增加顯示、報警和自動診斷等功能。這就要求我們生產的產品具有自動控制系統。而所謂的自動控制功能的實現主要是由計算機來完成的,可用的方法主要有兩種:離線控制和在線控制。離線控制包括利用計算機實現對控制系統總體的分析、設計、仿真及建模等工作;在線控制就是以計算機代替常規的模擬或數字控制電路,使控制系統“軟化”,讓計算機位于其中,并成為控制系統、測試系統及信號處理系統的一個組成部分。這類控制由于需要有像計算機一樣的智能控制系統身處其中,因此對控制系統有體積小、功耗低、價格低廉以及控制功能強大等要求,而為了滿足這些要求,就應當使用可編程邏輯器件的具體芯片來實現。例如:本文所研究的課題就是利用CPLD器件(EP1K100QC208-3)為主控芯片,來實現系統的整體功能的。
然而,由于CPLD與控制對象聯系密切,所以設計一個系統,不但對CPLD芯片的性能要求高,而且對設計者的要求也很高。他們不但要熟練掌握CPLD知識,而且還要了解控制對象,懂得傳感器技術,具有一定的控制理論知識等。還拿本文所研究的課題為例,除了利用CPLD具體芯片外,還用到了傳感器,A/D轉換器以及放大顯示電路等,才實現完成了系統總體功能——檢測室溫顯示,并實現報警。
2 系統原理和部分方案比較
一個完整的系統,必須經過系統整體原理分析和各部分的方案比較,選擇最佳最優的實現方法,才能完美而立于不敗之地。
2.1 系統原理概述
當今社會,隨著現代測量、控制和自動化技術的發展,信息采集的方法越來越多,而在所有信息的采集途徑中,用的最普遍、最基礎的,就是傳感器。如果把電子計算機比作人的“大腦”,那么傳感器則酷似人的“五官”(視覺、嗅覺、味覺、聽覺和觸覺)了。其重要性則可一目了然,不過對傳感器的要求可要比人的五官的要求高得多,并且傳感器的種類也在日益增多,涉及到的范圍也日益變廣。如AD公司生產的模擬電壓輸出型的溫度傳感器TMP35/36/37,它主要應用于環境控制系統、過熱保護、工業過程控制、火災報警系統、電源系統監控以及儀器散熱風扇的控制等。還有NATIONAL SEMICONDUCTOR生產的與微處理器相結合的測溫及溫度控制、管理的溫度測量控制器LM80,它主要應用于個人計算機及服務器的硬件及系統的溫度監控、辦公室設備、電子測試設備等。以及MAXIN公司生產的主要應用于CPU冷卻控制的PWM風扇控制器及遙控溫度傳感器MAX1669。因此,測量外界溫度的方法有很多種,然而,由于熱敏電阻及其放大電路受到環境的影響,在不同的條件下會出現不同的測溫偏差,而TMP35/36/37,LM80,MAX1669這些傳感器的造價又太高,在相同條件下,由于測溫精度、處理精度等多方面的因素,不同的通道也會出現不同的偏差,因此必須采用一種靈活的修正方式,這便用到了電壓型的溫度傳感器LM35D。它的線性好(10mV/℃),寬量程(0--100℃),精度高(+0.4℃ ),低成本,而且采集到的是電壓型信號,易于處理,使得電路簡單實用[3]。
如上所述,本課題的設計就是利用溫度傳感器LM35D來采集溫度信號的,隨后將采集到的微弱模擬電壓信號經過放大器OP07放大十倍后送入A/D轉換器(ADC0804),將其轉換為數字信號后,再傳給CPLD芯片(這里用到的型號是EP1K100QC208-3),即該系統的核心部件,通過硬件描述語言(VHDL)編程進行信號處理,然后經過預先設置好的端口將數字信號傳送給74LS138譯碼器以及驅動器CD4511和報警器,使LED八段數碼管動態顯示室溫和實現報警。經實驗調試,用該方法對0℃--100℃范圍的溫度測量時,測量誤差為+0.4℃,可靠性好、抗干擾性能強。采用CPLD芯片作為核心監控器對外界溫度進行測量,這樣,既可以降低對溫度傳感器和放大電路的要求,從而降低成本,又可以針對不同外部環境或不同通道對溫度顯示的顯示監控設定進行靈活修改,實現系統的升級。
2.2 課題總體要求
(1) 利用電壓型溫度傳感器LM35D作為信息采集器件采集室溫并產生10mv/℃的電壓信號;
(2) 利用OP07放大器將微弱的電壓信號放大預先設置好的倍數,以驅動后面電路;
(3) 利用A/D轉換器將放大后的模擬信號轉換為數字信號,供系統處理;
(4) 將數字信號送入CPLD芯片進行處理;
(5) 時時顯示轉換后的室溫,進行監控;
(6) 溫度超過警戒溫度時,進行報警。
2.3 系統各部分方案比較
2.3.1 信號采集方案比較
在目前,信號采集有多種方法,而可用于本系統的溫度的信號采集大致有三種方法,下面分別介紹各種方法的優缺點,討論它們的可行性。
方案一:采用熱敏電阻采集室內溫度信號。用此方法可滿足40℃--90℃的測量范圍,但熱敏電阻的精度、重復性及其可靠性都比較差,并且對于檢測小于1℃的溫度信號時,誤差大、不可靠,所以此方法不可取。
方案二:利用電流型溫度傳感器AD590采集室內溫度信號。AD590具有較高精度和重復性(重復性優于0.1℃),其良好的非線性可以保證優于+0.2℃的測量精度,利用其重復性較好的特點,通過非線性補償,可以達到+0.2℃測量精度。
電流型溫度傳感器AD590是二端器件,它采用了一種獨特的電路結構,利用最新的薄膜激光微調技術作最后的定標,因而具有很高的精度。且其靈敏度為1uA/K,具有很寬的工作電源電壓范圍和很高的輸入阻抗。作為一種高阻電流源,我們不需要考慮其傳輸線上的電壓信號損失和噪聲干擾的問題,因此特別適合做遠距離測量或控制應用。出于同樣的道理,AD590也特別適用于多點溫度測量系統,而不必考慮選擇開關或CMOS多路轉換開關所引入的附加電阻造成的誤差。
但是,由于AD590采集到的信號是電流信號,所以在將數據傳給ADC0804模數轉換器之前,必須先把電流信號轉變成電壓信號,在此期間不但造成了一定的信號損失,又影響了精度,這就要求我們在A/D轉換器前設計一個信號保持電路。這樣一來,用AD590來檢測、采集室溫的電路就顯得很復雜。而且,在高精度測溫電路中,還必須考慮AD590的輸出電流不被分流影響,因此也放棄使用本方案。
方案三:采用電壓型溫度傳感器LM35D采集溫度信號。LM35D是精密集成電路溫度傳感器,它的輸出電壓與攝氏溫度線性成比例,比例關系是10mV/℃。并且,LM35D無需外部校準或微調來提供±0.4℃的常用的室溫精度,就把信號損失減少到了最小。而又因為它的線性性極好,所以編程時很容易實現。因此,對于本課題來說,選用此方案。
2.3.2 模擬信號數字化處理方案
由于整個系統主要是處理數字信號而進行工作的,所以當由傳感器采集到模擬信號后,必須先進行模數轉換才能夠使整個系統運行工作。而對于模數轉換器件的選擇,本課題用的是ADC0804,即系統采用ADC0804模數轉換器作為模擬信號數字化的器件,進行數字化處理,為系統提供數字信號量的。
2.3.3 信號處理方案
本系統利用CPLD芯片進行信號處理。將經過A/D轉換器轉換后的數字信號送入CPLD芯片,進而根據已經編好的程序(程序見附錄)處理溫度的數字信息,進一步時時顯示室內溫度和報警,達到時時監控的目的。也就是說采用CPLD芯片作為系統信號處理主控制器。
2.3.4 顯示部分方案比較
方案一:以前的電子工程師們進行電子設計時,大部分都使用單片機通過串口通信線TXD、RXD(P3.0、P3.1),再加移位寄存器74LS164來實現LED的顯示功能,如圖2-1所示。這樣一來,使得每一個LED數碼管都需要一片74LS164,使得電路比較麻煩,并且與單片機接口的編程程序不易實現,所以本課題放棄使用次方案。
RXD
TXD
圖2-1 通過串口通信線TXO 、RXD實現LED顯示功能
方案二:近年來,國內外有許多基于串行總線方式的LED顯示器接口芯片不斷出現,這些芯片與另一種功能更強、速度更快的控制芯片連接,可實現以往單片機不能實現的多種功能,并且具有占用I/O口線少,進行功能擴展方便,使用起來十分容易等特點,這就是用EDA技術來開發的CPLD芯片,因此本系統選用此方案。
在選用CPLD芯片后,再選用3個共陰極的8段數碼顯示管(TOD5201AE)來實現動態顯示,用CPLD已經編好的程序來驅動一片CD4511和一片74LS138就可以控制段碼和位選,以實現溫度顯示的功能。
2.3.5 系統報警方案設計
在設計開始時,想要的系統功能之一,是想讓在室溫達到并超過警戒溫度時,系統可實現報警,給人以提示。在此,可用一個風鳴器和一個三極管放大電路來實現報警功能。具體的電路分析,詳述見下文中。
3 系統整體硬件設計方案
3.1 系統工作原理流程
根據課題設計要求可知,該系統需要利用電壓型溫度傳感器采集室內溫度,產生10mV/℃的電壓信號,隨后,將該信號送入放大器進行放大,再把此放大后的信號送給A/D轉換器進行模數轉換,之后由CPLD芯片編程處理,即通過CPLD芯片編程設定上下限報警溫度,并顯示轉換后的室溫。具體流程圖如圖3-1所示。
圖3-1 系統流程圖
在溫度信號采集電路中采用方案三,使用線性成比例(10mV/℃)的電壓型溫度傳感器采集信號,之后,將微弱電壓信號經過整個硬件與軟件系統放大100倍后的電壓信號使其顯示就是室溫。首先,使采集到的電壓信號經過放大電路放大十倍后送入A/D轉換器(ADC0804)。在此,將ADC0804的基準電壓設為2.5V,由于它為8位轉換器,其內部轉換關系將輸入信號擴大50倍后,才將模擬信號轉換為數字信號。之后,將轉換后的數字信號傳給CPLD芯片(EP1K100QC208-3),通過VHDL編程將擴大了500倍的信號縮小5倍,即可將輸入的微弱電壓信號最終放大100倍,現在的電壓值便是室溫值。然后經過設置的I/O口將數字信號傳送給74LS138譯碼器以及驅動器CD4511和報警器,使LED八段數碼管動態顯示室溫和實現報警,從而實現整個系統的設計功能。
3.2 傳感器及放大電路
3.2.1 電壓型溫度傳感器LM35D
如圖3-2所示,是一般傳感器的工作原理方框圖。
圖3-2 傳感器原理框圖
本系統的設計所用的傳感器為LM35D,它是LM35系列的一種,是精密集成電路溫度傳感器,其輸出電壓與攝氏溫度線性成比例(10.0mV/℃),如圖3-3所示其關系[3]。
U(V)
40
30
20
10
0 1 2 3 4 5 T(℃)
圖3-3 傳感器溫度電壓關系曲線
因而LM35系列有優于用開爾文作為標準的線性溫度傳感器,在額定工作溫度范圍內精度為±3/4℃。其密封適合用TO-46晶體管封裝,也適合用塑料TO-92晶體管封裝。其特性如下:
(1) 直接用攝氏溫度校準,線性+10.0mV/℃比例因數;
(2) 在-55~+150℃額定范圍內保證0.5℃精度(在+25℃時);
(3) 適用于遙控設備,因晶體片微調而低費用;
(4) 工作在4~30V,小于60μA漏泄電流,有較低自熱,在靜止空氣中0.08℃;
(5) 只有±1/4℃非線性值,低阻抗輸出,1mA負載時0.1Ω。
LM35系列中的LM35D的工作電壓為4V~20V,故可直接用溫控電路的電源,但要加一個隔離二極管及平滑電容C。LM35D測溫范圍0℃~100℃,輸出電壓直接與攝氏溫度成比例,靈敏度為10mV/℃。將其輸出電壓接2V直流電壓擋數字萬用表,可讀出的分辨率為0.1℃的溫度讀數。例如:室內溫度是28.7℃,那么其轉換關系是
28.7℃×10 mV/℃=287mV (3.1)
則表上的讀數就為287mV,即反映室內溫度:28.7℃。
集成溫度傳感器LM35D是把測溫傳感器與放大電路做在一個硅片上,形成一個集成溫度傳感器,它的外形與封裝如下圖(見圖3-4)。
LM35D是一種輸出電壓與攝氏溫度成正比例的溫度傳感器,精度為±1℃。最大線性誤差為±0.5℃,靜態電流為80uA。該器件如塑封三極管(TO-92)。該溫度傳感器最大的特點是使用時無需外圍元件,也無需調試和較正(標定)。如下圖所示(圖3-5)是LM35D的典型測溫電路及其轉換電路的接口電路。
圖3-5 LM35D的典型測溫電路及與轉換電路接口
在圖3-5中,經LM35D輸出端輸出的信號經過了由75 的電阻和1uF的電容構成的積分濾波網絡,可濾除其他的雜質信號,使采集到的與溫度成比例(10mV/℃)的電壓信號更加穩定,之后再將溫度信號經過放大器送給ADC0804進行轉換。
3.2.2 放大電路設計
圖3-6 系統的放大電路部分
如圖3-6所示,為系統的放大電路部分,電壓型溫度傳感器LM35D采集到的室溫為很微弱的模擬量。例如:若室溫為26℃,那么經LM35D采集后得到的電壓信號為0.26 V,這樣一個微弱的電壓信號,既不利于處理又容易產生誤差且不穩定。所以我們需要將此信號在整個硬件系統和軟件系統中放大100倍(如前所述),之后將其送入驅動電路,即可在LED數碼管上顯示室溫,達到目的。如圖所示,在放大電路中,取R6為1K是為了好計算放大倍數,R5用20K的滑動變阻器使這個0.26 V的微弱電壓信號可以在0--20的放大倍數范圍內可調,在此,將其放大10倍,因此需要將R5調至10K。這樣經放大器OP07放大后從第6腳輸出的電壓信號就為放大十倍的2.6V。這樣就足以驅動后面的電路進行工作,達到系統設計的目的。
3.3 A/D轉換電路部分分析
3.3.1 A/D轉換器
隨著數字技術,特別是計算機技術的飛速發展與普及,在現代控制、通信及檢測領域中,為提高系統的性能指標,對信號的處理無不廣泛的采用了數字計算機。但由于系統的實際對象往往都是一些模擬量(如溫度、壓力、位移、圖象等),所以要使計算機或數字儀表能識別和處理這些信號,首先就必須將這些模擬信號轉變為數字信號,這樣就需要一種能將模擬信號轉化為數字信號的電路——模數轉換器(A/D轉換器)。而為了將時間和幅值都連續的模擬信號轉化為時間和幅值都離散的數字信號,一般要經過四個過程[5],如圖3-7所示。
圖3-7 模數轉換流程
而在實際電路中,上述四個過程中有的是合并進行的。例如,取樣和保持、量化和編碼,往往都是在轉化過程中同時實現的。具體介紹如下:
(1) 取樣與保持
取樣是將隨時間連續變化的模擬量轉換為時間離散的模擬量(這里要注意的是取樣以后信號依然是模擬量)。取樣的過程示意圖如圖3-8 所示。
圖3-8 取樣過程
圖中的傳輸門受取樣信號S(t)的控制,在S(t)的脈寬τ期間,傳輸門導通,輸出信號Vo(t)為輸入信號Vi(t),即Vo(t)=Vi(t),而在(Ts-τ)期間,傳輸門關閉,輸出信號Vo(t)=0。可見,取樣就是在一個固定的時間點上采集一個模擬信號的具體值,而要將取樣得來的模擬信號轉換為數字信號得經過一段時間,所以有必要將取樣電路每次取得的信號通過保持電路保持一段時間,以便給后續的量化編碼提供一個穩定值,即使用保持電路使整個系統更加協調穩定。
(2) 量化與編碼
數字信號不僅在時間上是離散的,而且在幅值上也是不連續的。任何一個數字量的大小只能是某個規定的最小數量單位的整數倍。為了將模擬信號轉化為數字量,在A/D轉化過程中,還必須將取樣-保持電路的輸出電壓,按某種近似方式歸化到與之相應的離散電平上。這一轉化過程稱為數值量化,簡稱量化。量化后的數值最后還必須用某一個代碼表示出來,這個過程就叫做編碼。經編碼得到的代碼就是A/D轉換器的最后輸出量,就是表示模擬信號大小的數字信號量。
3.3.2 A/D轉換器的選擇
近年來,A/D轉換器隨著半導體技術的不斷發展而日新月異,各種性能優異的A/D轉換器層出不窮。早期的A/D轉換器與CPU接口一般采用并行總線方式,現在一些采用I2C、SPI 總線的新型A/D轉換器相繼被國外一些公司推出,極大地豐富了A/D轉換器的種類。
A/D轉換器的位數與一個應用系統前向通道中被測量對象的精度有關。一般情況下,由于客觀條件的影響,電路設計中A/D轉換器的分辨率要高于被測量對象的信號最低分辨率。假如,我們要測量一組電源電壓,其電壓的輸出范圍是0—10V,如要求精確到0.1V,即分辨率為0.1/10=1%,那么在實際應用中我們選擇分辨率為1/256=0.4%的8位A/D轉換器便可滿足要求。當然,A/D轉換器的位數越多,分辨率也就越高,但是成本也就隨之愈高。因此在實際電路的設計中,選擇A/D轉換器也不能一味強調位數,應該在滿足系統性能指標的前提下,追求最高的性能價格比。
目前,被廣泛使用的A/D轉換器種類很多,從接口協議上分為串行和并行兩種方式。串行接口的A/D轉換器占用較少的CPU外部I/O資源,主要采用的協議有SPI和I2C等方式,程序設計較并行接口略顯繁瑣,典型的芯片有TI公司的TLC2543\1543等等。并行接口的A/D轉換器芯片目前仍占多數,流行的有ADC0804、ADC0809 、AD574等等。而本課題的設計使用的是ADC0804來完成模擬信號向數字信號轉變的。下面就來介紹A/D 轉換芯片的硬件設計方法。
3.3.3 A/D轉換電路
圖3-9 A/D轉換電路
如圖3-9 所示,是A/D轉換器ADC0804的硬件設計電路,其中ADC0804是逐次逼近型8位8通道A/D模數轉換器。它的主要技術指標是:8位分辨率,±1/2LSB的轉換精度,轉換時間典型值為100us(時鐘頻率為640KHZ時),電源電壓為單電源5V。其引腳中DB0—DB7為8位數字信號輸出端(即轉換后的數字量),VCC為電源端,GND為接地端,VREF為參考電壓輸入端,CLK是時鐘信號輸入端,第6腳接的是放大器送出的溫度信號量。
信號從ADC0804的第6腳送入,R3與C3通過ADC0804的19腳(CLKR)接地與4腳(CLK)向內部電路提供時鐘信號,以給ADC0804一個正確的時序,使其正確工作。
如果從量程為0--100℃LM35D采集到最高溫度100℃,那么由于LM35D靈敏度為10mV/℃以及經過放大器OP07后放大十倍,則傳到ADC0804輸入腳VI+的電壓信號為10V,再經過ADC0804內部的輸入電壓與基準電壓的公式(如下)放大50倍(此50倍為數字量的50倍):
(Ui/VREF*2)*256 (3.2)
其中“*”符號表示乘的意思,Ui表示為輸入電壓,即VI+,VREF為ADC0804內部設定的基準電壓(隨時可以更改)。如下圖(圖3-10)是A/D轉換過程:
Ve
Vx
(1000)(0100)(0110)(0111)
t
圖3-10 A/D轉換過程原理圖
在硬件設計中,我們將基準電壓(VREF)調至2.5V,將VI+=10V代入上公式則可得ADC0804的輸出為10V電壓的256/5≈50倍,將其送入電路的信息處理部分—CPLD芯片,再利用軟件的方法將結果除以5便可達到最終的放大目的,之后送入驅動電路使其顯示出最大溫度為100℃。由于A/D轉換器的分辨率為1/256=0.4%,我們將最高溫度設為100℃的話,可得它的測量精度為100/256=0.4℃。那么如果將最高溫度設為50℃,我們可得它的溫度范圍為0--50℃,測量精度為50/256=0.2℃。為了提高精度,我們將最高報警溫度設為50℃。
還如前面的例子,如果室溫為26℃,那么經放大電路放大后傳到ADC0804輸入角VI+的電壓信號為2.6V,將其代入上公式則可得ADC0804的輸出為2.6V電壓的256/5≈50倍的二進制數,將其送入系統的主控制器,我們再利用軟件的方法將結果除以5便可得送入驅動電路使其顯示出的溫度為26℃。在這個轉換電路中,ADC0804起著兩個作用,一是將模擬量轉換為二進制的數字量,二是將此輸入信號在放大電路放大10倍后再放大50倍。
ADC0804由CPLD芯片預設控制端啟動,它與CPLD的接口電路工作的流程圖如圖3-11所示。
經ADC0804轉換后的二進制數字信號通過DB0---DB7端口傳CPLD芯片的預設輸入端,供后面編程控制,使其縮小5倍,然后顯示室溫。CS端為ADC0804的片選信號端,低電平有效。 、 分別為寫、讀端,將其與CPLD芯片的寫、讀端相連。INTR端為中斷口,當其為高電平時表示轉換完成,之后,送中斷信號給單片機,等待CPLD芯片發出信號接收轉換好的數據。可見,在整個系統中,A/D轉換電路起著至關重要的作用。它的設計好壞直接影響著整個系統的工作性能。
圖3-11 ADC0804工作流程圖
3.4 系統主控制器選擇
3.4.1 CPLD(FPGA)概述
集成電路的發展大大促進了EDA的發展,從而使電路設計從傳統的“自上而下”的設計方法轉變為“自下而上”的設計方法。設計師們都希望自己設計的芯片能夠反映自己的思想,并且能夠及時的投入生產使用,這都有益于可編程邏輯器件(PLD)的出現。
現在應用最廣泛的PLD主要是現場可編程門陣列(FPGA,Field programmable Gate Array)和復雜可編程邏輯器件(CPLD,Complex Programmable Logic Device)[7]~[9]。
可編程邏輯器件(PLD,Programmable Logic Device)是ASIC的一個重要分支,其發展歷程大致經歷了以下幾個階段:
(1) 20世紀70年代,熔絲編程的PROM和PLA器件是最早的可編程邏輯器件。
(2) 20世紀70年代末,對PLA進行了改進,AMD公司推出PAL器件。
(3) 20世紀80年代初,Lattice公司發明電可擦寫的,比PAL使用更靈活的GAL器件。
(4) 20世紀80年代中期,Xilinx公司提出現場可編程概念,同時生產出世界上第一塊
FPGA芯片,并且,Altera公司推出EPLD器件,較之Gal器件具有更高的集成度,可用電或紫外線擦除。
(5) 20世紀80年代末,Lattice公司又提出系統可編程技術,推出一系列具備系統可編
程能力的CPLD器件,能實現更復雜的邏輯功能。
(6) 20世紀90年代,可編程邏輯集成電路技術進入飛速發展時期,器件的可用邏輯門超過百萬門,并出現了內嵌發展功能模塊(如加法器、乘法器、RAM、CPU核、DSP核、PLL等)的SOPC。
總的說來,PLD器件是廠家作為一種通用型器件生產的半定制電路,用戶可通過對器件編程實現所需要的邏輯功能。并且它是一種用戶可配置的邏輯器件,其成本比較底,使用靈活,設計周期短,而且可靠性高,風險小,因而很快得到普及應用,發展非成迅速。從20世紀70年代發展到現在,PLD已經在各個方面的工藝上取得了突破和不斷發展。經歷了從PROM、PLA、PAL、GAL到CPLD(FPGA)、ispLSI等高密度的PLD發展過程。其中PAL和GAL都所于簡單的PLD,它們結構簡單,設計靈活,對開發軟件的要求低,但是規模都很小,難以實現復雜的邏輯功能,所以隨著技術的發展,種種弊端也暴露出來,因此,CPLD等一系列的復雜PLD迅速的發展起來,并向著高密度,高速度,低功耗以及結構體系更靈活、通用范圍更廣的方向發展。
復雜可編程邏輯器件(CPLD,復雜PLD。統稱將集成度達到一定程度的PLD器件叫做CPLD。),是20世紀80年代末Lattice公司提出的在線可編程(isp,In system programmability)技術以后,于20世紀90年代初出現的。它是在EPLD的基礎上,采用E2CMOS工藝制作發展起來的。與EPLD相比,它增加了內部連線,對邏輯宏單元和I/O口都有重大的改進。CPLD至少包括三個部分:可編程邏輯宏單元,可編程I/O單元和可編程內部連線。典型的器件有Altera的MAX7000系列,Xilinx的7000和9500系列,Lattice的PLSI/ispLSI系列和AMD的MACH系列。
隨著數字邏輯系統功能復雜化程度的不斷加大,集成芯片正朝著超大規模、高密度的方向發展。與此同時,人們發現一個超大規模的數字時序系統芯片在工作時從時間軸上來看,并不是每一瞬間系統的各個部分都在工作,而系統是各個局部模塊功能在時間鏈上的總成。同時還發現,基于SRAM編程的CPLD/FPGA可以在外部邏輯的控制下,通過存儲于存儲器中不同的目標系統數據的重新下載,來實現芯片邏輯功能的改變。正是基于這個稱之為靜態系統重構的技術,有人設想利用芯片的這種分時復用特性,用較小規模的CPLD(或FPGA)芯片來實現更大規模的數字時序系統。在研究過程中人們卻發現常規的SRAM的CPLD只能實現靜態系統重構。因為該芯片功能的重新配置大約需要數毫秒到數十毫秒量級的時間;而在重新配置數據的過程中,舊的邏輯功能失去,新的邏輯功能尚未建立,電路邏輯在時間軸上斷裂,系統功能無法動態連接。要實現高速的動態重構,要求芯片功能的重新配置時間縮短到納秒量級,這就需要對CPLD的內部組成結構進行革新。
在早期的CPLD中,由結構相同的邏輯陣列組成宏單元模塊。對一個邏輯陣列單元來說,輸入項由專用的輸入端和I/O端組成,來自I/O端口輸入項,可通過I/O結構控制模塊的反饋選擇,也可以由I/O端直接輸入,也可以是本單元輸出的內部反饋。所有的輸出項都經過緩沖器驅動,并輸出其輸入的原碼及補碼。可以看出,早期CPLD中的邏輯陣列結構與PAL、GAL中的結構極為類似,只是用EPROM單元取代了PAL中的熔絲和GAL中的EEPROM單元。和GAL一樣,CPLD可實現擦除和再編程功能。在基本結構中,每個或門有8個固定乘積項,也就是說邏輯陣列單元中的或門陣列是固定的、不可編程的,當遇到復雜的組合邏輯時,需要的乘積項可能超過8個,這就要用兩個或多個邏輯單元來實現,致使器件的利用率不高。為此,目前的CPLD在邏輯陣列單元結構方面做了很大的改進,主要表現在以下兩個方面:
(1) 乘積項數目不同的邏輯陣列單元
對于復雜的邏輯器件來說,邏輯函數往往需要附加乘積項。以便利用其他宏單元以提供以提供所需的邏輯資源,還可以利用其結構中具有的共享和并聯擴展乘積項。達到盡可能的少占資源,并且盡可能的加快工作速度的目的。
(2) 具有兩個或項輸出的邏輯陣列單元
每個邏輯陣列單元可以共享相鄰單元中的乘積項,也可以使本單元中的兩個或項都可用于相鄰的兩個單元中,這樣,既提高了器件內部各單元的利用率,又可實現更為復雜的邏輯功能。
CPLD的I/O口控制模塊,根據器件的類型和功能的不同,可有各種不同的結構形式,但基本上每個模塊都由輸出極性轉換電路、觸發器和輸出三態緩沖器三部分及于它們相關的選擇電路組成。各個生產廠家可以根據不同的用途和使用對象的不同進行選擇生產,以求達到最佳的生產和使用目的。
3.4.2 CPLD芯片簡介及器件選擇
CPLD(或FPGA)的主要生產廠家是Altera公司、Xilinx、Lattice等,各自都有自己的產品特點。
(1) Altera公司CPLD的系列型號
Altera公司多年來一直在PLD行業保持著領先地位,并在我國有著較多的用戶,該公司的PLD器件具有高性能、高集程度、高性價比、低功耗等特點。主要型號有膠合(glue)邏輯類的MAX系列,低價位的ACEX系列、高速FLEX系列、高密度的APEX系列等。而后來又推出的EPM系列和EPF系列的集程度更是大大提高,性能更加優越。
在眾多的產品系列中,Altera公司推出的新型低成本CPLD器件—ACEX系列的主要特點為:密度范圍大,從1萬到10萬門(56,000到257,000系統門);配備鎖相環(PLL)技術,與64位、66MHZ的PCI兼容;產品系列從原1.8v擴展至2.5v;提供系統速度超過115MHZ的高性能功能。所以,ACEX系列是許多設計者進行設計的優選器件。
(2) Xilinx公司CPLD的系列型號
Xilinx公司是在1985年首次推出CPLD器件的,隨后不斷的推出新的集程度更高、速度更快、價格更低的CPLD器件。其主要的CPLD器件以CoonRunner和XC9500兩大系列為代表。其中XC9500系列被廣泛應用于通信、網絡和計算機等產品中。該系列器件采用快閃存技術,比E2CMOS技術工藝的速度更快,功耗更低。目前,Xilinx公司XC9500系列CPLD的tPD可達4ns,宏單元數可達288個,系統時鐘可達200MHZ。XC9500系列器件支持PCI總線規范和JTAG邊界掃描測試功能,具有在系統可編程(isp)能力。該系列有XC9500、XC9500XV和XC9500XL三種類型,內核電壓分別為5V、2.5V、3.3V,也就如前所說,其功耗很低。
(3) Lattice公司CPLD的系列型號
Lattice公司是最早推出PLD器件的公司,20世紀90年代以來,Lattice公司首先發明了isp技術,并將E2CMOS與isp技術相結合,使CPLD的應用領域有了巨大的發展。其產品主要有ispLSI、ispMACH等系列。集程度在1萬門到2.5萬門之間。工作電壓在3.3V,而其I/O口引腳可兼容5V、3.3V和2.5V等接口標準。可用于高位的數字系統中,準確率很高。
其中ispLSI系列器件又分為四個系列:ispLSI1000系列、ispLSI2000系列、ispLSI6000系列和ispLSI8000系列。都可以滿足復雜程度很高的邏輯功能設計。
根據以上所述,各個廠家生產的CPLD芯片可謂各有各的優點,功能都很齊全,而在本系統的設計中,對CPLD芯片的選擇是選用了Altera公司ACEX1K系列的EP1K100QC208-3。因為本人在平時的實踐訓練中用的多數都是此芯片,有較多的關于EP1K100QC208-3的資料可以查詢,對EP1K100QC208-3的大多性能都有了一定的了解,用起來可以得心應手,并且與其他的CPLD芯片比起來,EP1K100QC208-3這一型號的優點也很多,功能也很強大,故選擇該器件。
3.4.3 EP1K100QC208-3簡單介紹說明
EP1K100QC208-3(管腳圖見附錄2)是Altera公司生產的ACEX1K系列中的一個型號。它一共有208個管腳,其中I/O口有124個,GNDIN有20個,VCCIN有11個,VCCIO有14個,VCC_CLK和GND_CLK各有一個,另外還有時鐘、數據輸入、專用程序下載口等一共是37個。在此芯片上有如此多的I/O口,其目的就是為了方便用戶可以任意定義信號的輸入輸出口,從而實現復雜的邏輯功能。這也是CPLD的復雜功能所在,更是EP1K100QC208-3的用途所在。
3.5 報警電路
圖3-12 報警電路
由于由CPLD芯片的預設輸出口發出的電壓信號非常微弱,因此,需要將其放大,才能帶動蜂鳴器使其工作。R8用一個滑動變阻器使這個電壓信號的放大倍數可調,此報警電路的輸入引腳由CPLD芯片輸出端給,我們在系統中設的下限報警溫度為10℃,上限報警溫度為30℃。在軟件設計中,當由ADC0804采集到的溫度超出10—50℃的范圍,令CPLD芯片的固定輸出口為“1”,則可實現蜂鳴器報警,如圖3-12所示。
3.6 譯碼、驅動電路
圖3-13 譯碼、驅動電路
如圖3-13中所示,譯碼器74LS138與共陰極LED數碼管驅動器CD4511是由CPLD的輸出口控制的,其中,P1、P2、P3與譯碼器的輸入相接,C為高位,A為地位。對四個共陰極數碼管實現位選。在一個控制測試系統中,對共陰極LED顯示器的控制采用“接地方式”,即通過控制LED的“GND”引腳的電平高低來達到選通的目的,該引腳即通常所說的位選線。例如:我們想要讓第三位數碼管工作,那么需要使L3的位選線接低電平來達到目的,也就是使譯碼器輸出中的Y3為0,其他為1。本系統中,我們采用動態顯示方式,因此,需要不斷的片選,而共陰極LED顯示器的發光二極管負極接地,當發光二極管的正極為高電平時,發光二極管被點亮。這就需要用CD4511來驅動,例如:要顯示0字形時,需要LED顯示器的8個發光二極管“a,b,c,d,e,f,g”七個字段中的“a,b,c,d,e,f”亮,那么,就需要使CD4511輸出中的A、B、C、D、E、F為高電平。這是CD4511芯片內部已設定好的,表3-1為CD4511芯片內部的二進制與輸入與輸出的對應關系列表。
表3-1 CD4511輸入輸出邏輯對應關系
D C B A dp G F E D C B A
0 0 0 0 0 0 1 1 1 1 1 1
0 0 0 1 0 0 0 0 0 1 1 0
0 0 1 0 0 1 0 1 1 0 1 1
0 0 1 1 0 1 0 0 1 1 1 1
0 1 0 0 0 1 1 0 0 1 1 0
0 1 0 1 0 1 1 0 1 1 0 1
0 1 1 0 0 1 1 1 1 1 0 0
0 1 1 1 0 0 0 0 0 1 1 1
1 0 0 0 0 1 1 1 1 1 1 1
1 0 0 1 0 1 1 0 0 1 1 1
3.7 顯示電路(LED)
3.7.1 數碼管的選擇
在一個控制應用系統中,顯示是人機通道的重要組成部分。目前廣泛使用的顯示器件主要有LED(二極管顯示器)、LCD(液晶顯示器)和VFD(真空熒光管)等。LED顯示器造價低廉,與核心控制設備接口方便靈活,技術上易于實現,但只能顯示阿拉伯數字和少數字符,通常用于對顯示要求不高的場合。LCD和VFD顯示器成本較高,但可以顯示包括漢字在內的多種字符,甚至是復雜的圖形和曲線,并且耗電極省,可廣泛用于各種終端設備,如PDA、手機、觸摸屏等等。本文主要介紹LED顯示方式,及本系統的選擇顯示方式。
LED顯示器的基本結構和原理:LED顯示器采用發光二極管顯示字段。一般的控制電路系統中經常采用的是八段顯示器,即LED顯示器中有8個發光二極管,代表“a,b,c,d,e,f,g”七個字段和一小數點“dp ”。再者LED有共陰和共陽兩種結構。共陰極LED顯示器的發光二極管負極接地,當發光二極管的正極為高電平時,發光二極管被點亮。而共陽極LED顯示器正好相反,發光二極管正極相連,當二極管的負極為低電平時,發光二極管被點亮。
在一個電子控制系統中,對共陰極LED顯示器的控制采用“接地方式”,即通過控制LED的“GND”引腳的電平高低來達到選通的目的,該引腳即通常所說的位選線。共陽極LED顯示器控制方式則相反。兩種控制方式中,共陰極LED控制方式受系統器件功耗限制,只能用在小尺寸的LED顯示器中。對于大尺寸LED顯示器的控制(如大屏幕計時器)一般使用共陽極方式。
LED的顯示和接口方式:LED數碼管的顯示有靜態和動態兩種方式。從接口上分又有并行和串行兩種,這要視接口和驅動芯片而定。常用的并行LED接口芯片有8155、8255 以及鍵盤和顯示專用芯片8279等。而與并行方式相比,串行方式僅占用CPU少數幾根I/O口線便可實現LED顯示功能。在靜態顯示方式中,多個LED顯示器中的每一個段代碼都與一個獨立的8位并行口連接,公共端則根據LED的種類(共陰或共陽)連接到“GND”或“VCC ”上。假如有四位靜態LED顯示電路中,那么每個LED的段代碼都要有獨立的并行8位I/O口線控制,可以在同一時間內顯示不同的字符。靜態LED顯示方式的優點是編程容易,但功耗大,占用CPU的I/O口線較多,成本也較高。因此在電子設計系統中較多使用的還是動態顯示方式。所謂動態顯示,實質上就是各個不同的LED顯示器按照一定的順序輪流顯示。它利用了人眼的“視覺暫留現象”,只要多個LED顯示器的選通掃描速率足夠快,人眼就覺察不到數碼管的閃爍現象。在動態掃描方式下,所有LED段選線并聯在一起,只由一個8位的I/O口控制,而各個LED的位選線則由另外一組I/O口控制。動態LED顯示方式的優點是功耗較低,占用CPU的I/O線少,外圍接口簡單,所以本系統便是采用了動態LED顯示方式。
3.7.2 顯示電路設計
由于測量室溫的精度為0.2℃,因此,顯示中會出現小數點,在這里我們選用四個數碼管,第一個備用,因為本系統選用的測溫元件為LM35D,測溫范圍為0~100℃,當不需要很大精度時,可以通過軟件將顯示范圍調到0~+100℃,也就是可以將上限報警溫度設置為100℃,這樣,顯示最高溫度再加上小數點后一位,就是四位顯示。為簡單起見,顯示電路中的第三個數碼管中的dp位我們可以將其接個200 的電阻之后接+5V電壓,這樣,當片選L3時,L3中的小數點便總是亮的。
4 程序控制
對于一個電子控制系統來說,程序設計及其控制,對系統性能的優劣和功能體現是相當重要的。程序開始的初始化,控制信號的輸入輸出及其時序的先后,以及系統邏輯功能在程序中體現,都必須經過非常嚴密思考,才能在程序上微妙不差的表現出來,下面簡單介紹一下本課題程序的設計思想和功能。
4.1 系統軟件介紹
對于一個控制系統來說,軟件部分就是其“思維”過程,就是其工作時序關系的體現,并且規定該系統的功能實現,而本設計的軟件部分主要用來實現的功能如下:
(1) 輸出信號控制ADC0804啟動;
(2) 將數字信號進行BCD調整,輸出代表十進制數的信號;
(3) 設定測量溫度的上下限,超過此溫度報警;
(4) 調整系統的放大倍數;
(5) 控制譯碼管及驅動器實現數碼管動態顯示;
4.2 總程序流程圖
利用程序軟件來完成對系統放大倍數的調整,并轉換數據值和判斷報警界限,實現系統功能。
A/D轉換器的始能端、轉換標志、轉換結束標志以及數據輸出始能端的信號(電壓的高低電平)都是由程序控制CPLD芯片給出的,并且經程序設定標準來轉換數據和實現高低溫度報警。整體流程圖如圖4-1所示,
圖4-1 總程序流程圖
4.3 程序[11]
本課題的程序編制,主要是針對模數轉換器ADC0804的控制和數據轉換后的判斷(也就是說高低溫度的判斷和顯示數據的判斷)來進行的。
根據ADC0804的工作特點和時序關系(如圖4-2所示),將其工作過程分為7個狀態,即用狀態機的方式來實現完成對ADC0804的控制。比如:現在ADC0804正處在狀態一的工作模式,等系統程序判斷后,就會自動轉換到狀態二的工作模式下進而等待下一次判斷和轉換,如此反復工作,等到7個狀態重復一遍時,程序就會控制CPLD芯片輸出轉換后的數字數據給數碼管進行顯示。與此同時,轉換后的數據與程序設定的警戒溫度值進行比較判斷,可實現報警。這整個過程就完成了系統的整個預設功能——時時顯示、高低溫度報警。主控程序見附錄1。
cs
WR
INTR
RD
高阻
數據輸出 讀數
圖4-2 ADC0804工作時序圖
4.4 系統整體電路圖(見附錄3)
本系統的整體電路圖設計所依據的原理,在本文第二部分的第一小節有比較詳細的
介紹,此處就不再贅述了。但是,值得一提的,就是系統在工作時一定要注意它的時序關系,錯誤的時序不但不會出結果,更甚至在有時會毀掉真個系統。所以,在工作前,一定要對ADC0804的工作特性有比較深的了解,才能使系統的工作性能既可靠有安全。
5 開發環境及程序下載
5.1 開發環境
針對目前電子設計領域的CPLD(FPGA)的應用,各個芯片生產廠家都開發了不同的開發仿真軟件,即開發環境各有各的不同。而針對本系統應用的具體芯片(EP1K100QC208-3)的開發環境,是Altera公司開發的MAX+plusII系列軟件,其全稱為Multiple Array Matrix and Programmable Logic User System[12]。它具有原理圖輸入和文本輸入兩種輸入手段,利用該工具配備的編輯、編譯、仿真、綜合和芯片編程等功能,將設計的電路圖或電路描述程序變成基本的邏輯單元寫入到可編程的芯片中(本系統是EP1K100QC208-3),做成ASIC芯片,可實現預期功能。其特點有以下幾點:
(1) 可在多種平臺下運行。可基于Windows NT3.51、Windows98或Windows2000操作系統下運行,也可在Sun SPAC Stations、HP9000Series 700/800等工作站上運行。
(2) 提供了與結構無關的設計環境。可加快動態調試,縮短開發周期。
(3) 可與其他工業標準的EDA設計工具相連接。
(4) MAX plusII提供豐富的庫單元供使用者調用,可以減輕工作者的設計負擔,也可以縮短設計周期。
總之,MAX plusII集成了可編程邏輯器件的設計環境,提供了靈活和高效的界面,能夠是設計者輕松的掌握和使用該軟件,完成復雜邏輯功能的設計。
5.2 程序下載
程序的下載大體分為系統自帶功能下載和外加軟件下載兩種,下面分別進行介紹。
5.2.1 系統下載
在程序編好,并且編譯、仿真正確的前提下,我們可以點擊MAX plusII子菜單中的Programmer選項來啟動編程器,即可完成下載,進行調試。值得注意的是,如果Programmer是第一次啟動使用,那么就會出現如下圖5-1所示的對話框,
圖5-1 下載設置
提示用戶對下載線進行設置。
當設置好下載線后,就會出現Programmer的對話框窗口(如圖5-2所示)。此時單擊Programmer選項。就可以將生成的器件文件燒錄到系統所選的器件中了。在此系統設計中,主要用到的就是此種設計方法。
圖5-2 Programmer界面
5.2.2 外加軟件下載
此方法的硬件連接方式與上述方法的連接方式大致相同,不同的只是用MAX plusII系統以外的另一個下載程序進行下載操作。
在此方法中,設計者可以對下載的目標程序文件和目的器件,以及管腳的分配進行鎖定,以求得最佳的下載效果。因為此方法在此課題設計中不用,且操作比較簡單,設計者可以很快的掌握,此處不再贅述。
以上這兩種下載程序的方法所用到的硬件設備基本是一樣的,都用到指定的下載線將程序下載到指定的芯片中,實現功能。但是對下載線的要求也是很高的,其長度一般不超過30厘米,因為距離過大會產生串行干擾,也就是我們所說的串擾。一但有串擾現象伴隨下載過程,也就是說下載到芯片里的程序是錯誤的,甚至是致命的(對于系統來說)。那么,如果我們運行程序,就會產生意想不到的后果,其造成的損壞不亞于時序錯誤對系統所造成的損壞。還有一點值得一提的,是下載過程中不益中斷,此也是為了避免上述的問題。
以上提到的幾點注意事項,在本次設計中,都已經盡量的克服和避免到了最小值,以便系統可以實現最優的功能。如圖5-3所示為下載線電路圖。其中,器件244是一緩沖器,也起到了克服串行干擾的作用。
圖a 總下載線
圖b 下載線與芯片連接
圖5-3 下載線原理圖
如圖a中左邊的20端口是與計算機并口相連的,圖b的10端口與指定芯片相連。
依照原理圖,將固定器件連接好,啟動運行下載的外加程序,即可將指定程序下載到EP1K100QC208-3器件中。如果有需要可在外部加一個閃存,以保證程序的固定。
6 系統測試及數據記錄
測試原理是系統測試活動的理論基礎,測試方法是測試原理的實際應用和獲得測試數據的手段。測試主要依據的是本系統的技術指標,是對系統整體功能和性能的綜合測試與評估。
6.1 軟件測試
基于軟件的共性,對于軟件的測試遵循一般軟件的測試原理和方法。而針對本軟件的特性,則應用合適的測試方法,主要是從功能和時序兩個方面進行測試仿真的。
6.1.1 功能仿真
所謂功能,最簡單的說,就是程序要起的作用。它能起什么作用,就是可實現什么功能。我們可以通過觀察功能仿真的最后結果,來分析系統設計的不足[13],還可以發覺錯誤的地方,以求得最完美的系統功能。如圖6-1所示,為本系統的功能仿真結果。
圖6-1 功能仿真圖
6.1.2 時序仿真
系統的時序是說系統實現功能的先后順序,只有有一個良好的、有條不紊的工作次序,系統的功能才能很好得以體現,才能實現與預期功能最吻合的效果。如下圖6-2所示,為系統的時序功能仿真圖。
圖6-2 時序仿真圖
從圖中可以很清楚的觀察到系統各個變量的時序關系,以及系統功能的各個可能值。這一步,是我們將程序下載到指定器件前的最后一步,通過觀察分析此波形,發現并且即使排除錯誤,以使系統正常可靠的運行。
6.2 硬件測試及仿真
在仿真測試無誤后,將程序下載到EPM1K100QC208-3中,對實際的系統電路板進行測試。
在這一過程中主要用到的器件有:電源和萬用表等,并根據系統整體設計的原理圖進行有關測量。
6.3 系統數據記錄
對于任何一個系統來說,表征其性能好壞優劣的最重要的指標就是系統測試的數據。根據設計方案分析其理論值,再經過測試得到實際數據。將兩者進行對比,分析實際的誤差,就可以得到系統的穩定性和可靠性指標。如表6-1是實際的測試結果。
項目
第一次 第二次 第三次
室溫 28℃ 32℃ 38℃
顯示 28℃ 32℃ 38℃
表6-1 測試結果
顯示(℃)
38
32
28
0 28 32 38 室溫(℃)
圖 6-1 測試顯示溫度對照表
在上述表(表6-1)中,第三次測試的溫度超過了警戒溫度,所以在硬件測試中則可以實現報警,即系統設計正確。圖6-1是測試值與顯示值的對比曲線,從圖中可以看到其兩者不是純正比的關系,其原因有很多,最主要的可能是系統外的干擾以及硬件連接時造成的隱患干擾,此方面還有待進一步的提高。
7 課題相關技術發展前景
目前,電子系統的EDA設計正從主要著眼于數字邏輯向模擬電路和數模混合電路的方向發展。在硅集成電路制造工藝方面已進入超深亞微米(VDSM,Very Deep Sun-Micro)階段,正在向0.05um發展。可編程邏輯器件在其等效邏輯門數、工作電壓及時鐘頻率等 性能指標上將有突破性進展。其邏輯門可達到上百萬個,甚至更多。隨著芯片集成度的加大,單個芯片內集成通用微控制器/微處理器、專用數字信號處理器核心、存儲器核心、嵌入式軟件/硬件、數字和模擬混合器件、RF處理器等,并且EDA與上述器件間的物理與功能的界限已日益模糊[15]。
再縱觀CPLD(FPGA)的發展歷程,展望未來,可知該技術以及本系統的發展大致有兩個方向。其一,就是理論上有所突破,使現有的檢測方法(傳感器)更加精細化。在有很精確要求的科研條件下采用該類型的儀器進行科學研究,提高準確度。其二,就是在實際應用上有所發展。在以后的發展和生產中,可能有更高邏輯功能的器件開發出來,用戶只需要對外加的設備稍微加以改動,就可以實現復雜的邏輯功能。這對于企業的現代化改造有不可替代的作用。
綜上各方面所述,EDA技術將向廣度和深度兩個方向發展,EDA將會超越電子設計的范疇進入其他領域,隨著基于EDA的SOC設計技術的發展,軟硬核功能庫的建立,IP復用,以及基于VHDL所謂自頂向下設計理念的確立,未來的電子系統的設計與規劃將不再是電子工程師門的專利。有專家認為,21世紀將是EDA技術快速發展的時期,并且EDA技術將是對21世紀產生重大影響的十大技術之一。當前,EDA的主要應用方向為微控制器、ASIC和DSP等方面。
8 課題設計總結
畢業設計是學生即將完成學業的最后一個重要環節,它既是對學校所學知識的全面總結和綜合應用,又為今后走向社會的實際操作應用鑄就了一個良好的開端。所以在此有必要對這次的畢業設計作一個系統的總結。
這次畢業設計,我選擇了實做的題目,這不僅是對我的一種鍛煉,也是對我大學四年所學知識的綜合檢查。從開始設計到設計的完成,我感覺收獲很多,不僅在理論上有了很大的升華,并且還在實踐中鍛煉了自己。使自己成長了許多。
本文首先對整個系統的工作原理和實現方法進行了簡單的介紹,給出了系統工作的整體框圖。在此基礎上,介紹了系統設計用到的各個模塊的功能特性,并進性了方案比較,選擇出了最優越的方案。在理論上對整個系統有一定了解的情況下,進行了系統模塊的電路的設計,充分利用各方面的資料,發揮我所學的特長。設計出了以CPLD為核心,實現了與譯碼驅動電路和顯示電路的相連接,并顯示室溫的工作狀態,完成系統功能。
整個系統的開發過程是曲折的,首先在硬件設計上,由于以前所學課程有一定的基礎,我多方查閱資料,不斷的向老師、同學學習請教,以確保設計的電路系統完整,并能實現最完美的系統功能。經過幾個月學習,我設計出了各個部分的電路圖,并實現了電路圖的組合。經過測試與修改,最終完善了硬件電路的設計,并能夠比較理想的完成本次畢業設計功能——時時顯示和警戒報警。
對于軟件設計,因為以前的編程經驗不夠,再加上對EPM1K100QC208-3這一芯片的了解不是很徹底,因此,在這方面花費了很多的精力和時間。盡管過程很艱難,但是在真正意義上學到了知識,為以后的工作和學習積累了寶貴的經驗。
在研制過程中注重先進、適用的原則,注重科技與應用結合,來用產、學、研結合,側重于科研技術轉化為生產力。本系統經過了設計階段、開發實現階段以及最后的應用測試階段。經過4個月的努力,核心問題已經全部解決,所有功能均已基本實現,只是在通用性上還有待提高。這次畢業設計的經歷使我對CPLD(FPGA)的一些特征、性能,以及應用及原理有了深刻的了解,真正做到了學有所得、學有所用,可以說獲益匪淺。
但是,總的說來,由于我在理論和實踐方面存在一定的不足,所以在設計思路和實現功能上難免有不足之處,請各位老師多多批評指正。
參 考 文 獻
[1] 姜雪送,劉東升.硬件描述語言VHDL教程,第一版,西安交通大學大學出版社,2004年, 6~20頁
[2] 陳耀和.VHDL語言設計技術,第一版,電子工業出版社,2004年,11~18頁
[3] 王化祥,張淑英.傳感器原理及應用,第一版,天津大學出版社,2005年,3~9頁
[4][張磊,雷震.高速電路設計和信號完整分析,《集成電路設計》,2004年,第一期
[5] 康華光.電子技術基礎數字部分,第四版,高等教育出版社,2000年,402~420頁
[6] 杜振芳,梅陽.基于FPGA的高速信號發生器,《電子技術應用》,2003年,第11期
[7] 潘松,黃繼業.EDA技術與VHDL.,第一版,清華大學出版社,2005年,4~11頁
[8] 楊春玲.現代可編程邏輯器件及SOPC應用設計,第一版,哈爾濱工業大學出版社,2005年, 7~14頁
[9] 何希才,劉洪梅.新型通用集成電路實用技術,第一版,國防工業出版社,1997年,6~8頁
[10] 劉常澍.數字邏輯電路,第一版,國防工業出版社,2002年
[11] 譚會生.EDA技術及應用,第二版,西安電子科技大學出版社,2001年,129~147頁
[12] 黃任.VHDL入門•解惑•經典實例•經驗總結,第一版,北京航空航天大學出版社,2005年,67~78頁
[13] 金西.VHDL與復雜數字系統設計,第一版,西安電子科技大學出版社,2003年,8~16頁
[14] 鄧素萍.串行通信RS232/RS485轉換器,《國外電子原器件》,2003年,第7期
[15] 李國洪.可編程邏輯器件EDA技術與實踐,第一版,機械工業出版社,2004年,3~26頁
[16] Michael A. Miller. Data and Network Communications,第一版,科學出版社,2002年
[17] J.Bhasker著,徐振林譯..Verilog HDL硬件描述語言,第一版,電子工業出版社,2004年
致 謝
畢業設計是我大學學習生活的最后一項學習任務,是對我大學四年學習的綜合考核。而也為了使我的綜合素質技能可以有一個很大的提高,這次畢業設計,我選擇了張建民教授所帶的這個比較具有實用性的有意思的課題——基于CPLD的室溫檢測電路設計。在為期兩個多月的畢業設計過程中,我不僅較為系統的復習了以前學的知識,而且又學習了許多新知識,使我的知識結構更加系統化,也更加完善。同時,也提高了我獨立分析問題、解決問題的能力。
本次畢業設計能夠順利地完成,首先要感謝我的指導老師張建民教授。張教授嚴謹的治學態度,深厚的學術造詣以及忘我的工作精神給我留下了深刻的印象。張教授的嚴格要求和孜孜不倦的教導是我完成這次畢業設計的重要保證,他給予了我很大的幫助和支持,在課題研究期間,張教授提供了很多指導性的意見,對存在的問題給予細心的分析并提出許多寶貴的意見,使我受益匪淺。在此謹向導師表示衷心的感謝!同時我要感謝給予我幫助和支持的舍友們,感謝在編程和程序調試過程中給我提供幫助的秦建川同學,感謝電子工程系的老師為我們做畢業設計提供的各方面的幫助!
同時,我要感謝我的母校——天津工程師范學院,特別是在我即將踏上工作崗位時,給了我這樣一個鍛煉、學習的機會,使我加深了對以前知識的理解,拓寬了知識面,也提高了我對所學知識的綜合的應用能力。
在整個設計制作過程當中,我感覺收獲非常大,我獲得的不僅是理論上的收獲,還有實踐中的豐收,同時還有的就是同學們之間的合作精神。在此,祝愿我院日后蓬勃發展,成為一所獨具風格的綜合性大學。祝愿母校的將來更美好!
最后,我要再一次感謝所有在此期間幫助過我的人,我衷心的祝福你們!
通信0201 布冬冬
2006年6月于天津工程師范學院
附錄1 程序
A/D轉換控制程序
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity ADKONGZHI is
port(d:in std_logic_vector(7 downto 0);
rst:in std_logic;
clk:in std_logic;
eoc:in std_logic;
ale:out std_logic;
start:out std_logic;
oe:out std_logic;
adda:out std_logic;
bcdout:out std_logic_vector(11 downto 0)
);
end entity SDKONGZHI;
architecture art of ADKONGZHI is
type states is (st0,st1,st2,st3,st4,st5,st6);
signal current_state,next_state:states;
signal regl:std_logic_vector(7 downto 0);
signal lock0,lock1:std_logic;
signal value:std_logic_vector(11 downto 0);
signal cen:std_logic;
signal ale0:std_logic;
signal start0:std_logic;
signal oe0:std_lognal;
begin
statesystem:block is
begin
adda<=’1’;
process(current_state,eoc)
case current_state is
when st0 =>ale0<=’0’;start0<=’0’;oe0<=’0’;
lock0<=’0’;next_state<=st1;cen<=’0’;
when st1 =>ale0<=’1’;start0<=’0’;oe0<=’0’;
lock0<=’0’;next_state<=st2;cen<=’0’;
when st2 =>ale0<=’0’;start0<=’1’;oe0<=’0’;
lock0<=’0’;next_state<=st3;cen<=’0’;
when st3 =>ale0<=’0’;start0<=’0’;oe0<=’0’;
lock0<=’0’;cen<=’0’;
if eoc=’1’ then next_state<=st3;
else next_state<=st4;
end if;
when st4 =>ale0<=’0’;start0<=’0’;oe0<=’0’;
lock0<=’0’; cen<=’0’;
if eoc=’0’ then next_state<=st4;
else next_state<=st5;
end if;
when st5=>ale0<=’0’;start0<=’0’;oe0<=’1’;
lock0<=’1’;next_state<=st6;cen<=’1’;
when st6=>ale0<=’0’;start0<=’0’;oe0<=’1’;
lock0<=’1’;next_state<=st0;cen<=’0’;
when others =>ale0<=’0’;start0<=’0’;oe0<=’1’;
lock0<=’0’;next_state<=st0;cen<=’0’;
end case;
end procsee;
process(rst,clk)
begin
if rst=’1’ then current_state<=st0;
elsif rising_edge(clk) then current_state<=next_state;
end if;
end process;
process(clk)
begin
if rising_edge(clk) then ale<=ale0;start<=start0;oe<=oe0;lock1<=lock1;
end if;
end process;
process(lock1)
begin
if rising_edge(lock) then regl<=d;
end if;
end process;
end block statesystem;
conversion:block is
signal v:std_logic_vector(7 downto 0);
signal hb,lb:std_logic_vector(11 downto 0);
signal c30,c74,c118:std_logic;
signal tempa,tempb,tempc:std_logic_vector(4 downto 0);
begin
process(regl)
begin
v<=regl;
case v(7 downto 4) is
when “1111” =>hb<=”010010000000”;
when “1110” =>hb<=”010001001000”;
when “1101” =>hb<=”010000010110”;
when “1100” =>hb<=”001110000100”;
when “1011” =>hb<=”001101010010”;
when “1010” =>hb<=”001100100000”;
when “1001” =>hb<=”001010001000”;
when “1000” =>hb<=”001001010110”;
when “0111” =>hb<=”001000100100”;
when “0110” =>hb<=”000110010010”;
when “0101” =>hb<=”000101100000”;
when “0100” =>hb<=”001001010000”;
when “0011” =>hb<=”000010010110”;
when “0010” =>hb<=”000001100010”;
when “0001” =>hb<=”000000110010”;
when others =>hb<=”000000000000”;
end case;
case v(3 downto 0) is
when “1111” =>lb<=”000000110000”;
when “1110” =>lb<=”000000101000”;
when “1101” =>lb<=”000000100110”;
when “1100” =>lb<=”000000100100”;
when “1011” =>lb<=”000000100010”;
when “1010” =>lb<=”000000100000”;
when “1001” =>lb<=”000000011000”;
when “1000” =>lb<=”000000010110”;
when “0111” =>lb<=”000000010100”;
when “0110” =>lb<=”000000010010”;
when “0101” =>lb<=”000000010000”;
when “0100” =>lb<=”000000001000”;
when “0011” =>lb<=”000000000110”;
when “0010” =>lb<=”000000000100”;
when “0001” =>lb<=”000000000010”;
when others =>lb<=”000000000000”;
end case;
end process;
process(hb,lb cen)
variable temp1,temp2,temp3:std_logic_vector(3 downto 0);
begin
if rising_edge(cen) then
temp1:=hb(3 downto 0)+lb(3 downto 0);
if temp1>”1001” then
temp1:=temp1+”0110”;
temp2:=hb(7 downto 4)+lb(7 downto 4)+’1’;
if temp2>”1001” then
temp2:=temp2+”0110”;
temp3:=hb(11 downto 8)+lb(11 downto 8)+’1’;
if temp3>”1001 then
temp3:=temp3+”0110”;
end if;
else temp3:=hb(11 downto 8)+lb(11 downto 8);
if temp3>”1001” then
temp3:=temp3+”0110”;
end if;
end if;
else
temp2 :=hb(7 downto 4)+lb(7 downto 4);
if temp2>”1001” then
temp2:=temp2+”0110”;
temp3:=hb(11 downto 8)+lb(11 downto 8)+’1’;
if temp3>”1001” then
temp3:=temp3+”0110”;
end if;
else
temp3:=hb(11 downto 8)+lb(11 downto 8);
if temp3>”1001” then
temp3:=temp3+”0110”;
end if;
end if;
end if;
end if;
value<=temp3&temp2&temp1;
end process;
bcdout<=value;
end block conversion;
end architecture;
附錄2 EP1K100QC208-3簡單介紹說明
附錄3 系統整體電路圖
附錄4 系統PCB板圖
英文資料及中文翻譯
Digital Communication System
For modern people, if you do not know “Digital Communication” or “Digital Signal”, it is seem to be outdated, even would be laughed as “a ignorant men” . well then ,what is the “Digital Communication” and what is the “Digital Signal” ? This text is to do an generalize in the way of brief and plain.
1、Why Digital?
Why are communication system,military and commercial alike,“going digital”?The primary advantage is the ease with which digital signals,compared with analog signals,are regenerated. Figure 1 illustrates an ideal binary digital pulse propagating along a transmission line. The shape of the waveform is affected by two basic mechanisms: (1) as all transmission lines and circuits have some nonideal frequence transfer function,there is a distorting effect on the ideal and pulse; and (2) unwanted electrical noise or other interference further distorts the pulse waveform. Both of these mechanisms cause the pulse shape to degrade as a function of line lenge,as shown in Figure 1. During the time that the transmitted pulse can still be reliably identified before it is degraded to an ambiguous state,the pulse is amplified by a digital amplifier that recovers its original ideal shape. The pulse is thus “rebor” or regenerated. Circuits that perform this function at regular intervals along a transmission system are called regenerative repeaters.
Distance 1 Distance 2 Dance 3 stance 4 Distance 5
Original Some signal Degraded Signal is badly Amplification
dstortiuon dstortiuon dstortiuon degraded regenerate pulse
Propagation distance
Figure 1 Pulse degradation and regeneration
Digital circuit are less subject to distortion and interfernce than analog circuit . Becanse binary circuits opoerate in one of two states fully on fully of —to be meaningful,a disturbance must be large enough to change the circuit ooperating point from one state to the other. Such two-state operation facilitates signal regeneration and thus prevents noise and other disturbances from accumulating in transmission. Analog signals,however,are not two-state signals; they can take an infinite variety of shapes. With analog circuits,even a small disturbance can render the reproduced waveform unacceptably distorted. Once the analog signal is distorted,the distortion cannot be removed by amplification. Because accumulated noise is irrevocably bound to analog signals,they cannot be perfectly regenerated. With digital techniques,extremely low error rates produres high signal fidelity are possible through error detection and correction but similar procedures are not available with analog.
There are other important advantages to digital communications. Digital circuit are more reliable and can be produced at a lower cost than analog circuit . Also, digital hardwave lends itself to more flexble implementation than analog hardwave (e.g., microprocessor, digital switching, and large-scale integrated (LSI) circuit). The combing of digital signals using time-division multiplexing (TDM) is simpler than the combing of analog signals using frequcency-division multiplexing (FDM). Different types of digital signals (data, telegraph, telephone, television) can be treated as identical signals in transmission and switching ---a bit is a bit. Also, for convenient switching, digital messages can be handled in autonomous groups called packets. Digital techniques lend themselves naturally to signal processing functions that project against interferene and jamming,or that provide encryption and privacy. Also much data communication is from computer to computer, or from digital instruments or terminal to computer. Such digital terminations are naturally best served by digital communication links.
What are the costs associated with the beneficial attributes of digital cimmunication system? Digital system tend to be very signal-processing intensive compared with analog. Also, digital system need to allocate a significant share of their resources to the task of synchroniztion at various levels . With analog system , on the other hand , synchroniztion often is accomplished more easily. One disadvantage of a digital communication system is non-graceful degradation. When the signal-to-noise ratio drops below a certain threshold, the quality of service can change suddenly from very poor. In cintrast, most communication aystem degrade more gracefully.
2、Typical Blook Diagram and Transformations
The function block diagram shown in Figure 2 illustrates the signal flow and the signal-processing steps through a typical digital communication system (DCS). This figure can serve as a kind of road map, guiding the reader through the chapter. The upper blocks --- format, source encode, encrypt, channel encode, multiplex ,pulse modulate, bandpass modulate, frequency spread, and multiple access-denote signal transformations from the source to the transmitter. The lower block denote signal transformations from the receiver to the sink, essentially reversing the signal processing steps performed by the upper blocks. The modulate and demodulate/detect blocks together are called a modern. The term “modern” often encompasses several of the signal processing steps shown in Figure 2 ; When this is the case, the modern can be though of as the “brain” of the system. The transmitter and receiver can be though of as the “muscles” of the system. For wireless applications, the transmitter and consists of a frequency up-conversion stage to a radio frequency (RF), a high-power amplifier(LNA). Frequency down-conversion is performed in the fornt end of the receiver and/or the demodulator.
Figure 2 illustrates a kind of reciprocity between the block in the upper transmitter part of the figure and those in the lower receiver part. The signal processing steps that take place in the transmitter are, for the most part, reversed in the reveiver. In Figure 2 , the input information source is converted to binary digits (bis); the bits are then grouped to from digital message or message.
Each such symbol (mi,where i=1,2,3,…,M) can be regarded as a memerber of finite alphabet set containing M members. Thus, for M=2, the message symbol mi is binary (meaning that it constitutes just a signal bit). Even though binary symbol fall within the general definition of M-ary, nevertheless the name M-ary is usually applied to those cases where M>2 ; hence, such symbol are each made up of a sequence of two or more bits. (Compare such a finite alphabet in a DCS with an analog system, where the message waveform is typically a member of an infinite set of possible waveform ). For system that use channel coding (error correction coding), a sequence of message symbol is denoted ui. Because a message symbol or a channel symbol can consist of a single bit or a group of bits, a sequence of such symbol is also described as a bit stream, as shown in Figure 2.
Consider the key signal processing block shown in Figure 2 , Only formatting, modulation, demodulation/detection, and synchronization are essential for a DCS. Formatting, transform the source information into bits, thus assuring compatibility between the information and the signal processing within the DCS. From this point in the figure up to the pulse-modulation block, the information remains in the form of a bit stream. Modulation is the process by which message symbols or channel symbols (when channel coding is used) are converted to waveforms that are compatible with the requirements imposed by the transmission channel . Pulse modulation is an essential step because each symbol to be transmitted must first be transformed from a binary representation (voltage levels representing binary ones and zeros) to a baseband waveform. The term baseband refers to a signal whose spectrum extends from (or near) dc up to some finite value, usually less than a few megahertz. The pulse-modulation block usually includes filtering
for minimizing the transmission bandwidth. When pulse modulation is applied to binary sym-
si(t)
From other
sources
Digital
input mi ui gi(t)
m(t) u(t)
Z(t)
To other
destination
r(t)
Figure 2 A typical digital communication system
bols, the resulting binary waveform is called a pulse-code modulation (PCM) waveform. There are several types of PCM waveform. In telephone applications, these waveforms are often called line codes. When pulse modulation is applied to nonbinary symbols, the resulting waveform is called an M- ary pulse modulation wave form. There are several types of such waveforms,where the one called pulse-amplitude modulation (PAM) is emphasized. After pulse modulation , each message symbol or channel symbol takes the form of a baseband waveform gi(t) , where i=1,2,3,…,M. In any electronic implementation, the bit stream, prior to pulse-modulation, is represented with voltage levels. One might wonder why there is a separate block for pulse modulation when in face different voltage levels for binary ones and zeros can be viewed as impulse or as ideal rectangular pulses, each pulse occupying one bit time. There are two important differences between such voltage levels and the baseband waveforms used for modulation. First, the pulse-modulation block allows for a variety of binary and M-ary pulse-waveform types. Second, the filtering within the pulse-modulation block yields pulses that occupy more than just time. Filtering yields pulses that are spread in time, thus the pulses are “smeared” into neighboring bit-times. This filtering is sometimes referred to as pulse shaping; it is used to contain the transmission bandwidth within some desired spectral region.
For an application involving RF transmission, the text important step is bandpass modulation; it is required whenever the transmission medium will not support the propagation of pulse-like waveforms. For such cases, the medium requires a bandpass waveform si(t), where i=1,2,…,M. The term bandpass is used to indicate that the baseband waveform gi(t) is frequency translate by a carrier wave to a frequency that is much larger than the spectral content of gi(t). As si(t) propagates over the hannel, it is impated by the channel characteristics, which can be described in term of the channel’s impulse response hc(t). Also, at various point along the signal route, additive random noise distorts the received signal r(t), so that its reception must be termed a corrupted version of the signal si(t) that was launched at the transmitter. The received signal r(t) can be expressed as:
r(t)= si(t)* hc(t)+n(t) i=1,2,…,M.
where “*” respresents a convolution operation, and n(t) represents a noise.
In the reverse direction, the receiver front end and/or the demodulator provides frequency down-conversion for each bandpass waveform r(t). The demodulator restores r(t) to an optimally shaped baseband pulse z(t) in preparation for detection. Typically, there can be several filters associated with the receiver and demodulator filtering to remove unwanted high frequency terms (in the frequency down-conversion of bandpass waveforms), and filtering for pulse shaping. Equalization can be described as a filtering option that is used in or after the demodulator to reverse any degrading effects on the signal that were caused by the channel. Equalization becomes essential whenever the impulse reponse of the channel hc(t), is so poor that the received signal is badly distortion caused. An equalizer is implement to compensate for (i.e., remove or diminish) any signal distortion caused by a nonideal hc(t). Finally, the sampling step transforms the shaped pulse z(t) to a sample z(t), and the detection step transforms z(t) to an estimate of the channel symbol ui or an estimate of the message symbol mi (if there is no channel coding). As we known,demodulation is degrading the digital meaning of that waveform.
The other signal processing steps within the modern are design option for specific system needs. Source coding produces analog-to-digital (A/D) conversion (for analog sources) and removes redundant (unneeded) information. Note that a typical DCS would either use the source coding option (for both digitizing and compressing the source information ), or it wpuld either use the simpler formatting transformation(for digitizing alone). A system would not use both source coding and formatting, because the former already includes the essential step of digitizing the information. Encryption, which is used to provide communication privacy, prevents unauthorized users from understanding message and from injecting false message into the system. Channel coding, for a given data rate, can reduce the probability of error, PE, or reduce the required signal-to-noise ratio to achieve a desired PE at the expense of transmission bandwidth or decoder complexity. Multiplexing and multiple-access procedures combine signals that might have different characteristics or might originate from different sources, so that they can share a portion of the communications resource(e.g., spectrum, time). Frequency spreading can produce a signal that is relatively invulnerable to interference (both natural and intentional) and can be used to enhance the privacy of the communications. It is also a valuable technique used for multiple access.
數字通信系統
對于現代人來說,如果不知道“數字通信”或“數字信號”,那就顯得很落伍了,甚至會被人譏笑“孤陋寡聞”的。那么何為“數字信號”,何為“數字通信”呢?本文就來做一個簡單淺顯易懂的概括說明。
一、為什么要進行數字化
在現今,無論是軍用還是商用,為什么通信系統都在進行“數字化”呢?這有許多原因,其中最重要的原因是,數字信號與模擬信號相比,更易于再生。如圖1所示,是沿傳輸線傳輸的一種理想二進制數字脈沖。其波形的形狀要受到兩個基本因素的影響:第一,所有傳輸線和電路都具有非理想的頻率傳遞函數,因而使理想脈沖產生了失真;第二,電子噪聲或其他干擾進一步使脈沖波形產生失真。這兩種失真機理實際線路長度的函數,都會引起脈沖形狀發生畸變。還來看圖1,在傳輸脈沖惡化到模糊狀態之前,傳輸脈沖仍可被可靠的識別,由數字放大器將脈沖放大并恢復最初的理想的形狀,脈沖就這樣“再生”了。在傳輸系統中,在規定時間間隔內執行這種功能的電路成為“再生中繼器”。
圖1 脈沖編碼再生
與模擬電路相比,數字電路不易產生失真和干擾。因為二進制數字電路工作在全通或全斷的開關狀態下才有意義,所以干擾必須足夠大才能使電路從一種狀態變到另一種狀態。這兩種工作狀態有助于信號的再生,因而能在傳輸中有效地抑制噪聲和其他累積干擾。然而模擬信號不是雙態信號,它的波形有無限多個。在模擬電路中,即使很小的干擾也能導致信號產生難以接受的失真。失真一旦產生,就無法通過放大器去驅除。由于模擬信號和累積噪聲密不可分,所以不能完全再生。若采用數字技術,通過檢錯和糾錯可獲得極低的差錯概率,從而高保真信號,而模擬系統沒有這樣類似的技術。
數字通信系統還有其他的優點:數字電路比模擬電路更可靠,且其生產成本比模擬電路低;數字硬件比模擬硬件更具靈活性,比如微處理器、數字開關、大規模集成電路等;時分復用(TDM)信號比頻分復用(FDM)信號的模擬信號更簡單;不同類型的數字信號(數據、電報、電話、電視等)在傳輸和交換中都被看成是相同的信號——比特信號;為方便交換,還可將數字信號以數據包(packet)的形式進行處理。數字技術本身借助與信號出處理,具有抗人為干擾和自然干擾的功能,還能夠提供加密和隱私處理。計算機與計算機之間、數字設備或終端與計算機之間的數據通信需求越來越多,這些數字終端可以通過數字通信鏈路獲得最好的服務。
數字通信系統獲得這些優點的代價是什么呢?與模擬系統相比,數字系統側重于信號處理技術,并在通信的各個階段,都需要分配一部分共享的資源用于實現同步。而在模擬系統中,同步相對比較容易。數字通信系統的另一個缺點是具有門限效應。即當信噪比下降到一定限度時,服務質量就會急劇惡化,而大部分模擬通信系統服務質量的下降則比較緩慢。
二、典型的通信系統框圖
如圖2所示,其功能框圖描述了典型數字通信系統(DCS)的信號流程和信號處理過程,該圖作為一種地圖引導讀者瀏覽本文的內容。方框圖的上部表示從信源到發送端的信號傳輸過程,包括格式化、信源編碼、加密、信道編碼、多路復用、脈沖調制、帶通調制、頻率擴展和多址接入;下部表示從接收端到信宿的信號傳輸過程,基本上是方框圖上部信號處理的反過程。調制和解調/檢測方框合稱為調制解調器。術語“調制解調器”通常是由圖2所示的信號處理過程中的一部分構成,這時調制解調器相當于系統的“大腦”,而發送端和接收端則相當于系統的“肌肉”。在無線電應用中,發送端將頻率上變頻到射頻頻段(RF),經過高功率放大器饋送到天線。接收端部分由天線和低噪聲放大器(LNA)組成下變頻由接受器或調制器的前級末端完成。
圖2顯示出上部的發送方框圖和下部的接受方框圖存在可逆性,發送方框圖中大部分信號處理步驟與接受部分方框圖中的步驟相反。在圖2中,輸入信息源先轉換成二進制數字(比特),然后將其組合為數字信息或信息符號。
每個碼元(Mi,i=1,2,3,…,M)都可看成是長度為M個碼元集合元素中的一個組成部分,因而當M =2是,消息碼元Mi就是二進制數的(這意味著它僅包含1比特的信息)。盡管二進制數符號也包含在M進制數的定義中,通常M進制數用于M >2的情形,所以每個M符號都由兩個或兩個以上比特構成(與DCS中這種有限碼元集不同,模擬系統的信號波形集是無限的)。對于采用信道編碼(糾錯編碼)的系統而言,信息碼元標識為ui。由于每個信息碼元或信道由一個或一組比特構成,這樣的碼元序列也成為比特流,如圖2所示。
考察圖2所示的框圖,對于DCS,關鍵信號處理過程僅包括的格式化、調制、解調/檢測和同步。格式化把源信息轉換為數字比特,以保證在DCS內信息與信號處理的一直性。在圖2中,脈沖調治2方框 之前的信息仍是比特流的形式。調制過程將信息碼牙或信道碼元(采用信道碼元)轉換成與傳輸信道特性匹配的波形。脈沖調制是必不可少的步驟,因為要傳輸每個符號必須先將從二進制代碼(表示二進制1或0的電壓電平)轉換成基波形式。術語基帶是直流延伸到某個有限值的信號頻譜,這個值通常是小于幾MHZ的有限值。脈沖調制方框通常包含使傳輸基帶最小化的濾波器。當對二進制數符號應用脈沖調治時,產生的二進制數波形就稱為脈沖編碼調制波形。PCM(脈沖編碼調制)波形有幾種類型,在電話通信中,這些波形通常稱為線路碼。當脈沖調制用于非二進制符號時,產生的波統稱為M進制調制波形,這樣的波形也有好幾種類型,這里我們重點介紹脈沖幅度調制(PAM)。經過脈沖調制后每個信息碼元或信道碼元都轉變為基帶波形形式gi(t)。在任何電子設備中,脈沖調制之前的比特流都用電壓電平來表示。讀者可能想知道,既然實際上代表二進制數的1和0的不同電平,可以看為每個脈沖占用一個比特時間的沖激或理想的矩形脈沖波形,那么為什么還需要一個單獨的方框用于脈沖調制呢?這是因為這些電壓電平和用于調制的基帶波形之間有另個重要的區別:第一,脈沖調制方框適用于各種二進制數和M進制數脈沖波形;第二,脈沖調制方框中的濾波器產生持續時間大于1比特時間的脈沖。由于濾波器產生的脈沖有時間展寬,因而會占據相鄰比特時間。這種濾波有時候稱為脈沖成形,用于把傳輸帶寬限制在給定的頻譜范圍內。
si(t)
From other
sources
Digital
input mi ui gi(t)
m(t) u(t)
Z(t)
To other
destination
r(t)
圖2 數字通信系統
在涉及到射頻傳輸的應用中,下一個重要的步驟是帶通調制,只要傳輸介質不支持脈沖波形的傳輸,就必須應用帶通調制,此時傳輸介質所要求的信號是帶通波形si(t)(其中i=1,2,…,M)。帶通意味著基帶波形的頻譜經過一個載波被搬移到一個比gi(t)頻譜大的多的頻率點。當si(t)經信道傳輸時會受到信道特性的影響,而信道特性可以用信道沖激響應hc(t)來描述的。此外,在信號傳輸線路的各個點上,加性隨機噪聲會使接受信號r(t)進一步失真,所以接受信號是發送信號si(t)的一種失真的形式。接受信號r(t)可以表示為
r(t)= si(t)* hc(t)+n(t) i=1,2,…,M (1)
式中,*表示卷積運算,n(t)表示噪聲。
在相反的方向上,接收機前端或解調器對每個帶通波形r(t)進行下變頻轉換,解調器把r(t)恢復成最佳基帶脈沖波形z(t),為后面的檢測做準備。通常還會有幾個與接收機、解調器相連的濾波器,濾除不需要的高頻部分(帶通波形的下變頻),并改善脈沖波形。均衡可以認為是一種濾波過程,用以對抗由信道引起的任何不良影響,它可以包含在解調器之中,也可以在解調器之后;當信道沖激響應hc(t)使接收信號嚴重失真時,均衡器就顯得十分重要了,它用于補償(即消除或削弱)由非理想的hc(t)所導致的任何形式的信號失真。最后,采樣過程把成形的脈沖信號z(t)變換成采樣信號z(t),而檢測則把z(t)變成信道碼元或信息碼元(若沒有采用信道編碼)的估值ui或Mi人們所知,解調是波形(基帶脈沖)的恢復,而檢測則是指與波形的數字意義有關的判決。
調制解調器中其他的信號處理步驟可根據系統的具體要求進行設計選擇。信源編碼對模擬信號進行模/數(A/D)轉換,去除冗余信息。值得注意的是,典型的DCS或者采用信源編碼(數字化和壓縮信源信息),或者采用較簡單格式化變換(只有數字信號時),系統不會同時采用信源編碼和格式化,因為前者已經包含數字化信源信息這個必要步驟。加密用于提供通信的保密性,防止沒有被授權的用戶獲得信息或將差錯信息加入系統中。對于給定的數據數率,在增加傳輸帶寬或解碼器復雜性的條件下,信道編碼能降低差錯概率PE,或者保持期望的差錯概率PE的條件下降低所需的信噪比。多路復用和多址接入
把不同特性或不同信源的信號進行合成,以便共享通信資源(如頻譜、時間)。擴頻能產生抵御干擾(自然或認為干擾)的信號,提高通信裝備的保密性,同時它在多址接入方面也是一項有用的技術。
|