一、基于單片機的信號發(fā)生器設計方案
信號發(fā)生器用于調節(jié)射頻匹配電路,可以自行設計,一般普通的信號發(fā)生器需要輸出正弦波、方波、三角波以及鋸齒波等信號,可通過按鍵調節(jié)信號的頻率以及信號的幅度,其具體的設計方案如下:
1、總體方案設計
信號發(fā)生器發(fā)送出去的是模擬信號,而單片機輸出的是數字信號,因此在設計信號發(fā)生器系統(tǒng)時,需要使用到數模轉換芯片,可選擇數模轉換芯片DAC0832,然后再利用運算放大器將DAC0832輸出的電流信號轉換成電壓信號。這樣信號發(fā)生器便輸出了模擬電壓。系統(tǒng)要輸出各種波形信號,則要求DAC0832在運放的作用下,在不同時間點輸出不同的電壓值,再將這些電壓值連接起來,便構成了相應的波形信號。而要得到不同的電壓值,則單片機需要將8位I/O口接到DAC0832芯片的8位數據信號輸入端,單片機通過改變8位I/O口的數字信號,便可以在DAC0832以及運放的作用下,得到不同的電壓值,再在時間的作用下形成不同的波形信號。波形信號頻率的的變化可通過改變單片機8位I/O輸出口的數據變化率來實現。
波形信號的幅度由DAC0832的參考電壓VREF來決定,為了確保VREF的大小可變,本系統(tǒng)使用到了芯片PCF8591,將PCF8591芯片的模擬電壓輸出端接在DAC0832的VREF上,通過改變PCF8591模擬電壓輸出值便可改變VREF值,從而改變波形信號的幅度值。而PCF8591的模擬電壓輸出值則是尤其I2C總行上的數據所決定,利用單片機的I/O口模擬I2C與PCF8591進行通信,那么單片機便可通過I/O口控制VREF電壓的變化,從而控制波形的幅度變化。
2、系統(tǒng)硬件設計
(1)晶振電路設計
單片機穩(wěn)定工作則需要穩(wěn)定的時鐘信號,而時鐘信號則是由晶振電路產生,因此晶振電路設計的好壞直接影響到最小系統(tǒng)的穩(wěn)定性。單片機的18腳和19腳為晶振連接輸入腳,將晶振X1的兩端連接到單片機18和19腳之后便會產生時鐘信號,此時的信號會存在不穩(wěn)定的問題,需要在晶振Y1的兩端分別外接一個22PF電容C1、C2到GND,該電容為晶振的匹配電容,晶振匹配了電容之后,那么產生的時鐘信號就比較穩(wěn)定。出現的頻偏也是在20PPM的范圍內。這樣才能確保系統(tǒng)時鐘穩(wěn)定可靠。
(2)復位電路設計
最小系統(tǒng)除了晶振電路之外,還需要具備復位電路,單片機上電后,啟動的時候,需要復位電路先進行復位,確保系統(tǒng)運行的起始地址一致 ,保證系統(tǒng)工作的穩(wěn)定性,復位是利用電容C3與R1來實現的。
(3)波形幅度調節(jié)電路設計
為改變系統(tǒng)輸出的波形幅度值,本系統(tǒng)使用到了PCF8591芯片,該芯片是一個8位CMOS數據采集器,該芯片可以將模擬信號轉換成數字信號,再通過I2C數據總線將該數字信號發(fā)送給單片機;也可以反過來,單片機通過I2C總線將數字信號發(fā)送給PCF8591芯片,再由該芯片進行數模轉換后,變成模擬電壓再由AOUT腳輸出。利用這一原理,本系統(tǒng)為了調節(jié)信號發(fā)生器的幅度值,將單片機P2.0和P2.1模擬I2C與PCF8591通信,這樣單片機便可以控制PCF8591的AOUT輸出端模擬電壓的大小,再將其接入到DAC0832的VREF腳上,便可以控制波形的幅度。
(4)數模轉換電路設計
信號發(fā)生器產生各種波形信號使用到了DAC0832數模轉換芯片,該芯片內部集成了一個8位D/A轉換器,一個8為DAC寄存器,一個8位輸入寄存器以及一個控制電路,其內部采用的是倒T型R-2R電阻網絡,將該數模轉換芯片與運算放大器LM358一起使用,便可以使運放輸出端有28 =256個電壓值輸出。在不同時間內變換輸出不同的電壓值,使其產生周期性的變化便能形成相應的波形信號。
(5)按鍵中斷控制電路設計
基于單片機的信號發(fā)生器要求輸出方波、三角波、鋸齒波以及正弦波信號,信號的幅度和頻率可調,用戶可通過系統(tǒng)按鍵來對信號發(fā)生器進行設置。在系統(tǒng)中,設計了8個按鍵,其功能分別為100HZ頻率加按鍵、1hz頻率加按鍵、-1hz頻率減按鍵、1V電壓幅度加按鍵、0.1V電壓幅度加按鍵、-0.1V電壓幅度減按鍵、波形切換按鍵、掃頻開關按鍵。為了方便系統(tǒng)設計,采用獨立按鍵設計方法,利用單片機P1口將各按鍵連接,通過軟件將P1口設置成上拉狀態(tài)。當沒有按鍵按下時,單片機P1口中的所有I/O口檢測的到時高電平;當有按鍵按下時,則該按鍵對應單片機的I/O口會被拉低,變成低電平。單片機便能檢測到,從而調用該按鍵程序執(zhí)行相應的功能。
(6)電源電路設計
本系統(tǒng)電路設計是在Proteus仿真軟件上設計,該仿真軟件有各種電源,可直接調用。無需使用電壓轉換芯片。在本系統(tǒng)單片機使用5V電壓供電,而為了使輸出波形幅度為10V,則PCF8591采用10V電壓供電,而運算放大器采用±15V供電,直接從仿真軟件上取電源即可。
3、系統(tǒng)軟件設計
完成proteus軟件電路圖設計之后,接下來需要對單片機編寫驅動程序,系統(tǒng)驅動程序的編寫是在keil軟件平臺上完成的,Keil軟件打開后,要先建立工程,然后在工程當中建立一個.c文件,在此文件中編寫代碼驅動程序:
(1)系統(tǒng)主程序設計
主程序是軟件系統(tǒng)中最為重要的程序,因為系統(tǒng)程序是由各個子程序所構成,而子程序的調用全部是在主程序中來實現的,主程序設計的好壞直接能影響到系統(tǒng)的邏輯結構,影響到系統(tǒng)工作的穩(wěn)定性。在本系統(tǒng)中,系統(tǒng)開始運行后,先會執(zhí)行主程序,在主程序中對單片機及其外圍元件進行初始化設置,完成初始化設置之后,系統(tǒng)就會執(zhí)行正弦波程序,讓信號發(fā)生器輸出正弦波信號,然后再去檢測是否有按鍵按下,如果有按鍵按下,系統(tǒng)檢測到后,便會執(zhí)行相應按鍵的程序,從而改變信號發(fā)生器輸出的波形。如果沒有按鍵產生,則系統(tǒng)繼續(xù)保持當前波形輸出,然后再繼續(xù)去訪問是否有按鍵按下,如此循環(huán)下去。
(2)按鍵掃描程序設計
本系統(tǒng)是通過按鍵來改變信號發(fā)生器的波形,系統(tǒng)一共有八個按鍵,按下不同按鍵時,系統(tǒng)需要輸出不同的波形。定義按鍵6為波形切換按鍵,按鍵0為100HZ頻率增加按鍵,按鍵1為1HZ頻率增加按鍵,按鍵2為1HZ頻率減按鍵,按鍵3位1V幅度增加按鍵,按鍵4為0.1V幅度增加按鍵,按鍵5為0.1V幅度減小按鍵,按鍵7位掃頻按鍵,flang為標志位,用于判斷按鍵6按下的次數當flang為1是默認輸出正弦波;當flang為2時,輸出三角波;當flang為3時輸出鋸齒波;當flang為4時,輸出方波;當flang為5時,則會令flang=1,輸出正弦波。
因此,當有按鍵按下時,系統(tǒng)調用按鍵程序會去判斷是哪個按鍵按下,如果是按鍵6按下,表示需要切換信號發(fā)生器的輸出波形,令flang 1,然后判斷flang的值,再輸出相應的波形信號。當是0按鍵按下時,則系統(tǒng)會在原有的波形上,改變其輸出頻率,使頻率增加100HZ;當按下的是1按鍵,則將頻率增加1HZ;當2按鍵按下,則將頻率減小1HZ;當按鍵3按下時,表示要在原有波形的基礎上增加1V的波形幅度;當4按鍵按下,則幅度增加0.1V;當5按鍵按下,則幅度減小0.1V;當7按鍵按下,則進行掃頻。當執(zhí)行完按鍵程序后,返回系統(tǒng)主程序。
二、信號發(fā)生器的設計要求有哪些
基于單片機設計的信號發(fā)生器屬于簡易信號發(fā)生器,主要能產生方波、三角波和正弦波并進行仿真,這類信號發(fā)生器設計好后,應滿足以下要求:
1、基本性能指標要求
(1)頻率范圍:100Hz~1kHz。
(2)輸出電壓:方波 Up-p≤24V,三角波 Up-p=6V,正弦波 Up-p>1V。
2、擴展性能指標要求
頻率范圍分段設置10Hz~100Hz,100Hz~1kHz,1kHz~10kHz;波形特性方波t r<30us(1kHz,最大輸出時),三角波r△<2%,正弦波r~<5%。